blue

Wouldn’t it be great if you could harness all the power of Csound within the mouse-operated graphic editing environment of a conventional multitrack sequencer/audio workstation? Thanks to blue, you can do exactly that, more or less—or rather, both more and less. blue (the name is always lowercase) will do some things that your favorite DAW won’t do. On the other hand, some features commonly found in commercial software have no equivalent in blue.

blue is a Csound front end created and maintained by musician/programmer Steven Yi. It provides a multitrack timeline, a piano-roll note editor, a drum grid editor, a tracker-style editor, graphic editing of modulation envelopes, an audio mixer panel with effect sends, and a whole lot more. As amazing as blue is, however, it’s a work in progress. It’s a bit quirky and not as well documented as it could be. Because it depends on other software in your system, just getting blue to run is not always a transparent process. (When I’ve had problems, however, Yi has always been happy to help me troubleshoot them.)

Before tackling blue you’ll need to understand Csound pretty thoroughly. blue doesn’t eliminate the need to learn the nuts and bolts of Csound coding. Rather, it provides a suite of tools with which composers who are proficient in Csound can generate and manipulate complex scores far more quickly than would be possible with a text editor. You’ll still be typing lots of little numbers, but the numbers will do more interesting things. Some tasks, such as editing tempo changes, can indeed be handled graphically in blue, without ever typing a line of code.

This section of Csound Power! makes no attempt to document every detail of the blue user interface. We’ll talk about what you can do with blue, and I’ll point out both the great features and some limitations, but without trying too hard to explain exactly what steps you’ll need to take in order to carry out specific operations. As with other aspects of Csound, puzzling out the details on your own is just part of the process.

Downloading and Installing blue

The home page for blue is http://blue.kunstmusik.com. There you’ll find links to the download page, the manual, and a library of user-built instruments. The download link takes you to the SourceForge repository, where both the latest version and older, archived versions are available.

To run blue, you need to have the Java Runtime Environment installed on your computer. (This is because blue is written in the Java programming language.) A version of the JRE is already installed on recent Macintosh operating systems. If you’re using Windows or Linux, you’ll need to download the JRE from www.java.com/en/download. Like blue, JRE is free.

After installing blue, you’ll need to go to the Options/Preferences box and configure it for your system. In Mac OS, Preferences is found under the blue menu in the top menu bar; in Windows, Options is found in the Tools menu. Please don’t be surprised if you have to try out various settings. Using blue 2.1.4 on my Mac, I had to set the path for the Csound Executable, which wasn’t set properly by the default installation. In Windows, I had to uncheck the Use Csound API box to keep blue from crashing during real-time playback. Both of these issues have been reported and have been fixed in the latest version. I’m mentioning them here mainly as a way of suggesting that if you have a setup problem with blue, don’t get discouraged: persevere.

