-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Romain Clement edited this page Aug 30, 2014
·
3 revisions
The name Yodel is a reference to the yodelling singing technique, mostly known in the Swiss Alps. This type of singing is all about sound variations, and so is digital audio signal processing.
Yodel, the Swiss Army knife for your sound.
-
Analysis:
- Discrete Fourier Transform
- Fast Fourier Transform
- Windowing: Hamming, Hanning, Blackman
-
Filtering:
- Single Pole: low-pass, high-pass
- Biquad: low-pass, high-pass, band-pass, all-pass, notch, peak, low-shelf, high-shelf
- State Variable: low-pass, high-pass, band-pass, band-reject
- Parametric Equalizer
Here are the steps to start working for Yodel:
- Clone or fork the Git repository from the develop branch:
git clone https://github.com/rclement/yodel.git
cd yodel && git checkout develop
- Install
python
(preferably version 3.4 and/or 2.7) andpip
on your machine
- On Mac OSX:
brew install python
- On Ubuntu:
sudo apt-get install python3 python3-pip
- On ArchLinux:
sudo pacman -S python python-pip
- Setup a virtual environment in the cloned repository:
- Before Python 3.4:
pip install virtualenv && virtualenv yodel
- From Python 3.4:
pyvenv yodel
- Install the required Python packages for development inside your virtual env:
pip install -r requirements-dev.txt
- Install Yodel as a development package:
make develop
- Run
tox
and check everything is good. You should obtain acongratulations :)
message at the end. - Make changes, fix bugs, add features but remember to follow the following guidelines:
- Always work in your virtual environment
- Write unit-tests while you are writing code. It will give you confidence in what you're doing. Check the
test
folder for examples. - Write API documentation as you are writing code. Check the results with
make docs
. - After each change, be sure to run
tox
or at leastmake test
. - Check basic Python code lint with
make lint
and fix potential issues. - Always follow the Git Flow branching model.
Yodel uses the semantic versioning rules to keep versions tidy. For now, Yodel is still in development state so version numbers are kept to the 0.y.z
format