<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to performance</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>Recent changes to performance</description><atom:link href="https://sourceforge.net/p/floctrl/wiki/performance/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 04 Apr 2012 23:29:53 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/floctrl/wiki/performance/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage performance modified by David Zheng</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v33 
+++ v34 
@@ -67,24 +67,26 @@
 Public API
 -------------------
 
-Public Constructors in Performer  |Description
-----------------------------------|------------
-Performing()                      |Creates an instance of a performer
-
-Public Methods in Performer       |Description
-----------------------------------|------------
-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
-
+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.
-
-*** NOTE: I searched the source code, and 
 
 Pitch Constants       |Description
 ----------------------|---------------------------------------
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Zheng</dc:creator><pubDate>Wed, 04 Apr 2012 23:29:53 -0000</pubDate><guid>https://sourceforge.net6c0238d12672dedf59297919092bf9c5ca475e14</guid></item><item><title>WikiPage performance modified by Roger B. Dannenberg</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v32 
+++ v33 
@@ -5,91 +5,99 @@
 
 (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 ***TODO: define message formats for all this information***:
-
+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 Out"
+- 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)
 [[img src=PerformerUI.png alt="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)"
-    - "Play"
-    - "Fade Out"
+    - "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()                      |Creates an instance of a performer
 
 Public Methods in Performer       |Description
 ----------------------------------|------------
 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
 
 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.
 
+*** NOTE: I searched the source code, and 
+
 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_REST             |Represents the status that performer should rest
+PLAY_STOP             |Represents the status that performer should rest
 
 Dynamics Constants    |Description
 ----------------------|---------------------------------------
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roger B. Dannenberg</dc:creator><pubDate>Wed, 04 Apr 2012 21:16:53 -0000</pubDate><guid>https://sourceforge.neta342abe2f0288bfab173c2c886a73c1121abde93</guid></item><item><title>WikiPage performance modified by David Zheng</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v31 
+++ v32 
@@ -89,7 +89,7 @@
 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_QUIET            |...
+PLAY_REST             |Represents the status that performer should rest
 
 Dynamics Constants    |Description
 ----------------------|---------------------------------------
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Zheng</dc:creator><pubDate>Thu, 29 Mar 2012 15:13:49 -0000</pubDate><guid>https://sourceforge.netfc005a13366271484d73b96a2881ff26d250205b</guid></item><item><title>WikiPage performance modified by David Zheng</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v30 
+++ v31 
@@ -61,39 +61,41 @@
 Public API
 -------------------
 
-
+Public Constructors in Performer  |Description
+----------------------------------|------------
+Performing()                      |Creates an instance of a performer
+
 Public Methods in Performer       |Description
 ----------------------------------|------------
-Performing()                      |Creates an instance of a performer
 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
 
 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_QUIET            |...
 
-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
+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***
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Zheng</dc:creator><pubDate>Thu, 29 Mar 2012 10:06:00 -0000</pubDate><guid>https://sourceforge.net72ea55befc38918189053d379e61040a02d57b18</guid></item><item><title>WikiPage performance modified by David Zheng</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v29 
+++ v30 
@@ -74,7 +74,26 @@
 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
 
-
+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_QUIET            |...
+
+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***
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Zheng</dc:creator><pubDate>Thu, 29 Mar 2012 10:02:03 -0000</pubDate><guid>https://sourceforge.net0b602ab80a819bcb1b07f7976f8e5fa11e7e4f31</guid></item><item><title>WikiPage performance modified by David Zheng</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v28 
+++ v29 
@@ -48,37 +48,34 @@
 
 - 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
 -------------------
 
-***TODO: OTHER TEAMS WOULD LIKE TO KNOW HOW TO INSTANTIATE THE UI. START BY DOCUMENTING THE NAME OF THE CLASS THAT IMPLEMENTS THE UI: Performing***
-
-To instantiate the UI, create an instance of Performing.java (in edu.cmu.cs.floctrl.performer).  Currently we are trying to move all useful methods to Performing.java, so when they are moved the wiki will be updated to reflect this.
-
-Public Methods in Performer       |
+
+Public Methods in Performer       |Description
 ----------------------------------|------------
-Coming soon                       |  
-
-
-Implementation Plan
--------------------
-* Robert has been working on the keyboard and status interfaces
-* Jephthah has been working on the message interface
-* David has been maintaining the wiki
-
-Progress
--------------------        
-So far, we have the message interface and the the keyboard interface functioning.  There is probably room for improvement in terms of aesthetics, as well as adding more advanced functionality for more precise, advanced performer control.  As mentioned before, the display window still needs to be properly implemented.  The UI has also yet to be integrated with the parts being worked on by other groups.
+Performing()                      |Creates an instance of a performer
+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
+
+
+
 
 ***Note: PerformerUI.ppt is the "source code" for the figure, which is PerformerUI.png***
 [Home](/p/floctrl/wiki/)
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Zheng</dc:creator><pubDate>Thu, 29 Mar 2012 09:38:56 -0000</pubDate><guid>https://sourceforge.neta4c2e973e3848d4437451eeca70401d63872dae2</guid></item><item><title>WikiPage performance modified by David Zheng</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v27 
+++ v28 
@@ -61,20 +61,13 @@
 Public API
 -------------------
 
-Due to the fact that the other teams will not need to manipulate the code for most of this UI, only completed methods that other teams would use are listed below for now.
-
 ***TODO: OTHER TEAMS WOULD LIKE TO KNOW HOW TO INSTANTIATE THE UI. START BY DOCUMENTING THE NAME OF THE CLASS THAT IMPLEMENTS THE UI: Performing***
 
-***TODO - This has changed. Update the code, then take out this line.***
-
-Public Methods in MessageDisplay  |
+To instantiate the UI, create an instance of Performing.java (in edu.cmu.cs.floctrl.performer).  Currently we are trying to move all useful methods to Performing.java, so when they are moved the wiki will be updated to reflect this.
+
+Public Methods in Performer       |
 ----------------------------------|------------
-String[] getLanguage()            |Returns an array of the all the language names available
-void setIntensity(int intensity)  |Sets the intensity the performer is instructed to play at
-void setNextLanguage(String next) |Sets the next language to be the one named by next
-void cueLanguage()                |Cues the current "next language" to the become current language
-Panel getLanguageDisplay()        |Creates and gets the Language panel
-Panel getUpdateDisplay()          |Creates and gets the Update panel (previously, this was getBeatDisplay(), a misnomer
+Coming soon                       |  
 
 
 Implementation Plan
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Zheng</dc:creator><pubDate>Wed, 28 Mar 2012 16:59:16 -0000</pubDate><guid>https://sourceforge.net35cc315202893d356839875c4ee8b3e1a8830d57</guid></item><item><title>WikiPage performance modified by Roger B. Dannenberg</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v26 
+++ v27 
@@ -63,7 +63,7 @@
 
 Due to the fact that the other teams will not need to manipulate the code for most of this UI, only completed methods that other teams would use are listed below for now.
 
-***TODO: OTHER TEAMS WOULD LIKE TO KNOW HOW TO INSTANTIATE THE UI. START BY DOCUMENTING THE NAME OF THE CLASS THAT IMPLEMENTS THE UI -- BASED ON THE TEMPLATE, THE NAME IS Performing, BUT IT APPEARS THAT YOU'VE BEEN CREATING ANOTHER CLASS. IS THIS THROW-AWAY CODE OR A NAME CHANGE?***
+***TODO: OTHER TEAMS WOULD LIKE TO KNOW HOW TO INSTANTIATE THE UI. START BY DOCUMENTING THE NAME OF THE CLASS THAT IMPLEMENTS THE UI: Performing***
 
 ***TODO - This has changed. Update the code, then take out this line.***
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roger B. Dannenberg</dc:creator><pubDate>Wed, 28 Mar 2012 14:39:13 -0000</pubDate><guid>https://sourceforge.neta3a750283e95da5eb22c376510be48ab07fc8416</guid></item><item><title>WikiPage performance modified by Roger B. Dannenberg</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v25 
+++ v26 
@@ -63,6 +63,8 @@
 
 Due to the fact that the other teams will not need to manipulate the code for most of this UI, only completed methods that other teams would use are listed below for now.
 
+***TODO: OTHER TEAMS WOULD LIKE TO KNOW HOW TO INSTANTIATE THE UI. START BY DOCUMENTING THE NAME OF THE CLASS THAT IMPLEMENTS THE UI -- BASED ON THE TEMPLATE, THE NAME IS Performing, BUT IT APPEARS THAT YOU'VE BEEN CREATING ANOTHER CLASS. IS THIS THROW-AWAY CODE OR A NAME CHANGE?***
+
 ***TODO - This has changed. Update the code, then take out this line.***
 
 Public Methods in MessageDisplay  |
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roger B. Dannenberg</dc:creator><pubDate>Wed, 28 Mar 2012 14:34:24 -0000</pubDate><guid>https://sourceforge.net8fdb61cd1cde325249601761f3bdaac7c3281c3e</guid></item><item><title>WikiPage performance modified by Roger B. Dannenberg</title><link>https://sourceforge.net/p/floctrl/wiki/performance/</link><description>&lt;pre&gt;--- v24 
+++ v25 
@@ -84,4 +84,6 @@
 Progress
 -------------------        
 So far, we have the message interface and the the keyboard interface functioning.  There is probably room for improvement in terms of aesthetics, as well as adding more advanced functionality for more precise, advanced performer control.  As mentioned before, the display window still needs to be properly implemented.  The UI has also yet to be integrated with the parts being worked on by other groups.
+
+***Note: PerformerUI.ppt is the "source code" for the figure, which is PerformerUI.png***
 [Home](/p/floctrl/wiki/)
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roger B. Dannenberg</dc:creator><pubDate>Sun, 25 Mar 2012 04:19:11 -0000</pubDate><guid>https://sourceforge.net3dcbc61253ddd03dfe0e23a1bf73176274c0ab2f</guid></item></channel></rss>