midilib 2.0.4 → 2.0.5

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 (94) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +9 -4
  3. data/Rakefile +2 -6
  4. data/examples/from_scratch.rb +3 -5
  5. data/examples/measures_mbt.rb +4 -4
  6. data/examples/print_program_changes.rb +9 -9
  7. data/examples/reader2text.rb +188 -188
  8. data/examples/seq2text.rb +17 -17
  9. data/examples/split.rb +19 -19
  10. data/examples/strings.rb +14 -14
  11. data/examples/transpose.rb +31 -31
  12. data/html/IO.html +65 -169
  13. data/html/MIDI.html +138 -256
  14. data/html/MIDI/ActiveSense.html +89 -178
  15. data/html/MIDI/ChannelEvent.html +95 -183
  16. data/html/MIDI/ChannelPressure.html +105 -190
  17. data/html/MIDI/Clock.html +89 -178
  18. data/html/MIDI/Continue.html +89 -178
  19. data/html/MIDI/Controller.html +107 -192
  20. data/html/MIDI/Event.html +138 -222
  21. data/html/MIDI/IO.html +45 -157
  22. data/html/MIDI/IO/MIDIFile.html +596 -568
  23. data/html/MIDI/IO/SeqReader.html +272 -314
  24. data/html/MIDI/IO/SeqWriter.html +229 -305
  25. data/html/MIDI/KeySig.html +129 -211
  26. data/html/MIDI/MIDI.html +45 -154
  27. data/html/MIDI/MIDI/MIDI.html +45 -154
  28. data/html/MIDI/MIDI/MIDI/Array.html +87 -185
  29. data/html/MIDI/Marker.html +71 -170
  30. data/html/MIDI/Measure.html +95 -190
  31. data/html/MIDI/Measures.html +103 -193
  32. data/html/MIDI/MetaEvent.html +180 -253
  33. data/html/MIDI/NoteEvent.html +118 -204
  34. data/html/MIDI/NoteOff.html +95 -183
  35. data/html/MIDI/NoteOn.html +95 -183
  36. data/html/MIDI/PitchBend.html +106 -191
  37. data/html/MIDI/PolyPressure.html +106 -189
  38. data/html/MIDI/ProgramChange.html +105 -190
  39. data/html/MIDI/Realtime.html +98 -184
  40. data/html/MIDI/Sequence.html +246 -311
  41. data/html/MIDI/SongPointer.html +106 -191
  42. data/html/MIDI/SongSelect.html +105 -190
  43. data/html/MIDI/Start.html +89 -178
  44. data/html/MIDI/Stop.html +89 -178
  45. data/html/MIDI/SystemCommon.html +71 -170
  46. data/html/MIDI/SystemExclusive.html +108 -193
  47. data/html/MIDI/SystemReset.html +89 -178
  48. data/html/MIDI/Tempo.html +135 -213
  49. data/html/MIDI/TimeSig.html +135 -214
  50. data/html/MIDI/Track.html +217 -291
  51. data/html/MIDI/TuneRequest.html +98 -184
  52. data/html/MIDI/Utils.html +89 -189
  53. data/html/README_rdoc.html +237 -257
  54. data/html/TODO_rdoc.html +64 -139
  55. data/html/created.rid +14 -14
  56. data/html/css/fonts.css +167 -0
  57. data/html/{rdoc.css → css/rdoc.css} +265 -218
  58. data/html/fonts/Lato-Light.ttf +0 -0
  59. data/html/fonts/Lato-LightItalic.ttf +0 -0
  60. data/html/fonts/Lato-Regular.ttf +0 -0
  61. data/html/fonts/Lato-RegularItalic.ttf +0 -0
  62. data/html/fonts/SourceCodePro-Bold.ttf +0 -0
  63. data/html/fonts/SourceCodePro-Regular.ttf +0 -0
  64. data/html/images/add.png +0 -0
  65. data/html/images/arrow_up.png +0 -0
  66. data/html/images/delete.png +0 -0
  67. data/html/images/tag_blue.png +0 -0
  68. data/html/index.html +187 -169
  69. data/html/js/darkfish.js +41 -33
  70. data/html/js/jquery.js +4 -18
  71. data/html/js/navigation.js.gz +0 -0
  72. data/html/js/search.js +20 -5
  73. data/html/js/search_index.js +1 -1
  74. data/html/js/search_index.js.gz +0 -0
  75. data/html/js/searcher.js.gz +0 -0
  76. data/html/table_of_contents.html +1111 -498
  77. data/install.rb +43 -32
  78. data/lib/midilib/consts.rb +407 -407
  79. data/lib/midilib/event.rb +295 -294
  80. data/lib/midilib/info.rb +5 -5
  81. data/lib/midilib/io/midifile.rb +266 -267
  82. data/lib/midilib/io/seqreader.rb +106 -106
  83. data/lib/midilib/io/seqwriter.rb +59 -60
  84. data/lib/midilib/measure.rb +69 -69
  85. data/lib/midilib/sequence.rb +68 -70
  86. data/lib/midilib/track.rb +96 -102
  87. data/lib/midilib/utils.rb +15 -15
  88. data/test/event_equality.rb +50 -50
  89. data/test/test_event.rb +120 -122
  90. data/test/test_io.rb +35 -48
  91. data/test/test_sequence.rb +60 -60
  92. data/test/test_track.rb +154 -154
  93. data/test/test_varlen.rb +23 -25
  94. metadata +65 -57
@@ -2,70 +2,68 @@
2
2
 
3
3
  <html>
4
4
  <head>
5
- <meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
5
+ <meta charset="UTF-8">
6
6
 
7
7
  <title>class MIDI::Sequence - midilib</title>
8
8
 
9
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
10
-
11
9
  <script type="text/javascript">
12
10
  var rdoc_rel_prefix = "../";
13
11
  </script>
14
12
 
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>
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
+
21
19
 
22
20
 
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>
21
+ <body id="top" role="document" class="class">
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>
28
31
  <a href="../table_of_contents.html#classes">Classes</a>
29
32
  <a href="../table_of_contents.html#methods">Methods</a>
30
- </h3>
31
- </nav>
32
-
33
+ </div>
34
+ </div>
33
35
 
34
- <nav id="search-section" class="section project-section" class="initially-hidden">
36
+ <div id="search-section" role="search" class="project-section initially-hidden">
35
37
  <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
+ <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"
38
42
  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>
43
+ </div>
44
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>
45
50
 
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/sequence.rb
51
- </ul>
52
- </nav>
53
-
54
-
55
51
  </div>
56
52
 
53
+
54
+
57
55
  <div id="class-metadata">
58
56
 
