Jan 022018
TrakBlaster .MOD file editing program. Finally a way to edit those files. Full playback capability as well.
File MODED301.ZIP from The Programmer’s Corner in
Category Music and Digitized Voice
TrakBlaster .MOD file editing program. Finally a way to edit those files. Full playback capability as well.
File Name File Size Zip Size Zip Type
BASSDRUM.SAM 3000 1877 deflated
COWBELL2.SAM 930 719 deflated
DXBASS.SAM 2700 1745 deflated
DXTOM.SAM 4000 2114 deflated
ECHOCLAP.SAM 6190 4421 deflated
FUNBASS.SAM 6500 4769 deflated
HALLBRAS.SAM 9400 5125 deflated
HIHAT2.SAM 2000 1607 deflated
HOUSE_OF.MOD 110415 67333 deflated
LICKS.SAM 6200 3496 deflated
MODEDIT.CFG 352 197 deflated
MODEDIT.DOC 102284 27547 deflated
MODEDIT.EXE 178224 72430 deflated
ORCH_HIT.SAM 9896 7299 deflated
REGISTER.DAT 183946 98282 deflated
REGISTER.EXE 65592 33292 deflated
REGISTER.FRM 1623 472 deflated
SHAKUHAC.SAM 7976 4485 deflated
SNARE3.SAM 3800 2895 deflated

Download File MODED301.ZIP Here

Contents of the MODEDIT.DOC file



0. License/Warranty/Disclaimer

1. Introduction
1.1 What is ModEdit?
1.2 What is needed to run ModEdit?

2. Getting started
2.1 Quick start
2.2 Setup
2.3 ModEdit's user interface
2.3.1 Main Menu
2.3.2 Dropdown and Popup Menus
2.3.3 Scroll Lists
2.3.4 Dialog Boxes
2.4 Configuration

3. Nomenclature/concepts
3.1 Note unit
3.1 Pattern
3.3 Sequence
3.4 Sample
3.5 Integrating note units, patterns, sequence, and

4. Using ModEdit
4.1 Samples: Choosing your instruments
4.1.1 What are samples?
4.1.2 The "sample directory"
4.1.3 Manipulating samples
4.1.4 Attributes of samples
4.1.5 Creating your own sample files
4.2 Entering music
4.2.1 Editing patterns
Preliminaries about the editor
Parts of the editor screen
Moving around the pattern editor
Entering notes
Editing the sample field
Editing the effect field
Copying patterns
Transposing patterns
Editor view options
Playing music from within the editor
4.2.2 Sequencing/creating patterns
4.2.3 Other edit options

4.3 Hearing your music
4.3.1 Playback within ModEdit
4.3.2 MODPLAY: External playing
4.4 Recording Modules
4.5 Saving and loading Modules

5. Reference
5.1 Pattern editor quick reference key summary
5.2 Effect list quick reference chart

6. The future


which is essentially "try before you buy" software. This
program and accompanying documentation are Copyright 1991-2
by the author (Norman Lin). You are granted a limited
license to use this software for a trial period of 30
(thirty) days. After this trial period, if you continue using
the program, you are legally and ethically obligated to pay
for the software (see below).

You are encouraged to copy and distribute the UNREGISTERED
version of this program so that others may try it out,
provided that (1) no profit is made from such copying and
distribution, and (2) the program is distributed in
DOCUMENTATION FILES. You are prohibited from distributing
ModEdit if you do not adhere to both above guidelines; you
are prohibited from modifying the ModEdit program or

If you register ModEdit, the registered version may NOT be
distributed or duplicated except for personal archival and
backup purposes. Possession of the registered version by
anyone other than the registree is prohibited. Protect your
investment -- don't distribute the registered version.

ModEdit may not be used for any commercial purposes without
my prior express written permission. ModEdit may not be
distributed for use with any for-profit products (software,
hardware, or other; including but not limited to commercial
software, shareware, D/A converters, etc.) without my prior
express written permission.

There is no warranty of any kind; this software is provided
on an "AS-IS" basis. The author of this software (Norman
Lin) shall not be liable for any damages whatsoever that may
result, directly or indirectly, from the use of this software
or documentation. Neither is the author obligated to provide
any updates or modifications to the program whatsoever. By
owning a copy of and/or using ModEdit, you agree to all the
above terms.

If you use ModEdit beyond the initial trial period, you must
register. Legal and ethical issues aside, why should you
register? I'm sure this question crosses the mind of every
shareware user. You should register because I believe that
ModEdit is the best and easiest to use MOD editor. I've
spent many months of my life designing, programming, and
tweaking ModEdit. I've looked at other editors and listened
to user suggestions. Since version 1 was released, I've
constantly been making improvements to the program. With your
support, it can evolve even further.

NOTE: To register, please fill out and mail the enclosed
registration form.

Basic registration
Basic registration is $15 (U.S.). This entitles you to
legally use ModEdit, as well as to receive a personal user
identification and registration code. Your userid and
registration code will allow you to use the registered
version of the program with the following enhanced features:

o Real time recording from the computer keyboard
o Automatic saving of all samples in a MOD
o EGA/VGA 43/50 line support
o Track tracing (following a song during playback)

In addition, registration will let me know that you are
interested in ModEdit. I read every letter mailed to me, even
though I might not have time to respond. Your feedback is

