=begin = SMF モジュール == クラス * Sequence * Track * Event * MIDIMessage * ChannelMessage <..., ch> * VoiceMessage * NoteOff <..., note, vel> * NoteOn <..., note, vel> * PolyphonicKeyPressure <..., note, val> * ControlChange <..., num, val> * ProgramChange <..., num> * ChannelPressure <..., val> * PitchBendChange <..., val> * ChannelModeMessage * AllSoundOff <..., ch> * ResetAllControllers <..., ch> * LocalControl <..., ch, val> * AllNotesOff <..., ch> * OmniOff <..., ch> * OmniOn <..., ch> * MonoMode <..., ch, val> * PolyMode <..., ch> * SystemMessage * ExclusiveMessage * ExclusiveF0 <..., data> * ExclusiveF7 <..., data> * Meta * SequenceNumber <..., num> * Text <..., text> * GeneralPurposeText (Text01) * CopyrightNotice (Text02) * TrackName (SequenceName, Text03) * InstrumentName (Text04) * Lyric (Display, Text05) * Marker (Text06) * CuePoint (Text07) * ProgramName (Text08) * DeviceName (Text09) * Text0A * Text0B * Text0C * Text0D * Text0E * Text0F * ChannelPrefix <..., ch> * MIDIPort <..., num> (PR-001 にない) * EndOfTrack * SetTempo <..., tempo> * SMPTEOffset <..., hr, mn, se, fr, ff, tc> * TimeSignature <..., nn, dd, cc, bb> * KeySignature <..., sf, mi> * SequencerSpecific <..., data> == Sequence シーケンスを表現するクラスです。シーケンスはトラックをもちます。 === スーパークラス Object === インクルードしているモジュール Enumerable === クラスメソッド : decode(str) 文字列から読みこみます。 : read(io) IO から読みこみます。 : load(fn) ファイルから読みこみます。 上記3つのメソッドは、ヴェロシティが零のときノートオンを ノートオフで置き換えられます。 : new([format=1[, division=96[,tc=nil]]]) シーケンスオブジェクトを作成します。 === アクセサ : format : division : tc === メソッド ほぼ Array と同じメソッドがつかえます。 それ以外のもの、注意が必要なものを以下で説明します。 : ntrks nitems と同じです。 : self >> tr 要素を除きます。 : each{|tr| ...} 要素について繰り返します。 nil の要素は無視されます。 : join! トラックをひとつにします。 EOT は、オフセットがもっとも大きなものが採用されます。 : encode 文字列に書きます。 もし、トラックに EOT がなければ、 トラックの最後にデルタ零の EOT を追加します。 : write(io) IO に書きます。 : save(fn) ファイルに書きます。 == Track トラックを表現するクラスです。トラックはイベントをもちます。 === スーパークラス Object === インクルードしているモジュール Enumerable === クラスメソッド : new トラックオブジェクトを作成します。 === メソッド ほぼ Array と同じメソッドがつかえます。 それ以外のもの、注意が必要なものを以下で説明します。 : nevts nitems と同じです。 : self >> ev 要素を除きます。 : each{|ev| ...} 要素について繰り返します。 nil の要素は無視されます。また、イベントはソートされます (安定)。 == Event イベントの抽象クラスです。 === スーパークラス Object === インクルードしているモジュール Comparable === アクセサ : offset =end