Skip to content

Novolis-Platform/novolis-audio

novolis-audio

Cross-platform audio for Novolis apps — outside any graphics engine.

Packages

Game SFX (miniaudio)

Package Role
Novolis.Audio Meta package (abstractions + runtime)
Novolis.Audio.Abstractions IAudioEngine, ISoundHandle, NullAudioEngine
Novolis.Audio.Runtime Generated facades + MiniaudioAudioEngine
Novolis.Audio.Bindings Generated [LibraryImport] to novolis_audio
Novolis.Audio.Native RID native binaries (transitive)
Novolis.Audio.Manifests C# binding manifests (maintainers)

Voice / PCM (TTS)

Package Role
Novolis.Audio.Core PCM buffers, WAV read/write
Novolis.Audio.Codecs Codec contracts (WAV in Core today)
Novolis.Audio.Effects PCM effect chains
Novolis.Audio.Playback PCM playback (NaudioPcmPlayback)
Novolis.Audio.Voice SpeakAsync / WriteToFileAsync facade
Novolis.Audio.Voice.Abstractions TTS contracts
Novolis.Audio.Voice.SherpaOnnx Sherpa-ONNX synthesizer
Novolis.Audio.Voice.Phraseology ICAO phraseology
Novolis.Audio.Voice.Atc ATC profile preset

Native game playback uses a miniaudio C shim (novolis_audio.dll). Voice uses Sherpa ONNX + NAudio (separate stack).

Quick start (game SFX)

using Novolis.Audio;
using Novolis.Audio.Runtime;

await using IAudioEngine engine = new MiniaudioAudioEngine();
if (!engine.Start())
    return;

var sound = engine.LoadSound("click.wav");
engine.Play(sound);

Quick start (voice)

using Novolis.Audio.Voice;

IVoiceService voice = new VoiceServiceBuilder().BuildService();

await voice.SpeakAsync("Tower, ready for departure.");
await voice.WriteToFileAsync("Cleared for takeoff.", new FileInfo("atc.wav"));

English Piper TTS model is bundled under models/en-us-piper-amy/ (Git LFS). Clone with git lfs install first. Override via NOVOLIS_VOICE_MODEL_DIR — see docs/voice-models.md.

Maintainer pipeline

dotnet run --project codegen/Novolis.Audio.Pipeline -- run maintainer
dotnet build Novolis.Audio.slnx -c Release

Docs

About

Cross-platform audio via miniaudio native bindings and manifest-driven codegen

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors