home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-20 | 93.8 KB | 1,172 lines |
- ┌──────────────────────────────────────────────────────────────────────────────┐
- │ EdLib v1.05a rev 055 ................... AdLib editor by Jens-Christian Huus │
- ├──────────────────────────────────────────────────────────────────────────────┤
- │ │
- │ │
- │ INTRODUCTION │
- │ ──────────── │
- │ │
- │ At last you can lay your hands on an editor which makes full use │
- │ of the OPL2 AdLib capabilities of your AdLib card or compatibles │
- │ such as the entire Sound Blaster series! The editor you now have │
- │ in your possession was in fact developed mainly in 1992-1993. In │
- │ 1993 I enhanced it furthermore, this time mostly cosmetical only │
- │ but also a few userfriendly additions such as a filesystem which │
- │ packs the work tune on your harddisk to save space. Since 1993 I │
- │ hardly touched it - however, it was used a lot in games projects │
- │ such as LollyPop from Brain Bug (released by Rainbow Arts). │
- │ │
- │ Actually it was my intention to keep the editor for ourselves in │
- │ order to support AdLib in games. However, since the development │
- │ of the editor I have experienced a generel hostility towards the │
- │ old AdLib standard. People begun to actually hate FM sounds. The │
- │ arrival of GUS and AWE 32 made wavetable techniques very popular │
- │ and indeed it sounds very good, but there are some things in the │
- │ old FM standard that is unique. You can't fiddle with samples in │
- │ the same way as you can with FM. I personally never quite liked │
- │ sampling, I find it downright boring. With a FM chip it is like │
- │ on a C64; you have a few parameters and everything you do has to │
- │ be done within these parameters. These boundaries makes it funny │
- │ to make music, to see how far you can actually push AdLib. To do │
- │ sounds on FM requires expertice but if you're good at it, almost │
- │ any instrument can be reproduced properly, except perhaps drums. │
- │ │
- │ This is the reason why I decided to release my editor. It uses a │
- │ system very similar to the ordinary tracker system, but has been │
- │ enhanced with individual sequences for each track. Each sequence │
- │ can even vary in size. Because of the natural way of designing │
- │ my system, I find it vastly superior to the tracker system. It │
- │ uses much less memory and allows each sequence to be transposed │
- │ individually. This is the exact same system as I used on the C64 │
- │ editor which was heavily used in that scene. │
- │ │
- │ Freaks from the good old C-64 with the editing system used there │
- │ should be able to use the editor right away. Just tap ALT-F1 and │
- │ a list of keys will appear. :) │
- │ │
- │ As an extra bonus I have included a player with the instructions │
- │ on how to use the finished music in your own programs! Please go │
- │ to the "USE" directory and read the DOC file there for some more │
- │ information on this. │
- │ │
- │ All files in this archive is freeware - if you payed for it, you │
- │ have been cheated! However, I reserve the rights to maintain all │
- │ copyrights. Do NOT reverse engineer my code or else! :( │
- │ │
- │ If you make some nice tunes in it, why not let it be "EDL-Ware"? │
- │ I would be very happy to hear what you can do with this! :) │
- │ │
- │ │
- │ FEATURES │
- │ ──────── │
- │ │
- │ The archive contains both the editor and loads of demo songs to │
- │ demonstrate the editor. Below is just some of the things you can │
- │ do with the editor... │
- │ │
- │ │
- │ - Edit and play 9 voices of AdLib while viewing and editing 1024 │
- │ instruments complete with a name for each instrument. │
- │ │
- │ - Save all music and instruments in a work file of approximately │
- │ 3 to 9 Kb size. These files will have the extension "EDL". │
- │ │
- │ - Pack the music to a compressed format (around 1 - 6 Kb), which │
- │ is directly playable in your own programs. Extension is "D00". │
- │ Packed music also uses much less processor time. │
- │ │
- │ - Edit song name and composer name. This information also exists │
- │ in the compressed D00 format. │
- │ │
- │ - Because EDL and D00 is not compatible, you can be sure the D00 │
- │ cannot be ripped and edited. The editor does not load D00. You │
- │ may find this bad, but I actually see this as an advantage. Do │
- │ you like people to mess around in your source tune? ;) │
- │ │
- │ - All AdLib parameters editable, with extra enhancements such as │
- │ hard restart, arpeggio, modulation programs and finetune. │
- │ │
- │ - Both tune speed and timer IRQ speed may be edited. The normal │
- │ tune speed uses a floating point system to access more speeds │
- │ with a smaller granularity than normally possible. │
- │ │
- │ - Use "+++" to hold a note in sequences and "---" to release it. │
- │ This makes it easier to control the ADSR of an instrument. │
- │ │
- │ - Play with instruments using "QWERT..." - and if your keyboard │
- │ is connected via a MPU-401 compatible MIDI interface, you can │
- │ even play the AdLib instruments on it, complete with velocity │
- │ and aftertouch. And polyphonic too of course. I've tested this │
- │ on both the original MPU-401 and the Sound Blaster 16. I only │
- │ use the UART mode on the interface. │
- │ │
- │ - Very flexible track and sequence system taking less memory and │
- │ is much more efficient than the standard tracker system. Every │
- │ sequence is piled on top of each other to show you exactly how │
- │ the music is played. │
- │ │
- │ - Unique tienote command makes it possible to play notes without │
- │ restarting the effects set for the instruments. │
- │ │
- │ - Full delete, insert, copy and other similar editing facilities │
- │ available in both tracks and sequences. │
- │ │
- │ - Use "FollowPlay" to see the music scroll as it is being played │
- │ at the same time. You may even use fast forward in this mode. │
- │ │
- │ │
- │ REQUIREMENTS │
- │ ──────────── │
- │ │
- │ The editor requires a PC with 80x50 text screen capabilities and │
- │ an AdLib card or compatible. Anything that is equipped with an │
- │ OPL2 chip or better. I wouldn't recommend using the SBOS program │
- │ for the GUS however - it doesn't emulate FM sounds 100% correct. │
- │ │
- │ Enhanced keyboard is optional - F11 and F12 is used but has been │
- │ duplicated elsewhere to support all keyboards. │
- │ │
- │ If you have a MPU-401 interface (or compatible) you can use your │
- │ synthesizer to play with AdLib instruments through MIDI. │
- │ │
- │ │
- │ FILES │
- │ ───── │
- │ │
- │ The following files should be present in the archive. If they're │
- │ not, the archive has been tampered with and should be replaced │
- │ by a new copy. Remember to unzip with the "-d" switch. │
- │ │
- │ │
- │ EDLIB.001 7382 Part of the main editor │
- │ EDLIB.002 7350 Part of the main editor │
- │ EDLIB.DOC 96022 This documentation │
- │ EDLIB.EXE 19184 The main editor │
- │ EDLIB.REV 1722 Revision update list │
- │ │
- │ PLAYER\DATA.BIN 164 Initialized player data │
- │ PLAYER\INTERFAC.BIN 801 Combines player with editor │
- │ PLAYER\PLAYER.BIN 4576 AdLib player v04.01 │
- │ │
- │ SONGS\DRX_BUS.EDL 3593 Drax - "Bus" │
- │ SONGS\DRX_FLAS.EDL 4513 Drax - "Flash2" │
- │ SONGS\DRX_HUMA.EDL 3962 Drax - "Human Nature" │
- │ SONGS\DRX_SAD.EDL 3253 Drax - "Sad" │
- │ SONGS\DRX_STRE.EDL 3671 Drax - "Street Wise" │
- │ │
- │ SONGS\JCH_INS8.EDL 2526 Jch - "Instrument Test #8" │
- │ SONGS\JCH_PH6.EDL 2383 Jch - "Phase" (TEST) │
- │ │
- │ SONGS\MSK_FRSH.EDL 2782 Msk - "Fresh" │
- │ SONGS\MSK_OBER.EDL 3086 Msk - "En lille test" │
- │ │
- │ SONGS\MTL_ALTT.EDL 3173 Metal - "Alttoga" │
- │ SONGS\MTL_HY11.EDL 4185 Metal - "Hybrid" │
- │ SONGS\MTL_NM11.EDL 4212 Metal - "Soul Shock" │
- │ SONGS\MTL_SL12.EDL 3477 Metal - "Sulfo12" │
- │ SONGS\MTL_SP13.EDL 4087 Metal - "Space13" │
- │ │
- │ SONGS\PJO_ARGH.EDL 2483 Jo - "Aaaaarggghhh" │
- │ SONGS\PJO_DIP.EDL 2137 Jo - "Dip" │
- │ SONGS\PJO_GALW.EDL 2549 Jo - "Like Galway" │
- │ SONGS\PJO_HORR.EDL 2461 Jo - "Fly in Spiders Web!" │
- │ SONGS\PJO_KOER.EDL 2472 Jo - "Koere" │
- │ SONGS\PJO_LAL.EDL 2707 Jo - "Drums are hard to do" │
- │ SONGS\PJO_MTHS.EDL 2748 Jo - "Submission to -X-" │
- │ SONGS\PJO_REGG.EDL 2293 Jo - "Reggae" │
- │ SONGS\PJO_SUND.EDL 2513 Jo - "Boring Sunday" │
- │ SONGS\PJO_TRY2.EDL 2784 Jo - "Hard Guitar" │
- │ SONGS\PJO_WAIT.EDL 2393 Jo - "1st Interstellar Jmp" │
- │ │
- │ SONGS\VIB_FIS3.EDL 2812 Vibrants - "Fis3" │
- │ SONGS\VIB_VOL3.EDL 2619 Vibrants - "Volly3" │
- │ │
- │ USE\- 277 MakeFile for Borland "MAKE" │
- │ USE\GLOBALS.INC 2937 Labels used by the player │
- │ USE\MPLAYER.DOC 32636 Documentation on how to use │
- │ USE\MPLAYER.OBJ 5783 Player v04.00 OBJ link file │
- │ USE\STR_WISE.D00 3082 Drax - "Street Wise" tune │
- │ USE\TEST.ASM 12523 Example source code │
- │ USE\TEST.EXE 5869 Run this to hear the music │
- │ USE\TEST.OBJ 1285 Test OBJ link file │
- │ │
- │ USE\DOS\THE_EGA.CPI 9805 New character set for DOS │
- │ │
- │ │
- │ CPI FILE │
- │ ──────── │
- │ │
- │ I have included a file named "THE_EGA.CPI" which you can use in │
- │ your AUTOEXEC.BAT instead of the old "EGA.CPI" file. It contains │
- │ a new 80x25 character set by Claus Marn¢e (Banshee/Bonzai) and a │
- │ great new 80x50 character set by Niels Krogh Mortensen (Who made │
- │ the original Hugo TV character for SilverRock Productions). When │
- │ using EdLib the editor will look much better with this installed │
- │ in your AUTOEXEC.BAT. The editor redefines a few characters, but │
- │ still uses the rest of the character set in DOS. If you live in │
- │ Denmark as I do, these lines will do the trick: │
- │ │
- │ C:\DOS\MODE CON CP PREP=((865) C:\DOS\THE_EGA.CPI) │
- │ C:\DOS\MODE CON CP SELECT=865 │
- │ │
- │ Remember to copy the file in USE/DOS into your DOS directory and │
- │ you are off running with the new character set. Look in your DOS │
- │ manual for other contry codes specific for your country. │
- │ │
- │ │
- │ INSTRUCTIONS │
- │ ──────────── │
- │ │
- │ In the following chapters I will try to describe all the things │
- │ that you really need to know. I will not go into detail on how │
- │ to make music, enter notes and build up a tune from scratch - I │
- │ leave that up to you to figure that out. If you have previously │
- │ been using trackers, you should have no trouble using my editor. │
- │ │
- │ During these chapters I will discuss the commands available in │
- │ the tracks and sequences, the instrument and SpFX tables, keys │
- │ available in the entire editor - and the command line switches. │
- │ Other things global to the editor will be discussed here. │
- │ │
- │ While editing tracks, sequences and tables you can benefit from │
- │ the help window in the lower left corner of the screen. I advise │
- │ you to read this DOC at least once, however. │
- │ │
- │ All the three-letter box values in the lower right corner of the │
- │ screen will be discussed in the section over keys. The space you │
- │ see above the "Oc?" box (octave) will be ticked whenever a tune │
- │ has been modified without saving. This way, you can always check │
- │ if it is time to save your tune. However, this version of EdLib │
- │ does not check the box if you only alter the tables. This is due │
- │ to technical reasons; the table routines have been placed in a │
- │ seperate module - and frankly, I was too lazy to fix it! ;) │
- │ │
- │ The version v04.01 of the player is displayed in the upper right │
- │ corner of the screen. In the subdirectory "PLAYER" you will find │
- │ the file "PLAYER.BIN" which is the actual player. It is possible │
- │ that later versions of the editor only requires this player to │
- │ be replaced - in case of player updates only. In the upper right │
- │ corner you will also find a tune clock. Useful if you want to │
- │ measure the exact length of the song. │
- │ │
- │ When using the load/save requester, all EDL files will be placed │
- │ in a subdirectory called "SONGS". Later I may enhance the editor │
- │ with diretories and path input, but until then you must save and │
- │ load all your songs in this directory. Note that when saving the │
- │ song you can type the new name at the input prompt in the bottom │
- │ of the requester. Songs with an EDL extension will be compressed │
- │ to save disk space. │
- │ │
- │ It is possible to predefine the contents of all sequences in the │
- │ editor before actually using them. Edit sequence #000 until it │
- │ has the appearance you want all sequences to have and then press │
- │ Shift-F1 to fill all other sequences with it. Because this is │
- │ really happens when the song is cleared; sequence #000 is copied │
- │ into all the other sequences! │
- │ │
- │ │
- │ SEQUENCE COMMANDS │
- │ ───────────────── │
- │ │
- │ The first column of two in the sequences may take any command of │
- │ four hexadecimal digits each. The commands in player v04.01 is: │
- │ │
- │ │
- │ 6000 Cut/Stop the voice instantly. Instrument #000 in │
- │ the instrument table is used to cut the voice. │
- │ │
- │ 7XYY Vibrato - X defines the speed (0-F), and YY the │
- │ depth (00-FF) of the vibrato effect. This effect │
- │ does NOT make use of the internal OPL2 vibrato. │
- │ │
- │ 90XX New level - XX defines the level (00-3F), where │
- │ 3F is silent. Level is another word for volume. │
- │ │
- │ BXXX Pointer to SpFX table. The SpFX table is the one │
- │ you can access with the "K" key. Refer to this │
- │ table for more information. This command works │
- │ like an instrument, thus it overrides a CXXX. It │
- │ may range from 000-7FF. │
- │ │
- │ CXXX Instrument. XXX may range from 000 to 3FF. It is │
- │ good practise to leave #000 as a "no sound" as │
- │ this instrument is in fact used when typing the │
- │ cut command (6000). The table may be entered by │
- │ pressing the "M" key. Refer to this table for │
- │ more information. │
- │ │
- │ DXXX Slide up. XXX defines the speed of sliding. │
- │ │
- │ EXXX Slide down. XXX defines the speed of sliding. It │
- │ does not automatically "tie unto" the next note │
- │ like in other music players. You must "tie" the │
- │ next note yourself with the ½-key and adjust the │
- │ speed of sliding until it is perfect. This may │
- │ sound awkward at first, but this way of sliding │
- │ is much more flexible. │
- │ │
- │ │
- │ TRACK COMMANDS │
- │ ────────────── │
- │ │
- │ The track consists of a DWORD in the editor, but the table is in │
- │ fact interpreted word for word internally. │
- │ │
- │ │
- │ 8XYY???? The 8000 command defines the transposition of a │
- │ sequence. X is the direction, 0=Up. YY defines │
- │ the number of halftones to transpose. A value of │
- │ 810C transposes the sequence down one octave but │
- │ does not change the on-screen appearance of the │
- │ notes in the sequence. Using the transposition │
- │ feature properly, you can save a LOT of space │
- │ compared to the average tracker system! The word │
- │ ???? defines the sequence number itself. │
- │ │
- │ FFFFXXXX When this DWORD is met, the voice will restart │
- │ at the position defined in XXXX. It is important │
- │ to know that it counts in WORD steps. This means │
- │ that if you have ten sequences in a row with a │
- │ FFFFXXXX in the end, use FFFF0006 to wrap to the │
- │ fourth sequence - like this: │
- │ │
- │ 80000001 0 - 1 1st... │
- │ │
- │ 80000003 2 - 3 2nd... │
- │ │
- │ 80000001 4 - 5 3rd... │
- │ │
- │ ┌> 80000004 6 4th... │
- │ │ │
- │ │ 80070001 5th... │
- │ │ │
- │ │ 80070003 6th... │
- │ │ │
- │ │ 80070001 7th... │
- │ │ │
- │ │ 80070005 8th... │
- │ │ │
- │ │ 80000002 9th... │
- │ │ │
- │ │ 80000006 10th... │
- │ │ │
- │ └─ FFFF0006 Wrap... │
- │ │
- │ The player interpretes the wraps independantly │
- │ from voice to voice. This means that neither the │
- │ wrap position nor the length of tracks has to be │
- │ aligned. │
- │ │
- │ FFFE???? This command stops the voice entirely. The ???? │
- │ WORD will be ignored. Very useful for jingles! │
- │ │
- │ │
- │ THE INSTRUMENT TABLE │
- │ ──────────────────── │
- │ │
- │ This is the table you enter when pressing "M". You can also use │
- │ the "L" key to toggle between this table and the SpFX table. If │
- │ the table window is not active, it will be made active (pop-up) │
- │ before entering the table. │
- │ │
- │ The instrument table consists of 400h (1024) instruments, each │
- │ of 16 bytes in size. The bytes mainly controls the hardware OPL2 │
- │ registers on the card, but I have added a few of my own as well. │
- │ When an instrument has been defined, use the CXXX command in the │
- │ sequences to use it. │
- │ │
- │ But first, lets have a look at the instrument itself: │
- │ │
- │ │
- │ FFFF 3F 20 00 FFFF 3F 20 00 01 02 03 04 05 06 │
- │ └─────────────┘└─────────────┘ │
- │ Carrier Modulator │
- │ │
- │ │
- │ The parameters in both carrier and modulator uses the exact same │
- │ parameters, only the "modulator" part usually changes the color │
- │ of the sound while the "carrier" changes the volume and pitch. I │
- │ said "usually", because this depends on the way the operators is │
- │ connected. More about this later. │
- │ │
- │ NOTE: It is wise to leave instrument #0000 at the values defined │
- │ in the example above since this instrument is in fact used when │
- │ executing a CUT command (6000 in the command column). │
- │ │
- │ The carrier and modulator parameters will be send to the OPL2 FM │
- │ chip directly, as they are hardware based. Lets have a look at │
- │ the parameters individually. │
- │ │
- │ │
- │ FFFF This parameter controls the ADSR of the instrument. Some │
- │ of you already knows what this means. If you come from │
- │ the Commodore 64 and have been fiddling with ADSR here, │
- │ all you have to know is that is behaves upside-down - it │
- │ takes FF02 instead of 00FE! Otherwise it is very simple. │
- │ Each nibble ("F", a halfbyte), takes a parameter from 0h │
- │ to Fh, to define four parameters named the Attack, Decay │
- │ Sustain and Release. The attack defines the speed of the │
- │ volume to reach maximum level, Fh is fastest. As soon as │
- │ this level has been reached, the Decay value defines the │
- │ speed of the volume to reach the Sustain level. Again, │
- │ Fh is fastest. Sustain is a pseudo-volume level (volume) │
- │ where 0 is loudest. Release again defines the speed of │
- │ the volume to go from the Sustain level to silence. All │
- │ in all, a diagram like this can be drawn to illustrate │
- │ the ADSR envelope: │
- │ │
- │ │
- │ /\ │
- │ / \ │
- │ / \ │
- │ / \________________ │
- │ / \ │
- │ / \ │
- │ / \ │
- │ │
- │ │
- │ └─────┴───┴───────────────┴───┘ │
- │ A D S R │
- │ │
- │ │
- │ In the sequence itself, the ADS part of the ADSR will be │
- │ run as soon as the note is triggered, and maintained for │
- │ as long as the HOLD events (+++) are present. As soon as │
- │ the REST events is met (---), the note releases (R). An │
- │ exception to this rule exists in the instrument however. │
- │ If bit 5 is set to 0 in the 4th/9th byte (the bytes set │
- │ to 20h above), the Sustain is ignored and only an ADR │
- │ is executed. In other words, it ignores the HOLD (+++). │
- │ │
- │ In the modulator, the ADSR works is a similar way - only │
- │ it affects the modulation instead of the volume. Use it │
- │ to give "life" to the instrument. │
- │ │
- │ │
- │ 3F This parameter is split into bit 0-5 for the main volume │
- │ (level) and bit 6-7 for keyboard scaled level (KSL). The │
- │ level is 00h-3Fh, where 00h is loudest. Add 40h, 80h or │
- │ C0h for three rates of KSL. The KSL defines how much the │
- │ volume decreases in volume as the notes climbs upwards. │
- │ In other words, the higher the note, the lower the level │
- │ of the note. This feature is not used very often. │
- │ │
- │ In the modulator part, the level affects the modulation │
- │ instead of the volume. 00h is full modulation (100%). │
- │ │
- │ │
- │ 20 This is a multiple purpose register of the FM chip. Bits │
- │ 0-3 defines the multiplier, which works like an octave │
- │ parameter only it steps in a rather absurd way. With it, │
- │ you can change the pitch without editing the music - to │
- │ some degree! Bit 4 (add 10h) sets the KSR - which means │
- │ keyboard scaled rate. It works like KSL only it affects │
- │ the speed of which the ADSR is processed. The higher the │
- │ note, the faster the ADSR. Bit 5 (add 20h) selects ADSR │
- │ or only ADR. Normally, you would set this to 1 (ADSR) or │
- │ the HOLD/REST in sequences will be ignored; notes will │
- │ release as soon as the note has been triggered. This may │
- │ come in handy at times though. Bit 6 (add 40h) enables a │
- │ hardware vibrato. This vibrato is quite insufficient at │
- │ times to say the least, so I added my own vibrato to the │
- │ sequence commands (7XYY). Last, bit 7 (add 80h) enables │
- │ the hardware tremolo. Tremolo vibrates the level - think │
- │ of it as the "Elvis Costello" bit! ;) │
- │ │
- │ │
- │ 00 Only values from 00 to 03 is used here (bits 0-1). All │
- │ other bits is ignored. This value defines the waveform │
- │ of the operator. If you come from the Commodore 64 with │
- │ its marvellous SID-chip, you will be disappointed to see │
- │ what waveforms this chip has. They are not as flexible │
- │ as the SID-chip waveforms. 00 is a sine and is loudest. │
- │ I have also noticed that waveforms 02 and 03 seems to be │
- │ one octave higher than 00 and 01. I will try my best to │
- │ draw the waveforms now using the terrible ASCII chars. │
- │ │
- │ │
- │ ┌──┐ │
- │ ┌┘ └┐ │
- │ │ │ │
- │ ┌┘ └┐ │
- │ │ │ │
- │ │ │ │
- │ 00 = └──────┼──────┐ │
- │ │ │ │
- │ │ │ │
- │ └┐ ┌┘ │
- │ │ │ │
- │ └┐ ┌┘ │
- │ └──┘ │
- │ │
- │ ┌──┐ │
- │ ┌┘ └┐ │
- │ │ │ │
- │ ┌┘ └┐ │
- │ │ │ │
- │ │ │ │
- │ 01 = └──────┴─────── │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ ┌──┐ ┌──┐ │
- │ ┌┘ └┐ ┌┘ └┐ │
- │ │ │ │ │ │
- │ ┌┘ └┬┘ └┐ │
- │ │ │ │ │
- │ │ │ │ │
- │ 02 = └──────┴──────┘ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ ┌─┐ ┌─┐ │
- │ ┌┘ │ ┌┘ │ │
- │ │ │ │ │ │
- │ ┌┘ │ ┌┘ │ │
- │ │ │ │ │ │
- │ │ │ │ │ │
- │ 03 = └───┴──┴───┴─── │
- │ │
- │ │
- │ │
- │ │
- │ This should give you an idea of what the waveforms looks │
- │ like. All waveforms are variations on the sine waveform. │
- │ │
- │ │
- │ That concludes the five bytes in each operator, which constructs │
- │ the actual sound. The last 6 bytes in the instrument all behaves │
- │ globally to the instrument. │
- │ │
- │ │
- │ 01 This is the last hardware register. In bit 0, you define │
- │ the connection of the two operators. Normally it is set │
- │ to 0 (modulation), but if set to 1 (additive), the modu- │
- │ lator operator will behave exactly as the carrier. This │
- │ is great for organ sounds! Bits 1-3 defines the feedback │
- │ of the modulation (0,2,4...E), which is the number of │
- │ times the output is fed right back into the modulation │
- │ process, creating overtones. If you set it high (E or F) │
- │ you get so many of them that you get...noise! So this is │
- │ the parameter you use the make drums. Again, if you come │
- │ from the Commodore 64 you will be a little disappointed. │
- │ The noise is stuck at a high frequency, and cannot sound │
- │ as good as the noise on the SID-chip. :( Often drums on │
- │ AdLib can be improved by using a second voice, in which │
- │ you create a bassdrum-like sine which is sliding down. │
- │ │
- │ │
- │ 02 This is a software parameter. Use values 00-7F to fine- │
- │ tune the instrument - if you are using two voices on top │
- │ of each other, this may phase the two voices together in │
- │ order to produce a chorus effect. │
- │ │
- │ │
- │ 03 Hard restart timer value. Defines the number of frames │
- │ BEFORE the next note, that the next value below is to be │
- │ processed. 00h turns this OFF. Frames is a term for the │
- │ smallest timeunit a player can measure, which of course │
- │ is the number of times the player is called. If the IRQ │
- │ value is set to 46h, the frame corresponds to 1/70'th of │
- │ a second. Good values are 01-03. │
- │ │
- │ │
- │ 04 Hard restart Sustain/Release value. When the timer is up │
- │ in the previous byte above, this value is put into the │
- │ Sustain/Release on the soundcard for that voice. This is │
- │ useful to "cut down" on a long release before the next │
- │ note in a sequence. ADSR usually continues on the Attack │
- │ from whatever point the Release from the last note might │
- │ have reached, but this is not always desirable. You can │
- │ also use these parameters to make the music more funky. │
- │ │
- │ │
- │ 05-06 These bytes are unused in player v04.01. Do not put any │
- │ information into them as they may be used later on. Keep │
- │ them at 00h. │
- │ │
- │ │
- │ THE SpFX TABLE │
- │ ────────────── │
- │ │
- │ This is the table you enter when pressing "K". You can also use │
- │ the "L" key to jump between this table and the instrument table. │
- │ If the table window is not active, it will be made active before │
- │ entering the table. │
- │ │
- │ The SpFX (Special Effects) table consists of 800h (2048) effects │
- │ lines, of 8 bytes in size. When an SpFX has been defined you can │
- │ use the BXXX command in the sequences to point to it. │
- │ │
- │ A SpFX "set" may look like this: │
- │ │
- │ │
- │ 0001 0C FF 10 20 0002 │
- │ │
- │ │
- │ Let's have a look at these parameters individually. │
- │ │
- │ │
- │ 0001 This WORD defines the instrument to use for the set. Use │
- │ values 000-3FF. Add with 8000h to use locked frequencies │
- │ with the next byte below. │
- │ │
- │ │
- │ 0C Half note value, added to the actual note for as long as │
- │ this "set" lasts. Eg, if the note in the sequence is C-2 │
- │ and this value is 02, the note will sound as D-2. If you │
- │ add the WORD value above with 8000h, the values will NOT │
- │ be added. Instead, the values will refer to raw notes as │
- │ if 00h equals C-0, 01 equals C#0 and so forth. When used │
- │ to add the note, the value is signed; 00-7F for positive │
- │ and FF-80 for negative (-01h - -80h). Locked frequencies │
- │ can often be useful for drums which should be unaffected │
- │ by tranpositions. │
- │ │
- │ │
- │ FF New modulator level. The value overrides the 8th byte in │
- │ the instrument. If this value is FF, the 8th byte is NOT │
- │ replaced and this value will be ignored. Useful if you │
- │ want to add to the original value in the instrument. │
- │ │
- │ │
- │ 10 Modulator level add. Added each frame to the 8th byte in │
- │ the instrument, as an alternative to the ADSR modulating │
- │ process. The value is a signed byte; 00-7F for positive │
- │ and FF-80 for negative (-01h - -80h). Use the byte above │
- │ to set the start modulator level if needed. │
- │ │
- │ │
- │ 20 Duration. Defines the number of frames (00-FF) of this │
- │ set. 00h is ONE frame. When the counting is up, the next │
- │ WORD specifies the next SpFX line to interprete. │
- │ │
- │ │
- │ 0002 Pointer to next SpFX line. After the duration counter in │
- │ the previous byte above is up, this WORD specifies the │
- │ next line to jump to. Values ranges from 0000h-07FFh. │
- │ │
- │ │
- │ This table is very useful if you want to make arpeggio or sounds │
- │ with more life than the normal ADSR modulation can give you. Now │
- │ I won't advise you to make arpeggio chords when you have as much │
- │ as 9 voices, but it could come in handy when improving drums. As │
- │ an example, here is the dreaded 0-3-7 arpeggio chord: │
- │ │
- │ │
- │ 0000: 0001 00 FF 00 0001 │
- │ 0001: 0001 03 FF 00 0002 │
- │ 0002: 0001 07 FF 00 0000 │
- │ │
- │ │
- │ The above example uses instrument #0001 to produce a 0-3-7 chord │
- │ using arpeggio. The duration bytes are all 00, meaning that the │
- │ arpeggio will run at the fastest possible speed. No modulation │
- │ adding is involved. Notice how the pointers makes the three sets │
- │ spin around in an endless loop! Use B000 in the sequence to try │
- │ out this minor arpeggio chord. │
- │ │
- │ │
- │ KEYS │
- │ ──── │
- │ │
- │ Here is a list of all keys available in EdLib, some of them with │
- │ a deeper description than found in the HELP pages (Alt-F1). │
- │ │
- │ │
- │ F1 Play normally from StartPoint (SP) position. │
- │ │
- │ This key does not scroll the music, useful when │
- │ editing the music while it is playing. │
- │ │
- │ │
- │ F2 Stop all music activity. │
- │ │
- │ You can also use the ESCAPE key. If you're using │
- │ a MIDI keyboard, you can also cut hanging voices │
- │ with this key. │
- │ │
- │ │
- │ F3 FollowPlay from StartPoint position. │
- │ │
- │ The music scrolls as the music plays to show the │
- │ current position being played. Use the CTRL keys │
- │ as a fast forward function in this mode. NOTE: I │
- │ do not recommend using disk cache software such │
- │ as "SMARTDRV" as it disrupts the scrolling! :( │
- │ │
- │ │
- │ F4 Set new StartPoint position (SP). │
- │ │
- │ You can set the new position anywhere, no matter │
- │ if you're halfway through a sequence or not. The │
- │ hexadecimal stepcounter to the left of the main │
- │ editing area will turn dark blue below the point │
- │ and light blue after it. │
- │ │
- │ │
- │ F5 Copy any sequence into the current sequence. │
- │ │
- │ Use this key to overwrite the sequence you are │
- │ currently editing, with the contents of another. │
- │ │
- │ │
- │ F6 Decrease the tune speed. │
- │ │
- │ Hold CTRL to specifically define it. │
- │ │
- │ │
- │ F7 Increase the tune speed. │
- │ │
- │ Hold CTRL to specifically define it. The Spd box │
- │ in the bottom right corner of the screen informs │
- │ you of the current value. │
- │ │
- │ │
- │ F8 Define new SuperInsert size. │
- │ │
- │ │
- │ F9 Execute the SuperInsert in a sequence. │
- │ │
- │ When pressing this key you will insert as many │
- │ events into the sequence as defined with the F8 │
- │ key. The SpI counter in the bottom right corner │
- │ of the screen informs you of the current value. │
- │ Note that you can have no more than 5Fh events │
- │ in a single sequence. If you want more than this │
- │ you have to split it up into two sequences. │
- │ │
- │ │
- │ F10 Goto any stepcounter line. │
- │ │
- │ The hexadecimal stepcounter is the column to the │
- │ far left of the editing area. │
- │ │
- │ │
- │ F11 Define new RhythmJump value. │
- │ │
- │ Sets the number of events the cursor jumps after │
- │ pressing a note key in the sequence. The RtJ box │
- │ in the bottom right corner of the screen informs │
- │ you of the current value. │
- │ │
- │ │
- │ F12 Load music in EDL format. │
- │ │
- │ Brings up a file requester from which you can │
- │ choose an EDL file to load. You can also use the │
- │ Ctrl-F3 key. │
- │ │
- │ │
- │ Shift F1 Clear all tracks and sequences. │
- │ │
- │ Leaves the instruments and SpFX tables intact. A │
- │ useful function when borrowing instruments from │
- │ another song. Sequence #000 is actually used to │
- │ fill all sequences, so if you edit this sequence │
- │ before clearing you can userdefine all at once. │
- │ │
- │ │
- │ Shift F2 Clear instruments and SpFX tables. │
- │ │
- │ Leaves the tracks and sequences intact. May come │
- │ in handy if you disliked all the instruments and │
- │ want to start all over defining them again. │
- │ │
- │ │
- │ Shift F5 Copy any sequence into another sequence. │
- │ │
- │ As the F5 key, only it takes both a source and a │
- │ destination input. │
- │ │
- │ │
- │ Shift F12 Save music in EDL format. │
- │ │
- │ Brings up a file requester from which you can │
- │ save your song. You can also use the Ctrl-F4 key │
- │ instead. │
- │ │
- │ │
- │ Ctrl F1 Decrease the IRQ timer speed. │
- │ │
- │ Ctrl F2 Increase the IRQ timer speed. │
- │ │
- │ The above keys changes the timer interrupt speed │
- │ of the song. Be careful when using these! Better │
- │ have a talk with the programmer using your music │
- │ to make sure he accepts the new value. Normally │
- │ they are set to 46h (70) which matches the speed │
- │ of the screen update in 320x200 mode. This way, │
- │ the music can be used in a vertical retrace. In │
- │ some situations you can make use of a fast timer │
- │ interrupt to speed up the arpeggio in an instru- │
- │ ment. If you only want to change the speed of a │
- │ song, use the F6/F7 keys instead. The Irq box in │
- │ the bottom right corner of the screen keeps hold │
- │ of the current timer interrupt speed. │
- │ │
- │ │
- │ Ctrl F3 Load music in EDL format. │
- │ │
- │ You can also use the F12 key. │
- │ │
- │ │
- │ Ctrl F4 Save music in EDL format. │
- │ │
- │ You can also use the Shift-F12 key. │
- │ │
- │ │
- │ Ctrl F5 Convert the music to D00 format and save it. │
- │ │
- │ This brings up a requester asking for a filename │
- │ of the packed tune. After typing this, the music │
- │ will be packed and saved as a D00 file - to be │
- │ used in your own programs. The packed tune can't │
- │ be loaded into the editor again, so be sure you │
- │ save your source with Shift-F12 or Ctrl-F4! Note │
- │ that the packer goes into a 9-PASS process. It │
- │ has been tested intensively with no problems so │
- │ far - however, should the packer ever lock up at │
- │ any time, please note the pass number and mail │
- │ me this number. My address can be found in the │
- │ end of this file. Thank you! │
- │ │
- │ │
- │ Ctrl F6 Define new tune speed. │
- │ │
- │ Input the speed. Use F6/F7 to decrease/increase. │
- │ │
- │ │
- │ Ctrl F7 Define new tune speed. │
- │ │
- │ Input the speed. Use F6/F7 to decrease/increase. │
- │ │
- │ │
- │ Ctrl F9 Input music name in top of screen. │
- │ │
- │ The input takes 20 characters as the name of the │
- │ music. Remember to do this before saving a tune │
- │ to disk or packing it! D00-files also contains │
- │ this string. │
- │ │
- │ │
- │ Ctrl F10 Input composer name in top of screen. │
- │ │
- │ Again takes 20 characters. Remember to press it │
- │ before saving or packing the tune! The D00-files │
- │ also contains this string. │
- │ │
- │ │
- │ M Enter instrument table. │
- │ │
- │ Will enter the instrument table at the position │
- │ you left it at last time. If the table window is │
- │ not active, it will be made active first. │
- │ │
- │ │
- │ K Enter SpFX table. │
- │ │
- │ Will enter the table at the position you left it │
- │ at last time. If the table window is not active, │
- │ it will be made active first. │
- │ │
- │ │
- │ L Toggle between instrument and SpFX tables. │
- │ │
- │ Enters the other table. If you type it outside a │
- │ table it will enter the other table than the one │
- │ you edited last time. If the table window is not │
- │ active, it will be made active first. │
- │ │
- │ │
- │ Alt Down Change main volume byte below the current voice. │
- │ │
- │ Beneath each voice you'll find a value which can │
- │ be edited with this key combination. The volumes │
- │ controls the main volume for that voice, and has │
- │ priority over volume commands in the sequence. │
- │ │
- │ │
- │ Alt Up Change logical voice byte above the voice. │
- │ │
- │ Using "Alt-Up" you can change the value above a │
- │ voice. This value is the physical voice number │
- │ attached to the voice. Changing the values, you │
- │ can completely rearrange voices - you can even │
- │ make the same voice appear at several places! It │
- │ may come in handy when some voices has something │
- │ in common, like chords or double-voice drums. │
- │ │
- │ │
- │ Ctrl Fast forward while in FollowPlay mode. │
- │ │
- │ Only works when in FollowPlay mode. You cannot │
- │ use fast forward when playing with F1. │
- │ │
- │ │
- │ Alt 1-9 Toggles voices 1-9 ON or OFF. │
- │ │
- │ Note that the logical voice numbers above voices │
- │ goes dark grey when a voice is OFF. │
- │ │
- │ │
- │ Alt Tab Turn all voices OFF except the edited voice. │
- │ │
- │ │
- │ , Turn all voices ON. │
- │ │
- │ │
- │ . Turn all voices OFF. │
- │ │
- │ │
- │ - Toggle current voice ON or OFF. │
- │ │
- │ │
- │ Q2W3ER5... Play in note column or instrument/SpFX tables. │
- │ │
- │ Use these keys to play with the instrument or to │
- │ type notes in the right column of a sequence. As │
- │ you type a key the instrument last edited in the │
- │ main instrument table will play. Use the Ctrl-Up │
- │ and Ctrl-Down keys to change the octave. │
- │ │
- │ │
- │ Spacebar Erase sequence command or a REST in note column. │
- │ │
- │ In the sequence itself you can erase commands or │
- │ notes by tapping space on them. SPACE on a note │
- │ enters a REST (---) event. │
- │ │
- │ │
- │ X/C/V Put a HOLD (+++) in the note column. │
- │ │
- │ All 3 keys have the exact same meaning. I made │
- │ this to make it easier for you to edit blindly. │
- │ As the key is pressed, a HOLD (+++) appears. │
- │ │
- │ │
- │ Z HOLD to the previous note, REST to the next. │
- │ │
- │ A very useful command that should be used when- │
- │ ever possible instead of SPACE and X/C/V. Press │
- │ it to put HOLD (+++) up towards the note and put │
- │ REST (---) down towards the next one. It ignores │
- │ the presence of old HOLD and REST. Also, it may │
- │ be pressed in the command column - which is not │
- │ possible with the other HOLD/REST keys. │
- │ │
- │ │
- │ ½ Toggle tienote ON or OFF. │
- │ │
- │ On my keyboard it is the key just below the ESC │
- │ and above the TAB key. When pressed on an event │
- │ in a sequence, it toggles the note white/yellow. │
- │ When white, the note is changed in the music but │
- │ the effects of the instrument is NOT restarted. │
- │ │
- │ │
- │ Enter Jumps between track editing or sequence editing. │
- │ │
- │ Also used to edit names in the instrument table. │
- │ │
- │ This is probably the most used key when editing │
- │ notes as it jumps in and out of track values. In │
- │ the instrument table you can edit the name of an │
- │ instrument with this key. This name may contain │
- │ up to 16 characters. │
- │ │
- │ │
- │ Tab Jump to the right voice. │
- │ │
- │ Ctrl Tab Jump to the left voice. │
- │ │
- │ Use the above keys to switch between voices. As │
- │ you enter a new voice the voice is "blown up" to │
- │ show the entire voice (track, commands & notes). │
- │ The other voices will be shrinked, so that only │
- │ the notes can be seen - the most essential part! │
- │ You can spot the beginning and end of sequences │
- │ by observing the "> <" signs around the notes. │
- │ │
- │ │
- │ Q Enter the next unused sequence in the track. │
- │ │
- │ Another useful function. When editing a song and │
- │ deleting/inserting sequences, you may at times │
- │ forget which sequences you have used and which │
- │ you have trashed. By pressing the key on a track │
- │ number, the editor will automatically find the │
- │ first unused sequence number and enter the value │
- │ for you. │
- │ │
- │ │
- │ /// Cursor keys, used globally in the editor. │
- │ │
- │ │
- │ Home/End Used globally in the editor. │
- │ │
- │ │
- │ Delete Delete in track or sequence mode. │
- │ │
- │ │
- │ Insert Insert in track or sequence mode. │
- │ │
- │ Note that you can have no more than 5Fh events │
- │ in a single sequence. If you want more than this │
- │ you have to split it up into two sequences. │
- │ │
- │ │
- │ ESC Exits modes, also stops the music. │
- │ │
- │ This is also used to remove the windows with the │
- │ instrument and SpFX tables. │
- │ │
- │ │
- │ Page Up/Down Used globally in the editor. │
- │ │
- │ │
- │ Ctrl Up Increase the note octave. │
- │ │
- │ Ctrl Down Decrease the note octave. │
- │ │
- │ The above keys changes the octave available with │
- │ "Q2W3ER5..." keys. The Oc? counter in the bottom │
- │ right corner of the screen informs you of the │
- │ current value. Also Ctrl-Right may decrease. │
- │ │
- │ │
- │ Ctrl Pg Up Home to the absolute top. │
- │ │
- │ │
- │ Ctrl Pg Down Home to the absolute bottom. │
- │ │
- │ Does not yet work in the voice editing area. │
- │ │
- │ │
- │ S Toggle CPU rastertime ON or OFF. │
- │ │
- │ The rastertime is shown as a grey block in the │
- │ outscan border. May be useful for the programmer │
- │ but keep in mind that the music takes much more │
- │ rastertime in the editor than when packed! │
- │ │
- │ │
- │ Ctrl Break Exit to DOS. │
- │ │
- │ You can skip the palette fade with the /P switch │
- │ on the commandline. │
- │ │
- │ │
- │ COMMANDLINE PARAMETERS │
- │ ────────────────────── │
- │ │
- │ Note that all switches may be preceeded with either a slash "/" │
- │ or a minus "-" character. Slash is used in the examples below. │
- │ │
- │ You can load an EDL file from the commandline prompt, if needed. │
- │ │
- │ Usage: EDLIB [<Switches>] [<Name of EDL file>] │
- │ │
- │ │
- │ /? Help page briefly describing the switches. │
- │ │
- │ │
- │ /F Use followplay immediately. │
- │ │
- │ Useful when loading an EDL file from the command │
- │ line and you want to play it right away. │
- │ │
- │ │
- │ /P Do not fade colors when quitting. │
- │ │
- │ If you feel annoyed having to wait for the fade │
- │ to get finished, use this switch to skip it. │
- │ │
- │ │
- │ /C Convert EDL to D00 (NOT READY YET). │
- │ │
- │ Reserved for future expansion; may in later ver- │
- │ sions of EdLib convert from EDL to D00 without │
- │ having to enter the editor itself. Until this is │
- │ implemented you must do it with Ctrl-F5 inside │
- │ the editor. │
- │ │
- │ │
- │ /M Use the MPU-401 interface. │
- │ │
- │ If you have an external synthesizer connected │
- │ through you MPU-401 MIDI interface you can play │
- │ the AdLib instruments on it. Cursor up and down │
- │ in the instrument table to choose the instrument │
- │ and change the octave with Ctrl-Up or Ctrl-Down. │
- │ Now you can play this instrument on the keyboard │
- │ synth, using full polyphony and velocity. Note │
- │ that aftertouch uses a default vibrato setting │
- │ which is independant of the bytes in the editor. │
- │ You cannot use the MIDI to record music in this │
- │ version of EdLib. │
- │ │
- │ │
- │ /A Ignore AdLib detection. │
- │ │
- │ Useful at times when the detection routine might │
- │ fail, even if an OPL2 IS present! E.g, if your │
- │ computer uses both a Sound Blaster and a Gravis │
- │ Ultrasound at the same time. The timer detection │
- │ does not always work in those circumstances. │
- │ │
- │ │
- │ CONTACT ADDRESS │
- │ ─────────────── │
- │ │
- │ That does it for this DOC. I'm sorry if I haven't been nice to │
- │ your printer making formfeeds, table of contents and other nice │
- │ stuff. But what the heck - you only want to read this once - the │
- │ help pages in the editor ought to do the rest. :) │
- │ │
- │ I hope you actually managed to read the DOC in spite of my awful │
- │ grammar! I know it turns out a smile once in a while. As long as │
- │ you can understand what I mean, I don't really give a damn... │
- │ │
- │ If you want to contact me for some (legal only!) reason, you can │
- │ write to the following snail mail address: │
- │ │
- │ │
- │ Jens-Christian Huus │
- │ Tranegaardsvej 71 a │
- │ 2900 Hellerup │
- │ Denmark │
- │ │
- │ │
- │ FidoNet: 2:236/86.22 (Kilroy BBS) │
- │ │
- │ │
- │ THE BORING STUFF │
- │ ──────────────── │
- │ │
- │ All files in the archive should be distributed in their original │
- │ form - it is forbidden to modify anything. The player may not be │
- │ used commercially in any way without permission from the author. │
- │ │
- │ The names Vibrants, the SirFace System and EdLib are trademarks │
- │ of Jens-Christian Huus. Other product and company names are the │
- │ trademarks of their respective owners. │
- │ │
- │ All warranties are disclaimed, including damage to your hardware │
- │ and/or software from use of this product. In no event will I be │
- │ liable to you for any damages - including any lost profits, lost │
- │ savings or other incidental or consequential damages arising out │
- │ of your use or inability to use the program, or any other claim │
- │ by any other party. │
- │ │
- │ │
- └──────────────────────────────────────────────────────────────────────────────┘
-