Lingo Dictionary > O-R > rateShift

 

rateShift

Syntax

sound(channelNum).queue(#member: member(whichMember), {#rateShift: shiftAmount})
sound(channelNum).play(#member: member(whichMember), {#rateShift: shiftAmount})
sound(channelNum).rateShift

Description

Sound property; determines the rate of playback of a sound. If the rateShift is zero, the sound plays normally. Setting the rateShift to a postive integer plays the sound faster, causing its pitch to go up and its duration to decrease. Setting the rateShift to a negative integer plays the sound more slowly, causing its pitch to go down and its duration to increase. Each integer increment changes the pitch by one half step (semitone), so a rateShift of 12 corresponds to an increase in pitch of one octave.

This property can be tested and set. Set the rateShift with a queue(), play(), or setPlaylist() command.

Example

This statement queues the sound Explosion to play 2 half-steps lower than its normal pitch in sound channel 1:

sound(1).queue(#member: member("Explosion"), #rateShift: -2)

Example

This statement queues the sound Explosion, preloads 1500 milliseconds of it, and sets it to loop twice and to play 3 half-steps lower than its normal pitch:

sound(1).queue(#member: member("Explosion"), #preloadTime: 1500, #loopCount: 2, #rateShift: -3)

Example

This handler queues and plays two sounds. The first sound, cast member Chimes, is played in its entirety. The second sound, cast member introMusic, is played starting at its 3-second point, with a loop repeated 5 times from the 8-second point to the 8.9 second point, and stopping at the 10-second point. 4 seconds of the sound will be preloaded and it will be played back with a rateShift of 1, or at one half-step higher pitch than normal.

on playMusic
	sound(2).queue([#member: member("Chimes")])
	sound(2).queue([#member: member("introMusic"), #startTime: 3000,\
	#endTime: 10000, #loopStartTime: 8000, #loopEndTime: 8900, #loopCount: 5, \
	preloadTime: 4000, rateShift: 1])
	sound(2).play()
end

Example

This statement tests the rateShift value of the sound currently playing in sound channel 2 and displays it in the Message window:

put sound(2).rateShift

See also

queue(), play() (sound), setPlaylist(), getPlaylist()