*** Twin Cities MIDI ***

 

Code Midi Application Programming




This information is over ten years old and probably worthless but just in case someone is interested I'm going to leave it here for a while longer.

As a Macintosh user, Tim wanted to learn the best (easiest?) method for programming the Mac for MIDI applications. Tim was a software engineer for Coda Music which is now MakeMusic, Inc. I've lost track of Tim so I do not know if he is still there. Here are some things he tried as a student:
 
  • Downloaded CMIDI, a toolkit specifically designed for Symantec C++, the Mac, and MIDI (just what he wanted!) CMIDI is supposed to be a class library providing an object oriented interface to Apple's MIDI Manager. It defines a set of classes integrated into the THINK Class Library (TCL) which define MIDI Manager objects including input, output, and time ports. Unfortunately, it is useless without Apple's MIDI Management Tools package, which is currently only available on a $299 System 7 Developer's CD (although it used to be sold separately for $35 -- Thanks, Apple...). he had to rule this option out.
  • Downloaded Carnegie Mellon University's CMU MIDI Toolkit. (available on Info-Mac and elsewhere) This package, although available for the Mac, was ported over from another system and does not use the Macintosh interface (it uses Think C's interfaces for simulating the DOS/UNIX command line). It does not use Macintosh Toolbox routines. To its advantage, it contains it's own language (Adagio) for specifying MIDI files as text files, as well as some other utilities. In Tim's brief period of playing with this package, Tim experienced some timing difficulties, which the manual alluded to as a System 7 problem of some sort. Perhaps this has been fixed by now. This might be a good starting point, but much work would would be needed by the Mac application programmer to put a Mac front-end on it and resolve other difficulties.
  • Downloaded MidiShare, a Macintosh MIDI "Operating System", which operates as a System 7 control panel with a Think C Application Programmer's Interface (API). From reading the docs and playing with the sample applications, it appears to be a very promising choice to program MIDI with. One negative comment is that the examples are in Pascal, which thwarted efforts to experiment with the code in C++.  MidiShare is also available for the Atari, Windows 3.1 and Windows 95.

Other MIDI Programming Resources

MIDI Manufactures Association is a place you may want to go for the latest information on MIDI and General MIDI standards.

Maximum MIDI Programmer's ToolKit is an advertising page for a book on programming MIDI with C++ in the Windows NT/95. It costs $49.95 in US dollars. If you are serious about programming it's worth checking out. The site also has some downloadable demos and access to a MIDI forum that is available after you but the book. From there you can download the toolkit.

NIFF (Notation Interchange File Format) is a new standard for exchanging notation information between software programs such as Encore, Mastertracks, MIDISCAN, and Cakewalk. I'm excited about it because it is based on Score which was one of the best notations programs available for providing precise printed musical notation. 

Also, check out the links to MIDI specification references on the TCM:What is MIDI? page.

Tutorial on MIDI and Music Synthesis does an excellent job of explaining MIDI and has excellent drawings that show how to connect MIDI equipment to computers and how to connect MIDI devices together to create a complete MIDI system.

 

Question: Can I write MIDI applications without understanding anything about the MIDI specification?

Answer: I really don't know, I'm not much of a programmer. It would seem to me that having a copy of the MIDI specification nearby for reference might be pretty handy..

                                                                                          -- David

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


 Twin Cities MIDI Home Page

Twin Cities MIDI Copyright © 1997-2001 David L. Stevens

Last update: 02/23/2010 -- David L. Stevens (webmaster@tcmidi.com)

 

[Home] [Search]