#index SMF モジュール クラス * Sequence * Track * Event + MIDIMessage o ChannelMessage <..., ch> # VoiceMessage @ NoteOff <..., note, vel> @ NoteOn <..., note, vel> @ PolyphonicKeyPressure <..., note, val> @ ControlChange <..., num, val> @ ProgramChange <..., num> @ ChannelPressure <..., val> @ PitchBendChange <..., val> # ChannelModeMessage <..., num, val> + SystemMessage o Exclusive # ExclusiveF0 <..., data> # ExclusiveF7 <..., data> + Meta <..., type> o SequenceNumber <..., num> o Text <..., text> # GeneralPurposeText (Text01) # CopyrightNotice (Text02) # TrackName (SequenceName, Text03) # InstrumentName (Text04) # Lyric (Text05) # Marker (Text06) # CuePoint (Text07) # ProgramName (Text08) # DeviceName (Text09) # Text0A # Text0B # Text0C # Text0D # Text0E # Text0F o ChannelPrefix <..., ch> o MIDIPort <..., num> o EndOfTrack o SetTempo <..., tempo> o SMPTEOffset <..., hr, mn, se, fr, ff> o TimeSignature <..., nn, dd, cc, bb> o KeySignature <..., sf, mi> o SequencerSpecific <..., data> Sequence シーケンスを表現するクラスです。シーケンスはトラックをもちます。 スーパークラス Object クラスメソッド decode(str) 文字列から読みこみます。 decodeio(io) IO から読みこみます。 decodefile(fn) ファイルから読みこみます。 new([format=1[, division=96]]) シーケンスオブジェクトを作成します。 アクセサ format division メソッド length size 要素数を返します。 ntrks 要素数を返します。 nil の要素は勘定しません。 self << tr 末尾に追加します。 self >> tr 要素を除きます。 push(tr) 末尾に追加します。 pop 末尾の要素を取り除きます。 unshift(tr) 先頭に追加します。 shift 先頭の要素を取り除きます。 self[n] n 番目の要素を返します。 self[n]=tr n 番目の要素を変更します。 each{|tr| ...} 要素について繰り返します。 nil の要素は無視されます。 encode 文字列に書きます。 もし、トラックに EOT がなければ、 トラックの最後にデルタ零の EOT を追加します。 encodeio(io) IO に書きます。 encodefile(fn) ファイルに書きます。 Track トラックを表現するクラスです。トラックはイベントをもちます。 スーパークラス Object クラスメソッド new トラックオブジェクトを作成します。 メソッド length size 要素数を返します。 nevts 要素数を返します。 nil の要素は勘定しません。 self << ev 末尾に追加します。 self >> ev 要素を除きます。 push(ev) 末尾に追加します。 pop 末尾の要素を取り除きます。 unshift(ev) 先頭に追加します。 shift 先頭の要素を取り除きます。 self[n] n 番目の要素を返します。 self[n]=ev n 番目の要素を変更します。 each{|ev| ...} 要素について繰り返します。 nil の要素は無視されます。また、イベントはソートされます。 Event イベントの抽象クラスです。 スーパークラス Object インクルードしているモジュール Comparable アクセサ offset