root/trunk/libjdkmidi/trunk/docs/libjdkmidi.html

Revision 3, 3.2 kB (checked in by jeffk@…, 2 years ago)

libjdkmidi imported into new svn repository

Line 
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>
10Released under the GPL: May 1, 2004
11Please 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>
20cd build/gnu
21make tests
22./jdkmidi_test_multitrack ../../songs/jeffswedding.mid | less
23./jdkmidi_rewrite_midifile ../../songs/jeffswedding.mid out.mid
24./jdkmidi_test_show out.mid
25make clean
26less ../tests/jdkmidi_rewrite_midifile.cpp
27</pre>
28
29<h2>Directory List</h2>
30
31<pre>
32include/jdkmidi
33        : Header files for libjdkmidi
34
35src
36        : Source files for libjdkmidi
37
38tests
39        : Source files for simple test programs
40
41build/gnu
42        : Place to do builds in for gnu gcc
43
44build/vc6
45        : MS Visual C++ 6 projects
46
47build/macosx
48        : Mac OS X xcode project added
49
50songs
51        : Place I keep some MIDI files in for testing
52
53docs
54        : Place to keep some documentation, autogenerated from doxygen
55</pre>
56
57
58<h2>Usage with your own projects</h2>
59
60<pre>
61Add the include directory:
62    -I /libjdkmidi/include
63
64Add the library directory:
65    -L /libjdkmidi/lib
66
67Link with libjdkmidi:
68    -l jdkmidi
69
70All symbols are in the c++ namespace jdkmidi
71</pre>
72
73
74<h2>History</h2>
75
76<p>
77This 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>
1041986: MIDI parsing and message handling added, in C
1051989: Simple MIDI File Parsing added
1061989: Ported to run on Macintosh with Think C
1071989: Converted to old style C++ with GCC for Atari ST
1081990: Ported to work on Borland C++ 3.1 for DOS MIDI Sequencers
1091992 - 1996: Added MIDI Show Control classes
1101997-1998: Added more robust MIDI Track classes, WIN32 support
1112004: Dusted off, moved into namespace jdkmidi and cleaned up a little
1122004 May 1: Released under the GNU GENERAL PUBLIC LICENSE
1132004 May 26: Some clean ups, warning fixes, mac os x project file added,
114     visual c++ project file added, jdkmidi_rewrite_midifile added
1152005 Oct 14: Some more warning fixes, fixed dangerous seq( seq ) in constructor.
116     visual c++ 2005 project file added.
117</pre>
Note: See TracBrowser for help on using the browser.