To expand the versatility of my final project for Digital Audio Programming I decided to explor adding Vocal removal.
The standard technique is relatively simple to implement but can be hit-or-miss. It relies on the assumption that vocals will be mixed ‘center’ meaning equal energy in each channel, left and right. By negating one channel of audio and adding it to the other the vocals in theory will cancel out.
This works near perfectly with some songs and not at all with others. Some songs completely cancel out, indicating that they were not very stereophonic to begin with.
Another issue to deal with is that MP3 is a ‘lossy’ encoding scheme so the audio itself is altered when it is saved. This means that even if a certain segment of the song is supposed to be the same in both channels there may be slight differences. The result is that ‘echoes’ of the vocals can be heard. Sometimes it is barely noticeable, other times it is completely counterproductive and renders the method unusable.
The vocal removal effect is now integrated with the Juce Pitcher, before the pitch shifting. It is important to do it before pitch shifting because the pitch shifting would render any chance of effective vocal removal essentially zero.
An interesting thing to note is that the observable/desired effects of pitch-shift are focused more on the vocals. Removing the vocals and then trying to pitch shift does not always result in a largely discernable change. Nevertheless, it is possible to do both at once.
The CPU usage meter in Ableton Live hits a max of about 30% when using both vocal removal and pitch shifting which is higher than desired but still workable.
I also added enable/disable buttons for the Low-pass and high-pass filters in case it is desired to pitch shift on the entire frequency range.