org.jfugue
Class StreamingPlayer

java.lang.Object
  extended by org.jfugue.StreamingPlayer

public final class StreamingPlayer
extends java.lang.Object

Provides a player that can be given new MusicStrings at runtime. The original Player class requires that a MusicString be fully formed before sending to Player.play(). This class lets you add new bits of a MusicString with the add() method. The newly-added patterns are played immediately.

Version:
3.2
Author:
David Koelle
See Also:
Pattern, Player

Constructor Summary
StreamingPlayer()
          Instantiates a new Player object, which is used for playing music.
StreamingPlayer(javax.sound.midi.Sequencer sequencer)
          Creates a new StreamingPlayer instance using a Sequencer that you have provided.
StreamingPlayer(javax.sound.midi.Synthesizer synth)
          Creates a new StreamingPlayer instance using a Sequencer obtained from the Synthesizer that you have provided.
 
Method Summary
 void close()
          Closes MIDI resources - be sure to call this after play() has returned.
 javax.sound.midi.Sequencer getSequencer()
          Returns the sequencer containing the MIDI data from a pattern that has been parsed.
 void stream(Pattern singleToken)
          Streams a Pattern containing a single token.
 void stream(java.lang.String singleToken)
          Streams a MusicString containing a single token.
 void streamAndWait(Pattern fragment)
          Streams a Pattern containing one or more tokens, and waits for each token to finish playing before returning.
 void streamAndWait(java.lang.String fragment)
          Streams a MusicString containing one or more tokens, and waits for each token to finish playing before returning.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StreamingPlayer

public StreamingPlayer()
Instantiates a new Player object, which is used for playing music.


StreamingPlayer

public StreamingPlayer(javax.sound.midi.Sequencer sequencer)
Creates a new StreamingPlayer instance using a Sequencer that you have provided.

Parameters:
sequencer - The Sequencer to send the MIDI events

StreamingPlayer

public StreamingPlayer(javax.sound.midi.Synthesizer synth)
                throws javax.sound.midi.MidiUnavailableException
Creates a new StreamingPlayer instance using a Sequencer obtained from the Synthesizer that you have provided.

Parameters:
synth - The Synthesizer you want to use for this Player.
Throws:
javax.sound.midi.MidiUnavailableException
Method Detail

close

public void close()
Closes MIDI resources - be sure to call this after play() has returned.


getSequencer

public javax.sound.midi.Sequencer getSequencer()
Returns the sequencer containing the MIDI data from a pattern that has been parsed.

Returns:
the Sequencer from the pattern that was recently parsed

stream

public void stream(Pattern singleToken)
Streams a Pattern containing a single token. Does not wait for the music to stop playing - the user will need to throttle calls to stream().

Parameters:
singleToken -

stream

public void stream(java.lang.String singleToken)
Streams a MusicString containing a single token. Does not wait for the music to stop playing - the user will need to throttle calls to stream().

Parameters:
singleToken -

streamAndWait

public void streamAndWait(Pattern fragment)
Streams a Pattern containing one or more tokens, and waits for each token to finish playing before returning. NOTE: The timing logic is a bit off TODO: The timing logic in streamAndWait() needs to be fixed

Parameters:
fragment -

streamAndWait

public void streamAndWait(java.lang.String fragment)
Streams a MusicString containing one or more tokens, and waits for each token to finish playing before returning. NOTE: The timing logic is a bit off

Parameters:
fragment -