Skip to content

Feature Map

This page is the top-level map of libsonare. Start here when you know the task you want to solve but do not yet know which runtime, API page, or implementation note to open.

If this is your first time using libsonare, read Learning Path first. This page is a map of the full surface area, so it is broader than a first tutorial.

What You Will Learn

By the end of this page you should be able to:

  • locate a feature family without scanning every API reference;
  • choose the runtime page that matches browser, Python, Node native, CLI, C++, or C ABI work;
  • tell whether a topic belongs in task guides, API references, or implementation/evidence pages;
  • use the source files listed here as the final authority when the public surface needs verification.

How To Use This Map

This page is not a list to memorize. Choose one task, then follow that row to the right runtime and guide.

Runtime, API, and binding

Runtime means where the code runs: browser, Python, CLI, Node, or C++. API means the functions and classes you call. Binding means the layer that lets another language call the same C++ core. If you are unsure, choose one runtime first and read only that runtime's API page.

If you need to...Read...
Find whether a feature existsFeature Families
Choose an API surfaceRuntime Entry Points and Binding Parity
Understand DSP behavior and limitsDSP Implementation Notes
Check algorithm or paper basisAlgorithm References
Check test coverage and validation statusImplementation Validation

Runtime Entry Points

RuntimePackage or headersMain docs
Browser / Node WASM@libraz/libsonare plus worklet subpathsWASM, JavaScript API
Python / CLIpip install libsonarePython API, CLI
Node native@libraz/libsonare-native source buildNative Bindings
C++sonare.h, module headersC++ API
C ABIsonare_c.h plus module headers such as sonare_c_acoustic.hC++ API, Binding Parity

Feature Families

Acronyms in the feature table
  • STFT — short-time Fourier transform, the basis of spectrograms.
  • MFCC — compact timbre features often used for ML and classification.
  • CQT / VQT — frequency transforms aligned with musical pitch spacing.
  • NNLS / NMF — matrix-factorization methods that split audio features into non-negative parts.
  • PLP — a feature that estimates the main rhythmic pulse.
  • LUFS / LRA — loudness and loudness-range metrics.
  • VCA — a group control that moves several strip levels together.
  • RIR — room impulse response.
  • Equivalent-room estimation — fitting a practical room model from audio.
  • Room morphing — applying a target-room character as an effect.
