SPIRITUS SANCTUS for Csound5 (2013)
Arthur B. Hunkins - arthunkins.com - abhunkin@uncg.edu

        In the beginning God created the heaven and the earth.
        And the earth was without form, and void;
        and darkness was upon the face of the deep.
        And the Spirit of God moved upon the face of the waters.

        And the Lord God formed man of the dust of the ground,
        and breathed into his nostrils the breath of life;
        and man became a living soul.
                                                                Gen 1:1-2, 2:7

GENERAL

SPIRITUS SANCTUS is a solo performance environment for Csound5. Suitable for any computer platform that runs Csound, this environment is essentially an instrument that suggests an improvizational structure. It is not a composition, and no performance instructions are given; its instrument is simply intended to be explored creatively. As a result of exploration, performance *may* express itself as a composition (though perhaps more properly, as structured improvization).

The work exists in four incarnations: a Simplified version for two "voices" (SpiritusSanctus2S), a "normal" version for two "voices" (SpirituSanctus2), a Simplified three-voice SpiritusSanctus3S, and a "normal" three-voice SpiritusSanctus3. All require a MIDI device, though with different numbers of knobs/sliders (from 6 to 17). Here, "voices" or "tones" refer to steady pitches (400Hz and microtonal variants) with changing tonal qualities, that beat against one another. You select one of six sets of tones, as described below. The sets contrast in texture: TONESET 1 is simple and transparent; 2 through 4 are richer and more complex, while 5 and 6 are assertive and dynamic.

