IT'S ABOUT TIME (2022) for realtime Csound (PC and Android versions) Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins.com "Now" is our one precious moment to live within God and God's eternity. Let's not miss it. GENERAL IT'S ABOUT TIME is not so much a composition as it is an instrument, or a framework for (solo) improvisation. It exists in 12 versions: six for PC's (all platforms), and six for Android devices. Three each of the PC and Android versions are enhanced stereo variants (suffix "s") of their mono (suffix "m") counterparts. (The stereo enhancement feature is described separately below.) Time3m/s is the three-voiced version for PC's (Csound 6.01 or higher). It requires a MIDI controller with 9, optionally 10, knobs/sliders. Time4m/s is near-identical, but implements an additional voice and requires 12, optionally 13 sliders. Time5m/s does the same with five voices and 15 or 16 sliders. These versions are normally performed from the console (Csound command line). The Android versions parallel those for PC's, and require the same number of sliders. TimeAndroid3m/s runs either on the standard Csound for Android app (free @ play.google.com), or any of the "alternative" Android apps found at: http://arthunkins.com/Android_Csound_Apps.htm. The standard app requires at least OS 5.0 and works on all smartphones and tablets, while the "alternative" apps run on any OS from 4.1.1 up. TimeAndroid4m/s and TimeAndroid5m/s run only on "alternative" apps Csound6b and Csound6c - found at the above link. (The standard Csound for Android app does not include the necessary 12 or more sliders.) Note that to download one of the alternative apps directly to Android, you may need (in Settings -> Security) to select "Unknown Sources" to install apps from other than play.google.com. After installation, copy/paste one of the Android csd's 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. NECESSARY EDITS TO THE CSD'S A number of orchestra variables (MACROs) are available for the user to customize, on both console and Android versions. These MACROs are found toward the top of .csd's. (You can modify them in any text editor.) The MACROs that follow are common to all versions. PITCH sets the frequency for voice 1, the lowest voice. While 440Hz is its default, the user is free to select any frequency from 300 to 500Hz. PRATIO defines the common pitch ratio between voice 1 and all ascending voices (default=1.11; valid range=1.01-1.25 for 3-voice versions, 1.01-1.16 for 4- and 5-voice). FILTER indicates the low point of the range of random initial filtering for the basic plucked sonority. Default is .85, and valid selection from .8-.956. The remaining common MACROs relate to tempo control of the repeat rates for various voices. TCONTROL specifies whether a variable tempo control is present and used, or not (0=no controller, 1=controller 10 for 3-voice versions, controller 13 for 4-voice and controller 16 for 5-voice). TimeAndroid3m/s.csd offers an additional option - "2", appropriate only for the standard Csound for Android app. It allows for use of the trackpad's x-axis as "slider 10". In all cases, default is 0. TEMPO is the default number of beats per minute (MM=) when a tempo controller is not in use (slider 10 for 3-voice, slider 13 for 4-voice, 16 for 5). The default value is (MM=)10, and can range from >0 to 54 on console versions, >0 to 50 on Android. (Note that values less than 1 can make for slow tempi indeed - "1" already being a beat/note per minute!) TEMPO strictly applies to voice 1 only; the remaining voices are modified by the following TPLUS macros. TPLUS2, TPLUS3, and (for 4- and 5-voice versions) TPLUS4, as well as TPLUS5 (5-voice only) determine tempo for the upper voices (labled in ascending order). Each represents a beats-per-minute (MM) increment over voice 1. (Decrements are not allowed; however the values themselves do not need to be in ascending order.) Defaults: increments of 1 for voice 2, 2 for voice 3, 3 for voice 4, and 4 for voice 5. There are no upper limits on these values; 0 and greater are valid (negative numbers are not). *Performers are strongly advised to experiment with and customize these values; they can create a wide variety of rhythmic textures*. TRAND represents the range, in seconds, of a random factor added to tempo. The random value changes per voice and per event; the default is 0, and values from 0 on up are valid. Strictly speaking, the random value is the # of seconds the *individual event is delayed*. (The tempo itself is not changed.) An additional MACRO is found in *stereo versions only*: PRAND. This parameter specifies a range of randomness that may be added to pan position; actual values differ per voice and event. Valid = 0-.08; default = 0. (See further below.) The remaining edits may be required for the *PC versions only*. First, under , 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.) The PC MACROs that can also require modification are all MIDI-related: CHAN, CTRL, CTRL2 and CTRL3. 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 9-10 channels (12-13 for Time4 or 15-16 for Time5). The order of controls in this case parallels the slider sequence outlined below. Otherwise, CTRL (default=20) specifies the beginning controller number of 8 successive controls, while CTRL2 (default=28) designates the 9th slider (for Time3), the next 4 controllers for Time4, or the next 7 for Time5. CTRL3 indicates the final, optional (tempo) controller for all three versions: controller 10 for Time3 (default=29), controller 13 for Time4 (default, 32), or Controller 16 for Time5 (default, 35). Note that for all these definitions, numeric substitutions must be enclosed by #'s. THE RANDOM STEREO ENHANCEMENT ("s"-suffix versions) The only difference between mono and stereo versions of IT'S ABOUT TIME is the latter's placement of voices in stereo space. Regardless of the number of voices, the stereo spread is equally spaced from full left to full right. Voices are randomly assigned a position per performance, maintaining a constant position throughout. The PRAND macro, when greater than zero, adds a slight amount of randomness (within the specified range) to this basic position. This value changes per voice and per event, and causes placement to vary both to the right and left of basic position. (Pan positions never overlap however.) PERFORMANCE CONSIDERATIONS The MIDI and Android knobs/sliders vary the following parameters. They do so in groups of three, one group assigned to each voice - with an additional optional tempo controller at the end. (Each voice consists of a single, regularly-repeated pitch - a click or plucked sonority, all voices at potentially different speeds.) Group 1 (for voice 1, the lowest): SLIDER 1: amplitude control. SLIDER 2: duration of plucked event, from a simple "click" to a pluck with a long tail. SLIDER 3: progressively minimizes attack and emphasizes long tail. *Has an effect only when Slider2 is at max, and is to remain at zero otherwise*. Group 2 (for ascending voice 2) SLIDERS 4-6: duplicate Sliders 1-3 Group 3 (for ascending voice 2) SLIDERS 7-9: duplicate Sliders 1-3 Group 4 (for ascending voice 4) - in 4- and 5-voice .csd's only SLIDERS 10-12: duplicate Sliders 1-3 Group 5 (for ascending voice 5) - in 5-voice .csd's only SLIDERS 13-15: duplicate Sliders 1-3 SLIDER 10 (for 3-voice .csd's)/SLIDER13 (4-voice csd's)/SLIDER16 (5-voice .csd's): Optional Tempo Controller; determines base tempo for voice 1. Only active when TCONTROL=1. Performance is completely improvised; no score is provided. (Performers are free, however, to pre-plan anything they like.) Simply observe the following: 1) Set all controllers to 0 prior to running Csound. After start, optionally adjust any controller to a higher value. Performance begins upon pressing the spacebar (for console versions) or tapping button 1 (on Android). 2) The spacebar and button 1 also function as a Pause and Resume toggle. This feature is helpful for setting initial values, including the tempo slider. Once these values are set, Pause is engaged, and actual performance begins with a second (Resume) tap. Pause/Resume continues to work throughout performance. 3) Note that voices will not begin or stop (as a result of Pause or Resume) in the middle of an event. However, Stopping Csound *does* interrupt an on-going event. 4) Note also that all voices with their first sliders raised, begin together when the spacebar or button 1 is first pressed. To begin asynchronously, start with these sliders (or all except one of them) at zero, and only raise them later. 5) IMPORTANT: Within each group of three sliders, be sure to move the third only when the second is at max; likewise, move slider two only with #3 at zero. 6) It is not necessary to use all available sliders. 7) Finally note that, on Android, only one control can be moved at a time. (On PC's, with MIDI, there is no such limitation.) However, since slider values are only effective with the following event (and no changes occur during an event), sliders may simply be touched rather than dragged. (Slider taps have no effect on event timing.) A possible exception to this suggestion applies to the "tempo" control (the optional controller in each version). As this is the only control that affects the overall texture, a (slow) drag may be more appropriate than a touch when a gradual change in speed is intended. There is no suggested duration for performance. The demo performances outlined below are available on this website: Demo1: An ultra-simple 3-voice, mono improvisation/performance that was made on a PC at default settings, with a MIDI controller using 9 sliders (no tempo control). Start is synchronous. Demo2: A more complex, yet parallel 5-voice stereo rendition, with MIDI controller using 15 sliders (again no variable tempo control). Uses defaults, except custom settings for static TEMPO (MM = 35), TRAND (random tempo factor = .1) and PRAND (random pan position = .05,) as well as TPLUS2-5 ("tempo" increments per voice = respectively 1.71, 2.62, 5.6, 4.13). Start is asynchronous.