pytakt.sc module

このモジュールには、音符など基本的なスコアを生成するための関数が定義されて います。 noteとrest以外の関数は、上位モジュール(pytaktモジュール)の名前空間に取り 込まれませんので、sc.ctrl のようにサブモジュール名をつけて呼び出して下さい。

note(pitch, L=None, step=None, **kwargs) EventList

1つの音符からなるスコアとして、1つの NoteEvent を含む EventList を生成 します。生成される NoteEvent の時刻 (t属性値) は常に 0 となります。

Parameters:
  • pitch (Pitch, int, float or str) – 音符のピッチを指定します。 生成される NoteEvent のn属性は、この値をコンストラクタ引数として 作成したPitchオブジェクトとなります。

  • L (ticks, optional) – 音価を指定します。 省略すると、コンテキストのL属性の値になります。 生成される NoteEvent のL属性はこの値となります。

  • step (ticks, optional) – 生成されるイベントリストのduration属性 の値 (つまり、生成されるスコアの演奏長) を指定します。 省略すると音価と同じ値になります。

  • kwargs – 追加のキーワード引数。コンテキストに同名の(疑似)属性が存在する 場合は、その属性値を一時的に変更する指定となります。 そうでなければ、NoteEvent に対する追加の属性となります。

参照されるコンテキスト属性

dt, tk, ch, v, nv, L, duoffset, durate, effectors

Examples

>>> note(C4)
EventList(duration=480, events=[
    NoteEvent(t=0, n=C4, L=480, v=80, nv=None, tk=1, ch=1)])
>>> note(C4, L8, step=120)
EventList(duration=120, events=[
    NoteEvent(t=0, n=C4, L=240, v=80, nv=None, tk=1, ch=1)])
>>> note(Db5, ch=3, dt=30, dr=50)  # modifying context
EventList(duration=480, events=[
    NoteEvent(t=0, n=Db5, L=480, v=80, nv=None, tk=1, ch=3, dt=30, du=240)])
rest(L=None) EventList

休符のスコアとして、空イベントの EventList を生成します。

Parameters:

L (ticks, optional) – 休符の長さを指定します。 生成されるイベントリストのduration属性はこの値と一致します。 省略すると、コンテキストのL属性の値になります。

参照されるコンテキスト属性

L, effectors

ctrl(ctrlnum, value, *, n=None, word=False, duration=0, tstep=30, ystep=1, _rpc=None, **kwargs) EventList

CtrlEvent または TempoEvent を含む EventList を生成します。 単一のコントロール値だけでなく、Interpolator を利用して 段階的に変化するような複数のコントロール値を生成することも可能です。

Parameters:
  • ctrlnum (int) – コントローラ番号を指定します (CtrlEvent を参照)。この値が C_TEMPO (192) であるときは TempoEvent が生成されます。

  • value (int, float, 2-tuple, or list) – コントロール値を指定します。 int または float であるときは、単一のコントロール値に基づいた CtrlEvent/TempoEvent が生成されます。2-tupleであるときは、 word 引数が暗黙に True であることが仮定され、(MSB, LSB) の形式に よって上位バイトと下位バイトを別々に指定します。list型であるとき は、その値が Interpolator のコンストラクタへ渡され、 段階的に変化するような CtrlEvent/TempoEvent の列が生成されます。

  • n (int or Pitch, optional) – キープレッシャーイベントの場合 (ctrlnum が C_KPR の場合) に、MIDIノート番号を指定します。それ以外の種類の イベントでは指定できません。

  • word (bool, optional) – ctrlnum が 31 以下の場合のコントロール チェンジの場合において、この引数を True にすると、 14ビットのコントロール値をコントローラ番号の異なる2つの CtrlEvent に分けて生成するようになります。段階的に変化するコントロールの 場合でも、出力値のそれぞれにおいて2つのCtrlEvent が生成されます。

  • duration (ticks or str, optional) – イベントリストの duration属性値を 指定します。’auto’を指定した場合、単一のコントロール値の場合は 0、 段階的に変化するコントロールの場合は最後の CtrlEvent/TempoEvent の時刻になります。

  • tstep (ticks, optional) – 段階的に変化するコントロールの場合 おけるの時間の刻み値を指定します (Interpolator.iterator() を参照)。

  • ystep (int or float, optional) – 段階的に変化するコントロールの場合に おいて、出力値の変化スレッショルドを指定します (Interpolator.iterator() を参照)。

  • kwargs – 追加のキーワード引数。コンテキストに同名の属性が存在する 場合は、その属性値を一時的に変更する指定となります。 そうでなければ、出力されるすべての CtrlEvent/TempoEvent に対する 追加の属性となります。

