midilib 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (252) hide show
  1. data/ChangeLog +87 -0
  2. data/Credits +8 -0
  3. data/README +361 -0
  4. data/Rakefile +68 -0
  5. data/TODO +25 -0
  6. data/examples/NoFences.mid +0 -0
  7. data/examples/from_scratch.mid +0 -0
  8. data/examples/from_scratch.rb +56 -0
  9. data/examples/reader2text.rb +220 -0
  10. data/examples/seq2text.rb +41 -0
  11. data/examples/strings.rb +34 -0
  12. data/examples/transpose.rb +75 -0
  13. data/html/classes/MIDI.html +738 -0
  14. data/html/classes/MIDI/ActiveSense.html +156 -0
  15. data/html/classes/MIDI/ActiveSense.src/M000136.html +18 -0
  16. data/html/classes/MIDI/ActiveSense.src/M000137.html +18 -0
  17. data/html/classes/MIDI/ChannelEvent.html +179 -0
  18. data/html/classes/MIDI/ChannelEvent.src/M000124.html +20 -0
  19. data/html/classes/MIDI/ChannelEvent.src/M000125.html +18 -0
  20. data/html/classes/MIDI/ChannelPressure.html +184 -0
  21. data/html/classes/MIDI/ChannelPressure.src/M000088.html +19 -0
  22. data/html/classes/MIDI/ChannelPressure.src/M000089.html +21 -0
  23. data/html/classes/MIDI/ChannelPressure.src/M000090.html +18 -0
  24. data/html/classes/MIDI/Clock.html +156 -0
  25. data/html/classes/MIDI/Clock.src/M000134.html +18 -0
  26. data/html/classes/MIDI/Clock.src/M000135.html +18 -0
  27. data/html/classes/MIDI/Continue.html +156 -0
  28. data/html/classes/MIDI/Continue.src/M000132.html +18 -0
  29. data/html/classes/MIDI/Continue.src/M000133.html +18 -0
  30. data/html/classes/MIDI/Controller.html +189 -0
  31. data/html/classes/MIDI/Controller.src/M000129.html +21 -0
  32. data/html/classes/MIDI/Controller.src/M000130.html +22 -0
  33. data/html/classes/MIDI/Controller.src/M000131.html +18 -0
  34. data/html/classes/MIDI/Event.html +424 -0
  35. data/html/classes/MIDI/Event.src/M000145.html +27 -0
  36. data/html/classes/MIDI/Event.src/M000146.html +18 -0
  37. data/html/classes/MIDI/Event.src/M000147.html +18 -0
  38. data/html/classes/MIDI/Event.src/M000148.html +18 -0
  39. data/html/classes/MIDI/Event.src/M000149.html +18 -0
  40. data/html/classes/MIDI/Event.src/M000150.html +18 -0
  41. data/html/classes/MIDI/Event.src/M000151.html +18 -0
  42. data/html/classes/MIDI/Event.src/M000152.html +18 -0
  43. data/html/classes/MIDI/Event.src/M000153.html +18 -0
  44. data/html/classes/MIDI/Event.src/M000154.html +22 -0
  45. data/html/classes/MIDI/Event.src/M000155.html +18 -0
  46. data/html/classes/MIDI/Event.src/M000156.html +18 -0
  47. data/html/classes/MIDI/Event.src/M000157.html +18 -0
  48. data/html/classes/MIDI/IO.html +121 -0
  49. data/html/classes/MIDI/IO/MIDIFile.html +925 -0
  50. data/html/classes/MIDI/IO/MIDIFile.src/M000028.html +22 -0
  51. data/html/classes/MIDI/IO/MIDIFile.src/M000029.html +24 -0
  52. data/html/classes/MIDI/IO/MIDIFile.src/M000030.html +19 -0
  53. data/html/classes/MIDI/IO/MIDIFile.src/M000031.html +19 -0
  54. data/html/classes/MIDI/IO/MIDIFile.src/M000032.html +17 -0
  55. data/html/classes/MIDI/IO/MIDIFile.src/M000033.html +17 -0
  56. data/html/classes/MIDI/IO/MIDIFile.src/M000034.html +17 -0
  57. data/html/classes/MIDI/IO/MIDIFile.src/M000035.html +17 -0
  58. data/html/classes/MIDI/IO/MIDIFile.src/M000036.html +17 -0
  59. data/html/classes/MIDI/IO/MIDIFile.src/M000037.html +17 -0
  60. data/html/classes/MIDI/IO/MIDIFile.src/M000038.html +17 -0
  61. data/html/classes/MIDI/IO/MIDIFile.src/M000039.html +17 -0
  62. data/html/classes/MIDI/IO/MIDIFile.src/M000040.html +17 -0
  63. data/html/classes/MIDI/IO/MIDIFile.src/M000041.html +17 -0
  64. data/html/classes/MIDI/IO/MIDIFile.src/M000042.html +17 -0
  65. data/html/classes/MIDI/IO/MIDIFile.src/M000043.html +17 -0
  66. data/html/classes/MIDI/IO/MIDIFile.src/M000044.html +17 -0
  67. data/html/classes/MIDI/IO/MIDIFile.src/M000045.html +17 -0
  68. data/html/classes/MIDI/IO/MIDIFile.src/M000046.html +17 -0
  69. data/html/classes/MIDI/IO/MIDIFile.src/M000047.html +17 -0
  70. data/html/classes/MIDI/IO/MIDIFile.src/M000048.html +17 -0
  71. data/html/classes/MIDI/IO/MIDIFile.src/M000049.html +17 -0
  72. data/html/classes/MIDI/IO/MIDIFile.src/M000050.html +17 -0
  73. data/html/classes/MIDI/IO/MIDIFile.src/M000051.html +17 -0
  74. data/html/classes/MIDI/IO/MIDIFile.src/M000052.html +17 -0
  75. data/html/classes/MIDI/IO/MIDIFile.src/M000053.html +43 -0
  76. data/html/classes/MIDI/IO/MIDIFile.src/M000054.html +34 -0
  77. data/html/classes/MIDI/IO/MIDIFile.src/M000055.html +96 -0
  78. data/html/classes/MIDI/IO/MIDIFile.src/M000056.html +18 -0
  79. data/html/classes/MIDI/IO/MIDIFile.src/M000057.html +48 -0
  80. data/html/classes/MIDI/IO/MIDIFile.src/M000058.html +42 -0
  81. data/html/classes/MIDI/IO/MIDIFile.src/M000059.html +19 -0
  82. data/html/classes/MIDI/IO/MIDIFile.src/M000060.html +19 -0
  83. data/html/classes/MIDI/IO/MIDIFile.src/M000061.html +20 -0
  84. data/html/classes/MIDI/IO/MIDIFile.src/M000062.html +21 -0
  85. data/html/classes/MIDI/IO/MIDIFile.src/M000063.html +31 -0
  86. data/html/classes/MIDI/IO/MIDIFile.src/M000064.html +20 -0
  87. data/html/classes/MIDI/IO/MIDIFile.src/M000065.html +22 -0
  88. data/html/classes/MIDI/IO/MIDIFile.src/M000066.html +30 -0
  89. data/html/classes/MIDI/IO/MIDIFile.src/M000067.html +18 -0
  90. data/html/classes/MIDI/IO/MIDIFile.src/M000068.html +20 -0
  91. data/html/classes/MIDI/IO/MIDIFile.src/M000069.html +18 -0
  92. data/html/classes/MIDI/IO/MIDIFile.src/M000070.html +18 -0
  93. data/html/classes/MIDI/IO/SeqReader.html +460 -0
  94. data/html/classes/MIDI/IO/SeqReader.src/M000001.html +22 -0
  95. data/html/classes/MIDI/IO/SeqReader.src/M000002.html +22 -0
  96. data/html/classes/MIDI/IO/SeqReader.src/M000003.html +21 -0
  97. data/html/classes/MIDI/IO/SeqReader.src/M000004.html +34 -0
  98. data/html/classes/MIDI/IO/SeqReader.src/M000005.html +26 -0
  99. data/html/classes/MIDI/IO/SeqReader.src/M000006.html +28 -0
  100. data/html/classes/MIDI/IO/SeqReader.src/M000007.html +21 -0
  101. data/html/classes/MIDI/IO/SeqReader.src/M000008.html +19 -0
  102. data/html/classes/MIDI/IO/SeqReader.src/M000009.html +19 -0
  103. data/html/classes/MIDI/IO/SeqReader.src/M000010.html +19 -0
  104. data/html/classes/MIDI/IO/SeqReader.src/M000011.html +19 -0
  105. data/html/classes/MIDI/IO/SeqReader.src/M000012.html +19 -0
  106. data/html/classes/MIDI/IO/SeqReader.src/M000013.html +18 -0
  107. data/html/classes/MIDI/IO/SeqReader.src/M000014.html +18 -0
  108. data/html/classes/MIDI/IO/SeqReader.src/M000015.html +27 -0
  109. data/html/classes/MIDI/IO/SeqReader.src/M000016.html +18 -0
  110. data/html/classes/MIDI/IO/SeqReader.src/M000017.html +18 -0
  111. data/html/classes/MIDI/IO/SeqReader.src/M000018.html +18 -0
  112. data/html/classes/MIDI/IO/SeqWriter.html +267 -0
  113. data/html/classes/MIDI/IO/SeqWriter.src/M000019.html +19 -0
  114. data/html/classes/MIDI/IO/SeqWriter.src/M000020.html +25 -0
  115. data/html/classes/MIDI/IO/SeqWriter.src/M000021.html +22 -0
  116. data/html/classes/MIDI/IO/SeqWriter.src/M000022.html +54 -0
  117. data/html/classes/MIDI/IO/SeqWriter.src/M000023.html +49 -0
  118. data/html/classes/MIDI/IO/SeqWriter.src/M000024.html +21 -0
  119. data/html/classes/MIDI/IO/SeqWriter.src/M000025.html +19 -0
  120. data/html/classes/MIDI/IO/SeqWriter.src/M000026.html +24 -0
  121. data/html/classes/MIDI/IO/SeqWriter.src/M000027.html +26 -0
  122. data/html/classes/MIDI/Marker.html +139 -0
  123. data/html/classes/MIDI/Marker.src/M000107.html +18 -0
  124. data/html/classes/MIDI/MetaEvent.html +189 -0
  125. data/html/classes/MIDI/MetaEvent.src/M000167.html +21 -0
  126. data/html/classes/MIDI/MetaEvent.src/M000168.html +23 -0
  127. data/html/classes/MIDI/MetaEvent.src/M000169.html +53 -0
  128. data/html/classes/MIDI/NoteEvent.html +233 -0
  129. data/html/classes/MIDI/NoteEvent.src/M000091.html +21 -0
  130. data/html/classes/MIDI/NoteEvent.src/M000092.html +20 -0
  131. data/html/classes/MIDI/NoteEvent.src/M000093.html +18 -0
  132. data/html/classes/MIDI/NoteEvent.src/M000094.html +22 -0
  133. data/html/classes/MIDI/NoteOffEvent.html +169 -0
  134. data/html/classes/MIDI/NoteOffEvent.src/M000086.html +19 -0
  135. data/html/classes/MIDI/NoteOffEvent.src/M000087.html +19 -0
  136. data/html/classes/MIDI/NoteOnEvent.html +169 -0
  137. data/html/classes/MIDI/NoteOnEvent.src/M000102.html +19 -0
  138. data/html/classes/MIDI/NoteOnEvent.src/M000103.html +19 -0
  139. data/html/classes/MIDI/PitchBend.html +184 -0
  140. data/html/classes/MIDI/PitchBend.src/M000104.html +19 -0
  141. data/html/classes/MIDI/PitchBend.src/M000105.html +22 -0
  142. data/html/classes/MIDI/PitchBend.src/M000106.html +18 -0
  143. data/html/classes/MIDI/PolyPressure.html +186 -0
  144. data/html/classes/MIDI/PolyPressure.src/M000170.html +18 -0
  145. data/html/classes/MIDI/PolyPressure.src/M000171.html +18 -0
  146. data/html/classes/MIDI/PolyPressure.src/M000172.html +18 -0
  147. data/html/classes/MIDI/PolyPressure.src/M000173.html +19 -0
  148. data/html/classes/MIDI/ProgramChange.html +184 -0
  149. data/html/classes/MIDI/ProgramChange.src/M000099.html +19 -0
  150. data/html/classes/MIDI/ProgramChange.src/M000100.html +21 -0
  151. data/html/classes/MIDI/ProgramChange.src/M000101.html +18 -0
  152. data/html/classes/MIDI/Realtime.html +171 -0
  153. data/html/classes/MIDI/Realtime.src/M000083.html +19 -0
  154. data/html/classes/MIDI/Realtime.src/M000084.html +20 -0
  155. data/html/classes/MIDI/Realtime.src/M000085.html +18 -0
  156. data/html/classes/MIDI/Sequence.html +469 -0
  157. data/html/classes/MIDI/Sequence.src/M000108.html +28 -0
  158. data/html/classes/MIDI/Sequence.src/M000109.html +21 -0
  159. data/html/classes/MIDI/Sequence.src/M000110.html +22 -0
  160. data/html/classes/MIDI/Sequence.src/M000113.html +18 -0
  161. data/html/classes/MIDI/Sequence.src/M000114.html +27 -0
  162. data/html/classes/MIDI/Sequence.src/M000115.html +18 -0
  163. data/html/classes/MIDI/Sequence.src/M000116.html +19 -0
  164. data/html/classes/MIDI/Sequence.src/M000117.html +19 -0
  165. data/html/classes/MIDI/Sequence.src/M000118.html +20 -0
  166. data/html/classes/MIDI/Sequence.src/M000119.html +19 -0
  167. data/html/classes/MIDI/Sequence.src/M000120.html +18 -0
  168. data/html/classes/MIDI/SongPointer.html +184 -0
  169. data/html/classes/MIDI/SongPointer.src/M000138.html +19 -0
  170. data/html/classes/MIDI/SongPointer.src/M000139.html +22 -0
  171. data/html/classes/MIDI/SongPointer.src/M000140.html +18 -0
  172. data/html/classes/MIDI/SongSelect.html +184 -0
  173. data/html/classes/MIDI/SongSelect.src/M000126.html +19 -0
  174. data/html/classes/MIDI/SongSelect.src/M000127.html +21 -0
  175. data/html/classes/MIDI/SongSelect.src/M000128.html +18 -0
  176. data/html/classes/MIDI/Start.html +156 -0
  177. data/html/classes/MIDI/Start.src/M000097.html +18 -0
  178. data/html/classes/MIDI/Start.src/M000098.html +18 -0
  179. data/html/classes/MIDI/Stop.html +156 -0
  180. data/html/classes/MIDI/Stop.src/M000095.html +18 -0
  181. data/html/classes/MIDI/Stop.src/M000096.html +18 -0
  182. data/html/classes/MIDI/SystemCommon.html +139 -0
  183. data/html/classes/MIDI/SystemCommon.src/M000144.html +19 -0
  184. data/html/classes/MIDI/SystemExclusive.html +184 -0
  185. data/html/classes/MIDI/SystemExclusive.src/M000141.html +19 -0
  186. data/html/classes/MIDI/SystemExclusive.src/M000142.html +23 -0
  187. data/html/classes/MIDI/SystemExclusive.src/M000143.html +18 -0
  188. data/html/classes/MIDI/SystemReset.html +156 -0
  189. data/html/classes/MIDI/SystemReset.src/M000081.html +18 -0
  190. data/html/classes/MIDI/SystemReset.src/M000082.html +18 -0
  191. data/html/classes/MIDI/Tempo.html +250 -0
  192. data/html/classes/MIDI/Tempo.src/M000158.html +18 -0
  193. data/html/classes/MIDI/Tempo.src/M000159.html +18 -0
  194. data/html/classes/MIDI/Tempo.src/M000160.html +18 -0
  195. data/html/classes/MIDI/Tempo.src/M000161.html +18 -0
  196. data/html/classes/MIDI/Tempo.src/M000162.html +18 -0
  197. data/html/classes/MIDI/Tempo.src/M000163.html +25 -0
  198. data/html/classes/MIDI/Tempo.src/M000164.html +18 -0
  199. data/html/classes/MIDI/Track.html +380 -0
  200. data/html/classes/MIDI/Track.src/M000071.html +23 -0
  201. data/html/classes/MIDI/Track.src/M000072.html +21 -0
  202. data/html/classes/MIDI/Track.src/M000073.html +26 -0
  203. data/html/classes/MIDI/Track.src/M000074.html +18 -0
  204. data/html/classes/MIDI/Track.src/M000075.html +22 -0
  205. data/html/classes/MIDI/Track.src/M000076.html +20 -0
  206. data/html/classes/MIDI/Track.src/M000077.html +22 -0
  207. data/html/classes/MIDI/Track.src/M000078.html +22 -0
  208. data/html/classes/MIDI/Track.src/M000079.html +18 -0
  209. data/html/classes/MIDI/Track.src/M000080.html +19 -0
  210. data/html/classes/MIDI/TuneRequest.html +171 -0
  211. data/html/classes/MIDI/TuneRequest.src/M000121.html +18 -0
  212. data/html/classes/MIDI/TuneRequest.src/M000122.html +20 -0
  213. data/html/classes/MIDI/TuneRequest.src/M000123.html +18 -0
  214. data/html/classes/MIDI/Utils.html +190 -0
  215. data/html/classes/MIDI/Utils.src/M000165.html +20 -0
  216. data/html/classes/MIDI/Utils.src/M000166.html +25 -0
  217. data/html/created.rid +1 -0
  218. data/html/files/README.html +599 -0
  219. data/html/files/TODO.html +142 -0
  220. data/html/files/lib/midilib/consts_rb.html +107 -0
  221. data/html/files/lib/midilib/event_rb.html +109 -0
  222. data/html/files/lib/midilib/info_rb.html +101 -0
  223. data/html/files/lib/midilib/io/midifile_rb.html +108 -0
  224. data/html/files/lib/midilib/io/seqreader_rb.html +110 -0
  225. data/html/files/lib/midilib/io/seqwriter_rb.html +115 -0
  226. data/html/files/lib/midilib/sequence_rb.html +109 -0
  227. data/html/files/lib/midilib/track_rb.html +108 -0
  228. data/html/files/lib/midilib/utils_rb.html +101 -0
  229. data/html/files/lib/midilib_rb.html +124 -0
  230. data/html/fr_class_index.html +59 -0
  231. data/html/fr_file_index.html +38 -0
  232. data/html/fr_method_index.html +199 -0
  233. data/html/index.html +24 -0
  234. data/html/rdoc-style.css +208 -0
  235. data/install.rb +57 -0
  236. data/lib/midilib.rb +16 -0
  237. data/lib/midilib/consts.rb +422 -0
  238. data/lib/midilib/event.rb +559 -0
  239. data/lib/midilib/info.rb +9 -0
  240. data/lib/midilib/io/midifile.rb +446 -0
  241. data/lib/midilib/io/seqreader.rb +198 -0
  242. data/lib/midilib/io/seqwriter.rb +151 -0
  243. data/lib/midilib/sequence.rb +144 -0
  244. data/lib/midilib/track.rb +115 -0
  245. data/lib/midilib/utils.rb +36 -0
  246. data/test/event_equality.rb +81 -0
  247. data/test/test_event.rb +116 -0
  248. data/test/test_io.rb +55 -0
  249. data/test/test_sequence.rb +68 -0
  250. data/test/test_track.rb +111 -0
  251. data/test/test_varlen.rb +40 -0
  252. metadata +330 -0
