
blue is my tool for composing with Csound. I originally created it for its ability to organize SoundObjects in time as well as to organize and automate the more mundane tasks that I've found in working with Csound. It's here to make working with Csound a more enjoyable and focused experience.
As the program develops over time I am finding more ways to make the user experience intuitive and the program faster to work with, as well as finding interesting new things to create to further the capacity for musical expression. The program's architecture is designed to be as open as possible in both things the user can do within blue itself as well as the ability to expand blue through the creation of plugins, and by taking advantage of both one can find many ways to create and shape musical ideas.
Beyond my own ideas on where to go with blue, user feedback has also greatly shaped the direction and richness of the program. Please feel free to email me anytime with feedback, or join the blue mailing list and discuss your ideas and thoughts there.
If you'd like to find out more about me you can do so on my on my website:
Thanks and I hope you enjoy composing with blue!
Steven Yi
I would like to thank the following people following people for their contributions to blue:
Java development
Documentation, Tutorials, and Ideas
Java development
PHP work on blueShare server, Java code
Translations
Catalan
French
French
Italian
Japanese
Korean
Spanish Translation
Spanish
blue is an music composition environment for use with Csound. blue interacts with Csound by generating .CSD files, which it then feeds to Csound for compilation. Any version of Csound that can be called by commandline is able to be used with blue.
One of blue's main features is the graphical timeline of soundObjects, of which a special soundObject-the polyObject-is able to group other soundObjects. polyObjects feature their own timeline, allowing for timelines within timelines. soundObjects can be anything that generates notes, be it a block of Csound SCO, a script in python, or a graphical object.
SoundObjects may further have noteProcessors added to them, which may do things like "add .3 to all p4 values" or "of these notes, only generate the first three". NoteProcessors are especially useful when used with Instance soundObjects from the soundObject Library.
The soundObject library allows for working with soundObjects by making instances of a soundObject. Instances point to a soundObject, and when they generate notes, they use the soundObject they are pointing to to generate the notes for them. Instances however can have their own properties which they will apply to the generated notes, so that they can be of different duration and have different start times, as well as have different noteProcessors used with them. the advante of instances versus manually copying a soundObject over and over again is that if you want to change the notes for all of these soundObjects, you'd have to manually go and change all of them, while with instances, you'd only have to change the one soundObject all of the instances are pointing to. (which also means you could make a song template file, all pointing to empty soundObjects, build the form of the piece, then change the soundObject's note material to "fill in the form".)
Other features include the orchestra manager, which allows for importing of instruments from .CSD files, a list to manage instruments, and the ability to selectively generate instruments when compiling .CSD files. instruments can be either a single Csound instrument or may be a GUI instrument.
blue requires a Java 1.6 (also known as 6.0) or greater JVM (Java Virtual Machine). To test to see if you have a JVM installed and what version, at a command prompt type "java -version". If you see something along the lines of "command not found" then you need to install a Java Virtual Machine.
A Java JVM for Linux, Windows, and Solaris can be found at:
http://www.java.com
From here, select the version of Java you want to use (must be 1.6/6.0 or higher for blue), and then choose the download for your platform. There will be an option to download either the "JRE" or the "SDK". The JRE is just what is required to run java programs and is all that is required to run blue. If you're planning to do Java development, then download the SDK as it includes the JRE as well as all of the Java development tools.
To install blue, you should download the latest ZIP file from the blue Sourceforge page here. For OSX, download the zip that has "OSX" in the name. For other platforms, download the version that does not have "OSX" in the name.
Unzip the file to a location of your choice. After unzipping, locate the bin folder and use either the "blue" script or "blue.exe", depending if your are on Linux/OSX or Windows. For OSX users, unzipping the zipp should produce a blue.app directory that will appear as a clickable application. Simply double-clicking this should start blue.
Note: After starting blue, you may want to explore the example projects and pieces found in the blue\example folder (or right-click and explore contents of blue.app/example if on OSX).
The section below has notes for individual platforms.
Unless you are using a mouse that emulates a second mouse button, you will have to use a combination of the "open apple" key plus a mouse click for all "rt-clicks" that are mentioned in this documentation.
To make use of the function key shortcuts (F1-F12), you will also need to tick System Preferences, Keyboard and Mouse, "F1-F12 to control software features". (This affects recent versions of OSX.)
This may be considered "classical" blue usage and interaction with Csound as this was the method by which blue ran with Csound for the first eight years in existance. The way blue operates in this mode is by rendering the .blue project into a temporary CSD file on disk, then calling Csound with that temporary CSD file in the same way as if you were on a command-line shell and executing Csound yourself with that file.
The benefit to this mode of Csound usage is that it is easier to switch out your version of Csound or use multiple versions of Csound on the same computer. It is also a little more stable than using the API in that if Csound crashes for some reason, it won't take down blue with it. Also, it may be more performant to use the command-line mode. These benefits however need to be weighed against the benefits of using the API, which is described below.
To use the command-line version, one needs to set up the Csound executable option for Realtime and Disk Render settings in Program Options.
Enabling blue to use the Csound API when rendering with Csound opens up the ability to manipulate and edit widget values and automations in realtime during a render, as well as the ability to use blueLive on Windows. Because of its enhancement to the user-experience while rendering and composing, it is now the preferred method of using blue with Csound. However, it is a little more complicated to setup than using the commandline mode. The following are instructions on how to enable blue with using the Csound API.
To use the API, you must first have a copy of Csound with the Java interface built, which is contained in a file called csnd.jar. If you used an installer to install Csound like the ones found on Sourceforge, they should have included the csnd.jar file with them. If you build Csound yourself, you will need to build the interface jar, which requires the Java Development Kit (JDK) and SWIG.
blue currently only works with the API if the version of Csound used is compiled using 64-bit doubles. (The float version is not currently supported when using the API.) There are technical difficulties in supporting two different versions of Csound API in the same build and it is not known if or when the float build will be supported. For users interested in using the float build of Csound with blue, you will need to run blue using the command-line Csound mode.
The Java API for Csound is split into two parts: the csnd.jar file as well as the lib_jcsound.so native library (this file is csound jcsound.dll on Windows, and lib_jcsound.jnilib on Mac OSX). blue comes with it's own copy of csnd.jar, so to use the API from blue it will need to have access to the native library to work.
The following explains how to setup the API on different platforms.
Users using the Windows Installer for Csound should use the doubles version from SourceForge (has -d in the name). After installing, the installer should setup everything such that blue should work with the API "out of the box". If for some reason it is unable to do so, or you have compiled Csound yourself and the location of jcsound.dll is different from where it is installed with the installer, you can modify the blue/etc/blue.conf file to tell blue where to find the jcsound.dll. For example, if the directory where jcsound.dll is located is in c:\myCsound, open up blue.conf and modify the default so that it contains:
default_options="--branding blue -J-Xms256m -J-Xmx768m -J-Djava.library.path=c:/myCsound" Linux users should install a doubles version of Csound. The version of Csound found in package repositories should be one compiled for doubles. After installing Csound and the Java interface for Csound, locate where lib_jcsound.so is and modify the blue/etc/blue.conf file. For example, if the directory where lib_jcsound.so is located is in /usr/lib/jni (the default for Debian/Ubuntu-based systems), open up blue.conf and modify the default so that it contains:
default_options="--branding blue -J-Xms256m -J-Xmx768m -J-Djava.library.path=/usr/lib/jni"
Mac OSX users should install a doubles version of Csound. The version of Csound should be one compiled for doubles. As of the time of this writing, the Mac Csound installer does not include a doubles version of the Java API. The following are instructions on how to setup OSX 10.6 for API usage with blue.
If everything is setup correctly, after starting blue... [INFORMATION NOT YET COMPLETE, the following is out of date and needs to be updated!]
>> Csound API available: true <<
This indicates that the Csound API is available to use as an option. To use the API, you must also enable the Csound API option in Program Options (found from the File Menu). This allows you to selectively turn on and off the API should you want to switch between the API and using the command-line version. (If the API is not available on startup, then the Csound API option in Program Options will be disabled and will not be an option for the user to use.)
If you have configured the CSND_JAR and enabled adding this to the BLUE_LIBS correctly but are getting an error message like this:
_jcsound native code library failed to load. java.lang.UnsatisfiedLinkError: no _jcsound in java.library.path
This means that you have configured things correctly for Java to find the JAR, but after that, Java can not find the native library which is the actual interface to the Csound API. This native library is called lib_jcsound.so on Linux and OSX and _jcsound.dll on Windows. If you are getting this message, you will need to add the following to the blue starter script for your platform, on the line that calls Java and starts blue:
-Djava.library.path=/path/to/where/_jcsnd.so/is/located
So for example, on Linux you might have the last line look like:
java -Djava.library.path=/home/steven/workspace/csound5 \
-Xms32m -Xmx256m -DBLUE_HOME="$BLUE_HOME" -cp $BLUE_LIBS blue.Blue "$@"After enabling the API, you will still need to setup the Csound executable option for Realtime and Disk Render settings in Program Options. However, when using the API, this value gets disregarded, though a value is still required. The typical value to use in this case is "csound". Also to note, by having a valid value here that works without the API, you can switch back and forth between using the API or not without having to reconfigure commandline options.
To open up the Program Options dialog, go to the File menu and click on "Program Options".

General Options
This is the url of the root of your Csound Documentation. blue uses this for opening up Csound Documentation as well as when opening up help for an opcode. The Csound Documentation Root can be local (i.e. "/home/user/blue/manual/" or "c:/Programs and Files/blue/manual/") or online (i.e. "http://www.csounds.com/manual/html/").
You can get the Csound html documentation from http://www.csounds.com/manual .
The default directory that blue should open when loading/saving blue project files.
Enables saving of window location and size. If enabled, upon starting of program, window states will be restored.
Enables default text for different objects in blue. Curently this affects:
CodeRepository - when adding new Code Snippet
Enables older flat drawing style of SoundObject borders on the score timeline.
If this is enabled, when selecting a group of SoundObjects on the Score Timeline the marquee that is drawn to show the selection area will paint with an alpha-transparent white background. (May slow down performance when enabled.)
If this is enabled, output from rendering with Csound will be shown in the Csound Output Dialog (accessible from the Window menu or available with the F7 shortcut). If disabled, output will be shown in the std.out of the console that opens when blue starts. (If the blue starter script has been modified not to show the console by using javaw instead of java, then the output will not be able to be seen). It is recommended to enable this option.
Since Csound5, the default for printed messages is to show them with colors by using ANSI text modifiers. However, this only works within ANSI-compliant consoles, and does not work within blue's Csound Output Dialog. It is recommended to keep this disabled if the "Show Csound Output" option is enabled.
Which language to use for blue. This affects the labels of the User Interface, messages given to the user in dialog boxes, menu titles, etc. (Translation files may not always be up to of date so some UI items may not be translated when not in English.)

These settings are used whenever new projects are created as defaults for the project, unless a default.blue file is found in the user's blue home directory, in which case the settings from the default.blue file are used.
Project Defaults
Default author to use in new projects.
Enable using the blue Mixer in new projects by default.

Program Options - Text Colors
This section of the program options allows the user to set what colors will be used when hilighting the syntax of code in blue's text editors that support syntax highlighting. The chosen colors will be reflected for each syntax-highlighted language(i.e. the Keyword color will affect the color for both Csound highlighting and Python highlighting).

Playback
Rate of animation for time pointer to update when playing back in realtime, expressed in frames per second. For example, the default value of 20 means the time pointer is updated 20 times per second, giving a smooth animation rate. Slower values may be desirable on slower computers if the playback pointer is affecting performance.
Float value in seconds to use as a correction for audio latency in the user's sound playback mechanism. For example, if latency is quite bad on your soundcard and there is a delay of .5 seconds between when audio is passed to your soundcard and when the audio is actually realized from the DAC, the visual time pointer for blue may appear ahead in time of what is being heard. Using a .5 value for latency correction would correct for this.

Program Options - Utility
Utility
This is the command for what version of csound to execute when blue uses utilities that depend on Csound (for example, freezing SoundObjects, the SoundFont Viewer utility). The default value of "csound" works if you have a version of Csound in your path named "csound". You may use any csound command here that would call csound that would work as if you were running csound from a terminal.
The value defined for Csound Executable should only be the command to call Csound and no other flags should be added here.
These are the flags for Csound that blue uses when performing SoundObject freezing. Defaults are "-Ado" for Mac and "-Wdo" for all other operating systems. Users may wish to modify this value if they would their frozen soundObjects to be in a different format, i.e. 32-bit float soundfiles.

Project Settings
This is a command for what version of csound to execute when blue renders the project in realtime. The default value of "csound" works if you have a version of Csound in your path named "csound". You may use any command here that would call csound that would work as if you were running csound from a terminal.
Using the button marked "..." on the right will open up a file dialog so that you can find and select the csound executable to use to run Csound.
The value defined for Csound Executable should only be the command to call Csound and no other flags should be added here.
Default sr to use for realtime settings in new projects.
Default ksmps to use for realtime settings in new projects.
Default nchnls to use for realtime settings in new projects.
Devices
Driver to use for audio input and output. This is equivalent to using the --rtaudio= flag setting on the commandline.
Enabling the checkbox determines if this value will be used at all when rendering, and if so, will use the value from the dropdown as the driver setting.
Audio output device to use. Equivalent to using -o flag setting on the commandline. This setting is dependent on the setting used on the audio driver setting. Using a value of "dac" will use the default device for the driver.
The value of this setting will be used for all projects that set "Audio Out" enabled in the project-level realtime render settings.
By selecting the [...] button to the right of this field, blue will try to detect what devices are available for the chosen Audio Driver. If blue is able to find the devices, a popup dialog will appear with a list of available devices. Selecting from the popup will then populate the textfield with the correct device string that Csound will use to choose the device requested.
If the driver is chosen but not enabled for use via its checkbox, when auto-detecting, blue will check for devices against the default driver and not necessarily what is in the dropdown. Please be sure that if you are planning to use the auto-detect feature with a particular driver that you also select the driver and enable it with the checkbox.
Enabling the checkbox determines if this device will be enabled by default for new projects.
Audio input device to use. Equivalent to using -i flag setting on the commandline. This setting is dependent on the setting used on the audio driver setting. Using a value of "adc" will use the default device for the driver.
The value of this setting will be used for all projects that set "Audio In" enabled in the project-level realtime render settings.
By selecting the [...] button to the right of this field, blue will try to detect what devices are available for the chosen Audio Driver. If blue is able to find the devices, a popup dialog will appear with a list of available devices. Selecting from the popup will then populate the textfield with the correct device string that Csound will use to choose the device requested.
If the driver is chosen but not enabled for use via its checkbox, when auto-detecting, blue will check for devices against the default driver and not necessarily what is in the dropdown. Please be sure that if you are planning to use the auto-detect feature with a particular driver that you also select the driver and enable it with the checkbox.
Enabling the checkbox determines if this device will be enabled by default for new projects.
Driver to use for MIDI input and output. This is equivalent to using the --rtmidi= flag setting on the commandline.
Enabling the checkbox determines if this value will be used at all when rendering, and if so, will use the value from the dropdown as the driver setting.
MIDI output device to use. Equivalent to using -Q flag setting on the commandline. This setting is dependent on the setting used on the MIDI driver setting.
The value of this setting will be used for all projects that set "MIDI Out" enabled in the project-level realtime render settings.
By selecting the [...] button to the right of this field, blue will try to detect what devices are available for the chosen MIDI Driver. If blue is able to find the devices, a popup dialog will appear with a list of available devices. Selecting from the popup will then populate the textfield with the correct device string that Csound will use to choose the device requested.
If the driver is chosen but not enabled for use via its checkbox, when auto-detecting, blue will check for devices against the default driver and not necessarily what is in the dropdown. Please be sure that if you are planning to use the auto-detect feature with a particular driver that you also select the driver and enable it with the checkbox.
Enabling the checkbox determines if this device will be enabled by default for new projects.
MIDI input device to use. Equivalent to using -M flag setting on the commandline. This setting is dependent on the setting used on the audio driver setting.
The value of this setting will be used for all projects that set "MIDI In" enabled in the project-level realtime render settings.
By selecting the [...] button to the right of this field, blue will try to detect what devices are available for the chosen MIDI Driver. If blue is able to find the devices, a popup dialog will appear with a list of available devices. Selecting from the popup will then populate the textfield with the correct device string that Csound will use to choose the device requested.
If the driver is chosen but not enabled for use via its checkbox, when auto-detecting, blue will check for devices against the default driver and not necessarily what is in the dropdown. Please be sure that if you are planning to use the auto-detect feature with a particular driver that you also select the driver and enable it with the checkbox.
Enabling the checkbox determines if this device will be enabled by default for new projects.
Buffer Settings
Size of software sample buffer to use. For more information, see CommandFlags section of Csound manual for settings.
Enabling the checkbox determines if this value will be used at all when rendering.
Size of hardware sample buffer to use. For more information, see CommandFlags section of Csound manual for settings.
Enabling the checkbox determines if this value will be used at all when rendering.
Message Level
Enables note amplitude messages from Csound (-m1)
Enables samples out of range messages from Csound (-m2)
Enables warning messages from Csound (-m4)
Enables benchmark information from Csound (-m128)
Advanced Settings
Extra flags to append to the commandline that might not be covered by options in the UI. Pressing the [?] button will open the documentation for the Csound command flags (Csound Documentation Root but be set for this to work).

Project Settings
This is a command for what version of csound to execute when blue renders the project to disk. The default value of "csound" works if you have a version of Csound in your path named "csound". You may use any command here that would call csound that would work as if you were running csound from a terminal.
Using the button marked "..." on the right will open up a file dialog so that you can find and select the csound executable to use to run Csound.
The value defined for Csound Executable should only be the command to call Csound and no other flags should be added here.
Default sr to use for disk render settings in new projects.
Default ksmps to use for disk render settings in new projects.
Default nchnls to use for disk render settings in new projects.
File Output Settings
File format to use (i.e. WAV, AIFF, AU, etc.)
Enabling the checkbox determines if this value will be used at all when rendering.
Sample format to use. The default of SHORT is the same as 16-bit integer audio (the same as used for CD's). Other formats are available in the dropdown to use.
Enabling the checkbox determines if this value will be used at all when rendering.
Save the peak information in the file header.
Enabling the checkbox determines if this value will be used at all when rendering.
Use dither on output.
Enabling the checkbox determines if this value will be used at all when rendering.
Rewrite the file header while rendering. This makes it possible to play the audio file in the middle of a render and is useful when the rendering of the project will take a very long time. However, it does slow down overall render time.
Enabling the checkbox determines if this value will be used at all when rendering.
Message Level
Enables note amplitude messages from Csound (-m1)
Enables samples out of range messages from Csound (-m2)
Enables warning messages from Csound (-m4)
Enables benchmark information from Csound (-m128)
Advanced Settings
Extra flags to append to the commandline that might not be covered by options in the UI. Pressing the [?] button will open the documentation for the Csound command flags (Csound Documentation Root but be set for this to work).

Score Timeline
The play bar at the top has a field for setting what time you want the score to play from, a play/stop button to start and stop playing, and a help button. When the play/stop button is used, blue will generate a .CSD file from the current work file, starting from the play time given in the field, and will use the command line given in the project properties tab to use to play the .CSD file.
the poly object bar (shown above with only one polyObject, "root") shows what polyObject you are currently editting. if you were to add a polyObject named "phrase 1" to the main timeline shown above, then double click that polyObject to edit it, the polyObject bar would have two buttons on it, one for "root", and one for "phrase 1". you would then be editting "phrase 1"'s timeline. by clicking on the "root" button of the timeline, you would then return out of the polyObject's timeline and back in the root's timeline.
Below the polyObject bar on the left, you will see the soundLayer edittor. here you can change the name of the soundLayer, as well as mute the layer (all soundObject's on muted layers will not be used to generate notes when creating .CSD files).
on the bottom of the soundLayer edittor are four buttons, "^", "V", "+", and "-". "^" and "V" will push up or push down soundLayers. (HINT: You can move multiple soundLayers by clicking on one soundLayer, then holding down shift and clicking on the last of the soundLayers you want to move, then using the "^" and "V" buttons.) the "+" will add a soundLayer after the currently selected soundLayer. if no soundLayers are selected, then it will add one to the end of the list. the "-" button will remove any selected soundLayers. it should ask for a confirmation before removing any layers.
Below the polyObject bar on the right is the main time line. it shows the time line for the currently editted polyObject. The +/- buttons next to the scrollbars are used to zoom in on the time line, and those settings will be maintained between work sessions.
On the time line, rt-clicking on any soundLayer will show menu options for adding different types of soundObjects, or pasting a soundObject from the buffer if any soundObjects in the buffer are available. if you are using the soundObject library and use the "copy instance" button, it copies it to the soundObject buffer for use with pasting into the time line via this menu.
Once you have soundObjects on the time line, you can click on one to select it and see its editor below the time line, then click on the soundObject and drag the mouse to move the object around in time or to a different layer. Clicking and dragging near the right edge of the soundObject will allow you to change the duration of the soundObject.
You can also select multiple soundObjects by holding down shift and clicking multiple soundObjects. Holding down shift and dragging one soundObject will move all of the selected soundObjects.
If you have a soundObject selected, you can edit the properties of the soundObject also by using the soundObject property dialog (which can be opened from the menu "Windows -> Sound Object Property Dialog" or by using the shortcut "F3". From this dialog you can change the name of the soundObject, it's start time and subjective duration, and also add and remove noteProcessors (if the soundObject supports it).
Rt-clicking on a soundObject pops open a menu (shown in the picture above) which will let you add a soundObject to the soundObject library(only the one clicked on), convert soundObjects into a polyObject(any selected soundObjects), convert a soundObject into a genericScore soundObject, or cut/paste/remove. Converting to a polyObject is useful if you're editting on a time line and decide you'd like to group the soundObjects together to handle them as a single soundObject. Converting to a genericScore is useful if you're working with a soundObject that isn't a genericScore and want to start editting it as a genericScore.

The tempo editor is an optional use feature that allows editing of overall tempo for a project using a line editor. This feature starts off as disabled and closed. When in this state, whatever tempo values are saved will show as dark gray line that is uneditable. To enable the use of the tempo editor, select the checkbox marked "Use Tempo". Selecting this will redraw the tempo line in green. To open up the tempo editor for a larger view and for editing, select the down arrow button next to the "Use Tempo" checkbox.
Like other line editor objects in blue, left-clicking on an area where there is no point will insert a new point, while hovering over an existing point and pressing down, then dragging will allow moving of that point. Right-clicking a point will delete a point.
If right-clicking the tempo editor when not on a point, the following popup menu will appear:

The first option will allow editing of the values of the points entered into the line editor by use of a table with two columns: the first column being the beat on which the tempo change occurs and the right column being the tempo value that it should have. One may find using the table editor easier to use to fine-tune values.
The second option will allow changing the boundary min and max tempo values for the line editor, as well as the option for what to do for points that fall outside of the new range. The options here are "Truncate" which will set any points' values that lie outside the new range to the closest boundary value, or "Scale" which will take all point values from the old range and scale them to the new range.
Use of the tempo editor is completely optional and users familiar with Csound's t-statement for controlling global tempo may opt to disable using blue's tempo editor and to use a t-statement in the global orc section of the globals tab. Also, older blue projects that existed from before blue's tempo editor was developed can count on their projects loading and running correctly even if opened with versions of blue that do have a tempo editor, due to blue's default to disable the blue tempo editor. Regardless of which tempo system is chosen by the user, one should be careful not to use both at the same time as this will cause two t-statements to exist in the generated CSD (the hand-entered one and the one generated by blue), causing unexpected performance results.

While in the main timeline area, pressing ctrl-t when a soundObject is selected will bring up the quick time dialog. Here you can edit the start time and duration of the currently selected soundObject. When the dialog is first popped up the start time field is automatically focused for editing. You can press tab to switch between the two fields. Pressing enter will update the properties. Pressing escape, closing the dialog, or clicking anywhere outside of the dialog will cancel any changes and close the dialog.

Enabling snapping provides a grid by which to line up your soundObjects. Snap is measured in beats. To open up the dialog, press the [...] button at the top right of the score timeline window. From here you can enable/disable snap for the current polyObject you are editing as well as edit what value to snap to. Snap values are local to the polyObject you are editing.
Table 1.1. Shortcuts for the Timeline
| Shortcuts | Description |
|---|---|
| ctrl-c | copy selected soundObject(s) |
| ctrl-x | cut selected soundObject(s) |
| ctrl-click | paste soundObject(s) from buffer where clicked |
| shift-click | paste soundObject(s) from buffer as a PolyObject where clicked |
| shift-click | when selecting soundObjects, adds soundObject to selected if not currently selected and vice-versa |
| double-click | if selecting on timeline, select all soundObjects on layer where mouse clicked |
| ctrl-d | duplicate selected SoundObjects and place immediately after the originals |
| ctrl-r | repeat selected SoundObjects by copying and placing one after the other n number of times where n is a number value entered by the user (user is prompted with a dialog to enter number of times to repeat) |
| ctrl-drag | if ctrl is held down when drag is initiated of selected SoundObjects, a copy of the originals is made and left at their original times |
| ctrl-t | show quick time dialog |
| alt-1 | switch to Score mode |
| alt-2 | switch to Single Line mode |
| alt-3 | switch to Multi Line mode |