views:

126

answers:

1

I was playing with a karaoke application on iPhone and came up with following questions:

  1. The application allowed its users to control the volume of the artist; even mute it. How is this possible? Does adjusting artist sound/setting equalizer etc. mean performing some transformation of required frequencies? What sort of mathematics is required here(frequency domain transformations)?

  2. The application recorded users voice input via a mic. Assuming that the sound is recorded in some format, the application was able to mix the recording with the karaoke track(with artists voice muted). How can this be done? Did they play both the track and voice recording simultaneously? Or maybe they inserted additional frequency(channel?) in the original track, maybe replaced it?

  3. What sort of DSP is involved here? Is this possible in Java, Objective C?

I am curious and if you have links to documents or books that can help me understand the mechanism here, please share.

Thanks.

+1  A: 

I don't know that particular application, probably it has a voice track recorder separately.

For generic 2-channels stereo sound the easiest voice suppression can be performed assuming that artist's voice is somehow equally balanced between two channels (acoustically it appears in center). So the simplest 'DSP' would be subtract one channel from another. It does not work that well however with modern records since all instruments and voice are recorded separately and then mixed together (meaning that voice will not be necessarily in phase between two channels).

Archie
It seems to me that there were two separate mp3s involved: an instrumental and a voice track. Both of these were played concurrently ,maybe, using the AudioSession APIs in iPhone (SoundPool in Android?).The audio was recorded from the microphone and when the user chooses preview, they were playing the recorded audio in sync with the instrumental track.
Samuh