59
- <nav id="parent-class-section" class="section">
60
- <h3 class="section-header">Parent</h3>
57
+ <div id="parent-class-section" class="nav-section">
58
+ <h3>Parent</h3>
59
+
61
60
 
62
61
  <p class="link">Object
63
62
 
64
- </nav>
63
+ </div>
65
64
 
66
- <!-- Included Modules -->
67
- <nav id="includes-section" class="section">
68
- <h3 class="section-header">Included Modules</h3>
65
+ <div id="includes-section" class="nav-section">
66
+ <h3>Included Modules</h3>
69
67
 
70
68
  <ul class="link-list">
71
69
 
@@ -74,168 +72,62 @@
74
72
 
75
73
 
76
74
  </ul>
77
- </nav>
75
+ </div>
78
76
 
77
+
79
78
  <!-- Method Quickref -->
80
- <nav id="method-list-section" class="section">
81
- <h3 class="section-header">Methods</h3>
79
+ <div id="method-list-section" class="nav-section">
80
+ <h3>Methods</h3>
82
81
 
83
- <ul class="link-list">
82
+ <ul class="link-list" role="directory">
84
83
 
85
- <li><a href="#method-c-new">::new</a>
84
+ <li ><a href="#method-c-new">::new</a>
86
85
 
87
- <li><a href="#method-i-beats_per_minute">#beats_per_minute</a>
86
+ <li ><a href="#method-i-beats_per_minute">#beats_per_minute</a>
88
87
 
89
- <li><a href="#method-i-bpm">#bpm</a>
88
+ <li ><a href="#method-i-bpm">#bpm</a>
90
89
 
91
- <li><a href="#method-i-each">#each</a>
90
+ <li ><a href="#method-i-each">#each</a>
92
91
 
93
- <li><a href="#method-i-get_measures">#get_measures</a>
92
+ <li ><a href="#method-i-get_measures">#get_measures</a>
94
93
 
95
- <li><a href="#method-i-length_to_delta">#length_to_delta</a>
94
+ <li ><a href="#method-i-length_to_delta">#length_to_delta</a>
96
95
 
97
- <li><a href="#method-i-name">#name</a>
96
+ <li ><a href="#method-i-name">#name</a>
98
97
 
99
- <li><a href="#method-i-name-3D">#name=</a>
98
+ <li ><a href="#method-i-name-3D">#name=</a>
100
99
 
101
- <li><a href="#method-i-note_to_delta">#note_to_delta</a>
100
+ <li ><a href="#method-i-note_to_delta">#note_to_delta</a>
102
101
 
103
- <li><a href="#method-i-note_to_length">#note_to_length</a>
102
+ <li ><a href="#method-i-note_to_length">#note_to_length</a>
104
103
 
105
- <li><a href="#method-i-pulses_to_seconds">#pulses_to_seconds</a>
104
+ <li ><a href="#method-i-pulses_to_seconds">#pulses_to_seconds</a>
106
105
 
107
- <li><a href="#method-i-read">#read</a>
106
+ <li ><a href="#method-i-read">#read</a>
108
107
 
109
- <li><a href="#method-i-tempo">#tempo</a>
108
+ <li ><a href="#method-i-tempo">#tempo</a>
110
109
 
111
- <li><a href="#method-i-time_signature">#time_signature</a>
110
+ <li ><a href="#method-i-time_signature">#time_signature</a>
112
111
 
113
- <li><a href="#method-i-write">#write</a>
112
+ <li ><a href="#method-i-write">#write</a>
114
113
 
115
114
  </ul>
116
- </nav>
117
-
118
- </div>
119
-
120
- <div id="project-metadata">
121
- <nav id="fileindex-section" class="section project-section">
122
- <h3 class="section-header">Pages</h3>
123
-
124
- <ul>
125
-
126
- <li class="file"><a href="../README_rdoc.html">README</a>
127
-
128
- <li class="file"><a href="../TODO_rdoc.html">TODO</a>
129
-
130
- </ul>
131
- </nav>
132
-
133
- <nav id="classindex-section" class="section project-section">
134
- <h3 class="section-header">Class and Module Index</h3>
135
-
136
- <ul class="link-list">
137
-
138
- <li><a href="../MIDI.html">MIDI</a>
139
-
140
- <li><a href="../MIDI/ActiveSense.html">MIDI::ActiveSense</a>
141
-
142
- <li><a href="../MIDI/ChannelEvent.html">MIDI::ChannelEvent</a>
143
-
144
- <li><a href="../MIDI/ChannelPressure.html">MIDI::ChannelPressure</a>
145
-
146
- <li><a href="../MIDI/Clock.html">MIDI::Clock</a>
147
-
148
- <li><a href="../MIDI/Continue.html">MIDI::Continue</a>
149
-
150
- <li><a href="../MIDI/Controller.html">MIDI::Controller</a>
151
-
152
- <li><a href="../MIDI/Event.html">MIDI::Event</a>
153
-
154
- <li><a href="../MIDI/IO.html">MIDI::IO</a>
155
-
156
- <li><a href="../MIDI/IO/MIDIFile.html">MIDI::IO::MIDIFile</a>
157
-
158
- <li><a href="../MIDI/IO/SeqReader.html">MIDI::IO::SeqReader</a>
159
-
160
- <li><a href="../MIDI/IO/SeqWriter.html">MIDI::IO::SeqWriter</a>
161
-
162
- <li><a href="../MIDI/KeySig.html">MIDI::KeySig</a>
163
-
164
- <li><a href="../MIDI/MIDI.html">MIDI::MIDI</a>
165
-
166
- <li><a href="../MIDI/MIDI/MIDI.html">MIDI::MIDI::MIDI</a>
167
-
168
- <li><a href="../MIDI/MIDI/MIDI/Array.html">MIDI::MIDI::MIDI::Array</a>
169
-
170
- <li><a href="../MIDI/Marker.html">MIDI::Marker</a>
171
-
172
- <li><a href="../MIDI/Measure.html">MIDI::Measure</a>
173
-
174
- <li><a href="../MIDI/Measures.html">MIDI::Measures</a>
175
-
176
- <li><a href="../MIDI/MetaEvent.html">MIDI::MetaEvent</a>
177
-
178
- <li><a href="../MIDI/NoteEvent.html">MIDI::NoteEvent</a>
179
-
180
- <li><a href="../MIDI/NoteOff.html">MIDI::NoteOff</a>
181
-
182
- <li><a href="../MIDI/NoteOff.html">MIDI::NoteOffEvent</a>
183
-
184
- <li><a href="../MIDI/NoteOn.html">MIDI::NoteOn</a>
185
-
186
- <li><a href="../MIDI/NoteOn.html">MIDI::NoteOnEvent</a>
187
-
188
- <li><a href="../MIDI/PitchBend.html">MIDI::PitchBend</a>
189
-
190
- <li><a href="../MIDI/PolyPressure.html">MIDI::PolyPressure</a>
191
-
192
- <li><a href="../MIDI/ProgramChange.html">MIDI::ProgramChange</a>
193
-
194
- <li><a href="../MIDI/Realtime.html">MIDI::Realtime</a>
195
-
196
- <li><a href="../MIDI/Sequence.html">MIDI::Sequence</a>
197
-
198
- <li><a href="../MIDI/SongPointer.html">MIDI::SongPointer</a>
199
-
200
- <li><a href="../MIDI/SongSelect.html">MIDI::SongSelect</a>
201
-
202
- <li><a href="../MIDI/Start.html">MIDI::Start</a>
203
-
204
- <li><a href="../MIDI/Stop.html">MIDI::Stop</a>
205
-
206
- <li><a href="../MIDI/SystemCommon.html">MIDI::SystemCommon</a>
207
-
208
- <li><a href="../MIDI/SystemExclusive.html">MIDI::SystemExclusive</a>
209
-
210
- <li><a href="../MIDI/SystemReset.html">MIDI::SystemReset</a>
211
-
212
- <li><a href="../MIDI/Tempo.html">MIDI::Tempo</a>
213
-
214
- <li><a href="../MIDI/TimeSig.html">MIDI::TimeSig</a>
215
-
216
- <li><a href="../MIDI/Track.html">MIDI::Track</a>
217
-
218
- <li><a href="../MIDI/TuneRequest.html">MIDI::TuneRequest</a>
219
-
220
- <li><a href="../MIDI/Utils.html">MIDI::Utils</a>
221
-
222
- <li><a href="../IO.html">IO</a>
223
-
224
- </ul>
225
- </nav>
115
+ </div>
226
116
 
