smf 0.15.12

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 (68) hide show
  1. data/MANUAL +172 -0
  2. data/MANUAL.en +135 -0
  3. data/MANUAL.en.html +150 -0
  4. data/MANUAL.en.rd +144 -0
  5. data/MANUAL.html +201 -0
  6. data/MANUAL.rd +179 -0
  7. data/README +33 -0
  8. data/README.en +33 -0
  9. data/lib/smf.rb +736 -0
  10. data/lib/smf/divert.rb +21 -0
  11. data/lib/smf/io.rb +1278 -0
  12. data/lib/smf/toy/beatmap.rb +73 -0
  13. data/lib/smf/toy/gm.rb +327 -0
  14. data/lib/smf/toy/groove.rb +34 -0
  15. data/lib/smf/toy/macro.rb +282 -0
  16. data/lib/smf/toy/macro/mml.rb +34 -0
  17. data/lib/smf/toy/macro/mml/parser.rb +545 -0
  18. data/lib/smf/toy/macro/mml/parser.ry +239 -0
  19. data/lib/smf/toy/macro/stt.rb +33 -0
  20. data/lib/smf/toy/morse.rb +126 -0
  21. data/lib/smf/toy/quantize.rb +32 -0
  22. data/lib/smf/toy/rmi.rb +29 -0
  23. data/lib/smf/toy/searchsegment.rb +24 -0
  24. data/lib/smf/toy/shuffle.rb +39 -0
  25. data/lib/smf/toy/tempomap.rb +75 -0
  26. data/lib/smf/toy/text.rb +369 -0
  27. data/lib/smf/toy/velcomp.rb +42 -0
  28. data/lib/smf/toy/virtual.rb +118 -0
  29. data/lib/smf/toy/xml.rb +377 -0
  30. data/sample/Makefile +58 -0
  31. data/sample/bwv772.mid +0 -0
  32. data/sample/bwv772.mml +94 -0
  33. data/sample/bwv775.mid +0 -0
  34. data/sample/bwv775.mml +157 -0
  35. data/sample/bwv787.mid +0 -0
  36. data/sample/bwv787.mml +129 -0
  37. data/sample/groove.grv +33 -0
  38. data/sample/groove.rb +45 -0
  39. data/sample/ltvddpd2.mid +0 -0
  40. data/sample/ltvddpd2.stt +60 -0
  41. data/sample/merge.rb +38 -0
  42. data/sample/mml-samp.rb +19 -0
  43. data/sample/mml.rb +36 -0
  44. data/sample/morse-samp.rb +11 -0
  45. data/sample/morse.rb +31 -0
  46. data/sample/play-oss.rb +215 -0
  47. data/sample/play-oss2.rb +253 -0
  48. data/sample/play-oss3.rb +150 -0
  49. data/sample/play-spkr.rb +97 -0
  50. data/sample/play-win.rb +195 -0
  51. data/sample/quantize.rb +41 -0
  52. data/sample/rand1.rb +21 -0
  53. data/sample/rand2.rb +24 -0
  54. data/sample/rmi2smf.rb +26 -0
  55. data/sample/shuffle.rb +43 -0
  56. data/sample/smf2rmi.rb +26 -0
  57. data/sample/smf2smf.rb +26 -0
  58. data/sample/smf2text.rb +27 -0
  59. data/sample/smf2wav.rb +123 -0
  60. data/sample/smf2xml.rb +27 -0
  61. data/sample/split.rb +40 -0
  62. data/sample/stt-samp.rb +19 -0
  63. data/sample/stt.rb +36 -0
  64. data/sample/text2smf.rb +28 -0
  65. data/sample/velcomp.rb +45 -0
  66. data/sample/virtual-samp.rb +19 -0
  67. data/sample/xml2smf.rb +28 -0
  68. metadata +128 -0
