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]” という形式の文字列 (“[]”は省略可を意味する)。 文字列で beatsticks を指定した場合、 対応する以降の引数の値は無効となります。 文字列で存在しない拍番号を指定したときは例外が送出されます。

  • 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, TimeSignatureMap

TempoMap と 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]” という形式の文字列 (“[]”は省略可を意味する)。 文字列で beatsticks を指定した場合、 対応する以降の引数の値は無効となります。 文字列で存在しない拍番号を指定したときは例外が送出されます。

  • 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’ という属性が追加されています。

class KeySignatureMap(score)

Bases: object

スコアから調号イベントを抽出したデータ構造 (key signature map) のクラス です。これは任意時刻における調を取得するために利用されます。

調号イベントがない場合は、ハ長調であると仮定されます。

コンストラクタ引数

Parameters:

score (Score) – 対象となるスコア (無限長スコア可)


key_at(ticks, tk=0) Key

スコア先頭からのティック数 ticks の時点における調を返します。

Parameters:
  • ticks (ticks) – スコア先頭からのティック数

  • tk (int) – トラック番号を指定します。そのトラックに調号イベントが が存在する場合、それらに基づいて調を決定します。無い場合は、 トラック0に含まれる調号イベントに基づいて調を決定します。