------- 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