---
name: "play_midi"
section: "3alleg"
platform: "linux"
package: "liballegro-doc"
version: "2:4.2.2-2.2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/play_midi"
---

# play\_midi(3alleg)

Starts playing the specified MIDI file. Allegro game programming library.

## NAME

play\_midi - Starts playing the specified MIDI file. Allegro game programming library.

## SYNOPSIS

**#include \<allegro.h\>**

**int play\_midi(MIDI \*midi, int loop);**

## DESCRIPTION

Starts playing the specified MIDI file, first stopping whatever music was  previously playing. If the loop flag is set to non-zero, the data will be repeated until replaced with something else, otherwise it will stop at the end of the file. Passing a NULL pointer will stop whatever music is currently playing.

## RETURN VALUE

Returns non-zero if an error occurs (this may happen if a patch-caching wavetable driver is unable to load the required samples, or at least it might in the future when somebody writes some patch-caching wavetable drivers :-)

## SEE ALSO

[**install\_sound**(3alleg)](/install_sound/3alleg.md), [**load\_midi**(3alleg)](/load_midi/3alleg.md), [**play\_looped\_midi**(3alleg)](/play_looped_midi/3alleg.md), [**stop\_midi**(3alleg)](/stop_midi/3alleg.md), [**midi\_pause**(3alleg)](/midi_pause/3alleg.md), [**midi\_seek**(3alleg)](/midi_seek/3alleg.md), [**midi\_pos**(3alleg)](/midi_pos/3alleg.md), [**midi\_time**(3alleg)](/midi_time/3alleg.md), [**midi\_msg\_callback**(3alleg)](/midi_msg_callback/3alleg.md), [**exmidi**(3alleg)](/exmidi/3alleg.md)
