Package com.softsynth.jmsl.util

Interface Summary
AttributeBuildable A class that implements AttributeBuildable should be able to completely restore its state based on values provided by public set() methods
HandleSpecialXMLTag An Object that implements this interface can define a method to handle XML tags that fall outside of the simple bean model of attribute/value pair.
Interpolator An Interpolator is first set up with two (x,y) points, then can be fed any other x to get a y
MusicShapeEditorOperator Interface to operate on the currently selected MusicShape in MusicShapeEditor.
RunRangeChecker A test to extract a range of objects linked to each other.
XMLCreatable Classes implementing this acquire XML attributes and generate a new object from these attributes.

Class Summary
AccMutHolder Accessor and Mutator holder.
ADSRDataMaker Build a simple 4 stage envelope.
BeanEditor Dialog to change values of a bean.
BeanInspector Scan the public get and set methods of a class.
Bessel Nick Didkovsky 12/9/98 11:41PM
ChebyshevPolynomial ChebyshevPolynomial
ChebyshevTableData ChebyshevTableData
Provides an array of short[] containing data generated by Chebyshev polynomial.
Input to Chebyshev is -1..1, output is -1..1, scaled to -32768..32767 and stored in short[]
CopyMusicShapeEditorOperator copy selected range to MusicShapeEditor's static copy buffer
DataTranslatorVector A Vector of DataTranslator.
EchoingByteArrayOutputStream An output stream which contains a ByteArrayOutputStream.
EnvelopeDataMaker Use an arbitrary interpolator to make a sequence of linear segments approximating function shape
EventDistributions Implements 'entry delay approach' to generate event densities.
ExponentialDecayInterpolator Interpolate a value along an exponentially decreasing curve defined by two points (x1,y1) and (x2,y2) where x1 < x2, y1 > y2.
ExponentialInterpolator Interpolate a value along an exponentially rising curve defined by two points (x1,y1) and (x2,y2) where x1 < x2, y1 < y2.
FitToRangeMusicShapeEditorOperator Compress or expand each element in selected range so that it fits within floor and ceiling thresholds set by user in MusicShapeEditor
FrequencyToPitchTranslator Use this to translate a double[] where frequency is in data[1] and Instrument expects pitch Uses TuningET.getPitch() for default 12tet tuning
FunkyBean A bean for testing com.softsynth.jmsl.util.BeanEditor
HailstoneSequence Generate "Hailstone Sequence" based on an article in Scientific American FIXME - find reference.
HalfCosineInterpolator Interpolate a value along an S curve (half cosine)
HarmonicComplexity Some tools for handling intervals ordered by their "harmonic complexity."
From least to most complex, I'm suggesting:
{0, 7, 5, 4, 9, 3, 10, 6, 2, 8, 11, 1 }

I came up with my ranking with a simple model: examine partials one by one up from the root.
HarmonicPolynomial HarmonicPolynomial
This is just like ChebyshevPolynomial, except T0 is defined to be 0 instead of 1.
InstrumentXMLLoader Behaves like simpleXMLLoader except that it knows it's got an Instrument, and call in endElement()
InvertMusicShapeEditorOperator Invert a range of a MusicShape about the inversion level set by user.
JMSL103NameMap Translate defunct v101 class names to new replacements.
JMSLClassLoader Use JMSLClassLoader.load(classname) instead of Class.forName(classname).
JMSLClassLoader.load() first tries Class.forName().
JMSLMath Some static methods for logarithms and other misc useful math
LinearAccelerator Calculate the accelerated duration of an event, given the acceleration, the event's starting time, and its duration.
LinearInterpolator Interpolate a value along a line defined by two points (x1,y1) and (x2,y2)
LinkedList Singly linked list.
MarkovObjectChooser First order Markov table and Markov Chain generator
MIDIFileToMusicShape MIDIFileToMusicShape Parse a MidiFile and build a ParallelCollection of MusicShape
If the MidiFile is Type 1 (which includes Track chunks), one MusicShape will be created for each track.
MidiPitchNamer Input is a Midi style pitch (ex 60 for middle C)
Translate to pitch name & octave
Example 60 -> "C4", 61 -> "C#4" With setAccPrefSharp(false), 61 -> "Db4"
MultiInterpolator A sequence of Interpolators each of which is active for a particular range of x.
ObjectArrayEnumerator provide Enumerator for Object[]
Oof One over F distribution after R.F.
PasteMusicShapeEditorOperator Paste to current MusicShapes location the contents of the 0th element in MusicShapeEditor's static copy buffer.
Patch Represents the output of one instrument being patched to the input of a JSynSignalProcessingInstrument.
PlayTimeDoubleArrayPair This is used by TunedSynthNoteInstrument.update() and its subclasses to retrieve synthnotes based on update dimension and most recent playtime of double[] data
Polynomial Polynomial
Implement polynomial using MusicShape as coefficient holder.
PolynomialTableData PolynomialTableData
Provides an array of short[] containing data generated by a polynomial.
Primes use sieve of eratosthenes to find prime number nearest to requested value.
RandomDriver RandomDriver, an object of this type generates a random number sequence whose seed can be set and gotten.
RandomEnvDataMaker Build a random n stage envelope.
RandomizeMusicShapeEditorOperator Randomize values of selected elements within the min/max ranges set by user in MusicShapeEditor
RandomSequence Generate evenly distributed pseudo-random sequence of integers within a given inclusive range.
RandomWalkSequence Generate pseudo-random sequence of integers within a given inclusive range.
RemoveMusicShapeEditorOperator Remove selected range from a MusicShape in MusicShapeEditor
RetrogradeMusicShapeEditorOperator Reverse a range of a MusicShape
RunRangeFinder This class scans its Objects, applies an arbitrary boolean test to them and generates a Vector of RunRange.
ScaleMusicShapeEditorOperator transpose and scale selected range of MusicShape by (v2 / v3) or (v3 / v2)
ScaleToTotalMusicShapeEditorOperator Sum the total of selected range.
ScrambleMusicShapeEditorOperator Scramble selected range of a MusicShape in MusicShapeEditor
SequencerGeneratorAdapter SequenceGenerator with reusable random driver implementation Contains its own RandomDriver which can be used to make random choices.
SimplePrintingInterpreter An Interpreter that simply prints the time and the MusicShape data it is being handed.
SimpleXMLLoader Read in an XML file that describes an Object, and recreate the object with values found for all matching get/set methods that handle primitive types (String, boolean, int, double), Example, Class com.widgits.City below has matching get/set methods for popuation
SimpleXMLSaver Write out an XML file that describes an Object, with values for all matching get/set methods that handle primitive types (String, boolean, int, double), the class name, and tag of your choice.
SortMusicShapeEditorOperator Sort in ascending order a selected range of a MusicShape.
Sorts Sort array of double.
TimeSignature TimeSignature class.
TransposeMusicShapeEditorOperator Transpose selected range of MusicShape by v1
TuningET TuningET Equal tempered Tuning
UnZoomMusicShapeEditorOperator Zoom out to entire range of elements in MusicShape
WeightedIntegerSequence Define an array of weights where the weight of int i is associated with the value weights[i]
next() chooses an int 0..weights.length-1, following a weighted distribution

For example, the weight array { 1.0, 1.0 } will generate values 0 and 1 with a 50/50 distribution
The weight array { 1, 2, 1 } will generate ints 0, 1, 2, with the probability of 1 being chosen twice as high as the probability of 0 or 2 being chosen.
WeightedObjectChooser Holds objects and associated weights.
ZoomMusicShapeEditorOperator Zoom in to selected range on MusicShape

Exception Summary