pytakt.event module¶
このモジュールには、イベントに関するクラス群が定義されています。 これらのイベントの多くは、標準MIDIファイルで定義されたイベントを 基にしています。
- midimsg_size(status) int¶
MIDIメッセージのステータスバイトからメッセージの長さを求めます。
- Parameters:
status (int) – MIDIステータスバイトの値
- Returns:
メッセージの長さ
- message_to_event(msg, time, tk, encoding='utf-8', errhdr='') Event¶
各クラスの to_message メソッドが返す形式のバイト列を受け取って、 それを適切なクラスのイベントへ変換します (LoopBackEventを除く)。
- Parameters:
msg (bytes, bytearray, or iterable of int) – 入力バイト列
time (ticks) – イベントの時刻
tk (int) – トラック番号
encoding (str or None) – テキストイベントの持つ文字列が、バイト列中で どのようにエンコーディングされているかを指定します。None のときは、バイト列のままのテキストイベントを生成します。
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- Returns:
作成されたイベント
- class Event(t, tk, dt=0, **kwargs)¶
Bases:
objectすべてのイベントの基底クラスです。
インスタンスの属性
- t¶
ティック単位で表されたイベントの時刻
- Type:
ticks
- tk¶
トラック番号 (0から始まる)
- Type:
int
- dt¶
楽譜上の時刻と演奏上の時刻との差を表し、 演奏のときは t にこの値(単位はティック)を加えた時刻が 用いられます。dt値の大きさには制限があります (
pytakt.constants.MAX_DELTA_TIMEを参照)。- Type:
ticks
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
tk (int) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
演算規則
イベントどうしの等価比較(‘==’)は、クラスが一致し、かつすべての属性値が 等価であるときのみ真となります。
左オペランドを文字列、イベントを右オペランドにして ‘|’ 演算子を用いると、 左オペランドは無視され、イベントそのものの値となります。これは、 showtext() で ‘|’ の左側にある小節番号等を無視するのに利用されます。
- tostr(timereprfunc=<function std_time_repr>) str¶
イベントを文字列に変換したものを返します。
- Parameters:
timereprfunc (function) – 時間の値を文字列に変換する関数。 デフォルトでは小数点以下5桁に丸められた表現を返す 関数になります。
- is_pitch_bend() bool¶
ピッチベンドイベントのとき真を返します。
- is_key_pressure() bool¶
キープレッシャーイベントのとき真を返します。
- is_channel_pressure() bool¶
チャネルプレッシャーイベントのとき真を返します。
- is_program_change() bool¶
プログラムチェンジイベントのとき真を返します。
- is_all_notes_off() bool¶
オールノートオフイベント(値が0の123番のコントロールチェンジ イベント)のとき真を返します。
- is_marker() bool¶
マーカーイベント(6番のメタイベント)のとき真を返します。
- is_end_of_track() bool¶
トラック終了イベント(47番のメタイベント)のとき真を返します。
- is_text_event() bool¶
テキストイベント(1~15番のメタイベント)のとき真を返します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- ptime() Union[int, float, Fraction]¶
演奏上の時刻 (t属性値とdt属性値の和) を返します。
- class NoteEventClass(*args, **kwargs)¶
Bases:
EventNoteEvent, NoteOnEvent, および NoteOffEvent を総括した基底クラスです。
- class NoteEvent(t, n, L, v=80, nv=None, du=None, tk=1, ch=1, dt=0, **kwargs)¶
Bases:
NoteEventClass音符を表すイベントのクラスです。1対のノートオンとノートオフに相当します。
インスタンスの属性
- ch¶
MIDIチャネル番号 (1から始まる)
- Type:
int
- L¶
ティック単位で表された楽譜上の音の長さ (音価)
- Type:
ticks
- v¶
MIDIベロシティ
- Type:
int
- nv¶
MIDIノートオフベロシティ。Noneならば、MIDI バイト列に変換したときにベロシティ0のノートオンが使用されます。
- Type:
int or None
- du¶
演奏時音長 (ノートオンとノートオフの時間差) を表します。この属性が無いとき、L属性と同じ値であるとみなされます。
- Type:
ticks, optional
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
n (int or Pitch) – n属性の値
L (ticks) – L属性の値
v (int, optional) – v属性の値
nv (int or None, optional) – nv属性の値
du (ticks, optional) – du属性の値
tk (int, optional) – tk属性の値
ch (int, optional) – ch属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- get_du() Union[int, float, Fraction]¶
du属性の値(なければLの値)を返します。
- offtime() Union[int, float, Fraction]¶
ノートオフ時刻(t属性値とL属性値の和)を返します。
- pofftime() Union[int, float, Fraction]¶
演奏上のノートオフ時刻を返します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- class NoteOnEvent(t, n, v=80, tk=1, ch=1, dt=0, **kwargs)¶
Bases:
NoteEventClassノートオンイベントのクラスです。
インスタンスの属性
- ch¶
MIDIチャネル番号 (1から始まる)
- Type:
int
- v¶
MIDIベロシティ
- Type:
int
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
n (int or Pitch) – n属性の値
v (int, optional) – v属性の値
tk (int, optional) – tk属性の値
ch (int, optional) – ch属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- class NoteOffEvent(t, n, nv=None, tk=1, ch=1, dt=0, **kwargs)¶
Bases:
NoteEventClassノートオフイベントのクラスです。
インスタンスの属性
- ch¶
MIDIチャネル番号 (1から始まる)
- Type:
int
- nv¶
MIDIノートオフベロシティ。Noneならば、MIDI バイト列に変換したときにベロシティ0のノートオンが使用されます。
- Type:
int or None
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
n (int or Pitch) – n属性の値
nv (int or None, optional) – nv属性の値
tk (int, optional) – tk属性の値
ch (int, optional) – ch属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- class CtrlEvent(t, ctrlnum, value, tk=1, ch=1, dt=0, **kwargs)¶
Bases:
Eventコントローラ番号とコントロール値を持った制御イベントのクラスです。 これには、MIDIコントロールチェンジ、プログラムチェンジ、ピッチベンド、 チャネルプレッシャー、およびキープレッシャーが含まれます。 キープレッシャーについては専用のサブクラスが用意されていますので、 インスタンス生成の際にはそのコンストラクタを使用してください。
インスタンスの属性
- ch¶
MIDIチャネル番号 (1から始まる)
- Type:
int
- ctrlnum¶
コントローラ番号を表し、下の意味を持ちます。
0~127: MIDIコントロールチェンジ (value は0~127)
128(C_BEND): MIDIピッチベンド (value は -8192~8191)
129(C_KPR): MIDIキープレッシャー (KeyPressureEventを参照)
130(C_CPR): MIDIチャネルプレッシャー (value は0~127)
131(C_PROG): MIDIプログラムチェンジ (value は1~128)
それ以外: 内部処理用
- Type:
int
- value¶
コントロール値
- Type:
int, etc.
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
ctrlnum (int) – ctrlnum属性の値
value (int, etc.) – value属性の値
tk (int, optional) – tk属性の値
ch (int, optional) – ch属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- class KeyPressureEvent(t, n, value, tk=1, ch=1, dt=0, **kwargs)¶
Bases:
CtrlEventキープレッシャーイベントのクラスです。
インスタンスの属性
- value¶
コントロール値(0~127)
- Type:
int or float
- 継承された他の属性
t, tk, dt, ch, ctrlnum
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
n (int or Pitch) – n属性の値
value (int, etc.) – value属性の値
tk (int, optional) – tk属性の値
ch (int, optional) – ch属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- class SysExEvent(t, value, tk=1, dt=0, **kwargs)¶
Bases:
Eventシステムエクスクルーシブメッセージのイベントです。
インスタンスの属性
- value¶
先頭の0xf0および 末尾の0xf7を明示的に含むメッセージの内容。 1つのメッセージを複数のSysExEventに分割することは可能で、 その場合は、最初のイベントに0xf0、最後のイベントに0xf7を置きます。
- Type:
bytes, bytearray, or iterable of int
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
value (bytes, bytearray, or iterable of int) – value属性の値
tk (int, optional) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列(valueの先頭に更に0xf0を加えたもの)に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- class MetaEvent(t, mtype, value, tk=1, dt=0, **kwargs)¶
Bases:
Event標準MIDIファイルで定義されているメタイベントのクラスです。 これには、テキストイベント、調号イベント、拍子イベント、 テンポ変更イベント、トラック終了イベントなどが含まれます。
インスタンスの属性
- mtype¶
メタイベントの種類 (0~127)
- Type:
int
- value¶
メタイベントのデータ。mtypeが1~15のときは、この属性は str型である ことが推奨されます。mtypeが M_KEYSIG (調号イベント) であるときは、 この属性はKey型でなければなりません。mtypeが M_TEMPO (テンポ変更イベント) であるときは、この属性は int または float型 でなければなりません。それ以外のメタイベントでは、bytes, bytearray もしくは整数のイテラブルが推奨されます。
- Type:
bytes, bytearray, str, Key, int, float, or iterable of int
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
mtype (int) – mtype属性の値
value (bytes, bytearray, str, Key, int, float, or iterable of int) – value属性の値
tk (int, optional) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
Notes
調号イベント、拍子イベント、およびテンポ変更イベントについては それぞれ専用のサブクラスが用意されています。 インスタンス生成の際、テンポ変更イベントについては専用のサブクラス (TempoEvent) を使用してください。 調号イベントと拍子イベントについては、このクラスのコンストラクタで 作成することも可能ですが、各サブクラスのコンストラクタを用いた方が より便利です。
- to_message(errhdr='', encoding='utf-8') Union[bytes, bytearray]¶
イベントをバイト列(長さ情報を除いた標準MIDIファイル中のデータ)に 変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
encoding (str) – テキストイベントが持つ文字列を、バイト列中で どのようにエンコーディングするかを指定します。
- class KeySignatureEvent(t, value, tk=0, dt=0, **kwargs)¶
Bases:
MetaEvent調号イベントのクラスです。
- 継承された属性
t, tk, dt, mtype, value
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
value (Key, int, or str) – Keyコンストラクタの第1引数
tk (int, optional) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='', encoding='utf-8') Union[bytes, bytearray]¶
イベントをバイト列(長さ情報を除いた標準MIDIファイル中のデータ)に 変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
encoding (str) – テキストイベントが持つ文字列を、バイト列中で どのようにエンコーディングするかを指定します。
- class TimeSignatureEvent(t, num, den, cc=None, tk=0, dt=0, **kwargs)¶
Bases:
MetaEvent拍子イベントのクラスです。
- 継承された属性
t, tk, dt, mtype, value
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
num (int) – 分子の値
den (int) – 分母の値
cc (int, optional) – メトロノームクリックの間隔を四分音符の1/24を単位 として表したもの。デフォルトでは、num と den から自動的に 推測されます。
tk (int, optional) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
Examples
時刻が0で4/4拍子の場合、
TimeSignatureEvent(0, 4, 4)- numerator() int¶
分子の値を返します。
- denominator() int¶
分母の値を返します。
- num_den() Tuple[int, int]¶
分子と分母からなる2要素タプルを返します。
- get_cc() int¶
メトロノームクリックの間隔(四分音符の1/24単位)を返します。
- tostr(timereprfunc=<function std_time_repr>) str¶
イベントを文字列に変換したものを返します。
- Parameters:
timereprfunc (function) – 時間の値を文字列に変換する関数。 デフォルトでは小数点以下5桁に丸められた表現を返す 関数になります。
- beat_length() Union[int, float, Fraction]¶
1拍の長さをティック単位で返します。
- measure_length() Union[int, float, Fraction]¶
1小節の長さをティック単位で返します。
- class TempoEvent(t, value, tk=0, dt=0, **kwargs)¶
Bases:
MetaEventテンポ変更イベントのクラスです。
インスタンスの属性
- value¶
1分あたりの4分音符数で表されたテンポ値 (最低値は4)
- Type:
int or float
- 継承された他の属性
t, tk, dt, mtype, value
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
value (int or float) – value属性の値
tk (int, optional) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='', encoding='utf-8') Union[bytes, bytearray]¶
イベントをバイト列(長さ情報を除いた標準MIDIファイル中のデータ)に 変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
encoding (str) – テキストイベントが持つ文字列を、バイト列中で どのようにエンコーディングするかを指定します。
- class LoopBackEvent(t, value, tk=0, dt=0, **kwargs)¶
Bases:
Eventループバックイベントのクラスです。
インスタンスの属性
- value¶
イベントを区別するための任意のデータ
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
value (str) – value属性の値
tk (int, optional) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列
- class XmlEvent(t, xtype, value, tk=1, dt=0, **kwargs)¶
Bases:
Event五線譜のための追加情報を記述したイベントのクラスです。
インスタンスの属性
- xtype¶
情報の種類を表す文字列
- Type:
str
- value¶
情報の内容データ
- 継承された他の属性
t, tk, dt
コンストラクタ引数
- Parameters:
t (ticks) – t属性の値
xtype (str) – xtype属性の値
value – value属性の値
tk (int, optional) – tk属性の値
dt (ticks, optional) – dt属性の値
kwargs – イベントに対して追加の属性を指定します。
- 有効なイベントの一覧
xtype
desc.
value
optional attrs.
‘clef’
音部記号
‘G’, ‘F’, ‘C’ ‘percussion’, ‘TAB’, ‘jianpu’, ‘none’
line(int), octave_change (int)
‘barline’
小節区切り
‘dashed’, ‘dotted’, ‘heavy’, ‘heavy-heavy’, ‘heavy-light’, ‘light-heavy’, ‘light-light’, ‘none’, ‘regular’, ‘short’, ‘tick’, ‘double’, ‘final’, ‘repeat-start’, ‘repeat-end’
‘chord’
コード記号
Chord
‘text’
汎用テキスト
str
‘pagelayout’
ページレイア ウト情報
なし
height, width, topmargin, bottommargin, leftmargin, rightmargin (millimeters); scaling (mm/staffline)
‘staffgroup’
段のグルーピ ング
list, tuple or set of int, ‘brace’, ‘bracket’, ‘square’, ‘line’ or ‘none’ [1]
‘transpose’
記譜時の移調
Interval
[1] トラック番号のコレクション(ネスト可能)によって、段のグルーピング を表します。’brace’ 等の文字列は段のグルーピングに使われるシンボルの 形状を表し、コレクションがlistのときは ‘bracket’, tupleのときは ‘sqaure’, setのときは ‘brace’ がそれぞれデフォルトになります。 非デフォルトのシンボルを指定するには (‘line’, 3, 4) のように要素に 文字列を含めます。コレクションがsetのときは、ピアノの右手と左手の ような、パート内の段 (stave) として扱われます。
- to_message(errhdr='') Union[bytes, bytearray]¶
イベントをバイト列に変換します。
- Parameters:
errhdr (str, optional) – エラー、警告メッセージの先頭文字列