pytakt.smf module¶
このモジュールには、標準MIDIファイル(SMF)を読み書きするため関数が 定義されています。
- readsmf(filename, supply_tempo=True, pair_note_events=True, encoding='utf-8') Tracks¶
標準MIDIファイルを読んでスコアを返します。 返されるスコアは、トラック毎にEventListがあり、それらがTracksとして まとめられた構造になっています。
- Parameters:
filename (str) – ファイル名 (‘-’ なら標準入力)
supply_tempo (bool or float, optional) – Trueであると、時刻 0 にテンポイベントがない場合に、 120 BPM のテンポイベントが補われます。 有効なテンポ値(BPM)を指定すると、時刻 0 にテンポイベントがない 場合に、その値のテンポイベントが補われます。 Falseの場合、テンポイベントは補われません。
pair_note_events (bool) – Trueの場合、ノートオンとノートオフは組み合わ されてすべて NoteEvent として出力されます。Falseの場合、独立した NoteOnEvent と NoteOffEvent として出力されます。
encoding (str, optional) – テキストイベントが持つ文字列がSMFの中で どのようにエンコーディングされているかを指定します。
- Returns:
結果のスコア。このTracksオブジェクトには、smf_format と smf_resolution という2つの属性が付加されていて、それぞれSMFの フォーマット (0, 1, または 2) と分解能が格納されています。
- writesmf(score, filename, format=1, resolution=480, ntrks=None, retrigger_notes=False, supply_tempo=True, render=True, encoding='utf-8', limit=2000000.0) None¶
score の内容を標準MIDIファイルに書き出します。 format-0以外のSMFでは、 各イベントが持つtk属性の値に従って、SMF中での格納トラックが決まります。 各トラックの最後にEnd-of-trackイベントがない場合は補われます。
- Parameters:
score (Score) – 入力スコア
filename (str) – ファイル名 (‘-’ なら標準出力)
format (int, optional) – 0, 1, 2いずれかの整数で、SMFのフォーマットを 指定します。
resolution (int, optional) – SMFにおける分解能(四分音符あたりの ティック数)を指定します。
ntrks (int, optional) – format-0以外のSMFで、トラック数を指定します。 デフォルトでは、score に含まれるイベントが持つtk属性の 最大値+1となります。この値より大きな値を ntrks に指定した ときは、その分だけ空のトラックが補われます。逆に、より小さな値を 指定した場合、ntrks 以上のtk属性値を持つイベントは格納 されません。
retrigger_notes (bool, optional) – Trueであると、SMFに書き出される前に、 衝突noteに対するリトリガー処理 (
RetriggerNotesを参照)が適用されます。supply_tempo (float or bool, optional) – Trueであると、時刻 0 にテンポイベントがない場合に、テンポ値が 125 BPM のテンポイベントが補われます。 有効なテンポ値(BPM)を指定すると、時刻 0 にテンポイベントがない 場合に、その値のテンポイベントが補われます。 Falseの場合、テンポイベントは補われません。
render (bool, optional) – デフォルト(True)の場合、演奏上の時間でイベントを出力します。 Falseの場合は、楽譜上の時間で出力します。
encoding (str, optional) – テキストイベントが持つ文字列のSMF中での エンコーディング方法を指定します。
limit (ticks, optional) – スコアの長さを制限します。 制限の詳細については、
Score.stream()の同名の引数 の項目を見てください。
- exception SMFError¶
Bases:
Exception