参照されるコンテキスト属性

dt, tk, ch, effectors

Examples

>>> sc.ctrl(7, 60, ch=2)  # volume control: value=60  MIDI_channel=2
EventList(duration=0, events=[
    CtrlEvent(t=0, ctrlnum=C_VOL, value=60, tk=1, ch=2)])
>>> sc.ctrl(7, [0, (L4, 100)], tstep=120)  # linearly increasing volume
EventList(duration=480, events=[
    CtrlEvent(t=0, ctrlnum=C_VOL, value=0.0, tk=1, ch=1),
    CtrlEvent(t=120, ctrlnum=C_VOL, value=25.0, tk=1, ch=1),
    CtrlEvent(t=240, ctrlnum=C_VOL, value=50.0, tk=1, ch=1),
    CtrlEvent(t=360, ctrlnum=C_VOL, value=75.0, tk=1, ch=1),
    CtrlEvent(t=480, ctrlnum=C_VOL, value=100, tk=1, ch=1)])
>>> sc.ctrl(1, 80, duration=120)
EventList(duration=120, events=[
    CtrlEvent(t=0, ctrlnum=C_MOD, value=80, tk=1, ch=1)])
>>> sc.ctrl(0, (2, 3))  # specifying the value with (MSB,LSB) pair
EventList(duration=0, events=[
    CtrlEvent(t=0, ctrlnum=C_BANK, value=2, tk=1, ch=1),
    CtrlEvent(t=0, ctrlnum=C_BANK_L, value=3, tk=1, ch=1)])
bank(value, **kwargs) EventList

バンクセレクト(0, 32番のコントロールチェンジ) の CtrlEvent を含む EventList を生成します。ctrl(0, value, **kwargs) と等価です。

mod(value, **kwargs) EventList

モジュレーションデプス(1, 33番のコントロールチェンジ) の CtrlEvent を含む EventList を生成します。 ctrl(1, value, **kwargs) と等価です。

breath(value, **kwargs) EventList

ブレスコントローラ(2, 34番のコントロールチェンジ) の CtrlEvent を含む EventList を生成します。 ctrl(2, value, **kwargs) と等価です。

foot(value, **kwargs) EventList

フットコントローラ(4, 36番のコントロールチェンジ) の CtrlEvent を含む EventList を生成します。 ctrl(4, value, **kwargs) と等価です。

porta(value, **kwargs) EventList

ポルタメントタイム(5, 37番のコントロールチェンジ) の CtrlEvent を含む EventList を生成します。 ctrl(5, value, **kwargs) と等価です。

vol(value, **kwargs) EventList

メイン(チャンネル)ボリューム(7, 39番のコントロールチェンジ) の CtrlEvent を含む EventList を生成します。 ctrl(7, value, **kwargs) と等価です。

pan(value, **kwargs) EventList

パンポット(10, 42番のコントロールチェンジ) の CtrlEvent を含む EventList を生成します。ctrl(10, value, **kwargs) と等価です。

expr(value, **kwargs) EventList

エクスプレッション(11, 43番のコントロールチェンジ) の CtrlEvent を含む EventList を 生成します。 ctrl(11, value, **kwargs) と等価です。

reverb(value, **kwargs) EventList

エフェクト1(リバーブ)デプス(91番のコントロールチェンジ) の CtrlEvent を含む EventList を 生成します。 ctrl(91, value, **kwargs) と等価です。

ped(value=127, **kwargs) EventList

ダンパーペダルを ON にする CtrlEvent を含む EventList を生成します。 ctrl(64, value, **kwargs) と等価です。

