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