pytakt.timemap module¶
このモジュールにはスコア中のテンポ値や拍子を取得したり、 ティック、秒、小節番号、拍番号間の変換するためのクラスが定義されています。
- current_tempo() float¶
現在のテンポを返します。
- Returns:
テンポ値 (beats per minute)
- set_tempo(bpm) None¶
現在のテンポを変更します。
- Parameters:
bpm (float) – テンポ値 (beats per minute)
- class TempoMap(score, default_tempo=125.0)¶
Bases:
objectスコアからテンポイベントを抽出したデータ構造 (テンポマップ) のクラスです。 テンポマップは、任意時刻のテンポ値の取得やティック数(4分音符の1/480)と 秒数との相互変換に利用できます。
コンストラクタ引数
- Parameters:
score (Score) – 対象となるスコア (無限長スコア可)
default_tempo (float) – スコア冒頭部分にテンポイベントがない区間が 存在する場合、その区間のテンポはこの値であると仮定されます。
- tempo_at(ticks) Union[int, float]¶
スコア先頭からのティック数 ticks の時点におけるテンポを返します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
テンポ値 (BPM)
- ticks2sec(ticks) float¶
スコア先頭からのティック数を秒数へ変換します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
スコア先頭からの秒数
- sec2ticks(seconds) Union[int, float, Fraction]¶
スコア先頭からの秒数をティック数へ変換します。
- Parameters:
seconds (float) – スコア先頭からの秒数
- Returns:
スコア先頭からのティック数
- class TimeSignatureMap(score, bar0len=None)¶
Bases:
objectスコアから拍子イベントを抽出したデータ構造 (time signature map) のクラス です。これは、任意時刻の拍子情報の取得やティック数と小節番号/拍数との 相互変換に利用できます。
拍子イベントがない場合は、4/4拍子であると仮定されます。
小節番号は、冒頭に弱起等に起因する特別な小節がある場合は0から始まり、 そうでない場合は1から始まります。最初の小節番号は
ticks2mbt(0)[0]で 取得できます。コンストラクタ引数
- Parameters:
score (Score) – 対象となるスコア (無限長スコア可)
bar0len (ticks, optional) – 小節番号 0 の小節の長さを指定します。0を 指定したときは、小節番号 0 の小節は無いとみなされます。Noneの 場合は、拍子イベントの位置から推測されます。
- timesig_at(ticks) TimeSignatureEvent¶
スコア先頭からのティック数 ticks の時点における拍子を返します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
拍子イベント。拍子の指定がないスコアに対して補われた4/4拍子の イベントについては ‘default’ という属性が追加されています。
- num_measures(count_bar0=True) int¶
スコア全体の小節数を返します。EventStreamに対しては使えません。
- Parameters:
count_bar0 (bool) – True (default) の場合、弱起による冒頭の 不完全小節を含めた小節数を返します。
- ticks2mbt(ticks) Tuple[int, Union[int, float, Fraction], int, Union[int, float, Fraction]]¶
スコア先頭からのティック数を (小節番号、小節内ティック数、拍番号、 拍内ティック数) の4要素タプルへ変換します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
最初の要素は小節番号を表します。 2番目の要素はその小節内におけるティック数を表します。 3番目の要素は、その小節における 0から始まる拍番号を表します。 最後の要素は、その拍内におけるティック数を表します。 1拍の長さは拍子によって変わります(例えば 3/8拍子では 8分音符の 長さ (=240ティック) になります)。
- mbt2ticks(measures, beats=0, ticks=0) Union[int, float, Fraction]¶
小節番号、拍番号、および加算ティック数を与えて、スコア先頭からの ティック数を求めます。
- Parameters:
measures (int or str) – 小節番号、または “measures`[:`beats][+ticks]” という形式の文字列 (“[]”は省略可を意味する)。 文字列で beats や ticks を指定した場合、 対応する以降の引数の値は無効となります。 文字列で存在しない拍番号を指定したときは例外が送出されます。
beats (int, optional) – 0から始まる小節内の拍番号。 1拍の長さは拍子によって変わります。
ticks (ticks, optional) – 加算されるティック数。1拍より長い 値であっても構いません。
- Returns:
スコア先頭からのティック数
- iterator() Generator[Union[int, float, Fraction], None, Union[int, float, Fraction]]¶
小節開始時刻を順にyield するジェネレータ関数です。
- Yields:
ticks – 小節開始時刻
- Raises:
StopIteration – スコアの最後に到達するとraiseされます。 この例外オブジェクトのvalue属性には、スコアの演奏長が 格納されます。
- class TimeMap(score, default_tempo=125.0, bar0len=None)¶
Bases:
TempoMap,TimeSignatureMapTempoMap と TimeSignatureMap を統合したクラスです。両方のクラスの機能を 併せ持っています。1つのスコアに対して両方の機能を必要とする場合は、 このマップを使ったほうが、スコア走査が1回で済むため効率的です。
コンストラクタ引数
- Parameters:
score (Score) – 対象となるスコア (無限長スコア可)
default_tempo (float) – スコア冒頭部分にテンポイベントがない区間が 存在する場合、その区間のテンポはこの値であると仮定されます。
bar0len (ticks, optional) – 小節番号 0 の小節の長さを指定します。0を 指定したときは、小節番号 0 の小節は無いとみなされます。Noneの 場合は、拍子イベントの位置から推測されます。
- iterator() Generator[Union[int, float, Fraction], None, Union[int, float, Fraction]]¶
小節開始時刻を順にyield するジェネレータ関数です。
- Yields:
ticks – 小節開始時刻
- Raises:
StopIteration – スコアの最後に到達するとraiseされます。 この例外オブジェクトのvalue属性には、スコアの演奏長が 格納されます。
- mbt2ticks(measures, beats=0, ticks=0) Union[int, float, Fraction]¶
小節番号、拍番号、および加算ティック数を与えて、スコア先頭からの ティック数を求めます。
- Parameters:
measures (int or str) – 小節番号、または “measures`[:`beats][+ticks]” という形式の文字列 (“[]”は省略可を意味する)。 文字列で beats や ticks を指定した場合、 対応する以降の引数の値は無効となります。 文字列で存在しない拍番号を指定したときは例外が送出されます。
beats (int, optional) – 0から始まる小節内の拍番号。 1拍の長さは拍子によって変わります。
ticks (ticks, optional) – 加算されるティック数。1拍より長い 値であっても構いません。
- Returns:
スコア先頭からのティック数
- num_measures(count_bar0=True) int¶
スコア全体の小節数を返します。EventStreamに対しては使えません。
- Parameters:
count_bar0 (bool) – True (default) の場合、弱起による冒頭の 不完全小節を含めた小節数を返します。
- sec2ticks(seconds) Union[int, float, Fraction]¶
スコア先頭からの秒数をティック数へ変換します。
- Parameters:
seconds (float) – スコア先頭からの秒数
- Returns:
スコア先頭からのティック数
- tempo_at(ticks) Union[int, float]¶
スコア先頭からのティック数 ticks の時点におけるテンポを返します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
テンポ値 (BPM)
- ticks2mbt(ticks) Tuple[int, Union[int, float, Fraction], int, Union[int, float, Fraction]]¶
スコア先頭からのティック数を (小節番号、小節内ティック数、拍番号、 拍内ティック数) の4要素タプルへ変換します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
最初の要素は小節番号を表します。 2番目の要素はその小節内におけるティック数を表します。 3番目の要素は、その小節における 0から始まる拍番号を表します。 最後の要素は、その拍内におけるティック数を表します。 1拍の長さは拍子によって変わります(例えば 3/8拍子では 8分音符の 長さ (=240ティック) になります)。
- ticks2sec(ticks) float¶
スコア先頭からのティック数を秒数へ変換します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
スコア先頭からの秒数
- timesig_at(ticks) TimeSignatureEvent¶
スコア先頭からのティック数 ticks の時点における拍子を返します。
- Parameters:
ticks (ticks) – スコア先頭からのティック数
- Returns:
拍子イベント。拍子の指定がないスコアに対して補われた4/4拍子の イベントについては ‘default’ という属性が追加されています。