FoscMetronomeMark

Returns a FoscMetronomeMark.


Description

Tempo indicator.


Attributes Summary

Class Methods

*makeTempoEquationMarkup

Instance Properties

context
customMarkup
isImprecise Is true if tempo is entirely textual or if tempo’s units_per_minute is a range. Otherwise false.
quartersPerMinute
referenceDuration
textualIndication
unitsPerMinute

Instance Methods: Special Methods

+ (abjad: add)
/ (abjad: div)
format
== (not in abjad ?)
< (abjad: lt)
* (abjad mul)
[(abjad:](#(abjad:) rmul)
asCompileString (abjad: str)
- (abjad: sub)
[(abjad:](#(abjad:) truediv)

Instance Methods

durationToSeconds (abjad: duration_to_milliseconds)
listRelatedTempos (abjad: list_related_tempos)
unitDuration (not in abjad – for compatibility with SuperCollider)
unitTempo (not in abjad – for compatibility with SuperCollider)


Usage

  1. Initialize integer-valued metronome mark.

    a = FoscScore();
    b = FoscStaff(FoscLeafMaker().(#[60,62,64,65], [1/8]));
    a.add(b);
    m = FoscMetronomeMark(#[1,4], 90);
    b[0].attach(m);
    a.show;

  2. !!!TODO: incomplete implementation

    Initialize rational-valued metronome mark.

    a = FoscScore();
    b = FoscStaff(FoscLeafMaker().(#[60,62,64,65], [1/8]));
    a.add(b);
    m = FoscMetronomeMark(#[1,4], FoscFraction(182, 2));
    b[0].attach(m);
    a.show;
  3. Initialize from text, duration, and range.

    a = FoscScore();
    b = FoscStaff(FoscLeafMaker().(#[60,62,64,65], [1/8]));
    a.add(b);
    m = FoscMetronomeMark(#[1,4], #[120, 133], "Quick");
    b[0].attach(m);
    a.show;

  4. !!!TODO: incomplete implementation

    Use rational-value units-per-minute together with custom markup for float-valued metronome marks.

    a = FoscScore();
    b = FoscStaff(FoscLeafMaker().(#[60,62,64,65], [1/8]));
    a.add(b);
    t = FoscMetronomeMark.makeTempoEquationMarkup(#[1,4], 90.1);
    m = FoscMetronomeMark(#[1,4], FoscFraction(#[900,10]), customMarkup: t);
    b[0].attach(m);
    a.show;


Class Methods


*makeTempoEquationMarkup


Instance Properties


context


customMarkup


isImprecise

Is true if tempo is entirely textual or if tempo’s units_per_minute is a range. Otherwise false.

Returns true or false.

  1. Example

    FoscMetronomeMark(FoscDuration(1, 4), 60).isImprecise.postln;           // false
    false
    FoscMetronomeMark(4, 60, 'Langsam').isImprecise.postln;                 // false
    false
    FoscMetronomeMark(textualIndication: 'Langsam').isImprecise.postln;     // true
    false
    FoscMetronomeMark(4, [35, 50], 'Langsam').isImprecise.postln;           // true
    true
    FoscMetronomeMark(FoscDuration(1, 4), [35, 50]).isImprecise.postln;     // true
    true


quartersPerMinute

  1. Example

    a = FoscMetronomeMark(FoscDuration(1, 8), 60);
    a.quartersPerMinute.postln;
    30.0


referenceDuration


textualIndication


unitsPerMinute


Instance Methods: Special Methods


+

(abjad: add)


/

(abjad: div)


format


==

(not in abjad ?)

  1. Example

    a = FoscMetronomeMark([1, 4], 72);
    b = FoscMetronomeMark([1, 4], 72);
    c = FoscMetronomeMark([1, 8], 72);
    d = FoscMetronomeMark([1, 4], 60);
    (a == b).postln;         // true
    true
    (a == c).postln;         // false
    false
    (a == d).postln;         // false
    false


<

(abjad: lt)


*

(abjad mul)


(abjad:

rmul)


asCompileString

(abjad: str)


-

(abjad: sub)


(abjad:

truediv)


Instance Methods


durationToSeconds

(abjad: duration_to_milliseconds)

  1. A quarter-note lasts a second at quarter equals 60.

    a = FoscMetronomeMark(#[1,4], 60);
    a.durationToSeconds(1/4).asFloat.postln;
    1.0
  2. A quarter-note lasts 2/3 of a second at quarter equals 60.

    a = FoscMetronomeMark(#[1,4], 90);
    a.durationToSeconds(1/4).asFloat.postln;
    0.66666666666667


listRelatedTempos

(abjad: list_related_tempos)


unitDuration

(not in abjad – for compatibility with SuperCollider)

  1. Example

    a = FoscMetronomeMark([1, 4], 60);
    a.unitDuration.asFloat.postln;
    1.0
  2. Example

    a = FoscMetronomeMark([1, 4], 120);
    a.unitDuration.asFloat.postln;
    0.5


unitTempo

(not in abjad – for compatibility with SuperCollider)

  1. Example

    a = FoscMetronomeMark([1, 4], 60);
    a.unitTempo.asFloat.postln;
    1.0
    a = FoscMetronomeMark([1, 4], 120);
    a.unitTempo.postln;
    2.0