com.softsynth.jmsl.util
Class TuningTable

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

public class TuningTable
extends Tuning


Constructor Summary
TuningTable()
           
TuningTable(double[] freqs)
          Constructor initializes pitches with double[], sets reference frequency to pitches[0], reference pitch defaults to 50
TuningTable(double[] pitches, double referencePitch)
          supply an octave of freuencies and a reference pitch to associate with lowest frequency
 
Method Summary
 double[] getFrequencies()
           
 double getFrequency(double pitch)
           
 double getFrequency(double pitchIndex, int octaveNumber)
           
 double getStepsPerOctave()
           
static void main(java.lang.String[] args)
           
 void setFrequencies(double[] pitches)
          Set array of pitch frequencies, sets referenceFrequency to pitches[0]
 void setPitch(int index, double frequency)
          Set frequency of index'th entry in tuning table.
 double stretch(double pitch, double frequency)
          Overridden Tuning method.
 java.lang.String toString()
           
 
Methods inherited from class com.softsynth.jmsl.util.Tuning
freqPlusCents, getOctaveRatio, getOctaveStretchCents, getReferenceFrequency, getReferencePitch, setOctaveRatio, setOctaveStretchCents, setReferenceFrequency, setReferencePitch
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TuningTable

public TuningTable()

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[] pitches,
                   double referencePitch)
supply an octave of freuencies and a reference pitch to associate with lowest frequency

Method Detail

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


getFrequency

public double getFrequency(double pitchIndex,
                           int octaveNumber)
Specified by:
getFrequency in class Tuning
Returns:
frequency of pitch at pitches[pitchIndex] 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[pitchIndex % pitches.length] transposed to octave=((pitch - getReferencePitch()) / pitches.length) 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)