Level 2 Registration
For a registration of $25 (U.S.) (to cover diskette, packing,
mailing, and labor), I will mail you a diskette containing
the latest (registered) version of ModEdit, as well as
various sample/Module files that will fit on the diskette.
*PLEASE* specify what kind of diskettes you need (3.5" or
5.25", high or low density). Better still, mail me a
formatted diskette and I will put the program on it. I also
have a soundcard with a digitizer, so if you want custom
sample files, this can be arranged.


Send all registrations, comments, or queries about ModEdit

Norman Lin
P.O. Box 2724
Norman, OK 73070-2724

Internet email addresses:

PREFERRED: [email protected]
ALTERNATE: [email protected]
[email protected]
[email protected]
[email protected]
[email protected]


Name: ___________________________________________________
(first) (last)

Address: ___________________________________________________


E-Mail address (if any): ___________________________________


( ) Basic registration: $15.00 U.S. enclosed

( ) Level 2 registration: $25.00 U.S. enclosed

For level 2 registration only:

Type of diskette: ( ) 3.5" ( ) 5.25"

Density: ( ) Low ( ) High


Where did you hear about ModEdit?


Comments/suggestions about ModEdit:




Would you like to be informed of future ModEdit releases?

( ) Yes

( ) No

Please mail this completed form, along with payment, to:

Norman Lin
P.O. Box 2724
Norman, OK 73070-2724



ModEdit is a music editor/sequencer for the IBM PC family of
computers. It allows you to write music with 4 tracks of
digitized instrument sounds. The file format used is the
"Amiga Module" format (so called because it originated on the
Amiga line of computers). ModEdit can load and save Modules,
meaning that Modules (or simply MODs) created by other
programs (even on other computers such as the Amiga) can be
used by ModEdit, and that the Modules created by ModEdit can
be used by any program that can use Modules.


To run ModEdit, you need:

- An IBM or compatible, 640K recommended.
- A 10MHz+ 286 or better processor strongly recommended
for playback.
- The executable editor program MODEDIT.EXE.

ModEdit requires no special video card; it works with
monochrome, CGA, EGA, or VGA displays. It also does not
require any sound card; it can output music through the PC
speaker (though quality will vary depending on how fast your
processor is). Supported sound cards include:

- SoundBlaster(tm) / compatible cards
- Disney Sound Source(tm)
- Covox Sound Master II(tm)/Speech Thing(tm)
- Any sound card with a D/A converter on an LPT: port (This
includes soundcards you can build yourself. See MODPLAY
documentation for more information.)

ModEdit's playback routines are done with MODOBJ, a .OBJ
file that contains functions for playing back Modules. MODOBJ
is written by Mark J. Cox. More information on MODOBJ may be
found in section 5.4.



If you're impatient, and think you know what you're doing,
you can "quick start" ModEdit by typing "MODEDIT" after
unpacking the ModEdit archive. It's strongly recommended,
though, that you take the time to read this documentation.


Your ModEdit archive file should contain the following files:

- MODEDIT.DOC : This file.
- MODEDIT.EXE : The executable ModEdit module editor,
unregistered version.
- REGISTER.EXE: Executable program to be run if you choose
the "basic registration" option. It will
create an executable file MODED-R.EXE which
will be the registered version of the
ModEdit program.
- REGISTER.DAT: Data used by the REGISTER.EXE program.
- REGISTER.FRM: Registration form for ModEdit 3.0.
- *.MOD : Example module(s).
- *.SAM : Various digitized sample files for
incorporation into your own music.

To run ModEdit, first unpack the archive file, preferably
into its own subdirectory if you have a hard drive.


ModEdit functions are selected using an intuitive and
flexible window system with mouse support. If you've
never used this kind of menu system before, you will probably
want to read through the following walk-through of the menu
system. If, on the other hand, you have experience with
"point-and-click" type dropdown menu interfaces, you can
quickly skim this section and just dive right into using
ModEdit. The user interface is quite intuitive to use, even
for first time users.

Main program functions are selected via a main menu at the
top of the screen, and secondary program functions are
selected through a series of dropdown menus, popup menus,
scroll lists, and dialog boxes. Details of each follow.
Instructions on user interface interaction using the keyboard
are presented following the word "KEYBOARD:". Instructions
for mouse users follow the word "MOUSE:".

2.3.1 Main Menu

ModEdit's main menu is a line at the top of the screen, which
appears as follows:

|File| Edit Sample Play Record Configure Other

On the screen, one option will have a colored "highlight
bar" as its background; this option is the currently selected
option. It is shown above by the vertical bars |.

KEYBOARD: From the keyboard, you can access the main menu
simply by depressing the ALT key and then pressing the letter
that matches the highlighted letter in the menu item.
(Highlighted items are shown in capital letters above). For
instance, "" would access ModEdit's "File" options,
while "" would select "Configure." Once you are in the
main menu, you may use and to
select the option to the left/right of the one currently
selected. For instance, if "Sample" is selected, pressing
would take you to "Edit."

MOUSE: With a mouse, you can access the main menu by moving
the mouse cursor to be on top of the desired main menu
option, then pressing the left mouse button.

2.3.2 Dropdown and Popup Menus

A dropdown menu and a popup menu are essentially the same
form of input: a window containing a list of options to
select, and a highlight bar indicating which option is
currently selected. A dropdown menu "drops down" beneath the
main menu, since it involves selection of options directly
related to the main menu options. A popup menu "pops up" at
a different time in the program (usually when you, the user,
press a particular function key needing you to choose among
various options), but it operates in the same way. The
following discussion focuses on dropdown menus, but
operation of popup menus is identical.

All of the options in the main menu have several sub-options
that may be selected. After selecting the main option, an
appropriate dropdown menu will appear beneath the main menu.
You then choose the sub-option that you need to perform. For
example, if you selected the "File" option with , the
screen would appear as follows:

|File| Edit Sample Play Record Configure Other
*|New module |
|Load module |
|Save module |
|DOS shell |
|Exit |

The dropdown menu will have a highlight bar on the currently
selected option. Due to printing limitations, the highlight
bar is depicted above with a star *.

KEYBOARD: With the keyboard, to move the highlight bar, press
the up or down arrow keys. After selecting the desired
option, press to accept your choice. By pressing the
right or left arrows, the right or left dropdown menus of the
corresponding main menu options will be displayed.
Additionally, each option within the dropdown menu will have
one letter highlighted. By pressing this letter, that option
in the dropdown menu is selected. This often saves time.

MOUSE: With a mouse, move the mouse cursor on top of the
desired dropdown menu option and press the left mouse button.

2.3.3 Scroll Lists

A scroll list is very similar to a popup or dropdown menu; it
is a list of items from which you choose (e.g. filenames on
disk). A highlight bar indicates the currently chosen
option. A scroll list differs from a popup/dropdown menu
because it (a scroll list) may contain more items than can be
displayed at one time on screen. If you move the highlight
bar up off the top or down off the bottom of a scroll list,
new items will "scroll" into display from which you may

A scroll list looks like the following:

| BASS.SAM 3010 ^ Up arrow
| GRANDP4.SAM 13412 v Down arrow

KEYBOARD: From the keyboard, operation of a scroll list is
identical to that of a popup/dropdown menu.

MOUSE: With a mouse, operation of a scroll list is identical
to that of a popup/dropdown menu, with the additional feature
that clicking on the arrows at the right hand side of the
scroll list will scroll the highlight bar up and down.

2.3.4 Dialog Boxes

Whenever ModEdit requires you to type in information, a
"dialog box" will appear on the screen. Since ModEdit deals
with different sorts of information, different functions will
cause different dialog boxes to appear on the screen. The
exact operation of each dialog box is detailed in the
description of each function. All dialog boxes, however,
share some common features, which are discussed below.

Sections: A dialog box contains 2 sections; a text input
section and a button section. To shift from section to
section, press the key. (Note that the key also
moves among buttons; see below.)

Text input section
For each item of input ModEdit requires, one text field will
appear in the dialog box.

KEYBOARD: Within each text field, simply type in the required
information. The previous value (if any) of a particular
field is automatically displayed. If you wish to keep or
modify the previous value, press an editing key to edit the
field. If you wish to discard the previous value and enter a
completely new one, you may simply start typing; the old
value will disappear. Standard editing keys (left/right
arrows, , , ) apply to the input.
To move between fields, you may use the following keys: ARROW> to take you to the previous field, and or
to take you to the next field. If you attempt to move
to the next field when you are on the last field, you will
move to the button section of the dialog box.

MOUSE: You must, of course, use the keyboard to type in the
requested information; however, clicking the left mouse
button when the cursor is on a particular text field will
move you to that text field. This can be useful when several
fields appear and you only wish to modify one.

Button section
A button is an option at the bottom of a dialog box, enclosed
within brackets []. Buttons perform an action on the input

fields at the top of the dialog box. The most common buttons
are [OK], which accepts the input, or [Cancel], which
discards the input.

KEYBOARD: To move among buttons, you may use the key,
which steps through the buttons then eventually returns to
the top of the dialog box, or you may use the left/right
arrow keys to cycle through the buttons.

MOUSE: Click the left mouse button on the desired button to
select that action.

Note: to escape from a dialog box and discard the input, you
may press the key.

Here is an example of a simple dialog box with 1 text field
and 2 buttons:

+------------------Load Module--------------+
|Filename: _ | Text section
| [OK] [Cancel] | Button section


Now that you know how to move around in ModEdit, you can
configure ModEdit to your particular system and preferences.
Select the "Configuration" option from the Main Menu.

You will be presented with the Configuration Submenu; from
here you may set various options about ModEdit, such as
colors, directories, etc:

|Colors |
|Directories |
|Playback device |
|Address of LPT ports |
|Mixing speed |
|Protracker mode |
|Display size 80x25 |
|Save configuration |

The ones you need to set right now
are the following:

- Module directory: this is where ModEdit will look for
your Modules (i.e. songfiles). This option is under the
"Directories" option of the Configuration Submenu.

- Sample directory: this is where ModEdit will look for your
sample files. This option is also under the "Directories"
option of the Configuration submenu.

- Playback device: this is the device to which ModEdit will
play music/samples. It defaults to the PC speaker, but
can be a D/A converter on an LPT port or a variety of
other output devices. (See the MODPLAY documentation for
information on how to build a D/A converter.) Note that
if you have a D/A converter on a nonstandard LPT port as
the playback device, you should enter the address of your
LPT port via the "Address of LPT ports" option on the
Configuration submenu. This is also how you use sound
cards with D/A converters on custom ports (e.g. the Covox
SoundMaster II(tm)); you select "D/A on LPT" as the output
device, and set the "Address of LPT port" as the address
of the D/A converter on your sound card. Playback goes to
the address you specify as LPT1; LPT2 is only used if you
have 2 D/A converters and wish to have stereo playback.

- Mixing speed: this essentially tells ModEdit how fast your
CPU is; it determines the quality of the sound output.
Mixing speed defaults to 10000. If you have a slow
computer, decrease mixing speed (minimum 5000) so that
your computer will keep up and not crash. If you have a
faster computer, increasing the mixing speed will increase
sound quality (up to a point), but will slow down the
other operations of ModEdit during music playback.

When you're done configuring ModEdit, select "Save
Configuration" to save the current settings to a
configuration file. Next time you start up ModEdit, the
configuration file will be read and the defaults set
according to your specifications.

The configuration file is saved to the current working
directory; this will be the directory that you were in when
you started ModEdit. In order for the configuration file to
be read upon startup of ModEdit, it must be in the current
directory when ModEdit is executed.


To use ModEdit, it is necessary first to understand some
general terminology and concepts dealing with Module


The fundamental building block of patterns. It consists of
three parts:

1) A musical note and octave (e.g. C#3 or A 2)

2) A "sample" or "instrument" code that determines what
instrument sound will be associated with the given
musical note

