Cross-platform audio engine library for desktop (Windows, Linux, macOS) and mobile (Android, iOS) - Basic edition without AI/ML features (no VocalRemover, ChordDetect, Matchering)
$ dotnet add package OwnAudioSharp.BasicLightweight cross-platform audio library for .NET desktop and mobile applications
OwnAudioSharp.Basic is a professional-grade audio engine providing high-performance audio playback, recording, and processing for Windows, Linux, macOS, Android, and iOS — without AI/ML dependencies, making it significantly smaller and faster to install than the full OwnAudioSharp package.
| Feature | OwnAudioSharp | OwnAudioSharp.Basic |
|---|---|---|
| Audio playback & recording | ✅ | ✅ |
| Multi-track mixing | ✅ | ✅ |
| Effects & SmartMaster | ✅ | ✅ |
| Network synchronization | ✅ | ✅ |
| VST3 plugin support | ✅ | ✅ |
| SoundTouch (pitch/tempo) | ✅ | ✅ |
| AI vocal removal (ONNX) | ✅ | ❌ |
| Chord detection | ✅ | ❌ |
| Audio matchering | ✅ | ❌ |
| Wave visualization control | ✅ | ❌ |
| Package size (models) | ~290 MB | < 5 MB |
Use OwnAudioSharp.Basic when you need a lean audio engine without the overhead of large ONNX model files and AI inference dependencies.
using OwnaudioNET;
// Initialize the audio engine
OwnaudioNet.Initialize();
OwnaudioNet.Start();
// Create the audio mixer using the underlying engine
var mixer = new AudioMixer(OwnaudioNet.Engine.UnderlyingEngine);
mixer.Start();
// Play an audio file
var music = new FileSource("music.mp3");
mixer.AddSource(music);
// Synchronized Multi-track Playback (Master Clock)
var vocals = new FileSource("vocals.wav");
var backing = new FileSource("backing.mp3");
mixer.AddSource(vocals);
mixer.AddSource(backing);
// Attach sources to the Master Clock for sample-accurate sync
vocals.AttachToClock(mixer.MasterClock);
backing.AttachToClock(mixer.MasterClock);
// Start sources individually
vocals.Play();
backing.Play();
// Network Synchronization - Multi-Device Audio
// Server mode (control device)
await OwnaudioNet.StartNetworkSyncServerAsync(port: 9876);
// Client mode (follower devices)
await OwnaudioNet.StartNetworkSyncClientAsync(
serverAddress: "192.168.1.100", // Or null for auto-discovery
allowOfflinePlayback: true);
// All clients automatically follow server commands
// Perfect for multi-room audio, DJ setups, installations
// Apply effects
var source = new FileSource("music.mp3");
source.Effects.Add(new ReverbEffect { RoomSize = 0.5f });
source.Effects.Add(new EqualizerEffect());
mixer.AddSource(source);
// Pitch shifting / time stretching
var pitchedSource = new SoundTouchSource("music.mp3");
pitchedSource.SetPitchSemitones(2); // Shift up 2 semitones
pitchedSource.SetTempo(1.1f); // 10% faster
mixer.AddSource(pitchedSource);
The following features from the full OwnAudioSharp package are not available in the Basic edition:
nmp.onnx, best.onnx, default.onnx, karaoke.onnx, htdemucs.onnx)If you need any of these features, use the full OwnAudioSharp package instead.
OwnAudioSharp.Basic uses a two-layer architecture:
UI/Main Thread
└─> OwnaudioNet.Send() [lock-free, <0.1ms]
└─> AudioEngineWrapper [ring buffer write]
└─> Pump Thread [dedicated]
└─> Audio RT Thread [platform-specific]
MIT License - Copyright (c) 2025 ModernMube