SWEET SIXTEEN Midi Sequenser Program. Written by Rolf Nilsson. Version 1.98 DEMO 4th sept 1992. This program is free to copy and use at your own risk. The author takes no responsibility for bugs or any damage it causes to any user. !!! This is a complete version except for the amount of memory which is limited to about 3000 events. To get a complete version and the latest update, see the end of this text file!!!!!! See NEW_FEAT.TXT file for update info. SWEET SIXTEEN This is a description of SWEET SIXTEEN SEQUENSER. Thanks to the multitasking capability you can use allmost every command while the sequenser is running. Works on all ST(E) in high/medium screen resolution. The program has a very economic way of storing the midi events (120000 free events on a 1040, 40000 on a 520) and the resolution of the sequenser is 192 ticks/quarter note (PPQ). Since the program is based on GEM (the computers operating system), please read your ATARI manual if you're not used to it. You can control the sequenser entirely with the mouse if you want to but many commands are also accessible from the keyboard. Some of the commands are accessible only from the DROP DOWN MENUS. You can scroll any value at any time. Left mouse button increases, right decreases. Adding other button will speed up process. The program operates in three modes, SONG, PATTERN and EDIT MODE. PATTERN MODE is where all RECORDINGS takes place. Choose TEMPO, TIME SIGNATURE and GROOVE. TIME SIGNATURE and GROOVE does not affect the way the music is recorded, only the way it is displayed. GROOVE is how you subdivide the QUARTER or EIGHT NOTE. So if you record a FUNK GROOVE, choose 16, a HIP HOP GROOVE, choose 24, a AFRO BEAT, choose 12 and so on. All BARCOUNTERS and POSITION and NOTE LENGTH in EDIT MODE will be affected. Hitting RECORD will start a one bar PREECOUNT and you can start playing at once since SWEET SIXTEEN is able to RECORD at any time. STOP ends RECORDING and hitting PLAY will start playing at bar one. If you have RECORDED during PREECOUNT you have to move the POSITION equally much back and then hit the PAUSE/CONTINUE key (in SONG MODE, see PREE START below). To move to a new POSITION, change the MAIN BAR COUNTER (you can also use the plus and minus signs at the calculator keypad). If the sequenser is stopped, PAUSE/CONTINUE will start at the MAIN BARCOUNTER'S position. Hitting PAUSE/CONTINUE while playing or recording will stop the sequenser but it will remain in the current mode. You can RECORD up to sixteen TRACKS in sixteen different PATTERNS. Highlighted track is current one. To change track, click on space where you enter track name. To change PATTERN, click on pattern number. To name PATTERN, double click inside the pattern name area. All values you change inside pattern is non-destructive (they don't change events in memory, real time altered). QUANTIZATION, which uses a little POP UP MENU (highlight desired value and release button), alters memory but is still reversible (changes note on, keeps note length the same). Tracks MIDI CHANNEL is 1 - 16, this is also the MIDI THRU CHANNEL. NO outputs all channels (the channels you see in the event editor). LOOP values are in quarter notes and the begining of the LOOP is at bar one (events recorded before this is not included). You can also change the VELOCITY, TRANSPOSE and DELAY values. If you with DELAY advance (a minus sign before the value) the music before "one" you must start the sequenser that much before "one" or use a PREE START value in SONG MODE (see below). A click on the VU-METER will MUTE track. "DRAGGING" a recorded track to the left will delete it. "DRAGGING" a recorded track up or down will COPY or MERGE it. DOUBLE CLICK on a recorded track and you can name it. (On STE's you must use some kind of mouse button fixer because of bug in TOS). DOUBLE CLICK on an empty track will initialize it and you can move over to the EDIT MODE for inserting (or deleting) events. In SONG MODE you can arrange the patterns you have recorded in any order and length with the help of an ARRANGE LIST. You have 32 POSITIONS where you can have different TRANSPOSE values for the PATTERN (you can choose midi channels which will not be transposed, see DISABLE TRANSPOSE in OVERALL SETTINGS) and you can MUTE any track temporarily in a position, (click small icons numbered 1 - 16, black = mute). Uppermost arrange position is current one. Here you can DELETE (move all subsequent positions back one step) or INSERT (move all forward) and PATTERN LENGTH is shown for this position. Since it is possible to record during the PREECOUNT (before "one") your music may start with an upbeat. To be able to hear this, every position may have a PREE START value. This means that current PATTERN will start before "one" with this many bars, beats or "ticks". Since PREE START ends the previous position earlier and there might be a lot of note off commands to send, you can also use PREE START to spread out the MIDI STREAM to get a good timing (some synths don't like to much data in one chunk). Also try to use the RUNNING STATUS flag ticked since this reduces the MIDI STREAM (only disable RUNNING STATUS if you encounter problems, this can happen with some older synths). Since MIDI is a bit slow it's possible to send out more data than the cable can "swallow". If you keep the menu item NOTE ON PRIORITY ticked, the program checks that notes get priority over other events such as pitchbend etc. You can LOAD and SAVE songs and tracks, and also patterns (as MIDI FILES, one track in a pattern and it is saved as format 0, two or more tracks will be saved as format 1). You can save while running and also load tracks. In CYCLE MODE the sequenser will play between LEFT LOCATOR and RIGHT LOCATOR. PLAY will start at the left position and PAUSE/CONTINUE at the current one (sorry, you can't yet record in cycle mode but you will appreciate that the program jumps back to the left position without a glitch). In EXTERNAL SYNC MODE you can sync the sequenser to an external device such as a drum machine, another sequenser or a tape recorder via midi sync. The program reads MIDI CLOCK for syncing and SONG POSITION POINTER (SPP) for finding the exact position to start. If CLOCK OUT is activated, MIDI CLOCK pulses is sent out via MIDI out. To sync to tape you will need an external device such as JL COOPER PPS-1. With this extra equipment you can start the tape at any point and the sequenser will start at that position. In EDIT MODE you can do anything except record. If you click on the small icons to the right of the arrows, you can choose what to display (only note on, program change, pitch bend and so on). Clicking inside the display area or on the arrows will prevent the editor to follow the music. UNLOCK will start the scrolling again (also hitting PLAY, PAUSE and MAIN BARCOUNTER). Click on INSERT NOTE is obvious, click on OTHER will insert a none note event (program change etc). Click on CHANGE will change event (not note on) to other event. Since NOTE OFF can be either a "real" note off or a NOTE ON with the velocity of zero you here has the option to change from one to the other. Click or scroll on any value will change it. A click on the symbol "P" between the arrows will start the sequenser at current edit event position. The first altering you do in EDIT MODE will save the track to the UNDO buffer. Hitting UNDO will take you back to where you came from. To make any alterations permanent, exit EDIT MODE and re-enter again. To COPY to another pattern, use menubar COPY function. Here you can also copy just a part of a track, PART COPY. MERGING tracks will alter events in memory so merged track sound the same as the two unmerged tracks. If they have different midi channels the merged track will display NO, that is, all 16 midi channels can be output from track. So if you MERGE to an initialized, empty track you can alter transpose, velocity, delay and midi channel on all events on a track with just one command. Good for preparing MIDI FILES! QUANTIZATION will be as before regardless of the value you see. Menubar functions KEEP and DELETE EVENTS works exactly as you think. Choose the type of event(s), midichannel(s), value for first and (if applicable) second databyte, what part of track and you will KEEP or DELETE the desired events. With menubar function MODIFY TRACK you can alter the TRACK PARAMETER VALUES so they become visible in EDIT MODE, i.e. events in memory are changed. Choose what part of the track and any or all of the following parameters: MIDI CHANNEL, VELOCITY, TRANSPOSE or QUANTIZE. Now you have the possibility to quantize or transpose just a section of the music on a track. With PUSH TRACK you can move track forward or backward (alters position of MIDI EVENTS). All BARCOUNTER and POSITION values in EDIT MODE, COPY TRACK, KEEP and DELETE are local, that is, if in SONG MODE a pattern starts at BAR 33 and you want to delete an event there, it is timestamped inside the PATTERN as BAR 1 (if in doubt, move over to PATTERN MODE). With UNDO you can regret any action performed on a track and you will see an explanation mark in the TRACK NAME area to remind you (does not work if more than one track is involved). In OVERALL SETTINGS you can prevent midi channels from being transposed in SONG MODE, midi thru off channel, choose events which will be filtered out (will not be recorded or output via midi thru) and choose midi channel, note number and velocity for midi click note. YOUR FIRST RECORDING Connect MIDI OUT from your synthesizer to the computers MIDI IN and MIDI OUT from the computer to the synthesizers MIDI IN. If you have more synths, connect them via MIDI THRU from your synthesizer. If possible, set your synth to LOCAL OFF (this will disconnect the keyboard from the sound source in your synth). If you have an old synth without LOCAL ON/OFF (old DX-7's), you must disable MIDI THRU on the channel this synth recieves on or else you will feed the synth with double events. Click on OVERALL SETTINGS in the OPTIONS MENU and you can disable MIDI THRU on a desired channel. Here you also have the possibility the FILTER out events which will not be recorded or sent back via MIDI THRU. Set all your synthesizers to different midi channels and to OMNI OFF (so they only recieve on one midichannel). Now choose a TRACK for recording and an appropriate midi channel. Play on the keyboard and check that you can here something (via MIDI THRU). Changing the TRANSPOSE and VELOCITY values will also affect what you hear via MIDI THRU. As said earlier, regardless what values you have inside the PATTERN box, the events recorded into the computers memory will still be the same! The values you choose here are all REAL TIME ALTERED so you can at any time change them again. Click on RECORD and you will hear a one bar PREECOUNT and you can start the recording. If you want to, the click can be sent out to a drum machine. Enable MIDI CLICK in the FLAGS MENU and choose midi channel and note number in OVERALL SETTINGS. When ready, click on STOP, which will end the recording or click PLAY which will end the recording and immeditely start playing from bar one. If the music is not tight enough, QUANTIZE to desired value. Now you also have the possibility to enter a LOOP value which will loop the track from bar one. LOOP values are quarter notes, so 8 means two bars, 16 means 4 bars and so on. If not satisfied whith the result, click on reord and your previous "take" will be deleted and you are back in the preecount. If you erased the track by misstake, stop the sequenser and click on UNDO and you have the old track back. Continue as before with more tracks and when you are ready with this PATTERN, move over to another one and repeat the process. Now it is time to move over to the ARRANGE LIST and "chain" the patterns together in a desired order. In the ARRANGE LIST you have 32 POSITIONS to enter any of the 16 PATTERNS in any length. Say you have the INTRO in PATTERN 1, VERSE in PATTERN 2, and the CHORUS in PATTERN 3. Enter PATTERN 1 in POSITION 1, scroll to desired LENGTH and do the same with the other PATTERNS. Say you have the first verse in position 2 and the second verse in position 3 and you have a flute melody that you only want to here the second verse. MUTE this track with the ARRANGE LIST MUTES in verse 1 (POSITION 2) and it is muted in this entry. Towards the end of the song you may want to change the key of the CHORUS. Change the transpose value in the arrange list and the whole pattern will be transposed. Since you probably do not want to transpose the drums you have to choose what midi channels should not be affected, do this in OVERALL SETTINGS (disable transpose). If the music don't sound the way you want to, you have a lot of different things available. Wrong notes is easy to delete or alter in EDIT MODE. If you want to delete longer sections, do this in DELETE/KEEP EVENTS. With MODIFY TRACK you can TRANSPOSE, QUANTIZE, change VELOCITY and MIDI CHANNEL on desired sections of the TRACK. MIDI EVENTS MIDI (Musical Instrument Digital Interface) is universal standard that has existed since 1983. It's a serial interface, i.e. all events are transfered after each other. Every event consists of at least a STATUS BYTE telling us what type of event it is. Some events has an extra DATA BYTE, some has two extra data bytes and SYSTEM EXCLUSIVE has any number of data bytes. Since it's serial, when you hit a chord on your keyboard, it's actually a very fast arpeggio. This is also the way a computer works. A computer can only do one thing at any given moment but it does it extremely fast, so to us it appears as many things happens simultanesly. All the following events has a STATUS BYTE that tells us what type of event it is and what channel number it has. The channel number is between 1 and 16 and a synth can "listen" to one of those channels (OMNI MODE OFF) or all (OMNI MODE ON). NOTE ON EVENTS has a status byte and two data bytes. The first data byte tells the note number and the second data byte how hard it was struck (velocity value). NOTE OFF EVENTS works as note on. NOTE ON with a velocity of zero is also interpreted as note off. PROGRAM CHANGE has a status byte and one data byte. The data byte holds the program number. PITCH WHEEL EVENTS has two data bytes where the first one is seldom used and the second one holds value between 0 - 127. 64 is no bend, 0 is maximum downward bend and 127 is maximum upward bend. CHANNEL AFTERTOUCH EVENTS has one data byte for the amount. POLY AFTERTOUCH EVENTS has two data bytes, one for the note number and one for the amount. If your keyboard sends aftertouch, check if the sound you use react to it. If not, it is advisable not to record them, i.e. filter them out. CONTROLLER EVENTS has two data bytes. The first tells the controll number and the second the amount. More about controller events below. CONTROLLER EVENTS Controller events can do a lot of different things. They have a number between 0 and 127. Here is a list of the most common ones. Number Meanning Value 1Modulation wheel0-127 2Breath controll0-127 4Foot controll0-127 5Portamento time0-127 6Data entry0-127 7Volume0-127 8Ballance0-127 10Stereo panning0-127 11Expression0-127 64Sustain0=off/127=on 65Portamento0=off/127=on 66Hold pedal0=off/127=on 67Soft pedal0=off/127=on 96Data increment127 97Data decrement127 122Local On/Off0=off/127=on 123All notes off0 124Omni off0 125Omni on0 126Mono mode on0 + channel 127Poly mode on0 Check your synth manual to see which of thoose the synt responds to and also which one the synth's wheels will transmit. In OVERALL settings you can REMAP any number to a new one. With controller 7 (volume) you can make nice fadings in the music. If your synth don't send out this number, remap the MODULATION WHEEL (controller 1) to VOLUME (controller 7) and you have a nice REAL TIME mixer function (if in RECORD MODE, it will be recorded). Some synths (ROLAND etc.) sends out an ALL NOTES OFF message every time you stop playing a key. You don't need this while sequensing. In OVERALL SETTINGS you can choose two controll number which will be filtered out. In this case choose controll 123. Keyboard shortcuts Qverty keypad: SOLO TRACK "S", SONG MODE/PATTERN MODE "M", EDIT MODE "E", PUSH TRACK "P", SYNC INT/EXT "Y", CYCLE ON/OFF "C", KEEP EVENTS "K", DELETE EVENTS "D", NAME PATTERN "N" and NAME TRACK (ESQ). Choose pattern (1 - 0 is pattern 1-10, shift + 1 - 6 is pattern 11 - 16). Up and down arrows changes track. HELP key resets all controllers etc. DELETE deletes arrange position, INSERT inserts new arrange pos. UNDO, see above. Calculator keypad: RECORD "*", PLAY "0" STOP "Enter", PAUSE/CONTINUE ".", Change ARRANGE LIST POSITION "(" and ")", Increase SONG POSITION "+", decrease "-". Stop key sends all notes off message. That's all there is to it... if you have any questions, comments, problems, suggestions or contributions please write me! To get a complete version of SWEET SIXTEEN and a printed manual, please send a check or money order for $30.00 to: Rolf Nilsson Hantverkaregatan 19 S-21155 Malmoe SWEDEN