Developing on Mac.
Currently I am trying to have a track within a sequence play once and then stop after a single loop. however when I attempt to call it as the following sequence:setLoops(1, 4, 1)
and subsequently call sequence:play()
it infinitely loops.
Here is the function that sets up the audio:
function setupAudio()
local sawSynth = snd.synth.new(snd.kWaveSawtooth)
mainInstrument = snd.instrument.new(sawSynth)
mainChannel = snd.channel.new()
mainChannel:addSource(mainInstrument)
local bitcrusherEffect = snd.bitcrusher.new()
bitcrusherEffect:setAmount(1)
bitcrusherEffect:setUndersampling(1)
mainChannel:addEffect(bitcrusherEffect)
local gameStartTrack = snd.track.new()
local gameLossTrack = snd.track.new()
local gameWonTrack = snd.track.new()
gameStartTrack:setInstrument(mainInstrument)
gameWonTrack:setInstrument(mainInstrument)
gameLossTrack:setInstrument(mainInstrument)
gameStartTrack:addNote(1, "C4", 1)
gameStartTrack:addNote(2, "D4", 1)
gameStartTrack:addNote(3, "C5", 2)
gameWonTrack:addNote(1, "E4", 1)
gameWonTrack:addNote(2, "F4", 1)
gameWonTrack:addNote(3, "E5", 2)
gameLossTrack:addNote(1, "C5", 1)
gameLossTrack:addNote(2, "D4", 1)
gameLossTrack:addNote(3, "C3", 2)
assert( gameStartTrack:getLength() == 4 )
gameStartSequence = snd.sequence.new()
gameWonSequence = snd.sequence.new()
gameLossSequence = snd.sequence.new()
gameStartSequence:addTrack(gameStartTrack)
gameWonSequence:addTrack(gameWonTrack)
gameLossSequence:addTrack(gameLossTrack)
gameStartSequence:setTempo(6)
gameWonSequence:setTempo(12)
gameLossSequence:setTempo(3)
gameStartSequence:setLoops(1, 4, 1)
gameWonSequence:setLoops(1, 4, 1)
gameLossSequence:setLoops(1, 4, 1)
end
then later we call it by calling gameStartSequence:play()
resulting in an infinite loop. Any help is appreciated, thanks in advance!