If you’re curious about blue, you might want to start by looking at the online wiki manual (http://blue.kunstmusik.com/wiki/index.php/Blue_User’s_manual).

Overview

As Figure 9.1 should make clear, blue is designed to take full advantage of the multi-panel interface concept. Within the main window are three main work areas, each of which can assume a number of identities depending on which tab you click. The work areas can be closed when not needed, and the borders can be dragged to resize them. Tabs can also be “torn off” and docked in other parts of the main window if desired. Some of the work areas contain graphic objects; in others, you’ll type Csound code.

Like Csound itself, blue divides the work of creating a project into two main areas—the score and the orchestra. When you’re ready to listen to your work, blue will quietly generate a standard .csd file behind the scenes, but at the user interface level you’ll be working in a much more modular fashion. (You can save the .csd to disk separately, so as to inspect it—a good educational experience.)

Each instrument in the orchestra has its own work areas for editing the code, and the score is similarly parceled out into numerous SoundObjects, which can be dragged around in a multitrack timeline. If you think of SoundObjects as being musical phrases, you won’t be far wrong, but their functionality goes much further. I’ll have more to say about SoundObjects below.

The main work area has eight tabs across the top, labeled Score, Orchestra, UDO, Tables, Global Orchestra, Global Score, Project Properties, and Blue Live. Just to make things a little more interesting, when you click on the Orchestra tab you’ll find a subsidiary work area with more tabs for Global Orchestra, Global Score, and UDO, in addition to the Instrument Text tab and the Comments tab. In fact, each Instrument has its own windows for Global Orchestra, Global Score, and UDO. The point of such a multi-faceted design is this: After creating an instrument, you can save it to your Instrument Library. From the Library, you can load it into a different project by dragging it into the Orchestra list. If the instrument needs its own unique f-tables, global variables, or user-defined opcodes, you should enter them in the corresponding edit window for that instrument. The code will then be saved with the instrument when you store it in the Instrument Library. Conversely, code that you enter in the top-level work area for Global Orchestra, Global Score, or UDO will be saved with the project, but it wont be saved to the Instrument Library.

Figure 9.1 The white-on-black text displays of blue seem to invite dim lighting and intense concentration. The central work area, which uses syntax coloring, shows the code for instrument 3. The orchestra browser is on the left and the Csound output display at the bottom. On the right is the properties panel for one of the SoundObjects in the score; the Note Processors list in the properties panel is an especially powerful feature of blue.

image

SoundObjects can also be saved to a Library, so you can swap musical phrases from one composition to another without having to cut and paste. Existing Csound .csd files (or .orc and .sco files) can also be imported.

Over on the right side are more work areas: the SoundObject Properties box, the SoundObject Library browser, the Scratch Pad, the Markers window, and the MIDI Input control panel.

Across the bottom of the main window you’ll find the SoundObject editor, the mixer, and the Csound Output Console. If you’re starting to think that blue might work best on a computer with a really large screen, I won’t try to dissuade you. I’ve used it successfully on a laptop, but doing so entails quite a lot of opening and closing of work areas.

The Score

As Figure 9.2 shows, objects in blue’s multitrack timeline interface look and behave quite a lot like the clips/parts/chunks (the terminology varies) found in commercial sequencers. The track lanes run horizontally, and each lane can be muted or soloed. Individual objects can be auditioned. An object of any type can be placed in any lane.

Figure 9.2 The objects in a blue score can be given different colors. Two automation envelopes are displayed (though they’re hard to see in this image) below the objects, and the code for the Swell 2 object (highlighted in white in the track lane) is displayed in the lower panel. At right is the Markers window. Markers can be named, and the playback start point can be set to the location of any marker.

image

No fewer than 15 different types of objects can be inserted into a track—an AudioFile, a Comment, an External, a GenericScore, a Jmask, a LineObject, an ObjectBuilder, a PatternObject, a PianoRoll, a PythonObject, a RhinoObject, a Sound, a TrackerObject, a ZakLineObject, or a PolyObject. Before we take a look at any of these individual object types, I should mention a few other properties of the Score itself. Across the top are a time ruler and a graphic editor for drawing a tempo envelope. Markers can be placed on the time ruler. Individual objects in the score can be stretched or shrunk with the mouse—and when you change an object’s length in the track, the events in it will get longer or shorter and closer together or further apart in time. The object is plastic, in other words, with respect to time. (This behavior can be switched off if desired.) Objects can be named and given distinctive colors. They can be frozen as audio files, thus freeing up CPU power.

One of blue’s more interesting and powerful features is the ability to apply Note Processors to objects in the score. If you’ve created a standard object that has dozens or hundreds of note events in it, and for some reason you feel the need to make adjustments to a given p-field in all of the events at once, there’s no need to start typing numbers. Instead, apply a Note Processor to the object and use one of 17 different processes on all of the instances of that p-field at once. The processes include obvious choices, such as adding and multiplying; less obvious choices, such as rotating, inverting, and time-warping; and far-reaching possibilities, such as line-adding and line-multiplying. Note Processors are useful not only for quick edits but for adding variation to multiple copies of a given object. When repeating a phrase, you can change its loudness, pitch, or any other parameter defined by a p-field, altering it on each repetition.

Multiple score objects can be embedded in a single PolyObject. Essentially, you can have one entire score within another within another, all of them playing at once.

Score Objects

Explaining every feature of every type of score object in blue would take many pages. Certain types, such as the AudioFile and the Comment, are self-explanatory. Briefly:

Using a LineObject, you can create an arbitrary number of graphic envelopes, each of which can use an arbitrary number of breakpoints. You can set the minimum and maximum values of the envelope and give it a suitable name. blue will add the gk- prefix to the name, allowing you to use, for example, gkline3 in your instrument code. To make this work, you need to use the init opcode in the orchestra header to let Csound know that the global k-rate variable exists. The same precaution applies to the ZakLineObject. This uses Csound’s zak opcodes to send the data for the line to the instrument, so zakinit must be used, with an appropriate number of k-rate channels in order to use a ZakLineObject.

A PythonObject constructs the text for a score or a portion of a score using the Python programming language. Csound itself lets you embed Python code in your orchestra, but doing so requires a few special syntax wrinkles and the Python opcodes. To generate score events with Python in Csound itself, you’ll need to use an opcode such as event, which generates score lines from within the orchestra. Using a PythonObject in blue is more straightforward: Just write some Python code that assembles a text string, and then assign this string to the score variable. For an example, look in the examples directory in your blue distribution. (You’ll find the file pythonProcessor .blue in the noteProcessors sub-directory.) More complex examples of Python coding can be found in the projects feldman .blue and mikelsonPmask .blue, in the scripting sub-directory.

A RhinoObject operates in a similar manner but uses JavaScript in place of Python.

The PianoRoll object may appear at first glance (see Figure 9.3) to be a standard editing feature, but it is unique in its ability to display and edit microtonal scales, either based on Scala-format .scl files or in Csound’s octave/pitch-class format, which can produce any number of steps per octave (and any definition you like of “octave”). Also available for editing notes in more familiar ways are the Pattern object, in which you can set up a drum grid, and the Tracker object, which borrows the layout and some of the functionality of tracker software. As with the graphic automation envelopes, the goal here is to let musicians use interface elements that they’re familiar with, yet without sacrificing any of Csound’s underlying power.

Figure 9.3 A piano-roll note editor in blue.

image
Score Automation

If you’ve created an instrument using BlueSynthBuilder (see Figure 9.4), or if you’re routing the outputs of your instruments through the blue Mixer, you’ll be able to edit graphic envelopes for all of the automatable parameters directly in the score. This feature goes a long way toward making blue operate more like a DAW. The main limitation, at the user interface level, is that you can’t record automation data by grabbing the graphic knobs and sliders themselves with the mouse and fiddling with them while the music plays.

Internally, in the process of generating a .csd to send to Csound for playback, blue transforms automation data into new instruments and score events—hundreds of score events, each of which transmits one control value as a global variable.

Figure 9.4 The graphic widgets that can be created with BlueSynthBuilder can transmit their values to your instrument either at the start of score playback (for sound design purposes) or via an automation envelope in the score (for musical expression). Instruments respond to live control movements while playing if the Csound API is enabled in the Options/Preferences box.

image
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.128.145