I get nothing but silence when this is done

assume the subs are called top to bottom
VB Code:
  1. Option Explicit
  2.  
  3. Dim DX As DirectX8
  4. Dim DSound As DirectSound8
  5. Dim DSAudio  As IBasicAudio 'Basic Audio Objectt
  6. Dim DSEvent As IMediaEvent 'MediaEvent Object
  7. Dim DSControl As IMediaControl 'MediaControl Object
  8. Dim DSPosition As IMediaPosition 'MediaPosition Object
  9.  
  10. Public DisableSound As Boolean
  11. Public DisableMusic As Boolean
  12.  
  13. Public Sub InitDirectX8(ByVal Handle As Long)
  14.     Set DX = New DirectX8
  15.    
  16.     Set DSound = DX.DirectSoundCreate("")
  17.     DSound.SetCooperativeLevel Handle, DSSCL_NORMAL
  18. End Sub
  19. Public Sub LoadMusic(FileName As String)
  20. 'On Error GoTo ErrorHandle:
  21.    
  22.     Set DSControl = New FilgraphManager
  23.    
  24.     FileName = App.Path & "\tilesets\" & FileName
  25.     Select Case Right(FileName, 4)
  26.     Case ".wav", ".mid", ".mp3"
  27.     Case Else
  28.         If Dir(FileName & ".mid") <> "" Then
  29.             FileName = FileName + ".mid"
  30.         ElseIf Dir(FileName & ".mp3") <> "" Then
  31.             FileName = FileName + ".mp3"
  32.         End If
  33.     End Select
  34.    
  35.     Call DSControl.RenderFile(FileName) 'yes, a valid midi file
  36.     Set DSAudio = DSControl
  37.     DSAudio.Volume = 0
  38.     DSAudio.Balance = 0
  39.    
  40.     Set DSEvent = DSControl
  41.     Set DSPosition = DSControl
  42.     If ObjPtr(DSPosition) Then DSPosition.Rate = 1#
  43.     DSPosition.CurrentPosition = 0
  44. end sub
  45. Public Sub PlayMusic()
  46. 'On Error Resume Next
  47.     If DisableMusic = False Then
  48.         DSControl.Stop
  49.         DSPosition.CurrentPosition = 0
  50.         DSPosition.Rate = 1
  51.         DSAudio.Volume = 0
  52.         DSAudio.Balance = 0
  53.         DSControl.Run
  54.     End If
  55. End Sub