I am working (well, playing...) in ruby, attempting to create some useful audio tools. Not anything live, not something like a midi synthesizer or live action filters or an mp3 player. What I am making are simple tools that open a .wav file, modify it, and save it. I have good generators (square, sine, noise, triangular, sawtooth, etc... and more!). I have an envelope filter with which I am comfortable. I have a good tremolo (automatic envelope filter).
The closest thing I have to a low-pass, high-pass or parametric equalizer is a tremolo that runs into the audio range... basically turning the frequency up until the tremolo is in the audio frequency range. It's an interesting sound.
Do you know how to implement a parametric equalizer in ruby (preferably)?
Sounds like a fun project.
You can implement low-pass filters by "blurring" across samples, and high-pass by other simple maths (can't remember what that is at the moment)
However, if you are working with audio, you will eventually want to convert signals to frequency domain and back. The best open-source library for this is FFTW3, and there is a Ruby binding in the gem
fftw3
- it works withnarray
which if you ware not already using you should consider anyway since it will perform very well on manipulating arrays of 1000s of individual samples.To get started converting to frequency domain:
Sorry this is not a full-featured piece of code, but hopefully gives you enough pointers to go play!