AudioSeparator.Core
0.2.0-beta.2
dotnet add package AudioSeparator.Core --version 0.2.0-beta.2
NuGet\Install-Package AudioSeparator.Core -Version 0.2.0-beta.2
<PackageReference Include="AudioSeparator.Core" Version="0.2.0-beta.2" />
<PackageVersion Include="AudioSeparator.Core" Version="0.2.0-beta.2" />
<PackageReference Include="AudioSeparator.Core" />
paket add AudioSeparator.Core --version 0.2.0-beta.2
#r "nuget: AudioSeparator.Core, 0.2.0-beta.2"
#:package AudioSeparator.Core@0.2.0-beta.2
#addin nuget:?package=AudioSeparator.Core&version=0.2.0-beta.2&prerelease
#tool nuget:?package=AudioSeparator.Core&version=0.2.0-beta.2&prerelease
AudioSeparator.Core
Session API and task pipeline for AudioSeparator — probe, validate, run tasks, and return separated stems without file I/O.
Part of AudioSeparator — modular .NET audio stem separation.
Install
dotnet add package AudioSeparator.Core
Reference this package when building a custom separator backend. For Demucs/htdemucs, use AudioSeparator.Onnx.Demucs instead.
When to use this package
- You are implementing a non-ONNX or custom pipeline backend on top of the shared session model.
- You need
AudioSeparatorBase,SeparationSession, andProcessTaskto orchestrate read → infer → result assembly. - You want the core pipeline without ONNX Runtime or model-specific code.
For ONNX backends, start from AudioSeparator.Onnx instead of subclassing Core directly.
Core principle
Core returns
SeparationResultwith materializedStemAudioper stem. There is no write task in the pipeline — file output lives in NAudio/FFMPEG extensions.
Quick start
using AudioSeparator.Abstractions;
using AudioSeparator.Abstractions.Audio;
using AudioSeparator.Abstractions.Tasks;
using AudioSeparator.Core;
public sealed class MySeparator(MyBuilderContext context) : AudioSeparatorBase<MyContext>(context)
{
protected override IEnumerable<IProcessTask> CreateProcessesTask(MyContext context)
{
yield return new AudioReadTask(context);
// Add your inference task here
}
}
Register reader/writer via the builder (UseAudio), then:
using var separator = myBuilder.Build();
var session = await separator.CreateSession("input.wav");
var result = await session.RunAsync();
Session flow
| Step | Component | What happens |
|---|---|---|
| 1 | AudioSeparatorBase.CreateSession |
Probe source via IAudioReader, validate against requirements |
| 2 | SeparationSession |
Runs IProcessTask list sequentially |
| 3 | AudioReadTask |
Single read pass into input chunks |
| 4 | Inference task(s) | Backend-specific (e.g. ONNX in sibling package) |
| 5 | RunAsync |
Returns SeparationResult with StemAudio per stem |
Key API
| Type | Role |
|---|---|
AudioSeparatorBase<TContext> |
Abstract separator; creates session, validates source, wires tasks |
AudioSeparatorBuilder<TBuilder, TContext> |
Abstract fluent builder |
AudioSeparatorBuilderContext |
Builder state: reader, writer, requirements |
AudioSeparatorContext |
Runtime context (Requirements, InferenceSpec, chunks) |
SeparationSession |
ISeparationSession — runs tasks, assembles result |
ProcessTask |
Abstract task base with progress callbacks |
AudioReadTask |
Reads input via IAudioReader into InputChunks |
Requirements
- .NET 10
- AudioSeparator.Abstractions
Related packages
| Package | NuGet | Description |
|---|---|---|
| AudioSeparator.Abstractions | Contracts | Interfaces and DTOs |
| AudioSeparator.Onnx | ONNX layer | Generic ONNX backend base |
| AudioSeparator.Onnx.Demucs | Demucs | Ready-to-use Demucs backend |
Source: AudioSeparator.Core on GitHub
License
MIT — see AudioSeparator repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AudioSeparator.Abstractions (>= 0.2.0-beta.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AudioSeparator.Core:
| Package | Downloads |
|---|---|
|
AudioSeparator.Onnx
ONNX Runtime backend for AudioSeparator — session introspection, chunked inference, and configurable execution providers. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0-beta.2 | 70 | 9/13/2026 |
| 0.2.0-beta.1 | 73 | 9/13/2026 |
| 0.2.0-beta | 90 | 8/30/2026 |
| 0.1.0-beta | 100 | 8/13/2026 |