Real-time sound analysis and recording tool for researchers.
Chirp is a desktop application for multi-stream audio monitoring, visualization, and threshold-triggered recording. It was designed with bioacoustics research in mind but works for any audio analysis task.
- Monitor and record from multiple audio devices simultaneously
- Independent configuration per stream (device, sample rate, threshold, filters)
- Start/stop acquisition and recording individually or all at once
- Sidebar with live status indicators and mini-amplitude previews
- Spectrogram display with configurable FFT size, window function, and frequency scale (Linear / Log / Mel)
- Amplitude waveform with scrollable Y-axis zoom
- Adjustable display buffer duration (5s – 60s)
- Gain, dB floor, and dB ceiling controls for spectrogram contrast
- Configurable frequency display range
- Automatic recording triggered when amplitude crosses a configurable threshold
- Pre-trigger buffer captures audio before the trigger event
- Hold bridges gaps between threshold crossings — silent tails are trimmed if no re-crossing occurs
- Post-trigger window extends saved audio by a configurable duration after the last crossing
- Adjustable minimum crossing duration and maximum recording duration
- Drag the threshold line directly on the amplitude plot
- Real-time clipping detection when audio peaks reach ≥ 99% of full scale
- Amplitude waveform turns red to alert on saturation
- Optional Butterworth bandpass filter per stream
- Configurable low and high frequency cutoffs
- Custom output folder, filename prefix, and suffix per stream
- Reference date tracking with automatic day-count subfolder naming (e.g., for days post-hatch)
- Config Mode — full control panel for adjusting all parameters
- View Mode — distraction-free monitoring of all streams with adjustable grid columns and panel height
- Save and Save As for configuration files (
.jsonformat) - Load restores complete configurations (also reads legacy
.chirpfiles) - All parameters preserved including device names, sample rates, trigger settings, and display options
- Optionally synchronize threshold, spectrogram settings, frequency range, and sample rate across all streams
- Python 3.11+
- A working audio input device
# Clone the repository
git clone https://github.com/TamirEliav/Chirp.git
cd Chirp
# Create a conda environment (recommended)
conda create -n chirp python=3.11
conda activate chirp
# Install dependencies
pip install -r requirements.txtsounddevice— audio capturenumpy— numerical processingscipy— signal processing and WAV outputmatplotlib— spectrogram renderingPyQt5— GUI framework
python chirp.py- Launch the app — it opens maximized with one recording stream
- Select an audio input device from the dropdown
- Click Start Acq to begin monitoring
- Adjust the threshold (drag the line on the amplitude plot or use the slider)
- Click Start Rec to enable threshold-triggered recording
- Set an output folder for saved WAV files
- Click Add Recording to create additional streams
- Each stream can use a different device and settings
- Switch to View Mode for a clean multi-stream monitoring layout
- Use Save Settings to export your full configuration to a
.chirpfile - Use Load Settings to restore it later
8000 · 16000 · 22050 · 44100 · 48000 · 96000 Hz
MIT