midilib 2.0.5 → 3.0.1

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 (124) hide show
  1. checksums.yaml +5 -5
  2. data/ChangeLog +2 -1
  3. data/Credits +39 -2
  4. data/README.rdoc +5 -6
  5. data/Rakefile +36 -49
  6. data/TODO.rdoc +13 -2
  7. data/examples/from_scratch.rb +1 -1
  8. data/examples/measures_mbt.rb +11 -11
  9. data/examples/print_program_changes.rb +2 -2
  10. data/examples/reader2text.rb +47 -47
  11. data/examples/seq2text.rb +1 -1
  12. data/examples/split.rb +4 -3
  13. data/examples/strings.rb +4 -4
  14. data/examples/transpose.rb +19 -20
  15. data/install.rb +21 -13
  16. data/lib/midilib/consts.rb +237 -239
  17. data/lib/midilib/event.rb +128 -100
  18. data/lib/midilib/info.rb +3 -5
  19. data/lib/midilib/io/midifile.rb +155 -182
  20. data/lib/midilib/io/seqreader.rb +80 -85
  21. data/lib/midilib/io/seqwriter.rb +93 -88
  22. data/lib/midilib/measure.rb +78 -80
  23. data/lib/midilib/mergesort.rb +39 -0
  24. data/lib/midilib/sequence.rb +40 -32
  25. data/lib/midilib/track.rb +16 -57
  26. data/lib/midilib/utils.rb +4 -7
  27. data/lib/midilib.rb +5 -5
  28. data/test/event_equality.rb +28 -30
  29. data/test/test_event.rb +9 -11
  30. data/test/test_io.rb +83 -3
  31. data/test/test_mergesort.rb +37 -0
  32. data/test/test_midifile.rb +6 -19
  33. data/test/test_sequence.rb +5 -4
  34. data/test/test_track.rb +9 -38
  35. data/test/test_varlen.rb +1 -3
  36. metadata +8 -95
  37. data/html/IO.html +0 -155
  38. data/html/MIDI/ActiveSense.html +0 -206
  39. data/html/MIDI/ChannelEvent.html +0 -231
  40. data/html/MIDI/ChannelPressure.html +0 -265
  41. data/html/MIDI/Clock.html +0 -206
  42. data/html/MIDI/Continue.html +0 -206
  43. data/html/MIDI/Controller.html +0 -280
  44. data/html/MIDI/Event.html +0 -489
  45. data/html/MIDI/IO/MIDIFile.html +0 -2024
  46. data/html/MIDI/IO/SeqReader.html +0 -904
  47. data/html/MIDI/IO/SeqWriter.html +0 -572
  48. data/html/MIDI/IO.html +0 -95
  49. data/html/MIDI/KeySig.html +0 -353
  50. data/html/MIDI/MIDI/MIDI/Array.html +0 -255
  51. data/html/MIDI/MIDI/MIDI.html +0 -95
  52. data/html/MIDI/MIDI.html +0 -95
  53. data/html/MIDI/Marker.html +0 -158
  54. data/html/MIDI/Measure.html +0 -328
  55. data/html/MIDI/Measures.html +0 -285
  56. data/html/MIDI/MetaEvent.html +0 -461
  57. data/html/MIDI/NoteEvent.html +0 -331
  58. data/html/MIDI/NoteOff.html +0 -228
  59. data/html/MIDI/NoteOn.html +0 -228
  60. data/html/MIDI/PitchBend.html +0 -266
  61. data/html/MIDI/PolyPressure.html +0 -277
  62. data/html/MIDI/ProgramChange.html +0 -265
  63. data/html/MIDI/Realtime.html +0 -242
  64. data/html/MIDI/Sequence.html +0 -896
  65. data/html/MIDI/SongPointer.html +0 -266
  66. data/html/MIDI/SongSelect.html +0 -265
  67. data/html/MIDI/Start.html +0 -206
  68. data/html/MIDI/Stop.html +0 -206
  69. data/html/MIDI/SystemCommon.html +0 -158
  70. data/html/MIDI/SystemExclusive.html +0 -268
  71. data/html/MIDI/SystemReset.html +0 -206
  72. data/html/MIDI/Tempo.html +0 -396
  73. data/html/MIDI/TimeSig.html +0 -388
  74. data/html/MIDI/Track.html +0 -695
  75. data/html/MIDI/TuneRequest.html +0 -242
  76. data/html/MIDI/Utils.html +0 -220
  77. data/html/MIDI.html +0 -547
  78. data/html/README_rdoc.html +0 -731
  79. data/html/TODO_rdoc.html +0 -125
  80. data/html/created.rid +0 -14
  81. data/html/css/fonts.css +0 -167
  82. data/html/css/rdoc.css +0 -590
  83. data/html/fonts/Lato-Light.ttf +0 -0
  84. data/html/fonts/Lato-LightItalic.ttf +0 -0
  85. data/html/fonts/Lato-Regular.ttf +0 -0
  86. data/html/fonts/Lato-RegularItalic.ttf +0 -0
  87. data/html/fonts/SourceCodePro-Bold.ttf +0 -0
  88. data/html/fonts/SourceCodePro-Regular.ttf +0 -0
  89. data/html/images/add.png +0 -0
  90. data/html/images/arrow_up.png +0 -0
  91. data/html/images/brick.png +0 -0
  92. data/html/images/brick_link.png +0 -0
  93. data/html/images/bug.png +0 -0
  94. data/html/images/bullet_black.png +0 -0
  95. data/html/images/bullet_toggle_minus.png +0 -0
  96. data/html/images/bullet_toggle_plus.png +0 -0
  97. data/html/images/date.png +0 -0
  98. data/html/images/delete.png +0 -0
  99. data/html/images/find.png +0 -0
  100. data/html/images/loadingAnimation.gif +0 -0
  101. data/html/images/macFFBgHack.png +0 -0
  102. data/html/images/package.png +0 -0
  103. data/html/images/page_green.png +0 -0
  104. data/html/images/page_white_text.png +0 -0
  105. data/html/images/page_white_width.png +0 -0
  106. data/html/images/plugin.png +0 -0
  107. data/html/images/ruby.png +0 -0
  108. data/html/images/tag_blue.png +0 -0
  109. data/html/images/tag_green.png +0 -0
  110. data/html/images/transparent.png +0 -0
  111. data/html/images/wrench.png +0 -0
  112. data/html/images/wrench_orange.png +0 -0
  113. data/html/images/zoom.png +0 -0
  114. data/html/index.html +0 -768
  115. data/html/js/darkfish.js +0 -161
  116. data/html/js/jquery.js +0 -4
  117. data/html/js/navigation.js +0 -142
  118. data/html/js/navigation.js.gz +0 -0
  119. data/html/js/search.js +0 -109
  120. data/html/js/search_index.js +0 -1
  121. data/html/js/search_index.js.gz +0 -0
  122. data/html/js/searcher.js +0 -228
  123. data/html/js/searcher.js.gz +0 -0
  124. data/html/table_of_contents.html +0 -1265