pedoff(**kwargs) EventList

ダンパーペダルを OFF にする CtrlEvent を含む EventList を生成します。 ctrl(64, 0, **kwargs) と等価です。

ped2(value=127, **kwargs) EventList

ソフトペダルを ON にする CtrlEvent を含む EventList を生成します。 ctrl(67, value, **kwargs) と等価です。

ped2off(**kwargs) EventList

ソフトペダルを OFF にする CtrlEvent を含む EventList を生成します。 ctrl(67, 0, **kwargs) と等価です。

ped3(value=127, **kwargs) EventList

ソステヌートペダルを ON にする CtrlEvent を含む EventList を生成 します。ctrl(66, value, **kwargs) と等価です。

ped3off(**kwargs) EventList

ソステヌートペダルを OFF にする CtrlEvent を含む EventList を生成 します。ctrl(66, 0, **kwargs) と等価です。

portaon(value=127, **kwargs) EventList

ポルタメントを ON にする CtrlEvent を含む EventList を生成します。 ctrl(65, value, **kwargs) と等価です。

portaoff(**kwargs) EventList

ポルタメントを OFF にする CtrlEvent を含む EventList を生成します。 ctrl(65, 0, **kwargs) と等価です。

all_sound_off(**kwargs) EventList

オール・サウンド・オフの CtrlEvent を含む EventList を生成します。 ctrl(120, 0, **kwargs) と等価です。

reset_all_ctrls(**kwargs) EventList

リセット・オール・コントローラの CtrlEvent を含む EventList を 生成します。ctrl(121, 0, **kwargs) と等価です。

all_notes_off(**kwargs) EventList

オール・ノート・オフの CtrlEvent を含む EventList を生成します。 ctrl(123, 0, **kwargs) と等価です。

bend(value, **kwargs) EventList

ピッチベンドの CtrlEvent を含む EventList を生成します。 値は -8192~8191の範囲で指定します。 ctrl(C_BEND, value, **kwargs) と等価です。

cpr(value, **kwargs) EventList

チャネルプレッシャーの CtrlEvent を含む EventList を生成します。 ctrl(C_CPR, value, **kwargs) と等価です。

prog(value, **kwargs) EventList

プログラムチェンジの CtrlEvent を含む EventList を生成します。 値は 1~128 の範囲で指定します。 ctrl(C_PROG, value, **kwargs) と等価です。

kpr(pitch, value, **kwargs) EventList

KeyPressureEvent を含む EventList を生成します。 ctrl(C_KPR, value, n=pitch, **kwargs) と等価です。

rpc(rpn, data, nrpc=False, **kwargs) EventList

RPC (Registered Parameter Control) または NRPC (Non-Registered Parameter Control) のための EventList を生成します。

Parameters:
  • rpn (int or 2-tuple) – パラメタ番号(RPN または NRPN) を指定します。 int 型の場合は16ビットの数値(上位8ビットがMSB, 下位8ビットがLSB)、 2-tuple の場合は (MSB, LSB) の形式で指定します。

  • data (int, float, 2-tuple, or list) – データエントリー (6, 36番のコントロールチェンジ) で送出するデータを指定します。

  • nrpc (bool, optional) – NPC のとき False, NRPC のとき True。

  • kwargs – ctrl() 関数に渡される他の引数。

参照されるコンテキスト属性

dt, tk, ch, effectors

Examples

>>> sc.rpc((0, 1), 8835, word=True)  # Fine tuning to A=442Hz
EventList(duration=0, events=[
    CtrlEvent(t=0, ctrlnum=C_RPCL, value=1, tk=1, ch=1),
    CtrlEvent(t=0, ctrlnum=C_RPCH, value=0, tk=1, ch=1),
    CtrlEvent(t=0, ctrlnum=C_DATA, value=69, tk=1, ch=1),
    CtrlEvent(t=0, ctrlnum=C_DATA_L, value=3, tk=1, ch=1)])
bender_range(semitones, **kwargs) EventList

rpc() を使ってピッチ・ベンド・センシティビティ設定のための EventList を生成します。

