THERE IS A TIME (2017) for realtime Csound6 (PC & Android versions) ADDENDUM for version adapted for Beppi's Android app, QiBrd: Free Virtual Analog Synthesizer Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins.com There is a season for everything, and a time for every event under heaven. Ecclesiastes 3:1 Action Awareness Acceptance Attitude The Four A's of Emotions Anonymous THE TWO BASIC VERSIONS Time.csd is the version of THERE IS A TIME for PC's (all platforms), with Csound 5.08 or higher. It requires a MIDI controller with 8-9 knobs/sliders (sliders, especially long-throw, are best); also 8 optional buttons/keys/pads (as "note" triggers only). Time.csd is normally performed from the Csound command line (system prompt). TimeAndroid.csd is for Android devices (all smartphones and tablets - OS 4.1.1 and up). It is performed within any of the three alternative Csound*6* Android apps found (free) at: http://arthunkins.com/Android_Csound_Apps.htm Other Csound for Android apps will not work, as they lack the required 8-9 sliders (as well as 8 optional buttons). Note that to download one of the above 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 TimeAndroid.csd to any user-accessible folder on your device (suggestion: the Music folder). Then Open that file within the app, and Run Csound. AUDIO ISSUES Audio is monaural, so sound is the same in both speakers or headphones. Dynamics should be soft-to-moderate only. Audio glitching *may* be a problem, especially in the Android version. Android devices only perform to their potential if WiFi is disabled and there are no connections to external elements (such as tethering to a computer or power supply). Otherwise, for Android, it may be necessary to reduce the Sample Rate (toward the top of the .csd) to 32000 or 22050, until there are no more glitches. For PC, possible Sample Rate reductions are the same. (In any case, do not reduce below 22050.) Changes are made by any text editor, as .csd's are simple text files. EDITS TO THE PC VERSION OF THERE IS A TIME Time.csd will likely require minor text editing - primarily to accommodate a particular MIDI device. 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 additional orchestra variables (also listed toward the top of the .csd): CHAN, CTRL, PITCH, PITCHCTRL and NOTE. These 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 the first 8-9 channels. In all *other* cases, CTRL specifies the beginning controller number of 8-9 successive controls. (Default for CTRL = CC 20.) PITCH indicates the default pitch (in Hz; for both voices) - *if* PITCHCTRL is inoperative. It can be set to any value within the range 360-720Hz. PITCHCTRL represents the number of the 9th, optional, controller for pitch. If this controller is not being used, PITCHCTRL should be set to -1. (If active, the controller's range is 360-720Hz.) Finally, NOTE indicates the first MIDI note number for a series of 8 consecutive notes that specify specific frequencies within the range of slider/knob 6 (see further below). If this set of "note" buttons is inactive, use a value of -1 (the default). Note that all these substitutions must be enclosed by #'s. (This applies to the Android version below as well.) EDITS TO THE ANDROID VERSION When necessary, TimeAndroid.csd can be edited within alternative Csound Android apps (or elsewhere) by any text editor. Toward the top of the file, PITCH, PITCHCTRL and NOTESON orchestra variables are defined and can be modified. PITCH is the same as for the PC version above, and PITCHCTRL is nearly the same. For PITCHCTRL possible values are 1 when frequency slider 9 is operational; 0 when it is not (the default). NOTESON is like NOTE above, but again simplified; values are 1 for button notes on, 0 when off (default). PERFORMANCE CONSIDERATIONS The individual MIDI or Android sliders/knobs vary the following parameters: SLIDERS 1 and 2: vary the volume and tone (harmonic content) respectively of voice 1. SLIDERs 3 and 4: vary the volume and tone (harmonic content) respectively of voice 2. SLIDER 5: the first of two controls for the frequency of the pseudo-pan control "cycle". The range here is from .1 to 30Hz. SLIDER 6: the second of two controls for the frequency of the pseudo-pan "cycle". It covers the frequency range from 30 to 97.79Hz with slider 5 at max. (The actual frequency is the sum of sliders 5 and 6.) SLIDER 7: controls the shape of the pseudo-pan "cycle" (from triangle to near-ramp). SLIDER 8: determines the center frequency of a band-pass filter for voice 1. (Among other things, it effectively eliminates the fundamental frequency.) SLIDER 9 - optional: sets pitch for both voices within a range of 360-720Hz. (If not in use, pitch is 440Hz or whatever is otherwise specified by the default PITCH variable.) The series of 8 consecutive (optional) NOTEs identify specific frequencies (audio-range pseudo-pans) chosen from the range of slider 7. These NOTE controllers can be buttons, keys or pads, as long as they send MIDI note-on messages. Button 1 simply returns to the last frequency reached by the combination of sliders 5 and 6; the others, in ascending order, substitute other frequencies for that same combination. Button 8 is equivalent to the value produced by the two sliders at max. Performance is completely improvised (a demo-only performance score is outlined below). Simply be aware of the following guidelines/suggestions: 1) Set all controls to 0 before starting Csound. 2) Overall volume should not exceed moderate. 3) Move sliders/knobs fairly slowly, and generally one at a time. 4) Move from one setting to the next rather continuously, introducing occasional pauses for emphasis (e.g., as indicated in the demo score by STAY). 3) Sliders 5 and 6 are designed to work in tandem; slider 5 covers the sub-audio "cycle" range, slider 6 the audio range. Normally, slider 5 is raised to (and remains at) maximum before slider 6 is activated. Slider 6 offers a variety of audio-range inharmonic sonorities, accessible with careful "tuning." 4) When buttons/keys/pads are used, slider 5 should be at or near its maximum. Basically, the buttons substitute for slider 6 values, and there should be no sudden change when alternating between sliders and buttons. (Only a short glide between selections is built-in.) 5) Recall that slider 8 affects voice 1 only. Also: there should never be any jumps in value (an important consideration for Android sliders) - in general, avoid anything dramatic. Overall pace is slow and consistent. There is no suggested duration for performance. THERE IS A TIME - demo-only performance score Demo for basic 8 sliders/knobs only (no 9th slider/knob, or buttons). Preset all controls to zero. All movements are fairly slow. STAY = remain at setting before continuing. Slider/Knob: 3 Move to: .25 STAY (3 "cycles" total, at minimum) 4 1 STAY (3 "cycles" total, at minimum) 3 0 go on immediately to next setting, missing only one "cycle", if possible 1 .25 4 0 [silent: can be fast] 3 .25 1 .5 5 1 VERY SLOW! 3 .5 4 .5 2 .25 4 .75 5 .25 VERY SLOW! 2 .5 7 1 5 .5 (SLOW!) 2 .75 5 1 VERY SLOW! 2 1 4 1 6 .5 8 .5 6 1 8 1 STAY - long 2 .75 7 0 8 .5 2 .5 5 .5 (SLOW!) 8 0 2 0 1 0 (SLOW) 3 1 4 .5 3 0 SLOW! ADDENDUM for version (TimeBeppi.csd) adapted for Beppi's Android app, QiBrd: Free Virtual Analog Synthesizer The Android version of this work has been adapted as an instrument for Beppi's app, QiBrd. The instrument's name is "There is a Time". QiBrd is available (free) here: https://play.google.com/store/apps/details?id=beppisapps.solosynth&hl=en or by searching for QiBrd in the Google play store. QiBrd is designed for smartphones only (no tablets), and requires Android OS 5.0+. After downloading/installing QiBrd, use a USB cable to connect your Android smartphone to your computer, and set your device to transfer files via USB. (You can now navigate through your device's folders on your computer screen, as Android appears as an external drive.) Follow this path: Internal shared storage | Android | data | beppisapps.solosynth | files. Copy TimeBeppi.csd to the files folder. THERE IS A TIME will now appear within the list of instruments available to QiBrd. Following the preliminary steps listed below, THERE IS A TIME may now be performed by the app. Time's 8 "sliders" correspond directly to Sliders/Knobs 1-8 as previously described. There is no NOTEs option (no buttons are available in the GUI), nor is there an additional (serviceable) pitch slider. Importantly, *the same Performance Considerations (see above) apply as for the other versions of Time*. Note that this app's controls are somewhat more difficult to operate (and perhaps less intuitive) than those of the other two versions. Preliminary Steps To *perform* THERE IS A TIME (in contrast to freely improvising with, and exploring the instrument): 1) After selecting the instrument (tap the name box in upper right corner), press the Reset icon (it looks like Repeat). 2) Drag the settings for all 8 "sliders" to zero (bottom left of their boxes). 3) Press the Lock icon (immediately above Reset). 4) Drag the multitouch pad setting (Overall Volume/Pitch) to max on its Y axis. Select any X-axis frequency value you like. (Range is 360-720Hz.) The default for the other two versions of Time - 440Hz - is located precisely at the X-axis midpoint. This frequency remains fixed throughout. 5) Perform by dragging individual sliders, leaving the multitouch pad *completely alone*. Note that Sound is only produced by raising sliders 1 or 3.