Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

qt
Class QTCycle  view QTCycle download QTCycle.java

java.lang.Object
  extended byqt.QTCycle
All Implemented Interfaces:
java.awt.event.ActionListener, jm.constants.Alignments, javax.swing.event.ChangeListener, jm.constants.DrumMap, jm.constants.Durations, jm.constants.Dynamics, java.util.EventListener, jm.constants.Frequencies, jm.JMC, jm.constants.Noises, jm.constants.Panning, jm.constants.Pitches, jm.constants.ProgramChanges, jm.constants.RhythmValues, jm.constants.Scales, jm.constants.Tunings, jm.constants.Volumes, jm.constants.Waveforms

public final class QTCycle
extends java.lang.Object
implements jm.JMC, javax.swing.event.ChangeListener, java.awt.event.ActionListener

QuickTime Real Time playback for jMusic. * Score 1 is used first then score 2 and repeat infinitly. * While one score is playing the other score is updating. * Any class calling QTRT must implement two methods, * updateScore1() and updateScore2() * It is the responsibility of the calling app to * update the scores as required. Syncronisation of * this can be assisted by polling the value of the * score1PlayingFlag boolean variable. * A swing GUI is provided to adjust the scheduling * parameters as required. * The scoreLength argument is critical as it determines the * size of the scores created when updateScore methods * are called, which (of course) also changes the delay * between update calls. It can be changed using the * setScoreLength() method. * Remember to call the startPlayback() method (only once) or else * nothing will happen ;) Use suspendPlayback() and * resumePlayback() to interupt the playback once started. * * @param Score the first score object * @param Score the first score object * @param Object the class the calls this class * * @author Andrew Brown


Field Summary
private  int cycleCount
           
private  javax.swing.JLabel gapNumber
           
private  javax.swing.JSlider gapSlider
           
private  java.lang.Thread myThread
           
private  boolean newScoreFlag
           
private  double nextTempo
           
private  java.lang.Object obj
           
private  QTUtil qtu1
           
private  jm.music.data.Score score
           
private  double scoreLength
           
private  javax.swing.JLabel sleepNumber
           
private  javax.swing.JSlider sleepSlider
           
private  double sleepTime
           
private  javax.swing.JButton startButton
           
private  javax.swing.JButton stopButton
           
private  double tempo
           
private  javax.swing.JLabel tempoNumber
           
private  javax.swing.JSlider tempoSlider
           
private  double theGap
           
private  double time
           
private  double waitTime
           
 
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, 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, 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, STRINGS, SWEEP, SWEEP_PAD, SYN_CALLIOPE, SYN_STRINGS, SYNTH_BASS, SYNTH_BRASS, SYNTH_CALLIOPE, SYNTH_DRUM, SYNTH_DRUMS, SYNTH_STRINGS, 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
QTCycle(jm.music.data.Score score)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ae)
          This method is invoked when an action occurs.
private  void changeGap()
           
private  void changeSleep()
           
private  void changeTempo()
           
 int getCycleCount()
          Report the number of times the cycle method has been run.
 double getScoreLength()
          Reports the current score length setting.
 double getSleepTime()
          Report the current loop gap time.
 double getTempo()
          Reports the current speed in beats per minute.
 double getTheGap()
          Report the current loop gap time.
private  void playCycle()
          Shedule score playback na d score updating when required.
 void resumePlayback()
          If paused, restart playback.
 void setCycleCount(int newCount)
          Specify the number ot count cycles from.
 void setNextTempo(double newTempo)
          Specifies the speed in beats per minute.
 void setScore(jm.music.data.Score s)
          Specifies the score to be played.
 void setScoreLength(double newLength)
          Specifies the length of a score to be played.
 void setSleepTime(double newSleepTime)
          Update the sleep time value..
 void setTempo(double newTempo)
          Specifies the speed in beats per minute.
 void setTheGap(double newGap)
          Update the sleep time value..
 void settings()
          Open a GUI with sliders to adjust the scheduler loading.
 void startPlayback()
          Begin the cycling playback of the scores.
 void stateChanged(javax.swing.event.ChangeEvent e)
          Called by an object to notify the listener that the object's state has changed.
 void suspendPlayback()
          Pause playback.
 void updateTempo()
          Updates the current speed in beats per minute * based on a waiting tempo change.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myThread

private java.lang.Thread myThread

qtu1

private QTUtil qtu1

obj

private java.lang.Object obj

score

private jm.music.data.Score score

tempo

private double tempo

nextTempo

private double nextTempo

scoreLength

private double scoreLength

time

private double time

waitTime

private double waitTime

sleepTime

private double sleepTime

theGap

private double theGap

tempoSlider

private javax.swing.JSlider tempoSlider

sleepSlider

private javax.swing.JSlider sleepSlider

gapSlider

private javax.swing.JSlider gapSlider

tempoNumber

private javax.swing.JLabel tempoNumber

sleepNumber

private javax.swing.JLabel sleepNumber

gapNumber

private javax.swing.JLabel gapNumber

startButton

private javax.swing.JButton startButton

stopButton

private javax.swing.JButton stopButton

newScoreFlag

private boolean newScoreFlag

cycleCount

private int cycleCount
Constructor Detail

QTCycle

public QTCycle(jm.music.data.Score score)
Method Detail

startPlayback

public void startPlayback()
Begin the cycling playback of the scores.


playCycle

private void playCycle()
Shedule score playback na d score updating when required.


setScoreLength

public void setScoreLength(double newLength)
Specifies the length of a score to be played. * Changes the interval between score update calls.


getScoreLength

public double getScoreLength()
Reports the current score length setting.


setScore

public void setScore(jm.music.data.Score s)
Specifies the score to be played.


setTempo

public void setTempo(double newTempo)
Specifies the speed in beats per minute.


getTempo

public double getTempo()
Reports the current speed in beats per minute.


setNextTempo

public void setNextTempo(double newTempo)
Specifies the speed in beats per minute.


updateTempo

public void updateTempo()
Updates the current speed in beats per minute * based on a waiting tempo change. * This prevents gaps or overlaps in the playback * which can occur from the use of setTempo() * which updates immediatly.


setCycleCount

public void setCycleCount(int newCount)
Specify the number ot count cycles from.


getCycleCount

public int getCycleCount()
Report the number of times the cycle method has been run. * Useful for counting beats , bars, phrases or * whatever the chunk passed to the QTRT.


resumePlayback

public void resumePlayback()
If paused, restart playback.


suspendPlayback

public void suspendPlayback()
Pause playback.


setSleepTime

public void setSleepTime(double newSleepTime)
Update the sleep time value..


getSleepTime

public double getSleepTime()
Report the current loop gap time.


setTheGap

public void setTheGap(double newGap)
Update the sleep time value..


getTheGap

public double getTheGap()
Report the current loop gap time.


settings

public void settings()
Open a GUI with sliders to adjust the scheduler loading. * Used to optimise the timing and efficiecy of the real time * QuickTime playback.


stateChanged

public void stateChanged(javax.swing.event.ChangeEvent e)
Description copied from interface: javax.swing.event.ChangeListener
Called by an object to notify the listener that the object's state has changed. The incoming event identifies the source of the event, allowing the listener to differentiate when it is listening for changes in multiple sources.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener

changeTempo

private void changeTempo()

changeSleep

private void changeSleep()

changeGap

private void changeGap()

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ae)
Description copied from interface: java.awt.event.ActionListener
This method is invoked when an action occurs.

Specified by:
actionPerformed in interface java.awt.event.ActionListener