Skip to content

ModernMube/OwnAudioSharp

Repository files navigation

Logo
Buy Me a Coffee OwnAudioSharp Package

OwnAudioSharp is a cross-platform managed audio engine I built entirely in C# with zero external native dependencies. It provides direct access to native system audio APIs (WASAPI, PulseAudio, Core Audio, AAudio) through pure managed code, offering professional-grade audio capabilities that you usually only find in commercial software - completely free.

Why OwnAudioSharp?

Pure Managed Code Engine: No native library dependencies - runs anywhere .NET runs Professional Audio Features: AI-driven vocal separation, audio mastering, advanced chord detection High Performance: Zero-allocation design, lock-free buffers, SIMD optimization Commercial Quality, Free: Professional tools without licensing costs Truly Cross-Platform: Windows, macOS, Linux, Android, iOS (in progress)

⚠️ Important!

Version 2.0.0 brings major changes!

Pre-2.0.0 versions relied on native libraries (miniaudio, portaudio, ffmpeg) and were less optimized. Starting from version 2.0.0, OwnAudioSharp operates with zero external dependencies using a fully managed audio engine.

Key changes:

  • ✅ Fully managed audio engine across all platforms
  • ✅ ~90% backward compatibility with previous API
  • ✅ Significant performance improvements
  • ⚠️ Legacy APIs marked as [Obsolete] - will be removed in future versions

Using OwnaudioSharp version 2 with older code: If you need pre-2.0.0 functionality because you wrote your code for an older version of OwnaudioSharp, replace the Ownaudio namespaces in your code with the OwnaudioLegacy namespace. for example: Ownaudio.Source => OwnaudioLegacy.Source

Migration recommendation: Use version 2.0.0 or later for all new projects. The new managed engine offers better performance and maintainability.

✨ Key Features

Professional Audio Features (Free!)

Features you typically only find in commercial software:

  • AI Vocal Separation: State-of-the-art vocal and instrumental track separation using ONNX neural networks

    • Multiple quality models: default, best, karaoke
    • Professional-grade stem isolation
  • Audio Mastering: AI-driven matchering - master your tracks to match reference audio

    • Automatic EQ matching and spectral analysis
    • Professional mastering without expensive plugins
  • Advanced Chord Detection: Musical chord recognition from simple to professional

    • Real-time and offline analysis
    • Major, minor, diminished, augmented, extended chords (7th, 9th, 11th, 13th)
    • Chromagram-based recognition

Core Engine Features

  • Cross-platform Managed Engine: Pure C# implementation for all platforms

    • Windows (WASAPI), macOS (Core Audio), Linux (PulseAudio), Android (AAudio), iOS (in progress)
    • No native library dependencies - works out of the box
  • Dual API Layers:

    • Low-level Core API for direct engine control
    • High-level NET API for professional features
  • Audio Processing:

    • Multi-format support (MP3, WAV, FLAC) with built-in decoders
    • Real-time effects: reverb, compressor, equalizer, pitch shifting, tempo control
    • Multi-source audio mixing with synchronized playback
  • High Performance:

    • Zero-allocation design for real-time audio
    • Lock-free ring buffers for thread safety
    • SIMD-optimized audio processing

📦 Installation

NuGet Package Manager

Install-Package OwnAudioSharp

.NET CLI

dotnet add package OwnAudioSharp

Requirements

  • .NET 9.0 or later
  • No external dependencies

📚 Documentation & API Reference

Complete API documentation with examples is available on the official website:

The website includes:

  • Complete API reference for all classes and methods
  • Step-by-step tutorials and usage examples
  • Architecture and design documentation
  • Best practices and performance tips
  • Professional feature guides (vocal removal, mastering, chord detection)

🔧 Engine Architecture Documentation

OwnAudioSharp's audio engine is built on a modular architecture with platform-specific implementations. Detailed documentation is available for each component:

Core Components

  • Ownaudio.Core - Cross-platform interfaces, audio decoders (MP3/WAV/FLAC), lock-free buffers, and zero-allocation primitives

Platform-Specific Implementations

Each platform implementation includes:

  • Architecture overview and native API details
  • Performance characteristics and latency information
  • Platform-specific requirements and dependencies
  • Usage examples and best practices
  • Troubleshooting guides

For low-level engine development or platform-specific optimization, check out the individual platform documentation.

🚀 Quick Start Example

// Initialize OwnaudioNET (async for UI apps!)
await OwnaudioNet.InitializeAsync();

// Create file source
var source = new FileSource("music.mp3");

// Create mixer and add source
var mixer = new AudioMixer(OwnaudioNet.Engine);
mixer.AddSource(source);
mixer.Start();

// Play the source
source.Play();

// Apply professional effects
var reverb = new ReverbEffect { Mix = 0.3f, RoomSize = 0.7f };
var compressor = new CompressorEffect(threshold: 0.5f, ratio: 4.0f, sampleRate: 48000f);
var sourceWithEffects = new SourceWithEffects(source, reverb, compressor);

// Control playback
source.Volume = 0.8f;
source.Seek(30.0); // seconds

💡 Support

OwnAudioSharp is completely free and open-source, providing professional-grade audio features without licensing costs. If you find this library useful, especially for commercial purposes, consider supporting its continued development:

Why support?

  • Enables continued development and new features
  • Ensures timely bug fixes and updates
  • Improves documentation and examples
  • Saves you thousands in commercial audio library licensing costs

Your support helps keep professional audio technology accessible to everyone!

📄 License

See the LICENSE file for details.

🙏 Acknowledgements

Special thanks to the creators of: