I spent all day today integrating the effects we have at the moment into the final GUI. There where a number of issues trying to do this. the main problem being the order in wihch the effects where added. For example if you delay a signal and then distort it, that would be fine, but if you wanted to remove the delay…. problem. You would need to redistort the original when you remove the delay and vice versa. this would have been easy to code some massive statments to get around this but i like a challange and so came up with a clever way to do it.
The original signal will be saved at all times as a matlab vector of doubles. A effectSignal vector is created each time the add effects button is selected, this vector is a copy of the original signal, each effect which has been chosen is then added to the vector. Each time you choose to use an effect a boolean value is set. This lets a effectController method know which effects are selected. When the methos is called it simply applies the selected effects to the effectVector. So when you add delay, the delay is added to the effect vector, add distortion and distorion is added to the same vector. Now remove delay and the programme will recreate the effect vector and add distortion in the backround.
Each time the signal gets an effect added to it the plot changes to represent the new frequency of the signal. Also the fft of the signal can be viewed with the changes present.
Next week we plan to integrate the reverb effect into the GUI and also something a little bit different which i will discuss next week.