3) An effect number and argument, which jointly determine
"how" the note is to be played (i.e. loud, soft,
arpeggiated, etc.)

A note unit may either be "empty" or "non-empty". An "empty"
note unit is one that does not contain component (1) above;
that is, it contains no instruction telling the computer to
play a note. A "non-empty" note unit is one that does
contain component (1); that is, it contains an instruction
telling the computer to play a note at a specified pitch.

The concept of "empty" and "non-empty" note units defines the
interval of time between successive notes. This is explained
in more detail in the editing section.


A collection of four independent tracks, each containing 64
contiguous note units (many of which may be empty). It is
the fundamental building block of songs created with ModEdit.
By arranging note units within a pattern/several patterns,
you can create musical motives. Patterns are numbered
starting with 0 and may go up to 63 (i.e. 64 patterns max).


An arrangement of patterns. By arranging patterns into a
sequence, you can group musical motives into a song. The
sequence may be up to 128 patterns long. A given pattern can
appear in the sequence more than once, if desired -- this
means that for repeated musical passages, you need not create

another identical pattern; you simply place the same pattern
number in the sequence.


Also interchangeably called "instrument." It is a collection
of digitized data which mimics a particular instrument (e.g.
flute, piano, guitar, etc.). Samples make your music sound
"real" as opposed to "computerish" (simple square wave
beeps). Up to 31 distinct samples may be used in a Module,
affording a wide range of orchestrational possibilities. The
samples are identified by a single character code, A-Z or
0-4, which means there are up to 26+5 = 31 samples available.
Although 31 "slots" exist for samples, not all sample slots
have to be filled; some may be empty, or "unallocated." If a
sample slot has a sample loaded into it, it is said to be


A complete song, therefore, consists of a number of PATTERNS,
each of which contains 64 NOTE UNITS (some empty, some
non-empty). These patterns are SEQUENCED into a particular
order, which defines the song the listener will hear. The
SAMPLE that is associated with each note determines the
timbral quality (sound) that the note makes as it is played.



4.1.1 What are samples?

To reiterate, samples are the "instruments" that make your
music sound real. Up to 31 distinct samples may be present
in a Module, and each is uniquely identified by its sample
code, A-Z or 0-4. A sample defines the sound that a note
makes when it is played.

The first step in creating a Module should be loading in at
least one sample. After all, you need samples in order to
hear your music at all.

4.1.2 The "sample directory"

Samples are stored as digitized sound files on disk; each
sample is stored in its own individual file. Since you can
have many sample files, ModEdit allows you to specify a
"sample directory" where your sample files are stored. For
instance you could set the sample directory to A:\, which
would make ModEdit look for sample files by default on A:\.
This would allow you to store sample files on diskettes.
Alternatively, you could make a subdirectory on your hard
drive, and set the sample drive/directory there, so that your
sample files would not clutter up other directories.

If a sample directory is not specified (either by hand or
through the configuration file) it defaults to the current
working directory.

4.1.3 Manipulating samples

To manipulate samples, select "Sample" from the main menu.
The "Sample" dropdown menu looks as follows:

| Load sample |
| Preview sample |
| Save sample |
| Attribute edit |
| Play sample |
| Release sample |
| Save all samples |
| Clear all samples |

These functions are described in detail below.

This function loads a sample into a particular slot. If
another sample was already loaded into that slot, it is
discarded. Once a sample has been loaded into a slot, that
particular slot may then be referenced in the editor to
access that sample.

Upon selecting "Load", you will see the sample scroll list.
This list contains all sample slots (identified by the code
A-Z or 0-4), the name of the samples loaded into those slots
(if any), and a list of "attributes" for each sample (see
section below on "attributes"). If a sample's slot has a
star (*) next to it, that sample has not been allocated; that
is, that sample slot is empty. If there is no star next to a
sample's slot, that sample has been loaded (allocated). A
highlight bar indicates which sample slot has been selected.
Once you've moved the highlight bar to the desired sample
slot, press ENTER or click on the left mouse button to choose
that sample.

You will then be asked for the filename of the sample you
wish to load. If, instead of a filename, you enter a
pathname, then a directory scroll list will popup, and you
may select the sample file you wish to load from the list.

After selecting a filename, that particular file will be
loaded into the previously selected sample slot. Any errors
during loading will be reported to you. Loading a sample
sets the attributes as follows: (see section below on
"attributes" for a description of attributes)

- Name: The filename on disk of the sample file
- Volume: 64 (the maximum)
- Loopstart, Looplength: Both set to 0
- Tuning: Set to "C 2" (range is set to C 1-B 3)
- Finetune: Set to 0.

Loading a sample also sets the default sample for the editor
to be that sample. See section 4.2.1, subsection
"Preliminaries about the editor," and subsection "Editing the
sample field," for a detailed explanation of the "default