227
117
  </div>
228
118
  </nav>
229
119
 
230
- <div id="documentation">
231
- <h1 class="class">class MIDI::Sequence</h1>
120
+ <main role="main" aria-labelledby="class-MIDI::Sequence">
121
+ <h1 id="class-MIDI::Sequence" class="class">
122
+ class MIDI::Sequence
123
+ </h1>
232
124
 
233
- <div id="description" class="description">
125
+ <section class="description">
234
126
 
235
127
  <p>A <a href="Sequence.html">MIDI::Sequence</a> contains <a
236
128
  href="Track.html">MIDI::Track</a> objects.</p>
237
129
 
238
- </div><!-- description -->
130
+ </section>
239
131
 
240
132
 
241
133
 
@@ -246,24 +138,25 @@ href="Track.html">MIDI::Track</a> objects.</p>
246
138
 
247
139
 
248
140
 
249
- <!-- Constants -->
250
- <section id="constants-list" class="section">
251
- <h3 class="section-header">Constants</h3>
141
+ <section class="constants-list">
142
+ <header>
143
+ <h3>Constants</h3>
144
+ </header>
252
145
  <dl>
253
146
 
254
147
  <dt id="DEFAULT_TEMPO">DEFAULT_TEMPO
255
148
 
256
- <dd class="description">
149
+ <dd>
257
150
 
258
151
 
259
152
  <dt id="NOTE_TO_LENGTH">NOTE_TO_LENGTH
260
153
 
261
- <dd class="description">
154
+ <dd>
262
155
 
263
156
 
264
157
  <dt id="UNNAMED">UNNAMED
265
158
 
266
- <dd class="description">
159
+ <dd>
267
160
 
268
161
 
269
162
  </dl>
@@ -271,9 +164,10 @@ href="Track.html">MIDI::Track</a> objects.</p>
271
164
 
272
165
 
273
166
 
274
- <!-- Attributes -->
275
- <section id="attribute-method-details" class="method-section section">
276
- <h3 class="section-header">Attributes</h3>
167
+ <section class="attribute-method-details" class="method-section">
168
+ <header>
169
+ <h3>Attributes</h3>
170
+ </header>
277
171
 
278
172
 
279
173
  <div id="attribute-i-clocks" class="method-detail">
@@ -397,13 +291,14 @@ change this at any time.</p>
397
291
  </div>
398
292
  </div>
399
293
 
400
- </section><!-- attribute-method-details -->
294
+ </section>
401
295
 
402
296
 
403
- <!-- Methods -->
404
297
 
405
- <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
406
- <h3 class="section-header">Public Class Methods</h3>
298
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
299
+ <header>
300
+ <h3>Public Class Methods</h3>
301
+ </header>
407
302
 
408
303
 
409
304
  <div id="method-c-new" class="method-detail ">
@@ -411,7 +306,9 @@ change this at any time.</p>
411
306
  <div class="method-heading">
412
307
  <span class="method-name">new</span><span
413
308
  class="method-args">()</span>
309
+
414
310
  <span class="method-click-advice">click to toggle source</span>
311
+
415
312
  </div>
416
313
 
417
314
 
@@ -419,37 +316,40 @@ change this at any time.</p>
419
316
 
420
317
 
421
318
 
319
+
422
320
 
423
321
 
424
322
  <div class="method-source-code" id="new-source">
425
323
  <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 45</span>
426
324
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>
427
- <span class="ruby-ivar">@tracks</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
428
- <span class="ruby-ivar">@ppqn</span> = <span class="ruby-value">480</span>
325
+ <span class="ruby-ivar">@tracks</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
326
+ <span class="ruby-ivar">@ppqn</span> = <span class="ruby-value">480</span>
429
327
 
430
- <span class="ruby-comment"># Time signature</span>
431
- <span class="ruby-ivar">@numer</span> = <span class="ruby-value">4</span> <span class="ruby-comment"># Numer + denom = 4/4 time default</span>
432
- <span class="ruby-ivar">@denom</span> = <span class="ruby-value">2</span>
433
- <span class="ruby-ivar">@clocks</span> = <span class="ruby-value">24</span> <span class="ruby-comment"># Bug fix Nov 11, 2007 - this is not the same as ppqn!</span>
434
- <span class="ruby-ivar">@qnotes</span> = <span class="ruby-value">8</span>
328
+ <span class="ruby-comment"># Time signature</span>
329
+ <span class="ruby-ivar">@numer</span> = <span class="ruby-value">4</span> <span class="ruby-comment"># Numer + denom = 4/4 time default</span>
330
+ <span class="ruby-ivar">@denom</span> = <span class="ruby-value">2</span>
331
+ <span class="ruby-ivar">@clocks</span> = <span class="ruby-value">24</span> <span class="ruby-comment"># Bug fix Nov 11, 2007 - this is not the same as ppqn!</span>
332
+ <span class="ruby-ivar">@qnotes</span> = <span class="ruby-value">8</span>
435
333
 
