#1 Weekly Report
A week has passed since Google Summer of Code '14 has started and I'm enjoying every moment of it. With constant help from my mentor, Daniel Schürmann, I have managed to do most of the work towards moving the current EQ into the effect space. The newly created EQ effect behaves exactly like the current equalizer. It uses three EngineFilterButterworths instantiated with a sample rate which is fetched from the engine and two corner frequencies which are obtained from the preferences “Equalizers” menu.
Here are the steps I took in order to achieve an EQ Effect, which is intended to be a copy of the default equalizer:
Create a new EqEffectGroupState class which stores three EngineFilterButterworth for processing the signal
Create a new EqEffect class which handles the processGroup method and contains three EngineEffectParameters and two ControlObjectSlaves
Create an EffectManifest for the current effect and add three parameters to it; these parameters are the knobs which are responsible for controlling the equalizer's low, mid and high filters
Connect the two ControlObjectSlaves to “LoEQFrequency” and “HiEQFrequency” to be able to fetch the user's frequency preferences
Add a new ControlObjectSlave field to GroupEffectProcessor class (m_pSampleRate); this field provides the current sample rate to the effects framework
Initially, I and Daniel thought of creating it as a static field inside GroupEffectProcessor, but being a static field it meant its lifetime will end at the end of the program, which isn't something desirable
Register the newly created effect with NativeBackend, using NativeBackend::registerEffect<T> method
Work still to be done:
The branch I'm working on can be seen here: eq_effect_branch
Stay tuned for updates!
Back to the main page!
Translations of this page: