midilib 2.0.2 → 2.0.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 (85) hide show
  1. data/Credits +5 -0
  2. data/README.rdoc +35 -30
  3. data/examples/reader2text.rb +1 -0
  4. data/html/IO.html +259 -0
  5. data/html/MIDI.html +665 -0
  6. data/html/MIDI/ActiveSense.html +295 -0
  7. data/html/MIDI/ChannelEvent.html +319 -0
  8. data/html/MIDI/ChannelPressure.html +350 -0
  9. data/html/MIDI/Clock.html +295 -0
  10. data/html/MIDI/Continue.html +295 -0
  11. data/html/MIDI/Controller.html +365 -0
  12. data/html/MIDI/Event.html +573 -0
  13. data/html/MIDI/IO.html +207 -0
  14. data/html/MIDI/IO/MIDIFile.html +1996 -0
  15. data/html/MIDI/IO/SeqReader.html +946 -0
  16. data/html/MIDI/IO/SeqWriter.html +648 -0
  17. data/html/MIDI/KeySig.html +435 -0
  18. data/html/MIDI/MIDI.html +204 -0
  19. data/html/MIDI/MIDI/MIDI.html +204 -0
  20. data/html/MIDI/MIDI/MIDI/Array.html +353 -0
  21. data/html/MIDI/Marker.html +257 -0
  22. data/html/MIDI/Measure.html +423 -0
  23. data/html/MIDI/Measures.html +375 -0
  24. data/html/MIDI/MetaEvent.html +534 -0
  25. data/html/MIDI/NoteEvent.html +417 -0
  26. data/html/MIDI/NoteOff.html +316 -0
  27. data/html/MIDI/NoteOn.html +316 -0
  28. data/html/MIDI/PitchBend.html +351 -0
  29. data/html/MIDI/PolyPressure.html +360 -0
  30. data/html/MIDI/ProgramChange.html +350 -0
  31. data/html/MIDI/Realtime.html +328 -0
  32. data/html/MIDI/Sequence.html +961 -0
  33. data/html/MIDI/SongPointer.html +351 -0
  34. data/html/MIDI/SongSelect.html +350 -0
  35. data/html/MIDI/Start.html +295 -0
  36. data/html/MIDI/Stop.html +295 -0
  37. data/html/MIDI/SystemCommon.html +257 -0
  38. data/html/MIDI/SystemExclusive.html +353 -0
  39. data/html/MIDI/SystemReset.html +295 -0
  40. data/html/MIDI/Tempo.html +474 -0
  41. data/html/MIDI/TimeSig.html +467 -0
  42. data/html/MIDI/Track.html +769 -0
  43. data/html/MIDI/TuneRequest.html +328 -0
  44. data/html/MIDI/Utils.html +320 -0
  45. data/html/README_rdoc.html +751 -0
  46. data/html/TODO_rdoc.html +200 -0
  47. data/html/created.rid +14 -0
  48. data/html/images/add.png +0 -0
  49. data/html/images/brick.png +0 -0
  50. data/html/images/brick_link.png +0 -0
  51. data/html/images/bug.png +0 -0
  52. data/html/images/bullet_black.png +0 -0
  53. data/html/images/bullet_toggle_minus.png +0 -0
  54. data/html/images/bullet_toggle_plus.png +0 -0
  55. data/html/images/date.png +0 -0
  56. data/html/images/delete.png +0 -0
  57. data/html/images/find.png +0 -0
  58. data/html/images/loadingAnimation.gif +0 -0
  59. data/html/images/macFFBgHack.png +0 -0
  60. data/html/images/package.png +0 -0
  61. data/html/images/page_green.png +0 -0
  62. data/html/images/page_white_text.png +0 -0
  63. data/html/images/page_white_width.png +0 -0
  64. data/html/images/plugin.png +0 -0
  65. data/html/images/ruby.png +0 -0
  66. data/html/images/tag_blue.png +0 -0
  67. data/html/images/tag_green.png +0 -0
  68. data/html/images/transparent.png +0 -0
  69. data/html/images/wrench.png +0 -0
  70. data/html/images/wrench_orange.png +0 -0
  71. data/html/images/zoom.png +0 -0
  72. data/html/index.html +750 -0
  73. data/html/js/darkfish.js +153 -0
  74. data/html/js/jquery.js +18 -0
  75. data/html/js/navigation.js +142 -0
  76. data/html/js/search.js +94 -0
  77. data/html/js/search_index.js +1 -0
  78. data/html/js/searcher.js +228 -0
  79. data/html/rdoc.css +543 -0
  80. data/html/table_of_contents.html +652 -0
  81. data/lib/midilib/info.rb +1 -1
  82. data/lib/midilib/io/seqreader.rb +1 -1
  83. data/lib/midilib/sequence.rb +7 -0
  84. data/test/test_sequence.rb +11 -0
  85. metadata +80 -3
data/Credits CHANGED
@@ -49,3 +49,8 @@ J (dark-panda on Github)
49
49
 
50
50
  Instead of monkeypatching ::Array, put sorting methods into new
51
51
  MIDI::Array subclass to avoid clashes with Rails app.
52
+
53
+ Lucas lfzawacki (lfzawacki on Github)
54
+
55
+ Found a bug in the MIDI::IO::SeqReader class: the pitch_bend method's
56
+ msb and lsb parameters were reversed.
@@ -1,9 +1,7 @@
1
1
  = midilib
