*** Marketing blurb *** Tunesmith - Interactive Algorithmic Composition from Dr. T's and Jamos Music Tunesmith is an interactive algorithmic composition program for the Atari ST. Based on our acclaimed Algorithmic Composer for the Commodore 64, Tunesmith combines controlled stochastic generation of pitch and rhythmic structures with real time mouse and keyboard control of theme, tonality, and accompaniment parameters. Entire sets of control parameters may be arranged into a tune, allowing complete compositions to be created within the program. The MIDI output of all six voices is continuously recorded by Tunesmith in KCS compatible format, and the program is fully compatible with our Multi Program Environment. ****************************************************************** Tunesmith 0.70 Beta test / demo documentation Tunesmith is a complex program, and the information in this preliminary manual, while reasonably complete, does not begin to cover the full spectrum of applications suggestions, etc. that the program really requires. For help at any time, press the Help key, or press Shift-Help to see the contents of the Notepad. The Notepad contains orchestration and performance hints for each of the demo files. The demo version will not save files to disk; you may only load the demo files, or create tunes from scratch with the parameters. The program will automatically quit after about 20 minutes of play time. Version 0.7 also lacks a few features that will be found in the production version, including new rhythm algorithms, a new variation subscreen, and of course, the direct links to the KCS via the MPE. *** Overview *** The flow of musical information in Tunesmith is as follows. First, numbers that you enter on the Theme & Variations Parameters screen are used to create a "theme", which is a short sequence of rhythmic, pitch, and dynamic values. The pitch values in the theme are not actual MIDI note numbers, but are in terms of positions in any arbitrary seven note scale, and the rhythms are determined in terms of a parameter called the "microbeat", which is analogous to an auto-correct value. Five themes and up to three variations on each theme are available at any time in Tunesmith, but only one may be playing at any time. As a theme is playing, it is translated to MIDI music by the settings in the Accompaniment portion of the screen. The theme "drives" up to six separate monophonic voices at once. The first voice always plays the theme directly, while the other five voices may either play the theme or a part that is derived from the theme in real time, according to a series of selectable rhythm and harmony algorithms. Articulation, octave, program, muting, and channel for each voice can also be adjusted independently, and all of the settings for each voice can be stored in an "accompaniment preset" for instant recall. The theme plays in a key that is is determined by three sets of "tonality" keys on the ST keyboard. One of 38 preset scales or 8 programmable scales can be selected by the keys on the QWERTY keyboard, and any mode (starting position) within a scale can be selected with the function keys. The starting note of the scale is set to any value from C to B using the top 12 keys on the numeric keypad. Any tonality may be instantly selected by pressing one or more of these keys. Finally, the themes, accompaniment presets, key, scale, octave, and mode settings can be arranged into a tune using the Arranger screen. Two help screens are available at all times by pressing the Help key, and a notepad can be viewed by pressing Shift-Help. *** The Main Screen *** The main screen of Tunesmith is divided into five major sections: a window at the top of the screen, called the Window, that contains the Theme and Variation parameters when the program is booted; the Theme Select Matrix, for generating and selecting themes and variations, on the right side of the screen; the Accompaniment parameters section, with one line for each of the system's six voices, in the lower half of the screen; the Presets area, just above the Accompaniment parameters; the Display, just above the preset selectors, and the Master controls, at the very bottom of the screen. You'll notice a number of < and > symbols scattered throughout the screen. These little buggers are an invention of Emile's called arithmetic icons, and are used to increase or decrease the value they enclose. Clicking on the icon to the right of a number will raise that number, clicking to the left will lower it, etc. As with Fingers, a right mouse click always has a greater effect than the left mouse, and the actual amount of change is dependent on the parameter being changed. For example, a right click beside Microbeat will double or halve that setting, while a right click beside Tempo will change the tempo by 12 BPM, and a right click beside a Harmony value will change the setting by 2. Pressing both buttons simultaneously will set the parameter to it's highest or lowest value. *** The Master Controls *** There are currently five switches in the Master control area, as well as the Tempo setting. The switch immediately to the right of the Tempo control, labeled "Arranger", is called the Window Select switch, and it determines what will be shown in the Window at the top of the screen. Clicking here currently toggles the Window from the Theme & Variation parameters to the Arranger; I plan on splitting the Variation parameters out to a third Window of their own in the near future. The Start, Pause, and Stop buttons do just what you'd expect. The functions of these buttons are duplicated by the Space bar, the Esc key, and Undo, respectively. If you hold down the Shift key when stopping the program, any notes playing will be held until you release the Shift key. If you hold down the Alternate key while selecting either start or stop, the program will play the current theme to it's ending, then stop. This is handy if you want to capture a single theme, and it's accompaniments, in an external sequencer (or the KCS, once I dive into that problem). Clicking on MENU stops Tunesmith and brings up a menu with options similar to those in Fingers. Most of the current items in the menu are functional, though a few aren't written yet. Quit will end the program, and Play Screen takes you back to Tunesmith's play screen. **** The Theme & Variation Parameters and Select Matrix **** The Theme and Variation parameters are displayed in Window at the top of the screen. (If they're not visible, click on Theme Parameters at the bottom of the screen.) The settings in this area influence the way themes and variations are generated. Note that unlike the other controls in Tunesmith, the Theme and Variation parameters do not affect the music immediately; that is, they aren't real time controls. The program only looks at the Theme and Variation parameters when you generate a new theme or variation, as explained below. The Select Matrix is used to generate or select a theme or variation. The five rows A - E each have buttons for one theme, and three varations on that theme. If a button has a red musical icon to it's left, that means the theme or variation exists. Left clicking on an existing theme will select that theme as the next theme to be played. If the theme or variation doesn't exist, a new theme or variation will be generated, according to the current settings in the Theme & Variations Parameters area. (From now on in this document, I'll use the word "theme" to mean either theme or variation. If a subject comes up that pertains only to one or the other, I'll be specific.) Themes may be erased by holding down the Shift key while selecting them. Existing themes can also be copied from one location to another by pressing both mouse buttons together (since it's hard to press them both at exactly the same time, it's best to press the left first) on the source theme, then selecting the destination. The theme that is currently playing is shown in red in the Display area, along with it's microbeat value and how much time is left in the theme, expressed in measures and microbeats. Note that the current theme is not always the same as the highlighted (selected) theme; the highlighted theme becomes the current theme when the current theme is completed. *** Theme Parameters *** The theme parameters can be broken into roughly two groups - those affecting rhythm, in the first column, and those affecting melody, in the second and third columns. The most important parameter in the rhythm parameters is the Microbeat setting. This determines the "rhythmic quanta" - the minimum note length - that is used in generating the theme. The Theme Length and Pulse parameters are specified in microbeats. For example, a Microbeat setting of 6 (for sixteenth notes) along with a Theme Length setting of 32 leads to a theme that is two measures long (assuming 24ppqn, of course). The Pulse setting is used to determine where accents and rests will fall. Essentially, Pulse determines which microbeats will be "weak" or "strong" beats. If Pulse is 1, every microbeat will have an equal chance of being accented or a rest; if Pulse is 4, every fourth microbeat will be considered a strong beat, and will be more likely to be accented, and less likely to be a rest, than other microbeats, etc. Generally, Pulse should be 2, 3, or 4. Rhythms are generated using one of a series of Rhythm Algorithms, of which I've written four, and more of which are coming. The program maintains a high degree of rhythmic sensibility by constructing rhythms from rhythmic kernals called "microrhythms" according to the selected Rhythm Algorithm and Variant. Descriptive (to me, anyway) names for the various rhythm algorithms are given on the second help screen (press Help any time), along with the function of the Variant parameter for each algorithm. The four rhythm algorithms in version 0.7 of Tunesmith are really two variations on two algorithms. In Rhythm Algorithms 1 & 2, the program creates a few microrhythms, then uses the same algorithm that creates the microrhythms to string them together. This gives the stucture on both levels a certain loose similarity. Variant sets an upper limit on how many unique microrhythms will be used in creating the theme. In Algorithms 3 & 4, a single microrhythm is looped continously to create the theme rhythm. Variant sets the length of the microrhythm, in microbeats. In both pairs of algorithms, the A and B versions determine how microrhythms are generated. The A version has more "respect" for the pulse, and tends to put accents on the pulse and rests off the pulse, while the B version has less respect for the pulse. The melodic parameters are very similar to those used in Phrase. High and Low Note set rough limits on the range of pitches that will be generated and First Note determines which degree of the scale (1-7) the melody will start on. (If First Note is 0, the first note will be chosen in the same way as all the others.) Note that the notes shown for High Note and Low Note are only strictly correct if you're playing in the first mode of a Major scale in the key of C; use them as a guide in determining roughly where your theme will appear in whatever mode and scale you use to play the theme. Pitch Loop sets the maximum number of notes the theme generator may create before it starts looping on itself. Use small values (say 3 to 8) to create a cycling melodic figure in your theme, or extremely large values (99) to eliminate cycling. Maximum Step and Maximum Leap set the maximum interval between any two notes. The difference between the two is that a step must occur after a leap. That is, any time an interval is generated that is greater than the Max Step size but less than the Leap size, the next step is constrained to be less than the Max Step size; otherwise, the Max Leap setting is used. Note that Steps may be larger than Leaps. Maximum Repeats sets a limit on how many times the same note may be played in succession. If these rules become so restrictive that it is impossible to generate a note that fits all the rules, the program tosses out ALL the restrictions on that note, other than those imposed by the Harmonicity parameters, as explained below. Onbeat and Offbeat Scale Weight are similar (identical, in fact) to the Harmonicity settings in Phrase, though there are now, obviously, two of them. Onbeat Scale Weight is used if a note starts on a Pulse, and Offbeat Scale Weight is used for notes that fall off the Pulse. The Scale Weight settings determine the probability weightings for each position in the seven note scale. There are eight different probability tables, which may be edited by selecting Scale Weights on the menu. By using different probability tables for the notes that fall on or off the pulse, you can tailor the melody to a certain degree. *** The Variation Algorithms *** This is a very rudimentary feature in the current version of Tunesmith. Two different variation algorithms are available. In the first, the last (Variant) pitches in the theme are regenerated, according to the current Theme parameters. If Variant is 0, all notes in the theme are regenerated. The second algorithm simply scrambles the order of the microrhythms that make up the theme rhythm, without changing the pitches. This has no effect whatsoever on some themes, especially those generated with Rhythm algorithms 3 & 4. More variation algorithms are in the works. *** Scales and Tonality *** The scale which is used to play the theme is selected in real time using the ST's keyboard. Tonality is determined by three parameters - Scale, Mode, and Key. The current settings for each of these parameters is shown in red in the Display area. The Scale is selected using one of the 46 square keys in the area of the QWERTY keyboard that is bounded by the 1 and ` keys on the top, and the Z and / keys on the bottom. 38 of these scales are preset, and cover all the theoretical possibilities for a seven note ascending scale with no steps greater than a minor third. The last eight scales are user definable. The mode of the scale is selected with the ten function keys. Keys F2 and F9 select the first mode of the scale, though an octave apart; F3 and F10 select the 2nd mode, etc. Changing the Mode simply changes the starting note for the scale, within the same "list" of pitches. The key of the scale may be set to any value from C to B using the top 12 keys of the numeric keyboard. (The scale classification system used in Tunesmith is based on that presented in a booklet entitled "Music Possible" by Stan Jungeleib of Sequential, published by Sequential. Good luck finding it.) The Up and Down cursor control arrows will raise or lower all voices by one octave. If MIDI Control is selected on the Set Options page, the top and bottom octaves of a standard five octave keyboard will select the Key and Mode, respectively. ** This has changed - see the Addendum at the end of this document. ** *** The Accompaniment Parameters *** The six voice lines at the bottom of the screen are similar to those in Fingers. Channel, Program, Status, and Octave perform the obvious functions. Velocity specifies the base velocity for each note. Accent determines how much the velocity will be increased on an accented note, and how much velocity will be decreased on de- accented notes. (Example: a Velocity setting of 64 in conjunction with an Accent of 12 results in accented velocities of 78, de- accented velocities of 52, and "normal" velocities of 64.) Accent can be set to negative values, which has the effect of inverting the accent pattern in the theme. The program also has a preset "feel" algorithm (which cannot be turned off) that varies the velocities by 1/8 to 1/4 of the Accent level. Each voice can be muted with the Mute button. If this button is highlighted, the voice won't play. If a note is sustaining when a voice is muted, the note will continue to play for it's natural length, unless the Shift key is pressed when the Mute button is selected, in which case the voice will be muted immediately. If MIDI Control is enabled, the bottom six black notes on a MIDI keyboard (C#2 - D#3) will toggle the Mute buttons. Art selects one of eight Articulation algorithms. The algorithms are described on the first help screen, but generally speaking, lower Art settings result in shorter notes, and higher settings in longer notes. The four parameters under Accompaniment - Rhythm, Divide, Harmony, and Trans - determine how accompaniment lines will be derived from the theme. Rhythm selects one of 12 algorithms for deriving a rhythm from the theme's rhythm, which are listed on the first help screen. Depending on the nature of the theme, you'll find that some algorithms may produce no notes at all with some themes, and many or few notes with other themes. Divide determines how many of the notes created by the Rhythm algorithn will actually play. If Divide is positive, the program will play every nth note - every note if Divide is 1, every third note if Divide is 3, etc. If Divide is 1/2, the note will be double timed - that is, played twice, at half the rhythmic value. If Divide is negative, the program will randomly play approximately one in Divide notes - that is, if Divide is -1, almost every note will play; if divide is -8, approximately one in eight notes will be played, etc. The Harmony and Trans parameters determine the notes that will be played by the accompaniment parts. The Harmony algorithms are described on the first help screen. For most of the Harmony algorithms, Trans sets a diatonic transpose value. This means that the value represents an interval in the seven note scale, not a pitch offset as in the KCS. A value of 1 means a transposition by a first, or zero scale steps, 5 by a fifth (four scale steps), and so on. On the three arpeggiation algorithms (9 - 11), Trans sets an octave range for the arpeggiation, and for the fixed algorithms (7 & 8) Trans sets the degree of the scale that that voice will play. All of the harmony algorithms are completely deterministic, except for 3 (Random Harmony) which transposes the voice by Trans 50% of the time, and 4 (Random Theme Note), which randomly selects notes from the theme. The Partial Harmony algorithm (2) is identical to the Parallel harmony algorithm, except that only notes that fall on the 1st, 3rd, or 5th degree of the scale after transposition are played. (Yes, this does affect the rhythm as well - thanks, Laurie Spiegel). As with the Rhythm algorithms, some harmony algorithms may work better with certain themes than with ithers. (This is especially true for Harmony algorithms 5 & 6 - Contrary Motion and Inversion. When these don't work, they stink, but when they do, they're wonderful.) All of a voice's accompaniment parameters, except the program number and Mute status, may be copied to another voice by clicking on that voice's number (1 to 6, at the left end of the screen) and then selecting a destination voice. The Velocity setting for all voices may be raised or lowered by 1 with the Left and Right cursor control keys, which allows you to do smooth crescendos and decrescendos on all voices. *** Presets *** All of the settings in the Theme & Variations Parameters window may be stored in one of 26 Parameters Presets, and likewise, the Accompaniment parameters may be stored in an Accompaniment Parameter. The system for storing and selecting presets is similar to that used for themes: If a preset exists, a red dot is shown to it's left. Left clicking on an existing preset selects that preset, and right clicking on an existing preset (or clicking on an unused preset) stores the current Theme & Variation or Accompaniment parameters in that preset. Presets may be deleted by holding down the Shift key while selecting them. The Accompaniment presets are an ultracool way to change the density of a part while it's playing. The Accompaniment presets also have a special feature called voice lock out, where any of the six voices may be unaffected by the preset. If you click to the left of the voice number on any of the six voice lines, a red reverse X icon will appear. This means that that voice is now "locked out" from any changes caused by selecting a new preset. This allows you to use one or more voices as "solo" voices, whose settings will be unaffected by preset changes. (Data in "locked out" voices will be saved if a preset is saved, however.) Accompaniment presets may also be selected by pressing Alternate and a key from A to Z, and Parameter presets can be selected by pressing Control and a letter. At this point, I am debating the utility of the Parameter presets, and may remove them in favor of other goodies. Opinions? ** The Display Area ** The center portion of the screen displays information about what's currently playing. On the left end of the Display, the Mode, Key, and Scale are displayed, as well as the name of the key used to select these settings. Current Theme, Microbeat, and Pulse, show the appropriate value for the theme that is currently playing. The Left display shows the amount of time remaining in the current theme, in measures (as set on the Set Options screen) and microbeats. (If a microbeat is larger than a measure, which can occur, only measures are displayed.) This is handy for manually synchronizing tonality or accompaniment changes to the end of a theme, or any other point for that matter. *** The Menu *** If you click on Menu, a menu will appear in the upper right part of the screen. Some of these options should be fairly straightforward, others less so. Play Screen and Quit are obvious, and were described earlier in any case. Load and Save are used to move the entire contents of Tunesmith's prodigous memory to and from disk. Save Seq will eventually do the same thing that this option does in Fingers, but does nothing at the moment. MIDI Messages accesses a screen whereon you may send a variety of handy messages to any synth in your system. The All Notes Off message sends discrete note off messages in addition to the All Notes Off message, and also clears pitch bend and sustain pedal hang-ups. Note that it is possible to send conflicting messages on any channel (Local Control On and Off, for example); in this case the last message sent will obviously override earlier messages. Messages are sent in the order in which they are listed on the screen. Change Colors lets you change the screen colors. Everything here is pretty simple. If you select this option on a monochrome system, the black and white areas of the screen will be reversed. The Set Options button should be familiar to all KCS fans. Again, many of the switches on this page should be fairly straightforward, but there are some new buttons. The three Record buttons in the left column will be used in conjunction with the real time record stuff which I will be adding when I get time. If Send Programs At Start is selected, the program numbers for each voice will be sent when the program starts to play. The New Note on Key Change button affects notes that are playing when the tonality is changed. If this button is selected, then changing the current tonality, with either a Scale, Key, or Mode key, will cause any sustaining notes that are not a part of the new tonality to be turned off, and replaced with notes in the new key. For example, if three of the six voices are playing C, E, and G in a major scale, and you select a minor scale, the E will be turned off and a D# (E flat) will be turned on in it's place. This switch should normally be off for moderate or fast music - it's intended for use with long, slow pieces, with microbeats of 48 or more. The MIDI Control button and MIDI Control Channel setting allow portions of the program to be controlled by an external MIDI device on a particular channel. Currently, the Mode and Key may be set with the top and bottom octaves of a five octave keyboard, and each voice may be muted with one of the six lowest black keys, and more controls will be added. I'd like to do Scales from the remote keyboard as well, but there aren't enough keys.....Suggestions? The Scale Weights page allows you to set the probability that a given scale position will occur, when one of the eight tables is selected as the Onbeat or Offbeat Scale Weight. Use any numbers from zero to eight, though you should avoid using lots of large numbers, (all 8's for example) since this makes the program do needless extra work. If any row is set to all zeros, the program won't let you leave the edit window. The EDIT SCALES window displays all 70 notes used by Tunesmith (ten 7 note octaves), in a single scale. These may be edited in the usual way for edit windows, or pressing a key on a MIDI keyboard will write that note into the selected scale position, and move the cursor to the next. COPY OCTAVE will copy the octave of the scale that contains the cursor, to all other octaves, transposing as needed. This means you only need to enter a single octave when creating any scale that repeats in each octave. COPY SCALE is obvious; after selecting this option, the computer will ask for the key of the source scale, and will copy the scale and scale name to the current user scale. The eight Scale Key buttons (C V B N M , . /) select one of the eight user scales; you'll need to store the scale (by clicking on either OK or SAVE) before moving to another, or your edits will be lost. LOAD and SAVE send single scales to and from disk. All eight scales are saved with a .TUN file. *** The Arranger *** The Arranger module, which appears in the top Window whenever you select Arranger at the bottom of the screen, is used to sequence themes, tonalities, and accompaniment presets, in order to build up a song, or "tune", as I prefer to call it. The Arranger screen has four important areas - the arrangement itself, in the right portion of the screen; the three mode select switches (Play, Edit, and Record); the mode option switches, in the box beneath the mode switches; and the three "bulk operation" switches (for lack of a better term at the moment - LOAD, SAVE, and CLEAR). The switches in the mode options box change when different modes are selected, and modes cannot be changed when Tunesmith is playing. When Record is selected, the mode options box allows you to choose one of two modes - Record All, by highlighting the All button, or Overdub Single, by highlighting any of the other buttons. Record All is "normal" recording - when you start Tunesmith with Record selected, the Arrangement is cleared, and your keyboard or mouse selections are recorded in the arranger. Note that only the actions listed in the arrangement are recorded; individual clicks in the Accompaniment section are not recorded. If any other button is highlighted, the current arrangement is not erased; instead, changes on the specified controls (such as the Theme & Variation selectors) will replace the value in the current step. I realize that this is a strange arrangement, but it was easy to do, and the amount of computation that Tunesmith has to do in each loop is getting to be pretty heavy, so I may not change that real soon. If Play is selected, the All button will disappear from the mode options box. The remaining five buttons are used to determine which parameters will be controlled by the Arranger.These buttons are similar to the voice lock out buttons in the Accompaniment section. If any button is NOT highlighted, that parameter (Theme, Accompaniment preset, Mode, Scale, or Key and Octave) won't be affected by the arranger. This allows you to use the arranger strictly as a tonality sequencer, for example, by highlighting only Mode, Scale, and Key and leaving the other two off. This lets you play with the themes and presets, while a predetermined set of "chord changes" plays. when Edit is selected, the setting of the mode option switch determines what will happen when you click on an element in the Arrangement list. If Insert is selected, the current Theme, Key, Mode, Scale, Octave, and Accompaniment preset will be saved in that step of the arrangement. Replace is similar, except that the a new step is not inserted, and the selected step is overwritten. If Select is highlighted, the current theme, key, mode, scale, octave, and accompaniment preset will be set to the values in that step, and Delete is used to delete a step. Copy and Move are used to copy or move large chunks of the arrangement from one point to another. After you select a step when one of these is active, Tunesmith will ask you to specify the opposite end of the range, and then ask for a destination. The two arrows which appear between the Option switches and the arrangement list are used to scroll through the arrangement, which can be up to 1000 steps long. The time for each step, which is set in clocks, (NOT microbeats) can be adjusted by clicking on the icons that bracket each time value. A left click changes the time by one clock pulse, a right click by one microbeat, and holding Shift down during a left or right click changes the time by one pulse (that is, Pulse*Microbeat), or by one measure, respectively. Note that the Theme portion of the arranger simply selects the next theme to play. The new theme will still start when the current theme is finished, rather than when the new theme is selected. For most purposes, you'll want to synchronize the time settings for each step with the length of the theme in that step. *** Coming Attractions *** I have a few more features in mind, some of which I've mentioned, and some which I haven't. I might add more help screens, if any particular aspect of the program seems to be hard to keep track of. I might also add a "comments" help screen, which would be called up just like the others (and would therefore be available while playing a piece) which can be edited much like the Text screen on the KCS. While I think the array of Accompaniment algorithms is pretty full, I plan to add more rhythm algorithms to the Theme parameters, and I will be doing many more Variation algorithms. I will also be creating a third option for the Window at the top of the screen, which will be used strictly for Variation parameters and algorithms. Scale editing and recording are of course coming, and I'd like to beef up the external MIDI control implementation. ******** Version 0.6 Addendum ********** In the time since I wrote this stuff, I have been very busy - mostly working on manuals, as usual, but also working on a few minor changes to the program, as well as wading through the copy protect stuff I am required to put on, not to mention wrestling with a particularly nasty bug in Megamax C which didn't rear it's ugly head until four days ago. The new features are mostly minor, but worth having. The Notepad, found on the Menu, can hold up to 22 lines of 80 characters, and is otherwise identical to the Text feature in the KCS. To see the notepad from the main screen, press Shift-Help. The Octave and Velocity keys are now substantially different than the description given above. The bottom six keys on the numeric keypad (1 - 3 and 0 - Enter) now set the Octave, which is shown in the Display, and the up and down arrows now change the Accent value for all six lines. The Octave is stored in the Arrangement, along with the other tonality parameters. On the Set Options screen, you can turn MIDI merging on or off (I forget if that was described earlier), and the Key Click switch turns off the beep/click sound that the ST makes any time you press a key. Enjoy.