FILEMIX, FILEMIX4, FILEMIXASC and FILEMIX4ASC (2010) for realtime Csound5 File player/mixer/processor utilities for up to 4 mono/stereo files, in a variety of uncompressed formats including WAV and AIFF; also Ogg/Vorbis (with Csound 5.10 or later) but not MP3. All computer platforms; except for FileMixASC and FileMix4ASC (ASCII keyboard only), require MIDI controller with one to 16(17) knobs/sliders. ASCII versions must be performed from the command line, except for standalone Lettuce .exe's (LFileMixASC and LFileMix4ASC). The 4 Lettuce variants include a GUI to be run from the same directory as the (up to) 4 soundfiles (no Csound installation required; necessary Csound 5.10- equivalent files included). Lettuce option is Windows only. Art Hunkins abhunkin@uncg.edu http://www.arthunkins.com also: DUSK AT ST. FRANCIS SPRINGS: Soundscape for FileMix (2010) A set of 4 stereo soundfiles for performance with FileMix4 (preferable) or any of the other three utilities. These files, labeled soundin.1 through soundin.4, must be placed in the directory from which FileMix(4) is run. The files are designed to be looped, with random start index, and performed as a set of four. (This is automatic with FileMix4 and FileMix4ASC.) Each file (soundin.1-4) is slightly more texturally intense than the previous one. Successively fade in each from silence, with all fades, both in and out, slow. The same deliberate approach is taken to parameter changes throughout the performance. The files are all about one minute in length. Users are highly encouraged to create their own soundfiles; both mono and/or stereo files are acceptable (stereo only in FileMix4 and FileMix4ASC). FileMix (and FileMixASC), as a general-purpose file player/mixer/processor, was especially designed to be flexible. Any sample rate (and mixture of rates) will work; the same for file formats (but see above re: mp3 and ogg vorbis). If files are intended to be looped (as they must be in FileMix4 and FileMix4ASC), special attention should be paid to loop points. All four utilities can be run on any Csound installation, v5.02 or higher (except for the ogg vorbis limitation mentioned above). For Windows, the Lettuce executables (see Rory Walsh's Lettuce Csound utility: http://www.ear.ie/Lettuce.htm), require only the small set of Csound files included here. Place the executables, Csound files and your selected soundfiles (renamed soundin.1-4) in a single directory, and run from there. The Lettuce versions offer a very nice GUI, as well as a helpful list of instructions. Though FileMix, FileMix4 and their ASCII counterparts are cross-platform, their (see below) are initially set for Windows and Mac. For Linux, edit the CsOptions line (toward the beginning of the file - it begins with "-odac") in a text editor as follows: delete the semicolon at the start of the Linux line, and add one at the start of the Windows/Mac line. (Then resave the file.) FileMix and FileMix4 are highly preferable to FileMixASC and FileMix4ASC. The latter two should only be considered when an appropriate MIDI device is not available. Though functionally equivalent to the MIDI versions, the ASCII editions are not as flexible or intuitive, and are a challenge to play. FILEMIX4 - the simpler option FileMix4 was primarily designed as a realtime mixer for looped nature soundfiles (soundscapes) - in sets of four files. It was expressly created for DUSK AT ST. FRANCIS SPRINGS. The idea was to facilitate meditative sonic environments that mutate slowly over time. Effects, notably volume and tone color, are controlled and changed almost imperceptably by a set of up to 16- 17 sliders or rotary knobs. The number of MIDI sliders/knobs required depends on how many parameters you wish to vary. The parameters - individually controlled per file - are (in order): amplitude, band-pass peak frequency, peak gain, and speed/frequency. So, one parameter requires 4(5) knobs/sliders; two parameters, 8(9); three parameters, 12(13), and four parameters, 16(17). The additional controller is optional Master volume. (Master volume is not available with the special "channel 0" option, a code for CC7 on channels 1 through 16; when 4 files and 4 parameters are active, no controllers remain for Master volume. The same limitation applies to FileMix.) Except possibly for Master volume, controllers are compacted so that all are alongside one another. Also, controllers for the same parameter are placed together; so, with sliders at least, a given parameter for multiple files can be changed (physically moved) simultaneously. RUNNING FROM THE COMMAND LINE: Before running FileMix4 (always run from the directory where both FileMix4 and your soundin.1-4 files are located), view the beginning of FileMix4 in a text editor. Of interest are the lines below - the ones beginning #define. Since you lack a GUI, these represent options you must manually select, and a way of indicating the settings of your MIDI controller. These variables (in CAPS) are all given common default values. Changing values is simply a question of replacing the number between the two #'s; just be sure not to leave any blank spaces. CHAN (channel #) - default=1. 0 is a special code meaning Continuous Controller (CC) 7 on channels 1 up to 16. CTRL1 (controller bank 1, comprising (up to) 8 consecutive controllers, and identified by its first controller #) - default=20. CTRL2 (controller bank 2, (up to) 8 consecutive CC's) - default=28. CTRL2 knobs/sliders only required for 3 or 4 (peak gain, speed/freq) parameters. MAST (optional Master volume controller) - default=7. -1 is a special code meaning no Master volume. For CHAN = 0, MAST = Master volume CHANNEL. If PARMS = 4 and CHAN = 0, there is no Master volume (only 16 channels are available). PARMS (# of parameters to be controlled) - default=4. Options: 1 = amplitudes only, 2 = amps + band-pass peak frequency, 3 = amps + peak freq + peak gain, 4 = amps + peak freq + peak gain + speed/frequency. Note that (output) Sample Rate is set to 44100Hz (in Lettuce versions, this rate can be modified under CsOptions [in the Menu Bar]). You also may need to edit several items in the line (just above the list of options): values for -odac (audio output device) and -M (MIDI device #). If the default values abort the run, View the console Output; it will indicate the active devices on your system. Pick the appropriate numbers, insert them and rerun. LETTUCE GUI'S (Windows only) The Lettuce GUI greatly facilitates the specification of performance presets for all these utilities; no text editing is required. On-screen variables are the same as those listed for the command line. Users of the Lettuce GUI's may also need to set certain . Access to these options is through the menu bar (where Sample Rate too can be modified). Console Output is likewise viewable via this bar. FILEMIX - the more general (and complex) option FileMix offers a number of additional capabilities compared to FileMix4, and is correspondingly more complicated to use. These enhanced options include: either mono or stereo files (can be both); any number from a single file to 4 files; can play files a single time as well as loop them, and start play from the beginning of a file as well as a randomly assigned index point. (FileMix4 automatically assigns a random start point anywhere up to 75% through its length.) The number of controllers required = the # of files times the # of parameters. An optional Master volume is in addition to this figure. As in FileMix4, the controller layout is compacted so that the knobs/sliders are typically adjacent to one another, so only a minimal number are required. FileMix facilitates one-shot, from-the-head playings by permitting the immediate onset of a file - essentially from "on" rather than "off." This is done through a delayed start provision; play is not actually begun by starting Csound, but rather by later pressing an ASCII key or MIDI note; this gives time to move to an amplitude setting above zero prior to sound onset. Furthermore, upon key/note press, a preset fade(-in) time commences, so that all files can start immediately in synchronization. In a once-through performance, a comparable fade-out occurs at the end. Additional preset options for console-run FileMix are these: SRATE (output Sample Rate) - default=44100 ; *preferably* 44100, 48000 or higher (lower rates possible, but peak filter frequency does not track well below 44100). FILES (# of soundfiles) - default=4 ; mono/stereo soundfiles (1-4). RSTART (random start index, or not) - default=1 ; 1 = random start index, all files different; 0 = start at head, all files. DELAY (wait, or not, for audio following Csound start) - default=0 ; 1 = delay audio to adjust volume controllers; 0 = no delay. For Delay to have effect, Master volume controller must be selected and set above zero. When delay is selected, pressing an ASCII key or MIDI note will trigger sound. Also, on Korg nanoKontrol, pressing the STOP button will instigate sound (but see possible conflict below). FADE (fadein/out time for delayed start, in seconds following trigger) - default=.1. LOOP (loop or single play) - default=1 ; 1 = loop files; 0 = single play. PERFORMANCE SUGGESTIONS: In preparing for performance, it is important that all MIDI knobs/sliders be set to zero *prior to Csound start*; after start, with all volume controllers at zero, reset controllers that need to be at other positions (band-pass peak frequency and speed/frequency). [Note: These resettings are necessary for the opening sonorities of each file to approximate the original recordings; you are, of course, free to experiment with alternatives.] Then start raising the volume knobs/sliders. Maximum performance duration for all utilities is 60 minutes. This value can be increased, if necessary, by subsituting a larger number of seconds for the "3600" that appears in the last 10 lines of FileMix4(ASC); or the last 7 lines plus the 3 "event_i" lines toward the beginning of the "instr 1, 2, 3, 4" section of FileMix(ASC). POSSIBLE CONFLICT IN FILEMIX WITH STOP BUTTON ON THE KORG NANOKONTROL The Korg nanoKontrol is an inexpensive MIDI control surface appropriate to FileMix and FileMix4. (Especially its preset #4 works "out of the box" with both programs, though in this configuration it only offers up to 9 sliders.) Unfortunately, on the nanoKontrol, there are no MIDI note buttons to press for the delayed start option in FileMix. All the nanoKontrol's many buttons issue, by default, CC messages. So the STOP button option is normally a useful alternative to MIDI note keys/ buttons on the nanoKontrol. There is absolutely no problem on the nanoKontrol with FileMix unless (at the same time): 1) you want to do delayed start; 2) you want to use the STOP button; 3) *most important*: you are using *CC44* (which by default is the STOP button) *as one of your knobs/sliders*. In this highly unlikely scenario, there are several solutions: 1) don't use the delayed start option; 2) don't use the STOP button; press an ASCII key instead; 3) use banks of MIDI controllers that don't include CC 44; 4) get a MIDI device that has MIDI notes available, and use a note instead. Programmer types have other options available, such as: changing CC44 to the number of another button (CC's 45-49 are the numbers of other transport buttons; locate the readily identifiable single line of code in FileMix and edit in a new CC #), or programming one or more buttons on the nanoKontrol as MIDI notes (using the Korg Kontrol Editor). FILEMIX4ASC and FILEMIXASC - ASCII keyboard options (non-MIDI) As mentioned above, FileMix4ASC and FileMixASC are functionally identical to their MIDI counterparts. One advantage (beside the fact that they don't require MIDI controllers) is that there are fewer required presets, and no slider/knob adjustments that must be made prior to performance. On the other hand, lacking knobs/sliders, far less control and sensitivity is possible with respect to the various parameters, and remembering which ASCII keys (and SHIFT-key combinations) do what, is a minor exercize in mental gymnastics. In a nutshell, only consider these versions if a suitable MIDI controller is unavailable. With that said, here are the ASCII key assignments (note that hands are placed in the normal QWERTY keyboard position): The numeric keys 1 through 0 (=10) determine the number of seconds it takes for any change to occur. (You might call it "glide time.") In addition, the "`" key (to the left of "1") is "0" seconds - actually .1 second. You can change "glide time" at any point; it will take effect with the next keypress. Default is 0(=.1) seconds. A through F are volume controls for the four soundfiles. Pressing them once moves the sound to a level of .5, twice to full level. With the SHIFT key down, the move is toward 0, .5 per press. When an extreme is reached (here, 1 or 0), additional presses do nothing (this is true for all parameters). The keys directly above (and slightly to the left, Q-R) determine band-pass peak frequency, starting from a ".5" setting that approximates original tone color. Keypress action is the same as for volume control, except that there are two positions *below* ".5" as well as above; think of the extremes here as being "0" and "1" for a total of 5 positions (2 plus and 2 minus). The J through ; keys strictly parallel A-F, but control peak gain. Each of two presses increases gain, while SHIFT-presses reduce it. The four keys above J-; (Y through O) regulate speed/frequency of file playback. In their action, they parallel Q-R in that they cycle through *5* levels, two positive (unshifted) and two negative (SHIFT-press). These correspond to two faster and two slower speeds, centered on the default original pitch/speed. Three other keys are assigned as well: G-H, and the SPACE key. Both G and H silence all files (using the then-current "glide" rate) while preserving other current values. The SPACE bar also silences each voice, but resets all values (including glide time) to default/original values. Note that both hands, in normal QWERTY position, have access to a "silence" key (G or H), and RESET (the SPACE bar). These two hands could also be two collaborating (or gaming?) performers sharing performance duties on a single, or on two keyboards (multiple keyboards [through USB] work just fine). Or two "players" may be "competing" (exploring?) - playing *both hands* on two keyboards. (This latter option is not feasible via MIDI; though two simultaneous MIDI devices can coexist by specifying the CsOption -Ma (for MIDI device), two sliders/knobs controlling the same parameter will not give a desired result. [Immediate skips between values will occur.] Two performers may use several MIDI devices to control *different* parameters, however.) In addition to displaying the various presets that relate to the "single play" and "from the head" options, FileMixASC (the full-featured ASCII version) implements one other key assignment - the ENTER key. The is the "delayed start" key; it parallels the "hit any ASCII key or MIDI note" mechanism of the MIDI variants. As in MIDI versions, alternate starting levels (especially for volume) are set, here via keypresses, prior to sound onset. ASCII keys other than those described, do nothing. Note also that in their Lettuce incarnations, ASCII versions cannot be performed while the View Output window is open and in focus. Because of the way in which ASCII key presses are handled, none of these utilities can be performed within various Csound "frontends" either.