Local source separation, restoration, transcription, and audio editing.
Neiro (音色) means timbre — the color of a sound.
Everything runs on your machine. Audio never leaves it.
| Separate | Vocals, karaoke, harmonic/percussive, 4/6-stem, drums — ensembles + null-test residual |
| Restore | Declip, dehum, denoise, dereverb, super-res, mastering — auto chains from analysis |
| Transcribe | Audio → MIDI (YIN floor; Basic Pitch / piano when installed) + MusicXML / tab / lyrics |
| Studio | Waveform + spectrogram edits, Mix drawer, Learn practice, DAW injector capture |
| Privacy | Binds to 127.0.0.1 only. Pure-DSP floor works with no model downloads. |
One engine, two doors: Tauri desktop or neiro ui in the browser. Same modules, same jobs, same local cache.
Separate — presets, quality tiers, honest stage progress (illustrative mock in the shipping design language)
Studio — multi-track timeline + Mix drawer (illustrative mock)
Transcribe — piano roll + MIDI export (illustrative mock)
Keyboard — modules 1–6 / 8–9, Mix 7, command palette Ctrl/⌘K, collapse rail Ctrl/⌘B.
Grab a release and use the one-click launcher in packaging/launchers/ (Neiro UI.bat / neiro-ui.sh), or run from source:
npm install && npm run tauri:devpip install -e .
# optional backends:
pip install -e ".[all]" # separation, piano, restoration, loudness, HF hub, yt-dlp
pip install -e ".[demucs]" # HTDemucs 4-stem
pip install -e ".[basicpitch]" # Spotify Basic Pitch — Python ≤3.11
pip install -e ".[superres]" # AudioSR — Python ≤3.11
pip install -e ".[youtube]" # URL ingest (yt-dlp)
pip install -e ".[dev]" # tests + lintingRequires Python 3.10–3.12 and ffmpeg on PATH for compressed/video inputs (WAV/FLAC work without it).
[all] omits basicpitch / superres so Python 3.12 installs stay clean — add those on 3.10/3.11.
neiro ui # local interface (browser or desktop shell)
neiro ingest "https://youtu.be/…" # cache audio locally (needs [youtube])
neiro analyze song.flac # tempo, key, loudness, conditions (JSON)
neiro separate song.flac --preset vocals
neiro separate song.wav --preset vocals-ensemble
neiro separate song.wav --preset 4stem # HTDemucs when installed
neiro enhance old.wav # auto-repair from analysis
neiro enhance vox.wav --chain dehum,denoise,normalize
neiro transcribe song.wav --out song.mid
neiro transcribe solo.wav --mode direct --no-quantize
neiro models
neiro download <model-id>
neiro watch ./inbox --out ./done --job separate --preset vocalsTranscription also writes MusicXML, ASCII tab, and LRC lyrics beside MIDI. MuseScore / Verovio on PATH upgrades score export to engraved PDF/SVG — see src/neiro/symbolic/.
ingest → lane(sr) → analyze
├→ separate(model / ensemble) → {stems…} → residual (null test)
├→ enhance(chain) → restored audio
└→ [split] → transcribe(model) → compile → Timeline → MIDI
- Typed artifacts flow through a DAG, keyed in a content-addressed cache — re-runs recompute only what changed.
- The Planner turns intent + analysis + hardware into a concrete graph. CLI, desktop, and browser are thin clients.
- VRAM manager applies a downgrade ladder (evict → fp16 → shrink chunk → CPU) so CUDA OOM never surfaces raw.
- Models are manifests, not hard deps — core is numpy/scipy; neural backends plug in via JSON.
Deep dive: docs/architecture.md.
Separate — stems, ensembles, null test
Vocals/instrumental, harmonic/percussive, karaoke, 4/6-stem, drum-kit decomposition. Weighted spectral-fusion ensemble + test-time augmentation. Every result includes a null-test residual so you can hear what was left behind.
Restore — repair chains
Declip, mains-hum removal, spectral-gate denoise, dereverb, AudioSR bandwidth extension, Matchering reference mastering — automatic conditioning chains from analysis, or explicit chains on demand.
Transcribe — audio → MIDI
Dependency-free YIN for the model-free floor; Basic Pitch and piano (with pedal) when installed. Timeline compiler does reversible groove-preserving quantization (grid for notation, micro-offsets for feel) and auto-splits dense mixes before decoding.
Analyze · Edit · Learn · DAW
- Analyze — loudness, tempo, key, clipping, bandwidth, effective-mono, hum/echo, instrument hints
- Studio — trim / silence / fade / gain / normalize / reverse with non-destructive undo
- Learn — loop regions, count-in, metronome, step / WebMIDI / DAW wait mode
- DAW — shared-window VST2 / CLAP injectors, Edison-style capture into the same UI
| Doc | What it covers |
|---|---|
| Architecture | Engine + desktop shell |
| UI | Modules, design language, shortcuts |
| Models | Manifests, licenses, fetching weights |
| Adding a model | Adapters & ensembles |
| Session | Provenance & reproducibility |
| Plugins | Extension points & trust boundaries |
| Performance | RTF benchmarks |
| Evaluation | Quality harness |
| Roadmap / Traceability | Vision & status |
| Changelog | Release history |
# Python engine
pip install -e ".[dev]"
ruff check . && ruff format --check .
pytest
python scripts/benchmark.py
python scripts/verify_models.py
# Frontend
npm --prefix frontend ci
npm --prefix frontend run lint
npm --prefix frontend run build
# Desktop shell
cd src-tauri && cargo fmt --all && cargo clippy --all-targets && cargo check
npm run tauri:dev # from repo rootContributions welcome — see CONTRIBUTING.md. Lowest-friction path: a new model manifest + adapter (guide).
| Area | State |
|---|---|
| DAG runtime, cache, VRAM ladder, manifests | ✅ |
| Analysis + DSP separation / restore / YIN transcription | ✅ no downloads |
| Neural adapters (Demucs, RoFormer, Basic Pitch, AudioSR, …) | ✅ opt-in weights |
| Studio, Mixer, Learn, Preferences, session Save/Open | ✅ |
| Desktop shell (Tauri 2 + React) | ✅ |
Watch-folder batch (neiro watch) |
✅ |
| DAW shared-window injector + Edison capture | ✅ |
| Symbolic export (MusicXML / tab / LRC; PDF via Verovio/MuseScore) | ✅ |
| Full MUSDB / MAESTRO eval tables | ⏳ needs user datasets |
Neiro 1.1.1 — UI navigation QOL (command palette, collapsible rail, session dialogs) on top of the 1.1.0 DAW + model-zoo release. See CHANGELOG.md.
Engine, desktop shell, and frontend are MIT (LICENSE).
Individual models keep their own licenses (some non-commercial / research-only). Manifests record them; neiro models shows them; export metadata carries them forward.
See docs/models.md and SECURITY.md for the local-first security model and weight supply-chain notes.
