🚧 This project is a work in progress.
This project explores the minimum pulse density required for velvet noise to be subjectively perceived as Gaussian white noise when used in artificial reverberation. The study includes:
- Stimulus generation using synthetic RIRs
- Velvet noise with varying pulse densities
- ABX listening test procedure
- Data analysis and threshold estimation
You can find the full paper in the paper/
folder.
. ├── data/ # Original and generated audio data
├── notebooks/ # Analysis and visualization
├── paper/ # Original paper in pdf
├── results/ # Plots, CSV and audio files results
├── scripts/ # Scripts to generate audio signals and plots
├── src/ # Source code to process audio signals
| ├── analytics/
| ├── audio/
| ├── reverb/
| └── visualization/
├── setup.py
├── LICENSE
├── pyproject.toml
└── README.md
Dependencies are managed using poetry:
poetry install
Activate environment:
eval "$(poetry env activate)"
Example to generate a test stimulus using white noise:
python scripts/generate_stimulus.py -f data/raw_drum.wav -n White -v
Example to generate a test stimulus using velvet noise with a pulse density of 300 p/s:
python scripts/generate_stimulus.py -f data/raw_drum.wav -n Velvet -pd 300 -v
See notebooks/analysis.ipynb
for data analysis and threshold plots.