Previewing a sample is very similar to loading a sample.
First you select the desired sample from the sample scroll
list. Then you enter a PATHNAME (not a filename) on the
diskette that you wish to preview samples from.

ModEdit will then scan for all sample files in the directory
you specified, and will present them on a scroll list of
filenames. After selecting a filename, that sample is loaded
into the selected slot and is automatically played. You are
then free to select another filename from the scroll list. By
moving through this scroll list and selecting different
filenames, you can hear several different samples without
repeatedly having to invoke the "Load" function. Once you
find a sample file that you like, press the ESC key to quit
previewing. The last sample you selected stays loaded in the
selected sample slot.

Selecting "Save" allows you to save a sample to disk. Note
that the sample attributes are NOT saved into the sample

After selecting save, you will be presented with the sample
selection scroll list. Select which sample you wish to save
from the list. Obviously, you can only save samples which
are allocated (i.e. the ones without a star * next to their
code). You will then be prompted to enter the filename to
save the sample to. ModEdit will attempt to make a
reasonable guess at a valid DOS filename from the sample's
name attribute, but it's not always possible to do this
automatically (since sample names are often edited -- see
section on "attributes" below). Edit the given filename if
you need to, then press ENTER or click on the [OK] button.
The sample (without attributes, remember) will be saved to

Attribute edit
This function first allows you to select a sample from the
sample scroll list, then pops up a dialog box allowing you to
alter the attributes of the selected sample. See the section
below on "attributes."

After you select a sample from the sample scroll list, this
function plays the selected sample to the output device (see
"Configuration"). Press any key to stop sample playback.

After you select a sample from the sample scroll list, this
function frees the memory allocated to the selected sample.
The sample that was previously in that slot is no longer
usable. Confirmation is asked before releasing a sample.

Save All
This function is similar to "Save", but it saves all the
allocated samples in memory to disk. This is useful for
quickly extracting all samples from a MOD. You will be
presented with a list of all allocated samples and proposed
filenames to save the samples as. Edit the filenames so that
they are all valid DOS filenames, then click on the [OK]
button. The samples will then be saved to the filenames you
entered on the screen. Any errors in saving any of the
samples will be reported.

Clear All
This function is similar to "release" sample, but it releases
all samples in memory. It asks for confirmation before
releasing all samples, since this is a potentially
destructive function.

4.1.4 Attributes of samples

As mentioned above, the sample scroll list displays the
sample "attributes." Sample attributes define certain
characteristics of the sample. You may edit any of these
attributes by pressing "A" from the "Sample" menu.

NAME: The first attribute of a sample is the name. ModEdit
by default sets the sample name attribute to the sample
filename on disk. This is for clarity and it is recommended
that you have meaningful sample names. You are, however,
free to edit the name attribute to anything you want, up to
22 characters long. Some composers edit all the sample name
attributes to form a message containing composer information
or the like. This makes later identification of samples

VOLUME: The second attribute is the volume. Whenever a note
unit is played, the sample that is used to play that note
can have a volume from 0 through 64 (64 being loudest). You
may specify the volume for this note unit explicitly through
the effect field with command "C" (see "Effects" below). If
you do not specify a volume, the sample is played back with
the volume specified by its volume attribute.

LOOPING: The third and fourth attributes jointly determine
"looping" of the sample. Some sounds, such as a piano or a
snare drum, have a definite start and end point. Such
samples are generally not looped (though they could be for
special effects or something similar). On the other hand
some sounds, such as a flute or a sine wave, do not have a
definite "ending" point; the sound is a constant waveform
that only changes in frequency as different notes are played.
Such sounds are often looped.

A "looped" sample is one that will continuously be played
without stop. Sample looping is defined by a "loop start"
attribute and a "loop length" attribute. The "loop start"
attribute is a number that represents an offset from the
beginning of the sample; it is from this point that sample
looping begins. The "loop length" attribute is a number that
represents the length of the section to loop. A diagram
will make this clearer:

+---Loop Length----------+
| |
| This section is played |
v continuously v
-Sample data stream--------==========================
^ ^ ^
| | |
| Loop Start |
| |
+--------------Sample Length------------------------+

The portion of the sample data stream beginning at the loop
start and ending at loopstart + looplength is played
continuously, allowing "ringing" or continuously sounding
notes. This looped portion of the data stream is represented
above by the "=" symbol.

The best way to get a feel for sample looping is to
experiment with the loop bytes and listen to the results
(e.g. with the "

lay" option in the "Edit Sample" menu).

TUNING: In order for ModEdit to display notes properly, all
samples must be "tuned". This is a change from earlier
verisons of ModEdit, which did not provide for sample tuning.
If samples are not tuned properly, the onscreen note display
will be inaccurate. ModEdit has 2 tuning attributes for each

The first tuning attribute is the large-scale tune attribute,
or simply the "tune" attribute. This attribute is a note and
an octave that define the "base" pitch of that particular
sample; the note and octave are the pitch that the sample
makes when played back with the "P" command (section 4.1.3).
An external tuning source, such as a piano or other musical
instrument, could be useful here. Most samples are tuned to
"C 2"; therefore, ModEdit by default sets the tuning
attribute to "C 2". Some samples, however, are tuned to
other notes, and these samples must be tuned manually. Again,
if this tuning attribute is not set properly, the notes
displayed on the screen will be inaccurate (for instance, a
"C 2" on the screen might give you an audio note "D 2" out of
the speaker, or something similar).

The tune attribute determines the "range" of a sample. The
"range" of a sample is defined to be the 3 octave range with
the tune attribute pitch in the middle. For instance, if a
sample is tuned to C 2, its range is C 1-B 3. You are
actually free to enter notes outside of this range; ModEdit
can handle notes from C 0 to B 9. However, if you choose to
enter notes outside of a sample's range, the resulting Module
may not be playable from other MOD players/editors (though
ModEdit will handle it fine). Also, some special note
effects (see "Effects") simply cannot be applied outside of a
sample's range. Keep these factors in mind when you're
entering music.

Beware: If 2 samples have different tune attributes, then
loading one in place of the other will cause your music to
sound dissonant, because the notes played with one sample do
not correspond with the notes played by the second sample.
(Additionally, since the samples are tuned differently, they
have different ranges -- see preceding paragraph). Therefore,
it's usually best not to interchange samples with different
tune attributes. If you need to, though, you can transpose
the notes associated with that sample up or down to
compensate for the difference in tuning. See section 4.2.4
for information about transposing notes.

The second tuning attribute is the "finetune" attribute. This
attribute is an integer from -8 to +7 that "nudges" the
sample frequency slightly up (positive numbers) or slightly
down (negative numbers) when it is played back. It alters
the sample frequency less than a half step.

So, the general procedure for tuning samples is:

1) Adjust the (large scale) tune attribute to the note that
is closest to the note that the sample makes when played
back. Usually you'll be able to find an exact note and
octave that fit the sample's audio output.

2) If the note obtained by playing back the sample is
somewhere "between" two notes (for instance, slightly higher
than "C 2" but slightly lower than "C#2"), use the finetune
attribute to adjust the sample playback so that the note it
produces falls exactly on a musical note.

4.1.5 Creating your own sample files

Sample files are, again, digitized sound information stored
in a file. Many different formats exist for storing sound
information in a file. The .SAM format is very simple; it
contains raw, 8-bit, signed digital data, with no header.

