Skip to content
Steev's MIDI Library is a pure C library to handle the MIDI protocol, as well as providing code to read and write standards-compliant MIDI files. This provides code functionality for apps wishing to support MIDI file serialism, as well as write music apps that auto-compose music.
Branch: master
Clone or download
MarquisdeGeek
Latest commit 36015d9 Nov 29, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
MIDIFiles Initial import Jan 14, 2013
src Fix segfaults by updating SWAP macros to be endian-safe and use C99 f… Nov 29, 2017
CHANGES
LICENSE
Makefile Fix segfaults by updating SWAP macros to be endian-safe and use C99 f… Nov 29, 2017
README.md

README.md

Steev's MIDI Library Version 1.5, August 2010

Steven Goodwin (StevenGoodwin@gmail.com) Copyright 1998-2010, Steven Goodwin

Released under the GPL 2

Steev's MIDI Library is a pure C library to handle the MIDI protocol, as well as providing code to read and write standards-compliant MIDI files. This provides code functionality for apps wishing to support MIDI file serialism, as well as write music apps that auto-compose music.

It provides sample code to:

  • Convert MIDI files to RTTTL ring tones (m2rtttl)
  • Dump the contents of MIDI files (mididump)
  • Convert files from version 1 to 0, as some electronic keyboards support only version 0. (mfc120)
  • Auto-generate music, based on "Mozarts Dice" (mozart)

It is a wonderfully compact, and complete, library that contains all the constants necessary to understand the protocol, such as instrument names, drum maps, and controller names & IDs. There's also utility methods to compute the real-world frequency of any given note and guess the currently playing chord.

Integration with SGX

Between versions 1.3 and 1.4, the base of the library was incorporated into SGX. The changes were limited to the methods of handling the filesystem (standard C, to the SGX filesystem) and filename conventions.

In version 1.4 some utility methods were added to SGX first, and then backported into this release.

Going forward, all algorithm and function changes will be released here first, as it is the lowest common development denominator.

Downloads and Links

http://www.bluedust.dontexist.com/midilib/midilib-1.4.tar.gz - the latest version of the library

http://www.sgxengine.com - Featuring the "other" implementation of MIDIlib

You can’t perform that action at this time.