· 8 years ago · Jan 18, 2018, 03:06 PM
1┌──────────────────────────────────────────────────────────────────────────────â”
2│ EdLib v1.05a rev 055 ................... AdLib editor by Jens-Christian Huus │
3├──────────────────────────────────────────────────────────────────────────────┤
4│ │
5│ │
6│ INTRODUCTION │
7│ ──────────── │
8│ │
9│ At last you can lay your hands on an editor which makes full use │
10│ of the OPL2 AdLib capabilities of your AdLib card or compatibles │
11│ such as the entire Sound Blaster series! The editor you now have │
12│ in your possession was in fact developed mainly in 1992-1993. In │
13│ 1993 I enhanced it furthermore, this time mostly cosmetical only │
14│ but also a few userfriendly additions such as a filesystem which │
15│ packs the work tune on your harddisk to save space. Since 1993 I │
16│ hardly touched it - however, it was used a lot in games projects │
17│ such as LollyPop from Brain Bug (released by Rainbow Arts). │
18│ │
19│ Actually it was my intention to keep the editor for ourselves in │
20│ order to support AdLib in games. However, since the development │
21│ of the editor I have experienced a generel hostility towards the │
22│ old AdLib standard. People begun to actually hate FM sounds. The │
23│ arrival of GUS and AWE 32 made wavetable techniques very popular │
24│ and indeed it sounds very good, but there are some things in the │
25│ old FM standard that is unique. You can't fiddle with samples in │
26│ the same way as you can with FM. I personally never quite liked │
27│ sampling, I find it downright boring. With a FM chip it is like │
28│ on a C64; you have a few parameters and everything you do has to │
29│ be done within these parameters. These boundaries makes it funny │
30│ to make music, to see how far you can actually push AdLib. To do │
31│ sounds on FM requires expertice but if you're good at it, almost │
32│ any instrument can be reproduced properly, except perhaps drums. │
33│ │
34│ This is the reason why I decided to release my editor. It uses a │
35│ system very similar to the ordinary tracker system, but has been │
36│ enhanced with individual sequences for each track. Each sequence │
37│ can even vary in size. Because of the natural way of designing │
38│ my system, I find it vastly superior to the tracker system. It │
39│ uses much less memory and allows each sequence to be transposed │
40│ individually. This is the exact same system as I used on the C64 │
41│ editor which was heavily used in that scene. │
42│ │
43│ Freaks from the good old C-64 with the editing system used there │
44│ should be able to use the editor right away. Just tap ALT-F1 and │
45│ a list of keys will appear. :) │
46│ │
47│ As an extra bonus I have included a player with the instructions │
48│ on how to use the finished music in your own programs! Please go │
49│ to the "USE" directory and read the DOC file there for some more │
50│ information on this. │
51│ │
52│ All files in this archive is freeware - if you payed for it, you │
53│ have been cheated! However, I reserve the rights to maintain all │
54│ copyrights. Do NOT reverse engineer my code or else! :( │
55│ │
56│ If you make some nice tunes in it, why not let it be "EDL-Ware"? │
57│ I would be very happy to hear what you can do with this! :) │
58│ │
59│ │
60│ FEATURES │
61│ ──────── │
62│ │
63│ The archive contains both the editor and loads of demo songs to │
64│ demonstrate the editor. Below is just some of the things you can │
65│ do with the editor... │
66│ │
67│ │
68│ - Edit and play 9 voices of AdLib while viewing and editing 1024 │
69│ instruments complete with a name for each instrument. │
70│ │
71│ - Save all music and instruments in a work file of approximately │
72│ 3 to 9 Kb size. These files will have the extension "EDL". │
73│ │
74│ - Pack the music to a compressed format (around 1 - 6 Kb), which │
75│ is directly playable in your own programs. Extension is "D00". │
76│ Packed music also uses much less processor time. │
77│ │
78│ - Edit song name and composer name. This information also exists │
79│ in the compressed D00 format. │
80│ │
81│ - Because EDL and D00 is not compatible, you can be sure the D00 │
82│ cannot be ripped and edited. The editor does not load D00. You │
83│ may find this bad, but I actually see this as an advantage. Do │
84│ you like people to mess around in your source tune? ;) │
85│ │
86│ - All AdLib parameters editable, with extra enhancements such as │
87│ hard restart, arpeggio, modulation programs and finetune. │
88│ │
89│ - Both tune speed and timer IRQ speed may be edited. The normal │
90│ tune speed uses a floating point system to access more speeds │
91│ with a smaller granularity than normally possible. │
92│ │
93│ - Use "+++" to hold a note in sequences and "---" to release it. │
94│ This makes it easier to control the ADSR of an instrument. │
95│ │
96│ - Play with instruments using "QWERT..." - and if your keyboard │
97│ is connected via a MPU-401 compatible MIDI interface, you can │
98│ even play the AdLib instruments on it, complete with velocity │
99│ and aftertouch. And polyphonic too of course. I've tested this │
100│ on both the original MPU-401 and the Sound Blaster 16. I only │
101│ use the UART mode on the interface. │
102│ │
103│ - Very flexible track and sequence system taking less memory and │
104│ is much more efficient than the standard tracker system. Every │
105│ sequence is piled on top of each other to show you exactly how │
106│ the music is played. │
107│ │
108│ - Unique tienote command makes it possible to play notes without │
109│ restarting the effects set for the instruments. │
110│ │
111│ - Full delete, insert, copy and other similar editing facilities │
112│ available in both tracks and sequences. │
113│ │
114│ - Use "FollowPlay" to see the music scroll as it is being played │
115│ at the same time. You may even use fast forward in this mode. │
116│ │
117│ │
118│ REQUIREMENTS │
119│ ──────────── │
120│ │
121│ The editor requires a PC with 80x50 text screen capabilities and │
122│ an AdLib card or compatible. Anything that is equipped with an │
123│ OPL2 chip or better. I wouldn't recommend using the SBOS program │
124│ for the GUS however - it doesn't emulate FM sounds 100% correct. │
125│ │
126│ Enhanced keyboard is optional - F11 and F12 is used but has been │
127│ duplicated elsewhere to support all keyboards. │
128│ │
129│ If you have a MPU-401 interface (or compatible) you can use your │
130│ synthesizer to play with AdLib instruments through MIDI. │
131│ │
132│ │
133│ FILES │
134│ ───── │
135│ │
136│ The following files should be present in the archive. If they're │
137│ not, the archive has been tampered with and should be replaced │
138│ by a new copy. Remember to unzip with the "-d" switch. │
139│ │
140│ │
141│ EDLIB.001 7382 Part of the main editor │
142│ EDLIB.002 7350 Part of the main editor │
143│ EDLIB.DOC 96022 This documentation │
144│ EDLIB.EXE 19184 The main editor │
145│ EDLIB.REV 1722 Revision update list │
146│ │
147│ PLAYER\DATA.BIN 164 Initialized player data │
148│ PLAYER\INTERFAC.BIN 801 Combines player with editor │
149│ PLAYER\PLAYER.BIN 4576 AdLib player v04.01 │
150│ │
151│ SONGS\DRX_BUS.EDL 3593 Drax - "Bus" │
152│ SONGS\DRX_FLAS.EDL 4513 Drax - "Flash2" │
153│ SONGS\DRX_HUMA.EDL 3962 Drax - "Human Nature" │
154│ SONGS\DRX_SAD.EDL 3253 Drax - "Sad" │
155│ SONGS\DRX_STRE.EDL 3671 Drax - "Street Wise" │
156│ │
157│ SONGS\JCH_INS8.EDL 2526 Jch - "Instrument Test #8" │
158│ SONGS\JCH_PH6.EDL 2383 Jch - "Phase" (TEST) │
159│ │
160│ SONGS\MSK_FRSH.EDL 2782 Msk - "Fresh" │
161│ SONGS\MSK_OBER.EDL 3086 Msk - "En lille test" │
162│ │
163│ SONGS\MTL_ALTT.EDL 3173 Metal - "Alttoga" │
164│ SONGS\MTL_HY11.EDL 4185 Metal - "Hybrid" │
165│ SONGS\MTL_NM11.EDL 4212 Metal - "Soul Shock" │
166│ SONGS\MTL_SL12.EDL 3477 Metal - "Sulfo12" │
167│ SONGS\MTL_SP13.EDL 4087 Metal - "Space13" │
168│ │
169│ SONGS\PJO_ARGH.EDL 2483 Jo - "Aaaaarggghhh" │
170│ SONGS\PJO_DIP.EDL 2137 Jo - "Dip" │
171│ SONGS\PJO_GALW.EDL 2549 Jo - "Like Galway" │
172│ SONGS\PJO_HORR.EDL 2461 Jo - "Fly in Spiders Web!" │
173│ SONGS\PJO_KOER.EDL 2472 Jo - "Koere" │
174│ SONGS\PJO_LAL.EDL 2707 Jo - "Drums are hard to do" │
175│ SONGS\PJO_MTHS.EDL 2748 Jo - "Submission to -X-" │
176│ SONGS\PJO_REGG.EDL 2293 Jo - "Reggae" │
177│ SONGS\PJO_SUND.EDL 2513 Jo - "Boring Sunday" │
178│ SONGS\PJO_TRY2.EDL 2784 Jo - "Hard Guitar" │
179│ SONGS\PJO_WAIT.EDL 2393 Jo - "1st Interstellar Jmp" │
180│ │
181│ SONGS\VIB_FIS3.EDL 2812 Vibrants - "Fis3" │
182│ SONGS\VIB_VOL3.EDL 2619 Vibrants - "Volly3" │
183│ │
184│ USE\- 277 MakeFile for Borland "MAKE" │
185│ USE\GLOBALS.INC 2937 Labels used by the player │
186│ USE\MPLAYER.DOC 32636 Documentation on how to use │
187│ USE\MPLAYER.OBJ 5783 Player v04.00 OBJ link file │
188│ USE\STR_WISE.D00 3082 Drax - "Street Wise" tune │
189│ USE\TEST.ASM 12523 Example source code │
190│ USE\TEST.EXE 5869 Run this to hear the music │
191│ USE\TEST.OBJ 1285 Test OBJ link file │
192│ │
193│ USE\DOS\THE_EGA.CPI 9805 New character set for DOS │
194│ │
195│ │
196│ CPI FILE │
197│ ──────── │
198│ │
199│ I have included a file named "THE_EGA.CPI" which you can use in │
200│ your AUTOEXEC.BAT instead of the old "EGA.CPI" file. It contains │
201│ a new 80x25 character set by Claus Marn¢e (Banshee/Bonzai) and a │
202│ great new 80x50 character set by Niels Krogh Mortensen (Who made │
203│ the original Hugo TV character for SilverRock Productions). When │
204│ using EdLib the editor will look much better with this installed │
205│ in your AUTOEXEC.BAT. The editor redefines a few characters, but │
206│ still uses the rest of the character set in DOS. If you live in │
207│ Denmark as I do, these lines will do the trick: │
208│ │
209│ C:\DOS\MODE CON CP PREP=((865) C:\DOS\THE_EGA.CPI) │
210│ C:\DOS\MODE CON CP SELECT=865 │
211│ │
212│ Remember to copy the file in USE/DOS into your DOS directory and │
213│ you are off running with the new character set. Look in your DOS │
214│ manual for other contry codes specific for your country. │
215│ │
216│ │
217│ INSTRUCTIONS │
218│ ──────────── │
219│ │
220│ In the following chapters I will try to describe all the things │
221│ that you really need to know. I will not go into detail on how │
222│ to make music, enter notes and build up a tune from scratch - I │
223│ leave that up to you to figure that out. If you have previously │
224│ been using trackers, you should have no trouble using my editor. │
225│ │
226│ During these chapters I will discuss the commands available in │
227│ the tracks and sequences, the instrument and SpFX tables, keys │
228│ available in the entire editor - and the command line switches. │
229│ Other things global to the editor will be discussed here. │
230│ │
231│ While editing tracks, sequences and tables you can benefit from │
232│ the help window in the lower left corner of the screen. I advise │
233│ you to read this DOC at least once, however. │
234│ │
235│ All the three-letter box values in the lower right corner of the │
236│ screen will be discussed in the section over keys. The space you │
237│ see above the "Oc?" box (octave) will be ticked whenever a tune │
238│ has been modified without saving. This way, you can always check │
239│ if it is time to save your tune. However, this version of EdLib │
240│ does not check the box if you only alter the tables. This is due │
241│ to technical reasons; the table routines have been placed in a │
242│ seperate module - and frankly, I was too lazy to fix it! ;) │
243│ │
244│ The version v04.01 of the player is displayed in the upper right │
245│ corner of the screen. In the subdirectory "PLAYER" you will find │
246│ the file "PLAYER.BIN" which is the actual player. It is possible │
247│ that later versions of the editor only requires this player to │
248│ be replaced - in case of player updates only. In the upper right │
249│ corner you will also find a tune clock. Useful if you want to │
250│ measure the exact length of the song. │
251│ │
252│ When using the load/save requester, all EDL files will be placed │
253│ in a subdirectory called "SONGS". Later I may enhance the editor │
254│ with diretories and path input, but until then you must save and │
255│ load all your songs in this directory. Note that when saving the │
256│ song you can type the new name at the input prompt in the bottom │
257│ of the requester. Songs with an EDL extension will be compressed │
258│ to save disk space. │
259│ │
260│ It is possible to predefine the contents of all sequences in the │
261│ editor before actually using them. Edit sequence #000 until it │
262│ has the appearance you want all sequences to have and then press │
263│ Shift-F1 to fill all other sequences with it. Because this is │
264│ really happens when the song is cleared; sequence #000 is copied │
265│ into all the other sequences! │
266│ │
267│ │
268│ SEQUENCE COMMANDS │
269│ ───────────────── │
270│ │
271│ The first column of two in the sequences may take any command of │
272│ four hexadecimal digits each. The commands in player v04.01 is: │
273│ │
274│ │
275│ 6000 Cut/Stop the voice instantly. Instrument #000 in │
276│ the instrument table is used to cut the voice. │
277│ │
278│ 7XYY Vibrato - X defines the speed (0-F), and YY the │
279│ depth (00-FF) of the vibrato effect. This effect │
280│ does NOT make use of the internal OPL2 vibrato. │
281│ │
282│ 90XX New level - XX defines the level (00-3F), where │
283│ 3F is silent. Level is another word for volume. │
284│ │
285│ BXXX Pointer to SpFX table. The SpFX table is the one │
286│ you can access with the "K" key. Refer to this │
287│ table for more information. This command works │
288│ like an instrument, thus it overrides a CXXX. It │
289│ may range from 000-7FF. │
290│ │
291│ CXXX Instrument. XXX may range from 000 to 3FF. It is │
292│ good practise to leave #000 as a "no sound" as │
293│ this instrument is in fact used when typing the │
294│ cut command (6000). The table may be entered by │
295│ pressing the "M" key. Refer to this table for │
296│ more information. │
297│ │
298│ DXXX Slide up. XXX defines the speed of sliding. │
299│ │
300│ EXXX Slide down. XXX defines the speed of sliding. It │
301│ does not automatically "tie unto" the next note │
302│ like in other music players. You must "tie" the │
303│ next note yourself with the ½-key and adjust the │
304│ speed of sliding until it is perfect. This may │
305│ sound awkward at first, but this way of sliding │
306│ is much more flexible. │
307│ │
308│ │
309│ TRACK COMMANDS │
310│ ────────────── │
311│ │
312│ The track consists of a DWORD in the editor, but the table is in │
313│ fact interpreted word for word internally. │
314│ │
315│ │
316│ 8XYY???? The 8000 command defines the transposition of a │
317│ sequence. X is the direction, 0=Up. YY defines │
318│ the number of halftones to transpose. A value of │
319│ 810C transposes the sequence down one octave but │
320│ does not change the on-screen appearance of the │
321│ notes in the sequence. Using the transposition │
322│ feature properly, you can save a LOT of space │
323│ compared to the average tracker system! The word │
324│ ???? defines the sequence number itself. │
325│ │
326│ FFFFXXXX When this DWORD is met, the voice will restart │
327│ at the position defined in XXXX. It is important │
328│ to know that it counts in WORD steps. This means │
329│ that if you have ten sequences in a row with a │
330│ FFFFXXXX in the end, use FFFF0006 to wrap to the │
331│ fourth sequence - like this: │
332│ │
333│ 80000001 0 - 1 1st... │
334│ │
335│ 80000003 2 - 3 2nd... │
336│ │
337│ 80000001 4 - 5 3rd... │
338│ │
339│ ┌> 80000004 6 4th... │
340│ │ │
341│ │ 80070001 5th... │
342│ │ │
343│ │ 80070003 6th... │
344│ │ │
345│ │ 80070001 7th... │
346│ │ │
347│ │ 80070005 8th... │
348│ │ │
349│ │ 80000002 9th... │
350│ │ │
351│ │ 80000006 10th... │
352│ │ │
353│ └─ FFFF0006 Wrap... │
354│ │
355│ The player interpretes the wraps independantly │
356│ from voice to voice. This means that neither the │
357│ wrap position nor the length of tracks has to be │
358│ aligned. │
359│ │
360│ FFFE???? This command stops the voice entirely. The ???? │
361│ WORD will be ignored. Very useful for jingles! │
362│ │
363│ │
364│ THE INSTRUMENT TABLE │
365│ ──────────────────── │
366│ │
367│ This is the table you enter when pressing "M". You can also use │
368│ the "L" key to toggle between this table and the SpFX table. If │
369│ the table window is not active, it will be made active (pop-up) │
370│ before entering the table. │
371│ │
372│ The instrument table consists of 400h (1024) instruments, each │
373│ of 16 bytes in size. The bytes mainly controls the hardware OPL2 │
374│ registers on the card, but I have added a few of my own as well. │
375│ When an instrument has been defined, use the CXXX command in the │
376│ sequences to use it. │
377│ │
378│ But first, lets have a look at the instrument itself: │
379│ │
380│ │
381│ FFFF 3F 20 00 FFFF 3F 20 00 01 02 03 04 05 06 │
382│ └─────────────┘└─────────────┘ │
383│ Carrier Modulator │
384│ │
385│ │
386│ The parameters in both carrier and modulator uses the exact same │
387│ parameters, only the "modulator" part usually changes the color │
388│ of the sound while the "carrier" changes the volume and pitch. I │
389│ said "usually", because this depends on the way the operators is │
390│ connected. More about this later. │
391│ │
392│ NOTE: It is wise to leave instrument #0000 at the values defined │
393│ in the example above since this instrument is in fact used when │
394│ executing a CUT command (6000 in the command column). │
395│ │
396│ The carrier and modulator parameters will be send to the OPL2 FM │
397│ chip directly, as they are hardware based. Lets have a look at │
398│ the parameters individually. │
399│ │
400│ │
401│ FFFF This parameter controls the ADSR of the instrument. Some │
402│ of you already knows what this means. If you come from │
403│ the Commodore 64 and have been fiddling with ADSR here, │
404│ all you have to know is that is behaves upside-down - it │
405│ takes FF02 instead of 00FE! Otherwise it is very simple. │
406│ Each nibble ("F", a halfbyte), takes a parameter from 0h │
407│ to Fh, to define four parameters named the Attack, Decay │
408│ Sustain and Release. The attack defines the speed of the │
409│ volume to reach maximum level, Fh is fastest. As soon as │
410│ this level has been reached, the Decay value defines the │
411│ speed of the volume to reach the Sustain level. Again, │
412│ Fh is fastest. Sustain is a pseudo-volume level (volume) │
413│ where 0 is loudest. Release again defines the speed of │
414│ the volume to go from the Sustain level to silence. All │
415│ in all, a diagram like this can be drawn to illustrate │
416│ the ADSR envelope: │
417│ │
418│ │
419│ /\ │
420│ / \ │
421│ / \ │
422│ / \________________ │
423│ / \ │
424│ / \ │
425│ / \ │
426│ │
427│ │
428│ └─────┴───┴───────────────┴───┘ │
429│ A D S R │
430│ │
431│ │
432│ In the sequence itself, the ADS part of the ADSR will be │
433│ run as soon as the note is triggered, and maintained for │
434│ as long as the HOLD events (+++) are present. As soon as │
435│ the REST events is met (---), the note releases (R). An │
436│ exception to this rule exists in the instrument however. │
437│ If bit 5 is set to 0 in the 4th/9th byte (the bytes set │
438│ to 20h above), the Sustain is ignored and only an ADR │
439│ is executed. In other words, it ignores the HOLD (+++). │
440│ │
441│ In the modulator, the ADSR works is a similar way - only │
442│ it affects the modulation instead of the volume. Use it │
443│ to give "life" to the instrument. │
444│ │
445│ │
446│ 3F This parameter is split into bit 0-5 for the main volume │
447│ (level) and bit 6-7 for keyboard scaled level (KSL). The │
448│ level is 00h-3Fh, where 00h is loudest. Add 40h, 80h or │
449│ C0h for three rates of KSL. The KSL defines how much the │
450│ volume decreases in volume as the notes climbs upwards. │
451│ In other words, the higher the note, the lower the level │
452│ of the note. This feature is not used very often. │
453│ │
454│ In the modulator part, the level affects the modulation │
455│ instead of the volume. 00h is full modulation (100%). │
456│ │
457│ │
458│ 20 This is a multiple purpose register of the FM chip. Bits │
459│ 0-3 defines the multiplier, which works like an octave │
460│ parameter only it steps in a rather absurd way. With it, │
461│ you can change the pitch without editing the music - to │
462│ some degree! Bit 4 (add 10h) sets the KSR - which means │
463│ keyboard scaled rate. It works like KSL only it affects │
464│ the speed of which the ADSR is processed. The higher the │
465│ note, the faster the ADSR. Bit 5 (add 20h) selects ADSR │
466│ or only ADR. Normally, you would set this to 1 (ADSR) or │
467│ the HOLD/REST in sequences will be ignored; notes will │
468│ release as soon as the note has been triggered. This may │
469│ come in handy at times though. Bit 6 (add 40h) enables a │
470│ hardware vibrato. This vibrato is quite insufficient at │
471│ times to say the least, so I added my own vibrato to the │
472│ sequence commands (7XYY). Last, bit 7 (add 80h) enables │
473│ the hardware tremolo. Tremolo vibrates the level - think │
474│ of it as the "Elvis Costello" bit! ;) │
475│ │
476│ │
477│ 00 Only values from 00 to 03 is used here (bits 0-1). All │
478│ other bits is ignored. This value defines the waveform │
479│ of the operator. If you come from the Commodore 64 with │
480│ its marvellous SID-chip, you will be disappointed to see │
481│ what waveforms this chip has. They are not as flexible │
482│ as the SID-chip waveforms. 00 is a sine and is loudest. │
483│ I have also noticed that waveforms 02 and 03 seems to be │
484│ one octave higher than 00 and 01. I will try my best to │
485│ draw the waveforms now using the terrible ASCII chars. │
486│ │
487│ │
488│ ┌──┠│
489│ ┌┘ └┠│
490│ │ │ │
491│ ┌┘ └┠│
492│ │ │ │
493│ │ │ │
494│ 00 = └──────┼──────┠│
495│ │ │ │
496│ │ │ │
497│ └┠┌┘ │
498│ │ │ │
499│ └┠┌┘ │
500│ └──┘ │
501│ │
502│ ┌──┠│
503│ ┌┘ └┠│
504│ │ │ │
505│ ┌┘ └┠│
506│ │ │ │
507│ │ │ │
508│ 01 = └──────┴─────── │
509│ │
510│ │
511│ │
512│ │
513│ │
514│ │
515│ │
516│ ┌──┠┌──┠│
517│ ┌┘ └┠┌┘ └┠│
518│ │ │ │ │ │
519│ ┌┘ └┬┘ └┠│
520│ │ │ │ │
521│ │ │ │ │
522│ 02 = └──────┴──────┘ │
523│ │
524│ │
525│ │
526│ │
527│ │
528│ │
529│ │
530│ ┌─┠┌─┠│
531│ ┌┘ │ ┌┘ │ │
532│ │ │ │ │ │
533│ ┌┘ │ ┌┘ │ │
534│ │ │ │ │ │
535│ │ │ │ │ │
536│ 03 = └───┴──┴───┴─── │
537│ │
538│ │
539│ │
540│ │
541│ This should give you an idea of what the waveforms looks │
542│ like. All waveforms are variations on the sine waveform. │
543│ │
544│ │
545│ That concludes the five bytes in each operator, which constructs │
546│ the actual sound. The last 6 bytes in the instrument all behaves │
547│ globally to the instrument. │
548│ │
549│ │
550│ 01 This is the last hardware register. In bit 0, you define │
551│ the connection of the two operators. Normally it is set │
552│ to 0 (modulation), but if set to 1 (additive), the modu- │
553│ lator operator will behave exactly as the carrier. This │
554│ is great for organ sounds! Bits 1-3 defines the feedback │
555│ of the modulation (0,2,4...E), which is the number of │
556│ times the output is fed right back into the modulation │
557│ process, creating overtones. If you set it high (E or F) │
558│ you get so many of them that you get...noise! So this is │
559│ the parameter you use the make drums. Again, if you come │
560│ from the Commodore 64 you will be a little disappointed. │
561│ The noise is stuck at a high frequency, and cannot sound │
562│ as good as the noise on the SID-chip. :( Often drums on │
563│ AdLib can be improved by using a second voice, in which │
564│ you create a bassdrum-like sine which is sliding down. │
565│ │
566│ │
567│ 02 This is a software parameter. Use values 00-7F to fine- │
568│ tune the instrument - if you are using two voices on top │
569│ of each other, this may phase the two voices together in │
570│ order to produce a chorus effect. │
571│ │
572│ │
573│ 03 Hard restart timer value. Defines the number of frames │
574│ BEFORE the next note, that the next value below is to be │
575│ processed. 00h turns this OFF. Frames is a term for the │
576│ smallest timeunit a player can measure, which of course │
577│ is the number of times the player is called. If the IRQ │
578│ value is set to 46h, the frame corresponds to 1/70'th of │
579│ a second. Good values are 01-03. │
580│ │
581│ │
582│ 04 Hard restart Sustain/Release value. When the timer is up │
583│ in the previous byte above, this value is put into the │
584│ Sustain/Release on the soundcard for that voice. This is │
585│ useful to "cut down" on a long release before the next │
586│ note in a sequence. ADSR usually continues on the Attack │
587│ from whatever point the Release from the last note might │
588│ have reached, but this is not always desirable. You can │
589│ also use these parameters to make the music more funky. │
590│ │
591│ │
592│ 05-06 These bytes are unused in player v04.01. Do not put any │
593│ information into them as they may be used later on. Keep │
594│ them at 00h. │
595│ │
596│ │
597│ THE SpFX TABLE │
598│ ────────────── │
599│ │
600│ This is the table you enter when pressing "K". You can also use │
601│ the "L" key to jump between this table and the instrument table. │
602│ If the table window is not active, it will be made active before │
603│ entering the table. │
604│ │
605│ The SpFX (Special Effects) table consists of 800h (2048) effects │
606│ lines, of 8 bytes in size. When an SpFX has been defined you can │
607│ use the BXXX command in the sequences to point to it. │
608│ │
609│ A SpFX "set" may look like this: │
610│ │
611│ │
612│ 0001 0C FF 10 20 0002 │
613│ │
614│ │
615│ Let's have a look at these parameters individually. │
616│ │
617│ │
618│ 0001 This WORD defines the instrument to use for the set. Use │
619│ values 000-3FF. Add with 8000h to use locked frequencies │
620│ with the next byte below. │
621│ │
622│ │
623│ 0C Half note value, added to the actual note for as long as │
624│ this "set" lasts. Eg, if the note in the sequence is C-2 │
625│ and this value is 02, the note will sound as D-2. If you │
626│ add the WORD value above with 8000h, the values will NOT │
627│ be added. Instead, the values will refer to raw notes as │
628│ if 00h equals C-0, 01 equals C#0 and so forth. When used │
629│ to add the note, the value is signed; 00-7F for positive │
630│ and FF-80 for negative (-01h - -80h). Locked frequencies │
631│ can often be useful for drums which should be unaffected │
632│ by tranpositions. │
633│ │
634│ │
635│ FF New modulator level. The value overrides the 8th byte in │
636│ the instrument. If this value is FF, the 8th byte is NOT │
637│ replaced and this value will be ignored. Useful if you │
638│ want to add to the original value in the instrument. │
639│ │
640│ │
641│ 10 Modulator level add. Added each frame to the 8th byte in │
642│ the instrument, as an alternative to the ADSR modulating │
643│ process. The value is a signed byte; 00-7F for positive │
644│ and FF-80 for negative (-01h - -80h). Use the byte above │
645│ to set the start modulator level if needed. │
646│ │
647│ │
648│ 20 Duration. Defines the number of frames (00-FF) of this │
649│ set. 00h is ONE frame. When the counting is up, the next │
650│ WORD specifies the next SpFX line to interprete. │
651│ │
652│ │
653│ 0002 Pointer to next SpFX line. After the duration counter in │
654│ the previous byte above is up, this WORD specifies the │
655│ next line to jump to. Values ranges from 0000h-07FFh. │
656│ │
657│ │
658│ This table is very useful if you want to make arpeggio or sounds │
659│ with more life than the normal ADSR modulation can give you. Now │
660│ I won't advise you to make arpeggio chords when you have as much │
661│ as 9 voices, but it could come in handy when improving drums. As │
662│ an example, here is the dreaded 0-3-7 arpeggio chord: │
663│ │
664│ │
665│ 0000: 0001 00 FF 00 0001 │
666│ 0001: 0001 03 FF 00 0002 │
667│ 0002: 0001 07 FF 00 0000 │
668│ │
669│ │
670│ The above example uses instrument #0001 to produce a 0-3-7 chord │
671│ using arpeggio. The duration bytes are all 00, meaning that the │
672│ arpeggio will run at the fastest possible speed. No modulation │
673│ adding is involved. Notice how the pointers makes the three sets │
674│ spin around in an endless loop! Use B000 in the sequence to try │
675│ out this minor arpeggio chord. │
676│ │
677│ │
678│ KEYS │
679│ ──── │
680│ │
681│ Here is a list of all keys available in EdLib, some of them with │
682│ a deeper description than found in the HELP pages (Alt-F1). │
683│ │
684│ │
685│ F1 Play normally from StartPoint (SP) position. │
686│ │
687│ This key does not scroll the music, useful when │
688│ editing the music while it is playing. │
689│ │
690│ │
691│ F2 Stop all music activity. │
692│ │
693│ You can also use the ESCAPE key. If you're using │
694│ a MIDI keyboard, you can also cut hanging voices │
695│ with this key. │
696│ │
697│ │
698│ F3 FollowPlay from StartPoint position. │
699│ │
700│ The music scrolls as the music plays to show the │
701│ current position being played. Use the CTRL keys │
702│ as a fast forward function in this mode. NOTE: I │
703│ do not recommend using disk cache software such │
704│ as "SMARTDRV" as it disrupts the scrolling! :( │
705│ │
706│ │
707│ F4 Set new StartPoint position (SP). │
708│ │
709│ You can set the new position anywhere, no matter │
710│ if you're halfway through a sequence or not. The │
711│ hexadecimal stepcounter to the left of the main │
712│ editing area will turn dark blue below the point │
713│ and light blue after it. │
714│ │
715│ │
716│ F5 Copy any sequence into the current sequence. │
717│ │
718│ Use this key to overwrite the sequence you are │
719│ currently editing, with the contents of another. │
720│ │
721│ │
722│ F6 Decrease the tune speed. │
723│ │
724│ Hold CTRL to specifically define it. │
725│ │
726│ │
727│ F7 Increase the tune speed. │
728│ │
729│ Hold CTRL to specifically define it. The Spd box │
730│ in the bottom right corner of the screen informs │
731│ you of the current value. │
732│ │
733│ │
734│ F8 Define new SuperInsert size. │
735│ │
736│ │
737│ F9 Execute the SuperInsert in a sequence. │
738│ │
739│ When pressing this key you will insert as many │
740│ events into the sequence as defined with the F8 │
741│ key. The SpI counter in the bottom right corner │
742│ of the screen informs you of the current value. │
743│ Note that you can have no more than 5Fh events │
744│ in a single sequence. If you want more than this │
745│ you have to split it up into two sequences. │
746│ │
747│ │
748│ F10 Goto any stepcounter line. │
749│ │
750│ The hexadecimal stepcounter is the column to the │
751│ far left of the editing area. │
752│ │
753│ │
754│ F11 Define new RhythmJump value. │
755│ │
756│ Sets the number of events the cursor jumps after │
757│ pressing a note key in the sequence. The RtJ box │
758│ in the bottom right corner of the screen informs │
759│ you of the current value. │
760│ │
761│ │
762│ F12 Load music in EDL format. │
763│ │
764│ Brings up a file requester from which you can │
765│ choose an EDL file to load. You can also use the │
766│ Ctrl-F3 key. │
767│ │
768│ │
769│ Shift F1 Clear all tracks and sequences. │
770│ │
771│ Leaves the instruments and SpFX tables intact. A │
772│ useful function when borrowing instruments from │
773│ another song. Sequence #000 is actually used to │
774│ fill all sequences, so if you edit this sequence │
775│ before clearing you can userdefine all at once. │
776│ │
777│ │
778│ Shift F2 Clear instruments and SpFX tables. │
779│ │
780│ Leaves the tracks and sequences intact. May come │
781│ in handy if you disliked all the instruments and │
782│ want to start all over defining them again. │
783│ │
784│ │
785│ Shift F5 Copy any sequence into another sequence. │
786│ │
787│ As the F5 key, only it takes both a source and a │
788│ destination input. │
789│ │
790│ │
791│ Shift F12 Save music in EDL format. │
792│ │
793│ Brings up a file requester from which you can │
794│ save your song. You can also use the Ctrl-F4 key │
795│ instead. │
796│ │
797│ │
798│ Ctrl F1 Decrease the IRQ timer speed. │
799│ │
800│ Ctrl F2 Increase the IRQ timer speed. │
801│ │
802│ The above keys changes the timer interrupt speed │
803│ of the song. Be careful when using these! Better │
804│ have a talk with the programmer using your music │
805│ to make sure he accepts the new value. Normally │
806│ they are set to 46h (70) which matches the speed │
807│ of the screen update in 320x200 mode. This way, │
808│ the music can be used in a vertical retrace. In │
809│ some situations you can make use of a fast timer │
810│ interrupt to speed up the arpeggio in an instru- │
811│ ment. If you only want to change the speed of a │
812│ song, use the F6/F7 keys instead. The Irq box in │
813│ the bottom right corner of the screen keeps hold │
814│ of the current timer interrupt speed. │
815│ │
816│ │
817│ Ctrl F3 Load music in EDL format. │
818│ │
819│ You can also use the F12 key. │
820│ │
821│ │
822│ Ctrl F4 Save music in EDL format. │
823│ │
824│ You can also use the Shift-F12 key. │
825│ │
826│ │
827│ Ctrl F5 Convert the music to D00 format and save it. │
828│ │
829│ This brings up a requester asking for a filename │
830│ of the packed tune. After typing this, the music │
831│ will be packed and saved as a D00 file - to be │
832│ used in your own programs. The packed tune can't │
833│ be loaded into the editor again, so be sure you │
834│ save your source with Shift-F12 or Ctrl-F4! Note │
835│ that the packer goes into a 9-PASS process. It │
836│ has been tested intensively with no problems so │
837│ far - however, should the packer ever lock up at │
838│ any time, please note the pass number and mail │
839│ me this number. My address can be found in the │
840│ end of this file. Thank you! │
841│ │
842│ │
843│ Ctrl F6 Define new tune speed. │
844│ │
845│ Input the speed. Use F6/F7 to decrease/increase. │
846│ │
847│ │
848│ Ctrl F7 Define new tune speed. │
849│ │
850│ Input the speed. Use F6/F7 to decrease/increase. │
851│ │
852│ │
853│ Ctrl F9 Input music name in top of screen. │
854│ │
855│ The input takes 20 characters as the name of the │
856│ music. Remember to do this before saving a tune │
857│ to disk or packing it! D00-files also contains │
858│ this string. │
859│ │
860│ │
861│ Ctrl F10 Input composer name in top of screen. │
862│ │
863│ Again takes 20 characters. Remember to press it │
864│ before saving or packing the tune! The D00-files │
865│ also contains this string. │
866│ │
867│ │
868│ M Enter instrument table. │
869│ │
870│ Will enter the instrument table at the position │
871│ you left it at last time. If the table window is │
872│ not active, it will be made active first. │
873│ │
874│ │
875│ K Enter SpFX table. │
876│ │
877│ Will enter the table at the position you left it │
878│ at last time. If the table window is not active, │
879│ it will be made active first. │
880│ │
881│ │
882│ L Toggle between instrument and SpFX tables. │
883│ │
884│ Enters the other table. If you type it outside a │
885│ table it will enter the other table than the one │
886│ you edited last time. If the table window is not │
887│ active, it will be made active first. │
888│ │
889│ │
890│ Alt Down Change main volume byte below the current voice. │
891│ │
892│ Beneath each voice you'll find a value which can │
893│ be edited with this key combination. The volumes │
894│ controls the main volume for that voice, and has │
895│ priority over volume commands in the sequence. │
896│ │
897│ │
898│ Alt Up Change logical voice byte above the voice. │
899│ │
900│ Using "Alt-Up" you can change the value above a │
901│ voice. This value is the physical voice number │
902│ attached to the voice. Changing the values, you │
903│ can completely rearrange voices - you can even │
904│ make the same voice appear at several places! It │
905│ may come in handy when some voices has something │
906│ in common, like chords or double-voice drums. │
907│ │
908│ │
909│ Ctrl Fast forward while in FollowPlay mode. │
910│ │
911│ Only works when in FollowPlay mode. You cannot │
912│ use fast forward when playing with F1. │
913│ │
914│ │
915│ Alt 1-9 Toggles voices 1-9 ON or OFF. │
916│ │
917│ Note that the logical voice numbers above voices │
918│ goes dark grey when a voice is OFF. │
919│ │
920│ │
921│ Alt Tab Turn all voices OFF except the edited voice. │
922│ │
923│ │
924│ , Turn all voices ON. │
925│ │
926│ │
927│ . Turn all voices OFF. │
928│ │
929│ │
930│ - Toggle current voice ON or OFF. │
931│ │
932│ │
933│ Q2W3ER5... Play in note column or instrument/SpFX tables. │
934│ │
935│ Use these keys to play with the instrument or to │
936│ type notes in the right column of a sequence. As │
937│ you type a key the instrument last edited in the │
938│ main instrument table will play. Use the Ctrl-Up │
939│ and Ctrl-Down keys to change the octave. │
940│ │
941│ │
942│ Spacebar Erase sequence command or a REST in note column. │
943│ │
944│ In the sequence itself you can erase commands or │
945│ notes by tapping space on them. SPACE on a note │
946│ enters a REST (---) event. │
947│ │
948│ │
949│ X/C/V Put a HOLD (+++) in the note column. │
950│ │
951│ All 3 keys have the exact same meaning. I made │
952│ this to make it easier for you to edit blindly. │
953│ As the key is pressed, a HOLD (+++) appears. │
954│ │
955│ │
956│ Z HOLD to the previous note, REST to the next. │
957│ │
958│ A very useful command that should be used when- │
959│ ever possible instead of SPACE and X/C/V. Press │
960│ it to put HOLD (+++) up towards the note and put │
961│ REST (---) down towards the next one. It ignores │
962│ the presence of old HOLD and REST. Also, it may │
963│ be pressed in the command column - which is not │
964│ possible with the other HOLD/REST keys. │
965│ │
966│ │
967│ ½ Toggle tienote ON or OFF. │
968│ │
969│ On my keyboard it is the key just below the ESC │
970│ and above the TAB key. When pressed on an event │
971│ in a sequence, it toggles the note white/yellow. │
972│ When white, the note is changed in the music but │
973│ the effects of the instrument is NOT restarted. │
974│ │
975│ │
976│ Enter Jumps between track editing or sequence editing. │
977│ │
978│ Also used to edit names in the instrument table. │
979│ │
980│ This is probably the most used key when editing │
981│ notes as it jumps in and out of track values. In │
982│ the instrument table you can edit the name of an │
983│ instrument with this key. This name may contain │
984│ up to 16 characters. │
985│ │
986│ │
987│ Tab Jump to the right voice. │
988│ │
989│ Ctrl Tab Jump to the left voice. │
990│ │
991│ Use the above keys to switch between voices. As │
992│ you enter a new voice the voice is "blown up" to │
993│ show the entire voice (track, commands & notes). │
994│ The other voices will be shrinked, so that only │
995│ the notes can be seen - the most essential part! │
996│ You can spot the beginning and end of sequences │
997│ by observing the "> <" signs around the notes. │
998│ │
999│ │
1000│ Q Enter the next unused sequence in the track. │
1001│ │
1002│ Another useful function. When editing a song and │
1003│ deleting/inserting sequences, you may at times │
1004│ forget which sequences you have used and which │
1005│ you have trashed. By pressing the key on a track │
1006│ number, the editor will automatically find the │
1007│ first unused sequence number and enter the value │
1008│ for you. │
1009│ │
1010│ │
1011│ ↑/↓/â†/→ Cursor keys, used globally in the editor. │
1012│ │
1013│ │
1014│ Home/End Used globally in the editor. │
1015│ │
1016│ │
1017│ Delete Delete in track or sequence mode. │
1018│ │
1019│ │
1020│ Insert Insert in track or sequence mode. │
1021│ │
1022│ Note that you can have no more than 5Fh events │
1023│ in a single sequence. If you want more than this │
1024│ you have to split it up into two sequences. │
1025│ │
1026│ │
1027│ ESC Exits modes, also stops the music. │
1028│ │
1029│ This is also used to remove the windows with the │
1030│ instrument and SpFX tables. │
1031│ │
1032│ │
1033│ Page Up/Down Used globally in the editor. │
1034│ │
1035│ │
1036│ Ctrl Up Increase the note octave. │
1037│ │
1038│ Ctrl Down Decrease the note octave. │
1039│ │
1040│ The above keys changes the octave available with │
1041│ "Q2W3ER5..." keys. The Oc? counter in the bottom │
1042│ right corner of the screen informs you of the │
1043│ current value. Also Ctrl-Right may decrease. │
1044│ │
1045│ │
1046│ Ctrl Pg Up Home to the absolute top. │
1047│ │
1048│ │
1049│ Ctrl Pg Down Home to the absolute bottom. │
1050│ │
1051│ Does not yet work in the voice editing area. │
1052│ │
1053│ │
1054│ S Toggle CPU rastertime ON or OFF. │
1055│ │
1056│ The rastertime is shown as a grey block in the │
1057│ outscan border. May be useful for the programmer │
1058│ but keep in mind that the music takes much more │
1059│ rastertime in the editor than when packed! │
1060│ │
1061│ │
1062│ Ctrl Break Exit to DOS. │
1063│ │
1064│ You can skip the palette fade with the /P switch │
1065│ on the commandline. │
1066│ │
1067│ │
1068│ COMMANDLINE PARAMETERS │
1069│ ────────────────────── │
1070│ │
1071│ Note that all switches may be preceeded with either a slash "/" │
1072│ or a minus "-" character. Slash is used in the examples below. │
1073│ │
1074│ You can load an EDL file from the commandline prompt, if needed. │
1075│ │
1076│ Usage: EDLIB [<Switches>] [<Name of EDL file>] │
1077│ │
1078│ │
1079│ /? Help page briefly describing the switches. │
1080│ │
1081│ │
1082│ /F Use followplay immediately. │
1083│ │
1084│ Useful when loading an EDL file from the command │
1085│ line and you want to play it right away. │
1086│ │
1087│ │
1088│ /P Do not fade colors when quitting. │
1089│ │
1090│ If you feel annoyed having to wait for the fade │
1091│ to get finished, use this switch to skip it. │
1092│ │
1093│ │
1094│ /C Convert EDL to D00 (NOT READY YET). │
1095│ │
1096│ Reserved for future expansion; may in later ver- │
1097│ sions of EdLib convert from EDL to D00 without │
1098│ having to enter the editor itself. Until this is │
1099│ implemented you must do it with Ctrl-F5 inside │
1100│ the editor. │
1101│ │
1102│ │
1103│ /M Use the MPU-401 interface. │
1104│ │
1105│ If you have an external synthesizer connected │
1106│ through you MPU-401 MIDI interface you can play │
1107│ the AdLib instruments on it. Cursor up and down │
1108│ in the instrument table to choose the instrument │
1109│ and change the octave with Ctrl-Up or Ctrl-Down. │
1110│ Now you can play this instrument on the keyboard │
1111│ synth, using full polyphony and velocity. Note │
1112│ that aftertouch uses a default vibrato setting │
1113│ which is independant of the bytes in the editor. │
1114│ You cannot use the MIDI to record music in this │
1115│ version of EdLib. │
1116│ │
1117│ │
1118│ /A Ignore AdLib detection. │
1119│ │
1120│ Useful at times when the detection routine might │
1121│ fail, even if an OPL2 IS present! E.g, if your │
1122│ computer uses both a Sound Blaster and a Gravis │
1123│ Ultrasound at the same time. The timer detection │
1124│ does not always work in those circumstances. │
1125│ │
1126│ │
1127│ CONTACT ADDRESS │
1128│ ─────────────── │
1129│ │
1130│ That does it for this DOC. I'm sorry if I haven't been nice to │
1131│ your printer making formfeeds, table of contents and other nice │
1132│ stuff. But what the heck - you only want to read this once - the │
1133│ help pages in the editor ought to do the rest. :) │
1134│ │
1135│ I hope you actually managed to read the DOC in spite of my awful │
1136│ grammar! I know it turns out a smile once in a while. As long as │
1137│ you can understand what I mean, I don't really give a damn... │
1138│ │
1139│ If you want to contact me for some (legal only!) reason, you can │
1140│ write to the following snail mail address: │
1141│ │
1142│ │
1143│ Jens-Christian Huus │
1144│ Tranegaardsvej 71 a │
1145│ 2900 Hellerup │
1146│ Denmark │
1147│ │
1148│ │
1149│ FidoNet: 2:236/86.22 (Kilroy BBS) │
1150│ │
1151│ │
1152│ THE BORING STUFF │
1153│ ──────────────── │
1154│ │
1155│ All files in the archive should be distributed in their original │
1156│ form - it is forbidden to modify anything. The player may not be │
1157│ used commercially in any way without permission from the author. │
1158│ │
1159│ The names Vibrants, the SirFace System and EdLib are trademarks │
1160│ of Jens-Christian Huus. Other product and company names are the │
1161│ trademarks of their respective owners. │
1162│ │
1163│ All warranties are disclaimed, including damage to your hardware │
1164│ and/or software from use of this product. In no event will I be │
1165│ liable to you for any damages - including any lost profits, lost │
1166│ savings or other incidental or consequential damages arising out │
1167│ of your use or inability to use the program, or any other claim │
1168│ by any other party. │
1169│ │
1170│ │
1171└──────────────────────────────────────────────────────────────────────────────┘