Class TuningTable

java.lang.Object
com.softsynth.jmsl.util.Tuning
com.softsynth.jmsl.util.TuningTable
Direct Known Subclasses:
PtolemyTuning

public class TuningTable
extends Tuning
  • Constructor Details

    • TuningTable

      public TuningTable()
      No-args constructor uses Gamelan Son of Lion tuning with 5 cents octave stretch
    • TuningTable

      public TuningTable​(double[] freqs)
      Constructor initializes pitches with double[], sets reference frequency to pitches[0], reference pitch defaults to 50
    • TuningTable

      public TuningTable​(double[] frequencies, double referencePitch)
      supply an octave of frequencies and a reference pitch to associate with lowest frequency
  • Method Details

    • getStepsPerOctave

      public double getStepsPerOctave()
      Specified by:
      getStepsPerOctave in class Tuning
      Returns:
      number of steps in an octave. Equal to number of entries in tuning table
    • getFrequencies

      public double[] getFrequencies()
      Returns:
      array of pitches
    • setFrequencies

      public void setFrequencies​(double[] pitches)
      Set array of pitch frequencies, sets referenceFrequency to pitches[0]
    • setPitch

      public void setPitch​(int index, double frequency)
      Set frequency of index'th entry in tuning table. 0 < index < tuningTable.length
    • getPitchClass

      public int getPitchClass​(int pitch)
      Returns:
      pitch class 0..(frequencies.length-1) of pitch arg
    • getFrequency

      public double getFrequency​(double pc, int octaveNumber)
      Specified by:
      getFrequency in class Tuning
      Returns:
      frequency of pitch at pitches[pc] transposed up octaveNumber octaves, octaveNumber=0 is base
    • stretch

      public double stretch​(double pitch, double frequency)
      Overridden Tuning method. Here octave stetch in cents is not distributed evenly over the pitches, but takes jumps at octave boundaries (each pitch in an octave is offset by the same amount as all other pitches in that octave, by an amount equal to (numberOfOctavesAwayFromReferencePitch * octaveStretchInCents).
      Overrides:
      stretch in class Tuning
      Returns:
      frequency stretched according to distance pitch is from reference pitch
    • getFrequency

      public double getFrequency​(double pitch)
      Specified by:
      getFrequency in class Tuning
      Returns:
      frequency of pitch at pitches[getPitchClass(pitch)] transposed to octave. Calls Tuning.stretch() as a last step, which you can override
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • main

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