The Groove Analogue Sequencer Simulator Tim Wright Overview. The Groove Analogue Sequencer Simulator is a program for the Atari ST range of computers which is designed to replicate the effects of early "analogue" sequencers using modern MIDI equipped sound creation devices. Patterns can be created and sent to a number of different MIDI devices, producing both notes and also such effects as pitch bend, patch change, or controller. Patterns can also be transposed in real time utilising either the mouse or MIDI input from a suitable controller keyboard. Once created, patterns can be stored in a memory bank, and then chained using a second, "song play" mode allowing more complex arrangements to be built up. Finally, Patterns, Groups and Songs can be saved to and loaded from disk. Loading the Program. To load the program, simply insert the disk containing the program and switch on the computer. When the directory appears, double click on the icon labelled "GROOVE.PRG". The simulation will now load and run automatically. Using the Program. When first loaded, the program defaults into "Pattern Data" mode. other modes may be selected by clicking upon the four main icons in the lower middle of the screen, labelled "Pattern Data", "Pattern Routing", "Disk" and "Pattern Chain". Each of these four sections will be covered in more detail below, but here is a brief description of each section. "Pattern Data" is the section where the raw numbers are entered. Three tracks are provided, each with sixteen steps. These three tracks produce MIDI information when passed through the Pattern routing stage. "Pattern Routing" takes the information provided by the Data section and turns it into MIDI output. Eight output "sections" are provided. Each one can have a different event type and MIDI channel, and use any (or all) of the data tracks. "Disk" is simply the section allowing loading and saving of data. "Pattern Chain" allows you to take saved patterns and chain them automatically, thus producing longer pieces of music which change rhythmically. Theoretically up to 600 bars of music can be sequenced. To the right of the mode selection icons are three other boxes. These are, from top to bottom, the Transport window, the Transpose window, and the Tempo window. The Transport window acts similarly to a tape deck, whilst the other windows act as would be expected. Please note... in all cases where a value may be changed, press the left mouse button to decrease it, and the right mouse button to increase it. Also note that in some cases, holding the left shift key will cause changes of one octave. To the left of the mode select icons lies the sequence storage box. This allows up to twelve patterns to be stored in memory, and later switched automatically using pattern change mode. For each memory you have three buttons, which behave as might be expected. "Save" stores the current sequence in the memory location, unless the location is locked. "Load" copies the memory location into the current sequence. "Lock" allows a memory location to be protected to prevent accidental erasure. Please note ... Some options are not available in all modes. Finally, above the mode select window and directly below the various mode screens, lies a status bar which provides information as to the current mode of the program, and to its left, the MIDI information box. This is now briefly explained. The MIDI information box shows how the program will deal with incoming MIDI information. This can be in one of two modes, Transpose or Data, and these are toggled by clicking with the mouse upon the box itself. In transpose mode, incoming notes are used to set the Transpose value of the program; C3 is defined as no transposition. In Data mode, the mouse must be over a value and the program must be in the Pattern Data mode. In this case, playing notes will cause that value to be inserted into the corresponding location, allowing a form of step time musical entry over MIDI. Please note that upon leaving the Pattern data screen, MIDI mode defaults automatically to Transpose. Pattern Data. This section of the program consists of three tracks, each split into two main areas. The left hand area controls the order in which data is sent out (into the Pattern Routing stage) and the right hand area displays the data itself. The left hand area is broken into three separate options. The first two or these are the "First step" option and the "Last step" option. These allow you to delineate a range of steps which are active. For example, of the first step it 2 and the last step is 11, then steps 1,12,13,14,15 and 16 will never be played. The third option is direction. This determines the manner in which the program decides which order the steps should be played in. These are listed below. "Forward" - In this mode the step will cycle from first step to last step, and the loop back to first step. E.G. 1,2,3,4,1,2,3,4. "Backward" - This simply reverses the above mode. Given first step or 1 and last step of 4, we would produce 4,3,2,1,4,3,2,1. "Shuttle" - This is a combination of the above two methods, and would result in 1,2,3,4,3,2,1,2,3,4 and so on. "Random" - The program picks a random value between first and last steps inclusive. For example 1,3,4,2,4,3,3,1,2... "Single" - The program plays the first step repeatedly. 1,1,1,1. The right hand area of the screen consists of sixteen steps, each of which can be broken into three areas. A first value, a second value, and a pair of indicator lights. The two values are simply those numbers which will be transmitted when the sequencer is running. For those of you unfamiliar with MIDI, in a note type event the first number designates the pitch of the note in the following manner. 60 is C3, each number above or below designates an interval of one semitone. Hence, 72 is C4, 57 is A2. The second number is the velocity value; this will commonly determine the loudness or timbre of a sound. Note that in some event types (program change for example) the second value is ignored. The two indicator lights are set up like this; the left hand light is an indicator which will light whenever that step is being played. The right hand indicator indicates whether a step is active or not, and can be changed by clicking on it; if the light is out, then when that step is played then no event will be generated by this channel. Pattern Routing. The pattern routing section is where you decide what will happen to the data generated by the previous section. Several channels are available and these are displayed down the screen. Each channel has six different parameters, which may be changed using the mouse. The first is the type of data to be generated. This determines which kind of MIDI information will be generated, if any. If the type is set to "OFF", then no data will be generated by this channel. NOTE will generate notes, CTRL will generate control change events. In this case, the first number defines the control to be moved, the second number its new value. A few useful controller numbers are listed below. 01 - Modulation. 05 - Portamento time. 07 - Main volume. PROGRAM events send program changes; in this case the second value is ignored. Finally, PITCH sends pitch bend values. The next parameter is the channel on which the resulting MIDI date is to be transmitted; this can vary between one and sixteen. Note that more than one of the groups can be transmitting on the same MIDI channel if required. The third parameter simply selects whether the track is to be affected by the transpose factor. If the word is "greyed out" then the transpose factor will have no effect, otherwise the pitch will be changed. Note that transpose is only ever applied to NOTE events, regardless of this setting- you cannot transpose pitch bend messages. The remaining three parameter determine which of the tracks in the data screen are to applied to this channel. Any combination is allowed, but the results are unpredictable unless you know how the program determines them; this is now explained. If none of the selected track is generating a note, then nothing will be generated (obviously). If one (and only) one of the tracks is active, then this will be the event produced. If more than one track is producing output, then the events are added. However, to prevent huge numbers being generated, each added number has a constant removed from it; 60. Hence adding values of 64 and 64 would produce 68, whilst adding 62, 52 and 43 would produce 37. In terms of note values, 60 corresponds to C3. Disk. In this screen you can load or save either the current sequence, the group of stored sequences or the current song chain to or from disk. Selecting any item displays a file selector. When saving data, please ensure you use the suggested file extension or you will not be able to see the files when attempting to reload them (although typing the names directly will still work). Pattern Chain. This section is where you can arrange a number of patterns into a sequence and they will play back in order. There are two main sections. At the top of the screen there are 150 numbers; these represent the 150 possible steps. At the bottom there is a status bar. The steps can be changed by clicking on them with either the left or right button. Numbers one through to nine correspond to the memories one to nine, whilst memories ten to twelve are referred to as A,B and C respectively. The status bar has five different variables, each of which will affect how the song plays back. Firstly, there is the length variable. This determines how many steps each pattern should be played through before moving onto the next pattern. This is defined because different tracks in each pattern may be of different length. Note that this may be set to any number between one and sixty four; by selecting higher numbers, each pattern may be defined to play more than once for each "bar". The second variable is closely linked with the third; they define the first and last step which will be played. For example, two and six would mean that bars 2,3,4,5 and 6 were played. The fourth variable, loop, is greyed out if switched off and shown in clear white if switched on. When off, after the song has reached the end of the last bar it will automatically stop. When switched on, the song will loop back and start playing from the start again when it finishes. The final variable, "bar", simply shows which of the steps shown above the computer is currently playing. Please note that upon pressing stop, the computer always returns to the bar listed as the first step. Therefore, if you change the first step whilst the computer is stopped, the bar may not always be correct; to update the program simply press the stop icon once. Other Information. This program was written in STOS Basic. This means it may not work on newer models of the Atari range; whilst it should work on the STFM and STE, it hasn't been tested except on a rather battered STM. In particular, I doubt it will work with the TT or Falcon. ----------------------------------------------------------------- Any bugs, suggestions, comments etc. should be e-mailed to T.J.Wright@city.ac.uk although that will probably expire in about six weeks. Failing that, you could snail-mail to... Tim Wright, 21 Borough Road, Isleworth, MIDDLESEX, TW7 5DT, ENGLAND. Tim Wright, 14th August 1994.