smf 0.15.12

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