Short: Real Time Music Composition Prog Author: AlphA Uploader: Anonymous Type: mus/midi Version: beta Requires: A1200 or better and Some MIDI gear Architecture: m68k-amigaos Distribution: Aminet O n - T h e - F l y Version BETA.4 (release V1.0) Created by David Terrill (AlphA) ŠAlphaWare 1997 ============================================================================ ***** UPDATE (2006) ***** See OTF.cfg for configuration options. ============================================================================ ____________________________________________________________________________ Quick Start Guide The purpose of this document is to help familiarize the user with On-The-Fly and reveal some of its less obvious functions/features. This document has been quickly thrown together. Use it as a guide while getting to know OTF. This software is EM@ILWARE. If you use it, you should send me an email letting me know what you think. If you don't, then you stink! So, consider yourself a beta tester. alphadog303@hotmail.com If you use On-The-Fly to record some trax, I'd really like to hear what you created! ____________________________________________________________________________ Start On-The-Fly. Wait for the "Alphaware" graphic. Assure that your master clock MIDI device is set to transmit a System Real Time (SRT) clock stream. MIDI Time Code (MTC) will not work! ____________________________________________________________________________ Start your master clock MIDI device. Press F2 This is your MASTER CLOCK. Use it to monitor your timing, sync and to adjust shuffle settings. The top row of virtual LEDs should illuminate in sequence, advancing rightward 1 LED per 16th note as they do on classic Roland drum machines. If this is not the case, check your MIDI set-up. The next rows of 4 LEDs correspond with the 4 down beats of a standard 4/4 beat. The round virtual LED also illuminates on each down beats. Finally, the current step is displayed numerically above the area labeled "STEP". When creating patterns with odd time signatures, patterns can shift when returning to 4/4. Clicking the 303, 808, 909 and SAMP buttons next to the "SYNC-" label will shift the associated module back to the original position. E.G, the first STEP# of the module will be on the 1st step of the MASTER CLOCK (has yet to be implemented in some modules). SHUF will delay every other STEP to create a shuffling beat. Select what modules shall have shuffle by the 3, 8, 9 and S buttons to the left. (Independent module shuffle has yet to be implemented. Currently, all modules will shuffle at the same rate). ____________________________________________________________________________ Press F3. Enter some notes by clicking the 303 style keyboard buttons. Entering notes via left clicking will advance the current STEP# as notes are entered. Right click to edit the note values of the current STEP without advancing. OCT. DWN/UP changes the octave of the current note. Enter note length (gate value) by clicking the notation area. Entering note values via left clicking will advance the current STEP# as notes are entered. Right click to edit the note length of the current STEP without advancing. You can also click the note button to cycle through the range of available note lengths. Click the ACC button to toggle the status of ACC (accent) for the current STEP. Click the SLD button to toggle the status of SLD (slide) for the current STEP. NOTE: ACC and SLD control the amount of velocity of the note. This is an effect from the method I used to make my PAIA FatMan mimic Accents and Slides of the classic TB-303. In later versions of OTF, the user will be able associate specific MIDI data with ACC and SLD events. For now: -ACC -SLD = Minimum Velocity -ACC +SLD = Low Velocity +ACC -SLD = High Velocity +ACC +SLD = Maximum Velocity Use the STEP arrows to change the current STEP. Note: you will always be able to access all 16 steps, even if STEPS is set below 16. Left clicking the STEPS area allows you to set the maximum number of steps in the pattern (1-16). This is referred to as "last step" on classic Roland style drum machines. Right clicking will allow you to set the maximum number of steps in the pattern (4-16) while limiting your options to 4, 8 and 16 (and 32 for module 9). This is great for changing time signatures in real time while avoiding pattern shifting as an effect of the situation where the MASTR CLOCK arrives at the "last step" before you have finished setting your intended value. The SHIFT arrows shift your pattern by 1 16th note. Notes shifted beyond step 16 and before step 1 will wrap to the opposite end of the pattern. All pattern data is retained while shifting. Left clicking the PIT button will fill your pattern with random pitch values. Right clicking will fill your pattern with the pitch value of the current STEP. Left clicking the OCT button will fill your pattern with random octave values. Right clicking will fill your pattern with the octave value of the current STEP. Left clicking the GAT button will fill your pattern with random note (gate) length. Right clicking will fill your pattern with the note length of the current STEP. Left clicking the ACC button will populate your pattern with accents appearing at random positions. Right clicking will fill your pattern with the ACC setting of the current STEP. Left clicking the SLD button will populate your pattern with slides appearing at random positions. Right clicking will fill your pattern with the SLD setting of the current STEP. CLEAR will fill the pattern with the lowest note value (C) of the lower octave. All note lengths will be set to rests, the STEP# will return to 1 and the STEPS (pattern length) will be set to 16. The 4 green buttons located to the right of the CLEAR button represent the 4 available pattern banks. These 4 memory banks are stored in RAM for instant access! The illuminated bank represents your current pattern. Right clicking allows you to instantly switch between pattern banks in real time. Left clicking will make the pattern wait until the 1st down beat before making the change. Once clicked with the right mouse button, the selected bank color will change to red until STEP 1 of the MASTER CLOCK is reached. Then, the red pattern bank will become the current pattern bank and appear bright green in color. You can also use the 4 keys along the top of the numeric key pad "(", ")", "/", and "*" to change the current pattern bank. The keys are oriented with the graphical positions of the pattern banks. Dual clicking (clicking with both mouse buttons) will allow you to copy patterns. Dual click on a pattern bank. Your curser becomes a red pattern bank icon representing the copied bank. Clicking on any bank will copy the pattern bank to the selected destination. You can select your destination bank with the right mouse button to avoid immediately changing the current pattern to the selected bank. In addition to the 4 pattern banks stored in RAM, you may load and save additional patterns to and from 10 (per module) Disk Banks. Holding the shift key while pressing numbers 1 through 0 along the top portion of the keyboard will save the current pattern to the Disk Bank. Pressing the keys 1-0 (without holding Shift key) will load the Disk Bank to the current pattern, provided pattern data exists for the selected Disk Bank. Load times may vary depending on the speed of your hard drive. Using Disk Banks, while composing, is not recommended for floppy users. Later versions of On-The-Fly will utilize a manual save feature which will allow the user to store the 10 pattern banks in memory until the user either decides to do a disk save or exits the program. Left clicking MUTE will immediately toggle the module's mute status. When muted, the transmission of MIDI data from the module will be halted. The MUTE LED will flash while a module is muted. Right clicking will make the mute wait until the 1st down beat before toggling mute status. Once clicked using the right mouse button, the mute LED will change to solid red until STEP 1 of the MASTER CLOCK is reached. Then, the mute status will toggle. In addition, you can use the numeric keypad to mute and unmute modules. Key numbers relate to module numbers. E.G, Numeric key 3 will toggle the mute status of module 3. ____________________________________________________________________________ Press F8 This is one of two drum pattern generators. The knob controls the ACC (accent) level. While holding the curser over the knob, press and hold the left mouse button to decrease the value and the right mouse button to increases it. The ACC level will be displayed to the right. Select your drum instrument by left clicking the instrument abbreviations in the lower left area. The full name will be displayed in the display area. You may now enter 16th notes by left clicking the associated pattern buttons. You may also fill an area with 16th notes by holding the left mouse button while dragging the mouse over the pattern buttons. This allows you to quickly populate the pattern area while avoiding unnecessary clicking. Alternately, you can use the right mouse button in the same manner to erase notes. There are other ways to add notes to the pattern. You can enter notes in real time by tapping the Enter keys. This is the same as entering notes in "Tap Mode" on classic Roland drum machines. You can use the Del key to remove notes. You can either tap Del to remove notes one at a time, or hold Del and notes will be removed as the pattern plays. This is the same as using the Clear button on classic Roland drum machines. Just above the pattern area you will notice 4 buttons. Clicking the thin up symbol will enter the current instrument to all for up beats of the pattern. This is typically be used for Open HiHats. The down arrow represents the down beat. Select the Bass Drum then click the down arrow for a quick 4 on the floor dance beat. The 2468 button will add the current instrument to the even down beats. Try it with the Snare Drum. The ALL button will fill the pattern with the selected instrument. Right clicking an instrument's abbreviation will remove all occurrences of that instrument from the pattern. While the curser is over the instrument abbreviation, hold down the left mouse button. While continuing to hold the left mouse button, quickly tap the right mouse button. This will add the current instrument to the current pattern at random positions. You may continue to hold the left mouse button and tap the right mouse button to continue adding random notes until all 16 steps are full. Remember, if you don't like what you get, releasing the left mouse button and right clicking will quickly remove all occurrences of the current instrument from the pattern. CLEAR erases all instrument data for the current pattern. Accent data will not be cleared. Use the STEPS area, MUTE, and Pattern Banks just as you did in module 3. ____________________________________________________________________________ Module 9 functions as module 8 does with the 16 note step limit extended to 32. ____________________________________________________________________________ Press F4 At this point, you may want to press the previous F-keys to hide other modules and free up screen space. This is the sample player. You should be familiar with the way OTF works, so I won't go in to a lot of detail about entering notes, banks, mute... etc. You have 24 available samples separated into 3 groups BREAK, VOCAL, MISC. You may use only 1 sample group at a time. Notes are entered in the same manner as the drum modules. Moving the mouse over illuminated LEDs in the pattern area will display information about the samples in the pattern. You have 4 voices of polyphony to work with. 1 and 4 are right channel. 2 and 3 are left. For mono output, only use one of the Amiga's audio outputs, leaving the unused RCA socket open. The Amiga will rout all audio to the socket in use. Channels will produce no sound until the associated PLAY buttons have been activated (button LED to the right of the channel must be illuminated). Samples A-H can be independently tuned via the FREQ knob. Samples will only be affected by the FREQ knob if the LED to the left of the knob has been activated for that sample. The orange rest will mute the channel's sample at the point where the rest is entered. The channel will remain silent until the next sample is played. Basically, rests cut samples. (rests have yet to be implemented) To the right of the rest is a loop button which causes samples to loop, once played. Loop lengths depend on sample lengths and are not synched with anything. ____________________________________________________________________________ Press F5 This is your virtual LFO. Select between Pulse, Triangle, random (noise) and Swooth (saw tooth, ramp). Use the knobs to set the RATE of the LFO and the amount of modulation. Click the up and down arrow buttons to set CHAN (MIDI Channel) and CTRL# (MIDI Controller) numbers. Use what normally represent pattern banks to switch between CHAN and CTRL numbers. The LFO can be applied to 4 MIDI controllers stimulatingly. Clear sets CHAN and CTRL to 0. Mute stops module data transmission. Later versions will include multiple, mixable LFOs and have the ability to reference the mod value on MIDI controllers and use that value as a base before adding modulation. For now, the base is mid. ____________________________________________________________________________ When finished, use the Esc key to exit On-The-Fly. ____________________________________________________________________________ Bugs: (See source code notes.) Email bugs to alphadog303@hotmail.com ____________________________________________________________________________ Pattern Layering: In addition to loading/saving standard drum patterns to the 10 disk banks, you may also do "Pattern Layering" (sounds like a good name for it). If your drum machine has more instruments available than the module controlling it, or if you would like to make a single pattern that will control multiple MIDI instruments, you can do the following: Create a drum pattern. Hold the left Shift key and press a disk bank number (keys 1-0 along the top of your keyboard) to save that pattern to disk. Exit OTF (you may want to save a copy of OTF.cfg at this point) and open OTF.cfg. Change the MIDI channel and/or the instrument numbers so they are associated with the MIDI instruments you wish to control on the next layer. Save OTF.cfg and start OTF again. Test your new settings and make sure the module is controlling your new instruments correctly. Now reload the pattern you previously saved to the disk bank. Notice OTF starts playing the pattern just as it did before you edited OTF.cfg. Drum patterns are not associated with OTF.cfg. Therefore, you can edit OTF.cfg without affecting your existing disk patterns. Here's where the cool stuff begins. Notice, since editing OTF.cfg, the virtual LED's no longer represent the pattern data loaded from the disk bank (unless you did not change the MIDI channel or instrument numbers in OTF.cfg). That pattern is on the first layer and you are now on the second. Begin adding to the drum pattern. Your original pattern will not be affected by the changes you make (unless you CLEAR the pattern). You are actually layering new MIDI data on top of the old data. Once you are satisfied with your new layered pattern, save your pattern to a Disk Bank. All of the pattern layers will be saved. At this point, you can edit OTF.cfg again and add another layer to what you've created this far. Or, you can even edit prior layers again by using the OTF.cfg settings you used while creating them. You may continue adding/editing additional layers as desired. ____________________________________________________________________________ Defaults: SEE OTF.cfg and/or run OTF_Validator ____________________________________________________________________________ Notes: This version of On-The-Fly has been tested with an unmodified Amiga A1200 without any memory or CPU expansions. On-The-Fly will fit on and run from a standard 880k Amiga floppy. I may make a bootable version. However, running from hard drive is highly recommended. If your Amiga does not have enough memory to run On-The-Fly, try removing the "Samples" directory. This will obviously disable the sample module in exchange for more free memory. OTF will detect the absence of samples and disable the sample module. You may also open OTF.cfg and change the USE SAMPLES setting to 0. In OTF.cfg you may change both Instrument Numbers and Names (up to 13 characters). For example, if you wanted module 8's Bass drum to be named "Booooom! And have it control MIDI instrument 24, you can change the line: 36=Bass Drum to this: 24=Booooom! Din SYNC via the "2. GAME" port has been removed in this version. On-The-Fly does not utilize the AGA chipset. This assures compatibility with older Amigas. On-The-Fly uses a 320 X 200, 32 Color, LoRes screen resolution. This means you can use it with very small monitors and still be able to see what you're doing. Squinting at small hires details on large goofy monitors, while performing live, just doesn't look cool... unless you're down with nerding out retro style. Then, anything goes. This program has proven to be enjoyable and addictive to even those who haven't a clue about electronic music. I'm not sure if that is a good thing or a bad thing. When using the enter key to tap, delete key to clear, shift key and/or disk bank keys to load/save and the numeric keypad to change patterns, the actions will be applied to the module in use. The module is use is determined by the module the mouse pointer is in. If you are using the keyboard keys to perform a lot of functions on a particular module and don't want to worry that the module may switch accidentally (for example: you are editing module 8 and you bump the mouse and the pointer moves to module 9 therefore causing you to make modifications to the wrong module), you can turn on Caps Lock. Caps Lock will not allow the current module to change, even if you use the F keys to hide the module. Clicking other modules will not cause any actions. The sample module will be completely revamped in later versions of On-The-Fly. I'm not big on samples; therefore, it hasn't been a priority. For now, you're stuck with the samples I gave you. :P I will create a sample builder in the future. The sample builder will never be a part of the On-The-Fly core. Later versions will allow the LFO to modulate sample frequency. On-The-Fly is strictly designed for creating improvised compositions on the fly, in real time. It is not meant for prepared or rehearsed performances. For this reason, I almost excluded saving ability. However, I decided it would be convent to recall some of my favorite patterns and save them as they develop. Disk saves are stored as separate files outside of On-The-Fly. Therefore, if you have patterns that you whish to keep safe, simply copy them from the patts drawer to another location. Alternately, you can simply save all of your patterns by copying the "patts" drawer to another location on your hard drive. This also makes it possible to share patterns with other On-The-Fly users (provided that I ever release this thing). Later versions of On-The-Fly will allow the user to choose, add and remove modules and put them in any order. The user will be able to add and remove modules without affecting the core program. I may even open up module creation to the public. This project has been abandoned due to my acquisition of hardware. I may release this as freeware, but I really don't plan to spend any more time on it. On-The-Fly has performed its function and served its purpose. -David Terrill (AlphA) 1997 BigMech.com