2
2
 
3
3
  midilib is a pure Ruby MIDI library useful for reading and writing standard
4
- MIDI files and manipulating MIDI event data. Classes include MIDI::Sequence,
5
- MIDI::Track, MIDI::Event, and MIDI::IO::MIDIFile and its subclasses
6
- MIDI::IO::SeqReader and MIDI::IO::SeqWriter.
4
+ MIDI files and manipulating MIDI event data.
7
5
 
8
6
  The GitHub project page and Web site of midilib is
9
7
  http://github.com/jimm/midilib and the RubyGems.org page is
@@ -31,11 +29,10 @@ which requires Rake (http://rake.rubyforge.org).
31
29
  To install midilib as a gem, type
32
30
 
33
31
  % gem install midilib
34
- or
32
+ or, if you already have a previous version, use
35
33
  % gem update midilib
36
34
 
37
- if you already have a previous version. You may need root privileges to
38
- install or update the gem.
35
+ You may need root privileges to install or update the gem.
39
36
 
40
37
  === Manual Installation
41
38
 
@@ -58,12 +55,12 @@ runs all of the tests in the test directory.
58
55
 
59
56
  == Overview
60
57
 
61
- MIDI file IO only understands MIDI file format 1, where a sequence is made up
62
- of multiple tracks. It doesn't yet understand format 0 (a single track
63
- containing all events) or format 2 (a collection of format 0 files in one
64
- file).
58
+ The midilib MIDI file reader only understands MIDI file format 1, where a
59
+ sequence is made up of multiple tracks. It doesn't yet understand format 0
60
+ (a single track containing all events) or format 2 (a collection of format 0
61
+ files in one file).
65
62
 
66
- === MIDI::Sequence
63
+ d=== MIDI::Sequence
67
64
 
68
65
  A sequence contains a collection of tracks and global information like the
69
66
  sequence's pulses per quarter note (ppqn) and time signature.
@@ -295,8 +292,8 @@ you to purchase a copy of the latest edition.
295
292
  A description of the MIDI file format can be found in a few places such as
296
293
  http://www.borg.com/~jglatt/tech/midifile.htm.
297
294
 
298
- The MIDI message reference at http://www.io.com/~jimm/midi_ref.html describes
299
- the format of MIDI commands.
295
+ The MIDI message reference at http://www.jimmenard.com/midi_ref.html
296
+ describes the format of MIDI commands.
300
297
 
301
298
 
302
299
  = To Do
@@ -337,9 +334,17 @@ Copyright (c) 1992 by Jim Menard (jim@jimmenard.com). It may be freely used
337
334
  for non-commercial purposes as long as the author is given credit.
338
335
 
339
336
 
340
- === Recent Changes
337
+ == Recent Changes
341
338
 
342
- ==== Changes for 2.0.0:
339
+ === Changes for 2.0.3:
340
+
341
+ New MIDI::Sequence.pulses_to_seconds method.
342
+
343
+ === Changes for 2.0.2:
344
+
345
+ Stop monkeypatching Array in MIDI::Track.
346
+
347
+ === Changes for 2.0.0:
343
348
 
344
349
  MIDI::NoteOnEvent and MIDI::NoteOffEvent renamed to MIDI::NoteOn and
345
350
  MIDI::NoteOff. The old names will still work for a while.
@@ -368,51 +373,51 @@ recalc_delta_from_times sorts the events before doing anything else.
368
373
 
369
374
  MIDI::Tempo#mpq_to_bpm now returns a float.
370
375
 
371
- ==== Changes for 1.2.0:
376
+ === Changes for 1.2.0:
372
377
 
373
378
  Use byte arrays instead of strings for passing around data. All tests now pass
374
379
  for both Ruby 1.8.X and 1.9.X.
375
380
 
376
- ==== New code repository
381
+ === New code repository
377
382
 
