Soundfiles in MIDI-format are often long, so it might be necessary to stop playing
the sound (e.g. when the macro is finished). Here is an example:
Private Declare Function mciExecute Lib "winmm.dll" _ (ByVal lpstrCommand As String) As Long Sub PlayMidiFile(MidiFileName As String, Play As Boolean) If Dir(MidiFileName) = "" Then Exit Sub ' no file to play If Play Then mciExecute "play " & MidiFileName ' start playing Else mciExecute "stop " & MidiFileName ' stop playing End If End Sub Sub TestPlayMidiFile() PlayMidiFile "c:\foldername\soundfilename.mid", True MsgBox "Click OK when the MIDI file starts playing..." MsgBox "Click OK to stop playing the MIDI file..." PlayMidiFile "c:\foldername\soundfilename.mid", False End Sub
The applications/code on this site are distributed as is and without warranties or liability. In no event shall the owner of the copyrights, or the authors of the applications/code be liable for any loss of profit, any problems or any damage resulting from the use or evaluation of the applications/code.
A followup question - how does one alter the volume/velocity of a midi file? I'd like to use this in a simulation I'm playing with (for background music) with WAV files used for events. However, the MIDI files I'm using are too loud in comparison