(See the conducting interface. See also the attached pdf it is not completely up-to-date, and see the attached .zip file with template code.)
The performance interface takes information from the conductor See Conductor page for message formats for all this information:
The display should show the current language and the next language (if any).
Both Performer interface and Conducting interface should have a status display to show status such as "connecting to federation", "connected to super-node", "clock synchronized to super-node", ...
Because the Conductor and Performer are similar, they can share some panels including the status display and chat window. They will also share the same startup program that allows the user to select a "role" which determines whether the conductor or the performer interface comes up.
The PerformerUI is a frame consists of 5 parts (for details, please refer to the figure below)
Update Panel (upper-left): a place for big text "update" messages. When a message arrives, it is displayed, and a circle or rectangle in the background can grow to fill the whole window and then shrink back to nothing to get the user's attention. The text messages are:
Language Panel (upper right): displays the current/next language images, and the intensity bar.
Sampler Panel (bottom-left): consists of three panels, one displays the key-to-note mapping of the keyboard (or maybe just a graphic indication when notes are played. Currently, the keyboard interface consists of a graphical piano-like keyboard with clickable keys. The keys can also be played from the computer keyboard. There are 30 keys, and sample sets will have up to 30 pitches). Another displays a group of buttons for synthesizer sample set selection. On the right is a volume control operated by the mouse.
Public Constructors in Performer | Description |
---|---|
Performing(boolean fast, int blocks) | Creates an instance of a performer. If fast is true, only one set of samples will be loaded when debugging. blocks represents the number of blocks in an audio buffer |
Public Methods in Performer | Description |
---|---|
SpecPerformerInterface getInterface() | Returns the Performer's SpecPerformerInterface object |
String[] getLanguages() | Returns an array of all available language names |
void pulse() | Generates a pulse to the user |
void setPitch(String pitch) | Alerts user of pitch change and sets the pitch (see below) |
void setPlayStatus(String status) | Alerts user of play status change and sets it (see below) |
void setDynStatus(String status) | Alerts user of dynamics change and sets it (see below) |
void setIntensity(int intensity) | Sets the intensity (from 0 to 100) |
void setNextLanguage(String next) | Alerts user of next language and sets it |
void cueLanguage() | Cues and sets the next language to be the current language |
void receiveMessage(Message msg) | Receives message msg and executes the proper command |
NOTE: The public methods to manually set Performer characteristics (setPitch, setPlayStatus, etc) should not be directly called anymore; all "commands" should be communicated via a Message. The documentation for said methods are left here for thoroughness
setPitch(), setPlayStatus(), and setDynStatus() take String constants as input. The constants to use are listed below. The constants are found in the PulseDisplay class, and can be accessed by referencing PulseDisplay.CONSTANT. Note that default represents the initial state of the Performing Window, and not the value that will be set if no parameters are passed. A parameter must be passed.
Pitch Constants | Description |
---|---|
HIGH_PITCH | Represents the highest range of pitches |
MED_PITCH (default) | Represents the middle range of pitches |
LOW_PITCH | Represents the lowest range of pitches |
Play Status Constants | Description |
---|---|
PLAY (default) | Represents the status that performer should play |
PLAY_FADE_IN | Represents the status that performer should fade in |
PLAY_FADE_OUT | Represents the status that performer should fade out |
PLAY_STOP | Represents the status that performer should rest |
Dynamics Constants | Description |
---|---|
DYN_LOUD | Represents the request for the performer to play loud |
DYN_MED (default) | Represents the request for the performer to play medium |
DYN_SOFT | Represents the request for the performer to play softly |
Note: PerformerUI.ppt is the "source code" for the figure, which is PerformerUI.png
Home