public double play(double playTime, Composable thing)Any class that satisfies the Playable interface can be added to a MusicJob's startPlayables, repeatPlayables, or stopPlayables. The "Composable thing" parameter in the play() method above will point to the parent who calls play. In this case it is our MusicJob.
You can create a Playable "on the fly" and add it to a MusicJob like this:
myMusicJob.addRepeatPlayable(new Playable() {
public double play(double playTime, Composable thing)
{
// do something, anything
return playTime;
}
});
Or you can define a Playable as is shown below:
/** A Playable that prints a message */
package jmsltutorial;
import com.softsynth.jmsl.*;
public class MessagePrintingPlayable implements Playable {
String message = "uninitialized";
MessagePrintingPlayable(String msg) {
message = msg;
}
public double play(double playTime, Composable thing) {
JMSL.out.println(message);
return playTime;
}
}
Here's how you would add this to your MusicJob's repeatPlayables:myMusicJob.addRepeatPlayable(new MessagePrintingPlayable()); Next, we will instantiate a few of these MessagePrintingPlayables and add them into a MusicJob's start, repeat, and stop playables.
(C) Phil Burk and Nick Didkovsky, All Rights Reserved JMSL is based upon HMSL (C) Phil Burk, Larry Polansky and David Rosenboom.