@@ -0,0 +1,144 @@
1
+ =begin
2
+ = SMF module
3
+
4
+ == Classes
5
+
6
+ * Sequence <format, division, tc=nil>
7
+
8
+ * Track
9
+
10
+ * Event <offset>
11
+ * MIDIMessage
12
+ * ChannelMessage <..., ch>
13
+ * VoiceMessage
14
+ * NoteOff <..., note, vel>
15
+ * NoteOn <..., note, vel>
16
+ * PolyphonicKeyPressure <..., note, val>
17
+ * ControlChange <..., num, val>
18
+ * ProgramChange <..., num>
19
+ * ChannelPressure <..., val>
20
+ * PitchBendChange <..., val>
21
+ * ChannelModeMessage
22
+ * AllSoundOff <..., ch>
23
+ * ResetAllControllers <..., ch>
24
+ * LocalControl <..., ch, val>
25
+ * AllNotesOff <..., ch>
26
+ * OmniOff <..., ch>
27
+ * OmniOn <..., ch>
28
+ * MonoMode <..., ch, val>
29
+ * PolyMode <..., ch>
30
+
31
+ * SystemMessage
32
+ * ExclusiveMessage
33
+ * ExclusiveF0 <..., data>
34
+ * ExclusiveF7 <..., data>
35
+
36
+ * Meta
37
+ * SequenceNumber <..., num>
38
+ * Text <..., text>
39
+ * GeneralPurposeText (Text01)
40
+ * CopyrightNotice (Text02)
41
+ * TrackName (SequenceName, Text03)
42
+ * InstrumentName (Text04)
43
+ * Lyric (Display, Text05)
44
+ * Marker (Text06)
45
+ * CuePoint (Text07)
46
+ * ProgramName (Text08)
47
+ * DeviceName (Text09)
48
+ * Text0A
49
+ * Text0B
50
+ * Text0C
51
+ * Text0D
52
+ * Text0E
53
+ * Text0F
54
+ * ChannelPrefix <..., ch>
55
+ * MIDIPort <..., num> (not in RP-001)
56
+ * EndOfTrack
57
+ * SetTempo <..., tempo>
58
+ * SMPTEOffset <..., hr, mn, se, fr, ff, tc>
59
+ * TimeSignature <..., nn, dd, cc, bb>
60
+ * KeySignature <..., sf, mi>
61
+ * SequencerSpecific <..., data>
62
+
63
+ == Sequence
64
+
65
+ === Super Class
66
+
67
+ Object
68
+
69
+ === Included Modules
70
+
71
+ Enumerable
72
+
73
+ === Class Methods
74
+
75
+ : decode(str)
76
+ : read(io)
77
+ : load(fn)
78
+
79
+ : new([format=1[, division=96[,tc=nil]]])
80
+
81
+ The three methods decode(), read() and load() replace NoteOn with NoteOff
82
+ when its velocity is zero.
83
+
84
+ === Accessors
85
+
86
+ : format
87
+ : division
88
+ : tc
89
+
90
+ === Methods
91
+
92
+ This nearly have all methods of array object.
93
+ In addition, this also have the following methods.
94
+
95
+ : ntrks
96
+ : self >> tr
97
+ : each{|tr| ...}
98
+ : join!
99
+ : encode
100
+ : write(io)
101
+ : save(fn)
102
+
103
+ The iterator each{} ignores all nil elements.
104
+
105
+ == Track
106
+
107
+ === Super Class
108
+
109
+ Object
110
+
111
+ === Included Modules
112
+
113
+ Enumerable
114
+
115
+ === Class Methods
116
+
117
+ : new
118
+
119
+ === Methods
120
+
121
+ This nearly have all methods of array object.
122
+ In addition, this also have the following methods.
123
+
124
+ : nevts
125
+ : self >> ev
126
+ : each{|ev| ...}
127
+
128
+ The iterator each{} ignores all nil elements and sorts events (stable).
129
+
130
+ == Event
131
+
132
+ === Super Class
133
+
134
+ Object
135
+
136
+ === Included Modules
137
+
138
+ Comparable
139
+
140
+ === Accessors
141
+
142
+ : offset
143
+
144
+ =end
@@ -0,0 +1,201 @@
1
+ <?xml version="1.0" encoding="iso-2022-jp" ?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
6
+ <head>
7
+ <title>SMF</title>
8
+ <meta http-equiv="Content-type" content="text/html; charset=iso-2022-jp" />
9
+ <link href="default.css" type="text/css" rel="stylesheet" />
10
+ <link href="index.html" rel="index" />
11
+ <link href="mailto:tadf@funaba.org" rev="made" />
12
+ </head>
13
+ <body>
14
+ <h1><a name="label-0" id="label-0">SMF $B%b%8%e!<%k(B</a></h1><!-- RDLabel: "SMF $B%b%8%e!<%k(B" -->
15
+ <h2><a name="label-1" id="label-1">$B%/%i%9(B</a></h2><!-- RDLabel: "$B%/%i%9(B" -->
16
+ <ul>
17
+ <li>Sequence &lt;format, division, tc=nil&gt;</li>
18
+ <li>Track</li>
19
+ <li>Event &lt;offset&gt;
20
+ <ul>
21
+ <li>MIDIMessage
22
+ <ul>
23
+ <li>ChannelMessage &lt;..., ch&gt;
24
+ <ul>
25
+ <li>VoiceMessage
26
+ <ul>
27
+ <li>NoteOff &lt;..., note, vel&gt;</li>
28
+ <li>NoteOn &lt;..., note, vel&gt;</li>
29
+ <li>PolyphonicKeyPressure &lt;..., note, val&gt;</li>
30
+ <li>ControlChange &lt;..., num, val&gt;</li>
31
+ <li>ProgramChange &lt;..., num&gt;</li>
32
+ <li>ChannelPressure &lt;..., val&gt;</li>
33
+ <li>PitchBendChange &lt;..., val&gt;</li>
34
+ </ul></li>
35
+ <li>ChannelModeMessage
36
+ <ul>
37
+ <li>AllSoundOff &lt;..., ch&gt;</li>
38
+ <li>ResetAllControllers &lt;..., ch&gt;</li>
39
+ <li>LocalControl &lt;..., ch, val&gt;</li>
40
+ <li>AllNotesOff &lt;..., ch&gt;</li>
41
+ <li>OmniOff &lt;..., ch&gt;</li>
42
+ <li>OmniOn &lt;..., ch&gt;</li>
43
+ <li>MonoMode &lt;..., ch, val&gt;</li>
44
+ <li>PolyMode &lt;..., ch&gt;</li>
45
+ </ul></li>
46
+ </ul></li>
47
+ </ul></li>
48
+ <li>SystemMessage
49
+ <ul>
50
+ <li>ExclusiveMessage
51
+ <ul>
52
+ <li>ExclusiveF0 &lt;..., data&gt;</li>
53
+ <li>ExclusiveF7 &lt;..., data&gt;</li>
54
+ </ul></li>
55
+ </ul></li>
56
+ <li>Meta
57
+ <ul>
58
+ <li>SequenceNumber &lt;..., num&gt;</li>
59
+ <li>Text &lt;..., text&gt;
60
+ <ul>
61
+ <li>GeneralPurposeText (Text01)</li>
62
+ <li>CopyrightNotice (Text02)</li>
63
+ <li>TrackName (SequenceName, Text03)</li>
64
+ <li>InstrumentName (Text04)</li>
65
+ <li>Lyric (Display, Text05)</li>
66
+ <li>Marker (Text06)</li>
67
+ <li>CuePoint (Text07)</li>
68
+ <li>ProgramName (Text08)</li>
69
+ <li>DeviceName (Text09)</li>
70
+ <li>Text0A</li>
71
+ <li>Text0B</li>
72
+ <li>Text0C</li>
73
+ <li>Text0D</li>
74
+ <li>Text0E</li>
75
+ <li>Text0F</li>
76
+ </ul></li>
77
+ <li>ChannelPrefix &lt;..., ch&gt;</li>
78
+ <li>MIDIPort &lt;..., num&gt; (PR-001 $B$K$J$$(B)</li>
79
+ <li>EndOfTrack</li>
80
+ <li>SetTempo &lt;..., tempo&gt;</li>
81
+ <li>SMPTEOffset &lt;..., hr, mn, se, fr, ff, tc&gt;</li>
82
+ <li>TimeSignature &lt;..., nn, dd, cc, bb&gt;</li>
83
+ <li>KeySignature &lt;..., sf, mi&gt;</li>
84
+ <li>SequencerSpecific &lt;..., data&gt;</li>
85
+ </ul></li>
86
+ </ul></li>
87
+ </ul>
88
+ <h2><a name="label-2" id="label-2">Sequence</a></h2><!-- RDLabel: "Sequence" -->
89
+ <p>$B%7!<%1%s%9$rI=8=$9$k%/%i%9$G$9!#%7!<%1%s%9$O%H%i%C%/$r$b$A$^$9!#(B</p>
90
+ <h3><a name="label-3" id="label-3">$B%9!<%Q!<%/%i%9(B</a></h3><!-- RDLabel: "$B%9!<%Q!<%/%i%9(B" -->
91
+ <p>Object</p>
92
+ <h3><a name="label-4" id="label-4">$B%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k(B</a></h3><!-- RDLabel: "$B%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k(B" -->
93
+ <p>Enumerable</p>
94
+ <h3><a name="label-5" id="label-5">$B%/%i%9%a%=%C%I(B</a></h3><!-- RDLabel: "$B%/%i%9%a%=%C%I(B" -->
95
+ <dl>
96
+ <dt><a name="label-6" id="label-6">decode(str)</a></dt><!-- RDLabel: "decode(str)" -->
97
+ <dd>
98
+ $BJ8;zNs$+$iFI$_$3$_$^$9!#(B
99
+ </dd>
100
+ <dt><a name="label-7" id="label-7">read(io)</a></dt><!-- RDLabel: "read(io)" -->
101
+ <dd>
102
+ IO $B$+$iFI$_$3$_$^$9!#(B
103
+ </dd>
104
+ <dt><a name="label-8" id="label-8">load(fn)</a></dt><!-- RDLabel: "load(fn)" -->
105
+ <dd>
106
+ <p>$B%U%!%$%k$+$iFI$_$3$_$^$9!#(B</p>
107
+ <p>$B>e5-(B3$B$D$N%a%=%C%I$O!"%t%'%m%7%F%#$,Nm$N$H$-%N!<%H%*%s$r(B
108
+ $B%N!<%H%*%U$GCV$-49$($i$l$^$9!#(B</p>
109
+ </dd>
110
+ <dt><a name="label-9" id="label-9">new([format=1[, division=96[,tc=nil]]])</a></dt><!-- RDLabel: "new([format=1[, division=96[,tc=nil]]])" -->
111
+ <dd>
112
+ $B%7!<%1%s%9%*%V%8%'%/%H$r:n@.$7$^$9!#(B
113
+ </dd>
114
+ </dl>
115
+ <h3><a name="label-10" id="label-10">$B%"%/%;%5(B</a></h3><!-- RDLabel: "$B%"%/%;%5(B" -->
116
+ <dl>
117
+ <dt><a name="label-11" id="label-11">format</a></dt><!-- RDLabel: "format" -->
118
+ <dt><a name="label-12" id="label-12">division</a></dt><!-- RDLabel: "division" -->
119
+ <dt><a name="label-13" id="label-13">tc</a></dt><!-- RDLabel: "tc" -->
120
+ </dl>
121
+ <h3><a name="label-14" id="label-14">$B%a%=%C%I(B</a></h3><!-- RDLabel: "$B%a%=%C%I(B" -->
122
+ <p>$B$[$\(B Array $B$HF1$8%a%=%C%I$,$D$+$($^$9!#(B
123
+ $B$=$l0J30$N$b$N!"Cm0U$,I,MW$J$b$N$r0J2<$G@bL@$7$^$9!#(B</p>
124
+ <dl>
125
+ <dt><a name="label-15" id="label-15">ntrks</a></dt><!-- RDLabel: "ntrks" -->
126
+ <dd>
127
+ nitems $B$HF1$8$G$9!#(B
128
+ </dd>
129
+ <dt><a name="label-16" id="label-16">self &gt;&gt; tr</a></dt><!-- RDLabel: "self >> tr" -->
130
+ <dd>
131
+ $BMWAG$r=|$-$^$9!#(B
132
+ </dd>
133
+ <dt><a name="label-17" id="label-17">each{|tr| ...}</a></dt><!-- RDLabel: "each{|tr| ...}" -->
134
+ <dd>
135
+ <p>$BMWAG$K$D$$$F7+$jJV$7$^$9!#(B</p>
136
+ <p>nil $B$NMWAG$OL5;k$5$l$^$9!#(B</p>
137
+ </dd>
138
+ <dt><a name="label-18" id="label-18">join!</a></dt><!-- RDLabel: "join!" -->
139
+ <dd>
140
+ $B%H%i%C%/$r$R$H$D$K$7$^$9!#(B
141
+ EOT $B$O!"%*%U%;%C%H$,$b$C$H$bBg$-$J$b$N$,:NMQ$5$l$^$9!#(B
142
+ </dd>
143
+ <dt><a name="label-19" id="label-19">encode</a></dt><!-- RDLabel: "encode" -->
144
+ <dd>
145
+ <p>$BJ8;zNs$K=q$-$^$9!#(B</p>
146
+ <p>$B$b$7!"%H%i%C%/$K(B EOT $B$,$J$1$l$P!"(B
147
+ $B%H%i%C%/$N:G8e$K%G%k%?Nm$N(B EOT $B$rDI2C$7$^$9!#(B</p>
148
+ </dd>
149
+ <dt><a name="label-20" id="label-20">write(io)</a></dt><!-- RDLabel: "write(io)" -->
150
+ <dd>
151
+ IO $B$K=q$-$^$9!#(B
152
+ </dd>
153
+ <dt><a name="label-21" id="label-21">save(fn)</a></dt><!-- RDLabel: "save(fn)" -->
154
+ <dd>
155
+ $B%U%!%$%k$K=q$-$^$9!#(B
156
+ </dd>
157
+ </dl>
158
+ <h2><a name="label-22" id="label-22">Track</a></h2><!-- RDLabel: "Track" -->
159
+ <p>$B%H%i%C%/$rI=8=$9$k%/%i%9$G$9!#%H%i%C%/$O%$%Y%s%H$r$b$A$^$9!#(B</p>
160
+ <h3><a name="label-23" id="label-23">$B%9!<%Q!<%/%i%9(B</a></h3><!-- RDLabel: "$B%9!<%Q!<%/%i%9(B" -->
161
+ <p>Object</p>
162
+ <h3><a name="label-24" id="label-24">$B%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k(B</a></h3><!-- RDLabel: "$B%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k(B" -->
163
+ <p>Enumerable</p>
164
+ <h3><a name="label-25" id="label-25">$B%/%i%9%a%=%C%I(B</a></h3><!-- RDLabel: "$B%/%i%9%a%=%C%I(B" -->
165
+ <dl>
166
+ <dt><a name="label-26" id="label-26">new</a></dt><!-- RDLabel: "new" -->
167
+ <dd>
168
+ $B%H%i%C%/%*%V%8%'%/%H$r:n@.$7$^$9!#(B
169
+ </dd>
170
+ </dl>
171
+ <h3><a name="label-27" id="label-27">$B%a%=%C%I(B</a></h3><!-- RDLabel: "$B%a%=%C%I(B" -->
172
+ <p>$B$[$\(B Array $B$HF1$8%a%=%C%I$,$D$+$($^$9!#(B
173
+ $B$=$l0J30$N$b$N!"Cm0U$,I,MW$J$b$N$r0J2<$G@bL@$7$^$9!#(B</p>
174
+ <dl>
175
+ <dt><a name="label-28" id="label-28">nevts</a></dt><!-- RDLabel: "nevts" -->
176
+ <dd>
177
+ nitems $B$HF1$8$G$9!#(B
178
+ </dd>
179
+ <dt><a name="label-29" id="label-29">self &gt;&gt; ev</a></dt><!-- RDLabel: "self >> ev" -->
180
+ <dd>
181
+ $BMWAG$r=|$-$^$9!#(B
182
+ </dd>
183
+ <dt><a name="label-30" id="label-30">each{|ev| ...}</a></dt><!-- RDLabel: "each{|ev| ...}" -->
184
+ <dd>
185
+ <p>$BMWAG$K$D$$$F7+$jJV$7$^$9!#(B</p>
186
+ <p>nil $B$NMWAG$OL5;k$5$l$^$9!#$^$?!"%$%Y%s%H$O%=!<%H$5$l$^$9(B ($B0BDj(B)$B!#(B</p>
187
+ </dd>
188
+ </dl>
189
+ <h2><a name="label-31" id="label-31">Event</a></h2><!-- RDLabel: "Event" -->
190
+ <p>$B%$%Y%s%H$NCj>]%/%i%9$G$9!#(B</p>
191
+ <h3><a name="label-32" id="label-32">$B%9!<%Q!<%/%i%9(B</a></h3><!-- RDLabel: "$B%9!<%Q!<%/%i%9(B" -->
192
+ <p>Object</p>
193
+ <h3><a name="label-33" id="label-33">$B%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k(B</a></h3><!-- RDLabel: "$B%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k(B" -->
194
+ <p>Comparable</p>
195
+ <h3><a name="label-34" id="label-34">$B%"%/%;%5(B</a></h3><!-- RDLabel: "$B%"%/%;%5(B" -->
196
+ <dl>
197
+ <dt><a name="label-35" id="label-35">offset</a></dt><!-- RDLabel: "offset" -->
198
+ </dl>
199
+
200
+ </body>
201
+ </html>
@@ -0,0 +1,179 @@
1
+ =begin
2
+ = SMF �⥸�塼��
3
+
4
+ == ���饹
5
+
6
+ * Sequence <format, division, tc=nil>
7
+
8
+ * Track
9
+
10
+ * Event <offset>
11
+ * MIDIMessage
12
+ * ChannelMessage <..., ch>
13
+ * VoiceMessage
14
+ * NoteOff <..., note, vel>
15
+ * NoteOn <..., note, vel>
16
+ * PolyphonicKeyPressure <..., note, val>
17
+ * ControlChange <..., num, val>
18
+ * ProgramChange <..., num>
19
+ * ChannelPressure <..., val>
20
+ * PitchBendChange <..., val>
21
+ * ChannelModeMessage
22
+ * AllSoundOff <..., ch>
23
+ * ResetAllControllers <..., ch>
24
+ * LocalControl <..., ch, val>
25
+ * AllNotesOff <..., ch>
26
+ * OmniOff <..., ch>
27
+ * OmniOn <..., ch>
28
+ * MonoMode <..., ch, val>
29
+ * PolyMode <..., ch>
30
+
31
+ * SystemMessage
32
+ * ExclusiveMessage
33
+ * ExclusiveF0 <..., data>
34
+ * ExclusiveF7 <..., data>
35
+
36
+ * Meta
37
+ * SequenceNumber <..., num>
38
+ * Text <..., text>
39
+ * GeneralPurposeText (Text01)
40
+ * CopyrightNotice (Text02)
41
+ * TrackName (SequenceName, Text03)
42
+ * InstrumentName (Text04)
43
+ * Lyric (Display, Text05)
44
+ * Marker (Text06)
45
+ * CuePoint (Text07)
46
+ * ProgramName (Text08)
47
+ * DeviceName (Text09)
48
+ * Text0A
49
+ * Text0B
50
+ * Text0C
51
+ * Text0D
52
+ * Text0E
53
+ * Text0F
54
+ * ChannelPrefix <..., ch>
55
+ * MIDIPort <..., num> (PR-001 �ˤʤ�)
56
+ * EndOfTrack
57
+ * SetTempo <..., tempo>
58
+ * SMPTEOffset <..., hr, mn, se, fr, ff, tc>
59
+ * TimeSignature <..., nn, dd, cc, bb>
60
+ * KeySignature <..., sf, mi>
61
+ * SequencerSpecific <..., data>
62
+
63
+ == Sequence
64
+
65
+ �������󥹤�ɽ�����륯�饹�Ǥ����������󥹤ϥȥ�å������ޤ���
66
+
67
+ === �����ѡ����饹
68
+
69
+ Object
70
+
71
+ === ���󥯥롼�ɤ��Ƥ���⥸�塼��
72
+
73
+ Enumerable
74
+
75
+ === ���饹�᥽�å�
76
+
77
+ : decode(str)
78
+ ʸ���󤫤��ɤߤ��ߤޤ���
79
+
80
+ : read(io)
81
+ IO �����ɤߤ��ߤޤ���
82
+
83
+ : load(fn)
84
+ �ե����뤫���ɤߤ��ߤޤ���
85
+
86
+ �嵭3�ĤΥ᥽�åɤϡ����������ƥ������ΤȤ��Ρ��ȥ����
87
+ �Ρ��ȥ��դ��֤��������ޤ���
88
+
89
+ : new([format=1[, division=96[,tc=nil]]])
90
+ �������󥹥��֥������Ȥ�������ޤ���
91
+
92
+ === ��������
93
+
94
+ : format
95
+ : division
96
+ : tc
97
+
98
+ === �᥽�å�
99
+
100
+ �ۤ� Array ��Ʊ���᥽�åɤ��Ĥ����ޤ���
101
+ ����ʳ��Τ�Ρ����դ�ɬ�פʤ�Τ�ʲ����������ޤ���
102
+
103
+ : ntrks
104
+ nitems ��Ʊ���Ǥ���
105
+
106
+ : self >> tr
107
+ ���Ǥ�����ޤ���
108
+
109
+ : each{|tr| ...}
110
+ ���ǤˤĤ��Ʒ����֤��ޤ���
111
+
112
+ nil �����Ǥ�̵�뤵��ޤ���
113
+
114
+ : join!
115
+ �ȥ�å���ҤȤĤˤ��ޤ���
116
+ EOT �ϡ����ե��åȤ���äȤ��礭�ʤ�Τ����Ѥ���ޤ���
117
+
118
+ : encode
119
+ ʸ����˽񤭤ޤ���
120
+
121
+ �⤷���ȥ�å��� EOT ���ʤ���С�
122
+ �ȥ�å��κǸ�˥ǥ륿���� EOT ���ɲä��ޤ���
123
+
124
+ : write(io)
125
+ IO �˽񤭤ޤ���
126
+
127
+ : save(fn)
128
+ �ե�����˽񤭤ޤ���
129
+
130
+ == Track
131
+
132
+ �ȥ�å���ɽ�����륯�饹�Ǥ����ȥ�å��ϥ��٥�Ȥ����ޤ���
133
+
134
+ === �����ѡ����饹
135
+
136
+ Object
137
+
138
+ === ���󥯥롼�ɤ��Ƥ���⥸�塼��
139
+
140
+ Enumerable
141
+
142
+ === ���饹�᥽�å�
143
+
144
+ : new
145
+ �ȥ�å����֥������Ȥ�������ޤ���
146
+
147
+ === �᥽�å�
148
+
149
+ �ۤ� Array ��Ʊ���᥽�åɤ��Ĥ����ޤ���
150
+ ����ʳ��Τ�Ρ����դ�ɬ�פʤ�Τ�ʲ����������ޤ���
151
+
152
+ : nevts
153
+ nitems ��Ʊ���Ǥ���
154
+
155
+ : self >> ev
156
+ ���Ǥ�����ޤ���
157
+
158
+ : each{|ev| ...}
159
+ ���ǤˤĤ��Ʒ����֤��ޤ���
160
+
161
+ nil �����Ǥ�̵�뤵��ޤ����ޤ������٥�Ȥϥ����Ȥ���ޤ� (����)��
162
+
163
+ == Event
164
+
165
+ ���٥�Ȥ���ݥ��饹�Ǥ���
166
+
167
+ === �����ѡ����饹
168
+
169
+ Object
170
+
171
+ === ���󥯥롼�ɤ��Ƥ���⥸�塼��
172
+
173
+ Comparable
174
+
175
+ === ��������
176
+
177
+ : offset
178
+
179
+ =end