Editing on the Model 64
A simple program that extends the on-screen editing facilities of SCI's MIDI sequencer, with a description by the author, Billy Cowie.
Sequencer-user Billy Cowie and a simple program that displays stored data, allows the user to alter it and then returns it in its new form to its original place.
The Model 64 Sequencer allows real-time sequencing of around 4000 notes and can also retain information concerning modulation, key velocity, after touch and patch changes. At present, however, the sequencer's editing facilities are fairly basic, allowing various levels of time correction, overdubbing, and chaining of sequences, but no way of altering pitch, dynamics, or the length of individual notes.
Until such time as Sequential Circuits come up with the necessary software, the simplest way to accomplish these more sophisticated editing facilities is by examining the stored data. Gaining access to programs on cartridge is tricky and not always helpful, so follow this procedure if you wish to examine the data.
First, load a few monophonic (for simplicity's sake) three or four note sequences and then store them on disk or cassette. (In fact, the following routines are designed for disk but can easily be modified for use with cassette if necessary.) Then remove the Sequencer cartridge from the computer (don't forget to switch off first) and return the micro to its normal mode of operation. Load the program in Figure 1 into the computer, and you're ready to start editing.
What this program does is to display the stored data for you to make alterations to it and then return it in its modified form to its original location - the sequencer can then be reconnected and the newly-edited sequences played. As well as being a useful musician's tool, the program also gives an interesting insight into the way the MIDI system works.
Nos. 10-30 open the datafile of the sequence when the sequence name (the seven-letter word you input when you save a sequence) is fed in. Nos. 40-120 pick the information one piece at a time, convert it into numbers, then put those numbers into an array and print them. You'll begin to see why short, monophonic sequences are preferable - as well as about 30 numbers for labelling the sequence, each note stored has eight numbers to itself (modulation and after touch require vast quantities of data and are best avoided at present), so a moderately long polyphonic sequence would fill the screen many times over.
The confusing set of resulting numbers can easily be clarified. A small subroutine (nos. 500-550) is run by pressing 'D' (for Display) and strips away the numbers concerned with the sequence name, its length, and so on, arranging the information remaining in eight rows corresponding to the information required by each note. The sequence in Figure 2 now looks like Figure 3.
The third and seventh numbers in each column refer to the pitches of the notes stored (in the example given, A=69 and G sharp=68), while the fourth and eighth numbers are the dynamic values of the notes preceding. A '0' dynamic indicates end-of-note, so each pitch value must occur twice, a start-up and a stop. The other pairs of numbers determine the timing of the events following them - the second of the pair refers to the beat (beginning at '0') and the first to the fraction of that beat (if 24ths is your chosen resolution the figures will start from 23 and work down to 0).
In Figure 3, the first note begins at the start of the first beat (23 0) and ends at the beginning of the third (23 2); the second note begins halfway through the third beat (11 2) and ends halfway through the fourth (11 3). This will probably appear a bit complicated initially, but once you've run a few sequences through you should start to see the patterns easily.
Pressing 'E' (for Edit) takes us to 300-330, a simple routine for altering the numbers stored in the array. For example, to change Figure 3 so that the first note is Middle C, adopt the following procedure:
Press 'D' for display to see the alterations on screen.
Don't forget that you must always change two values to alter a pitch - one for the beginning of the note and one for the end. Dynamics and timing of each note can be altered in a similar fashion.
Once you've edited or corrected your sequence to your satisfaction, pressing 'S' (for Save) takes us to 400-460, a routine that erases the original file and puts the rew, edited one in its place. The SCI sequencer cartridge can then be reconnected, and the new sequence loaded as normal and then replayed.
Once you've tried a few monophonic sequences, it should be possible to take the step up to polyphonic ones.
Lastly, a word of warning. The information in this program is stored as a series of on/off events, so that if you want a note to begin before the previous one has ended, its start-up information must occur before the first note's end information.
Gear in this article:
Feature by Billy Cowie
Previous article in this issue:
Next article in this issue:
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!