abjad.duration
|
Changes |
|
Is true when |
|
Is true when |
|
Is true when |
|
Makes offset from |
Spells |
|
|
Duration. |
|
Offset. |
|
Ratio. |
- abjad.duration.durations(items: list) list[Duration] [source]
Changes
items
to durations.>>> abjad.duration.durations([(15, 8), (3, 8), abjad.TimeSignature((3, 4))]) [Duration(15, 8), Duration(3, 8), Duration(3, 4)]
- abjad.duration.is_duration(argument: object) bool [source]
Is true when
argument
is duration (but not fraction).>>> abjad.duration.is_duration(abjad.Duration(1, 4)) True
>>> abjad.duration.is_duration(abjad.Fraction(1, 4)) False
>>> abjad.duration.is_duration(abjad.Offset(abjad.Fraction(1, 4))) False
>>> abjad.duration.is_duration((1, 4)) False
>>> abjad.duration.is_duration(0) False
- abjad.duration.is_fraction(argument: object) bool [source]
Is true when
argument
is fraction (but not duration).>>> abjad.duration.is_fraction(abjad.Duration(1, 4)) False
>>> abjad.duration.is_fraction(abjad.Fraction(1, 4)) True
>>> abjad.duration.is_fraction(abjad.Offset(abjad.Fraction(1, 4))) False
>>> abjad.duration.is_fraction((1, 4)) False
>>> abjad.duration.is_fraction(0) False
- abjad.duration.is_offset(argument: object) bool [source]
Is true when
argument
is offset.>>> abjad.duration.is_offset(abjad.Duration(1, 4)) False
>>> abjad.duration.is_offset(abjad.Fraction(1, 4)) False
>>> abjad.duration.is_offset(abjad.Offset(abjad.Fraction(1, 4))) True
>>> abjad.duration.is_offset((1, 4)) False
>>> abjad.duration.is_offset(0) False
- abjad.duration.offset(n: int, d: int | None = None) Offset [source]
Makes offset from
n
.>>> abjad.duration.offset(1) Offset(Fraction(1, 1))
- abjad.duration.pair_with_denominator(fraction: Fraction, denominator: int) tuple[int, int] [source]
Spells
fraction
as pair withdenominator
.>>> for numerator in range(12): ... fraction = abjad.Fraction(numerator, 6) ... pair = abjad.duration.pair_with_denominator(fraction, 6) ... print(fraction, pair) ... 0 (0, 6) 1/6 (1, 6) 1/3 (2, 6) 1/2 (3, 6) 2/3 (4, 6) 5/6 (5, 6) 1 (6, 6) 7/6 (7, 6) 4/3 (8, 6) 3/2 (9, 6) 5/3 (10, 6) 11/6 (11, 6)
>>> for numerator in range(12): ... fraction = abjad.Fraction(numerator, 6) ... pair = abjad.duration.pair_with_denominator(fraction, 8) ... print(fraction, pair) ... 0 (0, 8) 1/6 (1, 6) 1/3 (1, 3) 1/2 (4, 8) 2/3 (2, 3) 5/6 (5, 6) 1 (8, 8) 7/6 (7, 6) 4/3 (4, 3) 3/2 (12, 8) 5/3 (5, 3) 11/6 (11, 6)
>>> for numerator in range(12): ... fraction = abjad.Fraction(numerator, 6) ... pair = abjad.duration.pair_with_denominator(fraction, 12) ... print(fraction, pair) ... 0 (0, 12) 1/6 (2, 12) 1/3 (4, 12) 1/2 (6, 12) 2/3 (8, 12) 5/6 (10, 12) 1 (12, 12) 7/6 (14, 12) 4/3 (16, 12) 3/2 (18, 12) 5/3 (20, 12) 11/6 (22, 12)
- class abjad.duration.Duration(numerator=0, denominator=None)[source]
Duration.
>>> abjad.Duration(3, 16) Duration(3, 16)
Gets clock string.
Gets dot count.
Gets assignable duration equal to or just greater than this duration.
Gets duration equal or just greater power of two.
Gets assignable duration equal or just less than this duration.
Gets duration of the form
d**2
equal to or just less than this duration.exponent
()Gets base-2 exponent.
Gets flag count.
fraction
()Returns duration as fraction.
Is true when duration is assignable.
Is true when denominator of duration is integer power of two.
Gets LilyPond duration string.
pair
()Gets numerator and denominator pair.
Gets reciprocal.
- clock_string() str [source]
Gets clock string.
Rounds down to nearest second.
>>> abjad.Duration(117).clock_string() "1'57''"
- dot_count() int [source]
Gets dot count.
Dot count defined equal to number of dots required to notate duration. Raises assignability error when duration is not assignable.
>>> for n in range(1, 16 + 1): ... try: ... duration = abjad.Duration(n, 16) ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... dot_count = duration.dot_count() ... string = f"{sixteenths[0]}/{sixteenths[1]}\t{dot_count}" ... print(string) ... except abjad.AssignabilityError: ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... print(f"{sixteenths[0]}/{sixteenths[1]}\t--") ... 1/16 0 2/16 0 3/16 1 4/16 0 5/16 -- 6/16 1 7/16 2 8/16 0 9/16 -- 10/16 -- 11/16 -- 12/16 1 13/16 -- 14/16 2 15/16 3 16/16 0
- equal_or_greater_assignable() Duration [source]
Gets assignable duration equal to or just greater than this duration.
>>> for numerator in range(1, 16 + 1): ... duration = abjad.Duration(numerator, 16) ... result = duration.equal_or_greater_assignable() ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... print(f"{sixteenths[0]}/{sixteenths[1]}\t{result!s}") ... 1/16 1/16 2/16 1/8 3/16 3/16 4/16 1/4 5/16 3/8 6/16 3/8 7/16 7/16 8/16 1/2 9/16 3/4 10/16 3/4 11/16 3/4 12/16 3/4 13/16 7/8 14/16 7/8 15/16 15/16 16/16 1
- equal_or_greater_power_of_two() Duration [source]
Gets duration equal or just greater power of two.
>>> for numerator in range(1, 16 + 1): ... duration = abjad.Duration(numerator, 16) ... result = duration.equal_or_greater_power_of_two() ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... print(f"{sixteenths[0]}/{sixteenths[1]}\t{result!s}") ... 1/16 1/16 2/16 1/8 3/16 1/4 4/16 1/4 5/16 1/2 6/16 1/2 7/16 1/2 8/16 1/2 9/16 1 10/16 1 11/16 1 12/16 1 13/16 1 14/16 1 15/16 1 16/16 1
- equal_or_lesser_assignable() Duration [source]
Gets assignable duration equal or just less than this duration.
>>> for numerator in range(1, 16 + 1): ... duration = abjad.Duration(numerator, 16) ... result = duration.equal_or_lesser_assignable() ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... print(f"{sixteenths[0]}/{sixteenths[1]}\t{result!s}") ... 1/16 1/16 2/16 1/8 3/16 3/16 4/16 1/4 5/16 1/4 6/16 3/8 7/16 7/16 8/16 1/2 9/16 1/2 10/16 1/2 11/16 1/2 12/16 3/4 13/16 3/4 14/16 7/8 15/16 15/16 16/16 1
- equal_or_lesser_power_of_two() Duration [source]
Gets duration of the form
d**2
equal to or just less than this duration.>>> for numerator in range(1, 16 + 1): ... duration = abjad.Duration(numerator, 16) ... result = duration.equal_or_lesser_power_of_two() ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... print(f"{sixteenths[0]}/{sixteenths[1]}\t{result!s}") ... 1/16 1/16 2/16 1/8 3/16 1/8 4/16 1/4 5/16 1/4 6/16 1/4 7/16 1/4 8/16 1/2 9/16 1/2 10/16 1/2 11/16 1/2 12/16 1/2 13/16 1/2 14/16 1/2 15/16 1/2 16/16 1
- exponent() int [source]
Gets base-2 exponent.
>>> for numerator in range(1, 16 + 1): ... duration = abjad.Duration(numerator, 16) ... exponent = duration.exponent() ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... print(f"{sixteenths[0]}/{sixteenths[1]}\t{duration.exponent()!s}") ... 1/16 4 2/16 3 3/16 3 4/16 2 5/16 2 6/16 2 7/16 2 8/16 1 9/16 1 10/16 1 11/16 1 12/16 1 13/16 1 14/16 1 15/16 1 16/16 0
- flag_count() int [source]
Gets flag count.
Flag count defined equal to number of flags required to notate duration.
>>> for n in range(1, 16 + 1): ... duration = abjad.Duration(n, 64) ... sixty_fourths = abjad.duration.pair_with_denominator(duration, 64) ... print(f"{sixty_fourths[0]}/{sixty_fourths[1]}\t{duration.flag_count()}") ... 1/64 4 2/64 3 3/64 3 4/64 2 5/64 2 6/64 2 7/64 2 8/64 1 9/64 1 10/64 1 11/64 1 12/64 1 13/64 1 14/64 1 15/64 1 16/64 0
- is_assignable() bool [source]
Is true when duration is assignable.
>>> for numerator in range(0, 16 + 1): ... duration = abjad.Duration(numerator, 16) ... sixteenths = abjad.duration.pair_with_denominator(duration, 16) ... print(f"{sixteenths[0]}/{sixteenths[1]}\t{duration.is_assignable()}") ... 0/16 False 1/16 True 2/16 True 3/16 True 4/16 True 5/16 False 6/16 True 7/16 True 8/16 True 9/16 False 10/16 False 11/16 False 12/16 True 13/16 False 14/16 True 15/16 True 16/16 True
- is_dyadic() bool [source]
Is true when denominator of duration is integer power of two.
>>> for n in range(1, 16 + 1): ... duration = abjad.Duration(1, n) ... print(f"{duration!s}\t{duration.is_dyadic()}") ... 1 True 1/2 True 1/3 False 1/4 True 1/5 False 1/6 False 1/7 False 1/8 True 1/9 False 1/10 False 1/11 False 1/12 False 1/13 False 1/14 False 1/15 False 1/16 True
- lilypond_duration_string() str [source]
Gets LilyPond duration string.
>>> abjad.Duration(3, 16).lilypond_duration_string() '8.'
- class abjad.duration.Offset(fraction: Fraction, displacement: Duration | None = None)[source]
Offset.
>>> fraction = abjad.Fraction(3, 16) >>> abjad.Offset(fraction) Offset(Fraction(3, 16))
>>> displacement = abjad.Duration(-1, 16) >>> abjad.Offset(fraction, displacement=displacement) Offset(Fraction(3, 16), displacement=Duration(-1, 16))
Makes new offset equal to this offset without displacement.
- remove_displacement()[source]
Makes new offset equal to this offset without displacement.
>>> duration = abjad.Duration(-1, 16) >>> offset = abjad.Offset(abjad.Fraction(1, 4), displacement=duration) >>> offset Offset(Fraction(1, 4), displacement=Duration(-1, 16))
>>> offset.remove_displacement() Offset(Fraction(1, 4))
- class abjad.duration.Ratio(numerator: int, denominator: int)[source]
Ratio.
>>> abjad.Ratio(6, 4) Ratio(numerator=6, denominator=4)
Abjad ratios are two-term, unreduced integer ratios of the form
n:d
.These are used primarily in modeling tuplet ratios like
3:2
and6:4
.Changes (unreduced) ratio to (reduced) fraction.
Is true when ratio numerator is less than ratio denominator.
Is true when ratio is normalized diminution.
Is true when ratio denominator is less than ratio numerator.
Is true when ratio denominator is nonnegative integer power of two.
Is true when fraction form of ratio is greater than
1/2
and less than2
.Is true when ratio numerator and denominator are relatively prime.
Is true when ratio numerator equals ratio denominator.
Get reciprocal of ratio.
- as_fraction()[source]
Changes (unreduced) ratio to (reduced) fraction.
>>> abjad.Ratio(6, 4).as_fraction() Fraction(3, 2)
- is_augmented() bool [source]
Is true when ratio numerator is less than ratio denominator.
>>> abjad.Ratio(6, 4).is_augmented() False
>>> abjad.Ratio(3, 2).is_augmented() False
>>> abjad.Ratio(4, 6).is_augmented() True
>>> abjad.Ratio(2, 3).is_augmented() True
>>> abjad.Ratio(2, 2).is_augmented() False
>>> abjad.Ratio(1, 1).is_augmented() False
- is_canonical() bool [source]
Is true when ratio is normalized diminution.
>>> abjad.Ratio(6, 4).is_canonical() True
>>> abjad.Ratio(3, 2).is_canonical() True
>>> abjad.Ratio(4, 6).is_canonical() False
>>> abjad.Ratio(2, 3).is_canonical() False
>>> abjad.Ratio(2, 2).is_canonical() False
>>> abjad.Ratio(1, 1).is_canonical() False
- is_diminished() bool [source]
Is true when ratio denominator is less than ratio numerator.
>>> abjad.Ratio(6, 4).is_diminished() True
>>> abjad.Ratio(3, 2).is_diminished() True
>>> abjad.Ratio(4, 6).is_diminished() False
>>> abjad.Ratio(2, 3).is_diminished() False
>>> abjad.Ratio(2, 2).is_diminished() False
>>> abjad.Ratio(1, 1).is_diminished() False
- is_dyadic() bool [source]
Is true when ratio denominator is nonnegative integer power of two.
>>> abjad.Ratio(6, 4).is_dyadic() True
>>> abjad.Ratio(3, 2).is_dyadic() True
>>> abjad.Ratio(4, 6).is_dyadic() False
>>> abjad.Ratio(2, 3).is_dyadic() False
>>> abjad.Ratio(2, 2).is_dyadic() True
>>> abjad.Ratio(1, 1).is_dyadic() True
- is_normalized() bool [source]
Is true when fraction form of ratio is greater than
1/2
and less than2
.>>> abjad.Ratio(6, 4).is_normalized() True
>>> abjad.Ratio(3, 2).is_normalized() True
>>> abjad.Ratio(4, 6).is_normalized() True
>>> abjad.Ratio(2, 3).is_normalized() True
>>> abjad.Ratio(2, 2).is_normalized() True
>>> abjad.Ratio(1, 1).is_normalized() True
>>> abjad.Ratio(10, 4).is_normalized() False
>>> abjad.Ratio(4, 10).is_normalized() False
>>> abjad.Ratio(9, 4).is_normalized() False
>>> abjad.Ratio(4, 9).is_normalized() False
- is_reduced() bool [source]
Is true when ratio numerator and denominator are relatively prime.
>>> abjad.Ratio(6, 4).is_reduced() False
>>> abjad.Ratio(3, 2).is_reduced() True
>>> abjad.Ratio(4, 6).is_reduced() False
>>> abjad.Ratio(2, 3).is_reduced() True
>>> abjad.Ratio(2, 2).is_reduced() False
>>> abjad.Ratio(1, 1).is_reduced() True
- is_trivial() bool [source]
Is true when ratio numerator equals ratio denominator.
>>> abjad.Ratio(6, 4).is_trivial() False
>>> abjad.Ratio(3, 2).is_trivial() False
>>> abjad.Ratio(4, 6).is_trivial() False
>>> abjad.Ratio(2, 3).is_trivial() False
>>> abjad.Ratio(2, 2).is_trivial() True
>>> abjad.Ratio(1, 1).is_trivial() True