jm.music.data

## Class Score

- java.lang.Object
- - jm.music.data.Score

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Alignments, DrumMap, Durations, Dynamics, Frequencies, Noises, Panning, Pitches, ProgramChanges, RhythmValues, Scales, Tunings, Volumes, Waveforms, JMC

      public class Score
      extends java.lang.Object
      implements JMC, java.lang.Cloneable, java.io.Serializable

  The Score class is used to hold score data. Score data includes is primarily made up of a vector of Part objects. Commonly score data is algorithmically generated or read from a standard MIDI file, but can also be read and saved to file using Java's object serialization. In this way a Score's data can be saved in a more native context. To find out how to read from and write to standard MIDI files or to use object serializationcheck out the jm.util.Read and km.util.Write classes.
  See Also:
    `Part`, `SMF`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_DENOMINATOR`
    `static int` | `DEFAULT_KEY_QUALITY`
    `static int` | `DEFAULT_KEY_SIGNATURE`
    `static int` | `DEFAULT_NUMERATOR`
    `static double` | `DEFAULT_TEMPO`
    `static java.lang.String` | `DEFAULT_TITLE`

    - ### Fields inherited from interface jm.JMC

      `AMPLITUDE, DEBUG, DYNAMIC, EIGHT_BIT, FREQUENCY, KEY_SIG_EVT, MONO, NO_DENOMINATOR, NO_INSTRUMENT, NO_KEY_QUALITY, NO_KEY_SIGNATURE, NO_NUMERATOR, OCTAPHONIC, PAN, PITCH, PROG_EVT, QUADRAPHONIC, RHYTHM, SIXTEEN_BIT, STEREO, TEMP_EVT, THIRTY_TWO_BIT, TIME_SIG_EVT, VERBOSE`

    - ### Fields inherited from interface jm.constants.Durations

      `C, CD, CDD, CROTCHET, CROTCHET_TRIPLET, CT, DC, DDC, DDEN, DDHN, DDM, DDQ, DDQN, DEMI_SEMI_QUAVER, DEMI_SEMI_QUAVER_TRIPLET, DEN, DHN, DM, DOTTED_CROTCHET, DOTTED_EIGHTH_NOTE, DOTTED_HALF_NOTE, DOTTED_MINIM, DOTTED_QUARTER_NOTE, DOTTED_QUAVER, DOTTED_SEMI_QUAVER, DOTTED_SIXTEENTH_NOTE, DOUBLE_DOTTED_CROTCHET, DOUBLE_DOTTED_EIGHTH_NOTE, DOUBLE_DOTTED_HALF_NOTE, DOUBLE_DOTTED_MINIM, DOUBLE_DOTTED_QUARTER_NOTE, DOUBLE_DOTTED_QUAVER, DQ, DQN, DSN, DSQ, DSQT, EIGHTH_NOTE, EIGHTH_NOTE_TRIPLET, EN, ENT, HALF_NOTE, HALF_NOTE_TRIPLET, HN, HNT, M, MD, MDD, MINIM, MINIM_TRIPLET, MT, Q, QD, QDD, QN, QNT, QT, QUARTER_NOTE, QUARTER_NOTE_TRIPLET, QUAVER, QUAVER_TRIPLET, SB, SEMI_QUAVER, SEMI_QUAVER_TRIPLET, SEMIBREVE, SIXTEENTH_NOTE, SIXTEENTH_NOTE_TRIPLET, SN, SNT, SQ, SQD, SQT, THIRTYSECOND_NOTE, THIRTYSECOND_NOTE_TRIPLET, TN, TNT, TSN, TSNT, WHOLE_NOTE, WN`

    - ### Fields inherited from interface jm.constants.Pitches

      `a0, A0, a1, A1, a2, A2, a3, A3, a4, A4, a5, A5, a6, A6, a7, A7, a8, A8, af0, AF0, af1, AF1, af2, AF2, af3, AF3, af4, AF4, af5, AF5, af6, AF6, af7, AF7, af8, AF8, afn1, AFN1, an1, AN1, as0, AS0, as1, AS1, as2, AS2, as3, AS3, as4, AS4, as5, AS5, as6, AS6, as7, AS7, as8, AS8, asn1, ASN1, b0, B0, b1, B1, b2, B2, b3, B3, b4, B4, b5, B5, b6, B6, b7, B7, b8, B8, bf0, BF0, bf1, BF1, bf2, BF2, bf3, BF3, bf4, BF4, bf5, BF5, bf6, BF6, bf7, BF7, bf8, BF8, bfn1, BFN1, bn1, BN1, bs0, BS0, bs1, BS1, bs2, BS2, bs3, BS3, bs4, BS4, bs5, BS5, bs6, BS6, bs7, BS7, bs8, BS8, bsn1, BSN1, c0, C0, c1, C1, c2, C2, c3, C3, c4, C4, c5, C5, c6, C6, c7, C7, c8, C8, c9, C9, cf0, CF0, cf1, CF1, cf2, CF2, cf3, CF3, cf4, CF4, cf5, CF5, cf6, CF6, cf7, CF7, cf8, CF8, cf9, CF9, cn1, CN1, cs0, CS0, cs1, CS1, cs2, CS2, cs3, CS3, cs4, CS4, cs5, CS5, cs6, CS6, cs7, CS7, cs8, CS8, cs9, CS9, csn1, CSN1, d0, D0, d1, D1, d2, D2, d3, D3, d4, D4, d5, D5, d6, D6, d7, D7, d8, D8, d9, D9, df0, DF0, df1, DF1, df2, DF2, df3, DF3, df4, DF4, df5, DF5, df6, DF6, df7, DF7, df8, DF8, df9, DF9, dfn1, DFN1, dn1, DN1, ds0, DS0, ds1, DS1, ds2, DS2, ds3, DS3, ds4, DS4, ds5, DS5, ds6, DS6, ds7, DS7, ds8, DS8, ds9, DS9, dsn1, DSN1, e0, E0, e1, E1, e2, E2, e3, E3, e4, E4, e5, E5, e6, E6, e7, E7, e8, E8, e9, E9, ef0, EF0, ef1, EF1, ef2, EF2, ef3, EF3, ef4, EF4, ef5, EF5, ef6, EF6, ef7, EF7, ef8, EF8, ef9, EF9, efn1, EFN1, en1, EN1, es0, ES0, es1, ES1, es2, ES2, es3, ES3, es4, ES4, es5, ES5, es6, ES6, es7, ES7, es8, ES8, es9, ES9, esn1, ESN1, f0, F0, f1, F1, f2, F2, f3, F3, f4, F4, f5, F5, f6, F6, f7, F7, f8, F8, f9, F9, ff0, FF0, ff1, FF1, ff2, FF2, ff3, FF3, ff4, FF4, ff5, FF5, ff6, FF6, ff7, FF7, ff8, FF8, ff9, FF9, ffn1, FFN1, fn1, FN1, fs0, FS0, fs1, FS1, fs2, FS2, fs3, FS3, fs4, FS4, fs5, FS5, fs6, FS6, fs7, FS7, fs8, FS8, fs9, FS9, fsn1, FSN1, g0, G0, g1, G1, g2, G2, g3, G3, g4, G4, g5, G5, g6, G6, g7, G7, g8, G8, g9, G9, gf0, GF0, gf1, GF1, gf2, GF2, gf3, GF3, gf4, GF4, gf5, GF5, gf6, GF6, gf7, GF7, gf8, GF8, gf9, GF9, gfn1, GFN1, gn1, GN1, gs0, GS0, gs1, GS1, gs2, GS2, gs3, GS3, gs4, GS4, gs5, GS5, gs6, GS6, gs7, GS7, gs8, GS8, gsn1, GSN1, REST`

    - ### Fields inherited from interface jm.constants.Frequencies

      `FRQ`

    - ### Fields inherited from interface jm.constants.Tunings

      `EQUAL, JUST, MEAN, PYTHAGOREAN`

    - ### Fields inherited from interface jm.constants.Volumes

      `F, FF, FFF, FORTE, FORTISSIMO, MEZZO_FORTE, MEZZO_PIANO, MF, MP, P, PIANISSIMO, PP, PPP, SILENT`

    - ### Fields inherited from interface jm.constants.Panning

      `PAN_CENTER, PAN_CENTRE, PAN_LEFT, PAN_RIGHT`

    - ### Fields inherited from interface jm.constants.ProgramChanges

      `AAH, ABASS, AC_GUITAR, ACCORDION, ACOUSTIC_BASS, ACOUSTIC_GRAND, ACOUSTIC_GUITAR, AGOGO, AHHS, ALTO, ALTO_SAX, ALTO_SAXOPHONE, APPLAUSE, ATMOSPHERE, BAG_PIPES, BAGPIPE, BAGPIPES, BANDNEON, BANJO, BARI, BARI_SAX, BARITONE, BARITONE_SAX, BARITONE_SAXOPHONE, BASS, BASSOON, BELL, BELLS, BIRD, BOTTLE, BOTTLE_BLOW, BOWED_GLASS, BRASS, BREATH, BREATHNOISE, BRIGHT_ACOUSTIC, BRIGHTNESS, CALLOPE, CELESTA, CELESTE, CELLO, CGUITAR, CHARANG, CHIFFER, CHIFFER_LEAD, CHOIR, CHURCH_ORGAN, CLAR, CLARINET, CLAV, CLAVINET, CLEAN_GUITAR, CONCERTINA, CONTRA_BASS, CONTRABASS, CRYSTAL, CYMBAL, DGUITAR, DIST_GUITAR, DISTORTED_GUITAR, DOUBLE_BASS, DROPS, DRUM, DX_EPIANO, EBASS, ECHO, ECHO_DROP, ECHO_DROPS, ECHOS, EL_BASS, EL_GUITAR, ELECTRIC_BASS, ELECTRIC_GRAND, ELECTRIC_GUITAR, ELECTRIC_ORGAN, ELECTRIC_PIANO, ELPIANO, ENGLISH_HORN, EPIANO, EPIANO2, FANTASIA, FBASS, FIDDLE, FINGERED_BASS, FLUTE, FRENCH_HORN, FRET, FRET_NOISE, FRETLESS, FRETLESS_BASS, FRETNOISE, FRETS, GLOCK, GLOCKENSPIEL, GMSAW_WAVE, GMSQUARE_WAVE, GOBLIN, GT_HARMONICS, GUITAR, GUITAR_HARMONICS, GUNSHOT, HALO, HALO_PAD, HAMMOND_ORGAN, HARMONICA, HARMONICS, HARP, HARPSICHORD, HELICOPTER, HONKYTONK, HONKYTONK_PIANO, HORN, ICE_RAIN, ICERAIN, JAZZ_GUITAR, JAZZ_ORGAN, JGUITAR, KALIMBA, KOTO, MARIMBA, METAL_PAD, MGUITAR, MUSIC_BOX, MUTED_GUITAR, MUTED_TRUMPET, NGUITAR, NYLON_GUITAR, OBOE, OCARINA, OGUITAR, OOH, OOHS, ORCHESTRA_HIT, ORGAN, ORGAN2, ORGAN3, OVERDRIVE_GUITAR, PAD, PAN_FLUTE, PANFLUTE, PBASS, PHONE, PIANO, PIANO_ACCORDION, PIC, PICC, PICCOLO, PICKED_BASS, PIPE_ORGAN, PIPES, PITZ, PIZZ, PIZZICATO_STRINGS, POLY_SYNTH, POLYSYNTH, PSTRINGS, RAIN, RECORDER, REED_ORGAN, REVERSE_CYMBAL, RHODES, SAW, SAWTOOTH, SAX, SAXOPHONE, SBASS, SEA, SEASHORE, SFX, SGUITAR, SHAKUHACHI, SHAMISEN, SHANNAI, SITAR, SLAP, SLAP_BASS, SLAP_BASS_1, SLAP_BASS_2, SLOW_STRINGS, SOLO_VOX, SOP, SOPRANO, SOPRANO_SAX, SOPRANO_SAXOPHONE, SOUNDEFFECTS, SOUNDFX, SOUNDTRACK, SPACE_VOICE, SQUARE, STAR_THEME, STEEL_DRUM, STEEL_DRUMS, STEEL_GUITAR, STEELDRUM, STEELDRUMS, STR, STREAM, STRING_ENSEMBLE_1, STRING_ENSEMBLE_2, STRINGS, SWEEP, SWEEP_PAD, SYN_CALLIOPE, SYNTH_BASS, SYNTH_BASS_1, SYNTH_BASS_2, SYNTH_BRASS, SYNTH_BRASS_1, SYNTH_BRASS_2, SYNTH_CALLIOPE, SYNTH_DRUM, SYNTH_DRUMS, SYNTH_STRINGS, SYNTH_STRINGS_1, SYNTH_STRINGS_2, SYNVOX, TAIKO, TELEPHONE, TENOR, TENOR_SAX, TENOR_SAXOPHONE, THUMB_PIANO, THUNDER, TIMP, TIMPANI, TINKLE_BELL, TOM, TOM_TOM, TOM_TOMS, TOMS, TREMOLO, TREMOLO_STRINGS, TROMBONE, TRUMPET, TUBA, TUBULAR_BELL, TUBULAR_BELLS, VIBES, VIBRAPHONE, VIOLA, VIOLIN, VIOLIN_CELLO, VOICE, VOX, WARM_PAD, WHISTLE, WIND, WOODBLOCK, WOODBLOCKS, XYLOPHONE`

    - ### Fields inherited from interface jm.constants.DrumMap

      `ACOUSTIC_BASS_DRUM, ACOUSTIC_SNARE, BASS_DRUM_1, CABASA, CHINESE_CYMBAL, CLAVES, CLOSED_HI_HAT, COWBELL, CRASH_CYMBAL_1, CRASH_CYMBAL_2, ELECTRIC_SNARE, HAND_CLAP, HI_BONGO, HI_MID_TOM, HI_WOOD_BLOCK, HIGH_AGOGO, HIGH_FLOOR_TOM, HIGH_TIMBALE, HIGH_TOM, LONG_GUIRO, LONG_WHISTLE, LOW_AGOGO, LOW_BONGO, LOW_CONGA, LOW_FLOOR_TOM, LOW_MID_TOM, LOW_TIMBALE, LOW_TOM, LOW_WOOD_BLOCK, MARACAS, MUTE_CUICA, MUTE_HI_CONGA, MUTE_TRIANGLE, OPEN_CUICA, OPEN_HI_CONGA, OPEN_HI_HAT, OPEN_TRIANGLE, PEDAL_HI_HAT, RIDE_BELL, RIDE_CYMBAL_1, RIDE_CYMBAL_2, SHORT_GUIRO, SHORT_WHISTLE, SIDE_STICK, SPLASH_CYMBAL, TAMBOURINE, VIBRASLAP`

    - ### Fields inherited from interface jm.constants.Scales

      `AEOLIAN_SCALE, BLUES_SCALE, CHROMATIC_SCALE, DIATONIC_MINOR_SCALE, DORIAN_SCALE, HARMONIC_MINOR_SCALE, INDIAN_SCALE, LYDIAN_SCALE, MAJOR_SCALE, MELODIC_MINOR_SCALE, MINOR_SCALE, MIXOLYDIAN_SCALE, NATURAL_MINOR_SCALE, PENTATONIC_SCALE, TURKISH_SCALE`

    - ### Fields inherited from interface jm.constants.Waveforms

      `COSINE_WAVE, PULSE_WAVE, SABERSAW_WAVE, SAWDOWN_WAVE, SAWTOOTH_WAVE, SINE_WAVE, SQUARE_WAVE, TRIANGLE_WAVE`

    - ### Fields inherited from interface jm.constants.Noises

      `BROWN_NOISE, FRACTAL_NOISE, SMOOTH_NOISE, STEP_NOISE, WHITE_NOISE`

    - ### Fields inherited from interface jm.constants.Alignments

      `AFTER, BEFORE, CENTER_ALIGN, CENTER_ON_END, CENTER_ON_START, CENTRE_ALIGN, CENTRE_ON_END, CENTRE_ON_START, END_ON_CENTER, END_ON_CENTRE, END_TOGETHER, START_ON_CENTER, START_ON_CENTRE, START_TOGETHER`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Score()` Constructs an empty score with a default name
    `Score(double tempo)` Constructs an empty score at the specified tempo
    `Score(Part part)` Constructs a Score containing the specified `part`.
    `Score(Part[] parts)` Constructs a Score containing the specified `parts`.
    `Score(Part[] parts, java.lang.String title)` Constructs a Score containing the specified `parts` with the specified `title`.
    `Score(Part[] parts, java.lang.String title, double tempo)` Constructs a Score containing the specified `parts` with the specified `title` and the specified `tempo`.
    `Score(Part part, java.lang.String title)` Constructs a Score containing the specified `part` with the specified `title`.
    `Score(Part part, java.lang.String title, double tempo)` Constructs a Score containing the specified `part` with the specified `title` and the specified `tempo`.
    `Score(java.lang.String title)` Constructs an empty score.
    `Score(java.lang.String title, double tempo)` Constructs an empty score.
    `Score(java.lang.String title, double tempo, Part part)` Constructs a Score containing the specified `part`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Part part)` Add a Track object to this Score
    `void` | `addPart(Part part)` Add a Track object to this Score
    `void` | `addPartList(Part[] partArray)` Adds multiple parts to the score from an array of parts
    `void` | `clean()` Remove any empty Parts or phrases from the Score.
    `Score` | `copy()` Make a copy of this Score object
    `Score` | `copy(double startTime, double endTime)`
    `Part` | `createPart()` Generates and returns a new empty part and adds it to the score.
    `void` | `empty()` Empty removes all elements in the vector
    `void` | `empty(boolean nullObjects)` Empty removes all elements in the vector.
    `int` | `getDenominator()` Retrieves the denominator element of the Score's time signature.
    `double` | `getEndTime()` Return the beat where score ends.
    `int` | `getHighestPitch()` Return the value of the highest note in the Score.
    `int` | `getKeyQuality()` Returns the Score's key quality 0 is Major, 1 is minor
    `int` | `getKeySignature()` ' Returns the Score's key signature The number of sharps (+) or flats (-)
    `double` | `getLongestRhythmValue()` Return the value of the longest rhythm value in the Score.
    `int` | `getLowestPitch()` Return the value of the lowest note in the Score.
    `int` | `getNumerator()` Retrieves the numerator element of the Score's time signature.
    `Part` | `getPart(int number)` Get an individual Track object from its number
    `Part` | `getPart(java.lang.String title)` Get an individual Track object from its title
    `Part[]` | `getPartArray()` Returns the all Parts in this Score as a array
    `java.util.Vector` | `getPartList()` Returns the Scores List of Tracks
    `double` | `getShortestRhythmValue()` Return the value of the shortest rhythm value in the Score.
    `int` | `getSize()` Get the number of Parts in this score
    `double` | `getTempo()` Returns the Score's tempo
    `java.awt.Point` | `getTimeSignature()` Returns the Score's time signature elements.
    `java.lang.String` | `getTitle()` Return the title of this Score
    `void` | `insertPart(Part part, int index)` Inserts `part` at the specified position, shifting all parts with indices greater than or equal to `index` up one position.
    `int` | `length()` Get the number of Parts in this score
    `void` | `removeAllParts()` Deletes all the parts previously added to the score
    `void` | `removeLastPart()` Deletes the last Part added to the Score
    `void` | `removePart(int partNumb)` Deletes the specified Part in the Score
    `void` | `removePart(Part part)` Deletes the first occurence of the specified part in the Score.
    `void` | `setDenominator(int dem)` Specifies the Score's time signature denominator
    `void` | `setKeyQuality(int newQual)` Specifies the Score's key quality 0 is Major, 1 is minor
    `void` | `setKeySignature(int newSig)` Specifies the Score's key signature The number of sharps (+) or flats (-)
    `void` | `setNumerator(int num)` Specifies the Score's time signature numerator
    `void` | `setPan(double pan)` Determine the pan position for all notes in this Score.
    `void` | `setTempo(double tempo)` Sets the Score's tempo
    `void` | `setTimeSignature(int num, int dem)` Specifies the Score's time signature
    `void` | `setTitle(java.lang.String title)` Assign a title to this Score
    `int` | `size()` Get the number of Parts in this score
    `java.lang.String` | `toString()` Print the titles of all tracks to stdout

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_TITLE

          public static final java.lang.String DEFAULT_TITLE

      See Also:
        Constant Field Values

    - #### DEFAULT_TEMPO

          public static final double DEFAULT_TEMPO

      See Also:
        Constant Field Values

    - #### DEFAULT_KEY_SIGNATURE

          public static final int DEFAULT_KEY_SIGNATURE

      See Also:
        Constant Field Values

    - #### DEFAULT_KEY_QUALITY

          public static final int DEFAULT_KEY_QUALITY

      See Also:
        Constant Field Values

    - #### DEFAULT_NUMERATOR

          public static final int DEFAULT_NUMERATOR

      See Also:
        Constant Field Values

    - #### DEFAULT_DENOMINATOR

          public static final int DEFAULT_DENOMINATOR

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Score

          public Score()

      Constructs an empty score with a default name

    - #### Score

          public Score(java.lang.String title)

      Constructs an empty score.
      Parameters:
        `title` - Give the score a name

    - #### Score

          public Score(double tempo)

      Constructs an empty score at the specified tempo
      Parameters:
        `tempo` - The speed for this score in beats per minute

    - #### Score

          public Score(java.lang.String title,
               double tempo)

      Constructs an empty score.
      Parameters:
        `title` - Give the score a name
        `tempo` - Define speed of playback in bpm

    - #### Score

          public Score(Part part)

      Constructs a Score containing the specified `part`.
      Parameters:
        `Part` - to be contained in the Score

    - #### Score

          public Score(java.lang.String title,
               double tempo,
               Part part)

      Constructs a Score containing the specified `part`.
      Parameters:
        `title` - Give the score a name
        `tempo` - Define speed of playback in bpm
        `part` - The Part to be contained in the Score

    - #### Score

          public Score(Part[] parts)

      Constructs a Score containing the specified `parts`.
      Parameters:
        `parts` - - array of Parts to be contained in the Score

    - #### Score

          public Score(Part part,
               java.lang.String title)

      Constructs a Score containing the specified `part` with the specified `title`.
      Parameters:
        `part` - Part to be contained in the Score
        `title` - String describing the title of the Score

    - #### Score

          public Score(Part[] parts,
               java.lang.String title)

      Constructs a Score containing the specified `parts` with the specified `title`.
      Parameters:
        `parts` - Array of Parts to be contained in the Score
        `title` - String describing the title of the Score

    - #### Score

          public Score(Part part,
               java.lang.String title,
               double tempo)

      Constructs a Score containing the specified `part` with the specified `title` and the specified `tempo`.
      Parameters:
        `part` - Part to be contained in the Score
        `title` - String describing the title of the Score
        `tempo` - A double describing the tempo of the Score

    - #### Score

          public Score(Part[] parts,
               java.lang.String title,
               double tempo)

      Constructs a Score containing the specified `parts` with the specified `title` and the specified `tempo`.
      Parameters:
        `parts` - array of Parts to be contained in the Score
        `title` - String describing the title of the Score
        `tempo` - double describing the tempo of the Score

  - ### Method Detail

    - #### add

          public void add(Part part)

      Add a Track object to this Score

    - #### addPart

          public void addPart(Part part)

      Add a Track object to this Score

    - #### insertPart

          public void insertPart(Part part,
                        int index)
                          throws java.lang.ArrayIndexOutOfBoundsException

      Inserts `part` at the specified position, shifting all parts with indices greater than or equal to `index` up one position.
      Parameters:
        `part` - Part to be added
        `index` - where it is to be inserted
      Throws:
        `java.lang.ArrayIndexOutOfBoundsException` - when `index` is beyond the range of current parts.

    - #### addPartList

          public void addPartList(Part[] partArray)

      Adds multiple parts to the score from an array of parts
      Parameters:
        `partArray` -

    - #### removePart

          public void removePart(int partNumb)

      Deletes the specified Part in the Score
      Parameters:
        `int` - partNumb the index of the part to be deleted

    - #### removePart

          public void removePart(Part part)

      Deletes the first occurence of the specified part in the Score.
      Parameters:
        `part` - the Part object to be deleted.

    - #### removeLastPart

          public void removeLastPart()

      Deletes the last Part added to the Score

    - #### removeAllParts

          public void removeAllParts()

      Deletes all the parts previously added to the score

    - #### getPartList

          public java.util.Vector getPartList()

      Returns the Scores List of Tracks

    - #### getPartArray

          public Part[] getPartArray()

      Returns the all Parts in this Score as a array
      Returns:
        Part[] An array containing all Part objects in this score

    - #### getPart

          public Part getPart(java.lang.String title)

      Get an individual Track object from its title
      Parameters:
        `String` - title - the name of the Track to return
      Returns:
        Track answer - the Track to return

    - #### getPart

          public Part getPart(int number)

      Get an individual Track object from its number
      Parameters:
        `int` - number - the number of the Track to return
      Returns:
        Track answer - the Track to return

    - #### getTitle

          public java.lang.String getTitle()

      Return the title of this Score
      Returns:
        String title - the name of this Score

    - #### setTitle

          public void setTitle(java.lang.String title)

      Assign a title to this Score
      Parameters:
        `String` - title - the name of this Score

    - #### getTempo

          public double getTempo()

      Returns the Score's tempo
      Returns:
        double tempo

    - #### setTempo

          public void setTempo(double tempo)

      Sets the Score's tempo
      Parameters:
        `double` - tempo

    - #### getKeySignature

          public int getKeySignature()

      ' Returns the Score's key signature The number of sharps (+) or flats (-)
      Returns:
        int key signature

    - #### setKeySignature

          public void setKeySignature(int newSig)

      Specifies the Score's key signature The number of sharps (+) or flats (-)
      Parameters:
        `int` - key signature

    - #### getKeyQuality

          public int getKeyQuality()

      Returns the Score's key quality 0 is Major, 1 is minor
      Returns:
        int key quality

    - #### setKeyQuality

          public void setKeyQuality(int newQual)

      Specifies the Score's key quality 0 is Major, 1 is minor
      Parameters:
        `int` - key quality (modality)

    - #### setTimeSignature

          public void setTimeSignature(int num,
                              int dem)

      Specifies the Score's time signature
      Parameters:
        `num` - - Time signature numerator
        `dem` - - Time signature denominator

    - #### getTimeSignature

          public java.awt.Point getTimeSignature()

      Returns the Score's time signature elements.
      Returns:
        Point The Time Signature elements packaged together with the numerator as'x' and denominator as 'y'. You may prefer to use the getNumerator and getDenomintor methods directly, rather than use this convenience method which requires importing the java.awt package to extract the elements : )

    - #### setNumerator

          public void setNumerator(int num)

      Specifies the Score's time signature numerator
      Parameters:
        `int` - time signature numerator

    - #### setDenominator

          public void setDenominator(int dem)

      Specifies the Score's time signature denominator
      Parameters:
        `int` - time signature denominator

    - #### getNumerator

          public int getNumerator()

      Retrieves the numerator element of the Score's time signature.
      Returns:
        num - Time signature numerator

    - #### getDenominator

          public int getDenominator()

      Retrieves the denominator element of the Score's time signature.
      Returns:
        int Time signature denominator

    - #### copy

          public Score copy()

      Make a copy of this Score object
      Returns:
        Score - return a new Score Object

    - #### copy

          public Score copy(double startTime,
                   double endTime)

    - #### getEndTime

          public double getEndTime()

      Return the beat where score ends. Where it's last Part ends.
      Returns:
        double the Parts endTime

    - #### toString

          public java.lang.String toString()

      Print the titles of all tracks to stdout
      Overrides:
        `toString` in class `java.lang.Object`

    - #### empty

          public void empty()

      Empty removes all elements in the vector

    - #### empty

          public void empty(boolean nullObjects)

      Empty removes all elements in the vector.
      Parameters:
        `nullObjects` - If ture this sets all jMusic data objects to null priot to removing. This facilitates garbage collection.

    - #### length

          public int length()

      Get the number of Parts in this score
      Returns:
        int The number of parts

    - #### size

          public int size()

      Get the number of Parts in this score
      Returns:
        int length - the number of parts

    - #### getSize

          public int getSize()

      Get the number of Parts in this score
      Returns:
        int length - the number of parts

    - #### clean

          public void clean()

      Remove any empty Parts or phrases from the Score.

    - #### getHighestPitch

          public int getHighestPitch()

      Return the value of the highest note in the Score.

    - #### getLowestPitch

          public int getLowestPitch()

      Return the value of the lowest note in the Score.

    - #### getLongestRhythmValue

          public double getLongestRhythmValue()

      Return the value of the longest rhythm value in the Score.

    - #### getShortestRhythmValue

          public double getShortestRhythmValue()

      Return the value of the shortest rhythm value in the Score.

    - #### setPan

          public void setPan(double pan)

      Determine the pan position for all notes in this Score.
      Parameters:
        `double` - the phrase's pan setting

    - #### createPart

          public Part createPart()

      Generates and returns a new empty part and adds it to the score.