Parameters:
  • semitones (int) – ピッチベンド範囲を半音数で指定します。例えば、 +-1オクターブなら 12 とします。

  • kwargs – ctrl() 関数に渡される他の引数。

fine_tune(*, freq=None, cents=None, **kwargs) EventList

rpc() を使ってファイン・チューニングのための EventList を生成します。

Parameters:
  • freq (int or float) – A4音の周波数を指定します。 cents と同時には指定できません。

  • cents (int or float) – 標準チューニング (A4=440Hz) からのずれをセント (半音の1/100) 単位で指定します。-100 <= cents < 100 の範囲をとります。 freq と同時には指定できません。

  • kwargs – ctrl() 関数に渡される他の引数。

coarse_tune(semitones, **kwargs) EventList

rpc() を使ってコース・チューニングのための EventList を生成します。

Parameters:
  • semitones (int) – 標準チューニングからのずれを半音数(符号つき) で指定します。

  • kwargs – ctrl() 関数に渡される他の引数。

tempo(value, **kwargs) EventList

TempoEvent を含む EventList を生成します。 トラック番号 (tk属性) は、明示的に指定しない限り、コンテキストによらず 0 になります。 ctrl(C_TEMPO, value, **kwargs) と等価です。

Parameters:
  • value (int or float) – BPMで表されたテンポ値 (最低値は4)

  • kwargs – ctrl() 関数に渡される他の引数。

sysex(data, arbitrary=False, *, duration=0, **kwargs) EventList

SysExEvent を含む EventList を生成します。

Parameters:
  • data (bytes, bytearray, or iterable of int) – システム・エクスクルーシブ・メッセージの内容。 メッセージ先頭の 0xf0 およびメッセージ末尾の 0xf7 を明示的に 含める必要があります。また、それ以外の各バイトの値は0x7f(127)以下 である必要があります。

  • arbitrary (bool, optional) – この値が True のときは、data の先頭が 0xf0、末尾が 0xf7 で なくても、また0x80以上のバイトデータを含んでいてもイベントリストを 生成します (デフォルトでは例外を送出します)。 これは、システム・エクスクルーシブ・メッセージを複数の SysEvEvent に分割したり、シンセサイザに任意のメッセージを送る際に使います。

  • duration (ticks, optional) – イベントリストの duration属性値を 指定します。

  • kwargs – 追加のキーワード引数。コンテキストに同名の属性が存在する 場合は、その属性値を一時的に変更する指定となります。 そうでなければ、出力されるイベントに対する追加の属性となります。

参照されるコンテキスト属性

dt, tk, effectors

Examples

sc.sysex((0xf0, 0x7e, 0x7f, 0x09, 0x01, 0xf7))  # GM On

sc.sysex((0xf0, 0x7f, 0x7f, 4, 1, 0, 50, 0xf7))  # Master volume = 50

meta(mtype, data, *, duration=0, **kwargs) EventList

MetaEvent を含む EventList を生成します。

Parameters:
  • mtype (int) – メタイベントの種類 (0~127)

  • data (bytes, bytearray, str, Key, or iterable of int) – MetaEvent の value 属性の値。

  • duration (ticks, optional) – イベントリストの duration属性値を 指定します。

  • kwargs – 追加のキーワード引数。コンテキストに同名の属性が存在する 場合は、その属性値を一時的に変更する指定となります。 そうでなければ、出力されるイベントに対する追加の属性となります。

参照されるコンテキスト属性

dt, tk, effectors

seqno(value, **kwargs) EventList

シーケンス番号のイベント (mtype=0 のメタイベント) を含むEventList を 生成します。

Parameters:
  • value (int) – シーケンス番号 (0-65535)

  • kwargs – meta() 関数に渡される他の引数。

参照されるコンテキスト属性

dt, effectors

title(string, **kwargs) EventList

汎用テキストのイベント (mtype=1 のメタイベント) を含む EventList を生成します。多くの場合、曲タイトルの記述に使われます。 トラック番号 (tk属性) は、明示的に指定しない限り、コンテキストによらず 0 になります。

Parameters:
  • string (str) – テキスト文字列

  • kwargs – meta() 関数に渡される他の引数。

