Blue Live
Blue Live allows you to work with Csound in realtime. It allows for generating score with SoundObjects and working with MIDI keyboard input to create notes and run with Csound instruments defined in your project. Note: Blue Live works when using the Csound API, or on non-Windows platforms when not using the Csound API. Windows does not allow piping text to executable in a non-blocking way and therefore limits what can be done when not using the API.
The motivation of Blue Live is primarily to aid the composer in working out ideas and to help configure instrument, effects, and mixer settings. You may find it helpful early on within the life a composition, when you want to try out a number of different ideas in realtime. You may tweak instrument parameters, mixer settings, try out different notes and chords with a MIDI keyboard, and even work with different SoundObjects. Later, when you have some ideas worked out, you can take your SoundObjects from blueLive into your score timeline and continue working from there.
Beyond this primary capacity as a mode to aid composition, Blue Live has some capacity to be used for realtime performance. Though this isn't it's primary aim at this time (as of version 2.1.0), it can certainly be used in this regard. For now, however, the role of Blue Live is primarily one of aiding the compositional process. More full realtime performance capabilities will be introduced as development scheduling allows.
Blue Live is designed to work with the rest of your blue project file. All aspects of your regular blue file that would normally be written out to a CSD file are done so except SCO text that would be generated from the score timeline. The global score are will be written out, but instead of <TOTAL_DUR> being calculated from the score timeline, a default value of 3600 is used. This allows your notes that would be used for effects instruments to run for 3600 seconds (this size can be modified; please make a request if desired).
The main toolbar has four buttons for blue Live: "blueLive" (which starts and stops blueLive), "Recompile" (which regenerates the CSD from your project and restarts blueLive, useful if you modified your orchestra code), "All Notes Off" (turns off any score notes that are actively playing), and "MIDI Input" (turns on and off the configured MIDI devices setup in the program's options, discussed further below).
The primary Blue Live window is available from the Window Menu, or by using the ctrl-8 shortcut. The Blue Live window has three main tabs: the Live Space, the SCO Pad, and Options. These will be discussed below.
The Live Space is an area to work with SoundObjects. SoundObjects can be copied to/from the Score Timeline as well as the Live Space. SoundObjects can also be created within the Live Space by using the "+" button. Once a SoundObject is added to the Live Space, it can be triggered by hitting the trigger button for that SoundObject row in the table. Triggering a soundObject will take the score generated from it and pass it immediately to the active Csound instance for blueLive (blueLive must be running for this to work). You can edit the properties for a Live Space soundObject by select it in the Live Space table, then using the normal SoundObject Editor window and SoundObject Properties Window to modify settings.
When using the Live Space, you can copy objects from the timeline, then by right-clicking in the Live Space, use the popup menu to paste the copied soundObject into the Live Space. You can then make changes to Live Space objects and try out the different ideas in realtime. After changes have been made, you can copy the soundObject using the right-click popup menu and paste it back into the score timeline.
NOTE: All objects are set to generate as if their time behavior was set to none, meaning no scaling or repetition is done.
This is an experimental feature to record MIDI input in a manner similar to to notation programs (press keys, then press 4 for a quarter note, 8 for and 8th note, etc.). This feature requires MIDI Input to be turned on. This feature is experimental at this time.
The options panel allows setting up parameters for blue Live. Currently it contains options for modifying the commandline string used when running blueLive. For most users, these modification will not be necessary and the default commandline used will be sufficient.
blue's MIDI system, when enabled, will listen to configured MIDI devices for notes, map the key and velocity, and generate Csound notes to achieve MIDI-like note-on and note-off type behavior. This allows working with a MIDI keyboard in realtime with your project instruments without modifying your instruments specifically for MIDI. This also means that when blue's MIDI system is enabled, Csound MIDI processing should be disabled for your project.
To configure what MIDI devices to use, go to the program Options settings (on OSX it is the application's Preferences, on other platofrms it is the Options menu item in the Tools menu) and under "blue", go to MIDI. There you will see a list of MIDI devices connected to your computer. If you connected a device after starting blue, you can rescan to find your MIDI device. In this window you will configure what MIDI devices you want to use with blue, but these devices will not be opened for listening until you enable MIDI Input on the blueLive toolbar in the main application.
Once you have configured what devices to use with blue, return to the main program and enable MIDI input using the "MIDI Input" button, then start blueLive. At this point, when MIDI notes are played, blue will take the incoming note data, map it according to the values configured in the MIDI Input Panel window (available from the Windows Menu), and then generate notes and pass them to Csound.
For a MIDI note on, blue will the channel number of the note and map it to the instrument in the orchestra manager by index. For example, if you have three instruments numbered 1, 3, and 5, notes for MIDI channel 1 will generate with instr 1, notes for MIDI channel 2 will generate with instr 3, and notes for MIDI channel 3 will generate with instr 5.
The MIDI key number as well as the velocity will be mapped according to the settings set in the MIDI Input Panel window. This allows for generating frequency, Csound PCH, and using Scala Tuning files to generate either frequencies or bluePCH format text, amongst other values.
Instruments that are intended to be used with blue's MIDI system will have to work with a 5 p-field note format. This does not mean your instrument can only work with 5 p-fields, but rather that your instrument must support at least that. An example blue project can be found in examples/features/blueLiveMidi.blue (if you are using the OSX application, you may need to explore the contents of the blue.app program to find the examples folder).
Blue Live uses a subset of the same soundObjects that are available on the score timeline within the main editing window of blue. Some possible ways you could explore ideas are:
trying out SCO ideas with genericScore
testing your python functions with the pythonObject
testing your javaScript functions with the rhinoObject
using Cmask, nGen, Common Music, and other programs with the external soundObject to try out things live