ANGEL DERVISH (Lord of the Dance) for CsoundAV (2005) Arthur B. Hunkins Since we live where everything is music, everything is dancing. Watch the dust grains moving in the light near the window. Their dance is our dance. We rarely hear the inward music, but we're all dancing to it nevertheless, directed by the one who teaches us, the pure joy of the sun, our music master. Jelaluddin Rumi Dance, then, wherever you may be; I am the Lord of the Dance, said he. And I'll lead you all wherever you may be, And I'll lead you all in the dance, said he. Sidney Carter, "Lord of the Dance" Walk to the well. Turn as the earth and the moon turn, circling what they love. Whatever circles comes from the center. Jelaluddin Rumi Seraph - Sema - Sruti: Signs of the Eternal and Universal One GENERAL ANGEL DERVISH is a meditative yet joyful solo performance piece for Windows- based computer running CsoundAV. It exists in eight versions - all indicated by "dervish" in their file name. Four basic stereo versions differ from each other in two important respects: 1) two require 16 (optionally 17) external MIDI controllers ("m" suffix) rather than on-screen mouse/CRSR action (no suffix); 2) two offer a variety of pitch ratios ("v" suffix) for the fourth sonority rather than a fixed 2/1 ratio. These versions are named "dervish.csd," "dervishm.csd," "dervishv.csd" and "dervishmv.csd." There are quad variants for each of the above: "dervish4.csd," "dervish4m.csd," "dervish4v.csd" and "dervish4mv.csd." They add a real third dimension to the *apparent* depth of their stereo counterparts; otherwise they are identical. Of course, they require a *multi-channel* sound card or interface. Recently (12/05), a set of *8-channel* "dervishes" have been added. Other than the additional channels (intended to provide a more convincing circular movement), these four versions are identical to the quad variants above. How the 8 channels are distributed is described at the end of these instructions. The performance instrument is a set of four "Tones" or sonorities (the "angel dervishes"). Various performance controls gate these sonorities on and off, and/or vary their individual volume (a master volume control is optional). In addition, the performer manipulates the sonorities' initial position (in a real or apparent circle), vary their richness, their rotation speed (as they begin to move) and their distance from the center. All four "Tones" must take part in the realization. Spatial movement is intended to be experienced in a *counter-clockwise* direction (as with traditional Sema). In the stereo versions, where 3-D motion is only simulated, there is an on-screen "Set to CCW" box that should be checked if motion seems to be in the wrong direction. The computer required for performance must be running a version of Windows - 95B or higher. (With Windows 95 you must be sure that OpenGL has been installed.) The program that executes the selected .csd file is Gabriel Maldonado's CsoundAV, v0.043 or higher. Prior to performance, be sure to close as many programs running in your Windows taskbar as possible. This will minimize the chance of audio breakup. (Depending on your system, there is an excellent possibility of disaster otherwise.) Angel Dervish does not lend itself to multi-speaker sound diffusion. Minimum duration is 7 minutes. (There is no specified maximum length, though the .csd file can run for a total of 60 minutes.) GENERAL SETUP The performer downloads and installs the current version of Maldonado's CsoundAV from http://www.csounds.com/csoundav . The file to download is named CsoundAV_Win.exe . To run CsoundAV (and this composition), click on the program icon, and on the popup window that appears, type the name of the desired .csd performance file into the Orc field. Alternately, drag the .csd file onto the window. Click OK, and the performance window for the piece will appear. When you run any performance file, you will be queried (via pop-up window) to specify a Portaudio OUT Device number (-+P#), and if MIDI controllers are involved, a MIDI In Device number (-+K#). Once you determine appropriate device ID's for your setup, you may add them to your CsOptions flags (as, for example, -+K0 and -+P8). (These flags are located toward the beginning of the .csd text file. You can edit them in any text editor, including Windows' Notepad.) Doing so will thereafter happily bypass the device selection process. For any problems, please consult Maldonado's CsoundAV Manual, also downloadable at http://www.csounds.com. This HTML manual comes as a zipped archive named CsoundAV_Manual.zip. See particularly its sections entitled Special Command Line Flags and Command Line Hints. (Command line flags are the same as CsOptions flags.) DIRECTSOUND If your system software includes *DirectSound*, slider/pot response time (latency) will improve substantially. DirectSound is present by default in systems running Windows 98SE and above. You also need a DirectSound driver for your soundcard. Any recently-manufactured stereo soundcard will install DirectSound drivers; "legacy" (ISA) soundcards will not. DirectSound drivers (or multichannel ASIO drivers - see below) may be available on your system. On the Portaudio OUT Device Select popup window, you'll see any and all DirectSound and ASIO (in addition to MME) drivers listed. Specify one of the DirectSound (or ASIO) numbers; if it works, add this number to your -+P flag (as, for example, -+P5). DirectSound and ASIO are *particularly* sensitive to any programs running in the background, including those in the taskbar; be sure to close as many as possible. Hint: If you are still having a problem getting clean, click-free sound, run a *MIDI* version of this work (it is less demanding on system resources). Also, at the slight sacrifice of some high frequency content, you can try halving the values for sr and ksmps (also at the top of your .csd file) to 22050 and 50 respectively. (You cannot use ASIO drivers at these rates.) Otherwise, you may need a faster computer. SPECIFIC SETUP AND PERFORMANCE Performance consists of manipulating the 16 or 17 on-screen or MIDI pots/ sliders. In the MIDI versions, the continuous controllers (pots or sliders) must be numbered consecutively - in two "banks" of eight. The first number of each bank is preselected in the performance window. You must locate two series of eight contiguous controllers among the presets on your MIDI device (such groupings normally exist); otherwise you'll need to program such a set on your device. (Also be sure that they all transmit on channel 1.) All MIDI versions provide for two additional controller configurations that may be rarely encountered. 1) ALL CONTROLLERS USE THE SAME CHANNEL, BUT NOT #1: Locate the line toward the beginning of the performance file - "#define CHAN #1#", and change the channel number to the one you need (from 2-16) with any text editor, such as Notepad. (This revision is active until you change it again.) Note that the "#" characters around the channel number must remain. 2) EACH CONTROL (in a hardware bank of 16) USES A UNIQUE CHANNEL, BUT WITH (channel volume) CONTROLLER #7: For this situation, the Bank 1 1st Controller box on the performance screen includes a coded controller number. To enable this layout: For Bank 1 1st Controller #, select -1. All controllers in the two Banks will now be on consecutive channels. Note that, for this arrangement, the 17th, optional controller, will likely remain at its default "#128" (meaning *no* MIDI control of Overall Volume). Each of the four "Tones" is regulated by a set of controls (including four MIDI controllers in the "m" versions). Though independent in many ways, the Tones are sonically similar; the pitch of Tone 2 is in a 3/2 ratio to Tone 1, while Tone 3 is in a 2/1 ratio. Tone 4 is also in a 2/1 ratio, except that in the "v" versions, it may also be any of 21 other simple ratios (default is 2/1). These ratios comprise numerators and denominators less than or equal to 12, with a value greater than one and less than or equal to two (the 3/2 ratio is omitted). In the on-screen slider versions, there are global controls for On Duration (fade in time), Off Duration (fade out time) and (overall) Amplitude. A Glide Time counter affects all sliders; its setting represents approximately half the number of seconds it takes to get to a new slider value clicked by the mouse. Initial setting for Amplitude (an optional parameter which can be set to 10 and forgotten) should be 5 or higher. An All Off button turns off the Tones as a unit at the end of performance. Note that On Duration may be changed in preparation for each Tone, and that Off Duration may be modified at any time prior to the final fade. Each of the Tones is assigned four sliders and a Tone On button. The sliders are: Distance from Center, Initial Position, Detune Spread and Rotation Speed. All except the second are preset to zero, while Initial Position is preset each to a unique value (defaults are suggested on-screen; values should be well distributed "around the circle" between 0 and 1). All except Initial Position are varied during performance (all three controls also end at zero for all Tones - see performance event sequence below.) You can move the sliders in several ways (in most cases you must initially click on the slider to select it). First, you can click and drag the handle to a new location. Second, you can directly click a new location (here, a single click suffices). Third, you can move the slider by holding down the cursor-left or cursor-right keys on the keyboard. In all cases, the length of time it takes for the parameter to register a new setting is determined by the on-screen Glide Time control (this value too may be changed at any point in the performance). In the MIDI versions, select the first controller number for each of two banks of eight controllers. Each Tone is allocated four contiguous sliders: in order - amplitude, detune spread, rotation speed and distance from center. All four are preset to zero. If a 17th controller is available, a number can be chosen that allows for the variation of overall volume (if chosen, the initial controller's value should be at least .5). Otherwise, the default #128 - which doesn't exist - means that there is no control of overall volume (default = full setting of 10). The only additional on-screen presets are for Initial Position of the various Tones. These are not changed during performance. Values other than the defaults given should be as varied, with widely differentiated start positions, 0 - 1 representing positions around an actual or imagined circle. ("Initial Position" is, in reality, the position to which each tone first moves *following* its introduction in the exact center of the performance field.) With MIDI, the final group fadeout can be done with the overall Volume controller, if operational. If not, or as an alternative, the volume control for Tone 1 (the first pot/slider) will act as a master fader *if (and only if) the volumes of all four Tones are at full on position*. Note too that following a master fadeout by either means, the individual volume controls will only again become active once *all* of them have been returned simultaneously to off position. Also, MIDI controls are always moved singly. Specifics of the various versions are listed below. Prior to starting a *MIDI* performance file, be sure to turn all pots/ sliders to zero. Overall Volume (if it is operational) should be preset to a desired basic opening level. All performances follow the following *general* sequence of events: 1) The Tones enter slowly, one by one, in center position - each taking time first to establish itself, then by gradually increasing Distance from Center to between .3 and .8, to its Initial Position. Each Distance from Center should be unique; the movement to Initial Position is complete and well established before the next Tone enters. Order entry is user-selectable, except that Tone 4 enters last. All fade in ("m" versions) to equal - possibly maximum - fader level. Once in, all Tones remain sounding for the duration, and at a level relatively comparable to the other Tones. 2) One by one, Rotation Speed (initially at 0) increases. Order of initial increase generally parallels entry order. 3) One by one, Detune Spread (initially at 0) increases. Order of initial increase is free; detuning should be very modest at first. 4) Detune Spread and Rotation Speed continue to increase toward their maximums, to which are added Distance from Center and (optionally) Overall and/or individual Volume. Volume increase should be saved until last. Following this modest buildup, Detune Spread, Rotation Speed, Distance from Center and all Volumes are at their maximum settings. 5) Following some time spent at peak activity level, Rotation Speed and then Detune Spread are slowly reduced to moderate levels for all Tones. During this time Distance from Center also returns to levels in the .5 to .8 range. 6) All Tones return gradually to center position (zero Distance from Center). 7) Detune Spread returns (one Tone at a time) from intermediate levels to zero. 8) Overall Volume optionally reduces (also may overlap with #7 above). The overall sonority then remains unchanging for a short time. 9) All Tones fade out together. A final note: If overall volume remains constant throughout, the prevailing level should be moderate (mf). If the prevailing level varies, the peak (at the start of step 5 above) should reach moderately loud (mf/pocof), with the beginning at a somewhat softer (p/mp) level. SPECIFIC VERSIONS stdervish.csd-- On-screen performance only. (No MIDI required.) Stereo. stdervishv.csd--"variable" Same as stdervish, except offers 22 choices of Tone 4 frequency ratio. Select the ratio you want prior to performance. stdervishm.csd--"MIDI" Same as stdervish, except uses 16-17 external MIDI controllers in two "banks" of eight each. (17th is optional Overall Volume controller.) stdervishmv.csd-- Same as stdervishm.csd, but with 22 choices of Tone 4 frequency ratio. (Choices are ratios between 1/1 and 2/1 using integers <= 12 - but not 3/2.) dervish4.csd-- Same as stdervish, except quad ("4"). (Requires ASIO driver and multi- channel soundcard.) Note that, for all quad versions, it will help the imaging of circular movement for all speakers to be equidistant - with listeners inside, toward the center of the square. dervish4v.csd-- Same as stdervishv, except quad. (Requires ASIO driver and multi-channel soundcard.) dervish4m.csd-- Same as stdervishm, except quad. (Requires ASIO driver and multi-channel soundcard.) dervish4mv.csd-- Same as stdervishmv, except quad. (Requires ASIO driver and multi-channel soundcard.) THE 8-CHANNEL VERSIONS - DERVISH8.CSD, DERVISH8V.CSD, DERVISH8M.CSD AND DERVISH8MV.CSD As mentioned previously, except for the additional channels (which are intended to provide a more convincing circular movement), these four versions are identical to the above quad variants. (They too require a multi-channel ASIO driver - and here, an 8-channel audio interface.) The challenge here is to connect the channel outputs to the appropriate speakers. The outputs are arranged so as to create circular movement counter-clockwise from channel 1 through 8, with channel 1 (and speaker 1) at left front (or thereabouts). However the speakers may be numbered, the channel outputs should be patched to create this illusion of movement. The patching may be readily tested by turning up (or on) Tone 1, raising control 4 (Distance from Center 1) all the way, then setting control 3 (Rotation Speed 1) to a low level. Tone 1 should then appear to be rotating the perimeter of the shape formed by the speakers, at a speed set by control 3. As with the quad versions, it would help the imaging for the speakers to be placed equidistant - in as much of a circular arrangement around the centered listeners as possible.