# Hierarchy For All Packages

Package Hierarchies:

- jm,
- jm.audio,
- jm.audio.io,
- jm.audio.math,
- jm.audio.synth,
- jm.constants,
- jm.gui.cpn,
- jm.gui.graph,
- jm.gui.helper,
- jm.gui.histogram,
- jm.gui.show,
- jm.gui.sketch,
- jm.gui.wave,
- jm.midi,
- jm.midi.event,
- jm.music.data,
- jm.music.net,
- jm.music.rt,
- jm.music.tools,
- jm.music.tools.fuzzy,
- jm.music.tools.ga,
- jm.util

## Class Hierarchy

- java.lang.Object
  - jm.music.tools.AdaptiveMatrix
  - jm.music.data.Alignment (implements java.io.Serializable)
  - jm.music.data.Anchoring
  - jm.gui.cpn.AppletImages (implements jm.gui.cpn.Images)
  - jm.midi.event.ATouch (implements java.lang.Cloneable, jm.midi.event.VoiceEvt)
  - jm.audio.Audio (implements jm.JMC)
  - jm.audio.io.AudioFileIn
  - jm.audio.io.AudioFileOut
  - jm.audio.AudioObject (implements jm.JMC)
    - jm.audio.synth.Add
    - jm.audio.synth.ADSR (implements jm.JMC)
    - jm.audio.synth.AllFGTR
    - jm.audio.synth.AllPass
    - jm.audio.synth.Comb
    - jm.audio.synth.Compressor
    - jm.audio.synth.Delay
    - jm.audio.synth.Envelope (implements jm.JMC)
    - jm.audio.synth.FFT
    - jm.audio.synth.FGTR
    - jm.audio.synth.Filter
    - jm.audio.synth.Grain2
    - jm.audio.synth.Granulator
    - jm.audio.synth.InverseFFT
    - jm.audio.synth.Invert
    - jm.audio.synth.Multiply
    - jm.audio.synth.Noise
    - jm.audio.synth.NoteBuffer
    - jm.audio.synth.NoteBufferReversed
    - jm.audio.synth.Oscillator
    - jm.audio.synth.Pluck
    - jm.audio.io.PrintOut (implements jm.JMC)
    - jm.audio.synth.ReSample
    - jm.audio.io.RTIn
    - jm.audio.io.SampleIn (implements jm.JMC)
    - jm.audio.io.SampleOut (implements jm.JMC)
    - jm.audio.synth.Smooth
    - jm.audio.synth.Splitter
    - jm.audio.synth.Spring
    - jm.audio.synth.StereoPan
    - jm.audio.synth.TapDelay
    - jm.audio.io.TextIn (implements jm.JMC)
    - jm.audio.synth.Value
    - jm.audio.synth.Volume
    - jm.audio.synth.Wavelet
    - jm.audio.synth.Waveshaper
    - jm.audio.synth.WaveTable
    - jm.audio.synth.Window
  - jm.midi.event.CChange (implements java.lang.Cloneable, jm.midi.event.VoiceEvt)
  - jm.music.tools.ChordAnalysis
  - java.awt.Component (implements java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable)
    - java.awt.Button (implements javax.accessibility.Accessible)
      - jm.util.AbstractReadButton
      - jm.util.ReadFileButton
      - jm.util.ReadFolderButton
    - java.awt.Canvas (implements javax.accessibility.Accessible)
      - jm.gui.graph.GraphCanvas
        - jm.gui.graph.LineGraphCanvas
      - jm.gui.show.ShowArea
      - jm.gui.show.ShowRuler (implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener)
      - jm.gui.sketch.SketchRuler (implements java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener)
      - jm.gui.sketch.SketchScoreArea (implements jm.JMC, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener)
      - jm.gui.wave.WaveCanvas
    - java.awt.Container
      - javax.swing.JComponent (implements java.io.Serializable)
        - javax.swing.AbstractButton (implements java.awt.ItemSelectable, javax.swing.SwingConstants)
          - javax.swing.JButton (implements javax.accessibility.Accessible)
            - jm.util.ReadFilesJButton
        - javax.swing.JPanel (implements javax.accessibility.Accessible)
          - jm.gui.cpn.JGrandStave (implements jm.JMC)
      - java.awt.Panel (implements javax.accessibility.Accessible)
        - jm.gui.cpn.Stave (implements jm.JMC, java.awt.event.KeyListener)
          - jm.gui.cpn.BassStave (implements jm.JMC)
          - jm.gui.cpn.GrandStave (implements jm.JMC)
          - jm.gui.cpn.PianoStave (implements jm.JMC)
          - jm.gui.cpn.TrebleStave (implements jm.JMC)
        - jm.gui.wave.WaveRuler (implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener)
        - jm.gui.wave.WaveScrollPanel (implements java.awt.event.ActionListener, java.awt.event.AdjustmentListener)
      - java.awt.ScrollPane (implements javax.accessibility.Accessible)
        - jm.gui.graph.LineGraph
        - jm.gui.show.ShowPanel
      - java.awt.Window (implements javax.accessibility.Accessible)
        - java.awt.Dialog
          - jm.gui.cpn.CpnZoomScreen (implements java.awt.event.ActionListener, java.awt.event.WindowListener)
          - jm.gui.cpn.LetterNotesEditor (implements java.awt.event.ActionListener, java.awt.event.WindowListener)
          - jm.gui.cpn.NoteEditor (implements java.awt.event.ActionListener, java.awt.event.WindowListener)
          - jm.gui.cpn.ParmScreen (implements java.awt.event.ActionListener, java.awt.event.WindowListener)
          - jm.gui.cpn.PhraseViewer (implements java.awt.event.WindowListener)
        - java.awt.Frame (implements java.awt.MenuContainer)
          - jm.gui.helper.HelperGUI (implements java.awt.event.ActionListener, java.awt.event.AdjustmentListener, jm.JMC)
          - jm.gui.histogram.HistogramFrame (implements java.awt.event.ActionListener, jm.JMC, java.awt.event.WindowListener)
          - jm.gui.cpn.Notate (implements java.awt.event.ActionListener, jm.JMC, java.awt.event.WindowListener)
          - jm.gui.show.ShowScore (implements java.awt.event.ActionListener, java.awt.event.WindowListener)
          - jm.gui.sketch.SketchScore (implements java.awt.event.ActionListener, java.awt.event.WindowListener)
    - jm.gui.histogram.Histogram (implements jm.JMC)
    - jm.gui.show.NoteGraphic (implements java.awt.event.MouseListener)
  - jm.util.Convert
  - jm.music.data.CPhrase (implements java.lang.Cloneable, jm.JMC, java.io.Serializable)
  - jm.midi.event.CPres (implements java.lang.Cloneable, jm.midi.event.VoiceEvt)
  - java.util.Dictionary<K,V>
    - java.util.Hashtable<K,V> (implements java.lang.Cloneable, java.util.Map<K,V>, java.io.Serializable)
      - java.util.Properties
        - jm.gui.cpn.StavePhraseProperties
  - jm.midi.event.EndTrack (implements jm.midi.event.Event)
  - jm.audio.synth.EnvPoint
  - jm.audio.math.Factorize
  - jm.music.tools.fuzzy.FuzzyNumber
  - jm.music.tools.fuzzy.FuzzySet
  - jm.music.tools.ga.GAComponent
    - jm.music.tools.ga.FitnessEvaluater
      - jm.music.tools.ga.NormalDistributionFE
    - jm.music.tools.ga.Mutater
      - jm.music.tools.ga.ComplexMutater
    - jm.music.tools.ga.ParentSelector
      - jm.music.tools.ga.SimpleParentSelector
    - jm.music.tools.ga.PopulationInitialiser
      - jm.music.tools.ga.ClimaticPopInitialiser
    - jm.music.tools.ga.Recombiner
      - jm.music.tools.ga.OnePointCrossover
    - jm.music.tools.ga.SurvivorSelector
      - jm.music.tools.ga.BestNSurvivorSelector
      - jm.music.tools.ga.ElitismSurvivorSelector
    - jm.music.tools.ga.TerminationCriteria
      - jm.music.tools.ga.NoTerminationCriteria
  - jm.gui.cpn.JStaveActionHandler (implements java.awt.event.ActionListener, jm.JMC, java.awt.event.MouseListener, java.awt.event.MouseMotionListener)
  - jm.midi.event.KeySig (implements jm.midi.event.Event)
  - jm.audio.synth.MassObject
  - jm.midi.MidiCommunication (implements javax.sound.midi.Receiver)
  - jm.midi.MidiParser (implements jm.JMC)
  - jm.midi.MidiSynth (implements jm.JMC, javax.sound.midi.MetaEventListener)
  - jm.midi.MidiUtil (implements jm.JMC)
  - jm.music.tools.Mod (implements jm.JMC)
  - jm.music.data.Note (implements java.lang.Cloneable, java.io.Serializable)
    - jm.music.data.Rest
  - jm.midi.event.NoteOff (implements java.lang.Cloneable, jm.midi.event.VoiceEvt)
  - jm.midi.event.NoteOn (implements java.lang.Cloneable, jm.midi.event.VoiceEvt)
  - java.io.OutputStream (implements java.io.Closeable, java.io.Flushable)
    - jm.gui.cpn.JmMidiPlayer
  - jm.music.data.Part (implements java.lang.Cloneable, jm.JMC, java.io.Serializable)
  - jm.midi.event.PChange (implements java.lang.Cloneable, jm.midi.event.VoiceEvt)
  - jm.music.data.Phrase (implements java.lang.Cloneable, jm.JMC, java.io.Serializable)
  - jm.music.tools.PhraseAnalysis
  - jm.music.tools.PhraseMatrix (implements jm.JMC)
  - jm.music.tools.ga.PhrGeneticAlgorithm
  - jm.util.Play (implements jm.JMC)
  - jm.music.tools.Prob
  - jm.midi.event.PWheel (implements java.lang.Cloneable, jm.midi.event.VoiceEvt)
  - jm.util.Read (implements jm.JMC)
  - jm.util.Read.JmMidiProcessor
  - jm.audio.math.RealFloatFFT
    - jm.audio.math.RealFloatFFT_Radix2
  - jm.music.rt.RTLine (implements jm.audio.AudioChainListener)
    - jm.util.AudioRTLine
    - jm.music.rt.RTPhrase (implements jm.JMC)
  - jm.midi.RTMidiIn (implements javax.sound.midi.Receiver)
  - jm.audio.RTMixer (implements jm.audio.AudioChainListener)
  - jm.music.data.Score (implements java.lang.Cloneable, jm.JMC, java.io.Serializable)
  - jm.midi.SMF (implements jm.JMC)
  - jm.audio.synth.SpringObject
  - jm.audio.synth.SpringPipe
  - jm.gui.graph.Statistics (implements java.lang.Cloneable, java.io.Serializable)
  - jm.gui.graph.StatisticsList (implements java.lang.Cloneable, java.io.Serializable)
  - jm.gui.cpn.StaveActionHandler (implements java.awt.event.ActionListener, jm.JMC, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener)
  - jm.midi.event.SysEx (implements jm.midi.event.SysComEvt)
  - jm.music.data.Tempo
  - jm.midi.event.TempoEvent (implements jm.midi.event.Event)
  - java.lang.Thread (implements java.lang.Runnable)
    - jm.music.net.DSClientConnector
    - jm.music.net.DSServer
    - jm.music.net.DSServerConnector
    - jm.audio.Instrument (implements jm.JMC, java.lang.Runnable)
      - jm.util.AudioSampleInst
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - jm.audio.AOException
      - jm.util.ConversionException
      - jm.music.tools.NoteListException
      - jm.music.tools.QuantisationException
  - jm.midi.event.TimeSig (implements jm.midi.event.Event)
  - jm.gui.cpn.ToolkitImages (implements jm.gui.cpn.Images)
  - jm.midi.Track
  - jm.gui.cpn.TrebleStave.Style
  - jm.util.View (implements jm.JMC)
  - jm.gui.wave.WaveFileReader (implements jm.JMC)
  - jm.gui.wave.WaveView (implements java.awt.event.ActionListener, java.awt.event.ComponentListener)
  - jm.util.Write (implements jm.JMC)

## Interface Hierarchy

- jm.constants.Alignments
  - jm.JMC (also extends jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.constants.Articulations
- jm.audio.AudioChainListener
- jm.constants.Chords
- jm.constants.DrumMap
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.music.net.DSClient
- jm.constants.Durations
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
  - jm.constants.RhythmValues
    - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.midi.event.Event
  - jm.midi.event.SysComEvt
  - jm.midi.event.VoiceEvt
- jm.constants.Frequencies
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.gui.cpn.Images
- jm.gui.cpn.KeyChangeListener
- jm.midi.MidiInputListener
- jm.constants.Noises
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.constants.Panning
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.constants.Pitches
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.constants.ProgramChanges
  - jm.constants.Instruments
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.constants.Progressions
- jm.util.ReadListener
- jm.constants.Scales
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Tunings, jm.constants.Waveforms)
- jm.constants.Tunings
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Waveforms)
- jm.constants.Volumes
  - jm.constants.Dynamics
    - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Waveforms)
- jm.constants.Waveforms
  - jm.JMC (also extends jm.constants.Alignments, jm.constants.DrumMap, jm.constants.Dynamics, jm.constants.Frequencies, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings)