IN AETERNUM (2023) for realtime Csound (PC and Android versions) Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins.com To the One, the Ineffable Great Spirit IN AETERNUM is 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 three versions: InAeternum16, InAeternum24, and InAeternum32, differing only in their number of "voices" indicated in their title. These are the titles of the console editions (for PC, Mac and Linux), which requires a MIDI controller with 8 or 9 sliders or knobs. Android editions parallel those for console, with suffixes of "Android" appended to their titles. Android editions are self-contained, requiring no external controller. The Android editions are performable 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 Csound apps, except Csound6a, downloadable from http://www.arthunkins.com/Android_Csound_Apps.htm (Android OS 4.1.1 or higher). These Android editions should run on all Android smartphones, tablets and Chromebooks with appropriate OS and access to the Google Play Store. 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 Audio output is stereo. IMPORTANT: Amplifier level should be preset to a fairly low volume, as the intent of the music is meditative. If you get any "glitching" in performance (or alternatively, a complete crash) with Android, Disable WiFi, Bluetooth and any other connections to your device. (This includes power.) There are no recommendations for performance duration. 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 the console versions: 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.) Likewise for console versions, a number of orchestra macros (likewise listed toward the top of the .csd) may require editing. CTRL defaults to 20, the number of the first 8 contiguous CC's your MIDI device is sending on (channel 1 is the preset channel for all messages). If a 9th controller is to be used, its CC is set in CTRL9; if unused, this value is indicated as -1. FILTRES, only active when the 9th controller is unused, presets a value between .5 and 4, in place of the knob/slider. In the above macros, substitute CC numbers appropriate to your MIDI device. Note that any substitutions you make must be enclosed by #'s. The remaining macros pertain to both console and Android versions. FREQ designates the frequency upon which the overall sonority is built (values may be from 2000 to 4000Hz). FREQFAC is a preset multiplication factor by which each successive voice's pitch is reduced. (Each voice is thus a percentage lower than the previous one.) Values can range from .975 down to a number that differs per edition. If this multiplication factor is to be varied by the third controller, FREQFAC is assigned 0. One final macro, DISPLAY, toggles a one-line console output that indicates the current value of FREQFAC. (Its purpose is described below.) A value of 1 enables the printout (updated once per second), while 0 does not. This feature is operational on all console versions, but for Android, only on the Csound for Android and "alternative" Csound6c apps. When unavailable or unused, it is advisable to set DISPLAY to 0. Editing for Android The Csound for Android app from play.google.com actually includes its own editor. Upon selection, your .csd automatically opens in the app's Edit mode. Additionally, the "alternative" Csound6b and Csound6c apps include an Edit button which will access any text editor installed on your device once a .csd is loaded. When finished editing, be sure to Save; your revision is immediately available to Run without reloading. THE CONTROLLERS The specific function (and order) of the 8-9 controls is the same for all IN AETERNUM editions. Controller 1: master volume, presenting a downward emerging "chord" of 16, 24 or 32 voices, alternating between the two channels. As controller 3 increases, this sonority spreads downward from unison (at FREQ's pitch), into a multi-voice chord. Controller 2: adds a shimmering effect to voice 1 only. (Voice 1 is always at FREQ.) Controller 3: adds decreasing frequency ratios, as voices emerge from the high unison and spread out to lower pitches. If FREQFAC is set to a specific ratio, the pitches are fixed, and only emerge and change in *amplitude* as the slider is raised. Controller 4: adds slow random amplitude variation to voices on a *per voice* basis. Controller 5: adds slightly faster random amplitude variation on a *per channel* basis. Controller 6: adds an even faster random *frequency* variation on a per channel basis. (The amount of perceived frequency variation diminishes as pitch rises.) Controller 7: further increases the randomness of frequency variation to where it resembles overlapping bands of noise. (The noise bands remain within the approximate pitch ranges of controller 6's frequency variation.) Controller 8: adds band-pass filtering to the total sonority, except for voice 1. (This effect is minimal except when the frequency "spread" of the voices is substantial.) Controller 9 (optional): resonance control for band-pass filter. If absent or unused, the amount of resonance is set by FILTRES. THE ONE-LINE CONSOLE OUTPUT The one-line console output option is available in all versions of this work - for PC editions, as well as the Csound for Android and "alternative" Csound6c apps. The DISPLAY macro determines whether the option is turned on or off. If the option is not being used as described below, it should preferably remain off (value = 0). When DISPLAY is on (value = 1), the console shows, once per second, the current value of FREQFAC, which is normally determined by slider 3. (FREQFAC represents the frequency "spread" of the voice cluster.) If the performer wishes to create specific "spreads" at any point during performance (including beginning and/or end), he/she can do so by noting specific FREQFAC ratios in advance, then recalling them in real time as needed. The performer may also opt for a fixed frequency rendition, where frequency "spread" remains constant. A desired "spread" can first be determined by experimentation with DISPLAY on. Subsequently the resultant value can be transferred to the FREQFAC macro. (With a value other than 0 in FREQFAC, slider 3 will no longer change frequency "spread" - only vary the *amplitude* of the fixed frequencies.) Note that once a specific value for FREQFAC is inserted, DISPLAY can be turned off, although doing so is not required. PERFORMANCE TIPS AND SUGGESTIONS Performance is completely improvised; no score is provided. (Performers are free, however, to pre-plan anything they like.) Simply note the following: 1) Set all controllers to 0 prior to running Csound. After start, optionally adjust any controller other than #1, to a higher value. Performance begins by raising controller 1, and ends when it returns to 0. 2) Move knobs/sliders slowly and evenly. Movement is not necessarily constant, though it may be. The overall sonority should seem to evolve and transform, all in an unhurried, relaxed fashion. 3) On Android, be sure that, if you stop a slider midway, you resume as close aspossible to the same spot; otherwise a "skip" will occur, which should not happen. (No skips or sudden movements anywhere please!) 3a) With special regard to midway positions of *slider 3 on Android*: the finger should not be lifted when changes in value are anticipated; a "skip" will inevitably occur. In such cases the finger should retain contact with the slider (hopefully without moving?) 4) In general, the level of textural complexity and activity increases as performance activates ever higher sliders. This layout may suggest a performance strategy or plan, as illustrated by the Demo1 accompanying these files. 5) Be aware that the effect of the higher-numbered controls is reduced, the closer the frequencies are to unison (i.e., slider 3 at or near 0). This is especially true for the filter controls (sliders 8 and 9). Nonetheless, the most meditative/"spiritual" renditions may be achieved under precisely such a condition (i.e., with FREQFAC values closer to 1). Demo2 represents a fixed-frequency rendition of this sort. 6) Also note that, when raised high, slider 7 largely masks the effect of sliders 4, 5 and 6. 7) It is not necessary to use all sliders. 8) Finally, bear in mind that, on Android, only one control can be moved at a time. On PC's, with MIDI, there is no such limitation; feel free to manipulate several controls simultaneously.