378
383
  The midilib code is now hosted at Github (http://github.com/jimm/midilib).
379
384
 
380
- ==== Changes for 1.1.4:
385
+ === Changes for 1.1.4:
381
386
 
382
387
  * Fixed a bug in KeySig.data_as_bytes. Thanks to Noah Thorp for finding this
383
388
  and the bug fixed in 1.1.3.
384
389
 
385
- ==== Changes for 1.1.3:
390
+ === Changes for 1.1.3:
386
391
 
387
392
  * Fixed the way midilib detects the behavior of IO.getc.
388
393
 
389
- ==== Changes for 1.1.2:
394
+ === Changes for 1.1.2:
390
395
 
391
396
  * Define MIDI::IO::MIDIFile.getc differently for different Ruby versions,
392
397
  instead of checking for String.bytes every time we read a byte.
393
398
 
394
- ==== Changes for 1.1.1:
399
+ === Changes for 1.1.1:
395
400
 
396
401
  * Make MIDI::IO::MIDIFile.getc do the right thing for both Ruby 1.8 and 1.9.
397
402
 
398
- ==== Changes for 1.1.0:
403
+ === Changes for 1.1.0:
399
404
 
400
405
  * Added test/test.mid to list of files to be included when packaging midifile
401
406
  for distribution.
402
407
 
403
- ==== Changes for 1.0.0:
408
+ === Changes for 1.0.0:
404
409
 
405
410
  * Fixed the bug in Track#recalc_delta_from_times found by Christopher Rose.
406
411
 
407
- ==== Changes for 0.8.7:
412
+ === Changes for 0.8.7:
408
413
 
409
414
  * Fixed the misspelled POLY_PRESSURE constant, thanks to Mario Pehle.
410
415
 
411
- ==== Changes for 0.8.6:
416
+ === Changes for 0.8.6:
412
417
 
413
418
  * Added missing test/test.mid.
414
419
 
415
- ==== Changes for 0.8.5:
420
+ === Changes for 0.8.5:
416
421
 
417
422
  * Fixed bugs in MIDI::PitchBend reading and writing, thanks to Emanuel
418
423
  Borsboom.
@@ -425,7 +430,7 @@ The midilib code is now hosted at Github (http://github.com/jimm/midilib).
425
430
  quantize. However, since that method was broken already, I don't feel it's
426
431
  a burden to anybody to change the arguments.
427
432
 
428
- ==== Changes for 0.8.4:
433
+ === Changes for 0.8.4:
429
434
 
430
435
  * Realtime status bytes now set @is_realtime to true and return true when
431
436
  realtime? is called.
@@ -442,7 +447,7 @@ The midilib code is now hosted at Github (http://github.com/jimm/midilib).
442
447
  MIDI::Sequence::note_to_delta.
443
448
 
444
449
 
445
- ==== Changes for 0.8.3:
450
+ === Changes for 0.8.3:
446
451
 
447
452
  * Added MIDI::NoteEvent.note_to_s, which returns note name as a string like
448
453
  "C4" or "F#6".
@@ -451,7 +456,7 @@ The midilib code is now hosted at Github (http://github.com/jimm/midilib).
451
456
  @print_note_names. These are used by all Event to_s methods. See
452
457
  examples/seq2text.rb for an example.
453
458
 
454
- ==== Changes for 0.8.2:
459
+ === Changes for 0.8.2:
455
460
 
456
461
  * Changed MIDI::MetaEvent.type to MIDI::MetaEvent.event_type to avoid
457
462
  runtime complaints about Object#type calls.
@@ -460,7 +465,7 @@ The midilib code is now hosted at Github (http://github.com/jimm/midilib).
460
465
  * Fixed read and write block arguments.
461
466
  * Fixed other example script bugs.
462
467
 
463
- ==== Changes for 0.8.1:
468
+ === Changes for 0.8.1:
464
469
 
465
470
  * Fixed track sorting.
466
471
  * Fixed track's recalc_delta_from_times method.
@@ -152,6 +152,7 @@ class TextTranslator < MIDI::IO::MIDIFile
152
152
 
153
153
  def text(type, msg)
154
154
  pdelta()
155
+ msg = MIDI::MetaEvent.bytes_as_str(msg)
155
156
  case type
156
157
  when MIDI::META_SEQ_NAME
157
158
  puts "seq or track name #{msg}"
@@ -0,0 +1,259 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
6
+
7
+ <title>class IO - midilib</title>
8
+
9
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "./";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="./index.html">Home</a>
28
+ <a href="./table_of_contents.html#classes">Classes</a>
29
+ <a href="./table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/midilib/io/midifile.rb
51
+ </ul>
52
+ </nav>
53
+
54
+
55
+ </div>
56
+
57
+ <div id="class-metadata">
58
+
59
+ <nav id="parent-class-section" class="section">
60
+ <h3 class="section-header">Parent</h3>
61
+
62
+ <p class="link">Object
63
+
64
+ </nav>
65
+
66
+
67
+ <!-- Method Quickref -->
68
+ <nav id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+
71
+ <ul class="link-list">
72
+
73
+ <li><a href="#method-i-readbyte">#readbyte</a>
74
+
75
+ </ul>
76
+ </nav>
77
+
78
+ </div>
79
+
80
+ <div id="project-metadata">
81
+ <nav id="fileindex-section" class="section project-section">
82
+ <h3 class="section-header">Pages</h3>
83
+
84
+ <ul>
85
+
86
+ <li class="file"><a href="./README_rdoc.html">README</a>
87
+
88
+ <li class="file"><a href="./TODO_rdoc.html">TODO</a>
89
+
90
+ </ul>
91
+ </nav>
92
+
93
+ <nav id="classindex-section" class="section project-section">
94
+ <h3 class="section-header">Class and Module Index</h3>
95
+
96
+ <ul class="link-list">
97
+
98
+ <li><a href="./MIDI.html">MIDI</a>
99
+
100
+ <li><a href="./MIDI/ActiveSense.html">MIDI::ActiveSense</a>
101
+
102
+ <li><a href="./MIDI/ChannelEvent.html">MIDI::ChannelEvent</a>
103
+
104
+ <li><a href="./MIDI/ChannelPressure.html">MIDI::ChannelPressure</a>
105
+
106
+ <li><a href="./MIDI/Clock.html">MIDI::Clock</a>
107
+
108
+ <li><a href="./MIDI/Continue.html">MIDI::Continue</a>
109
+
110
+ <li><a href="./MIDI/Controller.html">MIDI::Controller</a>
111
+
112
+ <li><a href="./MIDI/Event.html">MIDI::Event</a>
113
+
114
+ <li><a href="./MIDI/IO.html">MIDI::IO</a>
115
+
116
+ <li><a href="./MIDI/IO/MIDIFile.html">MIDI::IO::MIDIFile</a>
117
+
118
+ <li><a href="./MIDI/IO/SeqReader.html">MIDI::IO::SeqReader</a>
119
+
120
+ <li><a href="./MIDI/IO/SeqWriter.html">MIDI::IO::SeqWriter</a>
121
+
122
+ <li><a href="./MIDI/KeySig.html">MIDI::KeySig</a>
123
+
124
+ <li><a href="./MIDI/MIDI.html">MIDI::MIDI</a>
125
+
126
+ <li><a href="./MIDI/MIDI/MIDI.html">MIDI::MIDI::MIDI</a>
127
+
128
+ <li><a href="./MIDI/MIDI/MIDI/Array.html">MIDI::MIDI::MIDI::Array</a>
129
+
130
+ <li><a href="./MIDI/Marker.html">MIDI::Marker</a>
131
+
132
+ <li><a href="./MIDI/Measure.html">MIDI::Measure</a>
133
+
134
+ <li><a href="./MIDI/Measures.html">MIDI::Measures</a>
135
+
136
+ <li><a href="./MIDI/MetaEvent.html">MIDI::MetaEvent</a>
137
+
138
+ <li><a href="./MIDI/NoteEvent.html">MIDI::NoteEvent</a>
139
+
140
+ <li><a href="./MIDI/NoteOff.html">MIDI::NoteOff</a>
141
+
142
+ <li><a href="./MIDI/NoteOff.html">MIDI::NoteOffEvent</a>
143
+
144
+ <li><a href="./MIDI/NoteOn.html">MIDI::NoteOn</a>
145
+
146
+ <li><a href="./MIDI/NoteOn.html">MIDI::NoteOnEvent</a>
147
+
148
+ <li><a href="./MIDI/PitchBend.html">MIDI::PitchBend</a>
149
+
150
+ <li><a href="./MIDI/PolyPressure.html">MIDI::PolyPressure</a>
151
+
152
+ <li><a href="./MIDI/ProgramChange.html">MIDI::ProgramChange</a>
153
+
154
+ <li><a href="./MIDI/Realtime.html">MIDI::Realtime</a>
155
+
156
+ <li><a href="./MIDI/Sequence.html">MIDI::Sequence</a>
157
+
158
+ <li><a href="./MIDI/SongPointer.html">MIDI::SongPointer</a>
159
+
160
+ <li><a href="./MIDI/SongSelect.html">MIDI::SongSelect</a>
161
+
162
+ <li><a href="./MIDI/Start.html">MIDI::Start</a>
163
+
164
+ <li><a href="./MIDI/Stop.html">MIDI::Stop</a>
165
+
166
+ <li><a href="./MIDI/SystemCommon.html">MIDI::SystemCommon</a>
167
+
168
+ <li><a href="./MIDI/SystemExclusive.html">MIDI::SystemExclusive</a>
169
+
170
+ <li><a href="./MIDI/SystemReset.html">MIDI::SystemReset</a>
171
+
172
+ <li><a href="./MIDI/Tempo.html">MIDI::Tempo</a>
173
+
174
+ <li><a href="./MIDI/TimeSig.html">MIDI::TimeSig</a>
175
+
176
+ <li><a href="./MIDI/Track.html">MIDI::Track</a>
177
+
178
+ <li><a href="./MIDI/TuneRequest.html">MIDI::TuneRequest</a>
179
+
180
+ <li><a href="./MIDI/Utils.html">MIDI::Utils</a>
181
+
182
+ <li><a href="./IO.html">IO</a>
183
+
184
+ </ul>
185
+ </nav>
186
+
187
+ </div>
188
+ </nav>
189
+
190
+ <div id="documentation">
191
+ <h1 class="class">class IO</h1>
192
+
193
+ <div id="description" class="description">
194
+
195
+ </div><!-- description -->
196
+
197
+
198
+
199
+
200
+ <section id="5Buntitled-5D" class="documentation-section">
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+ <!-- Methods -->
210
+
211
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
212
+ <h3 class="section-header">Public Instance Methods</h3>
213
+
214
+
215
+ <div id="method-i-readbyte" class="method-detail ">
216
+
217
+ <div class="method-heading">
218
+ <span class="method-name">readbyte</span><span
219
+ class="method-args">()</span>
220
+ <span class="method-click-advice">click to toggle source</span>
221
+ </div>
222
+
223
+
224
+ <div class="method-description">
225
+
226
+
227
+
228
+
229
+
230
+ <div class="method-source-code" id="readbyte-source">
231
+ <pre><span class="ruby-comment"># File lib/midilib/io/midifile.rb, line 5</span>
232
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">readbyte</span>
233
+ <span class="ruby-identifier">c</span> = <span class="ruby-identifier">getc</span>()
234
+ <span class="ruby-identifier">raise</span> <span class="ruby-string">'unexpected EOF'</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">c</span>
235
+ <span class="ruby-identifier">c</span>
236
+ <span class="ruby-keyword">end</span></pre>
237
+ </div><!-- readbyte-source -->
238
+
239
+ </div>
240
+
241
+
242
+
243
+
244
+ </div><!-- readbyte-method -->
245
+
246
+
247
+ </section><!-- public-instance-method-details -->
248
+
249
+ </section><!-- 5Buntitled-5D -->
250
+
251
+ </div><!-- documentation -->
252
+
253
+
254
+ <footer id="validator-badges">
255
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
256
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
257
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
258
+ </footer>
259
+
@@ -0,0 +1,665 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
6
+
7
+ <title>module MIDI - midilib</title>
8
+
9
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "./";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="module">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="./index.html">Home</a>
28
+ <a href="./table_of_contents.html#classes">Classes</a>
29
+ <a href="./table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/midilib/consts.rb
51
+ <li>lib/midilib/event.rb
52
+ <li>lib/midilib/info.rb
53
+ <li>lib/midilib/io/midifile.rb
54
+ <li>lib/midilib/io/seqreader.rb
55
+ <li>lib/midilib/io/seqwriter.rb
56
+ <li>lib/midilib/measure.rb
57
+ <li>lib/midilib/sequence.rb
58
+ <li>lib/midilib/track.rb
59
+ <li>lib/midilib/utils.rb
60
+ </ul>
61
+ </nav>
62
+
63
+
64
+ </div>
65
+
66
+ <div id="class-metadata">
67
+
68
+
69
+
70
+
71
+ </div>
72
+
73
+ <div id="project-metadata">
74
+ <nav id="fileindex-section" class="section project-section">
75
+ <h3 class="section-header">Pages</h3>
76
+
77
+ <ul>
78
+
79
+ <li class="file"><a href="./README_rdoc.html">README</a>
80
+
81
+ <li class="file"><a href="./TODO_rdoc.html">TODO</a>
82
+
83
+ </ul>
84
+ </nav>
85
+
86
+ <nav id="classindex-section" class="section project-section">
87
+ <h3 class="section-header">Class and Module Index</h3>
88
+
89
+ <ul class="link-list">
90
+
91
+ <li><a href="./MIDI.html">MIDI</a>
92
+
93
+ <li><a href="./MIDI/ActiveSense.html">MIDI::ActiveSense</a>
94
+
95
+ <li><a href="./MIDI/ChannelEvent.html">MIDI::ChannelEvent</a>
96
+
97
+ <li><a href="./MIDI/ChannelPressure.html">MIDI::ChannelPressure</a>
98
+
99
+ <li><a href="./MIDI/Clock.html">MIDI::Clock</a>
100
+
101
+ <li><a href="./MIDI/Continue.html">MIDI::Continue</a>
102
+
103
+ <li><a href="./MIDI/Controller.html">MIDI::Controller</a>
104
+
105
+ <li><a href="./MIDI/Event.html">MIDI::Event</a>
106
+
107
+ <li><a href="./MIDI/IO.html">MIDI::IO</a>
108
+
109
+ <li><a href="./MIDI/IO/MIDIFile.html">MIDI::IO::MIDIFile</a>
110
+
111
+ <li><a href="./MIDI/IO/SeqReader.html">MIDI::IO::SeqReader</a>
112
+
113
+ <li><a href="./MIDI/IO/SeqWriter.html">MIDI::IO::SeqWriter</a>
114
+
115
+ <li><a href="./MIDI/KeySig.html">MIDI::KeySig</a>
116
+
117
+ <li><a href="./MIDI/MIDI.html">MIDI::MIDI</a>
118
+
119
+ <li><a href="./MIDI/MIDI/MIDI.html">MIDI::MIDI::MIDI</a>
120
+
121
+ <li><a href="./MIDI/MIDI/MIDI/Array.html">MIDI::MIDI::MIDI::Array</a>
122
+
123
+ <li><a href="./MIDI/Marker.html">MIDI::Marker</a>
124
+
125
+ <li><a href="./MIDI/Measure.html">MIDI::Measure</a>
126
+
127
+ <li><a href="./MIDI/Measures.html">MIDI::Measures</a>
128
+
129
+ <li><a href="./MIDI/MetaEvent.html">MIDI::MetaEvent</a>
130
+
131
+ <li><a href="./MIDI/NoteEvent.html">MIDI::NoteEvent</a>
132
+
133
+ <li><a href="./MIDI/NoteOff.html">MIDI::NoteOff</a>
134
+
135
+ <li><a href="./MIDI/NoteOff.html">MIDI::NoteOffEvent</a>
136
+
137
+ <li><a href="./MIDI/NoteOn.html">MIDI::NoteOn</a>
138
+
139
+ <li><a href="./MIDI/NoteOn.html">MIDI::NoteOnEvent</a>
140
+
141
+ <li><a href="./MIDI/PitchBend.html">MIDI::PitchBend</a>
142
+
143
+ <li><a href="./MIDI/PolyPressure.html">MIDI::PolyPressure</a>
144
+
145
+ <li><a href="./MIDI/ProgramChange.html">MIDI::ProgramChange</a>
146
+
147
+ <li><a href="./MIDI/Realtime.html">MIDI::Realtime</a>
148
+
149
+ <li><a href="./MIDI/Sequence.html">MIDI::Sequence</a>
150
+
151
+ <li><a href="./MIDI/SongPointer.html">MIDI::SongPointer</a>
152
+
153
+ <li><a href="./MIDI/SongSelect.html">MIDI::SongSelect</a>
154
+
155
+ <li><a href="./MIDI/Start.html">MIDI::Start</a>
156
+
157
+ <li><a href="./MIDI/Stop.html">MIDI::Stop</a>
158
+
159
+ <li><a href="./MIDI/SystemCommon.html">MIDI::SystemCommon</a>
160
+
161
+ <li><a href="./MIDI/SystemExclusive.html">MIDI::SystemExclusive</a>
162
+
163
+ <li><a href="./MIDI/SystemReset.html">MIDI::SystemReset</a>
164
+
165
+ <li><a href="./MIDI/Tempo.html">MIDI::Tempo</a>
166
+
167
+ <li><a href="./MIDI/TimeSig.html">MIDI::TimeSig</a>
168
+
169
+ <li><a href="./MIDI/Track.html">MIDI::Track</a>
170
+
171
+ <li><a href="./MIDI/TuneRequest.html">MIDI::TuneRequest</a>
172
+
173
+ <li><a href="./MIDI/Utils.html">MIDI::Utils</a>
174
+
175
+ <li><a href="./IO.html">IO</a>
176
+
177
+ </ul>
178
+ </nav>
179
+
180
+ </div>
181
+ </nav>
182
+
183
+ <div id="documentation">
184
+ <h1 class="module">module MIDI</h1>
185
+
186
+ <div id="description" class="description">
187
+
188
+ <p><a href="MIDI/MIDI.html">MIDI</a> constants.</p>
189
+
190
+ </div><!-- description -->
191
+
192
+
193
+
194
+
195
+ <section id="5Buntitled-5D" class="documentation-section">
196
+
197
+
198
+
199
+
200
+
201
+ <!-- Constants -->
202
+ <section id="constants-list" class="section">
203
+ <h3 class="section-header">Constants</h3>
204
+ <dl>
205
+
206
+ <dt id="ACTIVE_SENSE">ACTIVE_SENSE
207
+
208
+ <dd class="description"><p>Active sensing (sent every 300 ms when nothing else being sent)</p>
209
+
210
+
211
+ <dt id="CC_BALANCE">CC_BALANCE
212
+
213
+ <dd class="description">
214
+
215
+
216
+ <dt id="CC_BREATH_CONTROLLER">CC_BREATH_CONTROLLER
217
+
218
+ <dd class="description">
219
+
220
+
221
+ <dt id="CC_CHORUS_DEPTH">CC_CHORUS_DEPTH
222
+
223
+ <dd class="description">
224
+
225
+
226
+ <dt id="CC_DATA_DECREMENT">CC_DATA_DECREMENT
227
+
228
+ <dd class="description">
229
+
230
+
231
+ <dt id="CC_DATA_ENTRY_LSB">CC_DATA_ENTRY_LSB
232
+
233
+ <dd class="description"><dl class="rdoc-list label-list"><dt>32 - 63
234
+ <dd>
235
+ <p>are LSB for [0 - 31]</p>
236
+ </dd></dl>
237
+
238
+
239
+ <dt id="CC_DATA_ENTRY_MSB">CC_DATA_ENTRY_MSB
240
+
241
+ <dd class="description">
242
+
243
+
244
+ <dt id="CC_DATA_INCREMENT">CC_DATA_INCREMENT
245
+
246
+ <dd class="description">
247
+
248
+
249
+ <dt id="CC_DETUNE_DEPTH">CC_DETUNE_DEPTH
250
+
251
+ <dd class="description">
252
+
253
+
254
+ <dt id="CC_EXPRESSION_CONTROLLER">CC_EXPRESSION_CONTROLLER
255
+
256
+ <dd class="description">
257
+
258
+
259
+ <dt id="CC_FOOT_CONTROLLER">CC_FOOT_CONTROLLER
260
+
261
+ <dd class="description">
262
+
263
+
264
+ <dt id="CC_GEN_PURPOSE_1">CC_GEN_PURPOSE_1
265
+
266
+ <dd class="description">
267
+
268
+
269
+ <dt id="CC_GEN_PURPOSE_2">CC_GEN_PURPOSE_2
270
+
271
+ <dd class="description">
272
+
273
+
274
+ <dt id="CC_GEN_PURPOSE_3">CC_GEN_PURPOSE_3
275
+
276
+ <dd class="description">
277
+
278
+
279
+ <dt id="CC_GEN_PURPOSE_4">CC_GEN_PURPOSE_4
280
+
281
+ <dd class="description">
282
+
283
+
284
+ <dt id="CC_GEN_PURPOSE_5">CC_GEN_PURPOSE_5
285
+
286
+ <dd class="description">
287
+
288
+
289
+ <dt id="CC_GEN_PURPOSE_6">CC_GEN_PURPOSE_6
290
+
291
+ <dd class="description">
292
+
293
+
294
+ <dt id="CC_GEN_PURPOSE_7">CC_GEN_PURPOSE_7
295
+
296
+ <dd class="description">
297
+
298
+
299
+ <dt id="CC_GEN_PURPOSE_8">CC_GEN_PURPOSE_8
300
+
301
+ <dd class="description">
302
+
303
+
304
+ <dt id="CC_HOLD_2">CC_HOLD_2
305
+
306
+ <dd class="description">
307
+
308
+
309
+ <dt id="CC_MOD_WHEEL">CC_MOD_WHEEL
310
+
311
+ <dd class="description"><p><a href="MIDI/Controller.html">Controller</a> numbers</p>
312
+
313
+ <h1 id="label-0+-+31+%3D+continuous%2C+LSB">0 - 31 = continuous, LSB</h1>
314
+
315
+ <h1 id="label-32+-+63+%3D+continuous%2C+MSB">32 - 63 = continuous, MSB</h1>
316
+
317
+ <h1 id="label-64+-+97+%3D+switches">64 - 97 = switches</h1>
318
+
319
+
320
+ <dt id="CC_NREG_PARAM_LSB">CC_NREG_PARAM_LSB
321
+
322
+ <dd class="description">
323
+
324
+
325
+ <dt id="CC_NREG_PARAM_MSB">CC_NREG_PARAM_MSB
326
+
327
+ <dd class="description">
328
+
329
+
330
+ <dt id="CC_PAN">CC_PAN
331
+
332
+ <dd class="description">
333
+
334
+
335
+ <dt id="CC_PHASER_DEPTH">CC_PHASER_DEPTH
336
+
337
+ <dd class="description">
338
+
339
+
340
+ <dt id="CC_PORTAMENTO">CC_PORTAMENTO
341
+
342
+ <dd class="description">
343
+
344
+
345
+ <dt id="CC_PORTAMENTO_TIME">CC_PORTAMENTO_TIME
346
+
347
+ <dd class="description">
348
+
349
+
350
+ <dt id="CC_REG_PARAM_LSB">CC_REG_PARAM_LSB
351
+
352
+ <dd class="description">
353
+
354
+
355
+ <dt id="CC_REG_PARAM_MSB">CC_REG_PARAM_MSB
356
+
357
+ <dd class="description">
358
+
359
+
360
+ <dt id="CC_SOFT_PEDAL">CC_SOFT_PEDAL
361
+
362
+ <dd class="description">
363
+
364
+
365
+ <dt id="CC_SUSTAIN">CC_SUSTAIN
366
+
367
+ <dd class="description">
368
+
369
+
370
+ <dt id="CC_SUSTENUTO">CC_SUSTENUTO
371
+
372
+ <dd class="description">
373
+
374
+
375
+ <dt id="CC_TREMELO_DEPTH">CC_TREMELO_DEPTH
376
+
377
+ <dd class="description">
378
+
379
+
380
+ <dt id="CC_VOLUME">CC_VOLUME
381
+
382
+ <dd class="description">
383
+
384
+
385
+ <dt id="CHANNEL_PRESSURE">CHANNEL_PRESSURE
386
+
387
+ <dd class="description"><p>Channel pressure</p>
388
+
389
+
390
+ <dt id="CLOCK">CLOCK
391
+
392
+ <dd class="description"><p><a href="MIDI/MIDI.html">MIDI</a> clock (24 per quarter note)</p>
393
+
394
+
395
+ <dt id="CM_ALL_NOTES_OFF">CM_ALL_NOTES_OFF
396
+
397
+ <dd class="description">
398
+
399
+
400
+ <dt id="CM_LOCAL_CONTROL">CM_LOCAL_CONTROL
401
+
402
+ <dd class="description"><p>Val 0 == off, 0x7f == on</p>
403
+
404
+
405
+ <dt id="CM_MONO_MODE_ON">CM_MONO_MODE_ON
406
+
407
+ <dd class="description">
408
+
409
+
410
+ <dt id="CM_OMNI_MODE_OFF">CM_OMNI_MODE_OFF
411
+
412
+ <dd class="description">
413
+
414
+
415
+ <dt id="CM_OMNI_MODE_ON">CM_OMNI_MODE_ON
416
+
417
+ <dd class="description">
418
+
419
+
420
+ <dt id="CM_POLY_MODE_ON">CM_POLY_MODE_ON
421
+
422
+ <dd class="description">
423
+
424
+
425
+ <dt id="CONTINUE">CONTINUE
426
+
427
+ <dd class="description"><p><a href="MIDI/Sequence.html">Sequence</a> continue</p>
428
+
429
+
430
+ <dt id="CONTROLLER">CONTROLLER
431
+
432
+ <dd class="description"><p><a href="MIDI/Controller.html">Controller</a> #, val</p>
433
+
434
+
435
+ <dt id="CONTROLLER_NAMES">CONTROLLER_NAMES
436
+
437
+ <dd class="description"><p><a href="MIDI/Controller.html">Controller</a> names</p>
438
+
439
+
440
+ <dt id="Copyright">Copyright
441
+
442
+ <dd class="description">
443
+
444
+
445
+ <dt id="EOX">EOX
446
+
447
+ <dd class="description"><p>End of system exclusive</p>
448
+
449
+
450
+ <dt id="GM_DRUM_NOTE_LOWEST">GM_DRUM_NOTE_LOWEST
451
+
452
+ <dd class="description"><p>GM drum notes start at 35 (C), so subtrack <a
453
+ href="MIDI.html#GM_DRUM_NOTE_LOWEST">GM_DRUM_NOTE_LOWEST</a> from your note
454
+ number before using this array.</p>
455
+
456
+
457
+ <dt id="GM_DRUM_NOTE_NAMES">GM_DRUM_NOTE_NAMES
458
+
459
+ <dd class="description"><p>General <a href="MIDI/MIDI.html">MIDI</a> drum channel note names.</p>
460
+
461
+
462
+ <dt id="GM_PATCH_NAMES">GM_PATCH_NAMES
463
+
464
+ <dd class="description"><p>General <a href="MIDI/MIDI.html">MIDI</a> patch names</p>
465
+
466
+
467
+ <dt id="META_COPYRIGHT">META_COPYRIGHT
468
+
469
+ <dd class="description">
470
+
471
+
472
+ <dt id="META_CUE">META_CUE
473
+
474
+ <dd class="description">
475
+
476
+
477
+ <dt id="META_EVENT">META_EVENT
478
+
479
+ <dd class="description">
480
+
481
+
482
+ <dt id="META_INSTRUMENT">META_INSTRUMENT
483
+
484
+ <dd class="description">
485
+
486
+
487
+ <dt id="META_KEY_SIG">META_KEY_SIG
488
+
489
+ <dd class="description">
490
+
491
+
492
+ <dt id="META_LYRIC">META_LYRIC
493
+
494
+ <dd class="description">
495
+
496
+
497
+ <dt id="META_MARKER">META_MARKER
498
+
499
+ <dd class="description">
500
+
501
+
502
+ <dt id="META_MIDI_CHAN_PREFIX">META_MIDI_CHAN_PREFIX
503
+
504
+ <dd class="description">
505
+
506
+
507
+ <dt id="META_SEQ_NAME">META_SEQ_NAME
508
+
509
+ <dd class="description">
510
+
511
+
512
+ <dt id="META_SEQ_NUM">META_SEQ_NUM
513
+
514
+ <dd class="description">
515
+
516
+
517
+ <dt id="META_SEQ_SPECIF">META_SEQ_SPECIF
518
+
519
+ <dd class="description">
520
+
521
+
522
+ <dt id="META_SET_TEMPO">META_SET_TEMPO
523
+
524
+ <dd class="description">
525
+
526
+
527
+ <dt id="META_SMPTE">META_SMPTE
528
+
529
+ <dd class="description">
530
+
531
+
532
+ <dt id="META_TEXT">META_TEXT
533
+
534
+ <dd class="description">
535
+
536
+
537
+ <dt id="META_TIME_SIG">META_TIME_SIG
538
+
539
+ <dd class="description">
540
+
541
+
542
+ <dt id="META_TRACK_END">META_TRACK_END
543
+
544
+ <dd class="description">
545
+
546
+
547
+ <dt id="MIDI_CHANNELS">MIDI_CHANNELS
548
+
549
+ <dd class="description"><p>Number of <a href="MIDI/MIDI.html">MIDI</a> channels</p>
550
+
551
+
552
+ <dt id="NOTES_PER_CHANNEL">NOTES_PER_CHANNEL
553
+
554
+ <dd class="description"><p>Number of note per <a href="MIDI/MIDI.html">MIDI</a> channel</p>
555
+
556
+
557
+ <dt id="NOTE_OFF">NOTE_OFF
558
+
559
+ <dd class="description"><p>Note, val</p>
560
+
561
+
562
+ <dt id="NOTE_ON">NOTE_ON
563
+
564
+ <dd class="description"><p>Note, val</p>
565
+
566
+
567
+ <dt id="NoteOffEvent">NoteOffEvent
568
+
569
+ <dd class="description"><p>Old class name for compatability</p>
570
+
571
+
572
+ <dt id="NoteOnEvent">NoteOnEvent
573
+
574
+ <dd class="description"><p>Old class name for compatability</p>
575
+
576
+
577
+ <dt id="PITCH_BEND">PITCH_BEND
578
+
579
+ <dd class="description"><p>LSB, MSB</p>
580
+
581
+
582
+ <dt id="POLY_PRESSURE">POLY_PRESSURE
583
+
584
+ <dd class="description"><p>Note, val</p>
585
+
586
+
587
+ <dt id="PROGRAM_CHANGE">PROGRAM_CHANGE
588
+
589
+ <dd class="description"><p>Program number</p>
590
+
591
+
592
+ <dt id="SONG_POINTER">SONG_POINTER
593
+
594
+ <dd class="description"><p>Beats from top: LSB/MSB 6 ticks = 1 beat</p>
595
+
596
+
597
+ <dt id="SONG_SELECT">SONG_SELECT
598
+
599
+ <dd class="description"><p>Val = number of song</p>
600
+
601
+
602
+ <dt id="START">START
603
+
604
+ <dd class="description"><p><a href="MIDI/Sequence.html">Sequence</a> start</p>
605
+
606
+
607
+ <dt id="STOP">STOP
608
+
609
+ <dd class="description"><p><a href="MIDI/Sequence.html">Sequence</a> stop</p>
610
+
611
+
612
+ <dt id="SYSEX">SYSEX
613
+
614
+ <dd class="description"><p>System exclusive start</p>
615
+
616
+
617
+ <dt id="SYSTEM_RESET">SYSTEM_RESET
618
+
619
+ <dd class="description"><p>System reset</p>
620
+
621
+
622
+ <dt id="TUNE_REQUEST">TUNE_REQUEST
623
+
624
+ <dd class="description"><p>Tune request</p>
625
+
626
+
627
+ <dt id="VERSION_MAJOR">VERSION_MAJOR
628
+
629
+ <dd class="description">
630
+
631
+
632
+ <dt id="VERSION_MINOR">VERSION_MINOR
633
+
634
+ <dd class="description">
635
+
636
+
637
+ <dt id="VERSION_TWEAK">VERSION_TWEAK
638
+
639
+ <dd class="description">
640
+
641
+
642
+ <dt id="Version">Version
643
+
644
+ <dd class="description">
645
+
646
+
647
+ </dl>
648
+ </section>
649
+
650
+
651
+
652
+
653
+ <!-- Methods -->
654
+
655
+ </section><!-- 5Buntitled-5D -->
656
+
657
+ </div><!-- documentation -->
658
+
659
+
660
+ <footer id="validator-badges">
661
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
662
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
663
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
664
+ </footer>
665
+