looping music?

Blitz3D Forums/Blitz3D Beginners Area/looping music?

chwaga(Posted 2007) [#1]
I tried looping music, but failed. If anyone could give me some code for looping music, also for changing the music being played at any time, I'd appreciate it a lot.

Thanks in advance.


nrasool(Posted 2007) [#2]
Try the following:

bkmusic=LoadSound("music.ogg") : If Not bkmusic Then RuntimeError "Cannot found music"
LoopSound(bkmusic)
PlaySound(bkmusic)


That should work


IPete2(Posted 2007) [#3]
if you wanna change volume you'll need to investigate the channelvolume, channelpan etc commands.

Above code would then be the same except for the last bit:

global musicvolume#=0.75
channelbkmusic = PlaySound(bkmusic)
channelvolume channelbkmusic,musicvolume

As with most of the numbers in the audio channel commands, numbers need to be floating points, in order to give a range between 0 and 1 or -1 and 1

channelvolume works between 0 and 1 so ensure when you use a variable you globalise it as a float or it wonyt' fade at all.

channelpan channelbkmusic, -1 ; for left
channelpan channelbkmusic, 0 ; for centre
channelpan channelbkmusic, 1 ; for right

Channel allows for quite a lot of control - check these commands as follows:

StopChannel
PauseChannel
ResumeChannel
ChannelPitch
ChannelVolume
ChannelPan
ChannelPlaying


IPete2.


chwaga(Posted 2007) [#4]
Thanks guys.

IPete2 : I think you misunderstood me, I meant change what song is playing, not modify the playback. Didn't want to use the loopsound playsound method because changing songs would be difficult, I was hoping to use the channel methods


blade007(Posted 2007) [#5]
try this tooo
music = playmusic("music.mp3")

while not keydown(1)
    updatemusic(music)
wend

function updatemusic(music)
   if not channelplaying(music)
      music=playmusic(music)
   endif
end function



IPete2(Posted 2007) [#6]
Sorry chwaga - twice in one week - doh! ;)

IPete2.


Abrexxes(Posted 2007) [#7]
http://www.blitzbasic.com/Community/posts.php?topic=69887

BASS_StreamCreate / BASS_SAMPLE_LOOP
BASS_ChannelIsActive

You can try this, examples are included.

bye