*************************************************************************** ** ** ** MED - music editor, İ 1989 - 1991 Teijo Kinnunen ** ** ** ** Instructions for MED V3.2 ** ** ** *************************************************************************** Welcome to use the MED music editor!!! MED is an all-purpose music editor that can be used to compose music for demos, games etc., and works as a stand-alone program as well. First few words about editing. If you've used any Tracker, you probably know these things. MED can display "standard" notes, but often you'll use the "Tracker-style" editing, in which the music is represented by note names and numbers. For example: 01 C-2 1000 --- 0000 E-5 K210 --- 0F20 02 D-2 1000 E#1 4000 --- 0000 --- 0000 03 --- 0000 --- 0000 --- 0000 --- 0000 In this form, the music is quite fast and handy to edit when you get used to it, but it's quite useless when printed (nobody could play it). The song consists of blocks, every block contains 1 - 256 lines. There can be up to 100 blocks and they can be played in any order and any number of times. In addition, there can be up to 99 songs in memory at once (sharing the set of up to 63 instruments). The user interface of MED is divided in ten "panels", each one containing different gadgets. Only one of these panels is visible on the screen. You can select the displayed panel with ten gadgets which are always visible. There are lots of keyboard shortcuts. After you've learned the use of the program, you probably want to learn these shortcuts because they make the program much more powerful to use. There are also some things which are available only by using the keyboard, so you should read the list of keyboard shortcuts at the end of this manual. There are also four different big displays. Normally the notes are displayed in this area. Optionally you can choose the synthsound editor, sample editor or the sample list to be displayed on this area. Entering the notes ================== Notes are entered with Amiga's keyboard (entering with MIDI-keyboard is also possible). The keys are ordered in piano style: 2 3 5 6 7 9 0 ´ \ Q W E R T Y U I O P Ċ ] S D G H J L Ö Z X C V B N M , . / This way you can enter about 2,5 octaves of the 5,2 octaves available. Keys F1 - F4 can be used to switch the octaves. The lower row of keys (Z - /) is the lower octave, Q - U is the higher octave and keys I - \ are part of even higher octave. If you have an instrument loaded, you can hear the sound when you press the keys. If you want to enter notes onto the block, you must turn on editing (Esc). DEL-key is used to enter the pause (---). The cursor can be moved with the cursor keys. Blocks and the playing sequence =============================== When you compose a song, you do it block-by-block. Fill a block with notes, create new block, fill it with notes... In order to get the blocks played in correct order, you must also create the playing sequence list. It is just a list of block numbers, which are then played in that order, from beginning to end. This way you can use the same block many times in your song. When the last block from the list has been played, the song will start again from the beginning (it's also possible to stop the playing). The maximum length of the playing sequence is 256 numbers. Status bar ========== Between the panel and the block display is the status bar, which displays some "strategic" information which is always good to be visible. Song/# of songs | Song selection gadgets | / \ | +-------+-----+--+-+--+----+--------+--+------------------------+-+-+-----+ |001/003|00/02|12|E|SP|CHRD|::::::::|01|AnalogString |<|>|01/02| +-------+-----+--+-+--+----+--------+--+------------------------+-+-+-----+ | | | | | | | | | Playseq-ptr | | | | | Tracks Instr # Instrument name | | | | Chord mode on/off Block # | | Insert empty space between notes | | Keyboard octaves Editing on Playseq-ptr: The first number is the current playing sequence number (starting from 1) and the second is the number of playing sequence numbers in the song. The 1st number is meaningful when you're playing the song or editing the playseq list. Block #: The first number is the number of the current block (starting from 0) and the 2nd is the number of the last block. It does not tell how many blocks there are, but if you add 1 to it, it does. In the example there are 3 blocks, and the first is currently displayed. Keyboard octaves: This number tells you which octaves are currently in use when you play the Amiga keyboard. The first number is the octave number of the lower row of keys and the 2nd is the higher. It can be changed with F1 - F4. Editing on: This is a quite important option. When the editing is off, you can't insert notes or numbers to the song. To turn it on/off press Esc or click the "E" with mouse. When the "E" is highlighted, editing is on. SP: This switch activates the extra space between the notes you enter. It is useful when you're entering slow pieces of music. You don't have to hit DEL so often. CHRD: This turns the chord entering mode on/off. Tracks: It's possible to switch tracks on/off during editing. The 16 points represent the 16 possible tracks. When the point is red (default) the track is turned on. When it's white, then this track is turned off. Instr #: The number of the current instrument. The maximum number of instruments is 63. The instruments are numbered 01 - 1V (01 - 09, 0A - 0V, 10 - 19, 1A - 1V). Instrument name: The name of the current instrument. Song handling gadgets are discussed below. You can change the instrument number, current block and current playseq ptr by clicking on the number you want to change with the mouse. Left button increases, right button decreases. This is the fastest way to advance playseq ptr for example by 100: click the 100's number with LMB. Instruments =========== As noted above, there can be up to 63 instruments in one song. There are currently four types of instruments: samples, synthsounds, hybrid sounds and MIDI instruments. Samples: These are the instruments which are played through four Amiga audio channels. They can be played only within tracks 0 - 3. MED can load raw samples and IFF 8SVX 1, 3 and 5-octave samples. It means that you can load practically any sample to MED and use it in your songs. Note that raw samples and 1-octave 8SVX samples can use only octaves 1 - 3. Octaves 4 and 5 play from octave 3. Synthsounds: These are a special instruments, that allow you to construct a sound from simple pieces of waveforms, and controlling things like waveform #, volume, pitch, arpeggio and vibrato using a simple "programming language". Synthsounds sound usually quite simple (C-64 style), but they don't take much memory, either. Hybrid sounds: This is a normal sample, but it can be controlled using the same "programming language" as synthsounds. MIDI instruments: These are not actually instruments. They are just few settings which cause the notes played with that instrument to be sent through MIDI-interface. They don't take memory like the samples. When you want some instrument to be a MIDI-instrument, you must set the MIDI channel which is used when playing notes/effects. You can also set the preset value for the instrument. Then the instrument is automatically played using that preset number of your MIDI-device (synthesizer, keyboard...). You can also set the preset number to 0. Then the preset which is already set in that channel is used. Sample loading ============== Because many people have hundreds/thousands of samples, spread over many different disks/directories, the samples have to be organized some way. MED handles the organization using a file "MED_paths" (path file). It contains the name of the directory, names of the samples in that directory, name of another directory...and so on. This way MED knows what samples each of your sample disks/directories contain and can load samples from correct disks. The path file is loaded when starting up MED and it must be located in the current directory or S:-directory. This file can be produced with text editor, but it is easier to do it with MED. Detailed instructions later in this manual. Note ==== The note and the numbers: command | D # 3 5 1 0 F | | \ | note | \| instrument # data byte (more information about command) "note" is the note to be played (or "---" for no note) "instrument #" is the number of the instrument (01 - 1V). The leading zero is displayed as a space. The number can also be 0. It means that the note is played with same instrument number and with same volume as previous note in that track. "command" is the number of command/effect to play. If there are no effect or commands, command nibble and data byte are zero. "data byte" gives more information about command/effect to the player. Effects/commands are documented later... The numbers can be changed simply with positioning the cursor over the number to be changed and typing the new number. If you have to change the 5th number (between the note and the other numbers: C-212000), which means that sample 10 - 1V is used, position the cursor over the first number that's always visible (the second '2' in above example), hold Shift and enter the 1st number. For example, to change instr. number to 1E, press Shift-E. Because Shift-0 - 9 have other use, press Amiga-Shift-0 - 9 to change the instr. number to 10 - 19. This is not very handy, but because there won't probably be a lot of songs which have over 31 instruments, it doesn't matter very much. Prompts ======= MED often (especially during file operations) wants to ask you something. For this purpose MED displays a line of text on the title bar e.g. Remap instruments (Y/N)? You always answer to these questions with keyboard, in this case you would press 'Y' for a positive, and 'N' for a negative answer. If you want to cancel the operation (loading, saving...), you can usually press 'Esc' to do that. Multiple songs ============== MED can have more than one song in memory at a time. However, all songs share the same set of instruments. This allows you to, for example, compose different songs for each level of a game, without having to load or keep the same instrument in memory more than once. On the status bar there are two gadgets which control this feature (see the description of the status bar above). If you click the right gadget (assuming you've just booted MED), MED will request "Add new song (Y/N)?". If you answer 'Y', a new song will be created. You can now move from song 1 to song 2 with these gadgets. If you want to delete the last song, press the left gadget while holding the Shift key. Again, MED will request you before proceeding. Note: If you want to add a new song without the prompt, you can hold Shift while clicking the right song selection gadget. MED can automatically remap instruments while loading. This feature saves you from a lot of work. For example, you have one song in memory, and you add another (by clicking the right song selection gadget). If you now load a second song from disk, MED will ask: "Remap instrument (Y/N)?". If you reply 'N', all previous instruments will be lost and the instruments of the new song will be loaded. But if you reply 'Y', some magic will happen. First, the instruments of the new song will be loaded to empty slots, instruments already in memory will be preserved. Second, the instrument numbers of the loaded song will be remapped so that they point to new places of the instruments. Sometimes, when there are unused instruments in memory, MED will ask if you want to flush them. This can happen when you Clear the song, or load a new song (replacing another). You can also save all the songs as a single multi-module. You have to select "Module" in the save format requester, and answer 'N' at "Save only current song" prompt. If you select 'Y', only the current song is saved (unused instruments won't be saved). To get rid of all the songs/instruments, click "Clear all" on Misc panel. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= *************************************************************************** * * * +-------------------------------------------------------------------+ * * | Summary of the features | * * +-------------------------------------------------------------------+ * * * *************************************************************************** =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +=========================================================+ | Files +=========================================================+ This panel contains the tools you need when handling files. You can save and load with many different formats and also delete them. First of all, there's a file requester. There should be no difficulties with using it. It is simple, but it works. Directory names are printed in white and files in black. There are three gadgets that allow you to choose what is displayed in the requester. If the Currdir is selected, files in the current directory are displayed. Devices lists all devices e.g. DF0:, DF1:, DH0: etc.. Assign lists all assigned directories (e.g. C:, S:, FONTS:). You can also load a directory by typing its name on the Dir-gadget (and pressing Return). The File-gadget contains the filename. If you know already the filename, you can ignore the file requester and type the filename (with correct path from the startup directory). ------- Load Song: This is the gadget used to load songs. Loads songs with following formats: MED V1.12 - V3.20, OctaMED V1.00 - V2.00 (only 4 channels can be played) MMD0 (MED modules), SoundFX/old SoundTrackers. The samples are automatically loaded after the song. WARNING: Don't try to load anything as a song!!! If MED can't identify the file, it is loaded as an old SoundTracker file. If it is an old SoundTracker file, it should load well, but if it isn't, you may meet the GURU!!!! MED can't load packed SoundTracker/NoiseTracker files. To import songs, save them as modules, then load into MED with "ST MOD". MED also recognizes Noise/Protracker modules and prompts if you want to load it as a such (usually you should answer 'Y'). Instr: Loads the sample. The title bar will display the length of the sample if it loaded ok. This will load synthsounds and hybridsounds as well. ST MOD: With this gadget you can load 31-instrument Sound/Noise/Pro- tracker modules. There are some differences between MED's and Tracker's commands, they're converted automatically. ------- Save Song: When you choose this one, a requester appears and asks you to select the save format. The save formats are described a couple of lines later. There's also "Icon" gadget. When it is selected, MED will create an icon file when saving Song or Sng+samples. If you don't need the icon, turn it off to save some disk space. Instr: Saves the current sample/synthsound/hybrid sound. If you want to save samples in IFF-format, set the switch in sample editor. Delete: Deletes the file. MED requests if you really want to delete it. ======= Save formats There are several different file formats available: Song This is the normal song, which you will probably use most often. The song is saved using a highly-compressing file format. The samples are not saved. They are loaded from your instrument disk(s) using the path list (or absolute paths if instrument names are e.g. ST-01:Ringpiano). Sng+samples Saves the song like the previous one, but also attaches the samples to the end of the file. The result is one big file which contains everything needed. This format makes usually a bit shorter files than Module, but I recommend that you now save your songs as a module, at least if they'll be distributed. Module (MMD0) This is the most flexible file format, which allows you to save all song information, like Sng+samples, but this format is most likely understood by external programs, because Sng+samples is quite tricky to load and use. Also, multiple songs can be saved in one module. In general, files saved in this format are longer than Sng+samples files. When you save a module, you'll be asked "Save instrument names etc". If you answer 'Y', all data is saved. Otherwise only the data required for playing the song is saved. The copyright/annotation text is always saved. ST-Module If you want to export music to Sound/Noise/Protracker, you can use this gadget to save the song as a module. NOTE: Because there are many things in MED that are not supported by Trackers, some information may be lost: - samples 10 - 1V won't work - only 4 tracks saved, no MIDI support - blocks longer than 64 lines will be truncated to 64 lines - no color or pointer jump information - no relative volume settings, no play/instrument transpose - no hold/decay - no support for synthsound/hybrid sounds NOTE 2: The resulted file will be a 31-instrument module. If you try to use it with programs supporting only old modules, it'll most likely fail. +=========================================================+ | Play +=========================================================+ This is a very important panel. Here you can control the playing, set the playback speed (tempo), handle the playseq list... Beginning from the left, there is a tall box which contains numbers "00" if there's no song in memory. This is a window to the playseq list. As mentioned above, the playseq list is the list of blocks to be played. This window show 5 numbers of the list at a time. There are gadgets on the right side of the box which scroll the list up/down/beginning/end. The keyboard equivalent is to hold down the Ctrl-key and then press number 8 from numeric keypad to scroll up, 2 to scroll down, 7 (home) to the beginning, 1 (end) to the end. On the right side of the scroll gadgets are the following gadgets: + - Ins Del Ins (with small arrow pointing down) + increases the current playseq number (Ctrl - keypad 6) - decreases the playseq number (Ctrl - keypad 4) Ins inserts a new sequence number (zero) under the cursor (Ctrl - keypad 0 (Ins)) Del deletes the current sequence number (Ctrl - keypad . (Del)) Ins (w/arrow) inserts a new sequence number, the new number will be the number of current block (Ctrl - keypad 5) ------- Controlling the playing Play song starts playing the song from the beginning. Continue song starts playing from the current playseq entry and cursor pos. Play block plays the current block (starts from the beginning). "D" (next to Play Block) starts playing block when you enter a note (editing must be on). Continue block starts playing the current block from the cursor position. Stop playing stops playing the song. You can also use it to kill the notes played from the Amiga/MIDI keyboard. The shortcuts of these commands: ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Stop playing press just Space Play song press Space with Alt+Shift held down Continue song press Space with Shift down Continue block press Space with Alt held down Play block no shortcut, sorry. ------- Tempo (playing speed) To understand this completely, you need to know some technical aspects. MED uses the CIAB timers for timing. They give "timing pulses" that trigger the MED's player interrupt. On each timing pulse effects are handled (e.g. commands 1,2,3,4,5,D, hold/decay, synthsounds), but new note is usually not played on each pulse. The time between timing pulses can be changed (primary tempo). The new note is usually played on every 6th pulse, but this can be changed too (secondary tempo), for example, if new note was played on every 3th pulse, the playing speed would be twice as fast. This doesn't affect the speed of effects. Graphically: pulse \ PLAY NOTE the time between pulses can be changed (primary tempo) pulse / DO EFFECTS \ \ pulse DO EFFECTS \ The number of pulses between / notes can be changed (4 in this example). pulse DO EFFECTS / This is the secondary tempo. / pulse PLAY NOTE ... The left proportional gadget controls the primary tempo. It can be 1 - 240. The bigger the number, the faster the speed. Note that tempos 1 - 10 are Tracker-compatible (but obsolete, because secondary tempo can be used now). The right one controls the secondary tempo (default = 6). It can be 1 - 20 (note: hexadecimal!!). The lower, the faster. This allows quite rough setting of playing speed (it's the way NoiseTracker etc. set their tempos). In MIDI use (especially for syncing), you should leave this to 6 and use the primary tempo instead. LP-Filter with this gadget you can turn on/off the audio filter built into your Amiga. When this gadget is selected and the power-LED is bright, the filter is on. If the LED is dim, the filter is off. You probably want to keep it off. The state of this switch will be saved with songs. NOTE: With Amiga 1000's, it's not possible to turn off the filter without modifications to the computer. Please keep the filter off. E1, E2, E3 If you've played something with MED, you have found the three "equalizers" (in fact, they are not equalizers, but I'll use this word, because many others do so too...) E1 turns off/on the red bars at the bottom of the screen (PAL machines only). E2 turns off/on the four colorful sprites. E3 turns off/on the signal "oscilloscope" displays. These all are turned off to save processor time when you click the right mouse button to show the title bar, but if you want to disable something, it probably is E3. The signal display eats lots of the processor time (on standard 68000). Because of that, the display is turned off during disk access to speed loading/saving. You may want to keep E3 disabled all the time. STS Normally effects are done on every timing pulse (see above). When this switch is on, the effects are NOT done on the first pulse (when the note is played). This is the way the Trackers do that, and this switch is for compatibility only. V: Hex/Dec This is another compability switch. While the data bytes of the commands are usually hex numbers, it's possible to use the volume-command with hex or decimal argument. When Hex is selected, the acceptable volumes are 00 - 40. When Dec is selected, the volume can be 00 - 64. If you are not a programmer (and even if you are), it may be easier to think the numbers in decimal. It is the default. The state of this switch will be saved with songs. You can easily convert all volume commands from decimal to hex and vice versa. If Dec is selected and you click Hex while holding the Shift key down, automatic conversion is done (works on the same way to the opposite direction too). I recommend using Hex volumes whenever possible. It is slightly faster (not noticeably, but faster anyway). Channels 4 5 6 7 8 These are the channel configuration selection gadgets of OctaMED. On MED, they just don't work. ------- Panic stop It's possible to make a song, which takes all of the processor time. It will therefore be impossible to stop it. This shouldn't happen accidentally, but if you fill a block with notes and command FF3 and set tempo to 240, you'll get the idea. To stop playing in this case, hold both mouse buttons down about 5 - 6 seconds. +=========================================================+ | Instr +=========================================================+ Here you can load samples and alter some characteristics of them. First I should note out some important actions which are available on the keyboard: Shift-Cursor Left/Right = select previous/next sample Shift-Alt-Cursor L/R = 16 samples forward/backwards Amiga-I = activate sample name gadget Shift-Amiga-I = clear and activate sample name gadget Amiga-R = activate repeat gadget Amiga-J = jump on/off At the top left corner of this panel is the sample number (01 - 1V) followed by the sample name gadget followed by the length of current sample in bytes ("-" if no sample loaded). To load a sample, you can write the name of it in the string gadget, then click "^ Load Sample ^" (or just press Return). Above the Load Sample gadget are gadgets that select first, previous, next or last sample. L.U. (Last Used) selects the last sample that is in memory. On the left side of them are two gadgets ("Jump", "Flush"). "Jump" causes jumping when this instrument is played. "Flush" removes this instrument. It frees the memory used by it (handy when you're very low on memory) and clears all the values. Jumpings will be saved with songs. "Transpose" is one of the new features of V2.10. It works like "Play transpose" but only for this instrument. So, if "Transpose" is -2, for example, then this instrument is played two halfsteps lower. Repeat means that when you play a note with some instrument, the note will play forever, until you play a new note. A picture tells more than 1000 words: the beginning repeat start offset the end v v v Sample: | This part is played only once | This part is looped forever | | \__________repeat_______________/ \________repeat length______/ "Repeat" is the length of the part which is played only once (in bytes). "Repeat length" is the length of the part which is played forever (also in bytes). When you load IFF-instruments, these values are automatically loaded. They can be also set in path file, so that when you load a sample, you will also get the repeat values. Gadget REP/BEG is the repeat start offset, REP/LEN is the length. If the repeat length is lower than 4, no repeat will occur. The big proportional gadget controls the default volume of the current instrument: 64 = maximum, 0 = silent. It's displayed in both hex and decimal. ------- Hld/Dec (Hold/Decay) (again a thing, that is difficult to explain...) With Hold, you can set the exact duration of the note (in timing pulses). The note is then turned off (if decay is 0) or decay is started. In this example, I assume that the secondary tempo is 6 (one line is one timing pulse) 1. no hold 0 PLAY+fx C-2 1000 <= play note 1 fx 2 fx 3 fx 4 fx 5 fx 0 PLAY+fx D-3 1000 <= stop previous and play new 1 fx ... 2. with hold set to '2' 0 PLAY+fx C-2 1000 <= play note 1 fx 2 STOP+fx <= stop it 3 fx 4 fx (silence here) 5 fx 0 PLAY+fx D-3 1000 <= play new note In example 1, (without hold) you can set the note duration only roughly (accuracy of 6 timing pulses). In example 2, the note duration is only two timing pulses (because hold = 2). So, this allows a powerful definition of note length, but it can't be used with long notes, because the note stops immediately?? Wrong!! Look at this: 000 C-2 1000 / line# pulse# action 001 -|- 1000 / 003 0 continue note... 002 -|- 1000 / 003 1 continue note... 003 -|- 1000 => ZOOMED => 003 2 STOP NOTE 004 --- 0000 \ 003 3 (silence) 005 D-3 1000 \ 003 4 (silence) ... So, the keep holding -symbol (-|-) allows you to make the note longer. The keep holding -symbol can be entered by clearing the note and setting the instrument number only, or easier: by pressing Return. If the decay is 0, the note is turned off immediately after the stopping point. You can set the decay to happen as well (1 = slowest). Decay doesn't work with MIDI-instruments. If you're using synthsounds or hybrid sounds, see Synthsounds.doc, because the decay is handled quite differently with them. The hold/decay is a quite useful feature, so I recommend you learn to use it!! (Thanks to ZAP for suggesting me this feature!!) +=========================================================+ | Block +=========================================================+ This panel contains most of the block handling things and the copy operations. Trk: Cut Copy Paste Swap These gadgets are used to cut/copy/paste tracks. Swap swaps the contents of the copy buffer and current track. The keyboard shortcuts for Cut/Copy/Paste are: Amiga-X, Amiga-C, Amiga-V Blk: Cut Copy Paste Swap These work just like the previous, they just affect the entire block. The keyboard shortcuts are also just like the previous except hold down the Shift key too (Amiga-Shift-X...). Del buff When you don't need the contents of the buffer any more, you can click this gadget to free the memory allocated for the buffer. It's useful when you're very low on memory. The buffer is freed automatically when you exit, so you may not need this gadget at all. Then there are the block commands. Trks: 4 8 12 16 You can select how many tracks you want this block to have. Note that tracks 4 - F can be used only with MIDI devices. Note also that when you decrease the number of tracks, the higher tracks will be lost (no Are you sure? requesters). Lines: 64 < > Ğ ğ These gadgets are used for selecting the number of lines in this block. Ğ ğ gadgets increase/decrease the number by 10, < > gadget by 1. The preferred way is to write the number directly into the string gadget (less memory fragmentation). 1 2 3 4 8 16 C It may be helpful for easier positioning of notes to be able to "mark" lines some way (especially if the block is long). You can make some lines appear with reversed colors, if you want. 1 highlight every line, 2 highlights every other line, 3 high- lights every third line and so on. C clears all highlighting from this block. You can also mark individual lines with TAB-key. The highlighting can be removed by highlighting the line(s) again. The highlightings are saved with songs. New block This gadget creates a new block after the last block. The new block will have the same number of tracks and lines as the current block. DEF This is the same as 'New block' except that the block length is always set to 64 and the number of tracks to four (eight, if you're in 5 - 8 channel mode). New here Creates a new block here, shifts all following blocks forward. The playseq numbers are corrected so that the song won't change. DEF Uses default length/number of tracks, see DEF definition above. Del last Deletes the last block (no warning messages, be careful). Del this Deletes the current block. Playseq numbers corrected. Split Splits the current block so that the current line will be the first line of the next block. Join Joins this block and the following block together. Ins.L. Inserts an empty line under the cursor. The block length is increased by one and the notes are shifted one step forward. Del.L. Deletes the current line. Block length is decreased and the lines are shifted backwards. Ins.Trk Inserts a new track. The subsequent tracks are shifted one step to right, and the rightmost track is lost. Del.Trk Deletes current track, and the subsequent tracks are shifted to left one step. Expand When you have created a nice-sounding block, but you would like to include e.g. some fast rhythm patterns, but you notice that the block plays too slowly for the patterns. "Expand" changes the size of the block and creates empty lines between notes. Now you can increase the tempo and insert the rhythm patterns. NOTE: The maximum length of the expanded block may not be greater than 256 lines. In that case, you'll get a warning, and expansion is not done. Also, if you want to make fast rhythm patterns, see first instructions for commands FF1, FF2, FF3. They may be an easier way. Shrink When you have expanded the block, you can return it to the original state by pressing shrink. This function exists for symmetry. It has not much real use. The number gadget between these two gadgets is the amount of expanding. E.g. 2 doubles the length (inserts one empty line between each note). 3 would triple the length, and so on. +=========================================================+ | Edit +=========================================================+ Edit-panel contains functions that help editing. On: These are the switches that allow you to switch temporarily any track off and back on. The 16 lights in the status bar show you which tracks are on, when you're not using the Edit panel. ST sets all tracks on, CL sets all tracks off. Edit and SPC at the right corner are the bigger equivalents of "E" and "SP" in the status bar. "Edit" turns editing on/off and SPC turns on/off extra spacing between notes. You can type the space value in the string gadget next to the SPC-gadget (1 - 16). When you enter notes during playing (in real time) with SPC on, the notes will be quantized e.g. if SPC = 2, the notes will be placed only on even-numbered lines. Keyboard: Edit on/off = Esc, SPC = ~ (below ESC) 1+2, 2+3, 3+4, 4+5 on the left corner select the keyboard octaves which are used. This can be done also with F1 - F4 keys. ------- Programmable keys It's possible to assign 10 different notes/commands to number 0 - 9. Then you can insert the note/command with Shift- 0 - 9. You can also assign commands to Left and Right Alt. When you then enter notes, holding down the Alt, command is inserted to the note. The programmable keys are especially useful when entering drum-rhythms etc. The definitions can be saved so that they're automatically loaded when you start MED next time. It's also possible to pick up a range of notes (they can't be edited after picking). "Edit"-panel contains gadgets, which you can use to edit the notes/cmds. Only one note/cmd of the 12 is displayed at a time. 0-9 Shows the current 'Shift-number key' definition, the number is shown above the arrow gadgets, which can be used to change it. L.Alt Shows the definition of Left Alt R.Alt Shows the definition of Right Alt The current definition of each key is displayed on the Edit-panel. If some number is marked as "x", it's "transparent", the existing number will not be changed when the note is entered to the block (with Shift 0 - 9). You can change the definition by picking a note, but you can change it in another way as well. Click the number to be changed, and enter a new number from keyboard while still holding the mouse button, and pointing the number to be changed. If you want to change several numbers, you don't have to release the button. Just position the mouse over the number you want to change. For example, if you wanted to clear all commands from this track (but leave the notes) you could make a following definition: xxx xx000 Because the note is "xxx" and instrument number is "xx", they won't be changed, and only the command is cleared. Then you can just hold down the Shift and the number key and let the key-repeat do the job. R.Alt and L.Alt are a bit different: the note number is always "xxx" and the instrument number by default is "xx". Pick note copies the note currently under the cursor to this key. You can also pick, for example #7 by pressing Shift-Ctrl-7. Pick range picks the current range as a definition of this key Pick buf picks the copy buffer as a definition of this key Clr clears the definition of this key. SPACE=DEL Some people may prefer using the space bar instead of DEL when entering blank notes. This switch makes it possible. Keypad: Track on/off / Sel.instr This allows you to set the keypad operating mode. When it's set to "Track on/off", the keypad can be used to turn tracks 0 - F on/off. When "Sel.instr" is selected, you can select quickly the first 16 instruments. The layout is as follows: [ = 0 ] = 1 / = 2 * = 3 7 = 4 8 = 5 9 = 6 - = 7 4 = 8 5 = 9 6 = 10 + = 11 1 = 12 2 = 13 3 = 14 . = 15 Advance Here are some quite useful editing options, that control the automatic advancing of the cursor after entering something. (down arrow) When this is selected, the cursor automatically moves to the next line when a note is entered. Shortcut: Ctrl-A (up arrow) Moves the cursor to the previous line, when note entered. This is probably not very useful (but interesting...) > When entering effect numbers, the cursor is moved to right (but not to next line). < When entering numbers, the cursor moves to left. (again, not too useful...) >> When entering notes, the cursor is moved to the next track. << When entering notes, cursor is moved to the previous track. +=========================================================+ | Misc +=========================================================+ Some miscellaneous and not very important things and a VERY important thing (quitting). On the left there are gadgets for changing the screen colors. No need to explain?? All right, I won't. But just remember that the colors are saved when you save your song (they can give some "feel and expression"). You can also set the default colors of MED by clicking Save prefs. Jumping: Off 8th Smp When you don't want to see the "funny" mouse pointer, select Off. When you want him to jump every 8th note, select 8th. When you want him to jump when some sample is played, select Smp. The instruments which cause him to jump are selected from "Instr"-panel (gadget name: Jump). The name of the pointer is Topi (according to my cousin). Clear All, Clear song only, Quit These are very dangerous functions, in fact they're so dangerous that you must click 'Confirm' after you've selected one of them: "Clear All" does just as it says. Clears the song, removes all instruments from memory. In two words: clears everything. Note: This clears ALL songs. "Clear song only" is not as destructive. While it destroys the song, it leaves the instruments (if you want to create a new song without reloading the instruments). Note: This clears only the current song. "Quit" is the most destructive. It does everything "Clear All" does, but even worse, it quits MED!!!!!! This function was made for program testing and it probably doesn't have any real use ;-) Paths: Add/Rem These affect the sample names when loading songs/samples. Add Adds the complete path of the sample when you load e.g. if you load sample "PopSnare2" from "ST-01:", the sample name will be "ST-01:PopSnare2". Rem Usually songs made with Trackers have sample names like "ST-02:AhhVox". If you want that the samples are loaded using the path list instead of absolute names (if your samples are in hard disk, for example) you can remove "ST-xx:" from sample names and reload them, but when you "Rem paths" is selected, any paths before the sample names are removed quickly and easily during loading. Both of these can be active at the same time. In that case the original path is removed, instrument is loaded using the path list, and the path name from the path list will be added. Note that the maximum length of a instrument name is 39 chars, so if the path name is very long, something may be lost. H->B: This selects the name of the note between A# and C. In some countries, it's H. In some other countries it's B. WB: Open/Close These gadgets allow you to easily close/reopen the Workbench screen to give you extra memory space. Save prefs This will save the default settings of MED to S:med.config. When you start MED next time, these settings will be loaded. The following things will be saved: Current screen colors as default colors H->B State of E1, E2 and E3 switches Screen depth (Dep2) NO16 Space = Del Keypad mode Automatic advance settings Current programmable key definitions Jump: Off PTKey Dep2 This changes the screen depth from 8-colors to 4 colors. This frees some chip memory, but most important: it releases lots of DMA-time. In plain English: MED will run faster (but looks less pretty). NO16 This gadget disables the 12/16 track display on OctaMED. On MED, it does nothing. PTKEY This switch changes the keyboard operation so, that the most common Protracker keyboard options will be recognized. This is helpful for those who have got used to Protracker keyboard layout. The following PT shortcuts are recognized: Right shift Turns editing on, starts playing the block (= record) Right alt Continue song Right Amiga Play block L-Alt+curs.L/R Previous/next block Shift+curs.L/R Increase/decrease playseq position Space Stops playing/toggles editing. TAB Next track Shift-TAB Previous track Shift-F3 - F5 Cut/Copy/Paste track Alt-F3 - F5 Cut/Copy/Paste block If there are any other Protracker options you'd like MED to recognize, please let me (Teijo) know. +=========================================================+ | Vol +=========================================================+ This panel allows you to set the proportional volume of each track. In addition you can also set the master volume. The proportional value can be 1 - 64. If both the master volume and the volume of a track are 64, that track is played on full volume. If the master volume was 32 and a track volume was 32, the volume of that track would be 1/4 of the full volume. There are two sets of Ğ < 64 > ğ gadgets. The one on the right is the master volume. The left one changes the volume of the selected track. You can select the track, by clicking a number above the gadgets. The currently selected number is highlighted. This is quite easy, so no problems should appear. The track volumes and the master volume are saved with songs. +=========================================================+ | MIDI +=========================================================+ MED can output notes and some commands to external MIDI-devices (keyboards, synthesizers...). The MIDI-panel contains the MIDI-stuff which is needed for that. When you decide that some instrument should be a MIDI-instrument, you select the MIDI channel for it. "MIDI ch"-gadgets are used for that. If you select e.g. MIDI channel 2, the notes of the current instrument are sent in MIDI channel 2 (simple, isn't it?). Remember to set the default volume (Sample panel). Also, you need to activate MIDI (click "MIDI active"). If the serial port is used by some other program, you can't use MIDI. Then you must terminate the other program and try again. After you have activated MIDI, MED starts sending "active sensing" messages ($FE). Active sensing can be turned off with the "Act.sensing"-gadget. By default MED uses the default preset of that channel (which you have set on your MIDI device). If you want to use other presets, you can select them using the "MIDI pres #"-gadgets, in that case the program change message is transmitted when a note is played. Preset number 0 means that the default preset is used (the preset is never changed for this instrument). If you want to send a preset change command, but don't want to play a note yet, use the command C00 with any note. In that case, the preset will be changed, but no note will be transmitted. You can have instruments with differents preset numbers, but which will use the same MIDI channel. In that case, MED will automatically send the program change message whenever the instrument with different preset number is used. You can use MIDI-instruments on all 16 tracks (if there are 16 tracks on the current block). You can also freely mix samples and MIDI-instruments on the same track (tracks 0 - 3 only). One helpful keyboard command is Ctrl-Space. This command resets pitch- benders and modulation wheels on all channels. Also, if you have changed presets on your MIDI-device, MED can't detect this and thinks that the preset is not changed. Ctrl-Space causes MED to resend program change commands for all channels, when playing. There's a gadget: "Reset pb+pres" that does the same thing. The "MIDI reset"-gadget sends a MIDI reset command ($FF). If you turn "Send sync" on, MED will send MIDI sync information, and allow other devices to synchronize with MED. When "Ext sync" is on, MED can be synced externally. You must also have input active when this is turned on. The synchronization works only when you play song, when you're playing a single block, the syncing is disabled. L.Ctrl on/off gadgets allow you to easily send Local control on/off messages. Suppr.N.Off suppresses Note Off messages of the current instrument. Some devices may have some instruments (e.g. one-shot drum sounds) which actually ignore the Note Off messages. When Suppr.N.Off is selected, Note Offs are not sent for the current instrument. This reduces some unnecessary MIDI output (slightly faster). There are commands which control the pitchbender, modulation wheel etc. Detailed documetation later (again??). ------- Entering notes with MIDI You can use your keyboard, synthesizer or whatever, to insert notes (you don't need to use your Amiga's keyboard to entering). You must activate the "Input"-gadget. If editing is on and your MIDI-device is sending notes, they will be entered. You can also enter Amiga-samples with MIDI. Next to the Input-gadget, there's a integer gadget, that contains the number of the input MIDI channel. If it's 0, then MED will accept input from all MIDI channels. "Read volume" gadget may be sometimes quite useful. If you have a velocity- sensitive keyboard, the volume will be entered in the command-part when you enter notes and this gadget is selected. "Read key-up" is not as useful. When it's active, MED records key-up events. It can be used in real-time recording (and mostly for long notes). You may have noticed that you can't directly use all the octaves which are available on the MIDI device. "Instrument transpose" helps this. You can have two instruments with identical settings except for different instrument transpose. With instrument transpose you can reach nearly the full range of notes. NOTE: When you have a MIDI-instrument, its name doesn't really have any use. However it's good practice to type in the names of the presets. This way you can easily see the presets, and, if you give the song to somebody else who may have different MIDI-equipment, he/she can easily change the preset numbers to use the correct presets on his/her MIDI-device. +=========================================================+ | Trans +=========================================================+ Starting from the bottom, there's a long string gadget that can hold an annotation text for the song. When you save the song, the text in this gadget will be saved, and it will be displayed when loading the song. The other functions of this panel has something to do with transposing notes. When you're doing some transposing, you should first decide which areas the transposing should affect. At the top of the panel there are gadgets to select this: Affect/song the functions of this panel will affect the whole song Affect/block the functions will affect the current block Affect/track current track will be affected Affect/sel.trks selected tracks in this block will be affected Affect/range the range selected with mouse will be affected Instr/all all instruments affected Instr/curr only the current instrument affected First there are some simple transposing operations: 1/2 ^ (<-arrow up) transposes the affection area up one half-step 1/2 v (<-arrow down) transposes down one half-step oct ^ transposes one octave up oct v transposes one octave down ------- Note (ex)change Suppose you want to change all D-3's of instr 2 in your song to C-1. First you set Affect/song (affect the whole song). The you go to instrument #2 and select Instr/curr (to affect only this instrument). Now you click the box at the right of the text "Note", hold down the mouse button, and enter note D-3 from keyboard (D-3 will be displayed). This is the source note name. Then you click the box at the right of the source note box, hold the mouse button again, and enter C-1. Now you have set the destination note. Finally you just click the "->" gadget at the right of the dest. note box. If you had wanted to exchange the notes (D-3 => C-1 AND C-1 => D-3), you would have clicked the "<->" gadget instead. ------- Instrument deletion/changing The left instrument number is the source number and the right one is the destination number. To set them, select the instrument (e.g. Shift- cursor left/right) and click on the number. Del Deletes the notes with source instrument number. -> Changes the source instrument number to dest. instrument number <-> Exchanges the source and instrument numbers ------- Play transpose This gadgets allows you transpose the whole song quickly. It doesn't change the notes, it only affects playing. +=========================================================+ | Range +=========================================================+ This panel contains many of the range-editing options. The range is a rectangular area of notes in a block. It is selected by dragging using the right mouse button and (then moving the mouse). It only works on vertical note display. The numbers at the right bottom corner show you the starting/ending tracks and starting/ending lines of the block. At the left side of the panel, there are gadgets "Select track" and "Select block". These allow you to select a single track or block quickly. To the right of them, there are gadgets for range operations. The simplest is "Clear". It clears all notes in the range. Above it is "Cut". It also clears the notes, but copies them to the copy buffer for later pasting. "Copy" doesn't clear the notes, just copies them to the copy buffer. You can paste the contents of the copy buffer with "Paste". The copy buffer will then be copied starting at the cursor. If the copy buffer contains e.g. 3 tracks, and you don't want to copy them to consecutive tracks, but e.g. tracks 2, 7, and 9, You would select tracks 2, 7, and 9 with track-selection gadgets (at the top), and then click "Paste select". The notes will be pasted only to selected tracks. The "Cancel" gadget can be used to forget the range (e.g. if you've accidentaly hit the RMB). You can achieve the same effect with moving to another block. Spread 2/3/4 allow you to spread notes on one track to consecutive tracks. For example, get an empty block, fill track 0 with notes, select track 0 (with "Select track" for example), and try these gadgets. S1, S2 These gadgets can perform the quite tedious task of creating slides. Here's how it works (example): You want to make a slide from C-2 to G-2: 000 C-2 1000 001 --- 0000 002 --- 0000 003 --- 0000 004 --- 0000 005 G-2 1000 006 --- 0000 Move the cursor to the line where you want the slide to begin (in this example, line 002). Then click S1 or S2. Result: If you click S1 If you click S2 000 C-2 1000 000 C-2 1000 001 --- 0000 001 --- 0000 002 G-2 1306 002 --- 0108 003 --- 0306 003 --- 0108 004 --- 0306 004 --- 0108 005 --- 0306 005 G-2 1000 006 --- 0000 006 --- 0000 The better result is usually achieved using S1. S1 and S2 use the different sliding commands (that's the difference). With S2, the second note is also replayed. The commands itself are documented later. Keyboard: S1 = Amiga-T, S2 = Shift-Amiga-T VOL Creates a volume slide. With this option, it's possible to create easily fades etc. Example: 009 --- 0C50 <-start volume \ 009 --- 0C50 010 --- 0000 =================\ 010 --- 0C47 011 --- 0000 | Click "VOL" \ 011 --- 0C44 012 --- 0000 | / 012 --- 0C40 013 --- 0000 =================/ 013 --- 0C37 014 --- 0C34 <-end volume / 014 --- 0C34 The cursor must be positioned somewhere between the C- commands (on lines 10 - 13 in this example). Select: 0, 1, 2, ... E, F These gadgets are used to select tracks (not range). Some track- based operations may need this (e.g. Paste select), or you can set the transpose operations to affect the selected tracks. ST selects all tracks, while CL deselects them. Chord This gadget can be used if you want to enter chords. First you should select the tracks, which the chord entering affects (with above gadgets). The chord always starts from the current track and then continues to the next selected track etc... After you've selected this gadget and turned editing on, you can try entering a major C-chord (select all tracks now, because this is just an example!!). Press Q (C), hold it down. Then press E (E) holding both keys still down. Finally T (G). Now you can release the keys, and the cursor moves back to the starting track and advances line. Chord editing works well with MIDI too. ============================================================================ ============================================================================ Big displays MED has some panels, that are displayed in the large area (where the notes usually are). The rightmost strip of panel-selection gadgets are used to select one of the five possible big displays. The displays (gagdets) are: Vertical note display (Notation editor, in OctaMED V2 only!) Synthetic sound editor Sample editor Sample list *=========================================================================== * Synthetic sound editor *=========================================================================== See the doc file "Synthsounds.doc"... *=========================================================================== * Sample editor *=========================================================================== See the doc file "Sample_editor.doc"... *=========================================================================== * Sample list *=========================================================================== ------- What is it?? Sample list is a list of all your samples and sample disks/directories. You can easily scan through your sample lists and load a sample by clicking its name. When you've constructed the sample list, it is saved and always loaded when you run MED. You don't have to load directories of your sample disks more than once. Sample list (MED_paths) contains the directory declarations, so MED can automatically load your samples from correct disks, minimizing disk swappings, when you load songs. ------- How to create a Sample list?? Using the filerequester, load the directory of your sample disk/dir. Then go to the "SList"-panel. Now click Dir/ADD. You should see the filenames of the directory to appear. You can now examine the list, and if there are files which are not samples, destroy them from the list with Instr/DEL. Repeat this procedure for each sampledisk/dir you have. You can select the displayed directory with the right display, which displays the directory names. When you have made the list, you probably want to save it. Save/S: does the job. If you click CD, the path file will be saved to the current directory (be sure that it is the same where you started MED). If you click "S:", the file will be saved to the S:-directory. I prefer placing the file in S:, because then it doesn't matter which is the current directory when starting MED. The file is called "MED_paths". If you later want to add entries to the directory, you can delete the whole directory from the list with Dir/DEL. Then you must click the name of the directory to remove. Then you can reload the directory. You can also add entries one at a time. If you click Instr/ADD, the name of the current sample is added to the list. Also the repeat/rep.length values are then added to the list (form: Asia::480/5362). Note that the previous entry with same name is not deleted, so you must delete it by hand (using Instr/DEL), if you want to add rep./rep.len values to the list. If the current instrument is a MIDI-instrument when you add the name, the name will be a form E.Piano::M6/4 . The 1st number is the channel, the 2nd is the preset. When you later load instrument of that name, the MIDI-channel/preset will be set. Note that the instrument with this name doesn't really have to exist in that directory, it's like a "dummy" entry. You may want to create a "dummy" directory for these dummy MIDI entries (empty dir). At the top is the box displaying the directory name and number. The right display only displays the last 16 chars of the dir name, because it's the most meaningful. For example some of my instruments are located in directory: work:samples/ST-01/ If the box showed the first 16 chars, it would be "work:samples/ST-" (which isn't as helpful). The instrument loading is simple. Just click the instrument name on the left display, and it's loaded. ------- Loading MED_paths You can load a new MED_paths file, using the file requester. If you select a file called MED_paths, you'll be immediately requested if you want to load it. If you press 'R', the list in the memory will be lost and the new one will be loaded. If 'A' is pressed, the current path list is preserved and the new one will be appended to it. Finally, I reveal the keyboard shortcuts... Alt-numeric keypad-8 = scroll the list up (very useful) Alt-numeric keypad-2 = scroll the list down (very too) Alt-keypad-9 (PgUp) = scroll the list up fast Alt-keypad-3 (PgDn) = scroll the list down fast Alt-keypad-7 (Home) = to the beginning of the list Alt-keypad-1 (End) = to the end of the list +-------------------------------------------------------------------+ |+-----------------------------------------------------------------+| || MED V3.2 player commands/effects || |+-----------------------------------------------------------------+| +-------------------------------------------------------------------+ This section gives information about commands/effects. They are events which affect the playing and they are handled by the MED player routine. C - 2 1 2 3 4 | \ | command number \| data byte You insert the commands usually by hand (turn editing on, move cursor on the command numbers and type the numbers). It may be a bit easier if you turn off automatic-advance with Ctrl-A. Here are the descriptions of each of the currently recognized commands: +---------------------------------------------------+ | Command 0: ARPEGGIO MIDI: controller value | +---------------------------------------------------+ This command changes the pitch of the note quickly (6 times during 1 note). It can be used to create "chords" or special effects. If you've listened to music made with the C-64, you MUST have heard arpeggios. The pitch is changed between 3 different pitches during one note: the 1st pitch is the pitch of the original note the 2nd pitch is the pitch of the original note + the 1st number of databyte halfsteps up the 3rd pitch is the pitch of the original note + the 2nd number of databyte halfsteps up Note: 3rd pitch | 2nd pitch | 1st pitch | 3rd pitch | 2nd pitch | 1st pitch changed 6 times during note It may be a bit difficult to understand, so here's an example: You want to make an arpeggio which sounds like C-major chord. The lowest pitch is C (C-2 in this example). The second is E-2 (4 halfsteps higher than C-2). The third is G-2 (7 halfsteps higher than C-2). 4 halfsteps from C-2 -+ 7 halfsteps from C-2 |/ That produces: C-2 1047 --- 0047 --- 0047 and so on... Data byte for a minor chord would be 37. The arpeggios sound better with some instruments than others. MIDI: See command 5 for a description. +---------------------------------------------------+ | Command 1: SLIDE UP MIDI: pitchbender up | +---------------------------------------------------+ This command slides up the pitch of the current track. With Amiga samples: Decreases the period of the note the amount of databyte on each timing pulse. Sounds rather technical?? Yes... The instructions for previous (before 2.10) versions of MED contained detailed instructions for making good-sounding slides with this command. Because this version now contains the easy automatic slide making (Amiga-T), I felt that these instructions are not necessary any more. If you use this function for special effects (not real slides) then you can experiment with the values for the databyte. Example: A-1 1000 --- 0000 --- 010F <- slide up a bit With MIDI: This commands works very differently with MIDI. It actually "turns" the pitchbender 8 * databyte steps up on each timing pulse. Because the actual range of the pitchbender may be different with different MIDI-devices, you must find the right value by experimenting. There's also one thing you should know: when a new note is played, the pitchbender is not resetted automatically. To reset the pitchbender, you use this command with databyte zero. Example: G-2 L1FF <-turn it up very quick --- 0000 --- 0100 <- then reset the pitchbender +---------------------------------------------------+ | Command 2: SLIDE DOWN MIDI: pitchbender down | +---------------------------------------------------+ Not much about this command. It's just like command 1 except it slides down. +---------------------------------------------------+ | Command 3: PORTAMENTO MIDI: set pitchbender | +---------------------------------------------------+ This is another slide command (on some old MED versions (2.00) this was a vibrato command, see command 5 now). It can be used to make perfect slides more easily. First an example: C-2 5000 <- played note C --- 0000 E-2 5305 <- this note is not played!! Instead, slide target is set --- 0300 to G-2 and slide speed is 5 --- 0300 <- when speed is zero, use the previous speed --- 0306 <- the speed can be changed, of course This example would slide from C-2 to E-2, but the slide stops EXACTLY when E-2 is reached. The remaining 3's have no effect. This command is easier to handle with automatic slide making (see Edit/S1 above). MIDI: By using this command, you can set the pitchbender to an absolute value, instead of sliding as commands 1 and 2 do. The data byte is the pitchbender value, expressed as a signed hexadecimal digit (a nightmare to non-programmers!). 00 = center position 80 (-7F) = smallest value 7F = largest value Example: C-2 3000 --- 037F <- pitchbender to max. value --- 0300 <- reset +---------------------------------------------------+ | Command 4: VIBRATO MIDI: modulation wheel | +---------------------------------------------------+ The first number of the data byte is vibrato speed, the second is vibrato depth. If the numbers are zeros, the previous speed and depth is used. Example: F-215000 --- 0000 --- 0433 <- slow, not much depth --- 0437 <- more depth --- 043F <- full depth --- 0482 <- fast, not very deep MIDI: This command affects the modulation wheel of the current channel. The data byte can be 00 - 7F. 00 = no modulation, 7F = maximum. Values 80 - FF are reserved for future expansion (and won't work). +---------------------------------------------------+ | Command 5: OLD VIBRATO MIDI: controller number| +---------------------------------------------------+ This is the old vibrato command (previously it was 3). The command 3 is automatically converted to 5 when loading old MED songs. The pitch of the note is changed between two values, databyte is the depth. Example: A#1 J502 --- 0507 increasing depth --- 0517 v --- 0527 --- 0537 MIDI: Command 5 in conjunction with command 0 allows you to change any controller of MIDI (command $Bx cc vv, where cc = controller number, vv = value). First you set the number of controller you want to change with command 5. Then you can select the value with command 0. Subsequent uses of command 0 will affect the controller previously set with command 5. Each channel has its own controller number. If the controller value is $00, you can't use '00', because the command '000' means 'do nothing'. Instead, you type '80'. Acceptable controller numbers and values are $00 - $7F. For example: (assuming instrument 3 is set to MIDI channel 1) C-2 3000 --- 0507 <- controller $07, volume, according to MIDI standard D-2 307F <- set max. volume ($7F), command $B0 $07 $7F is sent --- 0000 F-3 3001 <- small volume ($01) --- 055C <- select controller $5C (tremolo depth) G-4 3080 <- set to 0 (note: $80 = $00) +---------------------------------------------------+ | Command 8: SET HOLD/DECAY MIDI: set hold only | +---------------------------------------------------+ This command must be located on the same line with a note. The command assigns the hold and decay values for the note (see above for description about hold/decay). hold value decay----------+| || Example: C-3 3824 -|- 3000 -|- 3000 --- 0000 +---------------------------------------------------+ | Command 9: SEC. TEMPO MIDI: no action | +---------------------------------------------------+ This command sets the secondary tempo (the number of timing pulses/note). The argument must be 01 - 20. Example: --- 0903 <= double tempo --- 0000 +---------------------------------------------------+ | Command A: VOLUME SLIDE MIDI: polyph aftertouch| +---------------------------------------------------+ This is the same as command D (for Noise/Protracker compatibility). However, please use D instead of this. If I some day find that there are no free commands, I'll use this!! MIDI: Command A changes the polyphonic aftertouch of the most recent note. The value should be $00 - $7F. Example: C-3 4000 --- 0A30 <- aftertouch $30 --- 0000 --- 0A00 <- aftertouch $00 +---------------------------------------------------+ | Command B: POSITION JUMP MIDI: position jump | +---------------------------------------------------+ This command lets you make songs that have beginning which is played only once and then some part which is looped forever. Position jump causes the jump to playsequence number pointed by the data byte. If the data byte is 0, then the playseq jumps to the first entry. Example: --- 0B02 <- start playing from playsequence number 3 +---------------------------------------------------+ | Command C: SET VOLUME MIDI: set volume | +---------------------------------------------------+ You can override the default volume of the instrument with this command. Example: A-3 4C20 <- played with volume 20 There are 65 volume levels (0 - 64), 0 = no sound, 64 = maximum. The data byte of command C can be 00 - 64 or 00 - 40 (decimal or hex). Non-programmers will probably want to use the decimal numbers. See (Play/[Dec/Hex]). If you want the playroutine to have maximum performance, then use hex values. It is also possible to change the volume of already played note. Note that it doesn't work with MIDI-instruments. Example: A-3 4000 --- 0000 --- 0C10 <- volume to 10 It's possible to change the default volume of an instrument (MED V2 and later). The value must be between 80 and C0 (always hex!). Value $80 = volume 0, and $C0 = 64. Note: This can cause trouble in multi-modules, because the set of instruments (and their default volumes) are common. I recommend that you change the default volume only on non-multi-modules. +---------------------------------------------------+ | Command D: VOLUME SLIDE MIDI: channel pressure | +---------------------------------------------------+ You can increase/decrease volume smoothly with this command. The data byte is divided in two parts: C-3 3D01 || |+- Amount of decresdendo +-- Amount of crescendo If crescendo is zero, then the decrescendo is performed. Otherwise only crescendo is performed. Example: C-2 3C40 --- 0D01 <- a bit more quiet --- 0D01 <- even more --- 0D20 <- and crescendo back to original One unit in these commands means six actual volume units, so this example would look like this, when using the C-command (except that it doesn't sound so smooth): C-2 3C40 (volumes are decimal in this example) --- 0C34 <- -6 --- 0C28 <- -6 --- 0C40 <- +12 MIDI: This command sends a channel pressure (channel aftertouch) message using the channel in which the most recent note was sent. The databyte should be $00 - $7F. D#5 J000 --- 0D40 <- channel aftertouch $40 --- 0D00 <- to $00 +---------------------------------------------------+ | Command E: SYNTH/JMP MIDI: pan control | +---------------------------------------------------+ When used with synth/hybrid instruments, this command triggers a jump in the waveform command sequence. The databyte is the jump destination (line number). Example: C-4 4000 <- this should be synth/hybrid instrument --- 0000 --- 0E05 <- cause a jump to line # 5 With MIDI-instruments, this command controls the stereo location of the sound. The data byte can be 00 - 7F. left mid right | | | 00 3F 7F If you've used MED V2.00/V2.01 or Noise/SoundTracker, you may remember that this command controlled the low-pass filter. I think that it was unnecessary to spend the command E only for controlling only a single switch. See command F. +---------------------------------------------------+ | Command F: TEMPO/MISC. MIDI: tempo/misc. | +---------------------------------------------------+ Command F has many different actions depending on the data byte. If the data byte is zero (00), this command causes the immediate jumping to the next block on the playing sequence (or to the beginning of this block if you're only playing the block). This function is better to implement by making the block shorter (takes less memory). Example: C-2 4F00 <- this is the last note of this block When the data byte if 01 - F0, the command changes the tempo. This is the primary tempo (length of the pause between timing pulses). If the new tempo is 01 - 0A, it is compatible with Trackers, but now you should use the command 9 instead of this command, as it's directly Tracker-compatible (set the primary tempo to 33). Example: E-3 6FF0 <- highest tempo --- 0000 --- 0F0B <- slowest Data bytes FF1 - FFF are reserved for special actions, some of them are currently used: FF1 causes the same note played actually twice. This way it's possible to create fast rhythms. C-3 2FF1 is same as C-3 2000 C-3 2000 with double tempo FF2 plays the note only once, but it is not started immediately: C-3 2FF2 is same as --- 0000 C-3 2000 with double tempo FF3 works like FF1 except the note is played three times (very fast). FF8 turns off the low-pass filter (power-LED will dim). FF9 turns the low-pass filter on (bright LED). FFA sends MIDI "hold pedal on"-command (works only with MIDI-instruments). FFB sends MIDI "hold pedal off"-command (works only with MIDI-instruments). FFD works only with Amiga-samples. It causes the pitch of the channel to be set to the pitch of the new note, but the new note is not replayed. C-1 2000 <- play note --- 0000 C-2 2FFD <- don't replay the note, just set the pitch to C-2 FFE stops playing immediately. If you want to make a song which plays only once, put this command to the end of the song. This command can be easily entered: Click "Stop playing" while holding the Shift-key. FFF Stops the note on the current track. Works with both Amiga- and MIDI- instruments. Nearly identical to "C00" on Amiga-samples, but because "C00" doesn't work with MIDI, I made this command. +-------------------------------------------------------------------+ |+-----------------------------------------------------------------+| || MED V3.20 keyboard equivalents/functions || |+-----------------------------------------------------------------+| +-------------------------------------------------------------------+ Cursor up Cursor up Cursor down Cursor down Cursor right Cursor right Cursor left Cursor left -- then a bit more complex ones DEL Delete note or number under cursor Shift-DEL Delete the note and the command numbers Alt-DEL Delete only the command numbers Backspace Deletes the note and moves following notes up Shift-Backspace Inserts an empty note slot Alt-Backspace Deletes the current track Alt-Shift-Backspace Inserts a new track Shift-Cursor up Previous block Shift-Cursor down Next block Shift-Cursor left Previous sample Shift-Cursor right Next sample Left-Alt-Cursor up First block Left-Alt-Cursor down Last block Alt-Cursor left Cursor onto previous track Alt-Cursor right Cursor onto next track Alt-Shift-Cursor right 16 samples forward Alt-Shift-Cursor left 16 samples backward Ctrl-Cursor left Previous screenful of tracks Ctrl-Cursor right Next screenful of tracks Space bar Stop playing (or delete note if SPC=CLR active) Alt-Space Continue block Ctrl-Space Reset MIDI pitchbenders/mod. wheels/presets Shift-Space Continue song Shift-Alt-Space Play song Esc Editing on/off ~ Extra space on/off F1 - F4 Select keyboard octaves 1+2 - 4+5. F6 Cursor to the first line of the block F7 Cursor to the second quarter of the block F8 Cursor to the middle of the block F9 Cursor to the last quarter of the block F10 Cursor to the last line of the block Ctrl-F1 - F10 Select displayed panel Ctrl-Shift-0 - 9 Pick note 0 - 9 Ctrl-A Automatic advance down on/off Ctrl-F Display free memory Amiga-F Low-pass filter on/off Amiga-I Activate sample name gadget. Shift-Amiga-I Clear and activate sample name gadget Amiga-J Jumping on/off for this sample Amiga-L Load song Amiga-P Play song (Shift-Alt-Space) Amiga-R Activate repeat gadget (in Sample-panel) Amiga-T Create slide using command 3 (transform) Amiga-Shift-T Create slide using command 1 and 2 Amiga-X/C/V Cut/copy/paste current track Amiga-Shift-X/C/V Cut/copy/paste current block Shift-0 - 9 Enter note 0 - 9 TAB Highlight current line Numeric keypad (the non-shifted operations are described in Edit/pad on/off) Ctrl-8 Scroll the playing sequence list up Ctrl-2 Scroll the playing sequence list down Ctrl-4 Decrease the block number of the psl Ctrl-6 Increase the block number of the psl Ctrl-7 Move to the beginning of the psl (psl = the Ctrl-1 Move to the end of the psl playing Ctrl-5 Insert this block to the psl sequence Ctrl-0 Insert number 0 to the psl list) Ctrl-. Delete the block number from the psl Alt-8 Scroll samplelist up Alt-2 Scroll samplelist down Alt-9 Scroll samplelist up fast Alt-3 Scroll samplelist down fast Alt-7 Beginning of the samplelist Alt-1 End of the samplelist