| I'll give you a gander of the code I'm using. 
 
 
SuperStrict
Const FRAME_RATE:Int = 10
Graphics (320,240,,FRAME_RATE)
Global newmusic:BGM = New BGM 'new BGM object
newmusic.setup() 'allocates and loads the samples
	
While Not KeyDown(KEY_ESCAPE)
	DrawText("press ESC to quit",0,0)
	Flip
	Cls
	newmusic.update() 
Wend
'------------------------------------------------------------------------
'------------------------------------------------------------------------
Type BGM
	Field music1intro:TAudioSample = LoadAudioSample("<intro wav goes here>") 'intro music
	Field music1loop:TAudioSample = LoadAudioSample("<looping wav goes here>") 'looping music
	Field musicContainer:TSound 'intro storage
	Field musicContainer2:TSound 'loop storage
	Field looping:Int = False 'if the song wants to loop or not
	Field musicChannel:TChannel = AllocChannel() 'allocate a channel for the music to play
	
	'------------------------------------------------------------------------
	
	Method setup() 'loads the samples into the sound objects
		musicContainer = LoadSound(music1intro) 'stores the intro sample into a sound object
		musicContainer2 = LoadSound(music1loop,True) 'stores the looping sample into a sound object
	EndMethod
	
	'------------------------------------------------------------------------
	
	Method update() 'updates the music to check if the intro has finished playing
			If musiccontainer And musiccontainer2 And Not musicchannel.playing() Then
				If Not looping Then
					PlaySound(musicContainer,musicchannel) 'plays intro
					looping = True
				Else
					PlaySound(musicContainer2,musicchannel) 'plays loop
				EndIf
			EndIf
	EndMethod
End Type
I wanted to point out that if you change the frame rate constant to a lower number, you will noticed the gap better. That is to simulate when the game is maxing out the computer's performance.
 I'll keep away from OpenAL in the meantime because I'm still learning.
 
 
 |