SOLO 2 (2025) for realtime Csound6 (PC and Android versions) Arthur B. Hunkins abhunkin@uncg.edu www.arthunkins.com Soli Deo gloria (S. D. G.) GENERAL SOLO 2 is a live-performance Csound instrument rather than a traditional composition. It is a framework for improvisation - either totally free, or structured (to whatever degree) by the performer. It is presented in two versions: Solo2.csd, and Solo2Android.csd. The first is the console edition (for PC, Mac and Linux), which requires a MIDI controller with 12 or 14 sliders/knobs (Controllers 13 and 14 are optional.) The Android edition is identical to the console version but is self-contained, requiring no external controller. Solo2Android is performable on the following Android Csound apps: the "canonical" Csound for Android app residing at https://github.com/gogins/csound-android/releases (and requiring Android OS 5 or higher), and the "alternative" Csound6b or Csound6c Android apps found at http://www.arthunkins.com/Android_Csound_Apps.htm (Android OS 4.1.1 or higher). It should run on Android smartphones, tablets and most Chromebooks. Chromebook Notes Chromebooks must have the ability to sideload Android apps - which requires both Play Store access and entering Developer Mode. Sideloading is not at all possible within Chrome OS *Flex*. Also, for on-screen widgets to be useable, Chromebooks should include touchscreens. On older Android smartphones, you must enable an "Unknown or Third-Party sources" option somewhere within Settings on your device, and perhaps also a comparable Install option. After app installation, copy/paste your selected .csd to any user-accessible folder on your device (suggestion: the Music folder). Then Open that file within the app, and Run Csound. VERSION SPECIFICS SANCTUS is an instrument of 4 "voices," each consisting of an 8-note chord. Notes of a given chord are all the same interval apart. Base (lowest) notes of the chords, in ascending order, are also the same interval apart. Amplitudes of the voices are determined by the first four controllers, while the interval between pitches within a chord is controlled, on a per voice basis, by controllers 5 through 8. The simplest version, Sanctus8(Android), comprises only these 8 controllers. SOLO 2 was inspired by my previous work for Behringer 2000 synthesizer, SOLO. Indeed it bears the same dedication. The accompanying demo preformance of SOLO 2 is a digital (Csound) reinterpretation of the fixed score of SOLO. While SOLO is a more or less fixed composition, SOL 2's demo is only a single example of how the instrument might be realized. Its score is simply a documentation of how I originally envisioned it. Performers are encouraged to imagine the instrument in varied settings, within the minimal constraints detailed below. GENERAL PERFORMANCE CONSIDERATIONS Audio output is stereo. With Android, if you get any "glitching" in performance (or alternatively, a complete crash), disable WiFi, Bluetooth and any other connections to your device. (This includes power.) There is no recommendation for performance duration. (The demo performance included in this distribution lasts about 7.5 minutes. As mentioned above, it follows the accompanying demo score closely.) NECESSARY EDITS Both editions of this work, especially the one for console computers, will likely require minor text editing - primarily to accommodate a particular platform and/or MIDI device. These edits are made in any editor, as the .csd's are simple text documents. For the console versions: 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.) For both versions, one or more orchestra macros (likewise listed toward the top of the .csd) may well require editing. Note that any substitutions you make must be enclosed by #'s. For the console version of SOLO 2, there are 3 macros. CHAN specifies the MIDI channel number for all messages (default=1). A value of 0 indicates a unique MIDI setup consisting of ascending channel (CHAN) values - from 1 to 12 or 14, with a constant controller (CTRL) value of 7. The CTRL macro defaults to 20, the number of the first of 8 contiguous CC's (Continuous Controllers) your MIDI device is sending on. (Channel 1 is the usual channel for these messages, as indicated above.) CTRL2 indicates the first CC # for an additional contiguous set of 4 to 6 controllers (default is 28). For both versions, the final two controllers (13 and 14) are optional. (Twelve knobs/sliders are required.) The Android version has a single macro: TRACKPAD - which is only relevant for canonical Csound for Android. Since this app includes only12 sliders, if you want 13 and 14, you have to substitute the trackpad's x and y axis, respectively. TRACKPAD's default is "1", which implements this substitution. Selecting "0" is appropriate for the "alternative" apps, which include 16 sliders each. (If you need only 12, there is no need to change the default.) Editing for Android The "canonical" Csound for Android app from github.com, includes its own editor. (Your .csd automatically opens in the app's Edit mode.) Additionally, the two "alternative" Csound6 apps (Csound6b and Csound6c) include an Edit button which will access any text editor installed on your device, once a .csd is loaded. When finished editing, be sure to Save; your revision is immediately available to Run without reloading. THE VARIOUS CONTROLS Controls are identical for the two editions. Controller 1 is master volume. Controller 2 varies sound source 1 from sine wave (at 0) to triangular wave (at 1). Controller 3 varies the triangular wave from controller 2 (at 0) through to a sawtooth wave (at 1). The sine wave is distributed equally to both channels. The triangular/sawtooth wave appears somewhat to one side. Controller 4 is the volume control for sound source 2, determined by controller 5. Controller 5 varies from square wave (at 0) through to narrow pulse wave (at 1). The square/sawtooth wave appears somewhat to the opposite side. Controller 6 is the amplitude control for controller 7. Controller 7 processes the two sound sources, which continue to occupy their previous positions. This slider introduces tremolo to the sources, increasing its speed from quite slow (0) into the audio range (1). Controller 8 is the amplitude control for controller 9. Controller 9 introduces increasing (0 to1) audio range frequency range modulation ("vibrato") into the mix. Controller 10 is the amplitude control for controller 11. Controller 11 introduces mid-frequency noise (0) through to higher-frequency noise (1). Controller 12 is a general distortion control - from no distortion at 0, to substantial distortion at 1. Controllers 13 and 14 are optional, and their effect on the overall texture fairly minimal. As per usual, controller 13 is the amplitude control for #14. Controller 14 offers an ascending (0 - 1) octave highlighting effect (via the hsboscil opcode) which brightens and animates the texture a bit. (Here moving the sliders interactively and somewhat faster may prove effective.) PERFORMANCE TIPS AND SUGGESTIONS Performance may be completely improvised; the accompanying demo score is only one possible realization. (Performers are free to pre-plan anything they like.) Simply note the following minimal constraints: 1) Set all controllers to 0 prior to running Csound. After start, optionally set sliders other than #1 to any higher values. Finally, begin actual performance by slowly raising the first slider. The performance ends when this control returns to 0. 2) Move knobs/sliders fairly slowly and evenly, with the possible exception of sliders 13-14 and when randomly moving sliders back and forth. Movement is not necessarily constant, though it may be. The overall sonority should seem to evolve and transform, all in an relatively unhurried, relaxed fashion. 3) On Android, be sure that, if you stop moving a sustaining slider at an intermediate point, you resume as close as possible to the same spot. Otherwise a "skip" will occur, which should only happen when expressly intended. 4) It is not necessary to use all sliders. 5) Finally, bear in mind that, on some Android devices or apps, only one control can be moved at a time. On PC's, with MIDI, there is no such limitation; feel free to manipulate several controls simultaneously.