midilib 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,20 @@
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>
7
+ <head>
8
+ <title>write16 (MIDI::IO::MIDIFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/midilib/io/midifile.rb, line 388</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write16</span>(<span class="ruby-identifier">val</span>)
15
+ <span class="ruby-identifier">val</span> = (<span class="ruby-operator">-</span><span class="ruby-identifier">val</span>) <span class="ruby-operator">|</span> <span class="ruby-value">0x8000</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
16
+ <span class="ruby-identifier">putc</span>((<span class="ruby-identifier">val</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-value">8</span>) <span class="ruby-operator">&amp;</span> <span class="ruby-value">0xff</span>)
17
+ <span class="ruby-identifier">putc</span>(<span class="ruby-identifier">val</span> <span class="ruby-operator">&amp;</span> <span class="ruby-value">0xff</span>)
18
+ <span class="ruby-keyword kw">end</span></pre>
19
+ </body>
20
+ </html>
@@ -0,0 +1,22 @@
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>
7
+ <head>
8
+ <title>write32 (MIDI::IO::MIDIFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/midilib/io/midifile.rb, line 395</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write32</span>(<span class="ruby-identifier">val</span>)
15
+ <span class="ruby-identifier">val</span> = (<span class="ruby-operator">-</span><span class="ruby-identifier">val</span>) <span class="ruby-operator">|</span> <span class="ruby-value">0x80000000</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
16
+ <span class="ruby-identifier">putc</span>((<span class="ruby-identifier">val</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-value">24</span>) <span class="ruby-operator">&amp;</span> <span class="ruby-value">0xff</span>)
17
+ <span class="ruby-identifier">putc</span>((<span class="ruby-identifier">val</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-value">16</span>) <span class="ruby-operator">&amp;</span> <span class="ruby-value">0xff</span>)
18
+ <span class="ruby-identifier">putc</span>((<span class="ruby-identifier">val</span> <span class="ruby-operator">&gt;&gt;</span> <span class="ruby-value">8</span>) <span class="ruby-operator">&amp;</span> <span class="ruby-value">0xff</span>)
19
+ <span class="ruby-identifier">putc</span>(<span class="ruby-identifier">val</span> <span class="ruby-operator">&amp;</span> <span class="ruby-value">0xff</span>)
20
+ <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </html>
@@ -0,0 +1,30 @@
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>
7
+ <head>
8
+ <title>write_var_len (MIDI::IO::MIDIFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/midilib/io/midifile.rb, line 404</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write_var_len</span>(<span class="ruby-identifier">val</span>)
15
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">zero?</span>
16
+ <span class="ruby-identifier">putc</span>(<span class="ruby-value">0</span>)
17
+ <span class="ruby-keyword kw">return</span>
18
+ <span class="ruby-keyword kw">end</span>
19
+
20
+ <span class="ruby-identifier">buf</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
21
+
22
+ <span class="ruby-identifier">buf</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">val</span> <span class="ruby-operator">&amp;</span> <span class="ruby-value">0x7f</span>)
23
+ <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">value</span> <span class="ruby-operator">&gt;&gt;=</span> <span class="ruby-value">7</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
24
+ <span class="ruby-identifier">buf</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">val</span> <span class="ruby-operator">&amp;</span> <span class="ruby-value">0x7f</span>) <span class="ruby-operator">|</span> <span class="ruby-value">0x80</span>
25
+ <span class="ruby-keyword kw">end</span>
26
+
27
+ <span class="ruby-identifier">buf</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">b</span> <span class="ruby-operator">|</span> <span class="ruby-identifier">putc</span>(<span class="ruby-identifier">b</span>) }
28
+ <span class="ruby-keyword kw">end</span></pre>
29
+ </body>
30
+ </html>
@@ -0,0 +1,18 @@
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>
7
+ <head>
8
+ <title>msg_add (MIDI::IO::MIDIFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/midilib/io/midifile.rb, line 421</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">msg_add</span>(<span class="ruby-identifier">c</span>)
15
+ <span class="ruby-ivar">@msg_buf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,20 @@
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>
7
+ <head>
8
+ <title>msg_read (MIDI::IO::MIDIFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/midilib/io/midifile.rb, line 427</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">msg_read</span>(<span class="ruby-identifier">n_bytes</span>)
15
+ <span class="ruby-ivar">@msg_buf</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">n_bytes</span>)
16
+ <span class="ruby-ivar">@bytes_to_be_read</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">n_bytes</span>
17
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@msg_buf</span>[<span class="ruby-value">-1</span>]
18
+ <span class="ruby-keyword kw">end</span></pre>
19
+ </body>
20
+ </html>
@@ -0,0 +1,18 @@
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>
7
+ <head>
8
+ <title>msg_init (MIDI::IO::MIDIFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/midilib/io/midifile.rb, line 434</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">msg_init</span>
15
+ <span class="ruby-ivar">@msg_buf</span> = <span class="ruby-value str">''</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
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>
7
+ <head>
8
+ <title>msg (MIDI::IO::MIDIFile)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/midilib/io/midifile.rb, line 439</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">msg</span>
15
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@msg_buf</span>.<span class="ruby-identifier">dup</span>()
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,460 @@
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>Class: MIDI::IO::SeqReader</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>Class</strong></td>
53
+ <td class="class-name-in-header">MIDI::IO::SeqReader</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/midilib/io/seqreader_rb.html">
59
+ lib/midilib/io/seqreader.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="MIDIFile.html">
69
+ MIDIFile
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ Reads <a href="../../MIDI.html">MIDI</a> files. As a subclass of <a
86
+ href="MIDIFile.html">MIDIFile</a>, this class implements the callback
87
+ methods for each <a href="../../MIDI.html">MIDI</a> event and use them to
88
+ build <a href="../Track.html">Track</a> and <a
89
+ href="../Event.html">Event</a> objects and give the tracks to a <a
90
+ href="../Sequence.html">Sequence</a>.
91
+ </p>
92
+ <p>
93
+ We append new events to the end of a track&#8217;s event list, bypassing a
94
+ call to <a href="../Track.html">Track</a>.add. This means that we must call
95
+ <a href="../Track.html#M000077">Track.recalc_times</a> at the end of the
96
+ track so it can update each event with its time from the track&#8217;s
97
+ start (see <a href="SeqReader.html#M000004">end_track</a> below).
98
+ </p>
99
+ <p>
100
+ META_TRACK_END events are not added to tracks. This way, we don&#8217;t
101
+ have to worry about making sure the last event is always a track end event.
102
+ We rely on the <a href="SeqWriter.html">SeqWriter</a> to append a
103
+ META_TRACK_END event to each track when it is output.
104
+ </p>
105
+
106
+ </div>
107
+
108
+
109
+ </div>
110
+
111
+ <div id="method-list">
112
+ <h3 class="section-bar">Methods</h3>
113
+
114
+ <div class="name-list">
115
+ <a href="#M000012">chan_pressure</a>&nbsp;&nbsp;
116
+ <a href="#M000009">controller</a>&nbsp;&nbsp;
117
+ <a href="#M000004">end_track</a>&nbsp;&nbsp;
118
+ <a href="#M000002">header</a>&nbsp;&nbsp;
119
+ <a href="#M000007">make_note_off</a>&nbsp;&nbsp;
120
+ <a href="#M000014">meta_misc</a>&nbsp;&nbsp;
121
+ <a href="#M000001">new</a>&nbsp;&nbsp;
122
+ <a href="#M000006">note_off</a>&nbsp;&nbsp;
123
+ <a href="#M000005">note_on</a>&nbsp;&nbsp;
124
+ <a href="#M000010">pitch_bend</a>&nbsp;&nbsp;
125
+ <a href="#M000008">pressure</a>&nbsp;&nbsp;
126
+ <a href="#M000011">program</a>&nbsp;&nbsp;
127
+ <a href="#M000003">start_track</a>&nbsp;&nbsp;
128
+ <a href="#M000013">sysex</a>&nbsp;&nbsp;
129
+ <a href="#M000017">tempo</a>&nbsp;&nbsp;
130
+ <a href="#M000015">text</a>&nbsp;&nbsp;
131
+ <a href="#M000016">time_signature</a>&nbsp;&nbsp;
132
+ <a href="#M000018">track_uses_channel</a>&nbsp;&nbsp;
133
+ </div>
134
+ </div>
135
+
136
+ </div>
137
+
138
+
139
+ <!-- if includes -->
140
+
141
+ <div id="section">
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+ <!-- if method_list -->
151
+ <div id="methods">
152
+ <h3 class="section-bar">Public Class methods</h3>
153
+
154
+ <div id="method-M000001" class="method-detail">
155
+ <a name="M000001"></a>
156
+
157
+ <div class="method-heading">
158
+ <a href="SeqReader.src/M000001.html" target="Code" class="method-signature"
159
+ onclick="popupCode('SeqReader.src/M000001.html');return false;">
160
+ <span class="method-name">new</span><span class="method-args">(seq, proc = nil) {|track, num_tracks, index| ...}</span>
161
+ </a>
162
+ </div>
163
+
164
+ <div class="method-description">
165
+ <p>
166
+ The optional proc block is called once at the start of the file and again
167
+ at the end of each track. There are three arguments to the block: the
168
+ track, the track number (1 through <em>n</em>), and the total number of
169
+ tracks.
170
+ </p>
171
+ </div>
172
+ </div>
173
+
174
+ <h3 class="section-bar">Public Instance methods</h3>
175
+
176
+ <div id="method-M000012" class="method-detail">
177
+ <a name="M000012"></a>
178
+
179
+ <div class="method-heading">
180
+ <a href="SeqReader.src/M000012.html" target="Code" class="method-signature"
181
+ onclick="popupCode('SeqReader.src/M000012.html');return false;">
182
+ <span class="method-name">chan_pressure</span><span class="method-args">(chan, press)</span>
183
+ </a>
184
+ </div>
185
+
186
+ <div class="method-description">
187
+ </div>
188
+ </div>
189
+
190
+ <div id="method-M000009" class="method-detail">
191
+ <a name="M000009"></a>
192
+
193
+ <div class="method-heading">
194
+ <a href="SeqReader.src/M000009.html" target="Code" class="method-signature"
195
+ onclick="popupCode('SeqReader.src/M000009.html');return false;">
196
+ <span class="method-name">controller</span><span class="method-args">(chan, control, value)</span>
197
+ </a>
198
+ </div>
199
+
200
+ <div class="method-description">
201
+ </div>
202
+ </div>
203
+
204
+ <div id="method-M000004" class="method-detail">
205
+ <a name="M000004"></a>
206
+
207
+ <div class="method-heading">
208
+ <a href="SeqReader.src/M000004.html" target="Code" class="method-signature"
209
+ onclick="popupCode('SeqReader.src/M000004.html');return false;">
210
+ <span class="method-name">end_track</span><span class="method-args">()</span>
211
+ </a>
212
+ </div>
213
+
214
+ <div class="method-description">
215
+ </div>
216
+ </div>
217
+
218
+ <div id="method-M000002" class="method-detail">
219
+ <a name="M000002"></a>
220
+
221
+ <div class="method-heading">
222
+ <a href="SeqReader.src/M000002.html" target="Code" class="method-signature"
223
+ onclick="popupCode('SeqReader.src/M000002.html');return false;">
224
+ <span class="method-name">header</span><span class="method-args">(format, ntrks, division)</span>
225
+ </a>
226
+ </div>
227
+
228
+ <div class="method-description">
229
+ </div>
230
+ </div>
231
+
232
+ <div id="method-M000007" class="method-detail">
233
+ <a name="M000007"></a>
234
+
235
+ <div class="method-heading">
236
+ <a href="SeqReader.src/M000007.html" target="Code" class="method-signature"
237
+ onclick="popupCode('SeqReader.src/M000007.html');return false;">
238
+ <span class="method-name">make_note_off</span><span class="method-args">(on, vel)</span>
239
+ </a>
240
+ </div>
241
+
242
+ <div class="method-description">
243
+ </div>
244
+ </div>
245
+
246
+ <div id="method-M000014" class="method-detail">
247
+ <a name="M000014"></a>
248
+
249
+ <div class="method-heading">
250
+ <a href="SeqReader.src/M000014.html" target="Code" class="method-signature"
251
+ onclick="popupCode('SeqReader.src/M000014.html');return false;">
252
+ <span class="method-name">meta_misc</span><span class="method-args">(type, msg)</span>
253
+ </a>
254
+ </div>
255
+
256
+ <div class="method-description">
257
+ </div>
258
+ </div>
259
+
260
+ <div id="method-M000006" class="method-detail">
261
+ <a name="M000006"></a>
262
+
263
+ <div class="method-heading">
264
+ <a href="SeqReader.src/M000006.html" target="Code" class="method-signature"
265
+ onclick="popupCode('SeqReader.src/M000006.html');return false;">
266
+ <span class="method-name">note_off</span><span class="method-args">(chan, note, vel)</span>
267
+ </a>
268
+ </div>
269
+
270
+ <div class="method-description">
271
+ </div>
272
+ </div>
273
+
274
+ <div id="method-M000005" class="method-detail">
275
+ <a name="M000005"></a>
276
+
277
+ <div class="method-heading">
278
+ <a href="SeqReader.src/M000005.html" target="Code" class="method-signature"
279
+ onclick="popupCode('SeqReader.src/M000005.html');return false;">
280
+ <span class="method-name">note_on</span><span class="method-args">(chan, note, vel)</span>
281
+ </a>
282
+ </div>
283
+
284
+ <div class="method-description">
285
+ </div>
286
+ </div>
287
+
288
+ <div id="method-M000010" class="method-detail">
289
+ <a name="M000010"></a>
290
+
291
+ <div class="method-heading">
292
+ <a href="SeqReader.src/M000010.html" target="Code" class="method-signature"
293
+ onclick="popupCode('SeqReader.src/M000010.html');return false;">
294
+ <span class="method-name">pitch_bend</span><span class="method-args">(chan, msb, lsb)</span>
295
+ </a>
296
+ </div>
297
+
298
+ <div class="method-description">
299
+ </div>
300
+ </div>
301
+
302
+ <div id="method-M000008" class="method-detail">
303
+ <a name="M000008"></a>
304
+
305
+ <div class="method-heading">
306
+ <a href="SeqReader.src/M000008.html" target="Code" class="method-signature"
307
+ onclick="popupCode('SeqReader.src/M000008.html');return false;">
308
+ <span class="method-name">pressure</span><span class="method-args">(chan, note, press)</span>
309
+ </a>
310
+ </div>
311
+
312
+ <div class="method-description">
313
+ </div>
314
+ </div>
315
+
316
+ <div id="method-M000011" class="method-detail">
317
+ <a name="M000011"></a>
318
+
319
+ <div class="method-heading">
320
+ <a href="SeqReader.src/M000011.html" target="Code" class="method-signature"
321
+ onclick="popupCode('SeqReader.src/M000011.html');return false;">
322
+ <span class="method-name">program</span><span class="method-args">(chan, program)</span>
323
+ </a>
324
+ </div>
325
+
326
+ <div class="method-description">
327
+ </div>
328
+ </div>
329
+
330
+ <div id="method-M000003" class="method-detail">
331
+ <a name="M000003"></a>
332
+
333
+ <div class="method-heading">
334
+ <a href="SeqReader.src/M000003.html" target="Code" class="method-signature"
335
+ onclick="popupCode('SeqReader.src/M000003.html');return false;">
336
+ <span class="method-name">start_track</span><span class="method-args">()</span>
337
+ </a>
338
+ </div>
339
+
340
+ <div class="method-description">
341
+ </div>
342
+ </div>
343
+
344
+ <div id="method-M000013" class="method-detail">
345
+ <a name="M000013"></a>
346
+
347
+ <div class="method-heading">
348
+ <a href="SeqReader.src/M000013.html" target="Code" class="method-signature"
349
+ onclick="popupCode('SeqReader.src/M000013.html');return false;">
350
+ <span class="method-name">sysex</span><span class="method-args">(msg)</span>
351
+ </a>
352
+ </div>
353
+
354
+ <div class="method-description">
355
+ </div>
356
+ </div>
357
+
358
+ <div id="method-M000017" class="method-detail">
359
+ <a name="M000017"></a>
360
+
361
+ <div class="method-heading">
362
+ <a href="SeqReader.src/M000017.html" target="Code" class="method-signature"
363
+ onclick="popupCode('SeqReader.src/M000017.html');return false;">
364
+ <span class="method-name">tempo</span><span class="method-args">(microsecs)</span>
365
+ </a>
366
+ </div>
367
+
368
+ <div class="method-description">
369
+ <p>
370
+ &#8212;
371
+ </p>
372
+ <pre>
373
+ def smpte(hour, min, sec, frame, fract)
374
+ end
375
+ </pre>
376
+ <p>
377
+ ++
378
+ </p>
379
+ </div>
380
+ </div>
381
+
382
+ <div id="method-M000015" class="method-detail">
383
+ <a name="M000015"></a>
384
+
385
+ <div class="method-heading">
386
+ <a href="SeqReader.src/M000015.html" target="Code" class="method-signature"
387
+ onclick="popupCode('SeqReader.src/M000015.html');return false;">
388
+ <span class="method-name">text</span><span class="method-args">(type, msg)</span>
389
+ </a>
390
+ </div>
391
+
392
+ <div class="method-description">
393
+ <pre>
394
+ def sequence_number(num)
395
+ end
396
+ </pre>
397
+ <p>
398
+ ++
399
+ </p>
400
+ </div>
401
+ </div>
402
+
403
+ <div id="method-M000016" class="method-detail">
404
+ <a name="M000016"></a>
405
+
406
+ <div class="method-heading">
407
+ <a href="SeqReader.src/M000016.html" target="Code" class="method-signature"
408
+ onclick="popupCode('SeqReader.src/M000016.html');return false;">
409
+ <span class="method-name">time_signature</span><span class="method-args">(numer, denom, clocks, qnotes)</span>
410
+ </a>
411
+ </div>
412
+
413
+ <div class="method-description">
414
+ <p>
415
+ &#8212; Don&#8216;t bother adding the META_TRACK_END event to the track.
416
+ This way, we don&#8217;t have to worry about always making sure the last
417
+ event is always a track end event. We just have to make sure to write one
418
+ when the track is output back to a file.
419
+ </p>
420
+ <pre>
421
+ def eot()
422
+ @track.events &lt;&lt; MetaEvent.new(META_TRACK_END, nil, @curr_ticks)
423
+ end
424
+ </pre>
425
+ <p>
426
+ ++
427
+ </p>
428
+ </div>
429
+ </div>
430
+
431
+ <div id="method-M000018" class="method-detail">
432
+ <a name="M000018"></a>
433
+
434
+ <div class="method-heading">
435
+ <a href="SeqReader.src/M000018.html" target="Code" class="method-signature"
436
+ onclick="popupCode('SeqReader.src/M000018.html');return false;">
437
+ <span class="method-name">track_uses_channel</span><span class="method-args">(chan)</span>
438
+ </a>
439
+ </div>
440
+
441
+ <div class="method-description">
442
+ <p>
443
+ Return true if the current track uses the specified channel.
444
+ </p>
445
+ </div>
446
+ </div>
447
+
448
+
449
+ </div>
450
+
451
+
452
+ </div>
453
+
454
+
455
+ <div id="validator-badges">
456
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
457
+ </div>
458
+
459
+ </body>
460
+ </html>