436
- <span class="ruby-ivar">@reader_class</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-constant">SeqReader</span>
437
- <span class="ruby-ivar">@writer_class</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-constant">SeqWriter</span>
334
+ <span class="ruby-ivar">@reader_class</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-constant">SeqReader</span>
335
+ <span class="ruby-ivar">@writer_class</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-constant">SeqWriter</span>
438
336
  <span class="ruby-keyword">end</span></pre>
439
- </div><!-- new-source -->
337
+ </div>
440
338
 
441
339
  </div>
442
340
 
443
341
 
444
342
 
445
343
 
446
- </div><!-- new-method -->
344
+ </div>
447
345
 
448
346
 
449
- </section><!-- public-class-method-details -->
347
+ </section>
450
348
 
451
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
452
- <h3 class="section-header">Public Instance Methods</h3>
349
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
350
+ <header>
351
+ <h3>Public Instance Methods</h3>
352
+ </header>
453
353
 
454
354
 
455
355
  <div id="method-i-beats_per_minute" class="method-detail ">
@@ -457,7 +357,9 @@ change this at any time.</p>
457
357
  <div class="method-heading">
458
358
  <span class="method-name">beats_per_minute</span><span
459
359
  class="method-args">()</span>
360
+
460
361
  <span class="method-click-advice">click to toggle source</span>
362
+
461
363
  </div>
462
364
 
463
365
 
@@ -465,18 +367,17 @@ change this at any time.</p>
465
367
 
466
368
  <p>Returns the song tempo in beats per minute.</p>
467
369
 
370
+
468
371
 
469
372
 
470
373
  <div class="method-source-code" id="beats_per_minute-source">
471
374
  <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 68</span>
472
375
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">beats_per_minute</span>
473
- <span class="ruby-keyword">return</span> <span class="ruby-constant">DEFAULT_TEMPO</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">empty?</span>
474
- <span class="ruby-identifier">event</span> = <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">events</span>.<span class="ruby-identifier">detect</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> <span class="ruby-operator">|</span>
475
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">Tempo</span>)
476
- }
477
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">event</span> <span class="ruby-operator">?</span> (<span class="ruby-constant">Tempo</span>.<span class="ruby-identifier">mpq_to_bpm</span>(<span class="ruby-identifier">event</span>.<span class="ruby-identifier">tempo</span>)) <span class="ruby-operator">:</span> <span class="ruby-constant">DEFAULT_TEMPO</span>
376
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">DEFAULT_TEMPO</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">empty?</span>
377
+ <span class="ruby-identifier">event</span> = <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">events</span>.<span class="ruby-identifier">detect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">Tempo</span>) }
378
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">event</span> <span class="ruby-operator">?</span> (<span class="ruby-constant">Tempo</span>.<span class="ruby-identifier">mpq_to_bpm</span>(<span class="ruby-identifier">event</span>.<span class="ruby-identifier">tempo</span>)) <span class="ruby-operator">:</span> <span class="ruby-constant">DEFAULT_TEMPO</span>
478
379
  <span class="ruby-keyword">end</span></pre>
479
- </div><!-- beats_per_minute-source -->
380
+ </div>
480
381
 
481
382
  </div>
482
383
 
@@ -487,7 +388,7 @@ change this at any time.</p>
487
388
 
488
389
 
489
390
 
490
- </div><!-- beats_per_minute-method -->
391
+ </div>
491
392
 
492
393
 
493
394
  <div id="method-i-bpm" class="method-detail method-alias">
@@ -495,7 +396,7 @@ change this at any time.</p>
495
396
  <div class="method-heading">
496
397
  <span class="method-name">bpm</span><span
497
398
  class="method-args">()</span>
498
- <span class="method-click-advice">click to toggle source</span>
399
+
499
400
  </div>
500
401
 
501
402
 
@@ -503,6 +404,7 @@ change this at any time.</p>
503
404
 
504
405
 
505
406
 
407
+
506
408
 
507
409
 
508
410
  </div>
@@ -514,7 +416,7 @@ change this at any time.</p>
514
416
  Alias for: <a href="Sequence.html#method-i-beats_per_minute">beats_per_minute</a>
515
417
  </div>
516
418
 
517
- </div><!-- bpm-method -->
419
+ </div>
518
420
 
519
421
 
520
422
  <div id="method-i-each" class="method-detail ">
@@ -522,7 +424,9 @@ change this at any time.</p>
522
424
  <div class="method-heading">
523
425
  <span class="method-name">each</span><span
524
426
  class="method-args">() { |track| ... }</span>
427
+
525
428
  <span class="method-click-advice">click to toggle source</span>
429
+
526
430
  </div>
527
431
 
528
432
 
@@ -530,21 +434,22 @@ change this at any time.</p>
530
434
 
531
435
  <p>Iterates over the tracks.</p>
532
436
 
437
+
533
438
 
534
439
 
535
440
  <div class="method-source-code" id="each-source">
536
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 151</span>
441
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 149</span>
537
442
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">each</span> <span class="ruby-comment"># :yields: track</span>
538
- <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span> <span class="ruby-identifier">track</span> <span class="ruby-operator">|</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">track</span> }
443
+ <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">track</span><span class="ruby-operator">|</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">track</span> }
539
444
  <span class="ruby-keyword">end</span></pre>
540
- </div><!-- each-source -->
445
+ </div>
541
446
 
542
447
  </div>
543
448
 
544
449
 
545
450
 
546
451
 
547
- </div><!-- each-method -->
452
+ </div>
548
453
 
549
454
 
550
455
  <div id="method-i-get_measures" class="method-detail ">
@@ -552,7 +457,9 @@ change this at any time.</p>
552
457
  <div class="method-heading">
553
458
  <span class="method-name">get_measures</span><span
554
459
  class="method-args">()</span>
460
+
555
461
  <span class="method-click-advice">click to toggle source</span>
462
+
556
463
  </div>
557
464
 
558
465
 
@@ -561,57 +468,58 @@ change this at any time.</p>
561
468
  <p>Returns a <a href="Measures.html">Measures</a> object, which is an array
562
469
  container for all measures in the sequence</p>
563
470
 
471
+
564
472
 
565
473
 
566
474
  <div class="method-source-code" id="get_measures-source">
