0
0

I’ve already taken a look at:
http://52.88.2.202/forum/viewtopic.php … scratching

and attempted to contact the original poster to no avail.

What I’m interested in doing is actually generating the ‘scratch’ part of the sound, as well as playing a sound in reverese. Has anyone had experience doing this, and be willing to offer me some insight?

I can already control the song via the frequency, but that does not generate the distortion that a needle would create (obviously). Has anyone done something like this?

Thanks for any help.

Cheers.
Casey

  • You must to post comments
0
0

There are a few parameters that are quite important for realistic scratching.

-A good function on how the frequency should change over time
-On a vinyl, sound gets louder when played faster, and less loud when played slower
-Very good interpolation/resampling algorithms. Especially at very low speeds, you will more easily hear the higher frequencies that a bad resampling algorithm will generate. A hack that you could apply (since you don’t have control over the algorithm in fmod 3) is to add a lowpass filter to your sound. At regular speed, it shouldn’t do anything, at half speed, tones above 11khz should be filtered, at 1/4th speed all above 6.5khz should be filtered, …
-Smooth non-aliased frequency transitions
This is also something that you can’t really control with fmod 3, since I think that a complete buffer will be resampled with the same frequency.
This means that while your sound is getting slower, rather than slowing down continuously, it will get slower in steps, of size depending on the buffer size.

  • You must to post comments
0
0

Thanks to everyone for the great responses…

So, to sum up:
[quote="Adion":zmvdqurp]There are a few parameters that are quite important for realistic scratching.[/quote:zmvdqurp]

Of those parameters, I only really have control over:
[quote="Adion":zmvdqurp]-A good function on how the frequency should change over time[/quote:zmvdqurp]
This is something we recently sort of stumbled upon in watching/listening/playing with real turntables, so good to see that we weren’t alone in thinking this.

[quote="Adion":zmvdqurp]-On a vinyl, sound gets louder when played faster, and less loud when played slower[/quote:zmvdqurp]
Great suggestion, this isn’t something that we had thought about yet.

[quote="Adion":zmvdqurp]-Very good interpolation/resampling algorithms. Especially at very low speeds, you will more easily hear the higher frequencies that a bad resampling algorithm will generate. A hack that you could apply (since you don’t have control over the algorithm in fmod 3) is to add a lowpass filter to your sound. At regular speed, it shouldn’t do anything, at half speed, tones above 11khz should be filtered, at 1/4th speed all above 6.5khz should be filtered, … [/quote:zmvdqurp]
So for this we’ll have to create a DSP unit that filters out the elements that shouldn’t be there. Right? This is something I had begun to realize, but wanted to have some verification before I run off and figure out how to write a DSP that does this.

  • You must to post comments
0
0

If you want to use the hacks to improve the resampling, you could also look at the DirectX effects that you can use directly from fmod.
The highpass filter is what you are looking after.

If you really want, the resampling/interpolation is something that you could also write yourself. You could create a new stream with your custom callback to fill it, and then access the samples of a fmod Sample yourself to calculate the new samples.
If you do this, you can also control the smoothness of the pitch change, but getting it right is not too simple.

  • You must to post comments
0
0

[quote="Adion":3ilgbaig]If you want to use the hacks to improve the resampling, you could also look at the DirectX effects that you can use directly from fmod.
The highpass filter is what you are looking after.[/quote:3ilgbaig]

Which do you mean? Is the highpass filter the FX_MAX?

[code:3ilgbaig]
FSOUND_FX_CHORUS
FSOUND_FX_COMPRESSOR
FSOUND_FX_DISTORTION
FSOUND_FX_ECHO
FSOUND_FX_FLANGER
FSOUND_FX_GARGLE
FSOUND_FX_I3DL2REVERB
FSOUND_FX_PARAMEQ
FSOUND_FX_WAVES_REVERB
FSOUND_FX_MAX
[/code:3ilgbaig]

If I use this, does my code only work on systems that support DX8?

Thanks for the information and assistance, it’s great having someone with some experience/know-how on this…

  • You must to post comments
0
0

Well, I never actually used the DirectX effects, seems the closest to a filter would be the parametric eq, but since I haven’t used it myself, I don’t know how you should use it.

  • You must to post comments
Showing 5 results
Your Answer

Please first to submit.