xref: /haiku/docs/user/midi/midi1intro.dox (revision ed24eb5ff12640d052171c6a7feba37fab8a75d1)
1/*!
2\page midi1 The old Midi Kit (libmidi.so)
3
4The old Midi Kit, or midi1 for short, goes all the way back to DR8, when the
5BeOS only ran on BeBoxen. Fortunately for us, it is pretty well documented:
6
7- <A HREF="https://www.haiku-os.org/legacy-docs/bebook/TheMidiKit_Overview.html">Midi
8Kit chapter in the online Be Book</A>
9- <A HREF="http://web.archive.org/web/20010618100542/www-classic.be.com/developers/developer_library/midi_kit.html">Midi
10Kit section of the old Be Developer Library</A>
11- Be Newsletter Volume 1, Issue 49 - Introduces the MIDI synth
12- Be Newsletter Volume 1, Issue 52 - Follow-up on issue 49
13- Be Newsletter Volume 1, Issue 91 - How to use BSynth
14- Be Newsletter Volume 1, Issue 102 - Axe sample code
15- Be Newsletter Volume 1, Issue 104 - How to use BMidiPort
16- Be Newsletter Volume 2, Issue 23 - EdMidi sample code
17- Be Newsletter Volume 2, Issue 37 - How to use the MIDI synth
18- Be Newsletter Volume 3, Issue 37 - Whistle sample code
19
20To summarize, there are four basic MIDI classes:
21
22- BMidi is the base class for most other classes from the Midi Kit
23- BMidiPort can talk to a MIDI hardware port
24- BMidiStore can read, write, and perform Standard MIDI files
25- BMidiText is a debugging aid that dumps MIDI messages to <CODE>stdout</CODE>
26
27The following classes let you use the Midi Kit's General MIDI synthesizer:
28
29- BSynth controls the synthesizer
30- BMidiSynth connects a BMidi object to the synth
31- BMidiSynthFile connects a MIDI file to the synth
32- BSamples lets you access the synth's sound data stream
33
34To make MIDI data stream through your application, you create a "network" of
35BMidi-derived objects that send and receive MIDI messages.
36
37The old Midi Kit is slowly fading into obscurity. You may want to use the
38\ref midi2 "new kit" instead. Also note that the Haiku implementation
39of the kit sometimes behaves differently than the one from BeOS R5 or what
40the BeBook says, but usually for the better.
41
42Especially the synth classes are not completely functional, but enough to
43play back General MIDI tunes. They should be backwards compatible with the
44majority of BeOS MIDI applications. Not all methods of BSynth, BMidiSynth,
45and BMidiSynthFile are implemented because some of them are rather obscure.
46BSamples is a complete no-op; in other words, with the Haiku Midi Kit
47you cannot push waveform data into the output stream of the softsynth.
48*/
49