LIGHT FROM LIGHT (2019) for realtime Csound6 (PC and Android versions) Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins.com "God from God, Light from Light, true God from true God" Nicene Creed GENERAL LIGHT FROM LIGHT is not so much a composition as it is an instrument, or a framework for (solo) improvisation. Though it is primarily intended for free improvisation, performance may be substantially structured via use of the slider printout option (see further below). This instrument is extensively based on one 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). His .csd is included in this .zip archive for reference purposes. (Specifications for its Creative Commons 3.0 license can be found at: http://creativecommons.org/licenses/by-sa/3.0/.) THE TWO BASIC VERSIONS Light.csd is the version for PC's (all platforms), Csound 6.04 or higher. It requires a MIDI controller with 8, 9, 10 or 11 knobs/sliders (sliders, especially long-throw, are best). It is normally performed from the Csound command line (system prompt). LightAndroid.csd is for Android devices and the standard Csound for Android app (free @ play.google.com). It requires at least OS 6.0, and works on all smartphones and tablets (tablets preferred). LightAndroidAlt.csd constitutes a variant of LightAndroid.csd specifically for OS's prior to 6.0 (down to 4.1.1). It is performed by any of the (free) alternative Csound Android apps (including Csound5a!) found at: http://arthunkins.com/Android_Csound_Apps.htm. All the apps mentioned above have specific limitations that affect performance of LIGHT FROM LIGHT (see further below). Note that to download one of the alternative apps directly to Android, you must, in Settings -> Security, select Unknown Sources to install apps from other than play.google.com. After installation, copy/paste the LightAndroid(Alt).csd to any user-accessible folder on your device (suggestion: the Music folder). Then Open that file within the app, and Run Csound. You also have the option to download an alternative app to your computer, then copy it (via USB transfer) to the Download folder on your device and install it from there. EDITS TO THE PC VERSION OF LIGHT FROM LIGHT Light.csd will likely require minor text editing - primarily to accommodate a particular MIDI device. (You can do this in any text editor.) 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 outputs 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. (With 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.) There are also orchestra variables (MACROs listed toward the top of the .csd): CHAN, CTRL1, CTRL2, CTRL3 and PRINTOUT, which will likely need modification. (Optionally, you could program your controller to conform to 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 (CC 7) messages on its first 8-11 channels. (The order of controls in this case parallels those listed in the CTRL definitions.) In all other cases, CTRL1 specifies the beginning controller number of 8 successive controls, CTRL2 for a single "exciter" control, and CTRL3 for a second set of 2 controls (for tremolo). (Note that the last three knobs/sliders are optional, the two tremolo controls being the least important.) These variables allow for performance on MIDI devices with the basic 8 - or 9, 10, or 11 controllers. The PRINTOUT option (default = 0) specifies whether, once per second, your screen prints (in a single row) the current value of all sliders. Turning this option on, can facilitate precise controller settings, including initial values. As mentioned above, it could even allow for construction of a specific "score." Note: for all these definitions, numeric substitutions must be enclosed by #'s. DIFFERENCES BETWEEN PC AND ANDROID VERSIONS The PC and standard Android versions include an "exciter" (governed by slider 9), while the alternative Android versions necessarily replace the exciter with a distortion effect. (The alternative Android apps, based on the earlier Csound 6.01, do not offer the exciter; that's why the alternative apps must use LightAndroidAlt.csd.) Since the exciter is significantly superior to the distortion routine, the PC and standard Android versions are to be preferred. Beside needing OS 6.0 or above, the standard Android app is limited to (8 or) 9 sliders. For 10 or 11 slider renditions, alternative apps Csound6a.apk or Csound6c.apk are required. (Note: should the standard app ever be upgraded to 11 or more sliders, LightAndroid/Alt is prepared for them.) The slider printout option on Android is available on the standard Android app, but for alternative apps, only Csound6a.apk and Csound6c.apk for tablets, and Csound6c.apk for smartphones. The printout default is off in all cases. To turn the option on, click button 1; to turn off, click it again. It is best not to turn it on if you are not using it; doing so would only burden the processor unnecessarily. Clearly the Csound6c.apk is the most comprehensive alternative app for OS's below 6.0. Its sole limitation is the lack of the exciter effect, which of course is not an issue if either you do not intend to use slider 9 or are happy with distortion as a substitute. PERFORMANCE CONSIDERATIONS The MIDI or Android knobs/sliders vary the following parameters: SLIDER 1: overall amplitude control. SLIDERS 2 and 3: two different random frequency controls. SLIDERS 4 and 5: another two random frequency controls; slider 5 ventures into the audio range, creating a noise band. SLIDER 6: a more complex control introducing an expansion of the frequency (modulation) range and a pseudo-panning effect (increased activity). SLIDER 7: also a complex control, influenced by slider 6, shifting the frequency of timbre "clusters" randomly, and independently, on the two channels. SLIDER 8: high-pass filter with amplitude maintained regardless of filter cutoff point. SLIDER 9 (optional): amplitude of "exciter" effect for PC's and standard Android Csound app, "distortion" effect for alternative Android apps. SLIDERS 10 and 11 (optional): tremolo; slider 10 for amplitude, slider 11 for frequency. Performance is completely improvised; no score is provided (though the performer may create one). Simply observe the following: 1) For console Csound, set all controls to 0 before starting Csound. After start, any control except slider 1 may be preset to another initial level. 2) Optionally for Android, assuming slider 1 is 0, levels may be freely assigned for all other controls *before* running Csound. 3) The performance starts when slider 1 is raised, and ends when slider 1 returns to 0. 4) Controls are moved gradually, one or more at a time. There should be no jumps in value (important for Android sliders, as when attempting to retrieve a previous value!) Overall pace is slow and fairly consistent - no dramatic events. Both of the demo improvisations/performances accompanying these materials were made on a PC, with a MIDI controller using the full complement of 11 knobs/sliders. No screen printout or "following a score" was involved. (The first example is dubbed "Light from Light: Creation", the second, "Light from Light: Love.") There is no suggested duration for performance.