GLORIA SEMPITERNUM (2021) for realtime Csound (PC and Android versions) Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins.com "For thine is the kingdom, and the power, and the glory, for ever. Amen." Doxology of the Lord's Prayer (KJV) To the memory of John Shelby Spong, a great progressive Christian and spiritual prophet for our time. He rests in peace. GLORIA SEMPITERNUM is the last in the long line of "Glory" works that include, most recently, GLORIA MAGNUM MYSTERIUM and THE GLORY CYCLE. Like these earlier creations, GLORIA SEMPITERNUM represents the continuing evolution of a fascinating instrument created by Luis Antunes Pena around 2006, on which he improvised his Etuede in Granit. (Luis' improvisation can be auditioned at: https://soundcloud.com/antunespena/etuede-in-granit). As always, I remain ever grateful for his inspired creation. The current work is similarly a live-performance Csound instrument rather than a traditional composition. It is a framework for improvisation - either totally free, or structured (to whatever degree) by the performer. It is presented in five editions: two for console computers (PC, Mac or Linux), two for Android tablets or smartphones, and one that auto-performs on all of these platforms. The console editions (GloriaSempiternum and GloriaSempiternum2) require a MIDI controller comprising 8-12 sliders or knobs. Each control, beyond the 8 required, adds a progressive dimension of subtlety and variety to the instrument. The only difference between the two editions is that GloriaSempiternum2 includes an ongoing console display or readout of knob/slider values. Such a display can facilitate semi-structured performances in two ways: 1) by setting non-default initial levels of controls 2 and above; 2) by allowing for the crafting of a more-or-less detailed "score" of on-going controller values. (This same display feature is included in both Android editions.) The Android editions accomodate the number of controls available on the following Android Csound apps: the Csound for Android app downloadable from play.google.com (requires Android OS 5 or higher), and any of the "alternative" Android apps downloadable from http://www.arthunkins.com/Android_Csound_Apps.htm (Android OS 4.1.1 or higher). GloriaSempiternum uses 8-10 controls; GloriaSempiternum2, 8-11 controls. All the above apps accommodate live-performance renditions on up to 9 sliders/knobs. Csound for Android (from play.google) allows for ten sliders, by appropriating the x-axis of its trackpad as controller 10. Both it and Csound6c include the limited console printout feature of the preset and/or ongoing values displayed by sliders 2 and up. (This feature is incorporated in several of the Android Csound editions as well.) Csound6b and Csound6c both permit 11 sliders, the latter with a single-line console printout of slider values. (The 12th slider implemented in the console editions is not possible for currently available Android versions.) The auto-play edition, GloriaSempiternumAuto, is compatible with both console PC's and Android devices. It requires no knobs/sliders or MIDI controller. Rather, its performance is randomly determined by a set of MACRO variables specified by the user (or by program defaults - see further below). This edition automatically renders an "11-controller" performance. Note that to download one of the "alternative" apps (that is, apps from other than play.google.com) directly to Android, you must, under Settings | Security, enable Unknown Sources. (You may also need to do the same to *Install* from Unknown Sources.) After installation, copy/paste your selected .csd to any user-accessible folder on your device (suggestion: the Music folder). Then Open that file within the app, and Run Csound. GENERAL PERFORMANCE CONSIDERATIONS In the live-performance editions, all slider/knob movement is slow to very slow. Movement is not necessarily constant, though it may be. The first control (an overall volume control) is always moved alone, including at the beginning and end of a performance. (Typically, it would only be moved twice: to full on at the beginning and full off at the end.) Other controls may be moved together, though normally they are not. (Note that in Android Csound, only a single control can be active at a time.) The overall sonority should evolve and transform, all in an unhurried, relaxed fashion. With the Android sliders, there should be no "skips" in slider value; each new movement should begin where the previous one left off. Audio output is stereo. It is important that the amplifier level should be preset to LOW VOLUME, as the intent of the music is meditative. It may only be moved - via slow fadeout - to conclude (prematurely!) an endless rendition of the work (or one of greater-than-desired preset duration). If you get any "glitching" in performance with Android, Disable WiFi and any other connections in your device. There are no recommendations for performance duration. For active performance renditions, there is no requirement that all controls be used, though it is likely they will be. Prior to performance all controls are initially set to zero. After Csound start, controls other than #1 may be changed to alternate positions. (These positions may be predictably replicated by using the console printout feature available in several of the apps as described above.) Actual (i.e., audio) performance then starts by raising slider 1 to max, where it remains, eventually concluding by returning it slowly to zero. The GloriaSempiternum.wav that accompanies these materials is a live-performance, 4-minute demo of a console edition. It features all 12 knobs/sliders and begins with every control at zero. (Sliders are progressively turned up, in order and one at a time, during the first 3 and a quarter minutes.) NECESSARY EDITS All editions of this work, especially those for console computers, will likely require minor text editing - primarily, in the case of computers, to accommodate a particular platform and/or MIDI device. These edits are made in any basic text editor, as the .csd's are simple text documents. For console variants: under , near the top of the .csd, you'll need to adapt for Linux if you are on other than a Windows or Mac system. (Recall that an opening semicolon comments out a row of code; removing the semicolon implements the row.) If you have a single MIDI device, the default -M0 is fine. If your console output includes an "unrecognized MIDI device" error, look for the MIDI device list, and substitute your appropriate device number for the zero in -M0; then rerun Csound. (If you have more than one audio output device, you may need to follow a similar procedure for -odac, appending the appropriate device number - e.g., -odac6. The default is effectively -odac0, the number of your usual stereo device.) Also for console variants, there are a number of orchestra "macros" (likewise listed toward the top of the .csd) that may require editing: CHAN, CTRL and CTRL2 are three of these. CHAN defines the MIDI Channel your controller is sending on (default is 1, the normal channel). A special code, CHAN "0", indicates that your MIDI device sends Continuous Controller 7 (CC 7) messages on the first 8 to 12 channels, depending on the number of controllers involved. CTRL defaults to 20, the number of the first of 8 contiguous CC's. If additional controllers are required, these are numbered starting at the value indicated by CTRL2. Substitute the CC numbers appropriate to your MIDI device. (Note that all substitutions must be enclosed by #'s.) Another macro is CS604, which has to do with the Csound version being run. CS604 = 1 indicates that the version is at least 6.04; a value of 0 indicates that it is less than that (which bars implemention of knob/slider 12). Finally, there is FREQFAC, which relates to knob/slider 11. FREQFAC can be set to a variety of values. FREQFAC = 0 (default) is for when its value is to be ignored, as controller 11 is active. FREQFAC = 115-170 is for when a fixed frequency factor is desired instead of a variable one, or for when controller 11 is absent. Though the Android and Autoplay editions do not include the above macros, they do include others - all with stated default values. These are listed in the descriptions below, and may need editing. The standard Csound for Android app actually has an editor within Csound. Upon selection, your .csd automatically opens in Edit mode. (In addition, the "alternative" Csound6 apps include an Edit button which will access any text editor installed on your device, also once a .csd is loaded.) In any case, when finished editing, be sure to Save; your revision is immediately available to Run without reloading. THE BASIC SONORITY The single, high-pitched sonority consists of 32 sine waves ("voices") anchored on a frequency of 2500Hz and closely spaced via an equal frequency increment. Only the base frequency is slightly enhanced via harmonics. This frequency is the only voice/pitch shared by the two channels. Otherwise the voices are allotted to alternating channels. The frequencies change modestly only when controller 11 increases the frequency increment between voices, and/or (in console variants only) when controller 12 adds higher (2nd and 3rd order) harmonics to the mix, generally brightening and enhancing the sonority. The base frequency remains constant. THE CONTROLLERS The general function and order of the 8-11(12) controls of the live performance editions are identical. Controller 1: master volume Controller 2 & 3: slow random amplitude variation on a *per channel* basis (mild panning/spatialization effect). #2 = amount of variation; #3 = average speed of variation Controller 4 & 5: somewhat faster random amplitude variation, on a *per voice* basis. #4 = amount of variation; #5 = speed of variation Controller 6 & 7: randomly varying tremolo (per voice basis); #6 = amount of random variation; #7 = speed of variation (at higher average rate than previous controls) Note: Controllers 2 through 7 produce increasing degrees of activity - all through subaudio, random rates of amplitude modulation Controller 8 & 9: #8 = master spectral amplitude control (thanks to Luis Pena); #9 = amount of random spectral sweep around #8's current value Controller 10: reverb (reverbsc) Controller 11: frequency factor (fixed cps) added cumulatively to each voice (base frequency unchanged) Controller 12 (only in console variants): brilliance/diffusing effect (exciter) SPECIAL CONSIDERATIONS The Android editions- There is an orchestral TRACKPAD macro in these variants which is *relevant only to the Csound for Android app*. This app lacks a tenth slider, and so - if necessary - you can specify TRACKPAD = 1 to activate the pad's x-axis as a substitute controller 10. (This is the reverb control, and its precise setting is not crucial - which is fortunate, as its current touch point is not visible and cannot readily be recovered; zero, max and perhaps .5 are the safest choices.) In all other situations (including other Android apps), the default value TRACKPAD = 0 is appropriate. Slider 10's value will apply (or if the slider is not present, its default, .5). GloriaSempiternumAuto - This auto-performing variant is randomly generated, not physically performed, and thus requires a number of orchestral macros to guide its progress. All of these deal with duration (which can even be infinite!) and tempo. All have defaults, so that a unique rendition can be accomplished by simply "clicking Run" in an appropriate version of Csound. (The GloriaSepiternumAuto.wav demo that accompanies these materials is a recording of such a rendition, with the default settings below.) The macros follow: TEMPO #1#; allowed range >= 1; higher value = SLOWER (a duration [DUR] multiplication factor) DELAY #5#; silence (following Csound start) before onset of audio in seconds DUR #360#; total duration in seconds; 0 = endless FADE #10#; length in seconds of opening and (if any) closing fade Performance of GloriaSempiternumAuto begins immediately when Csound is run, or following the period of initial silence specified by the DELAY macro. To end a rendition prematurely (either an "endless" rendition, or one preset for a longer duration than is ultimately desired), slowly turn down the amplifier.