Universal Music Theory Library - v0.12.0
    Preparing search index...

    Class CentTuning

    Cent-based tuning - pitch classes defined by exact cent offsets within one octave. Intended for historical temperaments (Werckmeister, Kirnberger, meantone, etc.) and any tuning system defined by cent deviations from equal temperament.

    The octave is always treated as exactly 1200 cents (2:1), regardless of the last value in the array. Historical temperaments define pitch classes, not the octave itself.

    Example: Werckmeister III (approximate)

    new CentTuning('Werckmeister III', [90, 192, 294, 390, 498, 588, 696, 792, 888, 996, 1092])
    

    Hierarchy (View Summary)

    Index

    Constructors

    • Parameters

      • name: string
      • cents: number[]

        Cent values for each pitch class above the tonic (unison excluded). The unison (0¢) is prepended automatically if absent. At least one value is required.

      • baseFrequency: number = 440

      Returns CentTuning

    Properties

    baseFrequency: number = 440

    Reference frequency for step 0 (A4). Default: 440 Hz.

    cents: number[]

    Cent values for each pitch class above the tonic (unison excluded). The unison (0¢) is prepended automatically if absent. At least one value is required.

    name: string

    Display name: '12-TET', 'Ptolemaic Just Intonation', 'Werckmeister III'.

    Accessors

    • get octaveSteps(): number

      Number of steps that constitute one period (usually one octave, 2:1). For non-octave tunings (e.g. Bohlen-Pierce) this is steps per tritave.

      Returns number

    Methods

    • Returns the frequency in Hz for a given step offset from A4.

      Parameters

      • steps: number

      Returns number

    • Returns a note name for the given step: the 12-TET name of the note the step stands for (getStandardStep), in sharps ("C#4", "A4"), or "Step N" when it stands for none.

      Parameters

      • step: number

      Returns string

    • Converts a 12-TET step pattern (successive steps, e.g. major [2, 2, 1, 2, 2, 2, 1]) to this tuning. Each note's position above the first is mapped, not each step, so the pattern keeps its span: in 22-EDO the major scale spans 22 steps (rounding each step would give 24), and in a 7-note JI scale a semitone does not collapse to 0 steps. A step comes out 0 only when two notes land on the same step of this tuning.

      Parameters

      • pattern: readonly number[]

      Returns number[]

    • The 12-TET note a step stands for: the 12-TET step (A4 = 0) nearest in cents, when getStepFromStandard maps that note back to this step. Names, chord qualities and Roman numerals in any tuning are read through it.

      • In a tuning with 12 steps per octave (12-TET, Werckmeister III, 5-limit JI) every step stands for itself.
      • In 19- or 31-EDO the steps that stand for a note are the meantone images of the 12 notes; in 31-EDO C is step -23 and C# step -21, and steps -22 and -20 stand for none (spelled notes, where the 31-EDO D flat is step -20, are not modelled yet).
      • A quarter tone in 24-EDO stands for none.

      Parameters

      • step: number

      Returns number | null

      The 12-TET step, or null when the step stands for no 12-TET note, and always in a tuning that does not repeat at the octave.

    • Maps a 12-TET step to this tuning's step nearest in cents; one to one with 12 pitch classes.

      Parameters

      • standardStep: number

      Returns number

    • The step of target that stands for the same 12-TET note as step does here (getStandardStep on both sides): C4 is step -9 in 12-TET and step -23 in 31-EDO.

      Parameters

      Returns number | null

      The step in target, or null when step stands for no note or target has no step for it.