| 1 | <h1>libjdkmidi</h1> |
|---|
| 2 | |
|---|
| 3 | <p> |
|---|
| 4 | <b>Copyright 1986-2004 by J.D. Koftinoff Software, Ltd.</b><br> |
|---|
| 5 | <a href="http://www.jdkoftinoff.com/"></a><br> |
|---|
| 6 | <a href="mailto:jeffk@jdkoftinoff.com">jeffk@jdkoftinoff.com</a><br> |
|---|
| 7 | </p> |
|---|
| 8 | |
|---|
| 9 | <p> |
|---|
| 10 | Released under the GPL: May 1, 2004 |
|---|
| 11 | Please see the file COPYING |
|---|
| 12 | </p> |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | <h2>Quick Start</h2> |
|---|
| 16 | |
|---|
| 17 | <p>(for gcc toolchains: linux,macosx,cygwin,mingw32,etc)</p> |
|---|
| 18 | |
|---|
| 19 | <pre> |
|---|
| 20 | cd build/gnu |
|---|
| 21 | make tests |
|---|
| 22 | ./jdkmidi_test_multitrack ../../songs/jeffswedding.mid | less |
|---|
| 23 | ./jdkmidi_rewrite_midifile ../../songs/jeffswedding.mid out.mid |
|---|
| 24 | ./jdkmidi_test_show out.mid |
|---|
| 25 | make clean |
|---|
| 26 | less ../tests/jdkmidi_rewrite_midifile.cpp |
|---|
| 27 | </pre> |
|---|
| 28 | |
|---|
| 29 | <h2>Directory List</h2> |
|---|
| 30 | |
|---|
| 31 | <pre> |
|---|
| 32 | include/jdkmidi |
|---|
| 33 | : Header files for libjdkmidi |
|---|
| 34 | |
|---|
| 35 | src |
|---|
| 36 | : Source files for libjdkmidi |
|---|
| 37 | |
|---|
| 38 | tests |
|---|
| 39 | : Source files for simple test programs |
|---|
| 40 | |
|---|
| 41 | build/gnu |
|---|
| 42 | : Place to do builds in for gnu gcc |
|---|
| 43 | |
|---|
| 44 | build/vc6 |
|---|
| 45 | : MS Visual C++ 6 projects |
|---|
| 46 | |
|---|
| 47 | build/macosx |
|---|
| 48 | : Mac OS X xcode project added |
|---|
| 49 | |
|---|
| 50 | songs |
|---|
| 51 | : Place I keep some MIDI files in for testing |
|---|
| 52 | |
|---|
| 53 | docs |
|---|
| 54 | : Place to keep some documentation, autogenerated from doxygen |
|---|
| 55 | </pre> |
|---|
| 56 | |
|---|
| 57 | |
|---|
| 58 | <h2>Usage with your own projects</h2> |
|---|
| 59 | |
|---|
| 60 | <pre> |
|---|
| 61 | Add the include directory: |
|---|
| 62 | -I /libjdkmidi/include |
|---|
| 63 | |
|---|
| 64 | Add the library directory: |
|---|
| 65 | -L /libjdkmidi/lib |
|---|
| 66 | |
|---|
| 67 | Link with libjdkmidi: |
|---|
| 68 | -l jdkmidi |
|---|
| 69 | |
|---|
| 70 | All symbols are in the c++ namespace jdkmidi |
|---|
| 71 | </pre> |
|---|
| 72 | |
|---|
| 73 | |
|---|
| 74 | <h2>History</h2> |
|---|
| 75 | |
|---|
| 76 | <p> |
|---|
| 77 | 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: |
|---|
| 78 | </p> |
|---|
| 79 | |
|---|
| 80 | <ul> |
|---|
| 81 | <li> MIDI parsing |
|---|
| 82 | <li> MIDI Show Control message creation and handling |
|---|
| 83 | <li> Standard MIDI File type 0 and type 1 reading and writing |
|---|
| 84 | <li> Timestamped MIDI message and System Exclusive encapsulation |
|---|
| 85 | <li> Efficient MIDI Track objects for sequencing |
|---|
| 86 | <li> MIDI Track objects for editing MIDI events |
|---|
| 87 | <li> MIDI message process chains |
|---|
| 88 | <li> Containers for multiple MIDI Tracks with iterators |
|---|
| 89 | <li> MIDI Sequencer core for sequencing and triggering GUI events |
|---|
| 90 | <li> MIDI Driver abstractions for I/O and sequencing |
|---|
| 91 | <li> MIDI Driver implementation for Win32 for I/O and sequencing |
|---|
| 92 | <li> Tempo calculations |
|---|
| 93 | <li> MIDI Matrix to count note on's and off's and hold pedals |
|---|
| 94 | to avoid stuck notes and all-notes-off problems when merging midi streams |
|---|
| 95 | <li> SMPTE management and calculations |
|---|
| 96 | </ul> |
|---|
| 97 | |
|---|
| 98 | <p>For more information, please contact Jeff Koftinoff <jeffk@jdkoftinoff.com> |
|---|
| 99 | </p> |
|---|
| 100 | |
|---|
| 101 | <h2>CHANGELOG</h2> |
|---|
| 102 | |
|---|
| 103 | <pre> |
|---|
| 104 | 1986: MIDI parsing and message handling added, in C |
|---|
| 105 | 1989: Simple MIDI File Parsing added |
|---|
| 106 | 1989: Ported to run on Macintosh with Think C |
|---|
| 107 | 1989: Converted to old style C++ with GCC for Atari ST |
|---|
| 108 | 1990: Ported to work on Borland C++ 3.1 for DOS MIDI Sequencers |
|---|
| 109 | 1992 - 1996: Added MIDI Show Control classes |
|---|
| 110 | 1997-1998: Added more robust MIDI Track classes, WIN32 support |
|---|
| 111 | 2004: Dusted off, moved into namespace jdkmidi and cleaned up a little |
|---|
| 112 | 2004 May 1: Released under the GNU GENERAL PUBLIC LICENSE |
|---|
| 113 | 2004 May 26: Some clean ups, warning fixes, mac os x project file added, |
|---|
| 114 | visual c++ project file added, jdkmidi_rewrite_midifile added |
|---|
| 115 | 2005 Oct 14: Some more warning fixes, fixed dangerous seq( seq ) in constructor. |
|---|
| 116 | visual c++ 2005 project file added. |
|---|
| 117 | </pre> |
|---|