midilib 2.0.2 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
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
+