If you have sound files in other formats, many conversion
utilities exist that can convert from one format into
another. Again, you need to convert your sound file into a
raw, 8-bit, signed, headerless format in order for it to
sound correct in ModEdit.

If a you load in a sample of your own and it sounds very
"noisy" or filled with static, then either (1) the data is
not raw (e.g. it is compressed in some form) or (2) the data
is not signed. To remedy (1) you must find an appropriate
sound file conversion utility. To remedy (2), you can add 128
to each byte in the sample file by 128, subtracting 256 if
the result is over 255. This changes the data from signed to
unsigned (or vice versa) and is often the problem.


After you've loaded in a sample (or several samples), you're
ready to enter music. ModEdit 3.0 supports a flexible,
intuitive, powerful piano-roll format for entering music,
entirely different than all other MOD editors that I know of.

4.2.1 Editing Patterns

The main building block of Modules is the pattern. Musical
notes in Modules are entered into patterns. From the main
menu, choose the "Edit" option, which will display the Edit

ModEdit intially places one pattern in memory (in fact there
will always be at least one pattern in memory). So, to start
editing, select the "Edit Pattern" option. The pattern that
is selected for editing is the "current pattern"; you may
only edit one pattern at a time. To change the current
pattern you may use the "<" and ">" keys; "<" takes you to
the previous pattern in the sequence table; ">" takes you to
the next pattern in the sequence table. Initially, of course,
there will be only one pattern in the sequence table so "<"
and ">" cannot change the pattern being edited (initially).

You are now in the ModEdit pattern editor. The editor screen
looks something like this:

(Editor Status Line)
+Pattern: 0( 0):0 -Track 1 2 3 4 Samp A:NONE +
|Samp| |
|Eff.| |
|Arg1| (Sample and Effect information appear here) |
|Arg2| |
|Beat| |
|B 2 | ^
>A#2 | |
|A 2 | |
|G#2 | |
|G 2 | |
|F#2 | (Notes appear here) |
|F 2 | |
|E 2 | |
|D#2 | |
|D 2 | |
|C#2 | |
|C 2 |Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxv
+<---------------------------No effect ---------------------->+
(Note status line)

Preliminaries about the editor
A few general comments are in order. Each pattern has 4
tracks; only one may be edited at a time. Although you may
only edit one track at a time, you still may view the notes
in all 4 tracks at once. Optionally, you may also choose to
view only one track at a time.

Since only one track can be edited at a time, only the sample
and effect information for the current track is displayed. To

view or change the sample/effect information for another
track, you first need to edit that particular track.

The term "default sample" is used below, and is defined
here. As mentioned in section 3.1, each note unit has
associated with it a sample code. When entering notes in the
editor, it's often convenient to have the computer enter a
sample code automatically when you enter a note (rather than
you repeatedly having to enter a note and a sample).
Therefore, the concept of a "default sample" arises; the
"default sample" is the sample code that the computer
automatically enters when you enter a note.

Parts of the editor screen
There are 4 major parts of the screen: the editor status
line, the note status line, the sample/effect area, and the
note area. Each is described below.

EDITOR STATUS LINE: This line displays position information,
as well as the default sample. After the word "Pattern:",
the current pattern number is displayed outside parentheses,
the current sequence position is displayed inside
parentheses, and the current note offset (0-63) within the
current pattern is displayed after the colon. After the word
"Track", the track currently being edited is highlighted
(only one track may be edited at a time). After the word
"Samp:", the current default sample for the editor is

NOTE STATUS LINE: This line displays human-readable
information about the current note that the cursor is on. It
displays first the sample name associated with the current
note, then the effect name of the effect associated with the
current note.

SAMPLE/EFFECT AREA: This area displays coded information
about the sample and effect for ALL note units in the
pattern. Each note unit (0-63) in the pattern has one column
in the sample/effect area. The top row in each column is the
sample code for that note. The second row in each column is

the effect code for that note; the third and fourth rows, the
effect arguments. The last row in each column shows the
beats of notes in the pattern. If there IS a note at a
particular column, a note symbol appears in the beat column
for that note. If there is NOT a note in a particular
column, the note symbol does not appear.

NOTE AREA: This area displays the notes in a pattern. Notes
within the current track are represented with bold, solid
squares (represented here by 'X'). Notes for tracks other
than the current track are represented with dim squares
(represented here text by ':'). The duration of each note is
shown by its length; duration for notes within the current
track is shown with slightly bold squares (represented here
by 'x'); duration for notes in tracks other than the current
track is shown with very dim squares (represented here by
'.'). The highness or lowness of notes is represented by the
vertical position of the note squares in the display.

Moving around the pattern editor
Each pattern consists of 64 note units for each of 4 tracks.
The 64 note units go horizontally across the screen. The
pitch of each note is shown by its vertical position in the
editor screen, as per the "note ruler" on the left hand side
of the screen. For instance, a "C 2" note would appear as:

+Pattern: 0( 0):0 -Track 1 2 3 4 Samp A:NONE +
|Samp| |
|Eff.| |
|Arg1| |
|Arg2| |
|Beat| |
|B 2 | ^
>A#2 | |
|A 2 | |
|G#2 | |
|G 2 | |
|F#2 | |
|F 2 | |
|E 2 | |
|D#2 | |
|D 2 | |
|C#2 | |
|C 2 |Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxv
+<---------------------------No effect ---------------------->+

Notice that the pitch range of the screen is limited to 16
halfsteps (more if you have registered the program and are in
EGA/VGA 43/50 line mode). Therefore, to view pitches higher
or lower, it is necessary to scroll up or down in the window.

Movement around the screen is quite simple:

/ : Move to next/previous note unit in pattern.
/ : Move cursor to a higher/lower pitch.
/ : Move cursor one screenful up/down.
/ : Take cursor to beginning/end of pattern.
1 2 3 4 : Change current track to 1 2 3 or 4

If you have a mouse, clicking on the arrow symbols at the
corners of the editor screen will move the cursor in the
indicated direction.

Entering notes
To enter a note, move the cursor to the desired position
within the pattern (horizontally) and to the desired pitch
(vertically). Then simply press or , or, with
a mouse, click the left button. If there was previously a
note at that position, it is replaced by the new note.

To remove a note, move the cursor to the desired position
within the pattern (horizontally) and press the
key. Notice that you do not have to move the cursor to the
pitch value of the old note. This removes the note but does
not affect the rest of the pattern. The right mouse button
also performs this function. The note unit then becomes

To remove a note AND shift all remaining notes in the current
track and pattern to the left by one space, use the

To insert space into the current track of the current
pattern (i.e. increase the space between notes), use the

It's often useful to be able to hear what a note will sound
like before you enter it. Pressing "X" allows you to hear
the pitch that the cursor is on, using the default sample.
You can move the cursor up and down, pressing "X" repeatedly
until you find the pitch you need, then press ENTER or SPACE
to enter that pitch for the note unit the cursor is on.

Entering a note as shown above puts a note and octave into
the note unit that the cursor is on. (Remember, a pattern
consists of 64 contiguous note units.) This makes that note
unit non-empty. Recall, non-empty note units tell the
computer to play a sample (instrument) when it encounters
that position.

What about empty note units, then? Empty note units tell the
computer to do nothing. The previous non-empty note units,
then, keep on playing (until the sample length has been
exhausted) during the empty note units.

