Digital-FM
# # # # # #### ## ##
# ### # ### # # # # #
##### # # # ### # # # ### # # #
# # # # ## # # ##### # ## # # #
# # # # # # # # # # # # # #
##### # #### # # # # ## # # #
What is Digital-FM?
-------------------
Digital-FM is a versatile Adlib-Tracker. With this program you can
easily create your own instruments and use them in songs you compose
yourself. The program is menu-operated and therefor easy to use.
You can go to the menu by pressing [Esc] anywhere in the program,
without losing any data. By making use of a menu, no hard-to-remember
keycombinations have to be learned. The normal 80#25 color-display is
used for easy legible screens, instead of the 80#30/50 screens used
by other trackers which are difficult to read on a 14" monitor.
Parameter /NoFont disables the extended VGA-font.
System Requirements
-----------------------
- IBM PC/AT or true compatible (80286/386/486+)
with at least 256Kb free conventional memory;
- Color Graphics Adapter (CGA/EGA/VGA+);
- AdLib-compatible soundcard (any Soundblaster or clone);
- MS-DOS / Windows(95) in DOS mode (no guarantees);
- Some bytes free on your floppy- or harddisk;
- A standard AT-style keyboard with a working [Esc]-key ;-)
The Hot Keys
-----------------------
You can select the different parts of the program by hitting [Esc]
to activate the menu and choose an option. However, there is a
quicker way of choosing these parts, by using the 'Hot Keys'. Hot
Keys are keys that can be used from within every part of the program.
The Hot Keys are:
[F1] Instrument Designer
[F2] Bank File Manager
[F3] Instrument List
[F4] Pattern Editor
[F5] Play Song
[F9] Save/Load Song
[F10] View Help/Docs
[Esc] Activate Menu
Note: the help-pages are context-sensitive, so press F10 anytime to get
information about the part of the program you are working in.
The Note Keys
-----------------------
In the Instrument Designer and the Pattern Editor you can use the
following keys to simulate a piano-keyboard:
### ## ###### ## ## ###### ## ###### ## ## #######
### S## D###### G## H## J###### 2## 3###### 5## 6## 7#######
### ## ###### ## ## ###### ## ###### ## ## #######
### ## ###### ## ## ###### ## ###### ## ## #######
############################################################
##Z###X###C###V###B###N###M###Q###W###E###R###T###Y###U###I#
############################################################
To change the octave you're working in, just press [/] and [#] on
your numeric keypad. The higher keyboard-row is one octave above
the octavenumber you selected.
The Instrument Designer
-----------------------
With this powerful tool you can create almost any instrument you
want, and invent new ones! When you start the program the designer
is set to 'Piano'. You can alter the values of the registers shown,
changing the way the sound is produced. Just select one of the
registers and press [PageUp/PageDown] to alter it. Use the piano-
keys to hear the created sound at different pitches.
When you are satisfied with the sound you created, you can give it
a name and go to the Instrument Bank via the menu (or Hot Key F2)
to save it for later use, or you can go to the Instrument List, to
use it in the song you are creating at that moment.
Note that changes made to an instrument that is present in the
Instrument List are automatically stored.
On pages 13-17 you can find some explanation about making
instruments.
The Instrument Bank
-----------------------
An instrument bank is an easy way to file your instruments, because
all instruments are stored in just one file. You can load from and
save to this 'list' of instruments by selecting the desired field
and pressing [S] or [L].
The loaded instrument becomes 'active' and you can edit the instrument
in the Instrument Designer, or store it in the Instrument List.
Press [ENTER] to test an instrument from the bankfile. You can use
the pianokeys to play the selected instrumentand and [/#] to change
octaves. Use [Tab] to toggle chord-mode, in which you can test a
sound on multiple channels. [F8] = silence, [ESC] = cancel pianomode.
The Instrument Bank can contain 1000 different instruments; if you
want to save more instruments you can rename the file 'STANDARD.BNK'
to another name and start Digital-FM again; a new bankfile with the
name 'STANDARD.BNK' will be created.
The Instrument List
-----------------------
The instruments you want to use in your composition are stored in
this list. Select an instrument-number and press [Enter] to load an
instrument from the bankfile, or press [S] to copy the active
instrument to the list.
To further edit an instrument from the Instrument List, press [L] to
load it into memory and make it 'active'.
In the Pattern Editor (next page) these instruments can be used by
entering 'Ixx' in the effect-field, where 'xx' stands for the
instrument-number corresponding to the Instrument List numbers.
The Pattern Editor (1)
-----------------------
This in fact is the main part of the program, the part in which you
create your songs. Before you start composing, select some instruments
you want to use and put them in the Instrument List. In the Pattern
Editor you can choose which instrument you want to use on what channel.
By hitting [Tab] in the editor you can edit the 'effects'. To use an
instrument, type 'Ixx' in the effect-field, where 'xx' stands for the
instrument-number you selected in the Instrument-List. Remember, you
can't hear any sound unless you have selected an instrument!
To change the volume of the instrument choose 'Vxx' as 'effect' where
'xx' can be any value from 0-31. Type [.] to erase the note or effect
at the cursor. To turn a note off on a specific channel, type [1].
You can set the tempo by pressing [ and ]. This tempo is saved in the
songfile. To change tempo during the song use the effectcommand 'Txx'.
Press [+] or [-] on the numeric keyboard to cycle through the patterns.
Each new pattern occupies 1152 bytes of memory. Empty patterns 'in-
between' are not saved in the module.
The Pattern Editor (2)
-----------------------
A summary (1/2) of the keys in the Pattern Editor: (@=[Alt])
[Tab] edit effect-field
[Ins] shift down from cursor
[Del] shift up to cursor
[@F1] copy channel from cursor to memory
[@F2] paste memory to channel at cursor
[@F3] copy pattern from cursor to memory
[@F4] paste memory to pattern at cursor
[F6] play entire pattern (looped)
[F7] play from cursor to end of pattern
[F8] key off on all channels (silence)
[/#] change octave
[-+] change pattern
[[]] change tempo
The Pattern Editor (3)
-----------------------
A summary (2/2) of keys and effects in the Pattern Editor:
[.] clear note at cursor
[;] clear effect at cursor
[1] note (key-) off
[@x] mute/set channel x
[@0] toggle all channels
[@S] save current song
[^PgUp/Dn] quantise-leap up/down
[^F1..^F8] set quantise-leap (1-8)
Effects: Ixx: instrument 0..31
Vxx: volume 0..31
Txx: tempo 0..31
Uxx: slide up 0..31
Dxx: slide down 0..31
END: end of pattern
The Pattern Order List
-----------------------
In this screen you select the order in which the created patterns are
to be played. This way you can easily play patterns more than once
just by adding the pattern-number in the list instead of making the
same pattern again.
You can create a list of up to 128 (0-127) patterns and you can mark
the end of the list (= the end of the tune) by filling in '128' as
pattern-number.
To quickly enter '128' press left when pattern-nr is 0.
Use [Ins] and [Del] to shift the list down or up from cursor.
Save/Load Song
-----------------------
To load a song, just select a file from the directory-list and press
[ENTER]. In the directory-list all files from the current directory
with the extensions '.DFM' and '.RAD' are listed. If the current song
has not been saved yet you will be informed, so you don't accidentally
loose that funky song you're working on...
To save the current song, you can either select a file from the direc-
tory-list and press [S] to save or you can enter a new filename by
pressing [F] and save it under the new name by pressing [S].
When you're in the pattern-editor you can save the song more quickly by
pressing [Alt-S], provided that a filename is already specified. If the
filename is unknown, you are kicked to the Save/Load-screen in which you
can enter a filename for your song and save it.
You can enter some words (composer, etc.) about the song in the songinfo
entry. It will be saved in the DFM-file.
Making an instrument (1)
-----------------------
The AdLib- and Soundblastercards utilize the Yamaha YM3812 (OPL2 or
compatible) nine-channel (in melody mode) synthesizer chip to produce
FM-music. This chip uses two operators: the modulator and the carrier.
Each operator produces the sounds according to an ADSR-curve (Attack/
Decay/Sustain/Release; see page 16).
When a note is played ('key-on') the sound will come up at the speed
defined by the attack-rate. With a low attack-rate, the note 'fades-in'.
Then it will decay at the decay-rate to the relative volume defined
by the sustain-level. When the note is turned off ('key-off') the
volume decreases to zero at the release-rate, but only if the envelope
type is set to 'release'.
If you select Frequency Modulation (FM) as synthesistype, the two
operators influence eachother; with Additive Syntheses the sound of
the two operators are added together, producing a fairly 'plain' sound.
Making an instrument (2)
-----------------------
If you use a feedback-factor higher than zero, the sound produced by
the modulator is fed as input for the modulator again (look at the
diagram at page 17). A high feedback-factor creates noise.
Each operator has the ability to multiply the frequency of its input-
signal. With multiply-factor « the frequency is devided by two.
The volume of each operator can range from 0 to 63. The volume of the
instrument itself is controlled by the carrier's volume. The volume
command in the Pattern Editor actually controls this value, in steps
of two.
You can make your instruments sound more realistic by using vibration.
For each operator you can define the type of vibration: of amplitude
(volume) and/or of frequency (pitch).
Making an instrument (3)
-----------------------
The waveform of the input-signal can be changed from a plain sine (no
changes), the first half of the sine, an absolute sine (tops only) or
a cut sine.
Keyscaling is used to create instruments that sound more natural. When
keyscaling is selected, low notes are played at a higher volume and
last longer than high notes.
You can set the volume-decreament for each octave with the keyscaling-
level. 0 dB is no decreament, 6 dB is the most.
The envelope-type decides wether the sound should sustain or fade-out
with the release-rate.
The ADSR-curve
-----------------------
+ # D
| # # E
V | # # C
| # # A
O | # # Y SUSTAIN LEVEL
+ K # #######################
L | C # # R
| A # # E
U | T # # L
| T # # E
M | A # # A
| # # S
E | # # E
+ # #
+-------------------+---------------------+---------------
T I M E
The Operators
-----------------------
Frequency Modulation:
+---------------+ +---------------+
| | | |
/\ --+ MODULATOR +---+---+ CARRIER +------ OUTPUT
`\/ | | | | |
IN +-------+-------+ | +---------------+
|----<------+
FEEDBACK
Additive Synthesis:
+---------------+ +---------------+
| | | |
/\ --+ MODULATOR |---|---+ CARRIER +-- /\
`\/ | | | | | \/'
IN +---------------+ | +---------------+ IN
|
OUTPUT
The File Format
-----------------------
Some people might be interested in the file-format, so here it is:
offset bytes contents
-----------------------------------------------------------------
0 4 check-string 'DFM' followed by ASCII-26 (EOF)
4 2 version of Digital-FM (before/behind period)
6 33 pascal-type string with song-information; the
first byte contains the length of the string
39 1 tempobyte (the overall tune-tempo)
40 384 32 instrument-names (pascaltype strings)
424 352 32#11 bytes ins-registervalues (see page 20)
776 128 pattern order list (array of 128 bytes)
904 1 number of patterns in file
Ú905 1 nr. of next pattern containing data
À906 x patterndata (see next page)
The last two parts (ofs 905/906) are repeated (nr. of pats) times.
Pattern Data
-----------------------
When a pattern contains data (notes/effects) it is saved in a way it
doesn't take up too much precious diskspace. In fact the patterndata
consists of note-bytes only, but when an effect-byte follows, the
MSB of the note-byte is set.
# note-byte: # effect-byte:
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
| | | notes, 15=off | | effect-nr | value for effect |
| | +---------------+ +-----------+-------------------+
| | octave 0-7|
| +-----------+ 1: instrument 0..31
| 2: volume 0..31
+- set if effect-byte follows 3: tempo 0..31
7: end of pattern
Instrument Format
-----------------------
An instrument consists of the following 11 bytes:
offset rel.reg operator meaning
----------------------------------------------------------
00 20h mod am / vib / eg-typ / ksr / multi
01 23h car
02 40h mod ksl / total level
03 43h car
04 60h mod attack rate / decay rate
05 63h car
06 80h mod sustain level / release rate
07 83h car
08 E0h mod waveform
09 E3h car
10 C0h mod feedback / synthesis
Song Credits
------------
ADAGIO.DFM - Adagio - Johann Kaspar Mertz (RV)
COUNTRY.DFM - Countrytune by VV/Focus
CROCKET.DFM - Crocket's Theme - Jan Hammer (RV)
EMPTYNES.DFM - Converted From HSC
GODFATHR.DFM - Godfather Theme - VanDerNurd Music
HAMMER.DFM - Converted From S3M - VV/Focus
HAPPY.DFM - Happy Tune - VanDerNurd Music
HUBBARD.DFM - Converted From HSC
KOTO.DFM - Japanese Wargames - Koto (RV)
MOONDANC.DFM - VanMorrison: Moondance (VDNURD)
NITELIFE.DFM - Nightlife - RV
PRAIRY.DFM - Pretty Cow On The Prairy - RV
RAINYDAY.DFM - Them Rainy Days - RV
SHORTY.DFM - Shorty's Theme - RV
SMKEREM.DFM - Converted from HSC
SP2.DFM - Starport introtune. RAD convers.
TONIGHT.DFM - Forever and Tonight - Jan Hammer (RV)
TREEONFI.DFM - Tree On Fire - VanDerNurd Music
TUBBS.DFM - Tubbs & Valerie - Jan Hammer (RV)
WHLCHAIR.DFM - Electric (wheel)chair - VV/Focus