Freak new filters
I have been working of the Freak hardware for the last weeks and I can see the light at the end of the tunnel. Even when Freak (hardware) is a copy of the Freak software, there are challenges (and opportunities) when porting the code.
One big difference is that in the Software version I can perform very complex operations thanks to the powerful x86 architecture that takes advantage of SIMD instructions. The hardware version runs on an ARM based microntroller, which is fast, but does not have some of the instructions I rely to make the models fast. The second big difference is that in the hardware version I'm running the filter at either 96 kHz or 192 kHz of sampling rate. Running at these high sampling rates gives me some room to produce a smooth and high quality sound. While in the software versions I try to comply to the sampling rate selected by the user, which in most cases is 44.1 kHz.
When porting a filter model to the Freak hardware I have a fixed budget of computing power to spend. If the filter model is too complex, I need to optimise it. If the filter model is simple, I can spend more CPU to make it sound better.
So far Freak hardware includes 13 filter models:
Vortex-RS (LP, BP)
Unstabile (LP, BP, HP)
Lateralus-TH (6dB, 12dB, 18dB, 24dB)
Tangents-YU (LP, BP, HP)
Tangents-MS (LP, BP, HP)
Tangents-XX (LP, BP, HP)
Stabile (LP, BP, HP)
Ferox (LP, BP, HP, Notch)
Rescomb (Comb+, Comb-)
Vorg (LP, HP)
Unnamed (LP, BP, HP, Low shelf, High shelf)
Unnamed (LP 96 dB)
These are about 36 different combinations. You have to notice that there are two unnamed filters. The first one is a 12dB filter that has Low, Band and High pass filters in addition to Low and High shelf filters. The shelf filters can be used to boost or cut either the lows or highs in the sound. The second unnamed filter is a low pass with a very steep cut (96 dB per octave).
I had to left out two filters: Vortex-LV version and Lateralus-DF. These two simulations sound fantastic but they are far two heavy for the ARM processor to simulate at 96 kHz of sampling rate.
I'm thinking on adding more exotic filters and effects to the mix. I'm gonna keep adding features until I run out of memory.