playWaveFast

Help Contents Sound programming Wave Sound playWaveFast
playWave Midi

playWaveFast wavedata


The wavedata can be an IntArray or an Int16Array loaded with a correct wave file contents including the header.

Up to 32 waves can be simultanously playing, and the startup time is very short, so it's ideal for games and music programs.

Example:

to loadwav f
	local [size wav]
	openReadBin f
	setReader f
	size=FileSize f
	wav=readInt16ArrayBin size/2
	setReader []
	close f
;	(pr f "loaded)
	output wav
end
to resizeWav wav factor
	local "w
	w=Int16Array 44+round ((count wav)-44)*factor
	setItems 1 w Items 1 44 wav
	setItems 45 w resize
		(Items 45 count wav wav) (count w)-44
	output w
end
clickWav=loadwav "start.wav
cmajor=[0 2 4 5 7 9 11 12]
stoneWav=Array 8
repeat 8 [
	i=repcount
	stoneWav.i=resizeWav clickWav 2^((12-cmajor.i)/12)
]
repeat 100 [playWaveFast stonewav.(1+random 8) waitms 10]

Reference:

playWave Midi