data/html/MIDI.html DELETED
@@ -1,547 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
-
7
- <title>module MIDI - midilib</title>
8
-
9
- <script type="text/javascript">
10
- var rdoc_rel_prefix = "./";
11
- </script>
12
-
13
- <script src="./js/jquery.js"></script>
14
- <script src="./js/darkfish.js"></script>
15
-
16
- <link href="./css/fonts.css" rel="stylesheet">
17
- <link href="./css/rdoc.css" rel="stylesheet">
18
-
19
-
20
-
21
- <body id="top" role="document" class="module">
22
- <nav role="navigation">
23
- <div id="project-navigation">
24
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
25
- <h2>
26
- <a href="./index.html" rel="home">Home</a>
27
- </h2>
28
-
29
- <div id="table-of-contents-navigation">
30
- <a href="./table_of_contents.html#pages">Pages</a>
31
- <a href="./table_of_contents.html#classes">Classes</a>
32
- <a href="./table_of_contents.html#methods">Methods</a>
33
- </div>
34
- </div>
35
-
36
- <div id="search-section" role="search" class="project-section initially-hidden">
37
- <form action="#" method="get" accept-charset="utf-8">
38
- <div id="search-field-wrapper">
39
- <input id="search-field" role="combobox" aria-label="Search"
40
- aria-autocomplete="list" aria-controls="search-results"
41
- type="text" name="search" placeholder="Search" spellcheck="false"
42
- title="Type to search, Up and Down to navigate, Enter to load">
43
- </div>
44
-
45
- <ul id="search-results" aria-label="Search Results"
46
- aria-busy="false" aria-expanded="false"
47
- aria-atomic="false" class="initially-hidden"></ul>
48
- </form>
49
- </div>
50
-
51
- </div>
52
-
53
-
54
-
55
- <div id="class-metadata">
56
-
57
-
58
-
59
-
60
-
61
- </div>
62
- </nav>
63
-
64
- <main role="main" aria-labelledby="module-MIDI">
65
- <h1 id="module-MIDI" class="module">
66
- module MIDI
67
- </h1>
68
-
69
- <section class="description">
70
-
71
- <p><a href="MIDI/MIDI.html">MIDI</a> constants.</p>
72
-
73
- </section>
74
-
75
-
76
-
77
-
78
- <section id="5Buntitled-5D" class="documentation-section">
79
-
80
-
81
-
82
-
83
-
84
- <section class="constants-list">
85
- <header>
86
- <h3>Constants</h3>
87
- </header>
88
- <dl>
89
-
90
- <dt id="ACTIVE_SENSE">ACTIVE_SENSE
91
-
92
- <dd><p>Active sensing (sent every 300 ms when nothing else being sent)</p>
93
-
94
-
95
- <dt id="CC_BALANCE">CC_BALANCE
96
-
97
- <dd>
98
-
99
-
100
- <dt id="CC_BREATH_CONTROLLER">CC_BREATH_CONTROLLER
101
-
102
- <dd>
103
-
104
-
105
- <dt id="CC_CHORUS_DEPTH">CC_CHORUS_DEPTH
106
-
107
- <dd>
108
-
109
-
110
- <dt id="CC_DATA_DECREMENT">CC_DATA_DECREMENT
111
-
112
- <dd>
113
-
114
-
115
- <dt id="CC_DATA_ENTRY_LSB">CC_DATA_ENTRY_LSB
116
-
117
- <dd><dl class="rdoc-list label-list"><dt>32 - 63
118
- <dd>
119
- <p>are LSB for [0 - 31]</p>
120
- </dd></dl>
121
-
122
-
123
- <dt id="CC_DATA_ENTRY_MSB">CC_DATA_ENTRY_MSB
124
-
125
- <dd>
126
-
127
-
128
- <dt id="CC_DATA_INCREMENT">CC_DATA_INCREMENT
129
-
130
- <dd>
131
-
132
-
133
- <dt id="CC_DETUNE_DEPTH">CC_DETUNE_DEPTH
134
-
135
- <dd>
136
-
137
-
138
- <dt id="CC_EXPRESSION_CONTROLLER">CC_EXPRESSION_CONTROLLER
139
-
140
- <dd>
141
-
142
-
143
- <dt id="CC_FOOT_CONTROLLER">CC_FOOT_CONTROLLER
144
-
145
- <dd>
146
-
147
-
148
- <dt id="CC_GEN_PURPOSE_1">CC_GEN_PURPOSE_1
149
-
150
- <dd>
151
-
152
-
153
- <dt id="CC_GEN_PURPOSE_2">CC_GEN_PURPOSE_2
154
-
155
- <dd>
156
-
157
-
158
- <dt id="CC_GEN_PURPOSE_3">CC_GEN_PURPOSE_3
159
-
160
- <dd>
161
-
162
-
163
- <dt id="CC_GEN_PURPOSE_4">CC_GEN_PURPOSE_4
164
-
165
- <dd>
166
-
167
-
168
- <dt id="CC_GEN_PURPOSE_5">CC_GEN_PURPOSE_5
169
-
170
- <dd>
171
-
172
-
173
- <dt id="CC_GEN_PURPOSE_6">CC_GEN_PURPOSE_6
174
-
175
- <dd>
176
-
177
-
178
- <dt id="CC_GEN_PURPOSE_7">CC_GEN_PURPOSE_7
179
-
180
- <dd>
181
-
182
-
183
- <dt id="CC_GEN_PURPOSE_8">CC_GEN_PURPOSE_8
184
-
185
- <dd>
186
-
187
-
188
- <dt id="CC_HOLD_2">CC_HOLD_2
189
-
190
- <dd>
191
-
192
-
193
- <dt id="CC_MOD_WHEEL">CC_MOD_WHEEL
194
-
195
- <dd><p><a href="MIDI/Controller.html">Controller</a> numbers</p>
196
-
197
- <h1 id="label-0+-+31+-3D+continuous-2C+LSB">0 - 31 = continuous, LSB<span><a href="#label-0+-+31+-3D+continuous-2C+LSB">&para;</a> <a href="#top">&uarr;</a></span></h1>
198
-
199
- <h1 id="label-32+-+63+-3D+continuous-2C+MSB">32 - 63 = continuous, MSB<span><a href="#label-32+-+63+-3D+continuous-2C+MSB">&para;</a> <a href="#top">&uarr;</a></span></h1>
200
-
201
- <h1 id="label-64+-+97+-3D+switches">64 - 97 = switches<span><a href="#label-64+-+97+-3D+switches">&para;</a> <a href="#top">&uarr;</a></span></h1>
202
-
203
-
204
- <dt id="CC_NREG_PARAM_LSB">CC_NREG_PARAM_LSB
205
-
206
- <dd>
207
-
208
-
209
- <dt id="CC_NREG_PARAM_MSB">CC_NREG_PARAM_MSB
210
-
211
- <dd>
212
-
213
-
214
- <dt id="CC_PAN">CC_PAN
215
-
216
- <dd>
217
-
218
-
219
- <dt id="CC_PHASER_DEPTH">CC_PHASER_DEPTH
220
-
221
- <dd>
222
-
223
-
224
- <dt id="CC_PORTAMENTO">CC_PORTAMENTO
225
-
226
- <dd>
227
-
228
-
229
- <dt id="CC_PORTAMENTO_TIME">CC_PORTAMENTO_TIME
230
-
231
- <dd>
232
-
233
-
234
- <dt id="CC_REG_PARAM_LSB">CC_REG_PARAM_LSB
235
-
236
- <dd>
237
-
238
-
239
- <dt id="CC_REG_PARAM_MSB">CC_REG_PARAM_MSB
240
-
241
- <dd>
242
-
243
-
244
- <dt id="CC_SOFT_PEDAL">CC_SOFT_PEDAL
245
-
246
- <dd>
247
-
248
-
249
- <dt id="CC_SUSTAIN">CC_SUSTAIN
250
-
251
- <dd>
252
-
253
-
254
- <dt id="CC_SUSTENUTO">CC_SUSTENUTO
255
-
256
- <dd>
257
-
258
-
259
- <dt id="CC_TREMELO_DEPTH">CC_TREMELO_DEPTH
260
-
261
- <dd>
262
-
263
-
264
- <dt id="CC_VOLUME">CC_VOLUME
265
-
266
- <dd>
267
-
268
-
269
- <dt id="CHANNEL_PRESSURE">CHANNEL_PRESSURE
270
-
271
- <dd><p>Channel pressure</p>
272
-
273
-
274
- <dt id="CLOCK">CLOCK
275
-
276
- <dd><p><a href="MIDI/MIDI.html">MIDI</a> clock (24 per quarter note)</p>
277
-
278
-
279
- <dt id="CM_ALL_NOTES_OFF">CM_ALL_NOTES_OFF
280
-
281
- <dd>
282
-
283
-
284
- <dt id="CM_LOCAL_CONTROL">CM_LOCAL_CONTROL
285
-
286
- <dd><p>Val 0 == off, 0x7f == on</p>
287
-
288
-
289
- <dt id="CM_MONO_MODE_ON">CM_MONO_MODE_ON
290
-
291
- <dd>
292
-
293
-
294
- <dt id="CM_OMNI_MODE_OFF">CM_OMNI_MODE_OFF
295
-
296
- <dd>
297
-
298
-
299
- <dt id="CM_OMNI_MODE_ON">CM_OMNI_MODE_ON
300
-
301
- <dd>
302
-
303
-
304
- <dt id="CM_POLY_MODE_ON">CM_POLY_MODE_ON
305
-
306
- <dd>
307
-
308
-
309
- <dt id="CONTINUE">CONTINUE
310
-
311
- <dd><p><a href="MIDI/Sequence.html">Sequence</a> continue</p>
312
-
313
-
314
- <dt id="CONTROLLER">CONTROLLER
315
-
316
- <dd><p><a href="MIDI/Controller.html">Controller</a> #, val</p>
317
-
318
-
319
- <dt id="CONTROLLER_NAMES">CONTROLLER_NAMES
320
-
321
- <dd><p><a href="MIDI/Controller.html">Controller</a> names</p>
322
-
323
-
324
- <dt id="Copyright">Copyright
325
-
326
- <dd>
327
-
328
-
329
- <dt id="EOX">EOX
330
-
331
- <dd><p>End of system exclusive</p>
332
-
333
-
334
- <dt id="GM_DRUM_NOTE_LOWEST">GM_DRUM_NOTE_LOWEST
335
-
336
- <dd><p>GM drum notes start at 35 (C), so subtrack <a
337
- href="MIDI.html#GM_DRUM_NOTE_LOWEST">GM_DRUM_NOTE_LOWEST</a> from your note
338
- number before using this array.</p>
339
-
340
-
341
- <dt id="GM_DRUM_NOTE_NAMES">GM_DRUM_NOTE_NAMES
342
-
343
- <dd><p>General <a href="MIDI/MIDI.html">MIDI</a> drum channel note names.</p>
344
-
345
-
346
- <dt id="GM_PATCH_NAMES">GM_PATCH_NAMES
347
-
348
- <dd><p>General <a href="MIDI/MIDI.html">MIDI</a> patch names</p>
349
-
350
-
351
- <dt id="META_COPYRIGHT">META_COPYRIGHT
352
-
353
- <dd>
354
-
355
-
356
- <dt id="META_CUE">META_CUE
357
-
358
- <dd>
359
-
360
-
361
- <dt id="META_EVENT">META_EVENT
362
-
363
- <dd>
364
-
365
-
366
- <dt id="META_INSTRUMENT">META_INSTRUMENT
367
-
368
- <dd>
369
-
370
-
371
- <dt id="META_KEY_SIG">META_KEY_SIG
372
-
373
- <dd>
374
-
375
-
376
- <dt id="META_LYRIC">META_LYRIC
377
-
378
- <dd>
379
-
380
-
381
- <dt id="META_MARKER">META_MARKER
382
-
383
- <dd>
384
-
385
-
386
- <dt id="META_MIDI_CHAN_PREFIX">META_MIDI_CHAN_PREFIX
387
-
388
- <dd>
389
-
390
-
391
- <dt id="META_SEQ_NAME">META_SEQ_NAME
392
-
393
- <dd>
394
-
395
-
396
- <dt id="META_SEQ_NUM">META_SEQ_NUM
397
-
398
- <dd>
399
-
400
-
401
- <dt id="META_SEQ_SPECIF">META_SEQ_SPECIF
402
-
403
- <dd>
404
-
405
-
406
- <dt id="META_SET_TEMPO">META_SET_TEMPO
407
-
408
- <dd>
409
-
410
-
411
- <dt id="META_SMPTE">META_SMPTE
412
-
413
- <dd>
414
-
415
-
416
- <dt id="META_TEXT">META_TEXT
417
-
418
- <dd>
419
-
420
-
421
- <dt id="META_TIME_SIG">META_TIME_SIG
422
-
423
- <dd>
424
-
425
-
426
- <dt id="META_TRACK_END">META_TRACK_END
427
-
428
- <dd>
429
-
430
-
431
- <dt id="MIDI_CHANNELS">MIDI_CHANNELS
432
-
433
- <dd><p>Number of <a href="MIDI/MIDI.html">MIDI</a> channels</p>
434
-
435
-
436
- <dt id="NOTES_PER_CHANNEL">NOTES_PER_CHANNEL
437
-
438
- <dd><p>Number of note per <a href="MIDI/MIDI.html">MIDI</a> channel</p>
439
-
440
-
441
- <dt id="NOTE_OFF">NOTE_OFF
442
-
443
- <dd><p>Note, val</p>
444
-
445
-
446
- <dt id="NOTE_ON">NOTE_ON
447
-
448
- <dd><p>Note, val</p>
449
-
450
-
451
- <dt id="NoteOffEvent">NoteOffEvent
452
-
453
- <dd><p>Old class name for compatability</p>
454
-
455
-
456
- <dt id="NoteOnEvent">NoteOnEvent
457
-
458
- <dd><p>Old class name for compatability</p>
459
-
460
-
461
- <dt id="PITCH_BEND">PITCH_BEND
462
-
463
- <dd><p>LSB, MSB</p>
464
-
465
-
466
- <dt id="POLY_PRESSURE">POLY_PRESSURE
467
-
468
- <dd><p>Note, val</p>
469
-
470
-
471
- <dt id="PROGRAM_CHANGE">PROGRAM_CHANGE
472
-
473
- <dd><p>Program number</p>
474
-
475
-
476
- <dt id="SONG_POINTER">SONG_POINTER
477
-
478
- <dd><p>Beats from top: LSB/MSB 6 ticks = 1 beat</p>
479
-
480
-
481
- <dt id="SONG_SELECT">SONG_SELECT
482
-
483
- <dd><p>Val = number of song</p>
484
-
485
-
486
- <dt id="START">START
487
-
488
- <dd><p><a href="MIDI/Sequence.html">Sequence</a> start</p>
489
-
490
-
491
- <dt id="STOP">STOP
492
-
493
- <dd><p><a href="MIDI/Sequence.html">Sequence</a> stop</p>
494
-
495
-
496
- <dt id="SYSEX">SYSEX
497
-
498
- <dd><p>System exclusive start</p>
499
-
500
-
501
- <dt id="SYSTEM_RESET">SYSTEM_RESET
502
-
503
- <dd><p>System reset</p>
504
-
505
-
506
- <dt id="TUNE_REQUEST">TUNE_REQUEST
507
-
508
- <dd><p>Tune request</p>
509
-
510
-
511
- <dt id="VERSION_MAJOR">VERSION_MAJOR
512
-
513
- <dd>
514
-
515
-
516
- <dt id="VERSION_MINOR">VERSION_MINOR
517
-
518
- <dd>
519
-
520
-
521
- <dt id="VERSION_TWEAK">VERSION_TWEAK
522
-
523
- <dd>
524
-
525
-
526
- <dt id="Version">Version
527
-
528
- <dd>
529
-
530
-
531
- </dl>
532
- </section>
533
-
534
-
535
-
536
-
537
-
538
- </section>
539
- </main>
540
-
541
-
542
- <footer id="validator-badges" role="contentinfo">
543
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
544
- <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
545
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
546
- </footer>
547
-