How to play MIDI files

Posted on 1998-10-25
Medium Priority
Last Modified: 2010-04-06
I want to know how I can play a MIDI file in a Delphi 2.0 program using the Win32 MCI library. I know how to do it in Visual C++, but not in Delphi. Please include some code samples that clearly illustrate how to load and play a MIDI file, as well as send a notification to the form to restart the MIDI when it is done.
Question by:mmarvi
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
LVL 17

Expert Comment

ID: 1344287

use the TMediaPlayer component
select file and set autoopen to true
and to loop it do the following on the notify event:

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
 with MediaPlayer1 do
  if NotifyValue = nvSuccessful then begin
   Notify := True;

Author Comment

ID: 1344288
dear inthe:

I don't like your answer because I asked for information on how to use the Win32 MCI library to load and play a MIDI file. Please post an answer to that question and I'll be glad to give you points.
LVL 17

Expert Comment

ID: 1344289
Hello mmarvi
i can give you code for mci library playsound procedure
but it is for loading and playing wav files not midi
Im still looking for midi but everything i find is for wav :-(
im not sure how to do playsound procedure for midi files it may be the same but maybe not
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

LVL 17

Expert Comment

ID: 1344290
hello again  
this page may be of more help to you

LVL 17

Expert Comment

ID: 1344291
system.ini will hold the midi sequencer
on my system it's sequencer=mciseq.drv
so something like this is what your after i think

open sequencer!yoursong.mid alias anthem
play anthem
pause anthem
resume anthem
stop anthem
seek anthem to start
play anthem
stop anthem
close anthem

Accepted Solution

tothpaul earned 180 total points
ID: 1344292
try this !
unit sound;



procedure StartSound(hwnd:THandle; FileName:string);
procedure Replay;
procedure StopSound;



procedure StartSound(hwnd:THandle;FileName:string);
  if playing then StopSound;
  with mciOpen do begin
  if mciSendCommand(0, mci_Open, mci_open_element, Longint(@mciOpen))=0 then begin
   mciPlay.dwFrom    :=0;
   Playing:=(mciSendCommand( DevID, mci_Play, mci_notify or mci_from, Longint(@mciPlay))=0);
   if not playing then StopSound;

procedure Replay;
  if Playing then
   mciSendCommand( DevID, mci_Play, mci_notify or mci_from, Longint(@mciPlay));

procedure StopSound;
  mciSendCommand( DevID, mci_Close, 0, 0);



Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question