@@ -0,0 +1,75 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # usage: transpose.rb [--channel|-c channel] [--transpose|-t half_steps]
4
+ # midi_file [output_file]
5
+ #
6
+ # -c channel 1-16; default is 1
7
+ # -t half_steps default = 12 (one octave up)
8
+ #
9
+
10
+ # Start looking for MIDI module classes in the directory above this one.
11
+ # This forces us to use the local copy, even if there is a previously
12
+ # installed version out there somewhere.
13
+ $LOAD_PATH[0, 0] = File.join(File.dirname(__FILE__), '..', 'lib')
14
+
15
+ require 'getoptlong'
16
+ require 'midilib/sequence'
17
+ require 'midilib/io/seqreader'
18
+ require 'midilib/io/seqwriter'
19
+
20
+
21
+ def usage
22
+ $stderr.print <<EOF
23
+ usage: #{$0} [--channel|-c channel] [--transpose|-t half_steps]
24
+ input_midi_file output_midi_file
25
+
26
+ --channel|-c channel 1-16; default is 1
27
+ --transpose|-t half_steps default = 12 (one octave up)
28
+ EOF
29
+ exit(1)
30
+ end
31
+
32
+ transpose = 12
33
+ channel = 0
34
+
35
+ g = GetoptLong.new(['--transpose', '-t', GetoptLong::REQUIRED_ARGUMENT],
36
+ ['--channel', '-c', GetoptLong::REQUIRED_ARGUMENT])
37
+ g.each { | name, arg |
38
+ case name
39
+ when '--transpose'
40
+ transpose = arg.to_i
41
+ when '--channel'
42
+ channel = arg.to_i - 1
43
+ else
44
+ usage()
45
+ end
46
+ }
47
+
48
+ usage() unless ARGV.length >= 2
49
+
50
+ seq = MIDI::Sequence.new()
51
+ File.open(ARGV[0], 'rb') { | file |
52
+ # The block we pass in to Sequence.read is called at the end of every
53
+ # track read. It is optional, but is useful for progress reports.
54
+ seq.read(file) { | num_tracks, i |
55
+ puts "read track #{i} of #{num_tracks}"
56
+ }
57
+ }
58
+
59
+ seq.each { | track |
60
+ track.each { | event |
61
+ if event.note? && event.channel == channel
62
+ val = event.note + transpose
63
+ if val < 0 || val > 127
64
+ $stderr.puts "transposition out of range; ignored"
65
+ else
66
+ event.note = val
67
+ end
68
+ end
69
+ }
70
+ }
71
+
72
+ # Output to named file or stdout.
73
+ file = ARGV[1] ? File.open(ARGV[1], 'wb') : $stdout
74
+ seq.write(file)
75
+ file.close() if ARGV[1]
@@ -0,0 +1,738 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: MIDI</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">MIDI</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/midilib/consts_rb.html">
59
+ lib/midilib/consts.rb
60
+ </a>
61
+ <br />
62
+ <a href="../files/lib/midilib/event_rb.html">
63
+ lib/midilib/event.rb
64
+ </a>
65
+ <br />
66
+ <a href="../files/lib/midilib/info_rb.html">
67
+ lib/midilib/info.rb
68
+ </a>
69
+ <br />
70
+ <a href="../files/lib/midilib/sequence_rb.html">
71
+ lib/midilib/sequence.rb
72
+ </a>
73
+ <br />
74
+ <a href="../files/lib/midilib/track_rb.html">
75
+ lib/midilib/track.rb
76
+ </a>
77
+ <br />
78
+ <a href="../files/lib/midilib/utils_rb.html">
79
+ lib/midilib/utils.rb
80
+ </a>
81
+ <br />
82
+ <a href="../files/lib/midilib/io/midifile_rb.html">
83
+ lib/midilib/io/midifile.rb
84
+ </a>
85
+ <br />
86
+ <a href="../files/lib/midilib/io/seqreader_rb.html">
87
+ lib/midilib/io/seqreader.rb
88
+ </a>
89
+ <br />
90
+ <a href="../files/lib/midilib/io/seqwriter_rb.html">
91
+ lib/midilib/io/seqwriter.rb
92
+ </a>
93
+ <br />
94
+ </td>
95
+ </tr>
96
+
97
+ </table>
98
+ </div>
99
+ <!-- banner header -->
100
+
101
+ <div id="bodyContent">
102
+
103
+
104
+
105
+ <div id="contextContent">
106
+
107
+ <div id="description">
108
+ <p>
109
+ <a href="MIDI.html">MIDI</a> constants.
110
+ </p>
111
+
112
+ </div>
113
+
114
+
115
+ </div>
116
+
117
+
118
+ </div>
119
+
120
+
121
+ <!-- if includes -->
122
+
123
+ <div id="section">
124
+
125
+ <div id="class-list">
126
+ <h3 class="section-bar">Classes and Modules</h3>
127
+
128
+ Module <a href="MIDI/IO.html" class="link">MIDI::IO</a><br />
129
+ Class <a href="MIDI/ActiveSense.html" class="link">MIDI::ActiveSense</a><br />
130
+ Class <a href="MIDI/ChannelEvent.html" class="link">MIDI::ChannelEvent</a><br />
131
+ Class <a href="MIDI/ChannelPressure.html" class="link">MIDI::ChannelPressure</a><br />
132
+ Class <a href="MIDI/Clock.html" class="link">MIDI::Clock</a><br />
133
+ Class <a href="MIDI/Continue.html" class="link">MIDI::Continue</a><br />
134
+ Class <a href="MIDI/Controller.html" class="link">MIDI::Controller</a><br />
135
+ Class <a href="MIDI/Event.html" class="link">MIDI::Event</a><br />
136
+ Class <a href="MIDI/Marker.html" class="link">MIDI::Marker</a><br />
137
+ Class <a href="MIDI/MetaEvent.html" class="link">MIDI::MetaEvent</a><br />
138
+ Class <a href="MIDI/NoteEvent.html" class="link">MIDI::NoteEvent</a><br />
139
+ Class <a href="MIDI/NoteOffEvent.html" class="link">MIDI::NoteOffEvent</a><br />
140
+ Class <a href="MIDI/NoteOnEvent.html" class="link">MIDI::NoteOnEvent</a><br />
141
+ Class <a href="MIDI/PitchBend.html" class="link">MIDI::PitchBend</a><br />
142
+ Class <a href="MIDI/PolyPressure.html" class="link">MIDI::PolyPressure</a><br />
143
+ Class <a href="MIDI/ProgramChange.html" class="link">MIDI::ProgramChange</a><br />
144
+ Class <a href="MIDI/Realtime.html" class="link">MIDI::Realtime</a><br />
145
+ Class <a href="MIDI/Sequence.html" class="link">MIDI::Sequence</a><br />
146
+ Class <a href="MIDI/SongPointer.html" class="link">MIDI::SongPointer</a><br />
147
+ Class <a href="MIDI/SongSelect.html" class="link">MIDI::SongSelect</a><br />
148
+ Class <a href="MIDI/Start.html" class="link">MIDI::Start</a><br />
149
+ Class <a href="MIDI/Stop.html" class="link">MIDI::Stop</a><br />
150
+ Class <a href="MIDI/SystemCommon.html" class="link">MIDI::SystemCommon</a><br />
151
+ Class <a href="MIDI/SystemExclusive.html" class="link">MIDI::SystemExclusive</a><br />
152
+ Class <a href="MIDI/SystemReset.html" class="link">MIDI::SystemReset</a><br />
153
+ Class <a href="MIDI/Tempo.html" class="link">MIDI::Tempo</a><br />
154
+ Class <a href="MIDI/Track.html" class="link">MIDI::Track</a><br />
155
+ Class <a href="MIDI/TuneRequest.html" class="link">MIDI::TuneRequest</a><br />
156
+ Class <a href="MIDI/Utils.html" class="link">MIDI::Utils</a><br />
157
+
158
+ </div>
159
+
160
+ <div id="constants-list">
161
+ <h3 class="section-bar">Constants</h3>
162
+
163
+ <div class="name-list">
164
+ <table summary="Constants">
165
+ <tr class="top-aligned-row context-row">
166
+ <td class="context-item-name">MIDI_CHANNELS</td>
167
+ <td>=</td>
168
+ <td class="context-item-value">16</td>
169
+ <td width="3em">&nbsp;</td>
170
+ <td class="context-item-desc">
171
+ Number of <a href="MIDI.html">MIDI</a> channels
172
+
173
+ </td>
174
+ </tr>
175
+ <tr class="top-aligned-row context-row">
176
+ <td class="context-item-name">NOTES_PER_CHANNEL</td>
177
+ <td>=</td>
178
+ <td class="context-item-value">128</td>
179
+ <td width="3em">&nbsp;</td>
180
+ <td class="context-item-desc">
181
+ Number of note per <a href="MIDI.html">MIDI</a> channel
182
+
183
+ </td>
184
+ </tr>
185
+ <tr class="top-aligned-row context-row">
186
+ <td class="context-item-name">META_EVENT</td>
187
+ <td>=</td>
188
+ <td class="context-item-value">0xff</td>
189
+ <td width="3em">&nbsp;</td>
190
+ <td class="context-item-desc"></td>
191
+ </tr>
192
+ <tr class="top-aligned-row context-row">
193
+ <td class="context-item-name">META_SEQ_NUM</td>
194
+ <td>=</td>
195
+ <td class="context-item-value">0x00</td>
196
+ </tr>
197
+ <tr class="top-aligned-row context-row">
198
+ <td class="context-item-name">META_TEXT</td>
199
+ <td>=</td>
200
+ <td class="context-item-value">0x01</td>
201
+ </tr>
202
+ <tr class="top-aligned-row context-row">
203
+ <td class="context-item-name">META_COPYRIGHT</td>
204
+ <td>=</td>
205
+ <td class="context-item-value">0x02</td>
206
+ </tr>
207
+ <tr class="top-aligned-row context-row">
208
+ <td class="context-item-name">META_SEQ_NAME</td>
209
+ <td>=</td>
210
+ <td class="context-item-value">0x03</td>
211
+ </tr>
212
+ <tr class="top-aligned-row context-row">
213
+ <td class="context-item-name">META_INSTRUMENT</td>
214
+ <td>=</td>
215
+ <td class="context-item-value">0x04</td>
216
+ </tr>
217
+ <tr class="top-aligned-row context-row">
218
+ <td class="context-item-name">META_LYRIC</td>
219
+ <td>=</td>
220
+ <td class="context-item-value">0x05</td>
221
+ </tr>
222
+ <tr class="top-aligned-row context-row">
223
+ <td class="context-item-name">META_MARKER</td>
224
+ <td>=</td>
225
+ <td class="context-item-value">0x06</td>
226
+ </tr>
227
+ <tr class="top-aligned-row context-row">
228
+ <td class="context-item-name">META_CUE</td>
229
+ <td>=</td>
230
+ <td class="context-item-value">0x07</td>
231
+ </tr>
232
+ <tr class="top-aligned-row context-row">
233
+ <td class="context-item-name">META_TRACK_END</td>
234
+ <td>=</td>
235
+ <td class="context-item-value">0x2f</td>
236
+ </tr>
237
+ <tr class="top-aligned-row context-row">
238
+ <td class="context-item-name">META_SET_TEMPO</td>
239
+ <td>=</td>
240
+ <td class="context-item-value">0x51</td>
241
+ </tr>
242
+ <tr class="top-aligned-row context-row">
243
+ <td class="context-item-name">META_SMPTE</td>
244
+ <td>=</td>
245
+ <td class="context-item-value">0x53</td>
246
+ </tr>
247
+ <tr class="top-aligned-row context-row">
248
+ <td class="context-item-name">META_TIME_SIG</td>
249
+ <td>=</td>
250
+ <td class="context-item-value">0x58</td>
251
+ </tr>
252
+ <tr class="top-aligned-row context-row">
253
+ <td class="context-item-name">META_KEY_SIG</td>
254
+ <td>=</td>
255
+ <td class="context-item-value">0x59</td>
256
+ </tr>
257
+ <tr class="top-aligned-row context-row">
258
+ <td class="context-item-name">META_SEQ_SPECIF</td>
259
+ <td>=</td>
260
+ <td class="context-item-value">0x7f</td>
261
+ </tr>
262
+ <tr class="top-aligned-row context-row">
263
+ <td class="context-item-name">NOTE_OFF</td>
264
+ <td>=</td>
265
+ <td class="context-item-value">0x80</td>
266
+ <td width="3em">&nbsp;</td>
267
+ <td class="context-item-desc">
268
+ Note, val
269
+
270
+ </td>
271
+ </tr>
272
+ <tr class="top-aligned-row context-row">
273
+ <td class="context-item-name">NOTE_ON</td>
274
+ <td>=</td>
275
+ <td class="context-item-value">0x90</td>
276
+ <td width="3em">&nbsp;</td>
277
+ <td class="context-item-desc">
278
+ Note, val
279
+
280
+ </td>
281
+ </tr>
282
+ <tr class="top-aligned-row context-row">
283
+ <td class="context-item-name">POLY_PRESSURE</td>
284
+ <td>=</td>
285
+ <td class="context-item-value">0xA0</td>
286
+ <td width="3em">&nbsp;</td>
287
+ <td class="context-item-desc">
288
+ Note, val
289
+
290
+ </td>
291
+ </tr>
292
+ <tr class="top-aligned-row context-row">
293
+ <td class="context-item-name">CONTROLLER</td>
294
+ <td>=</td>
295
+ <td class="context-item-value">0xB0</td>
296
+ <td width="3em">&nbsp;</td>
297
+ <td class="context-item-desc">
298
+ <a href="MIDI/Controller.html">Controller</a> #, val
299
+
300
+ </td>
301
+ </tr>
302
+ <tr class="top-aligned-row context-row">
303
+ <td class="context-item-name">PROGRAM_CHANGE</td>
304
+ <td>=</td>
305
+ <td class="context-item-value">0xC0</td>
306
+ <td width="3em">&nbsp;</td>
307
+ <td class="context-item-desc">
308
+ Program number
309
+
310
+ </td>
311
+ </tr>
312
+ <tr class="top-aligned-row context-row">
313
+ <td class="context-item-name">CHANNEL_PRESSURE</td>
314
+ <td>=</td>
315
+ <td class="context-item-value">0xD0</td>
316
+ <td width="3em">&nbsp;</td>
317
+ <td class="context-item-desc">
318
+ Channel pressure
319
+
320
+ </td>
321
+ </tr>
322
+ <tr class="top-aligned-row context-row">
323
+ <td class="context-item-name">PITCH_BEND</td>
324
+ <td>=</td>
325
+ <td class="context-item-value">0xE0</td>
326
+ <td width="3em">&nbsp;</td>
327
+ <td class="context-item-desc">
328
+ LSB, MSB
329
+
330
+ </td>
331
+ </tr>
332
+ <tr class="top-aligned-row context-row">
333
+ <td class="context-item-name">SYSEX</td>
334
+ <td>=</td>
335
+ <td class="context-item-value">0xF0</td>
336
+ <td width="3em">&nbsp;</td>
337
+ <td class="context-item-desc">
338
+ System exclusive start
339
+
340
+ </td>
341
+ </tr>
342
+ <tr class="top-aligned-row context-row">
343
+ <td class="context-item-name">SONG_POINTER</td>
344
+ <td>=</td>
345
+ <td class="context-item-value">0xF2</td>
346
+ <td width="3em">&nbsp;</td>
347
+ <td class="context-item-desc">
348
+ Beats from top: LSB/MSB 6 ticks = 1 beat
349
+
350
+ </td>
351
+ </tr>
352
+ <tr class="top-aligned-row context-row">
353
+ <td class="context-item-name">SONG_SELECT</td>
354
+ <td>=</td>
355
+ <td class="context-item-value">0xF3</td>
356
+ <td width="3em">&nbsp;</td>
357
+ <td class="context-item-desc">
358
+ Val = number of song
359
+
360
+ </td>
361
+ </tr>
362
+ <tr class="top-aligned-row context-row">
363
+ <td class="context-item-name">TUNE_REQUEST</td>
364
+ <td>=</td>
365
+ <td class="context-item-value">0xF6</td>
366
+ <td width="3em">&nbsp;</td>
367
+ <td class="context-item-desc">
368
+ Tune request
369
+
370
+ </td>
371
+ </tr>
372
+ <tr class="top-aligned-row context-row">
373
+ <td class="context-item-name">EOX</td>
374
+ <td>=</td>
375
+ <td class="context-item-value">0xF7</td>
376
+ <td width="3em">&nbsp;</td>
377
+ <td class="context-item-desc">
378
+ End of system exclusive
379
+
380
+ </td>
381
+ </tr>
382
+ <tr class="top-aligned-row context-row">
383
+ <td class="context-item-name">CLOCK</td>
384
+ <td>=</td>
385
+ <td class="context-item-value">0xF8</td>
386
+ <td width="3em">&nbsp;</td>
387
+ <td class="context-item-desc">
388
+ <a href="MIDI.html">MIDI</a> clock (24 per quarter note)
389
+
390
+ </td>
391
+ </tr>
392
+ <tr class="top-aligned-row context-row">
393
+ <td class="context-item-name">START</td>
394
+ <td>=</td>
395
+ <td class="context-item-value">0xFA</td>
396
+ <td width="3em">&nbsp;</td>
397
+ <td class="context-item-desc">
398
+ <a href="MIDI/Sequence.html">Sequence</a> start
399
+
400
+ </td>
401
+ </tr>
402
+ <tr class="top-aligned-row context-row">
403
+ <td class="context-item-name">CONTINUE</td>
404
+ <td>=</td>
405
+ <td class="context-item-value">0xFB</td>
406
+ <td width="3em">&nbsp;</td>
407
+ <td class="context-item-desc">
408
+ <a href="MIDI/Sequence.html">Sequence</a> continue
409
+
410
+ </td>
411
+ </tr>
412
+ <tr class="top-aligned-row context-row">
413
+ <td class="context-item-name">STOP</td>
414
+ <td>=</td>
415
+ <td class="context-item-value">0xFC</td>
416
+ <td width="3em">&nbsp;</td>
417
+ <td class="context-item-desc">
418
+ <a href="MIDI/Sequence.html">Sequence</a> stop
419
+
420
+ </td>
421
+ </tr>
422
+ <tr class="top-aligned-row context-row">
423
+ <td class="context-item-name">ACTIVE_SENSE</td>
424
+ <td>=</td>
425
+ <td class="context-item-value">0xFE</td>
426
+ <td width="3em">&nbsp;</td>
427
+ <td class="context-item-desc">
428
+ Active sensing (sent every 300 ms when nothing else being sent)
429
+
430
+ </td>
431
+ </tr>
432
+ <tr class="top-aligned-row context-row">
433
+ <td class="context-item-name">SYSTEM_RESET</td>
434
+ <td>=</td>
435
+ <td class="context-item-value">0xFF</td>
436
+ <td width="3em">&nbsp;</td>
437
+ <td class="context-item-desc">
438
+ System reset
439
+
440
+ </td>
441
+ </tr>
442
+ <tr class="top-aligned-row context-row">
443
+ <td class="context-item-name">CC_MOD_WHEEL</td>
444
+ <td>=</td>
445
+ <td class="context-item-value">1</td>
446
+ <td width="3em">&nbsp;</td>
447
+ <td class="context-item-desc">
448
+ <a href="MIDI/Controller.html">Controller</a> numbers
449
+
450
+ <h1>0 - 31 = continuous, LSB</h1>
451
+ <h1>32 - 63 = continuous, MSB</h1>
452
+ <h1>64 - 97 = switches</h1>
453
+ </td>
454
+ </tr>
455
+ <tr class="top-aligned-row context-row">
456
+ <td class="context-item-name">CC_BREATH_CONTROLLER</td>
457
+ <td>=</td>
458
+ <td class="context-item-value">2</td>
459
+ </tr>
460
+ <tr class="top-aligned-row context-row">
461
+ <td class="context-item-name">CC_FOOT_CONTROLLER</td>
462
+ <td>=</td>
463
+ <td class="context-item-value">4</td>
464
+ </tr>
465
+ <tr class="top-aligned-row context-row">
466
+ <td class="context-item-name">CC_PORTAMENTO_TIME</td>
467
+ <td>=</td>
468
+ <td class="context-item-value">5</td>
469
+ </tr>
470
+ <tr class="top-aligned-row context-row">
471
+ <td class="context-item-name">CC_DATA_ENTRY_MSB</td>
472
+ <td>=</td>
473
+ <td class="context-item-value">6</td>
474
+ </tr>
475
+ <tr class="top-aligned-row context-row">
476
+ <td class="context-item-name">CC_VOLUME</td>
477
+ <td>=</td>
478
+ <td class="context-item-value">7</td>
479
+ </tr>
480
+ <tr class="top-aligned-row context-row">
481
+ <td class="context-item-name">CC_BALANCE</td>
482
+ <td>=</td>
483
+ <td class="context-item-value">8</td>
484
+ </tr>
485
+ <tr class="top-aligned-row context-row">
486
+ <td class="context-item-name">CC_PAN</td>
487
+ <td>=</td>
488
+ <td class="context-item-value">10</td>
489
+ </tr>
490
+ <tr class="top-aligned-row context-row">
491
+ <td class="context-item-name">CC_EXPRESSION_CONTROLLER</td>
492
+ <td>=</td>
493
+ <td class="context-item-value">11</td>
494
+ </tr>
495
+ <tr class="top-aligned-row context-row">
496
+ <td class="context-item-name">CC_GEN_PURPOSE_1</td>
497
+ <td>=</td>
498
+ <td class="context-item-value">16</td>
499
+ </tr>
500
+ <tr class="top-aligned-row context-row">
501
+ <td class="context-item-name">CC_GEN_PURPOSE_2</td>
502
+ <td>=</td>
503
+ <td class="context-item-value">17</td>
504
+ </tr>
505
+ <tr class="top-aligned-row context-row">
506
+ <td class="context-item-name">CC_GEN_PURPOSE_3</td>
507
+ <td>=</td>
508
+ <td class="context-item-value">18</td>
509
+ </tr>
510
+ <tr class="top-aligned-row context-row">
511
+ <td class="context-item-name">CC_GEN_PURPOSE_4</td>
512
+ <td>=</td>
513
+ <td class="context-item-value">19</td>
514
+ </tr>
515
+ <tr class="top-aligned-row context-row">
516
+ <td class="context-item-name">CC_SUSTAIN</td>
517
+ <td>=</td>
518
+ <td class="context-item-value">64</td>
519
+ <td width="3em">&nbsp;</td>
520
+ <td class="context-item-desc"><dl>
521
+ <dt>32 - 63</dt><dd>are LSB for [0 - 31]
522
+
523
+ </dd>
524
+ </dl>
525
+ </td>
526
+ </tr>
527
+ <tr class="top-aligned-row context-row">
528
+ <td class="context-item-name">CC_PORTAMENTO</td>
529
+ <td>=</td>
530
+ <td class="context-item-value">65</td>
531
+ </tr>
532
+ <tr class="top-aligned-row context-row">
533
+ <td class="context-item-name">CC_SUSTENUTO</td>
534
+ <td>=</td>
535
+ <td class="context-item-value">66</td>
536
+ </tr>
537
+ <tr class="top-aligned-row context-row">
538
+ <td class="context-item-name">CC_SOFT_PEDAL</td>
539
+ <td>=</td>
540
+ <td class="context-item-value">67</td>
541
+ </tr>
542
+ <tr class="top-aligned-row context-row">
543
+ <td class="context-item-name">CC_HOLD_2</td>
544
+ <td>=</td>
545
+ <td class="context-item-value">69</td>
546
+ </tr>
547
+ <tr class="top-aligned-row context-row">
548
+ <td class="context-item-name">CC_GEN_PURPOSE_5</td>
549
+ <td>=</td>
550
+ <td class="context-item-value">50</td>
551
+ </tr>
552
+ <tr class="top-aligned-row context-row">
553
+ <td class="context-item-name">CC_GEN_PURPOSE_6</td>
554
+ <td>=</td>
555
+ <td class="context-item-value">51</td>
556
+ </tr>
557
+ <tr class="top-aligned-row context-row">
558
+ <td class="context-item-name">CC_GEN_PURPOSE_7</td>
559
+ <td>=</td>
560
+ <td class="context-item-value">52</td>
561
+ </tr>
562
+ <tr class="top-aligned-row context-row">
563
+ <td class="context-item-name">CC_GEN_PURPOSE_8</td>
564
+ <td>=</td>
565
+ <td class="context-item-value">53</td>
566
+ </tr>
567
+ <tr class="top-aligned-row context-row">
568
+ <td class="context-item-name">CC_TREMELO_DEPTH</td>
569
+ <td>=</td>
570
+ <td class="context-item-value">92</td>
571
+ </tr>
572
+ <tr class="top-aligned-row context-row">
573
+ <td class="context-item-name">CC_CHORUS_DEPTH</td>
574
+ <td>=</td>
575
+ <td class="context-item-value">93</td>
576
+ </tr>
577
+ <tr class="top-aligned-row context-row">
578
+ <td class="context-item-name">CC_DETUNE_DEPTH</td>
579
+ <td>=</td>
580
+ <td class="context-item-value">94</td>
581
+ </tr>
582
+ <tr class="top-aligned-row context-row">
583
+ <td class="context-item-name">CC_PHASER_DEPTH</td>
584
+ <td>=</td>
585
+ <td class="context-item-value">95</td>
586
+ </tr>
587
+ <tr class="top-aligned-row context-row">
588
+ <td class="context-item-name">CC_DATA_INCREMENT</td>
589
+ <td>=</td>
590
+ <td class="context-item-value">96</td>
591
+ </tr>
592
+ <tr class="top-aligned-row context-row">
593
+ <td class="context-item-name">CC_DATA_DECREMENT</td>
594
+ <td>=</td>
595
+ <td class="context-item-value">97</td>
596
+ </tr>
597
+ <tr class="top-aligned-row context-row">
598
+ <td class="context-item-name">CC_NREG_PARAM_LSB</td>
599
+ <td>=</td>
600
+ <td class="context-item-value">98</td>
601
+ </tr>
602
+ <tr class="top-aligned-row context-row">
603
+ <td class="context-item-name">CC_NREG_PARAM_MSB</td>
604
+ <td>=</td>
605
+ <td class="context-item-value">99</td>
606
+ </tr>
607
+ <tr class="top-aligned-row context-row">
608
+ <td class="context-item-name">CC_REG_PARAM_LSB</td>
609
+ <td>=</td>
610
+ <td class="context-item-value">100</td>
611
+ </tr>
612
+ <tr class="top-aligned-row context-row">
613
+ <td class="context-item-name">CC_REG_PARAM_MSB</td>
614
+ <td>=</td>
615
+ <td class="context-item-value">101</td>
616
+ </tr>
617
+ <tr class="top-aligned-row context-row">
618
+ <td class="context-item-name">CM_LOCAL_CONTROL</td>
619
+ <td>=</td>
620
+ <td class="context-item-value">0x7A</td>
621
+ <td width="3em">&nbsp;</td>
622
+ <td class="context-item-desc">
623
+ Val 0 == off, 0x7f == on
624
+
625
+ </td>
626
+ </tr>
627
+ <tr class="top-aligned-row context-row">
628
+ <td class="context-item-name">CM_ALL_NOTES_OFF</td>
629
+ <td>=</td>
630
+ <td class="context-item-value">0x7B</td>
631
+ </tr>
632
+ <tr class="top-aligned-row context-row">
633
+ <td class="context-item-name">CM_OMNI_MODE_OFF</td>
634
+ <td>=</td>
635
+ <td class="context-item-value">0x7C</td>
636
+ </tr>
637
+ <tr class="top-aligned-row context-row">
638
+ <td class="context-item-name">CM_OMNI_MODE_ON</td>
639
+ <td>=</td>
640
+ <td class="context-item-value">0x7D</td>
641
+ </tr>
642
+ <tr class="top-aligned-row context-row">
643
+ <td class="context-item-name">CM_MONO_MODE_ON</td>
644
+ <td>=</td>
645
+ <td class="context-item-value">0x7E</td>
646
+ </tr>
647
+ <tr class="top-aligned-row context-row">
648
+ <td class="context-item-name">CM_POLY_MODE_ON</td>
649
+ <td>=</td>
650
+ <td class="context-item-value">0x7F</td>
651
+ </tr>
652
+ <tr class="top-aligned-row context-row">
653
+ <td class="context-item-name">CONTROLLER_NAMES</td>
654
+ <td>=</td>
655
+ <td class="context-item-value">[ &quot;0&quot;, &quot;Modulation&quot;, &quot;Breath Control&quot;, &quot;3&quot;, &quot;Foot Controller&quot;, &quot;Portamento Time&quot;, &quot;Data Entry&quot;, &quot;Volume&quot;, &quot;Balance&quot;, &quot;9&quot;, &quot;Pan&quot;, &quot;Expression Control&quot;, &quot;12&quot;, &quot;13&quot;, &quot;14&quot;, &quot;15&quot;, &quot;General Controller 1&quot;, &quot;General Controller 2&quot;, &quot;General Controller 3&quot;, &quot;General Controller 4&quot;, &quot;20&quot;, &quot;21&quot;, &quot;22&quot;, &quot;23&quot;, &quot;24&quot;, &quot;25&quot;, &quot;26&quot;, &quot;27&quot;, &quot;28&quot;, &quot;29&quot;, &quot;30&quot;, &quot;31&quot;, &quot;32&quot;, &quot;33&quot;, &quot;34&quot;, &quot;35&quot;, &quot;36&quot;, &quot;37&quot;, &quot;38&quot;, &quot;39&quot;, &quot;40&quot;, &quot;41&quot;, &quot;42&quot;, &quot;43&quot;, &quot;44&quot;, &quot;45&quot;, &quot;46&quot;, &quot;47&quot;, &quot;48&quot;, &quot;49&quot;, &quot;50&quot;, &quot;51&quot;, &quot;52&quot;, &quot;53&quot;, &quot;54&quot;, &quot;55&quot;, &quot;56&quot;, &quot;57&quot;, &quot;58&quot;, &quot;59&quot;, &quot;60&quot;, &quot;61&quot;, &quot;62&quot;, &quot;63&quot;, &quot;Sustain Pedal&quot;, &quot;Portamento&quot;, &quot;Sostenuto&quot;, &quot;Soft Pedal&quot;, &quot;68&quot;, &quot;Hold 2&quot;, &quot;70&quot;, &quot;71&quot;, &quot;72&quot;, &quot;73&quot;, &quot;74&quot;, &quot;75&quot;, &quot;76&quot;, &quot;77&quot;, &quot;78&quot;, &quot;79&quot;, &quot;General Controller 5&quot;, &quot;Tempo Change&quot;, &quot;General Controller 7&quot;, &quot;General Controller 8&quot;, &quot;84&quot;, &quot;85&quot;, &quot;86&quot;, &quot;87&quot;, &quot;88&quot;, &quot;89&quot;, &quot;90&quot;, &quot;External Effects Depth&quot;, &quot;Tremolo Depth&quot;, &quot;Chorus Depth&quot;, &quot;Detune (Celeste) Depth&quot;, &quot;Phaser Depth&quot;, &quot;Data Increment&quot;, &quot;Data Decrement&quot;, &quot;Non-Registered Param LSB&quot;, &quot;Non-Registered Param MSB&quot;, &quot;Registered Param LSB&quot;, &quot;Registered Param MSB&quot;, &quot;102&quot;, &quot;103&quot;, &quot;104&quot;, &quot;105&quot;, &quot;106&quot;, &quot;107&quot;, &quot;108&quot;, &quot;109&quot;, &quot;110&quot;, &quot;111&quot;, &quot;112&quot;, &quot;113&quot;, &quot;114&quot;, &quot;115&quot;, &quot;116&quot;, &quot;117&quot;, &quot;118&quot;, &quot;119&quot;, &quot;120&quot;, &quot;Reset All Controllers&quot;, &quot;Local Control&quot;, &quot;All Notes Off&quot;, &quot;Omni Mode Off&quot;, &quot;Omni Mode On&quot;, &quot;Mono Mode On&quot;, &quot;Poly Mode On&quot;</td>
656
+ <td width="3em">&nbsp;</td>
657
+ <td class="context-item-desc">
658
+ <a href="MIDI/Controller.html">Controller</a> names
659
+
660
+ </td>
661
+ </tr>
662
+ <tr class="top-aligned-row context-row">
663
+ <td class="context-item-name">GM_PATCH_NAMES</td>
664
+ <td>=</td>
665
+ <td class="context-item-value">[ #-- # Pianos #++ &quot;Acoustic Grand Piano&quot;, &quot;Bright Acoustic Piano&quot;, &quot;Electric Grand Piano&quot;, &quot;Honky-tonk Piano&quot;, &quot;Electric Piano 1&quot;, &quot;Electric Piano 2&quot;, &quot;Harpsichord&quot;, &quot;Clavichord&quot;, #-- # Tuned Idiophones #++ &quot;Celesta&quot;, &quot;Glockenspiel&quot;, &quot;Music Box&quot;, &quot;Vibraphone&quot;, &quot;Marimba&quot;, &quot;Xylophone&quot;, &quot;Tubular Bells&quot;, &quot;Dulcimer&quot;, #-- # Organs #++ &quot;Drawbar Organ&quot;, &quot;Percussive Organ&quot;, &quot;Rock Organ&quot;, &quot;Church Organ&quot;, &quot;Reed Organ&quot;, &quot;Accordion&quot;, &quot;Harmonica&quot;, &quot;Tango Accordion&quot;, #-- # Guitars #++ &quot;Acoustic Guitar (nylon)&quot;, &quot;Acoustic Guitar (steel)&quot;, &quot;Electric Guitar (jazz)&quot;, &quot;Electric Guitar (clean)&quot;, &quot;Electric Guitar (muted)&quot;, &quot;Overdriven Guitar&quot;, &quot;Distortion Guitar&quot;, &quot;Guitar harmonics&quot;, #-- # Basses #++ &quot;Acoustic Bass&quot;, &quot;Electric Bass (finger)&quot;, &quot;Electric Bass (pick)&quot;, &quot;Fretless Bass&quot;, &quot;Slap Bass 1&quot;, &quot;Slap Bass 2&quot;, &quot;Synth Bass 1&quot;, &quot;Synth Bass 2&quot;, #-- # Strings #++ &quot;Violin&quot;, &quot;Viola&quot;, &quot;Cello&quot;, &quot;Contrabass&quot;, &quot;Tremolo Strings&quot;, &quot;Pizzicato Strings&quot;, &quot;Orchestral Harp&quot;, &quot;Timpani&quot;, #-- # Ensemble strings and voices #++ &quot;String Ensemble 1&quot;, &quot;String Ensemble 2&quot;, &quot;SynthStrings 1&quot;, &quot;SynthStrings 2&quot;, &quot;Choir Aahs&quot;, &quot;Voice Oohs&quot;, &quot;Synth Voice&quot;, &quot;Orchestra Hit&quot;, #-- # Brass #++ &quot;Trumpet&quot;, &quot;Trombone&quot;, &quot;Tuba&quot;, &quot;Muted Trumpet&quot;, &quot;French Horn&quot;, &quot;Brass Section&quot;, &quot;SynthBrass 1&quot;, &quot;SynthBrass 2&quot;, #-- # Reeds #++ &quot;Soprano Sax&quot;, # 64 &quot;Alto Sax&quot;, &quot;Tenor Sax&quot;, &quot;Baritone Sax&quot;, &quot;Oboe&quot;, &quot;English Horn&quot;, &quot;Bassoon&quot;, &quot;Clarinet&quot;, #-- # Pipes #++ &quot;Piccolo&quot;, &quot;Flute&quot;, &quot;Recorder&quot;, &quot;Pan Flute&quot;, &quot;Blown Bottle&quot;, &quot;Shakuhachi&quot;, &quot;Whistle&quot;, &quot;Ocarina&quot;, #-- # Synth Leads #++ &quot;Lead 1 (square)&quot;, &quot;Lead 2 (sawtooth)&quot;, &quot;Lead 3 (calliope)&quot;, &quot;Lead 4 (chiff)&quot;, &quot;Lead 5 (charang)&quot;, &quot;Lead 6 (voice)&quot;, &quot;Lead 7 (fifths)&quot;, &quot;Lead 8 (bass + lead)&quot;, #-- # Synth Pads #++ &quot;Pad 1 (new age)&quot;, &quot;Pad 2 (warm)&quot;, &quot;Pad 3 (polysynth)&quot;, &quot;Pad 4 (choir)&quot;, &quot;Pad 5 (bowed)&quot;, &quot;Pad 6 (metallic)&quot;, &quot;Pad 7 (halo)&quot;, &quot;Pad 8 (sweep)&quot;, #-- # Effects #++ &quot;FX 1 (rain)&quot;, &quot;FX 2 (soundtrack)&quot;, &quot;FX 3 (crystal)&quot;, &quot;FX 4 (atmosphere)&quot;, &quot;FX 5 (brightness)&quot;, &quot;FX 6 (goblins)&quot;, &quot;FX 7 (echoes)&quot;, &quot;FX 8 (sci-fi)&quot;, #-- # Ethnic #++ &quot;Sitar&quot;, &quot;Banjo&quot;, &quot;Shamisen&quot;, &quot;Koto&quot;, &quot;Kalimba&quot;, &quot;Bag pipe&quot;, &quot;Fiddle&quot;, &quot;Shanai&quot;, #-- # Percussion #++ &quot;Tinkle Bell&quot;, &quot;Agogo&quot;, &quot;Steel Drums&quot;, &quot;Woodblock&quot;, &quot;Taiko Drum&quot;, &quot;Melodic Tom&quot;, &quot;Synth Drum&quot;, &quot;Reverse Cymbal&quot;, #-- # Sound Effects #++ &quot;Guitar Fret Noise&quot;, &quot;Breath Noise&quot;, &quot;Seashore&quot;, &quot;Bird Tweet&quot;, &quot;Telephone Ring&quot;, &quot;Helicopter&quot;, &quot;Applause&quot;, &quot;Gunshot&quot;</td>
666
+ <td width="3em">&nbsp;</td>
667
+ <td class="context-item-desc">
668
+ General <a href="MIDI.html">MIDI</a> patch names
669
+
670
+ </td>
671
+ </tr>
672
+ <tr class="top-aligned-row context-row">
673
+ <td class="context-item-name">GM_DRUM_NOTE_LOWEST</td>
674
+ <td>=</td>
675
+ <td class="context-item-value">35</td>
676
+ <td width="3em">&nbsp;</td>
677
+ <td class="context-item-desc">
678
+ GM drum notes start at 35 (C), so subtrack GM_DRUM_NOTE_LOWEST from your
679
+ note number before using this array.
680
+
681
+ </td>
682
+ </tr>
683
+ <tr class="top-aligned-row context-row">
684
+ <td class="context-item-name">GM_DRUM_NOTE_NAMES</td>
685
+ <td>=</td>
686
+ <td class="context-item-value">[ &quot;Acoustic Bass Drum&quot;, # 35, C &quot;Bass Drum 1&quot;, # 36, C# &quot;Side Stick&quot;, # 37, D &quot;Acoustic Snare&quot;, # 38, D# &quot;Hand Clap&quot;, # 39, E &quot;Electric Snare&quot;, # 40, F &quot;Low Floor Tom&quot;, # 41, F# &quot;Closed Hi Hat&quot;, # 42, G &quot;High Floor Tom&quot;, # 43, G# &quot;Pedal Hi-Hat&quot;, # 44, A &quot;Low Tom&quot;, # 45, A# &quot;Open Hi-Hat&quot;, # 46, B &quot;Low-Mid Tom&quot;, # 47, C &quot;Hi Mid Tom&quot;, # 48, C# &quot;Crash Cymbal 1&quot;, # 49, D &quot;High Tom&quot;, # 50, D# &quot;Ride Cymbal 1&quot;, # 51, E &quot;Chinese Cymbal&quot;, # 52, F &quot;Ride Bell&quot;, # 53, F# &quot;Tambourine&quot;, # 54, G &quot;Splash Cymbal&quot;, # 55, G# &quot;Cowbell&quot;, # 56, A &quot;Crash Cymbal 2&quot;, # 57, A# &quot;Vibraslap&quot;, # 58, B &quot;Ride Cymbal 2&quot;, # 59, C &quot;Hi Bongo&quot;, # 60, C# &quot;Low Bongo&quot;, # 61, D &quot;Mute Hi Conga&quot;, # 62, D# &quot;Open Hi Conga&quot;, # 63, E &quot;Low Conga&quot;, # 64, F &quot;High Timbale&quot;, # 65, F# &quot;Low Timbale&quot;, # 66, G &quot;High Agogo&quot;, # 67, G# &quot;Low Agogo&quot;, # 68, A &quot;Cabasa&quot;, # 69, A# &quot;Maracas&quot;, # 70, B &quot;Short Whistle&quot;, # 71, C &quot;Long Whistle&quot;, # 72, C# &quot;Short Guiro&quot;, # 73, D &quot;Long Guiro&quot;, # 74, D# &quot;Claves&quot;, # 75, E &quot;Hi Wood Block&quot;, # 76, F &quot;Low Wood Block&quot;, # 77, F# &quot;Mute Cuica&quot;, # 78, G &quot;Open Cuica&quot;, # 79, G# &quot;Mute Triangle&quot;, # 80, A &quot;Open Triangle&quot;</td>
687
+ <td width="3em">&nbsp;</td>
688
+ <td class="context-item-desc">
689
+ General <a href="MIDI.html">MIDI</a> drum channel note names.
690
+
691
+ </td>
692
+ </tr>
693
+ <tr class="top-aligned-row context-row">
694
+ <td class="context-item-name">VERSION_MAJOR</td>
695
+ <td>=</td>
696
+ <td class="context-item-value">0</td>
697
+ </tr>
698
+ <tr class="top-aligned-row context-row">
699
+ <td class="context-item-name">VERSION_MINOR</td>
700
+ <td>=</td>
701
+ <td class="context-item-value">8</td>
702
+ </tr>
703
+ <tr class="top-aligned-row context-row">
704
+ <td class="context-item-name">VERSION_TWEAK</td>
705
+ <td>=</td>
706
+ <td class="context-item-value">4</td>
707
+ </tr>
708
+ <tr class="top-aligned-row context-row">
709
+ <td class="context-item-name">Version</td>
710
+ <td>=</td>
711
+ <td class="context-item-value">&quot;#{VERSION_MAJOR}.#{VERSION_MINOR}.#{VERSION_TWEAK}&quot;</td>
712
+ </tr>
713
+ <tr class="top-aligned-row context-row">
714
+ <td class="context-item-name">Copyright</td>
715
+ <td>=</td>
716
+ <td class="context-item-value">'Copyright (c) 2003-2005 by Jim Menard &lt;jimm@io.com&gt;'</td>
717
+ </tr>
718
+ </table>
719
+ </div>
720
+ </div>
721
+
722
+
723
+
724
+
725
+
726
+
727
+ <!-- if method_list -->
728
+
729
+
730
+ </div>
731
+
732
+
733
+ <div id="validator-badges">
734
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
735
+ </div>
736
+
737
+ </body>
738
+ </html>