The audio input represents the nucleus of the cell. The effects that can be dragged and dropped represent electrons around it. The radius of the effect from the input determines its parameters. Thanks to Mark for the name!
I play the guitar, I don't have a processor in California, or the money to buy one. I also want to learn the DSP behind these awesome audio effects, so the next best option was to build a virtual processor in C++.
But..this is not your ordinary effects plugin. The interface is inspired by the building blocks of matter itself, i.e., the atom (the classical model, not the fancy quantum mechanics stuff). Drag and drop effects onto a canvas and they start rotating around the nucleus (your audio input) in fixed orbits. The radius of the effect in its orbit determines its parameters.
More fun. Remember if you inject the right amount of energy into the electrons, they can jump orbits? With the right packet of energy input, an electron jumps from a lower energy orbit to a higher energy orbit. This is exactly how a laser operates. Our effects can do the same. Shoot them with a packet of energy, and they should change orbits. Since the effect parameters are related to orbital radius, they should change too! And you have a whole different sound from your effects chain.
The GUI is done with OpenFrameworks. The audio effects are in Faust, and are integrated with OpenFrameworks' audio callback function. An external HID device like the GameTrak can be used with the application, and a little ChucK script sends OSC messages to OpenFrameworks to read input from the GameTrak.
Clone from Github repository OR download source code from this link.