FamilyWhat is coveredMain pages
AnalysisBPM, key, key candidates, beats, downbeats, onsets, chords, sections, melody, timbre, dynamics, rhythm, acoustic analysisJavaScript API, Python API, C++ API
FeaturesSTFT, mel, MFCC, chroma, spectral contrast/poly features, zero crossings, pitch and tuning, CQT/VQT, NNLS chroma, NMF decomposition, nearest-neighbor filtering, tempogram, Fourier tempogram, cyclic tempogram, PLP, LUFS/LRAJavaScript API, librosa Compatibility
MeteringOffline level, loudness, crest-factor, true-peak and DC-offset meters; clipping and dynamic-range reports; stereo correlation/width; vectorscope, phase-scope, and spectrum snapshotsJavaScript API, Python API, Native Bindings
Scale quantizationSnap MIDI notes to a scale, measure the correction in semitones, and test pitch-class membershipJavaScript API, Python API
Effects and editingHPSS, HPSS with residual, harmonic/percussive extraction, normalize, trim, remix, phase vocoder, time stretch, pitch shift, pitch correction, note stretch, region-based spectral editing, voice pitch/formant change, realtime voice presetsEditing DSP, Spectral Editing, JavaScript API
Room acousticsImpulse-response reverberation time (RT60 / EDT), clarity (C50 / C80), definition (D50), blind acoustic estimation, equivalent-room estimation, geometric RIR synthesis, and creative room morphingRoom Acoustics, JavaScript API, Python API
MixingChannel strips, buses, sends, VCA groups, scene presets, automation, stereo/dual/surround pan metadata, meters, goniometer, offline renderingMixing Engine, Mixing Scene JSON
Mastering assistantSource audio profile, chain suggestion JSON, streaming-platform preview JSONMastering Assistant
MasteringPresets, full chains, named processors, processor catalog metadata, insert parameter metadata, pair processors, pair analyses, stereo analyses, streaming mastering chainMastering Processors, DSP Implementation Notes, Algorithm References, Mastering Implementation
Streaming MIRLive mel/chroma/onset frames, progressive BPM/key/chord estimates, chord progression and pattern scoresRealtime and Streaming, WASM
Realtime engineTransport, tempo, structured markers, metronome, automation lanes, graph topology, clips, MIDI clip schedule, per-track lane mixer (lanes, buses, sends, channel strips, pan, insert parameters), capture, monitor bus, stereo/wide meter telemetry, scope telemetry and Worklet scope rings, bounce/freezeRealtime and Streaming
Projects & arrangementAudio/MIDI tracks and clips, undo/redo, takes/comping, warp, MIDI sequencing, SMF and MIDI 2.0 Clip File (SMF2CLIP) import/export, JSON save/load, and offline bounceProject Editing, Project Bounce, Recording and Takes, Realtime and Streaming
Instruments & MIDIMulti-engine synth with a GM fallback bank, GS-compatible SoundFont 2 player, and live MIDI playbackBuilt-in Instruments, SoundFont 2 Player, MIDI Input
Inverse featuresMel to STFT/audio, MFCC to mel/audioInverse Features
Utility / librosa parityFrame/sample/time conversions, dB conversion, pre/de-emphasis, silence trim/split, frame/pad/fix helpers, peak pick, vector normalize, PCEN, tonnetzlibrosa Compatibility

Implementation And Evidence Pages

PageRole
Mastering ProcessorsPublic registry of preset names, processor IDs, pair processors, pair analyses, and stereo analyses
DSP Implementation NotesWhat each DSP family does internally, including real-time boundaries and shared building blocks
Algorithm ReferencesStandards, papers, algorithm families, and compatibility references that are visible in source, tests, or README
Implementation ValidationTest and validation map for feature groups, including librosa reference checks and real-time safety notes

WASM Export Families

The main @libraz/libsonare TypeScript wrapper exports several groups:

GroupExamples
Initializationinit, isInitialized, version
Engine capabilitiesengineAbiVersion, projectAbiVersion, voiceChangerAbiVersion, engineCapabilities
Audio workHigh-level analysis, effects/editing, mastering, mixing, feature extraction, inverse features, conversion helpers
Object APIsAudio, StreamAnalyzer, StreamingMasteringChain, StreamingEqualizer, StreamingRetune, RealtimeVoiceChanger, Mixer, RealtimeEngine

The same npm package also exports @libraz/libsonare/worklet for the AudioWorklet bridge, @libraz/libsonare/rt for the reduced sonare-rt realtime module factory, and raw WASM asset subpaths (@libraz/libsonare/wasm, @libraz/libsonare/rt-wasm) for bundlers or custom loaders.

The complete function list is maintained in bindings/wasm/src/index.ts in the libsonare repository and mirrored in JavaScript API. When in doubt, use the wrapper source as the most specific reference for the WASM export surface.

CLI Command Families

The Python CLI covers the common user-facing commands:

  • version/info and core analysis;
  • feature summaries and LUFS;
  • file-writing editing commands such as pitch-correct, note-stretch, and voice-change;
  • acoustic/rhythm/dynamics/timbre summaries;
  • equivalent-room estimation, RIR synthesis, and room morphing;
  • mastering processor entry points and simple mixing.

The source-built C++ CLI exposes a broader lower-level command set. Use it for section/melody/boundary utilities, CQT/tonnetz/PCEN/Fourier tempogram helpers, extra time/pitch file-processing commands, mastering pair/stereo lists, and mixing scene preset export.

See CLI for command examples and Binding Parity for runtime differences.