567
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 157</span>
568
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_measures</span>
569
- <span class="ruby-comment"># Collect time sig events and scan for last event time</span>
570
- <span class="ruby-identifier">time_sigs</span> = []
571
- <span class="ruby-identifier">max_pos</span> = <span class="ruby-value">0</span>
572
- <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
573
- <span class="ruby-identifier">t</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
574
- <span class="ruby-identifier">time_sigs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">TimeSig</span>)
575
- <span class="ruby-identifier">max_pos</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">max_pos</span>
576
- }
577
- }
578
- <span class="ruby-identifier">time_sigs</span>.<span class="ruby-identifier">sort</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">y</span>.<span class="ruby-identifier">time_from_start</span> }
579
-
580
- <span class="ruby-comment"># Add a &quot;fake&quot; time sig event at the very last position of the sequence,</span>
581
- <span class="ruby-comment"># just to make sure the whole sequence is calculated.</span>
582
- <span class="ruby-identifier">t</span> = <span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">TimeSig</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">4</span>, <span class="ruby-value">2</span>, <span class="ruby-value">24</span>, <span class="ruby-value">8</span>, <span class="ruby-value">0</span>)
583
- <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time_from_start</span> = <span class="ruby-identifier">max_pos</span>
584
- <span class="ruby-identifier">time_sigs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">t</span>
585
-
586
- <span class="ruby-comment"># Default to 4/4</span>
587
- <span class="ruby-identifier">measure_length</span> = <span class="ruby-ivar">@ppqn</span> * <span class="ruby-value">4</span>
588
- <span class="ruby-identifier">oldnumer</span>, <span class="ruby-identifier">olddenom</span>, <span class="ruby-identifier">oldbeats</span> = <span class="ruby-value">4</span>, <span class="ruby-value">2</span>, <span class="ruby-value">24</span>
589
-
590
- <span class="ruby-identifier">measures</span> = <span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">Measures</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">max_pos</span>, <span class="ruby-ivar">@ppqn</span>)
591
- <span class="ruby-identifier">curr_pos</span> = <span class="ruby-value">0</span>
592
- <span class="ruby-identifier">curr_meas_no</span> = <span class="ruby-value">1</span>
593
- <span class="ruby-identifier">time_sigs</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">te</span><span class="ruby-operator">|</span>
594
- <span class="ruby-identifier">meas_count</span> = (<span class="ruby-identifier">te</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">curr_pos</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">measure_length</span>
595
- <span class="ruby-identifier">meas_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">te</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">curr_pos</span>) <span class="ruby-operator">%</span> <span class="ruby-identifier">measure_length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
596
- <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">meas_count</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
597
- <span class="ruby-identifier">measures</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">Measure</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">curr_meas_no</span>,
598
- <span class="ruby-identifier">curr_pos</span>, <span class="ruby-identifier">measure_length</span>, <span class="ruby-identifier">oldnumer</span>, <span class="ruby-identifier">olddenom</span>, <span class="ruby-identifier">oldbeats</span>)
599
- <span class="ruby-identifier">curr_meas_no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
600
- <span class="ruby-identifier">curr_pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">measure_length</span>
601
- }
602
- <span class="ruby-identifier">oldnumer</span>, <span class="ruby-identifier">olddenom</span>, <span class="ruby-identifier">oldbeats</span> = <span class="ruby-identifier">te</span>.<span class="ruby-identifier">numerator</span>, <span class="ruby-identifier">te</span>.<span class="ruby-identifier">denominator</span>, <span class="ruby-identifier">te</span>.<span class="ruby-identifier">metronome_ticks</span>
603
- <span class="ruby-identifier">measure_length</span> = <span class="ruby-identifier">te</span>.<span class="ruby-identifier">measure_duration</span>(<span class="ruby-ivar">@ppqn</span>)
604
- }
605
- <span class="ruby-identifier">measures</span>
475
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 155</span>
476
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_measures</span>
477
+ <span class="ruby-comment"># Collect time sig events and scan for last event time</span>
478
+ <span class="ruby-identifier">time_sigs</span> = []
479
+ <span class="ruby-identifier">max_pos</span> = <span class="ruby-value">0</span>
480
+ <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
481
+ <span class="ruby-identifier">t</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
482
+ <span class="ruby-identifier">time_sigs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">TimeSig</span>)
483
+ <span class="ruby-identifier">max_pos</span> = <span class="ruby-identifier">e</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">max_pos</span>
484
+ <span class="ruby-keyword">end</span>
485
+ <span class="ruby-keyword">end</span>
486
+ <span class="ruby-identifier">time_sigs</span>.<span class="ruby-identifier">sort</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">y</span>.<span class="ruby-identifier">time_from_start</span> }
487
+
488
+ <span class="ruby-comment"># Add a &quot;fake&quot; time sig event at the very last position of the sequence,</span>
489
+ <span class="ruby-comment"># just to make sure the whole sequence is calculated.</span>
490
+ <span class="ruby-identifier">t</span> = <span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">TimeSig</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">4</span>, <span class="ruby-value">2</span>, <span class="ruby-value">24</span>, <span class="ruby-value">8</span>, <span class="ruby-value">0</span>)
491
+ <span class="ruby-identifier">t</span>.<span class="ruby-identifier">time_from_start</span> = <span class="ruby-identifier">max_pos</span>
492
+ <span class="ruby-identifier">time_sigs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">t</span>
493
+
494
+ <span class="ruby-comment"># Default to 4/4</span>
495
+ <span class="ruby-identifier">measure_length</span> = <span class="ruby-ivar">@ppqn</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span>
496
+ <span class="ruby-identifier">oldnumer</span>, <span class="ruby-identifier">olddenom</span>, <span class="ruby-identifier">oldbeats</span> = <span class="ruby-value">4</span>, <span class="ruby-value">2</span>, <span class="ruby-value">24</span>
497
+
498
+ <span class="ruby-identifier">measures</span> = <span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">Measures</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">max_pos</span>, <span class="ruby-ivar">@ppqn</span>)
499
+ <span class="ruby-identifier">curr_pos</span> = <span class="ruby-value">0</span>
500
+ <span class="ruby-identifier">curr_meas_no</span> = <span class="ruby-value">1</span>
501
+ <span class="ruby-identifier">time_sigs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">te</span><span class="ruby-operator">|</span>
502
+ <span class="ruby-identifier">meas_count</span> = (<span class="ruby-identifier">te</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">curr_pos</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">measure_length</span>
503
+ <span class="ruby-identifier">meas_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword">if</span> (<span class="ruby-identifier">te</span>.<span class="ruby-identifier">time_from_start</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">curr_pos</span>) <span class="ruby-operator">%</span> <span class="ruby-identifier">measure_length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
504
+ <span class="ruby-value">1</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-identifier">meas_count</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
505
+ <span class="ruby-identifier">measures</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">MIDI</span><span class="ruby-operator">::</span><span class="ruby-constant">Measure</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">curr_meas_no</span>, <span class="ruby-identifier">curr_pos</span>, <span class="ruby-identifier">measure_length</span>,
506
+ <span class="ruby-identifier">oldnumer</span>, <span class="ruby-identifier">olddenom</span>, <span class="ruby-identifier">oldbeats</span>)
507
+ <span class="ruby-identifier">curr_meas_no</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
508
+ <span class="ruby-identifier">curr_pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">measure_length</span>
509
+ <span class="ruby-keyword">end</span>
510
+ <span class="ruby-identifier">oldnumer</span>, <span class="ruby-identifier">olddenom</span>, <span class="ruby-identifier">oldbeats</span> = <span class="ruby-identifier">te</span>.<span class="ruby-identifier">numerator</span>, <span class="ruby-identifier">te</span>.<span class="ruby-identifier">denominator</span>, <span class="ruby-identifier">te</span>.<span class="ruby-identifier">metronome_ticks</span>
511
+ <span class="ruby-identifier">measure_length</span> = <span class="ruby-identifier">te</span>.<span class="ruby-identifier">measure_duration</span>(<span class="ruby-ivar">@ppqn</span>)
512
+ <span class="ruby-keyword">end</span>
513
+ <span class="ruby-identifier">measures</span>
606
514
  <span class="ruby-keyword">end</span></pre>
