Class TuningET

java.lang.Object
com.softsynth.jmsl.util.Tuning
com.softsynth.jmsl.util.TuningET

public class TuningET
extends Tuning
TuningET Equal tempered Tuning
    
     Example:
     TuningET western12 = new TuningET(12, 22.0);
     TuningET quarterTone = new TuningET(24, 22.0);
     
 
Author:
Nick Didkovsky, Phil Burk
  • Field Summary

    Fields
    Modifier and Type Field Description
    static double BASE_FREQ
    in unstretched 12 tone ET, BASE_FREQ = 8.175 can be used as lowest pitch
    static double MIDDLE_C_FREQ
    in 12 tone ET, this reference frequency for pitch 60 ( Middle C ) is 261.6255653005986 Hz [This makes A4 440Hz]
    static double MIDDLE_C_PITCH
    reference pitch 60
  • Constructor Summary

    Constructors
    Constructor Description
    TuningET()
    Build ET tuning with pitch MIDDLE_C_PITCH (60) referenced to MIDDLE_C_FREQ (261.6255653005986 Hz), No octave stretch.
    TuningET​(int stepsPerOctave)
    Build ET tuning with specifie stepsPerOctave, uses pitch 0 referenced to BASE_FREQ (8.175 Hz)
    TuningET​(int stepsPerOctave, double baseFrequency)
    Build ET tuning with pitch 0 referenced to baseFrequency
    TuningET​(int stepsPerOctave, double referenceFrequency, double referencePitch, int octaveStretchInCents)
    Build ET tuning with pitch MIDDLE_C_PITCH (60) referenced to MIDDLE_C_FREQ (261.625565 Hz), specify octave stretch in cents
    TuningET​(int stepsPerOctave, double baseFrequency, int octaveStretchInCents)
    Build ET tuning with pitch 0 referenced to baseFrequency, adding octave stretch in cents.
  • Method Summary

    Modifier and Type Method Description
    double getBaseFrequency()
    Deprecated.
    Use getReferenceFrequency() and getReferencePitch()
    double getFrequency​(double pitch)  
    double getFrequency​(double pitch, int octaveNumber)
    pitchIndex is 0..stepsPerOctave-1.
    double getNotesPerOctave()
    Deprecated.
    use getStepsPerOctave()
    double getPitch​(double frequency)
    convert frequency to double precision pitch
    double getStepsPerOctave()  
    static void main​(java.lang.String[] args)  
    void setBaseFrequency​(double f)
    Deprecated.
    Use setReferenceFrequency() and setReferencePitch()
    void setNotesPerOctave​(double n)
    Deprecated.
    use setStepsPerOctave()
    void setStepsPerOctave​(double n)  

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • BASE_FREQ

      public static final double BASE_FREQ
      in unstretched 12 tone ET, BASE_FREQ = 8.175 can be used as lowest pitch
      See Also:
      Constant Field Values
    • MIDDLE_C_FREQ

      public static final double MIDDLE_C_FREQ
      in 12 tone ET, this reference frequency for pitch 60 ( Middle C ) is 261.6255653005986 Hz [This makes A4 440Hz]
      See Also:
      Constant Field Values
    • MIDDLE_C_PITCH

      public static final double MIDDLE_C_PITCH
      reference pitch 60
      See Also:
      Constant Field Values
  • Constructor Details

    • TuningET

      public TuningET()
      Build ET tuning with pitch MIDDLE_C_PITCH (60) referenced to MIDDLE_C_FREQ (261.6255653005986 Hz), No octave stretch. Useful for western music, for example. Setting octave stretch will cause pitches above middle C to stretch up, pitches below middle C to stretch down
    • TuningET

      public TuningET​(int stepsPerOctave, double baseFrequency)
      Build ET tuning with pitch 0 referenced to baseFrequency
    • TuningET

      public TuningET​(int stepsPerOctave, double baseFrequency, int octaveStretchInCents)
      Build ET tuning with pitch 0 referenced to baseFrequency, adding octave stretch in cents. If you wnat the middle of the tuning to be anchored to a reference frequency, use TuningET(int stepsPerOctave, double referenceFrequency, double referencePitch, int octaveStretchInCents)
    • TuningET

      public TuningET​(int stepsPerOctave, double referenceFrequency, double referencePitch, int octaveStretchInCents)
      Build ET tuning with pitch MIDDLE_C_PITCH (60) referenced to MIDDLE_C_FREQ (261.625565 Hz), specify octave stretch in cents
    • TuningET

      public TuningET​(int stepsPerOctave)
      Build ET tuning with specifie stepsPerOctave, uses pitch 0 referenced to BASE_FREQ (8.175 Hz)
  • Method Details

    • getFrequency

      public double getFrequency​(double pitch, int octaveNumber)
      pitchIndex is 0..stepsPerOctave-1. Includes octave stretch in cents in calculation.
      Specified by:
      getFrequency in class Tuning
      Returns:
      frequency associated with pitchIndex and octaveNumber.
    • getPitch

      public double getPitch​(double frequency)
      convert frequency to double precision pitch
    • getFrequency

      public double getFrequency​(double pitch)
      Specified by:
      getFrequency in class Tuning
      Returns:
      frequency of pitch associated with any pitchIndex. Calculation includes octave stretch in cents (if any). Calls Tuning.stretch() as a last step, which you can override
    • setBaseFrequency

      public void setBaseFrequency​(double f)
      Deprecated.
      Use setReferenceFrequency() and setReferencePitch()
      Sets referenceFrequency to f, sets reference pitch to 0
    • getBaseFrequency

      public double getBaseFrequency()
      Deprecated.
      Use getReferenceFrequency() and getReferencePitch()
    • setNotesPerOctave

      public void setNotesPerOctave​(double n)
      Deprecated.
      use setStepsPerOctave()
    • getNotesPerOctave

      public double getNotesPerOctave()
      Deprecated.
      use getStepsPerOctave()
    • setStepsPerOctave

      public void setStepsPerOctave​(double n)
    • getStepsPerOctave

      public double getStepsPerOctave()
      Specified by:
      getStepsPerOctave in class Tuning
      Returns:
      number of steps in an octave (12 for western 12tet for example)
    • main

      public static void main​(java.lang.String[] args)