Each of the versions is available in command-line formats (including FLTK) as well as with a GUI (Cabbage) front end. (For information on Rory Walsh's Cabbage, and to download Cabbage for platforms other than Windows, see www.thecabbagefoundation.org.) Linux and Mac systems must have *their own* binary of Cabbage installed (Cabbage.exe). On these platforms, copy the current files to your Cabbage folder, delete SpiritusCabbage.exe, and run them with your system's Cabbage.exe. (Retain all your Cabbage defaults/Preferences; just be sure that "Always on Top" is unchecked under Options | Preferences.)

On Windows, with all these files in the same directory, simply run SpiritusCabbage.exe.

All cases require that Cound be installed - Csound5.02 or higher for the command-line versions, Csound5.17 or more for the Cabbage versions. Preparations for both formats are discussed below.

INITIAL SETUP - Command-line Versions

[Note: though run from the command line, an "FLTK version" displays a performance GUI very much like that of Cabbage.]

You will probably need to edit several <CsOptions> flags near the beginning of your .csd performance file. (Do this in any text editor; your .csd is a text file.) You must insure that the values of -M0 (your MIDI input device #) and -odac[0] (your audio output device #) match your system. Simply substitute a high number, such as -M99 and -odac99, for the zeros and run the file. The performance will immediately abort and display a list of valid device numbers on your system. Once you identify the appropriate numbers, go back and insert them in place of the zeros. Alternately, you can simply insert these flags/values on the command line.

Also in <CsOptions> - if working on Linux, you'll want to take out the semicolon in front of the Linux line beginning -odac, and insert a semicolon at the start of the corresponding Windows/Mac line.

Additionally, depending on the version, several variables (MACROs) must be preset. (Variables in the Cabbage versions have similar names, but are displayed on the GUI and associated with sliders; much the same is true of the FLTK versions):

TONESET indicates your choice among 6 sets of "tones." As mentioned above, TONESET 1 is simple and transparent; 2 through 4 are richer and more complex, while 5 and 6 are assertive and dynamic.

CHAN specifies the output channel of your MIDI device. Default = 1. A value of "0" indicates that all controllers are set to 7 and use successive channel numbers from 1 up (to maximum of 16). In this case other actual controller numbers do not apply.

CTRL indicates the 1st controlleer number of the basic (consecutive) set. Default = 20.

FRQCTRL specifies the 1st controller number for two or four consecutive controllers of beat frequency. There are various defaults. The four controllers are two sets of two - a set each for "voice" 2 and 3 in SpiritusSanctus3.

VOLCTRL is an optional Overall Volume controller, useful mainly to begin and/or end performances. Default = -1, an indication of no overall volume control.

The precise function of each knob/slider is listed below.

Be sure to attach your MIDI device before running Csound..

INITIAL SETUP - Cabbage Versions

The following files should be placed in the same directory: SpiritusCabbage.exe, whichever .csd versions you wish to run, and SpiritusCabbage.htm. If Windows Csound files are included in your distribution, place *all* files in the same directory. Unless you have this special Windows download, Csound 5.17 (or later) must also be installed.

Be sure your MIDI input device is plugged in before proceeding.

Click on SpiritusCabbage.exe. A File Selector displays all the .csd files in the directory; click the one you want to perform. In the displayed GUI, click Options, then Audio Settings. Next select your Active MIDI Input device (check it), and if necessary, your output device. Finally, close the Audio Settings window.

If you get audio glitches or experience "slider/knob delay" (latency), experiment with a different audio buffer size (in Audio Settings). A smaller size will decrease latency; a larger size will eliminate glitches. Use of the Test button in Audio Settings will readily get you to low-latency performance with no glitching.

PERFORMANCE - Cabbage Versions

Return all MIDI knobs/sliders to zero, and set the GUI sliders to your particular MIDI configuration (channels and controller #'s - including Overall Volume controller, if desired). (Note that there is an option that allows for CC7 on consecutive channels; it is enabled by selecting MIDI channel zero.) Then move any MIDI knobs/sliders to their initial positions (if other than zero). You can make changes to the GUI settings at any time.

Hint: Spiritus Sanctus is based on the phenomenon of slightly de-tuned oscillators ("tones") slowly beating against one another. Beating is greatest when amplitudes of the tones are equal, less otherwise. The sense of panning varies similarly..

WHAT THE VARIOUS KNOBS/SLIDERS DO - Cabbage and Command-line Versions

Different numbers of knobs/sliders are required in the four versions. In general, each of the two or three "tones" has a volume controller; also, an absolute tone cutoff, random tone amplitude, random tone speed (tone here refers to "low-pass cutoff point"), absolute beat speed control and random beat speed control. For Simple versions the last two controls are combined.

Note: All versions include an optional Overall Volume Controller. The option is turned off by default (and assigning a value of -1).

SpiritusSanctus2S (2-"voice" Simple)
Controller #1 (first controller of 6 contiguous): volume of tone 1
#2: volume of tone 2
#3: absolute tone cutoff (applies to both tones)
#4: random tone amplitude (applies to both tones, but different random contours)
#5: random tone speed (applies to both tones, but different random speed contours)
#6: absolute/random beat speed control

SpiritusSanctus3S (3-"voice" Simple)
Controller #1 (first controller of 7 contiguous): volume of tone 1
#2: volume of tone 2
#3: volume of tone 3
#4: absolute tone cutoff (applies to all three tones)
#5: random tone amplitude (applies to all tones, but different random contours for each)
#6: random tone speed (applies to all three tones, but different random speed contours for each)
#7: absolute/random beat speed control (combined for all three tones)

SpiritusSanctus2 (2-"voice")
Controller #1 (first controller of 8 contiguous): volume of tone 1
#2: absolute tone cutoff for tone 1
#3: random tone amplitude for tone 1
#4: random tone speed for tone 1
#5 through #8: same set of four controllers for tone 2
1st Frequency Controller (of 2 contiguous): absolute beat speed control
2nd Frequency Controller: random beat speed control

SpiritusSanctus3 (3-"voice")
Controller #1 (first controller of 12 contiguous): volume of tone 1
#2: absolute tone cutoff for tone 1
#3: random tone amplitude for tone 1
#4: random tone speed for tone 1
#5 through #8: same set of four controllers for tone 2
#9 through #12
: same set of four controllers for tone 3
1st Frequency Controller (of 4 contiguous): absolute beat speed control - between tones 1 and 2
2nd Frequency Controller: random beat speed control - between tones 1 and 2
3rd Frequency Controller: absolute beat speed control - tones 2 and 3
4th Frequency Controller: random beat speed control - tones 2 and 3