How introlab/odas works
ODAS is a portable C library for embedded audio processing: it performs sound-source localization and tracking, separation, and post-filtering. The intended user-facing flow is microphone audio through analysis and source tracking to separated, post-filtered audio or data outputs. Its source tree also documents resampling, classification, mapping, and volume modules. The excerpts show the separation module’s message and processing dependencies; other workflow links are dashed where the README describes capabilities but sampled code does not establish exact runtime wiring.
Main entry points: mod_sss.c Separation Postfilter · asrc_hops.c Audio Capture · mod_stft.c Spectral Analysis · mod_istft.c Audio Synthesis
Components 19
Audio Front End
- Audio Capture
src/asource/asrc_hops.c - Spectral Analysis
src/module/mod_stft.c - Resampling
src/module/mod_resample.c - Audio Synthesis
src/module/mod_istft.c
Localization Tracking
- Source Localization
src/module/mod_ssl.c - Source Tracking
src/module/mod_sst.c - Source Classification
src/module/mod_classify.c
Separation Postfilter
- Separation Postfilter
src/module/mod_sss.c - Audio Mapping
src/module/mod_mapping.c - Noise Processing
src/module/mod_noise.c - Volume Processing
src/module/mod_volume.c
Data Transport
- Typed Messages
src/message - Message Connectors
src/connector - Audio Data Outputs
src/sink
Signal Processing
- Signal Representations
src/signal - Signal Transforms
src/system - Spatial Initialization
src/init/directivity.c
Other components
- Microphone Array
- Audio or Data Consumer
Connections 19
- Microphone Array → Audio Capture: supplies audio
- Audio Capture → Spectral Analysis: provides frames
- Spectral Analysis → Source Localization: provides spectra
- Source Localization → Source Tracking: localizes sources
- Source Tracking → Separation Postfilter: provides tracks
- Separation Postfilter → Audio Synthesis: separates audio
- Audio Synthesis → Audio or Data Consumer: outputs audio
- Separation Postfilter → Signal Transforms: uses transforms
- Separation Postfilter → Spatial Initialization: uses directivity
- Separation Postfilter → Typed Messages: accepts and emits
- Source Classification → Audio or Data Consumer: provides labels
- Resampling → Audio or Data Consumer: provides resampled audio
- Audio Mapping → Audio or Data Consumer: provides mapped audio
- Noise Processing → Audio or Data Consumer: provides noise processing
- Volume Processing → Audio or Data Consumer: provides volume control
- Typed Messages → Message Connectors: transfers data
- Message Connectors → Audio Data Outputs: routes data
- Audio Data Outputs → Audio or Data Consumer: delivers output
- Signal Representations → Signal Transforms: transforms representations