abjad.duration
|
Changes |
|
Is true when |
|
Is true when |
|
Makes offset from |
Spells |
|
|
Value duration. |
|
Offset. |
|
Ratio. |
- abjad.duration.durations(items: list) list[Duration] [source]
Changes
items
to durations.>>> items = [(15, 8), (3, 8), abjad.TimeSignature((3, 4))] >>> abjad.duration.durations(items) [Duration(numerator=15, denominator=8), Duration(numerator=3, denominator=8), Duration(numerator=3, denominator=4)]
- abjad.duration.is_fraction(argument: object) bool [source]
Is true when
argument
is fraction (but not duration).>>> 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.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: int, denominator: int = 1)[source]
Value duration.
>>> abjad.Duration(2, 8) Duration(numerator=1, denominator=4)
Returns value duration as fraction.
Changes duration to (numerator, denominator) pair.
Gets dot count.
exponent
()Gets base-2 exponent.
Gets flag count.
Is true when duration is assignable.
Is true when denominator of duration is integer power of two.
Gets LilyPond duration string.
pair
()Gets (numerator, denominator) pair.
Gets reciprocal.
- as_fraction() Fraction [source]
Returns value duration as fraction.
>>> abjad.Duration(1, 4).as_fraction() Fraction(1, 4)
- as_integer_ratio() tuple[int, int] [source]
Changes duration to (numerator, denominator) pair.
>>> abjad.Duration(1, 4).as_integer_ratio() (1, 4)
- 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): ... duration = abjad.Duration(n, 16) ... fraction = duration.as_fraction() ... sixteenths = abjad.duration.pair_with_denominator(fraction, 16) ... numerator, denominator = sixteenths ... try: ... dot_count = duration.dot_count() ... string = f"{numerator}/{denominator}\t{dot_count}" ... print(string) ... except abjad.AssignabilityError: ... print(f"{numerator}/{denominator}\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
- exponent() int [source]
Gets base-2 exponent.
>>> for numerator in range(1, 16 + 1): ... duration = abjad.Duration(numerator, 16) ... fraction = duration.as_fraction() ... exponent = duration.exponent() ... sixteenths = abjad.duration.pair_with_denominator(fraction, 16) ... numerator, denominator = sixteenths ... print(f"{numerator}/{denominator}\t{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) ... fraction = duration.as_fraction() ... sixty_fourths = abjad.duration.pair_with_denominator(fraction, 64) ... numerator, denominator = sixty_fourths ... flag_count = duration.flag_count() ... print(f"{numerator}/{denominator}\t{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) ... fraction = duration.as_fraction() ... sixteenths = abjad.duration.pair_with_denominator(fraction, 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) ... result = duration.is_dyadic() ... print(f"1/{n}\t{result}") ... 1/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
- 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(numerator=-1, denominator=16))
duration
()Changes offset to duration.
Makes new offset equal to this offset without displacement.
- duration() Duration [source]
Changes offset to duration.
>>> fraction = abjad.Fraction(1, 4) >>> offset = abjad.Offset(fraction) >>> offset.duration() Duration(numerator=1, denominator=4)
- 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(numerator=-1, denominator=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
.fraction
()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.
- fraction()[source]
Changes (unreduced) ratio to (reduced) fraction.
>>> abjad.Ratio(6, 4).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