THE GLORIA CYCLE (2020) for realtime Csound (PC and Android versions) Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins.com To the all-encompassing, all-loving I AM of the universe THE GLORIA CYCLE is the sequal to a series of related works: LIGHT FROM LIGHT, through GLORY, GLORY 2, and GLORY 3. Like these earlier compositions, THE GLORY CYCLE represents the ongoing 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). I continue to be grateful for his inspired creation. The current cycle is similarly a set of live-performance Csound instruments that represent frameworks for improvisation - either totally free, or semi-structured. These .csd's are designed to run on console computers in conjunction with a MIDI controller (comprising up to 9 sliders or knobs), and on Android devices. The Android versions adapt to the number of controls available on the following Android Csound apps: the Csound app downloadable from play.google.com (requires Android OS 6 or higher), or any of the "alternative" Android apps downloadable from http://www.arthunkins.com/Android_Csound_Apps.htm (Android OS 4.1.1 or higher). THE TWO BASIC VERSIONS GloriaXX.csd's are the variants for console computers (Windows, Mac and Linux). They are normally performed from the Csound command line (system prompt). The GloriaXXAndroid.csd's are the ones for Android devices (all smartphones and tablets - OS 4.1.1 and up) 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 All versions are live-performance, except for Gloria4b, which is autoplay according to parameters determined by the user (via orchestra MACROs - see further below). All slider/knob movement is slow to very slow, and *consistently* so. Movement is not necessarily constant, though it may be. The first control is always moved alone, including at the beginning and end of a performance. Other controls, except as noted, may be moved together. (Note, however, that in Android Csound, only one control is active at a time.) The overall sonority should seem to 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 2-channel mono, except for Gloria2 which is stereo; in either case audio should be sent to two or more high-quality speakers. Amplifier level should be preset to low-to-moderate - preferably low, as the intent of the music is meditative. It is not changed during performance, except to conclude (prematurely!) a endless rendition of Gloria4b (or one of preset duration). If you get any "glitching" in performance with Android, Disable WiFi and any other connections in your device. (You could also experiment with editing the Sample Rate (SR) toward the top of a .csd, to a progressively lower value [e.g., 32000, 22050], but do this only as a last resort. As text files, .csd's can be modified in any basic editor.) There are no recommendations for performance duration of any of these versions. Except as indicated, there is no requirement that all controls must be used, or that any control must be initially set to zero. (Slider/knob one is the exception; as master volume control, it is always preset to zero, prior to other controls being changed to alternate positions.) Except for the auto-performing Gloria4b, performance always starts and concludes by moving slider/knob one. EDITS TO THE VARIOUS VERSIONS Many of these versions, 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. For computers, 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.) Then there are additional orchestra variables or MACROs (also listed toward the top of the .csd): in particular, CHAN and CTRL. 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 7 or 8 channels, depending on the number of controllers required. CTRL defaults to 20, the number of the first of 7 or 8 contiguous CC's. Note that any substitutions you make must always be enclosed by #'s. Though Android versions do not include the above macros (as they don't involve MIDI), a number of the .csd's both for Android and computers include other macros - all with stated default values. These are listed in the descriptions below, and may need editing. The standard Csound app from play.google.com 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 CONTROLLERS The general function and order of the 7-9 controls is roughly the same for all versions: Controller 1: master volume, presenting a chord of 8-16 pitches without additional processing. While in a few versions chords are built of equal intervals, most follow in the harmonic series of the basic pitch, different numbers of consecutive harmonics of the pitches (as an ensemble) beginning at differing points in the harmonic series. Also, in some versions, controller 2's tremolo effect is incorporated into controller 1. Controller 2: (sometimes absent) a minimal, random, ensemble tremolo effect (all pitches same rate) Controller 3: a faster and more pronounced random tremolo, all pitches randomized separately Controller 4: (sometimes absent) varies speed of random tremolo Controller 4: pitch intervals (as an ensemble) are expanded slightly Controller 5: spectral weight (amplitude distribution) varies among pitches, resulting in a morphing overall texture. (This is the feature most prominently borrowed from Luis Pena.) Controller 6: tone color (as an ensemble) varies in the degree of prominence of the included harmonics Controller 7: random, high-frequency pitch variation per individual pitch, creating a noisy effect Controller 8 (optional): pitch intervals (as an ensemble) are contracted slightly Controller 9 (unique to Gloria4): distortion/brilliance effect THE INDIVIDUAL VERSIONS GLORIA1a.csd and GLORIA1aAndroid.csd 2-channel mono; 8 pitches that follow the harmonic series of the base frequency; 7 controllers required, with an 8th (the last) optional. Additional macros: none Performance: fairly structured, simple Slowly increase the 7 or 8 knobs/sliders in order, singly, from 0 to max - each in a single, consistent movement. Optionally stop for a brief period before continuing to the next. At the end, notably prolong the sonority, before slowly fading control 1 to zero. GLORIA1b.csd and GLORIA1bAndroid.csd Identical to 1a, except that it includes the faster random tremolo speed option of controller 4. 8 pitches that follow the harmonic series of the base frequency; 8 controllers required, with a 9th (the last) optional. Additional macros: none Performance: fairly structured, simple Slowly increase the 8 or 9 knobs/sliders in order, singly, from 0 to max - each in a single, consistent movement. Optionally stop for a brief period before continuing to the next. At the end, notably prolong the sonority, before slowly fading control 1 to zero. GLORIA2a.csd and GLORIA2aAndroid.csd Stereo; otherwise similar to Gloria1a/b, but pitched an octave higher, and adding richness by varying tonal detail on the two channels. Performance: fairly structured, fairly simple There are two alternatives: 1) same as for Gloria1, with additional option, if using 8 controls, of returning either controller 8 *or* controller 7 slowly to zero, prior to sustaining the final sonority and moving controller 1 to 0. 2) a (with 7 controls) - after completing alternative 1, simply reverse the sequence, returning successive controls to zero; b (with 8 controls) - as with 2-a (including the controller 7/8 option), but zeroing controller 7 or 8 in either order prior to reversing the remainder of the sequence. GLORIA2b.csd and GLORIA2bAndroid.csd Identical to Gloria2a, but including the controller 4 (random tremolo speed option), and thus 8 controllers with an optional 9th. Additional macro (optional): CTRL9 Sets CC# for optional 9th controller; default=28 (If CHAN is coded "0", the 9th controller is automatically assigned channel 9.) Performance: fairly structured, fairly simple Same alternatives as for 2a, except that the options regarding controllers 7 and 8 now apply to 8 and 9. GLORIA3a.csd and GLORIA3aAndroid.csd 2-channel mono; 16 pitches that follow the harmonic series of the (low) base frequency; 7 controllers required; no controller 4 or 8. Has the widest variety of tone color. Additional macros: none Performance: relatively unstructured, improvised. One feature to observe is the general textural progression from one controller to the next (increasing in richness and intensity from 1 through 8). It is probably best, for continuity and a sense of gradual transformation, to move among adjacent controllers and generally from lower to higher (and vice versa), rather than jumping around too much. Also, be aware that controllers 3 and 4 are interdependent, relating respectively to the amount and speed of random tremolo: controller 4 will have no effect unless controller 3 is raised. IMPORTANT NOTE: The Gloria3 versions have a one-line console output that prints the value of each control every second. The knob/slider range is expressed in values from 0-99 (not 0-100 or 0-1.00 simply in order to make a more compact display for Android devices). This display can be viewed on all Csound6 Android apps except the "alternative" Csound6b. Be aware that the smallest Android smartphones may not display all the 7 or 8 values. It may help in such cases to set a smaller font size under the device's Settings | Display. (Likewise, an *expanded* font may be desirable on larger devices - particularly for the standard app from play.google.com. The point of the printout is to encourage more pre-planned, "composed" renderings, and/or to isolate particular presets or settings one wants to replicate during a performance. Indeed, you are invited to script your own unique rendition as a "one-off" or more permanent "arrangement." Finally note that *all* Csound6 apps can perform Gloria3a (and 3b) without reference to console output. GLORIA3b.csd and GLORIA3bAndroid.csd Stereo, otherwise identical to Gloria3a (including console printout), except for an additional control inserted at the controller 3 position, thus requiring 8 controllers. This control introduces slow, ensemble random panning of alternate 8 pitches per stereo side. Additional macros: none Performance: relatively unstructured, improvised. See Gloria3a commentary. GLORIA4a.csd and GLORIA4aAndroid.csd 2-channel mono; high-frequency dominant, with 14 pitches that are equal-interval based. 8 controllers, including the unique 8th that adds brilliance. This is the most integrated and organic member of the Gloria Cycle. Additional macro: FREQ Sets the base frequency in Hz; allowed range = 500 - 1000; default = 600 Performance: totally unstructured, completely improvised. The only requirements are to begin and end with controller 1, and to move slowly and consistently throughout. Suggestion: controller 1 remains wide open throughout (it might be reduced occasionally, though never to zero). Feel free to skip around among controllers if you like. Have at it! (For the intended spirit, you might try running Gloria4b.) GLORIA4b.csd and GLORIA4bAndroid.csd Autoplay version of Gloria4a Starts immediately with Csound. To end a rendition prematurely (either an endless rendition, or one preset for a longer duration), slowly turn down the amplifier. User sets the basic parameters through the macros below. Otherwise, all relevant variables are auto-randomized. Additional macros: FREQ Sets the base frequency in Hz; allowed range = 500 - 1000; default = 600 TEMPO Multiplication factor for length of all internal events (a higher value = SLOWER); allowed range >= 1 (no upper limit!); default = 1 DELAY Initial silence before start in seconds; default = 5 DUR Total autoplay duration in seconds; 0 = endless (= approx. 25367 years!); default = 180 FADE Length in seconds of opening, and (if any) closing fade; default = 10