PERFORMANCE NOTES for SUBLIMATION by Dave Seidel (2006) - Realtime Version by Art Hunkins Sublimation (Realtime Version) is a live performance rendition of Dave Seidel's Sublimation for Csound. The original scorefile, along with recording and commentary, can be found at http://mysterybear.net/article/14. Study of these source materials is highly recommended, as performance of Sublimation Realtime is intended to model closely the original work. Sublimation was composed in Csound, a software sound synthesis program. Sublimation Realtime, as well as the original, specifically requires the latest incarnation of Csound: Csound5.00 (or above). Csound5, a free download, is found at: http://csound.sourceforge.net. It is available for all major computer platforms. Duration of both original and real time versions is 12 minutes. The performance version has two variants: SublimationRT.csd and SublimationRTAlt.csd. Their minor differences are outlined below; in actual use, they are functionally identical. There is no visual user interface for this realization. The performance vehicle is any MIDI device comprising a bank of 6-8 MIDI controllers - either sliders or rotary pots (or a combination). Six harmonic "clusters" constitute the sonic material of this work, and each cluster is assigned a control. The seventh and eighth controllers are optional; their purpose is to tailor the sound to acoustics of the performance space. (Neither option is present in the original; these two features are the only "additions" to what is otherwise intended to closely parallel the original composition.) Optional controller 7 regulates the amount of reverberation; the higher the control is raised, the *less* reverb is produced. (A higher setting may be appropriate for larger spaces that have greater amounts of natural reverb.) Controller 8, when raised, increases "scintillation" (see Dave's description referenced above); it may be desirable in spaces which tend to swallow up detail and lack definition. Both controllers 7 and 8 are preset prior to performance, and remain unchanged. Their default settings are zero (which correspond to the original). The clusters enter in order, one at a time, from controller 1 through controller 6 (see details below). Each controller is raised to maximum. Controller 1 is special: when controllers 1-3 are all at maximum, controller 1 controls the level of 2 and 3 as well (acting as a group fader). It does so until all three controllers are back, together, at zero - whereupon the controllers are again independent. Depending on the features of the MIDI device used, several variables may need to be modified toward the beginning of the performance file (.csd). Changes may be made in any text editor, such as Windows' Notepad. The first variable is MIDI channel #, CHAN, which defaults to 1. A special, coded option for CHAN is 0; this indicates a multichannel control device (starting with channel 1) using controller #7 on all channels. (A few control devices only work like this.) The second user-defined variable is CTRL1, representing the first number in the bank of 6-8 successive controller numbers. (Note that the sliders or pots must be numbered continuously; some setting of the hardware device will permit this.) The default value is 20 (indicating controllers 20-25 or 20-27). The last variable is sample rate, SRATE. The original Sublimation uses a sample rate of 48000Hz, which is this version's default. Real time rendering of this composition is very computationally intensive, and only some computers at this time (3/06) are capable of sustaining this rate. As a result, it may be necessary to reduce the rate down to as low as 22050Hz (options are indicated in the performance .csd). Needless to say, the higher the sample rate (thus the cleaner the sound) the better. (More on this issue below.) Several other modifications will probably need to be made in the performance file: under , to the flags -M0 and -odac0. The -M0 flag specifies the first MIDI input device, and -odac0 the first audio output device. To determine the appropriate numbers for the devices you are currently using, substitute "out of range" numbers, such as -M99 and -odac99; you'll receive an entire list of available device numbers (as well as a runtime error message). You can then select the right numbers for your devices and substitute them for -M0 and -odac0 (e.g., -M3 and -odac8). Here are specific performance instructions that will parallel the original work. Please note that *event timings* are particularly important to the composer (durations were selected based on the Fibonacci series): 1) All controllers are preset to zero, except (optionally) controllers 7 and 8. (#7 and #8 remain as preset throughout.) 2) All fades, in and out, extend between zero and maximum, and take 10 seconds. Controller 1 begins by fading in at time zero. 3) Controller 2 fades in starting at one minute, followed by controller 3 at two minutes. 4) Controller 4 fades in beginning at four minutes; controller 1 then fades out controllers 1-3 starting at six minutes fifty seconds. 5) Controller 5 fades in at seven minutes, immediately after the conclusion of the preceding fade out. Controller 6 fades in at nine minutes. 6) Controller 4 fades out starting at nine minutes fifty seconds; controller 5 does likewise at eleven minutes twenty seconds, followed by controller 6 at eleven minutes fifty seconds. SAMPLE RATE Dave Seidel's original Sublimation is sonically very clean and clear. Its clarity is primarily the result of high sample rate and precision oscillators. The live performance rendition should mimic these qualities. SublimationRT.csd replicates the original, in real time, almost exactly. An alternate version, SublimationRTAlt.csd, substitutes slightly less precise oscillators in order to be less computationally intensive, thus allowing for a higher sample rate. Since sample rate is more crucial for clarity than oscillator type, the goal - described below - is to find the highest sample rate of which either of these two performance files is capable. (Only if the rates were identical would you choose the "non-Alt" version.) Note also that according to the Csound distribution you have installed, you may have *two* versions of csound you can run. Csound.exe theoretically produces slightly higher quality (due to 64-bit internal processing), while csound32.exe, though slightly less precise (32-bit internal processing), is about 10% faster. The procedure below suggests starting with the 64-bit csound.exe (if available) at 48000SR, and immediately reverting to csound32.exe if that doesn't work. (It is very likely that you'll hear *no* difference between the two csounds; at any rate, differences in sample rate are far more significant than the choice of csound version.) Follow the steps below to select the highest quality of which your computer system is capable. This point will be one step lower than where sound output begins to stutter (break up). Stuttering can be most easily tested by turning up the *first four* performance controls to maximum. Please note that not all sound cards and sound card drivers are capable of sample rates below 44100Hz. Windows ASIO drivers, in particular, often don't allow such rates. A runtime error message will advise if this is the case: "Invalid sample rate." (ASIO4ALL stereo drivers, available for free at http://www.asio4all.com, *do* allow lower rates; they also add ASIO capability to any Windows soundcard that lacks it.) 1) Run SublimationRT.csd with csound.exe at 48000SR. 2) Run SublimationRT.csd with csound32.exe at 48000SR. 3) Rerun step 2 at 44100SR. 4) Rerun step 2 at 32000SR. 5) Rerun step 2 at 22050SR. 6) Run SublimationRTAlt.csd with csound32.exe at 22050SR. 7) If step 6 is successful, rerun it at 32000SR. (Keep raising the rate if successful.) 8) If none of the previous steps is successful, get a more powerful system, or forget about performing Sublimation Realtime. (Note that it is *possible* to run Sublimation Realtime at sample rates of 11025Hz or 8000Hz, but doing so is not recommended. You would not be doing the composer a favor.) Dave Seidel - dave at mysterybear dot com http://www.mysterybear.net/ Art Hunkins - abhunkin at uncg dot edu http://www.arthunkins.com March 2006