                                   libjdkmidi

   Copyright 1986-2004 by J.D. Koftinoff Software, Ltd.
   jeffk@jdkoftinoff.com

   Released under the GPL: May 1, 2004 Please see the file COPYING

Quick Start

   (for gcc toolchains: linux,macosx,cygwin,mingw32,etc)

 cd build/gnu
 make tests
 ./jdkmidi_test_multitrack ../../songs/jeffswedding.mid | less
 ./jdkmidi_rewrite_midifile ../../songs/jeffswedding.mid out.mid
 ./jdkmidi_test_show out.mid
 make clean
 less ../tests/jdkmidi_rewrite_midifile.cpp

Directory List

 include/jdkmidi
         : Header files for libjdkmidi

 src
         : Source files for libjdkmidi

 tests
         : Source files for simple test programs

 build/gnu
         : Place to do builds in for gnu gcc

 build/vc6
         : MS Visual C++ 6 projects

 build/macosx
         : Mac OS X xcode project added

 songs
         : Place I keep some MIDI files in for testing

 docs
         : Place to keep some documentation, autogenerated from doxygen

Usage with your own projects

 Add the include directory:
     -I /libjdkmidi/include

 Add the library directory:
     -L /libjdkmidi/lib

 Link with libjdkmidi:
     -l jdkmidi

 All symbols are in the c++ namespace jdkmidi

History

   This library was originally a collection of utility functions for MIDI
   written in C back in 1986 for the Atari ST computer. Since then it has
   evolved into a fairly powerful C++ MIDI Library including:

     * MIDI parsing
     * MIDI Show Control message creation and handling
     * Standard MIDI File type 0 and type 1 reading and writing
     * Timestamped MIDI message and System Exclusive encapsulation
     * Efficient MIDI Track objects for sequencing
     * MIDI Track objects for editing MIDI events
     * MIDI message process chains
     * Containers for multiple MIDI Tracks with iterators
     * MIDI Sequencer core for sequencing and triggering GUI events
     * MIDI Driver abstractions for I/O and sequencing
     * MIDI Driver implementation for Win32 for I/O and sequencing
     * Tempo calculations
     * MIDI Matrix to count note on's and off's and hold pedals to avoid
       stuck notes and all-notes-off problems when merging midi streams
     * SMPTE management and calculations

   For more information, please contact Jeff Koftinoff
   <jeffk@jdkoftinoff.com>

CHANGELOG

 1986: MIDI parsing and message handling added, in C
 1989: Simple MIDI File Parsing added
 1989: Ported to run on Macintosh with Think C
 1989: Converted to old style C++ with GCC for Atari ST
 1990: Ported to work on Borland C++ 3.1 for DOS MIDI Sequencers
 1992 - 1996: Added MIDI Show Control classes
 1997-1998: Added more robust MIDI Track classes, WIN32 support
 2004: Dusted off, moved into namespace jdkmidi and cleaned up a little
 2004 May 1: Released under the GNU GENERAL PUBLIC LICENSE
 2004 May 26: Some clean ups, warning fixes, mac os x project file added,
      visual c++ project file added, jdkmidi_rewrite_midifile added
 2005 Oct 14: Some more warning fixes, fixed dangerous seq( seq ) in constructor.
      visual c++ 2005 project file added.
