I went to this huge music store quite a few times, usually playing the synthesizers since I'm a keyboard kind of guy, and I went to the DJ department of the store and saw a few CD scratchers (which support CD's, CDR's, CDRW's, and also run MP3's off the CD's as well). They were expensive to all hell though, like $1000+. So I came up with an idea of creating my own software to do this.
Here is my plan. I will be using DirectX8 on VB to display two 3D turntables with a mixer in the middle. It will allow the user to load one audio file into one turntable, and another onto the other turntable. When they are loaded, Vinyls are displayed. The user can turn on any of the turntables and it will run the audio as the Vinyl spins. Using the mouse, the user can scratch the vinyl, which should also cause the music to sound as though it has scratched, only not a fake scratch. A real scratch. My theory on how scratching is produced is that it is a combined sound of a scratch sound when the needle rubs along the surface of the vinyl and the speed of the sound the vinyl makes (forward as well as in reverse) when the DJ manually rotates the viny back and forth to scratch. That and some effects you can do using the crossfader, which I plan on controlling using the mouse wheel.
The physics behind it seem like common sense. Depending on the speed the vinyls rotating will depend on the speed of the sound, whether it is playing forwards, backwards, fast, or slow. When the DJ scratches, you can hear the music playing at the speed the vinyls manually being rotated back and forth, plus the sound of the scratch.
Is it possible to control the sound speed of MP3's and WAV's in real time using DirectSound and DirectShow? It seems very possible. And I'm supprised to not see any music programs have a feature like this.
If it is possible, sites that contain tutorials and source code on scratching or controlling the sound speed in real time would be a plus.