607
- </div><!-- get_measures-source -->
515
+ </div>
608
516
 
609
517
  </div>
610
518
 
611
519
 
612
520
 
613
521
 
614
- </div><!-- get_measures-method -->
522
+ </div>
615
523
 
616
524
 
617
525
  <div id="method-i-length_to_delta" class="method-detail ">
@@ -619,7 +527,9 @@ container for all measures in the sequence</p>
619
527
  <div class="method-heading">
620
528
  <span class="method-name">length_to_delta</span><span
621
529
  class="method-args">(length)</span>
530
+
622
531
  <span class="method-click-advice">click to toggle source</span>
532
+
623
533
  </div>
624
534
 
625
535
 
@@ -634,21 +544,22 @@ integer mathematics and rounding. Use floating-point numbers like 1.0 and
634
544
  <p>See also <a href="Sequence.html#method-i-note_to_delta">#note_to_delta</a>
635
545
  and note_to_length.</p>
636
546
 
547
+
637
548
 
638
549
 
639
550
  <div class="method-source-code" id="length_to_delta-source">
640
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 121</span>
551
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 119</span>
641
552
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">length_to_delta</span>(<span class="ruby-identifier">length</span>)
642
- <span class="ruby-keyword">return</span> (<span class="ruby-ivar">@ppqn</span> * <span class="ruby-identifier">length</span>).<span class="ruby-identifier">to_i</span>
553
+ <span class="ruby-keyword">return</span> (<span class="ruby-ivar">@ppqn</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">length</span>).<span class="ruby-identifier">to_i</span>
643
554
  <span class="ruby-keyword">end</span></pre>
644
- </div><!-- length_to_delta-source -->
555
+ </div>
645
556
 
646
557
  </div>
647
558
 
648
559
 
649
560
 
650
561
 
651
- </div><!-- length_to_delta-method -->
562
+ </div>
652
563
 
653
564
 
654
565
  <div id="method-i-name" class="method-detail ">
@@ -656,7 +567,9 @@ and note_to_length.</p>
656
567
  <div class="method-heading">
657
568
  <span class="method-name">name</span><span
658
569
  class="method-args">()</span>
570
+
659
571
  <span class="method-click-advice">click to toggle source</span>
572
+
660
573
  </div>
661
574
 
662
575
 
@@ -665,22 +578,23 @@ and note_to_length.</p>
665
578
  <p>Returns the name of the first track (track zero). If there are no tracks,
666
579
  returns <a href="Sequence.html#UNNAMED">UNNAMED</a>.</p>
667
580
 
581
+
668
582
 
669
583
 
670
584
  <div class="method-source-code" id="name-source">
671
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 127</span>
585
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 125</span>
672
586
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">name</span>
673
- <span class="ruby-keyword">return</span> <span class="ruby-constant">UNNAMED</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">empty?</span>
674
- <span class="ruby-keyword">return</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">name</span>()
587
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">UNNAMED</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">empty?</span>
588
+ <span class="ruby-keyword">return</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">name</span>()
675
589
  <span class="ruby-keyword">end</span></pre>
676
- </div><!-- name-source -->
590
+ </div>
677
591
 
678
592
  </div>
679
593
 
680
594
 
681
595
 
682
596
 
683
- </div><!-- name-method -->
597
+ </div>
684
598
 
685
599
 
686
600
  <div id="method-i-name-3D" class="method-detail ">
@@ -688,7 +602,9 @@ returns <a href="Sequence.html#UNNAMED">UNNAMED</a>.</p>
688
602
  <div class="method-heading">
689
603
  <span class="method-name">name=</span><span
690
604
  class="method-args">(name)</span>
605
+
691
606
  <span class="method-click-advice">click to toggle source</span>
607
+
692
608
  </div>
693
609
 
694
610
 
@@ -696,22 +612,23 @@ returns <a href="Sequence.html#UNNAMED">UNNAMED</a>.</p>
696
612
 
697
613
  <p>Hands the name to the first track. Does nothing if there are no tracks.</p>
698
614
 
615
+
699
616
 
700
617
 
701
618
  <div class="method-source-code" id="name-3D-source">
702
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 133</span>
619
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 131</span>
703
620
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">name=</span>(<span class="ruby-identifier">name</span>)
704
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">empty?</span>
705
- <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>
621
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">empty?</span>
622
+ <span class="ruby-ivar">@tracks</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>
706
623
  <span class="ruby-keyword">end</span></pre>
707
- </div><!-- name-3D-source -->
624
+ </div>
708
625
 
709
626
  </div>
710
627
 
711
628
 
712
629
 
713
630
 
714
- </div><!-- name-3D-method -->
631
+ </div>
715
632
 
716
633
 
717
634
  <div id="method-i-note_to_delta" class="method-detail ">
@@ -719,30 +636,33 @@ returns <a href="Sequence.html#UNNAMED">UNNAMED</a>.</p>
719
636
  <div class="method-heading">
720
637
  <span class="method-name">note_to_delta</span><span
721
638
  class="method-args">(name)</span>
639
+
722
640
  <span class="method-click-advice">click to toggle source</span>
641
+
723
642
  </div>
724
643
 
725
644
 
726
645
  <div class="method-description">
727
646
 
728
- <p>Given a note length name like "whole", "dotted quarter", or "8th triplet",
647
+ <p>Given a note length name like whole”, dotted quarter”, or 8th triplet”,
729
648
  return the length of that note in quarter notes as a delta time.</p>
730
649
 
650
+
731
651
 
732
652
 
733
653
  <div class="method-source-code" id="note_to_delta-source">
734
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 88</span>
654
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 86</span>
735
655
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">note_to_delta</span>(<span class="ruby-identifier">name</span>)
736
656
  <span class="ruby-keyword">return</span> <span class="ruby-identifier">length_to_delta</span>(<span class="ruby-identifier">note_to_length</span>(<span class="ruby-identifier">name</span>))
737
657
  <span class="ruby-keyword">end</span></pre>
738
- </div><!-- note_to_delta-source -->
658
+ </div>
739
659
 
740
660
  </div>
741
661
 
742
662
 
743
663
 
744
664
 
745
- </div><!-- note_to_delta-method -->
665
+ </div>
746
666
 
747
667
 
748
668
  <div id="method-i-note_to_length" class="method-detail ">
@@ -750,29 +670,32 @@ return the length of that note in quarter notes as a delta time.</p>
750
670
  <div class="method-heading">
751
671
  <span class="method-name">note_to_length</span><span
752
672
  class="method-args">(name)</span>
673
+
753
674
  <span class="method-click-advice">click to toggle source</span>
675
+
754
676
  </div>
755
677
 
756
678
 
757
679
  <div class="method-description">
758
680
 
759
- <p>Given a note length name like "whole", "dotted quarter", or "8th triplet",
681
+ <p>Given a note length name like whole”, dotted quarter”, or 8th triplet”,
760
682
  return the length of that note in quarter notes as a floating-point number,
761
683
  suitable for use as an argument to length_to_delta.</p>
762
684
 
763
685
  <p>Legal names are any value in <a
764
686
  href="Sequence.html#NOTE_TO_LENGTH">NOTE_TO_LENGTH</a>, optionally prefixed
765
- by "dotted_" and/or suffixed by "_triplet". So, for example,
766
- "dotted_quarter_triplet" returns the length of a dotted quarter-note
767
- triplet and "32nd" returns 1/32.</p>
687
+ by dotted_ and/or suffixed by _triplet”. So, for example,
688
+ dotted_quarter_triplet returns the length of a dotted quarter-note
689
+ triplet and 32nd returns 1/32.</p>
690
+
768
691
 
769
692
 
770
693
 
771
694
  <div class="method-source-code" id="note_to_length-source">
772
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 101</span>
695
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 99</span>
773
696
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">note_to_length</span>(<span class="ruby-identifier">name</span>)
774
697
  <span class="ruby-identifier">name</span>.<span class="ruby-identifier">strip!</span>
775
- <span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%r^(dotted)?(.*?)(triplet)?$/</span>
698
+ <span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^(dotted)?(.*?)(triplet)?$/</span>
776
699
  <span class="ruby-identifier">dotted</span>, <span class="ruby-identifier">note_name</span>, <span class="ruby-identifier">triplet</span> = <span class="ruby-node">$1</span>, <span class="ruby-node">$2</span>, <span class="ruby-node">$3</span>
777
700
  <span class="ruby-identifier">note_name</span>.<span class="ruby-identifier">strip!</span>
778
701
  <span class="ruby-identifier">mult</span> = <span class="ruby-value">1.0</span>
@@ -780,16 +703,16 @@ triplet and "32nd" returns 1/32.</p>
780
703
  <span class="ruby-identifier">mult</span> <span class="ruby-operator">/=</span> <span class="ruby-value">3.0</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">triplet</span>
781
704
  <span class="ruby-identifier">len</span> = <span class="ruby-constant">NOTE_TO_LENGTH</span>[<span class="ruby-identifier">note_name</span>]
782
705
  <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Sequence.note_to_length: \&quot;#{note_name}\&quot; not understood in \&quot;#{name}\&quot;&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">len</span>
783
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">len</span> * <span class="ruby-identifier">mult</span>
706
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">len</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">mult</span>
784
707
  <span class="ruby-keyword">end</span></pre>
785
- </div><!-- note_to_length-source -->
708
+ </div>
786
709
 
787
710
  </div>
788
711
 
789
712
 
790
713
 
791
714
 
792
- </div><!-- note_to_length-method -->
715
+ </div>
793
716
 
794
717
 
795
718
  <div id="method-i-pulses_to_seconds" class="method-detail ">
@@ -797,7 +720,9 @@ triplet and "32nd" returns 1/32.</p>
797
720
  <div class="method-heading">
798
721
  <span class="method-name">pulses_to_seconds</span><span
799
722
  class="method-args">(pulses)</span>
723
+
800
724
  <span class="method-click-advice">click to toggle source</span>
725
+
801
726
  </div>
802
727
 
803
728
 
@@ -807,21 +732,22 @@ triplet and "32nd" returns 1/32.</p>
807
732
  time_from_start values. This method converts a number of pulses to a float
808
733
  value that is a time in seconds.</p>
809
734
 
735
+
810
736
 
811
737
 
812
738
  <div class="method-source-code" id="pulses_to_seconds-source">
813
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 81</span>
739
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 79</span>
814
740
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">pulses_to_seconds</span>(<span class="ruby-identifier">pulses</span>)
815
- (<span class="ruby-identifier">pulses</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@ppqn</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">beats_per_minute</span>()) * <span class="ruby-value">60.0</span>
741
+ (<span class="ruby-identifier">pulses</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@ppqn</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">beats_per_minute</span>()) <span class="ruby-operator">*</span> <span class="ruby-value">60.0</span>
816
742
  <span class="ruby-keyword">end</span></pre>
817
- </div><!-- pulses_to_seconds-source -->
743
+ </div>
818
744
 
819
745
  </div>
820
746
 
821
747
 
822
748
 
823
749
 
824
- </div><!-- pulses_to_seconds-method -->
750
+ </div>
825
751
 
826
752
 
827
753
  <div id="method-i-read" class="method-detail ">
@@ -829,7 +755,9 @@ value that is a time in seconds.</p>
829
755
  <div class="method-heading">
830
756
  <span class="method-name">read</span><span
831
757
  class="method-args">(io, proc = nil) { |track, num_tracks, index| ... }</span>
758
+
832
759
  <span class="method-click-advice">click to toggle source</span>
760
+
833
761
  </div>
834
762
 
835
763
 
@@ -837,22 +765,23 @@ value that is a time in seconds.</p>
837
765
 
838
766
  <p>Reads a <a href="MIDI.html">MIDI</a> stream.</p>
839
767
 
768
+
840
769
 
841
770
 
842
771
  <div class="method-source-code" id="read-source">
843
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 139</span>
772
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 137</span>
844
773
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">io</span>, <span class="ruby-identifier">proc</span> = <span class="ruby-keyword">nil</span>) <span class="ruby-comment"># :yields: track, num_tracks, index</span>
845
- <span class="ruby-identifier">reader</span> = <span class="ruby-ivar">@reader_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-identifier">block_given?</span>() <span class="ruby-operator">?</span> <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span>() <span class="ruby-operator">:</span> <span class="ruby-identifier">proc</span>)
846
- <span class="ruby-identifier">reader</span>.<span class="ruby-identifier">read_from</span>(<span class="ruby-identifier">io</span>)
774
+ <span class="ruby-identifier">reader</span> = <span class="ruby-ivar">@reader_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-identifier">block_given?</span>() <span class="ruby-operator">?</span> <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span>() <span class="ruby-operator">:</span> <span class="ruby-identifier">proc</span>)
775
+ <span class="ruby-identifier">reader</span>.<span class="ruby-identifier">read_from</span>(<span class="ruby-identifier">io</span>)
847
776
  <span class="ruby-keyword">end</span></pre>
848
- </div><!-- read-source -->
777
+ </div>
849
778
 
850
779
  </div>
851
780
 
852
781
 
853
782
 
854
783
 
855
- </div><!-- read-method -->
784
+ </div>
856
785
 
857
786
 
858
787
  <div id="method-i-tempo" class="method-detail method-alias">
@@ -860,7 +789,7 @@ value that is a time in seconds.</p>
860
789
  <div class="method-heading">
861
790
  <span class="method-name">tempo</span><span
862
791
  class="method-args">()</span>
863
- <span class="method-click-advice">click to toggle source</span>
792
+
864
793
  </div>
865
794
 
866
795
 
@@ -868,6 +797,7 @@ value that is a time in seconds.</p>
868
797
 
869
798
 
870
799
 
800
+
871
801
 
872
802
 
873
803
  </div>
@@ -879,7 +809,7 @@ value that is a time in seconds.</p>
879
809
  Alias for: <a href="Sequence.html#method-i-beats_per_minute">beats_per_minute</a>
880
810
  </div>
881
811
 
882
- </div><!-- tempo-method -->
812
+ </div>
883
813
 
884
814
 
885
815
  <div id="method-i-time_signature" class="method-detail ">
@@ -887,7 +817,9 @@ value that is a time in seconds.</p>
887
817
  <div class="method-heading">
888
818
  <span class="method-name">time_signature</span><span
889
819
  class="method-args">(numer, denom, clocks, qnotes)</span>
820
+
890
821
  <span class="method-click-advice">click to toggle source</span>
822
+
891
823
  </div>
892
824
 
893
825
 
@@ -895,24 +827,25 @@ value that is a time in seconds.</p>
895
827
 
896
828
  <p>Sets the time signature.</p>
897
829
 
830
+
898
831
 
899
832
 
900
833
  <div class="method-source-code" id="time_signature-source">
901
834
  <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 60</span>
902
835
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">time_signature</span>(<span class="ruby-identifier">numer</span>, <span class="ruby-identifier">denom</span>, <span class="ruby-identifier">clocks</span>, <span class="ruby-identifier">qnotes</span>)
903
- <span class="ruby-ivar">@numer</span> = <span class="ruby-identifier">numer</span>
904
- <span class="ruby-ivar">@denom</span> = <span class="ruby-identifier">denom</span>
905
- <span class="ruby-ivar">@clocks</span> = <span class="ruby-identifier">clocks</span>
906
- <span class="ruby-ivar">@qnotes</span> = <span class="ruby-identifier">qnotes</span>
836
+ <span class="ruby-ivar">@numer</span> = <span class="ruby-identifier">numer</span>
837
+ <span class="ruby-ivar">@denom</span> = <span class="ruby-identifier">denom</span>
838
+ <span class="ruby-ivar">@clocks</span> = <span class="ruby-identifier">clocks</span>
839
+ <span class="ruby-ivar">@qnotes</span> = <span class="ruby-identifier">qnotes</span>
907
840
  <span class="ruby-keyword">end</span></pre>
908
- </div><!-- time_signature-source -->
841
+ </div>
909
842
 
910
843
  </div>
911
844
 
912
845
 
913
846
 
914
847
 
915
- </div><!-- time_signature-method -->
848
+ </div>
916
849
 
917
850
 
918
851
  <div id="method-i-write" class="method-detail ">
@@ -920,7 +853,9 @@ value that is a time in seconds.</p>
920
853
  <div class="method-heading">
921
854
  <span class="method-name">write</span><span
922
855
  class="method-args">(io, proc = nil) { |track, num_tracks, index| ... }</span>
856
+
923
857
  <span class="method-click-advice">click to toggle source</span>
858
+
924
859
  </div>
925
860
 
926
861
 
@@ -928,34 +863,34 @@ value that is a time in seconds.</p>
928
863
 
929
864
  <p>Writes to a <a href="MIDI.html">MIDI</a> stream.</p>
930
865
 
866
+
931
867
 
932
868
 
933
869
  <div class="method-source-code" id="write-source">
934
- <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 145</span>
870
+ <pre><span class="ruby-comment"># File lib/midilib/sequence.rb, line 143</span>
935
871
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">io</span>, <span class="ruby-identifier">proc</span> = <span class="ruby-keyword">nil</span>) <span class="ruby-comment"># :yields: track, num_tracks, index</span>
936
- <span class="ruby-identifier">writer</span> = <span class="ruby-ivar">@writer_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-identifier">block_given?</span>() <span class="ruby-operator">?</span> <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span>() <span class="ruby-operator">:</span> <span class="ruby-identifier">proc</span>)
937
- <span class="ruby-identifier">writer</span>.<span class="ruby-identifier">write_to</span>(<span class="ruby-identifier">io</span>)
872
+ <span class="ruby-identifier">writer</span> = <span class="ruby-ivar">@writer_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>, <span class="ruby-identifier">block_given?</span>() <span class="ruby-operator">?</span> <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span>() <span class="ruby-operator">:</span> <span class="ruby-identifier">proc</span>)
873
+ <span class="ruby-identifier">writer</span>.<span class="ruby-identifier">write_to</span>(<span class="ruby-identifier">io</span>)
938
874
  <span class="ruby-keyword">end</span></pre>
939
- </div><!-- write-source -->
875
+ </div>
940
876
 
941
877
  </div>
942
878
 
943
879
 
944
880
 
945
881
 
946
- </div><!-- write-method -->
882
+ </div>
947
883
 
948
884
 
949
- </section><!-- public-instance-method-details -->
885
+ </section>
950
886
 
951
- </section><!-- 5Buntitled-5D -->
952
-
953
- </div><!-- documentation -->
887
+ </section>
888
+ </main>
954
889
 
955
890
 
956
- <footer id="validator-badges">
957
- <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
958
- <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
959
- <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
891
+ <footer id="validator-badges" role="contentinfo">
892
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
893
+ <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
894
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
960
895
  </footer>
961
896