This release is a pre-release and may not be stable for production use.
WaveSongs
A Python package for birdsong synthesis and bioacoustic analysis
WaveSongs implements the motor gestures model for birdsong developed by Gabo Mindlin to generate synthetic birdsongs through numerical optimization [1, 2] . By leveraging fundamental frequency (FF) and spectral content index (SCI) as key parameters, the package solves a minimization problem using SciPy and performs audio analysis with librosa and scikit-maad.
Validated against field recordings of Zonotrichia Capensis, Ocellated Tapaculo, and Mimus Gilvus, the model achieves <5% relative error in FF reconstruction compared to empirical data.
⚒️ Installation
Prerequisites
Steps
-
Clone the repository:
git clone https://github.com/wavesongs/wavesongs cd wavesongs
-
Set up a virtual environment (choose one method):
Using
venvpython -m venv venv
Using Conda
conda create -n wavesongs python=3.12 conda activate wavesongs
-
Install dependencies:
pip install -r requirements.txt
-
Install WaveSongs in editable mode:
pip install -e .
🚀 Gettint Started
Explore the Tutorial 1 Notebook to generate synthetic birdsongs and explore the model plots.
For advanced usage (e.g., custom gestures, parameter tuning, data measures, etc), check the other tutorials: Spectrum Measures or Synthetic Songs. More details can be found in the Documentation.
🎶 Data Integration
Pre-processed field recordings from Xeno Canto and eBird are included in ./assets/audio. To use custom recordings place .wav or .mp3 files in ./assets/audio/ or define the audios path with the ProjDirs class.
🔐 License
WaveSongs is licensed under the GNU General Public License v3.0.
📒 Citation
If this work contributes to your research, please cite:
@software{aguilera_wavesongs_2025,
author = {Aguilera Novoa, Sebastián},
title = {WaveSongs: Computational Birdsong Synthesis},
year = {2025},
publisher = {GitHub},
journal = {GitHub Repository},
url = {https://github.com/wavesongs/wavesongs}
}
🌱 Contribute
We welcome contributions! See our roadmap:
- Integrate Xeno Canto API for direct dataset downloads.
- Add ROIs analysis using
scikit-maad. This will allo automatic syllables detection and gerenration. - Improve FF parametrization for small motor gestures, chunks.
To report issues or suggest features, open a GitHub Issue.
📚 References
[1] Mindlin, G. B., & Laje, R. (2005). The Physics of Birdsong. Springer. DOI
[2] Amador, A., et al. (2013). Elemental gesture dynamics in song premotor neurons. Nature. DOI
Metadata
Release files for wavesongs 0.0.6b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| wavesongs-0.0.6b1.tar.gz | 44.1 kB | Without provenance | Details for wavesongs-0.0.6b1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| wavesongs-0.0.6b1-py3-none-any.whl | Python 3 | none | any | Details for wavesongs-0.0.6b1-py3-none-any.whl |
Total release size: 91.5 kB
Release files / wavesongs-0.0.6b1.tar.gz
| Download URL | wavesongs-0.0.6b1.tar.gz |
|---|---|
| Size | 44.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e766872de6ddfb3091df2d30fdc5b5a2866f6772c79b7a217e9c7a61ca3ffc1
|
|
BLAKE2b-256 checksum How to use checksums |
3ed75044bbfe1b02062a401c7b09628e0d51b7a12008e690868b9ca6a84844c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.12.2 Linux/6.11.0-17-generic
|
Release files / wavesongs-0.0.6b1-py3-none-any.whl
| Download URL | wavesongs-0.0.6b1-py3-none-any.whl |
|---|---|
| Size | 47.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b0663a49401234a8d42d337a2a1baec1b12b27bd69248dc91ef7d9ef8642c4b
|
|
BLAKE2b-256 checksum How to use checksums |
da1e89d713f310817e66c7972a02eb526abbb1a68649c5ea86214c163f9c2be3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.12.2 Linux/6.11.0-17-generic
|
Security for wavesongs 0.0.6b1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.