参照されるコンテキスト属性

dt, effectors

comment(string, **kwargs) EventList

汎用テキストのイベント (mtype=1 のメタイベント) を含む EventList を生成します。title() と異なり、トラック番号はコンテキストのtk属性の 値になります。meta(1, string, **kwargs) と等価です。

copyright(string, **kwargs) EventList

著作権表示のイベント (mtype=2 のメタイベント) を含む EventList を生成します。トラック番号 (tk属性) は、明示的に指定しない限り、 コンテキストによらず 0 になります。

Parameters:
  • string (str) – テキスト文字列

  • kwargs – meta() 関数に渡される他の引数。

参照されるコンテキスト属性

dt, effectors

trackname(string, **kwargs) EventList

トラック名のイベント (mtype=3 のメタイベント) を含む EventList を生成します。meta(3, string, **kwargs) と等価です。

instname(string, **kwargs) EventList

楽器名のイベント (mtype=4 のメタイベント) を含む EventList を生成します。meta(4, string, **kwargs) と等価です。

lyric(string, **kwargs) EventList

歌詞のイベント (mtype=5 のメタイベント) を含む EventList を生成します。meta(5, string, **kwargs) と等価です。

marker(string, **kwargs) EventList

マーカーイベント (mtype=6 のメタイベント) を含む EventList を生成します。 トラック番号 (tk属性) は、明示的に指定しない限り、コンテキストによらず 0 になります。

Parameters:
  • string (str) – マーカー文字列

  • kwargs – meta() 関数に渡される他の引数。

参照されるコンテキスト属性

dt, effectors

chprefix(value, **kwargs) EventList

MIDIチャネルプレフィックスのイベント (mtype=0x20 のメタイベント) を含むEventList を生成します。meta(0x20, bytes((value,)), **kwargs) と 等価です。

devno(value, **kwargs) EventList

デバイス(ポート)番号指定のイベント (mtype=0x21 のメタイベント) を含む EventList を生成します。meta(0x21, bytes((value,)), **kwargs) と 等価です。

trackend(**kwargs) EventList

トラックの終りを表すイベント (mtype=0x2f のメタイベント) を含む EventList を生成します。meta(0x2f, b'', **kwargs) と等価です。

timesig(num, den, cc=None, *, duration=0, **kwargs) EventList

拍子イベント (mtype=0x58 のメタイベント) を含む EventList を 生成します。 トラック番号 (tk属性) は、明示的に指定しない限り、コンテキストによらず 0 になります。

Parameters:
  • num (int) – 分子の値

  • den (int) – 分母の値

  • cc (int, optional) – メトロノームクリックの間隔 (KeySignatureEvent を参照)。

  • duration (ticks, optional) – イベントリストの duration属性値を 指定します。

  • kwargs – 追加のキーワード引数。コンテキストに同名の属性が存在する 場合は、その属性値を一時的に変更する指定となります。 そうでなければ、出力されるイベントに対する追加の属性となります。

参照されるコンテキスト属性

dt, effectors

Examples

sc.timesig(4,4)   sc.timesig(5,8)

keysig(keydesc, minor=0, **kwargs) EventList

調号イベント (mtype=0x59 のメタイベント) を含む EventList を 生成します。 トラック番号 (tk属性) は、明示的に指定しない限り、コンテキストによらず 0 になります。

Parameters:
  • keydesc (int, str, or Key) – 調の指定 (Key を参照)

  • minor (int, optional) – モードの指定 (Key を参照)

  • kwargs – meta() 関数に渡される他の引数。

参照されるコンテキスト属性

dt, effectors

Examples

sc.keysig('Eb-major')   sc.keysig(0)

xml(xtype, value=None, *, duration=0, **kwargs) EventList

XmlEvent (五線譜のための追加情報イベント)を含む EventList を 生成します。情報の種類の一覧については XmlEvent を見てください。

Parameters:
  • xtype (str) – 情報の種類を表す文字列

  • value – 情報の内容データ

  • duration (ticks, optional) – イベントリストの duration属性値を 指定します。

参照されるコンテキスト属性

dt, tk, effectors