AFTER THE ECLIPSE (2017) for realtime Csound6 (PC and Android versions) Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins INTRODUCTION On August 21, 2017, the continental U.S. experienced a total solar eclipse. In my home town of Burlington, NC, the eclipse was only partial (93% or so), so I wasn't anticipating a spectacular visual or sonic experience. Nonetheless I positioned a portable digital recorder on my front lawn to record the "sounds of eclipse." Starting about 1/3 of the way into the eclipse process, I captured more than 3 hours of audio. I was indeed "underwhelmed" by the actual experience: daylight had only somewhat dimmed, and the ambient sound remained fairly constant. With low expectations (if still hopeful), I returned the following day to review the audio. During the final hour of the recording, I came to realize that I had previously missed something subtle - an extended period when the environment seemed to hush somewhat. It was as if the earth was experiencing a moment of awe: that the world had been caught up in the hands of some greater Power. I excised this 11.5-minute segment of audio, adding short fades at beginning and end. (I also surpressed a sharp "crack" where a passing car apparently ran over something.) And so was born Eclipse.wav (Eclipse.ogg). I present, as well, this same soundscape in a live Csound setting that subtly enhances its special, numinous character. GENERAL AFTER THE ECLIPSE is a simple vehicle for enhanced playback of all, or a portion, of the soundfile Eclipse.ogg, or its higher quality original, Eclipse.wav. (Eclipse.wav should be downloaded and substituted as sound source in public performance.) Also, *any comparable soundscape of the performer's choosing* may be exchanged for Eclipse.ogg. In short, AFTER THE ECLIPSE can serve as an enhanced performance vehicle for any similar soundscape. One to six control knobs or sliders are required - the particular number selectable by the performer. AFTER THE ECLIPSE is available in a version for PC's (all platforms) and for Android (all recent devices). THE PC VERSION The PC version of AFTER THE ECLIPSE requires Csound 6.05 or higher. The various Csound6 distributions are available (free) here: http://csound.github.io/download.html It also requires a MIDI device with up to 6 knobs/sliders. The performer can select which of six parameters (enumerated below) he/she wants to assign to controllers, in what order, and to which MIDI controller number. (This allows tailoring performance to a given MIDI device - including to the number of controllers available.) Note: one option is to eliminate overall amplitude control by presetting amplitude to maximum (see further below). Eclipse.csd may well require editing. (Since .csd's are simple text files, any text editor will suffice.) First, 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 various MIDI-related variables (also listed toward the top of the .csd): CHAN, other parameters assigned to specific controller numbers, and START. These will likely need modification to accommodate your MIDI controller. (Optionally, you could program your controller for this composition's defaults.) 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 (CC7) messages on the first 6 channels. Channel order is that given by the list immediately below. The next six parameters, AMPlitude, FILTER, EXCITER, REVERB, (single) DELAY, and (frequency) JITTER, are all assignments to individual controller numbers. (These assignments will accommodate a wide variety of MIDI devices.) Finally, START specifies seconds of silence before sound begins as Csound is turned on. This period can be used to adjust initial controller settings as necessary. Note that assignment numbers must always be enclosed by #'s (with no surrounding spaces). THE ANDROID VERSION AFTER THE ECLIPSE preferably requires Android OS 5.0 or higher, and Csound for Android app. The app is downloadable free from: play.google.com/store/apps/details?id=com.csounds.Csound6&hl=en However, the .csd can also be run by the Csound6.apk based on Csound6.05 found here (also free): http://dream.cs.bath.ac.uk/Csound-archive/OldReleases/csound6/Csound6.05/Csound6.apk This release permits running of the .csd on Android OS 4.2.2 and higher (but not 4.1.1). A bug in this release requires a small edit of the .csd: Delete the semicolon in front of the "e 36000" line near the end. (This keeps Csound running for 10 hours; otherwise, Csound crashes when the performance ends automatically at the end of the soundfile). This modification requires a manual STOP, which can be inconvenient - except for the fact that you may want to stop before the end of the file anyway. On the other hand, the GUI for this version includes both trackpad and (handy) console output that can inform you of any problem. Editing for Android can either be done on a computer, transferring to your device via USB; or on Android via the Edit option on the Csound GUI menu (you must have an editor app installed; I use TED). Disable WiFi and any other connections, within your device for maximum performance. Run Csound for Android (or the alternative app above), and Browse to (Open) your soundfile. Eclipse.ogg (Eclipse.wav), or any user-substituted soundfile, must be placed in same folder as this file (suggestion: the Music folder). No .csd editing is necessary here for MIDI-related variables, as there is no MIDI. However, when the user substitutes another soundfile, additional .csd modifications may be required (see final paragraph below). PERFORMANCE Maximum length of performance is the duration of your selected soundfile. Actual length may be any portion of it you choose. Any or all of the six described controllers may be involved. The amplitude controller may be regarded as optional. In the PC version, this "controller" may be set to -1 (i.e., absent) - in which case amplitude defaults to maximum and may be managed either by the soundfile's initial and final fades, or by the power amplifier. Controls should be moved very slowly - one at a time; change in overall tone quality should be barely noticeable. In the case of Android, controls should always procede from one setting continuously to another - no skips. With Android, the six controllers are always available on screen - the sixth (and least important) one through the x parameter of the trackpad. (Controller order is the default PC-version order.) With the current Csound for Android app, trackpad display requires choosing "Widgets" in Settings/Screen Layout (accessed by clicking the three dots in the top right corner of the screen). Again with Android, controllers may be preset to *anything* before Csound is run. In the PC version, MIDI controllers must to *set to zero before Csound is started*, then moved to any other setting during the START period (before sound begins). Note that the length of this START period can be set toward the top of your .csd (PC version only). Default values for the optional parameters (also listed toward the beginning of the .csd) are those appropriate for the default soundfile (Eclipse.ogg/Eclipse.wav). For other files, these values will probably need adjustment (see below). In all cases, the basic character of the original should always predominate. (The goal is *enhancement*, not transformation.) If audio glitches, reduce the value of sr (Sample Rate) to 44100 or 32000 until glitching disappears. (This is done toward the beginning of the appropriate .csd, similar to other recommended edits.) WORKING WITH ALTERNATIVE SOUNDFILES Alternative soundfiles are preferably natural soundscapes, recorded as stereo .WAVs at a high sample rate (usually 44100Hz). Since performance consists (at a maximum) of a single playing of the file, its length should be substantial (5 minutes or more, suggested). This leads to large files indeed. Eclipse.wav (11.5 minutes in length) is 136MB. For purposes of reasonable download, I reduced the recording to the lowest possible resolution .OGG format (in Audacity); Eclipse.ogg (included in the .zip archive) is a mere 5.5MB, and is satisfactory as a sound source. (For highest performance quality, however, download the original Eclipse.wav from my website, and substitute its name under "#define SNDFILE".) Both PC and Android can handle mono or stereo soundfiles of any length, in any format except .mp3, and of any Sample Rate. Alternative files are placed in the same folder as the .csd. It is recommended to edit (in Audacity?) short fades at file beginning and end. This allows the file to be played natively - ("unenhanced"), as well as without the necessity for an ampliture controller. Adjustments will probably need to made to various maximum controller values for alternative soundfiles. These values include: MAXCUT (high-pass filter cutoff), MAXESCiter, MAXReVeRB, and MAXJITter. Experimentation will determine maximum values that produce *subtle* enhancement to the output of a given soundfile. A range of max values is suggested for each variable, in the .csd. These adjustments apply to both PC and Android .csd's, and should be the same for each.