So, duration of a non-empty note unit is, effectively, the
space between that non-empty note unit and the next non-empty
note unit. Note that if a sample has been played completely
through before the next non-empty note unit in the pattern,
silence will result. (If this doesn't make sense, just
experiment; that's the best way to get a feel for this.)

Example: (X represents non-empty note units; x, empty)

Xxxx Xxxxxxxxx
Xxxx Xxxxxxxx

Above represents a series of 4 notes, the last 2 of which are
twice as long as the first 2 (8 note units as opposed to 4
note units).

If you wish to enter music from a standard musical score, you
must decide on how many note-units (i.e. squares or X's in
the diagram above) you wish to allocate to each "standard"
musical note. For instance, you could choose 4 x's to be a
quarter note; then an 8th note would be 2 x's, and a half
note would be 8 x's. This choice is completely arbitrary.
Usually, 4 squares for a quarter note is a good choice.

Example: One possible choice for entering standard music

Whole --------- 16 squares Xxxxxxxxxxxxxxxx
Half ---------- 8 squares Xxxxxxxx
Quarter ------- 4 squares Xxxx
Eigth --------- 2 squares Xx
Sixteenth ----- 1 square X

Editing the sample field
You will notice that when you enter a note, not only does the
note appear, but also a code in the sample field above
appears. This code is the "default sample" that was
mentioned above. You may change the default sample either
from the "Edit" submenu, or by pressing the F5 key in the

By default, the default sample will NOT overwrite an existing
(i.e. non-zero) sample number. For instance, say that the
default sample is 3, and you enter a note "C 1" in an empty
note unit; then the sample number of that note unit will
become 3. Later, you change your default sample to 4, and

change this "C 1" to a "D 1". The sample number will stay 3,
since the default sample, by default, does not have
"precedence" over an existing sample number. This is so that
you may change existing melody lines without altering the
sample number. You may change this precedence by going to
the Edit Menu. If the default sample has "precedence," it
will always overwrite an existing sample field. This is
useful for entirely rewriting tracks, samples and all.

Again, pressing F5 in the editor will allow you to change the
default sample. You'll want to change the default sample
when your lead line changes instruments, when you switch from
entering a lead track to a percussion track, etc. --
basically, whenever the music you're entering switches from
predominantly one instrument to another.

You may also edit the sample field manually by pressing "S".
This will popup a sample scroll list, from which you then
select the particular sample that you wish to be associated
with the note unit that the cursor is on.

Note that it is possible for a note unit to have a non-empty
note field, but a null (empty) sample field. This can happen
if you set the default sample to none and edit an empty note
unit, or if you manually change the sample field to none. The
end result is a note with no associated sample. I call such
notes "orphaned" notes. You generally should avoid orphaned
notes. They may play correctly, since the sample number that
will be used during playback will most likely default to the
last sample number that was used in that track. It's best
explicitly to associate a specific sample number with each
non-empty note field.

Additionally, you need to beware of using samples that you
haven't loaded. For instance, you may you may edit the
sample field to be any say, "sample code Q" even if you have
not yet loaded a sample into position Q. If you forget
eventually to load a sample into position Q, you may
(probably will) get very strange results during playback
which may crash your computer. So, always make sure that,
when you're ready to play your music, you are only using
samples you have loaded.

Editing the effect field
The effect field consists of 2 parts: a command and an

The command can one of 16 values: 0 1 2 3 4 5 6 7 8 9 A B C
D E F. These commands control various aspects of note and
song playback. An effect command generally takes effect
starting immediately with the note field associated with that

The argument is one byte long and is represented in
hexadecimal. A hexadecimal byte is a base 16 representation
of a number that consists of an "upper nybble" and a "lower
nybble", each of which may take on a value of 0, 1, 2, 3, 4,
5, 6, 7, 8, 9, A, B, C, D, E, or F. Values from A - F
correspond to the decimal values 10 - 15.

Certain commands listed below use the 2 nybbles separately
(e.g. arpeggiation). In this case, the 1st nybble is one
argument, and the 2nd nybble is the 2nd argument. Other
commands treat the 2 nybbles jointly as one byte (e.g.
speed). In this case, the decimal equivalent of the
hexidecimal number is calculated by: (upper nybble * 16) +
lower nybble. So, for instance, an effect of "F 1D" would
mean set the song speed ("F") to 29 (1*16 + D = 1*16 + 13 =

Here's a list of effects and their required argument byte.
"xy" for the argument byte means each nybble is treated
separately; "xx" means they are treated jointly as one byte.

Format: 0 xy

Plays its associated note in arpeggiated fashion; that is, it
rapidly steps the note between 3 pitch values: the original
pitch value, the original pitch value + "x" number of
halfsteps, and the original pitch value + "y" number of

Format: 1 xx

Slides pitch up; slide speed is determined by the xx argument
(remember, it's in hexadecimal). Slides cannot occur outside
of a sample's range (see section on "attributes" above).

Format: 2 xx

Just like SLIDE UP except it slides the pitch down. Slides
cannot occur outside of a sample's range.

Format: 3 xx

Similar to slide except it slides the pitch TOWARDS the
pitch of the associated note field (commands 1 and 2 only
specify a speed, not a destination). xx is the speed to
slide the pitch. If "xx" is "00", the slide continues in the
same direction with the same speed. Slides cannot occur outside
a sample's range.

Format: 4 xy

Performs "vibrato" on a note (wavering effect). x is the
vibrato speed; y is the vibrato depth. If "xy" is "00",
vibrato continues with the sampe speed and depth.

Format: 5 x0 or 5 0y

Continues the "slide to command" selected by effect 3, while
simultaneously sliding the volume either up or down. x
is the speed to slide the volume up; y is the speed to slide
the volume down. Slides cannot occur outside a sample's

Format: 6 x0 or 6 0y

Continues the "vibrato" selected by effect 4, while
simultaneously sliding the volume either up or down. x is
the speed to slide the volume up; y is the speed to slide the
volume down.

Format: 7 xy

Vibrates the volume of the note. x is the speed of the
tremolo; y is the depth.

Format: 9 xx

Plays the associated sample starting from a specified point,
rather than starting from the beginning of the sample. The
sample offset is xx * 256; that is, the offset is $xx00

Format: A x0 or A 0y

Slides the volume either up or down. If x is specified and y
is 0, the volume is slid up at speed x. If y is specified
and x is 0, the volume is slid down at speed y.

Format: B xx

Breaks the pattern (i.e. stops playing it at its current
position) and jumps to position xx (hexadecimal!) in the
pattern sequence table.

Format: C xx

Sets the volume for its associated note unit to xx. Note
that it only takes effect with its associated note unit, not
subsequent notes. Valid volume range is 00 - 40 (hex).

Format: D xx

Breaks the pattern (i.e. stops playing it at its current
position) and goes on to the next one in the pattern sequence
table. The next pattern starts playing at row xx. xx
is a decimal number from 0 to 63.

Format: Ex y

Several commands are accessed through the "E" command. The
first argument, "x" determines which of these miscellaneous
commands is to be executed. The second argument, "y", is the
argument to the chosen command.

E1 y: Fine slide up. Similar to effect 1, "slide up", except
it only slides the note up once; it does not continue sliding
during the length of the note. y = slide speed, hex 0 to F.

E2 y: Fine slide down. Similar to effect E1, except it
slides down.

E3 y: Glissando control. When glissando is enabled, "slide
to note" (effect 3) will slide a half-step at a time, instead
of a smooth slide. y=1 means glissando on; y=0 means
glissando off.

E5 y: Set finetune. y is the finetune value, as a signed 2's
complement number. That is, if y is 0 to 7, the finetune
value is y. If y is 8 to F, the finetune value is y-16
(that's y minus sixteen).
Positive finetune values make the pitch slightly higher;
negative, slightly lower.

E6 y: Pattern Loop. If y is 0, the current row is marked as
the start of the loop. If y is 1 through F, then the pattern
jumps to the start of the loop y times.

E9 y: Retrigger note. y is the "tick" at which the note
will be retriggered. The number of "ticks" per note is
determined by the speed of the song (command F).

EA y: Fine volume slide up. Similar to normal volume slide
up, except it only slides the volume once (not during the
entire length of the note). y is the slide speed.

EB y: Fine volume slide down. Similar to fine volume slide
up, except it slides down.

EC y: Cut note. Cuts the note at tick number "y", giving
very short notes. The number of ticks per note is determined
by the speed (command F).

ED y: Note delay. Delays playing of the note until tick
number "y".

EE y: Pattern delay. Delays playing of the pattern for "y"
notes before continuing playback.

Format: F xx

Sets the speed of the song; hex values 00 - 1F are "internal"
values, with lower numbers being faster. Values 20-FF are
BPM (beat per minute) values.

The best way to understand what exactly these effects do is
just to experiment and listen.

Copying patterns
Often it's useful to copy a pattern to another one. To do
this, press "C" or "c" within the editor. "C" will copy an
entire previous pattern to the current one; "c" will only
copy one track from a previous pattern to the current one.
Note that the source pattern is copied to the current cursor
position in the current pattern; this means that if you want
to paste a pattern in the middle of another pattern, you can
do so by moving the cursor to the middle of the current

After pressing "C" or "c", a dialog box will appear in which
you enter the source pattern, offset within the source
pattern, and source track (if applicable) for the copy. Then,
clicking on [OK] performs the copy.

If, instead of typing in the source pattern, you'd like to
select it from a scroll list, you can do so by clicking on
the "Select Source" button at the bottom of the copy dialog
box. The Pattern Sequence Table will then appear, and you
can choose the source pattern directly from the table. See
the section below on "Sequencing/Creating Patterns".

Transposing patterns
To transpose a pattern within the editor, you may use the F7
and F8 keys. F7 will transpose the current track up one half
step; F8, down one half step. Notice that these keys only

apply starting from the cursor position and going to the end
of the current pattern. Therefore, you can transpose part of
a pattern or all of a pattern. To transpose more than one
pattern, you should select the "Transpose patterns" option
from the Edit Submenu (see "Other Edit Options" below).

Editor view options
Three keys, "V", "D", and "H" are discussed here; they all
affect what parts of the MOD you see onscreen.

"V": View sample. By pressing "V" in the editor, the sample
selection scroll list will appear. You may select a sample
from this list, after which the ONLY notes that will be
displayed in the editor will be notes associated with the
selected sample. This is useful if a track or some tracks
contain several different, interlaced melody lines scattered
among a few instruments. By viewing only one instrument, you
can reduce the complexity of the onscreen display and follow
just one instrument line at a time. Beware that editing
while viewing only one sample can be dangerous, because you
run the risk of overwriting notes that you can't see. To
alleviate this, the sample/effect information for "invisible"
notes during a view are highlighted. Selecting "< SAMPLE>>" after pressing "V" will turn off the view feature
and all notes for all samples will be displayed.

"D": Duration toggle. Pressing "D" in the editor toggles on
and off the showing of note durations. Note duration in a
MOD, you will recall, is defined by the interval from one
non-empty note unit to the next non-empty note unit. This
duration is shown on screen as dim blocks, and is very useful
for seeing the rhythmic structure of a piece. However, if a
melody line is distributed over 2 or more tracks, it can be
difficult to follow because the note durations for the
current track clutter up the screen display. By toggling the
note durations off, only the non-empty note units will be
displayed. This can greatly reduce the clutter on the screen
and is, again, most useful when you want to follow the action
of 2 or more tracks at once.


With durations on With durations off

Xxxx X
Xxxx X
Xxxx Xxxx X X

"H": Hide track toggle. Pressing "H" will toggle a track
between hidden/non hidden status. A hidden track will not be
displayed unless it is the current track. Hiding tracks is
useful when you only want to work with one or two tracks and
don't want the screen to be cluttered by the other tracks. A
hidden track will have parentheses () around its number in
the editor status line.

Playing music from within the editor
You may hear your music from within the pattern editor three

First, you may press the "N" key, which plays the note unit
the cursor is on.

First, you may press the "T" key, which plays the track the
cursor is located in.

You may press the "P" or the F10 key, which plays the entire

By pressing the F4 key in the editor while music is playing,
the cursor will "trace" the song as it's played back; that
is, the cursor will show the position currently being played
within the Module as the song is being played. (Registered

These functions are useful for immediately hearing what your
music sounds like, allowing you to make changes and hear the

4.2.2 Sequencing/creating patterns

One pattern is not enough to enter any song of reasonable
length. Therefore, you need to be able to create more
patterns, as well as to sequence these patterns into a
coherent order. This is done with the
"Sequence/create/choose" option under the Edit submenu.

The Pattern Sequence Table is a scroll list, and will
initially look like:


The left number represents the POSITION within the sequence
table. The right number represents the PATTERN NUMBER that
is at that position. There is a maximum of 128 positions
within the table.

The highlight bar represents the current pattern. It is the
pattern that is edited when you are in the pattern editor. To
change it, use the up and down arrow keys. This scrolls you
through the current pattern sequence, thereby changing the
current pattern.

Creating a pattern or modifying the sequence are done with
the same dialog box. To create a pattern and insert it after
the current position, press ENTER. A dialog box will
appear; it serves 2 purposes. First, you can enter a pattern
number, which will change the pattern number at that position
within the table. Second, you can click on the [Create
Pattern] button at the bottom of the dialog box, which will
then create a NEW pattern and insert it after the current one
in the sequence.

To insert or delete patterns into your song, press INS or
DEL, repsectively. A "00" pattern will be inserted into the
sequence, which you can then edit to be whatever pattern
number you want.

You need to be aware that when you save a Module (see "Saving
and loading Modules" below), the highest pattern number that
will be saved is the highest pattern number that was USED in
the pattern sequence. For instance, say you created 38
patterns (0 - 37), but in your sequence you only used
patterns 0 through 20. If you attempted to save the song,
patterns 21 through 37 would not be saved. This is a
limitation imposed by the Module format. Be sure, therefore,
that when you save a Module that the highest pattern number
in the sequence table corresponds to the highest pattern in
memory. This usually isn't a problem, since creating a
pattern automatically puts it into the sequence table.

4.2.3 Other edit options

In addition, the Edit menu has a few other options for your

"Transpose pattern" allows you to increase or decrease the
pitch of notes in a pattern by a certain number of
half-steps. You may transpose all tracks or only one track.
Additionally, you may transpose all samples in the
pattern/track or only 1 sample. This is useful if you want
ony to transpose a particular INSTRUMENT.

"Erase all patterns" does just what it says -- erases all
patterns from memory. It asks for confirmation before it
wipes the pattern memory. It's useful if you want to start
over with a new song but keep the current samples in

"Highlight notes" allows you to specify the starting note to
be highlighted in the editor window, as well as the increment
between highlighted notes. Highlighted notes in the editor
are simply for reference, so that you can tell at a glance
where you are within the pattern. The default highlight
start line is 0, and the default increment is 4.


4.3.1 Playback within ModEdit

The simplest way is to choose "Play whole song" from the
"Play" option on the main menu. You may also choose "Play
part of song" to play back only a part of the song. During
playback, regular processing continues, so you can actually
edit a MOD while it's playing. (See section on "Recording"

During playback, you can jump forward or backward in the song
by selecting the appropriate options under the Play menu. You
can also alter the volume by selecting "Volume". To stop
playback (it loops forever until you stop it), select the
"Stop" option.

Also, as mentioned previously, you may use the N, T, or P
keys from within the pattern editor to play a note, track, or
song, respectively.

4.3.2 MODPLAY: External playing

To play modules outside the ModEdit environment, simply
choose the "Save Module" option of the File Submenu to save
your song to a Module. It's best to save it with an
extension of ".MOD," so that MODPLAY and ModEdit can
automatically locate it.

The resulting Module on disk can be played via the external
Module Player MODPLAY, by Mark J. Cox. Consult the MODPLAY
documentation for specific instructions on using MODPLAY.


ModEdit 3.0 allows you to play along with a Module in real
time, using your computer keyboard as a piano keyboard.

To use the real-time recording functions, first select the
sample you want to do the recording with, with the "Sample to
record with" option of the Record Submenu. Next, select

which track you wish to record in, with the "Track to record
into" option.

Next, start the MOD playing by selecting one of the
appropriate options under the Play Submenu. Then, while the
MOD is playing, select either "Play without recording" or
"Record from keyboard" options. The first option will let
you play along with the MOD and hear the results in real
time, but will not actually store your notes into the MOD.
The second option (available in the registered version) will
not only play the notes you strike, but will also store them
into the MOD. This often makes music entry much easier and
faster -- not to mention more enjoyable. The layout of the
keyboard, as a piano, is shown on screen during recording,
and is as follows:

F#2 G#2 A#2 C#3 D#3 F#3 G#3 A#3
2 3 4 6 7 9 0 -

F2 G2 A2 B2 C3 D3 E3 F3 G3 A3 B3
Q W E R T Y U I O P [

C#1 D#1 F#1 G#1 A#1 C#2 D#2
S D G H J L ;

C1 D1 E1 F1 G1 A1 B1 C2 D2 E2
Z X C V B N M , . /

If you'd like to "synchronize" your playing with the start of
the Module playback, select "Synchronous start" from the
Record submenu. Then, the instant you hit a key to start
recording, the Module will reset itself to the beginning, so
that it begins "synchronously" with your input.


ModEdit can load in standard 15 or 31 instrument Modules.
This means you can edit a very large portion of existing
Amiga Modules (since the Module format comes from the Amiga).
ModEdit looks for Modules in the "Module directory," which
you may set/change via the Configuration Submenu. Loading a
Module is straightforward; choose the "Load Module" option of
the File Submenu, specify the path/filename, and the Module
will be loaded into memory. Any errors during loading will be
printed to the screen.

Saving a Module is equally simple; simply choose the "Save
Module" option of the File Submenu. Technical note: ModEdit
only saves 31 instrument Modules, even Modules that were
originally loaded as 15 instrument modules. Since the 15

instrument format is supported for loading, compabitility is


5.1 Pattern editor quick reference key summary

Category Key(s) Function
General F1 Help
F2 Sample editing
F3 Sequence/create/choose pattern
Playback F10/P Play entire song from cursor
T Play track from cursor
N Play note at cursor
X Hear note at cursor
F4 Trace playback (registered ver.)
F6 Playback volume
F9 Stop playback
Viewing 1 2 3 4 Switch to track 1 2 3 or 4
D Toggle durations on/off
H Toggle current track hidden/shown
V View only one sample
Movement < > Previous/next pattern in sequence
Arrows, Move within pattern
Editing Space, Put note at cursor position
Ins/Del Insert/Delete note in pattern
BS Remove note at position
c/C Copy part/all of another pattern
e/E Set/clear effect for a note
S Set sample for a note
Z Zap (erase) a track
F7/F8 Transpose a track up/down
F5 Choose default sample

5.2 Effect list -- quick reference

Effect #/Description Format/Argument
-------------------- ---------------
1: Slide Up 1 xx xx=speed
2: Slide Down 2 xx xx=speed
3: Slide To Note 3 xx xx=speed
4: Vibrato 4 xy x=speed y=depth
5: Slide To+Vol Slide 5 x0/5 0y x=upspeed OR y=downspeed
6: Vibrato+Vol Slide 6 x0/6 0y x=upspeed OR y=downspeed
7: Tremolo 7 xy x=speed y=depth
8: <>
9: Set sample offset 9 xx Play sample from offset $xx00
A: Volume Slide A x0/A 0y x=upspeed OR y=downspeed
B: Position Jump B xx xx=pattern position
C: Set Volume C xx xx=volume(00-40 hex)
D: Pattern Break D xx Skip to pos xx in next pat
E1:Fineslide up E1 y y=slide speed
E2:Fineslide down E2 y y=slide speed
E3:Glissando control E3 y y=0/1 (off/on)
E5:Set Finetune E5 y y=finetune value
E6:Pattern loop E6 y y=0/1-F (start/# of loops)
E9:Retrigger note E9 y y=tick to retrigger note
EA:Fine vol slide up EA y y=slide speed
EB:Fine vol slide down EB y y=slide speed
EC:Note cut EC y y=tick to cut note
ED:Note delay ED y y=ticks to delay note
EE:Pattern delay EE y y=notes to delay pattern
F: Set Speed F xx xx=speed(00-1F)


MODPLAY is an external Module playing program by Mark J. Cox.
MODPLAY can play Modules created with ModEdit, outside the
ModEdit environment, often with higher quality than from
within ModEdit (MODPLAY devotes the entire processor to
playing, but ModEdit allows you to continue other functions
while playback takes place). It is available at many ftp
sites, one of which is wuarchive.wustl.edu (in
mirrors/msdos/sound). The latest version is 2.19b.


MODOBJ is a .OBJ file that allows you to play Modules within
your own software. It is also written by Mark J. Cox, and
may be obtained via anonymous ftp on ftp.brad.ac.uk, in
directory /misc/msdos/mp. Mr. Cox's email address is
[email protected] ModEdit uses a special version of


ModEdit 3.0 is, of course, the third major incarnation of my
ModEdit software. It is, I believe, the first MOD editor to
use a more natural piano-roll style interface for entering
notes. It has evolved significantly since version 1 was
released long ago.

ModEdit 3.0 will probably be the last major release of
ModEdit. I unfortunately do not have as much time to work on
it as I used to. I still may make minor enhancements to the
program such as:

- Real time recording from MIDI devices
- Printout of a MOD

With enough support from users, though, I may be persuaded to
make other enhancements to the program. Let me know. Once
again, my address for registration and other inquiries or
comments is:

Norman Lin
P.O. Box 2724
Norman, OK 73070-2724

Internet email addresses:

PREFERRED: [email protected]
ALTERNATE: [email protected]
[email protected]
[email protected]
[email protected]
[email protected]

 January 2, 2018  Add comments

Leave a Reply