ON THE SIXTH DAY (2008) A Trilogy of Sonic Environments for realtime Csound5 Arthur B. Hunkins Then God said: "Let us make man in our image, after our likeness. Let them have dominion over the fish of the sea, the birds of the air, and the cattle, and over all the wild animals and all the creatures that crawl on the ground." God created man in his image; in the divine image he created him; male and female he created them. God blessed them, saying: "Be fertile and multiply; fill the earth and subdue it." And so it happened. God looked at everything he had made, and he found it very good. Evening came, and morning followed - the sixth day. Genesis 1: 26-28, 30-31 On the sixth day I was created. God said I was very good. On the sixth day We were created - my friends and I. God said We were very good. On the sixth day my Family was created - my loved ones and I, together with all the other creatures. God said my Family was very good. God saw that everything He made was very good. He was so pleased He decided to take a holiday. To the children of the world GENERAL ON THE SIXTH DAY is a set of three simple performance environments for Csound5. Suitable for any computer platform that runs Csound, each environment is essentially an instrument that suggests an improvizational structure. It is not a composition, and no performance instructions are given; its instrument is simply intended to be explored creatively. As a result of exploration, performance *may* express itself as a composition (though perhaps more properly, as structured improvization). Each succeeding member of the trilogy elaborates the materials of the previous one. ON THE SIXTH DAY will soon appear as a set of Activities specificly designed for children and the OLPC computer (probably under a different title). ENVIRONMENT #2 - We Sixth-We takes the first and last 4 of the 16 tone colors of Sixth-I and works with them in space, both left-to-right (panning) and depthwise (largely via reverb). It is available in three variants: Sixth-We.csd, Sixth-WeAlt.csd and Sixth-WeAlt2.csd. As detailed below, each variant adds a bit of creative potential (and performance complexity) to the previous one. Whereas pan/depth positions are randomly preset in the first two versions, "Alt2" titles allow the performer to determine pan, and optionally depth, settings on the fly. In addition, each variant may be performed either on an external MIDI control surface (with a minimum of 16 pots or sliders - sliders recommended), or simply on the ASCII keyboard. The ASCII "editions" contain "ASC" in their titles. An additional variant is indicated by "ASCF"; this indicates that the screen offers visual Feedback as to the on/off status of the various tones, as well as displays certain other crucial values. Use of the "F"eedback versions is recommended, as otherwise it is easy to get lost. (The only drawback is that these versions *may* cause audio breakup. In reality, the *MIDI* versions are slightly less likely to experience audio glitches.) A parallel set of standalone .exe's is also available - currently (11/08) for Windows only. They were generated by Rory Walsh's Lettuce frontend for Csound5 (http://www.ear.ie/Lettuce.htm). Available along with the .csd versions in a single, large Sixth-We.zip download (which includes this file), their filenames begin with "L" and end with ".exe" instead of ".csd". (For platforms other than Windows, download Sixth-We.zip and run only the .csd files.) Whereas Csound5 must be installed to use the Sixth-We.zip package, another collection, Sixth-WeSA.zip, is intended for use *when Csound5 is not installed*. (Sixth-WeSA.zip lacks the .csd versions, but includes necessary Csound files.) Again, this option is Windows only. Ease of use in setup and performance is the chief advantage of the standalone .exe's. See run-time "Instructions" window for further details. Csound5 is a software sound synthesis program available for all major computer platforms. Sixth-We specifically requires Csound5.02 or above. Free downloads for various systems are found at: http://csound.sourceforge.net. All versions of ON THE SIXTH DAY are stereo only, and do not lend themselves to multi-speaker sound diffusion. There is no suggested duration; the performance file can run for a total of 60 minutes. GENERAL SETUP You will probably need to edit several flags near the beginning of your performance file. (Do this in any text editor; your .csd is a simple text file. In standalone .exe versions, this all is accomplished in the performance window: open CsOptions, edit the designated values, and observe the output under View Output.) You must insure that the values of -M0 (your MIDI input device #) and -odac0 (your audio output device #) match your system. Simply substitute a high number, such as -M99 and -odac99, for the zeros and run the file. The performance will immediately abort and display a list of valid device numbers on your system. Once you identify the appropriate numbers, go back and insert them in place of the zeros. This composition should work well with any audio driver type; latency is not an issue. If you are having a problem with stuttering or clicks, be sure to close as many programs running in the background as you can. ASCII versions may produce pops; those with visual Feedback are particularly likely to do so (the basic set will not have a problem). As a last resort, you can try reducing the sample rate (note that not all soundcards and native ASIO drivers in Windows allow lower rates). SPECIFIC SETUP AND PERFORMANCE Performance consists exclusively of manipulating MIDI pots/sliders, and/or pressing ASCII keys. Sixth-We uses eight different tone colors, all basically on the same pitch; eight additional pots/sliders or keys change the pan position and apparent depth of these tones. The first tone, however, is both the simplest and always front-and-center. The performer fades the tones in and out, usually to full on or off (it is automatically this way with ASCII keys), varying the timings of events and the lengths of the fades. He/she does the same with pan and depth position. In version Alt2, the performer actually chooses (via pot/slider) either pan, or pan and depth position. (In other versions, these choices are random.) Note that it is recommended to end pan/depth fades in their full on or off positions; otherwise, their initial or final placements will not match those of neighboring sonorities (see further below). With regard to setup (<=16 controller versions only): two special controller configurations may be encountered occasionally. (These require adjustment to the defaults either in the performance file itself, or with standalone .exe's, similarly in the performance window.) 1) ALL CONTROLLERS USE THE SAME CHANNEL, BUT NOT #1: Locate the line toward the beginning of the performance file - "#define CHAN #1#" (channel 1 is the default). Change the channel number to the one you need (from 2-16) with a text editor. (This revision is active until you change it again, in .csd versions.) Note that the "#" characters around the channel number must remain. 2) EACH CONTROL USES A UNIQUE CHANNEL, BUT WITH (channel volume) CONTROLLER #7: To enable this layout, define CHAN as #0#. All controllers will now be on consecutive channels, starting with channel 1. (In the standalone .exe, simply select a channel number of 0.) Note that only 16 controllers can be accommodated here, not 17. Several other variables are also defined toward the beginning of the performance file (or in the performance window of a standalone .exe). SRATE equals SampleRATE, for which four options are listed - 44100 is the default. 44100Hz is the lowest rate possible. Select the highest rate at which you get click-free, uninterrupted sound. In standalone .exe's, SRATE is chosen in the CsOptions window. Depending on the version, the following variables are also active, and must be preset (variables in standalone executables have similar names): CTRL1 (2) specifies the initial controller of the first (second) 8-controller bank, or the first (second) individual controller. These initial bank controllers default to CC20 and 28, while the individual #'s initialize to CC20 and 21. CTRLX refers to the optional (eXtra) 17th (depth) controller in (L)Sixth-WeAlt2 (default = -1 = no-op). Prior to running Csound, be sure to turn all pots/sliders to zero. *Only once Csound is started, turn up any pots/sliders to a higher initial level.* This observation applies particularly to the initial pan and depth slider settings for (L)Sixth-WeAlt2(ASC[F]); if not moved after Csound start, these values default to a pan position of 5 (centered, on a scale of 0-10), and 0 (full front, also scale of 0-10) for depth. The default Fade Time for all ASCII versions is 6 seconds. THE VARIOUS VERSIONS (L)Sixth-We - 16 sliders/pots (sliders preferred) specified as two "banks" of 8. Bank1 fades the 8 tones; in bank 2, pots/sliders 10-16 pair with tones 2-8 as pan/depth controls (pot/slider 9 does nothing). The pots/sliders in bank two move the corresponding tone from its original (random) position to that of the next-numbered tone. (We assume here that the pan/depth control is taken to the full on position.) The 16th pot/slider returns pan/depth to front and center. Initial pan/depth positions are preset randomly when Csound is started, except that tone 1 is always front and center. (L)Sixth-WeAlt - Identical to (L)Sixth-We, except that initial pan/depth positions are not preset. Each tone, in whatever order, originates where the last-introduced tone has ended, and moves to a new position (with its pan/ depth control fully on). When a tone is reintroduced after having been turned off, it starts likewise where the previous tone (pan/depth fully on) ended. Also, pan/depth returns to, and remains at, front and center (via pan/depth control) whenever pot/slider 9 is turned above zero. (When it returns to zero, controls act as before.) (L)Sixth-WeAlt2 - 16 or 17 sliders/pots (17th specified separately), otherwise generally as (L)Sixth-WeAlt. Exceptions: controller 9 has a different function, and pan and depth positions are not determined randomly. Rather they are user-specified with the 9th (pan) and 17th (depth) sliders/ pots. Positions are determined for the following tone *while its amp control is still off*. If only pan placement is desired (with depth full front), the 17th controller is not required, and its controller number is set to -1. (L)Sixth-WeASC - Similar to Sixth-We, but with ASCII keys replacing the MIDI controllers. ASCII keys Q through I turn the 8 tones on and off, while keys S through K instigate changes in pan/depth position (again bidirectionally). In these ASCII versions, pan/depth position is always reset to the initial setting whenever the tone is turned off. Fade time is set interactively by the performer by pressing numeric keys 1-0 (0 = 10); the numbers represent fade time in secords. New fade times take effect with the following fade. (The default duration is 6 seconds; this value may be changed as soon as Csound is started.) Additionally, in all ASCII versions, the Enter/Return key acts as a reset button, turning all tones off, with all functions except fade time reverting to their default states. Also, all *.csd variants* of ASCII versions must be performed from the command line. (L)Sixth-WeAltASC - Similar to Sixth-WeAlt, but with ASCII keys replacing the MIDI controllers as described above. The function of the 9th pot/slider is taken by the A key; pressing it once makes the next instigated tone move to front and center, while pressing it a second time returns pan/depth fades to "normal" operation. The Enter/Return key functions as described above. The *.csd variant only* must be performed from the command line. (L)Sixth-WeAlt2ASC - Similar to Sixth-WeAlt2, but with ASCII keys replacing the MIDI controllers as described above. However, either one or two MIDI controllers are required. Controller 1 specifies pan position for the next instigated tone, controller 2 (if desired) determines depth position. (In other words, compared to Sixth-WeAlt2, controller 1 here duplicates controller 9, and controller 2 replaces optional controller 17.) The A key functions as described immediately above (Enter/Return acts the same as well). The *.csd variant only* must be performed from the command line. (L)Sixth-WeASCF - The same as Sixth-WeASC, except that visual Feedback is given for key on/off status (a very useful and recommended feature). Note that this feature may cause audio glitches, however. The Lettuce .exe variant displays this feedback clearly, but the command-line version requires explanation. Visual data are given in a single line; on/off status of the 8 tones are paired with comparable info as to pan/depth, except for tone 1 (which lacks a pan/depth control). At the end is listed the current fade time (1-10 seconds). (L)Sixth-WeAltASCF - The same as Sixth-WeAltASC, except with the visual Feedback features described in Sixth-WeASCF. In addition, the state of the A key (End Flag) is shown - in the case of the .csd variant, at the very end of the Feedback line. (L)Sixth-WeAlt2ASCF - The same as Sixth-WeAlt2ASC, except with all the visual Feedback features described in the above two versions. Pan and depth positions are displayed, and appended to the .csd's Feedback line (in that order). New positions are only shown once the following tone is initiated. Pan and depth are scaled from 0-10; pan = 0 = far left, depth = 0 = full front.