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 Onsc.sysex((0xf0, 0x7f, 0x7f, 4, 1, 0, 50, 0xf7)) # Master volume = 50
- meta(mtype, data, *, duration=0, **kwargs) EventList¶
MetaEvent を含む EventList を生成します。
- Parameters:
- 参照されるコンテキスト属性
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)