0
0

Hi,
i would to know if fmod can reproduce a dj scratch sound.
I think i must play the audio sample backward or foreward with different velocity and pitch.
Is it possible?

  • You must to post comments
0
0

Have been battling the same problems but in the end came up with a satisfying solution. Check out http://blog.glowinteractive.com/index.p … on-iphone/ It’s using BASS, not FMOD, but there’s almost 1-1 correspondence between the two libraries and I’m not using any advanced functionality of BASS. In fact, the core of my demo is not using any BASS functions at all.

  • You must to post comments
0
0

[quote="icuurd12b42":1i1dmbrr]Scratch is when you move the needle sideways. [/quote:1i1dmbrr]

In the DJ world, "scratch" is when you move the vinyl record forward and backward at different rates of speed. DJ’s don’t move the needle sideways (that breaks them).

Just FYI

  • You must to post comments
0
0

Yes but not with streams.

You can simply use Channel::setFrequency with a negative number, and you would have to make sure the sound was created with FMOD_SOFTWARE

  • You must to post comments
0
0

[quote="brett":325fbgyr]Yes but not with streams.

You can simply use Channel::setFrequency with a negative number, and you would have to make sure the sound was created with FMOD_SOFTWARE[/quote:325fbgyr]

I’m trying to replicate the scratch sound so i make a software turntable that runs at 1.5 radians per second, like the real one.
I change the frequency according to the angular speed of turntable.
What i get it’s not a "scratch" sound :(
I think i should apply some effect but i don’t know which one… any ideas?

When i spin the vinyl i simply change the frequency but maybe i must "skip" some datas and jump to another position of the sound?

Any suggestion is appreciated :)

  • You must to post comments
0
0

It’s an interesting problem…

Scratch is when you move the needle sideways. I would record a scratch sound, continuous speed across a disk. Then in your game, you can play it looped and use the setfrequency according to how fast the sideways motion is. No sidways motion would be frequency 0 (eqiv to paused). the faster the movement, the higher the frequency.

Now, the complex stuff, I dont know if I would go too precise or realistic on this, you need to map a disk to a sound length, where as the number of turns, say at 33.3 or 45 turns a minute results in a series of grooves on the disk. where as you would know the position in the file you would be if the disk is at rotation such and such and the needle at groove 10 would result to SetPostion(.3) for exampe.

You can always cheapen this by hard coding the number of groves (turns) to be always 100, and each grove be the same lenght; it would simplify the math. Like one turn would equiv 1/100 the of the file length.

So you can easily call SetPosition from what grove you are on and/or what the angle is on the disk.

Spinning the disk backward forward faster, you would have to calculate the appropriate frequency in order to make it sound right, but once the movement is done, again, SetPosition should do the trick to resynch the position of the sound to the disk and needle position.

  • You must to post comments
0
0

[quote="icuurd12b42":1nneszbu]It’s an interesting problem…

Scratch is when you move the needle sideways. I would record a scratch sound, continuous speed across a disk. Then in your game, you can play it looped and use the setfrequency according to how fast the sideways motion is. No sidways motion would be frequency 0 (eqiv to paused). the faster the movement, the higher the frequency.

Now, the complex stuff, I dont know if I would go too precise or realistic on this, you need to map a disk to a sound length, where as the number of turns, say at 33.3 or 45 turns a minute results in a series of grooves on the disk. where as you would know the position in the file you would be if the disk is at rotation such and such and the needle at groove 10 would result to SetPostion(.3) for exampe.

You can always cheapen this by hard coding the number of groves (turns) to be always 100, and each grove be the same lenght; it would simplify the math. Like one turn would equiv 1/100 the of the file length.

So you can easily call SetPosition from what grove you are on and/or what the angle is on the disk.

Spinning the disk backward forward faster, you would have to calculate the appropriate frequency in order to make it sound right, but once the movement is done, again, SetPosition should do the trick to resynch the position of the sound to the disk and needle position.[/quote:1nneszbu]

Thank you for the reply, this can be a solution but i would try a more realistic approach…
According to this thread
http://52.88.2.202/forum/viewtopic.php … ht=scratch

i think that a filter should be applied but i’m not sure that’s enough.
Furthermore scratching on a vinyl seems to "skip" some position instead of playing faster or slower as setting frequency do.

I hope that my thinking is clear… my english is not so good :)

  • You must to post comments
0
0

Don’t forget the RIAA equalisation curve!

  • You must to post comments
0
0

Hi, i’ve done some step forward with the scratching app but i need more help…
This is a demo:

http://www.youtube.com/watch?v=YLwYpgbU-No

A guy told me that my problem is a too large buffer size and the pitch doesn’t change fast enough.
I’m setting the velocity with setFrequency. Can i change the buffer used by setFrequency?
Somebody has another idea to make the scratch better?

  • You must to post comments
Showing 8 results
Your Answer

Please first to submit.