Menu

performance

Roger B. Dannenberg SunnyFish David Zheng
Attachments
PerformUI Design.pdf (245177 bytes)
PerformerUI.png (89556 bytes)
PerformerUI.ppt (126464 bytes)
performerUI.zip (4184 bytes)

Home

Performance Interface

(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:

  • A change to display the next "language"
  • A cue when the language change takes effect
  • Cues for individual sounds. Some languages use "pulse time", which means you play notes/sounds on cue from the conductor.
  • Changes in the "intensity"
  • Requests to use high, middle, or low pitches
  • Requests to "Play now", "Stop (Rest)", "Fade In", "Fade Out" for both Orchestra and Soloist
  • Requests to play "Loud", "Soft"

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.

Integrated UI Design

The PerformerUI is a frame consists of 5 parts (for details, please refer to the figure below)
Performer UI Mockup

  • 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:

    • "Pulse"
    • "Soft"
    • "Loud"
    • "Stop (Rest)"
    • "Orch Play"
    • "Orch Stop"
    • "Orch Fade In"
    • "Orch Fade Out"
    • "Solo Play"
    • "Solo Stop"
    • "Solo Fade In"
    • "Solo Fade Out"
    • "High Pitches"
    • "Middle Pitches"
    • "Low Pitches"
      Since there is state associated with Dynamics (soft/loud), Playing (play, rest, fade out), Pitch (high/middle/low), it would be best to have three small boxes at the bottom of the Update Window to record the last state in each category (see the figure).
  • Language Panel (upper right): displays the current/next language images, and the intensity bar.

    • The visual representation of the current language is displayed in the bottom center of the message panel.
    • The next language, when available, is shown directly above the current language, at the top center of the panel, with a flashing background to alert the performer of the upcoming change.
    • Once the change is cued to take effect, the current language display is replaced by the next language display.
    • Intensity is represented to the performer on the right of the panel. Intensity is represented with a sliding bar. As the conductor increases or decreases the intensity, the intensity bar will slide up or down respectively to relay this to the performer.
  • 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.

  • Chat Panel (bottom-right)

Work Assignment

  • PerformerUI group: Main Display panel and Beat Display Panel
  • Sampler group: Sampler Display panel
  • Chat group: Chat Panel

Public API

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


Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.