home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
music
/
midimovr
/
midimovr.doc
next >
Wrap
Text File
|
1993-08-22
|
27KB
|
590 lines
Introduction to MidiMover
-------------------------
This file explains the use of MidiMover, Hybrid Arts' MIDI File converter.
MidiMover can convert between Hybrid's .SNG files and the "MIDI File 1.0"
standard. It supports both format 0 and format 1 MIDI Files, and can in
fact be used to convert between those two formats. It also reads MacBinary
(some MIDI Files uploaded by Mac users) that some other MIDI File converters
may not handle, and can convert these to standard data files that non-Mac
computers (including the ST) use.
All the MIDI File conversion features of MidiMover are also found in the
Official Release Version of the MidiTrack ST Series sequencers (SmpteTrack,
SyncTrack, and EditTrack). In fact, MidiMover is simply a modified version
of MidiTrack ST, with only the functions needed for converting MIDI Files
retained, along with a simple playback capability.
Please include this documentation if you want to give MidiMover to anyone
you know (MidiMover is technically not "public domain", being Copyright
1986/89 Hybrid Arts Inc, but we give you permission to distribute it
freely; consider it "freeware"!). Portions of this file are included in
Appendix C which is supplied with the Official Release Version update of
the MidiTrack ST Series sequencers.
This file has been formatted for either Showing or Printing. When printed
it will automatically skip perforations (if you use standard 66-line pages).
What Are MIDI Files?
--------------------
MIDI itself, as sent along MIDI cables, is a standard that has been agreed
upon by many manfucturers. You can interconnect most keyboards and other
instruments using MIDI and they will "talk" to each other, "understanding"
the same language.
But when a sequencer records MIDI information on a computer, there are
many things it needs to keep track of in addition to the MIDI events,
such as _when_ the events should be played back, how they are organized
into tracks, what the tempo of the song is, which tracks you want muted
or protected, etc. Different sequencers need to store different amounts
and kinds of information, and so each sequencer uses a different file
format. You can not, in general, take a file created with one brand
of sequencer and read it into another brand of sequencer, even if both
sequencers use the same kinds of data disks, because each sequencer
expects the information in the file to be organized differently.
So it used to be that, if you wanted to transfer a song between two
different sequencers, the only way you could do it was to run each
sequencer on a separate computer, connect the two computers with MIDI
cables, and simply _play_ the song in one sequencer while _recording_
it in real time on the other sequencer. Even if you have the two
computers handy, this can be a time-consuming procedure. And most
people don't have multiple computers just sitting around waiting to
be used for such sequencer-to-sequencer transfers!
Now, however, with the arrival of MIDI Files, transferring songs
between many sequencers is much simpler. You simply _save_ the song
to disk _as a MIDI File_ in one sequencer, and _load_ the song in
MIDI File format into the other sequencer!
"MIDI Files" is the official name for the sequencer file standard, which
was first developed by Dave Oppenheim of Opcode Systems on the Macintosh,
and has now been approved by the MIDI Manufacturers' Assocation (MMA),
the organization that maintains the MIDI Spec. Most sequencer developers
have added (or are in the process of adding) MIDI File support for their
programs, either through capabilities built into the program or through
separate conversion utilities. Hybrid Arts has done both: the MidiTrack
ST Series programs (SmpteTrack, SyncTrack, and EditTrack) have MIDI File
conversion built-in; there is also a free separate conversion program
called MidiMover, for users of the other Hybrid Arts programs that use
.SNG files, such as EZ-Track Plus, EZ-Score Plus, and Ludwig.
An important point needs to be made here: MIDI Files are intended as a
sequencer _interchange_ format only. That is, they are specifically
designed for the purpose of moving information from one sequencer to
another. Thus they deal only with the most common type of information
that is likely to be used by most sequencers, such as MIDI data, tempos,
etc. They do not deal with types of information which tend to be specific
to the design of a particular sequencer, such as the way tracks are
numbered, mute settings, loops, synchronization type, etc.
It is not intended that MIDI Files be used as the _native_ method of
storage in a particular program, except perhaps some programs whose main
function is to create data for use by other programs rather than for later
use by that same program. (In fact, many sequencers use the terms Import
and Export to refer to saving and loading MIDI Files. Hybrid Arts simply
calls it Saving and Loading MIDI Files, as opposed to Song Files, since
Hybrid's sequencers use the term Import for another meaning -- Importing
a single Track from another Song File.)
MIDI File Formats
-----------------
MIDI Files come in three possible formats: format 0, 1, or 2.
Format 0 is one single track representing the whole song. This is the
most common-denominator form of interchange. It is analogous to
interconnecting two computers by MIDI cables and playing the whole
song from one sequencer into the other and saving it as one track.
Assuming the receiving sequencer has unmix-by-channel capabilities,
that track can, of course, be later split into multiple tracks.
Format 1 is multiple tracks intended to play at the same time. This
format most closely matches linear (not pattern-oriented) multi-track
sequencers. In the interconnected-computers analogy, this is like
playing each track soloed in the sending sequencer and recording it
as a separate track in the receiving sequencer.
Format 2 is single-track patterns intended to play one after the other.
This format is intended for pattern-oriented sequencers.
Almost all programs that support MIDI Files support at least format 0.
Many multi-track sequencers (even some pattern-oriented sequencers
that have multiple tracks in each pattern) also support format 1.
Few if any sequencers to date support format 2.
MidiMover supports both format 0 and format 1.
What Is Included in a MIDI File?
--------------------------------
A format 0 file contains all the information in one track. A format 1
file contains all tempo/meter information (plus SMPTE start time, if
applicable) in the first track, and all MIDI information in one or
more tracks that follow.
At the beginning of a MIDI File is a number called _division_ which
indicates how many _ticks per quarter note_ are used when representing
the time at which each MIDI event is sent. Hybrid Arts sequencers use
96 ticks per quarter note, and MidiMover writes MIDI Files with that
division value. As long as you send MIDI Files between sequencers that
have the same division value (in this case, between sequencers using 96
ticks per quarter note), you will not lose any resolution in the transfer.
If you send a MIDI File between sequencers that have different division
values, then only the resolution of the lower-resolution sequencer will
be maintained.
For example, if you send data from a 24-tick sequencer into MidiTrack
ST, you can only end up with events at ticks such as .00, .04, .08, etc.
If you send data from MidiTrack ST _into_ a 24-tick sequencer, you will
effectively be _quantizing_ the whole track slightly, as the events will
be placed on ticks which correspond to .00, .04, .08, etc. (If the
divisions of the two sequencers are not divisible by each other, such
as going between a 96-tick and a 120-tick sequencer, some additional
one-tick errors may occur in a back-and-forth conversion. This will
not be cumulative, however, if you write and read the MIDI File several
times.)
In the first (tempo/meter) track of a format 1 MIDI File (or in the only
track of a format 0 file), MidiMover can write and read the following
types of information:
- Song Name
- Tempo Changes
- Meter Changes (and Metronome Tick "time signature" _denominator_)
- SMPTE Start Time
A format 0 MIDI File will also contain MIDI Events in its only track.
In any additional (MIDI) tracks of a format 1 MIDI File, MidiMover will
write and read:
- Track Name
- MIDI Events
Note that in a format 0 file the name of the single track is not saved,
and in a format 1 file the name of a tempo and/or meter track can not
be saved.
MidiMover will deal with differences in song/track name length and in
tempo values as well as possible. If a sequencer sends a song name
longer than 32 characters, only the first 32 characters will be kept.
Similarly, only the first 16 characters of a track name can be used.
The closest possible tempo value will be used when reading tempo values
from a MIDI File.
Saving MIDI Files
-----------------
You must first decide whether you want to write a format 0 or format 1
file. Use format 1 if you are sending the MIDI File to a multi-track
sequencer and want to keep each track separate _and you know the program
that will read the MIDI File can handle format 1_. Use format 0 if you
are sending the MIDI File to a program that cannot handle format 1, or
if you only have one MIDI track to send anyway. (A few multi-track
sequencers can only handle format 0.)
Make sure you have no Chains ("c" to right of track number) active. If
"loop" symbols appear on any track, indicating it is under Chain control,
you will not be able to save a MIDI File. You should Flatten (Edit menu)
any Chains into linear tracks and mute the Chains (the tracks they control
will be muted automatically).
MidiMover only saves _unmuted_ (turned ON, arrow pointing up) tracks in a
MIDI File. NO MUTED TRACKS ARE SAVED. A format 0 file is saved if there
is only one unmuted track. A format 1 file is saved if there are multiple
unmuted tracks. (Muted tracks are indicated by arrows pointing down;
unmuted tracks by arrows pointing up. Left-click on an up-arrow to mute;
right-click on a down-arrow to unmute.)
If You Want To Save A Format 0 MIDI File:
- Select Mix Tracks from the Edit menu
- Use the Left button to select all the MIDI tracks you want to save
in the MIDI File
- Use the Right button to save the mix of all those tracks to an
empty track
- Turn OFF (mute) all the tracks you Mixed
- Turn ON (unmute) the new track which is a Mix of the other tracks
- Turn ON (unmute) the tempo and meter track, if any
If You Want To Save A Format 1 MIDI File:
- Turn ON (unmute) all the MIDI tracks (2 or more) you want to save
- Turn ON (unmute) the tempo and meter track, if any
To Save A MIDI File:
- Select Save SNG/MID File from the File menu _with the right button_
(or press Clr/Home and then press Alternate S)
- A file selector will appear, showing only files with the extension
.MID (most programs use the .MID extension for MIDI Files)
- Type in a name for the file you want to save. This file name can
be up to 8 characters; the .MID extension will be automatically
added to the file name. DON'T TYPE ANYTHING AS AN EXTENSION (3
CHARACTERS AFTER THE PERIOD) UNLESS YOU FULLY UNDERSTAND HOW TO
USE THE ITEM SELECTOR BOX.
- Make sure to pick a file name that isn't used yet, unless you want
to replace (without backup) an existing file. MidiMover will not
automatically back up a .MID file when you try to save to a file
that already exists; the file will be replaced without any warning
message.
- When you're ready to save, click OK or press Return
- A message will appear, indicating whether a format 0 or format 1
file is being written
- The message will stay on the screen until the file has been saved
(this may take a minute or more for very large files -- it's not
just saving, it's doing a lot of conversion calculations)
The MIDI tracks are saved in the order they appear on the screen. All
tracks are saved with the Track MIDI Channel and Track Offset (Track
Delay) incorporated into the track, as if a Mix had been done of the
track to itself. If you have a track with events on different channels
and you want to preserve those different channels on different events,
make sure you don't have a Track MIDI Channel set for that track before
you save it to a MIDI File; otherwise all events on the track will be
on the Track MIDI Channel after it's been saved.
If you get a Memory Limit Exceeded warning, it means there wasn't enough
memory to convert one or more tracks. The MIDI File will be saved, but
some track(s) may not contain all the intended data. It is suggested
you Delete the File you just saved. Less memory will be needed to save
a format 1 file than a format 0 file (because it only needs to convert
one track at a time rather than the whole song at once).
Loading MIDI Files
------------------
You don't need to know whether a file is format 0 or format 1 in order
to load it. In fact, you don't need to know what computer the file was
sent from (if you got the file by modem) to load it. MidiMover will
automatically skip computer-specific headers (see Transferring Between
Different Computers below) and will automatically expand a MIDI file into:
- one tempo track, if there are any tempo changes in the song
- one meter track, if there are any meter changes in the song
- one or more MIDI tracks, in the order they were saved in the MIDI File
To Load A MIDI File:
- Select Load SNG/MID File from the File menu _with the right button_
(or press Clr/Home and then press Alternate L)
- A dialog box will appear, warning you that when you load in a MIDI
File, you will be erasing the song now in memory; click OK to continue
- A file selector will appear, showing only files with the extension
.MID (most programs use the .MID extension for MIDI Files)
- Click on the name of the MIDI File you wish to load, then click OK
- A message will appear, indicating whether a format 0 or format 1
file is being read
- The message will stay on the screen until the file has been loaded
(this may take a minute or more for very large files)
All tracks not converted will be empty. All Track MIDI Channels and
Track Offsets (Track Delays) will be reset to their default values
(blank and +0 respectively). The Song Name and the Track Names of
_MIDI_ (not Tempo or Meter) tracks will be filled in, if possible.
If the MIDI file had a time signature, it will be used; otherwise
the song will be in Beats Mode. All other settings will be obtained
from your AUTOLOAD.SNG (if you are using one - the program effectively
does a New Song operation just before reading the MIDI File) or will
be set to factory default values (if you aren't using an AUTOLOAD.SNG).
Notes:
If you plan to save the .SNG file for use with EZ-Track Plus, Delete the
tempo ("t" next to track number) and meter ("m") track, if any (click to
left of track number to move the Track Pointer, then select Delete from
the Track menu).
If you get a blank tempo displayed, point at the "=" sign and click with
the RIGHT button.
If you get a Memory Limit Exceeded warning, it means there wasn't enough
memory to convert one or more tracks. The program needs to load each
track from the MIDI File into memory as it's converting it. Less memory
will be needed to load a format 1 file than a format 0 file of the same
size (because it only needs to convert one track at a time rather than
the whole song at once).
If you try to load a file which is not a valid MIDI File, or is damaged,
you way get a warning which says "Not a MIDI File." (Be aware that some
older versions of a few Macintosh programs wrote MIDI Files that don't
conform to the current 1.0 spec.) You will also get a warning if you:
- try to load a format 2 file
- try to load a format 1 file with more than 58 tracks
(60 tracks minus a possible tempo track and a possible meter track)
- try to load a time-based file (such as a cue list) rather than a
tempo-based song
Transferring Between Different Computers
----------------------------------------
If you are transferring between different programs on the Atari ST, you
can simply take the disk containing the MIDI File written by one program,
and load the MIDI File from the same disk into the other program. (You can also
also transfer by modem, of course, just as you would any other ST file.)
If you are transferring between an IBM/clone and the Atari ST, you _may_ be
able to transfer by disk, if you have a 3.5" drive on the IBM (or a 5.25"
drive on the ST), and you _format the disk on the IBM_ (or using a special
formatting program on the ST; most ST formatting routines, including the
one built into the Desktop and the ones built into Hybrid Arts programs,
will not format disks that an IBM/clone computer can read directly).
In most cases, however, the easiest way to transfer MIDI Files between
different computers is by modem (if the two computers are next to each
other, and you know how to use a null-modem cable to interconnect them,
you can transfer that way as well). If the other computer is _anything
but a Macintosh_, the process is very simple; just transfer the MIDI
File as you would any other data file, naming the file with a .MID
extension at the other end.
Files on most personal computers used for MIDI are stored in the same
manner: a file simply contains the data it contains, and has a name!
But on the Macintosh, files are stored in a more complex manner. Each
file, in addition to having a name, has a _type_, an _owner_, and a
_resource fork_, in addition to the data, which it stores in a part
of the file called the _data fork_.
When Macintosh modem programs send files, they have an option called
MacBinary. This puts a 128-byte header on the file that is _not_ part
of the MIDI File data. Most programs on computers other than the
Macintosh will not recognize a MIDI File sent in MacBinary.
If you are sending a MIDI File from a Macintosh to the ST, and will be
converting the file using MidiMover, you have nothing to worry about,
however! MidiMover automatically detects and skip this 128-byte header
on MacBinary-sent files, and finds and converts the MIDI File data with
no problem! (In fact, MidiMover could be used to convert MIDI Files in
MacBinary form to MIDI Files in ST-compatible form for use with other
programs which can't handle MacBinary files directly!)
Going the other way is a bit trickier. MIDI Files created on the ST
can be sent to the Mac by modem, but they will generally be interpreted
as being "Text" type files, and unreadable by any Macintosh MIDI program!
So, once the file is on the Macintosh, you have to change the file type
to "Midi" (note that the "M" must be upper case but the "idi" must be
lower case). You can use a program such as ResEdit to do this (after
selecting the file, use Get Info from the File menu to change the file
type to "Midi", then save the file).
Uses for MidiMover
------------------
There are several things you can do with MidiMover. One is to convert
Song Files to/from MIDI Files if you're using EZ-Track Plus (which
doesn't have the conversion built in).
You can also Auto-Score files which originate on other sequencers in
EZ-Score Plus, by saving the files as MIDI Files in the other sequencer,
using MidiMover to convert the MIDI File to Hybrid .SNG format, and then
Auto-Scoring the .SNG file in EZ-Score Plus. Format 1 is suggested for
this application, to make it easier to put different parts on different
staves/voices.
Sequences created in (by?) Ludwig can, after being converted from .SNG
to .MID files in MidiMover, be used in any MIDI-File-capable sequencer
on any computer.
You can take files which originate with other programs that aren't
sequencers but which generate some sort of MIDI data (like Ludwig does)
and save them as MIDI Files, and use them with any Hybrid Arts program
(sequencer or scoring program) that can handle .SNG files.
And you can even use MidiMover to convert between format 0 and format 1
files, or from MacBinary to ST-format files, if another MIDI program
you use can't handle the type of MIDI file you're trying to load! Just
load the MIDI File and save it back out, using the instructions above.
Using MidiMover:
----------------
We've already explained how to load and save MIDI Files with MidiMover.
But there are several other functions of the program you need to use to
do successful conversions, which are familiar to users of Hybrid Arts
sequencers (including EZ-Track Plus) but are listed below for MidiMover
users who are not Hybrid sequencer users. EZ-Track Plus users may wish
to skim this section, however, since there are a few differences in the
the way MidiMover handles some things from how EZ-Track Plus does...
Saving/Loading SNG Files:
To save or load a Hybrid Arts format _Song_ File, select Save SNG/MID
File or Load SNG/MID File from the File menu _with the Left button_
(or press Alternate S or Alternate L without pressing Clr/Home first).
Unmixing by Channel:
When you Load a format 0 MIDI File, everything is on one track; however, you
may want to separate out the MIDI data by channel. Using the Unmix Track
function (Edit menu), you can copy just the MIDI events on certain channels
from one track to another. As long as you save the result (Right button) to
a different track than the original track (Left button), the original track
will remain untouched. In the dialog box, click on the channel(s) you want
to copy (click on Non-Channel Events if you want to copy System Exclusive).
If you want to split one track into several, with a single channel on each,
use Unmix Track a separate time for each channel, saving each result to a
different track.
Playback Features:
Simple playback capabilities are included in MidiMover for your convenience,
perhaps in deciding which tracks to include in a MIDI File, or for quickly
evaluating MIDI Files you Load in. There are 4 transport control buttons
near the bottom right of the screen; left-to-right they are: Stop, Play,
Pause, and Rew/FF. Above those is the Counter. To Play from the beginning,
click the Play button. To Stop and shut all notes off, click Stop; to Pause
letting notes sustain, click Pause. In either case, you can click Pause
again (while it's highlighted) to continue playing from the Counter value.
You can move quickly through Counter values by clicking (Left-click for
rewind, Right-click for fast forward) on the Rew/FF button. To turn the
metronome on or off, click on the speaker icon.
Below the Track Percentage column (which is really a Multi-Function Column)
there is a small box; click there to toggle this column between Percentage
and Track Offset (Track Delay). When in Track Offset mode, you can move
tracks forward or backwards in time by clicking on the digits. EZ-Track
Plus users: this is the same feature you have in Options menu as Track
Delays, except here (as now in EditTrack and all other MidiTrack ST Series
sequencers) it is adjustable as the song plays!
Track Channels:
The channel indicators for each track appear under the letters "fe" of
the word "Safety" in the menu. If the indicator is blank, it means the
channel of each event will be as recorded in the track. If a TV GUIDE
style indicator is showing, it reflects an override channel which affects
all events (except System Exclusive) in the track. When a track is saved
in a MIDI File, the override channel is made permanent for each event in
the track; the same is also true when you Mix several tracks into one.
Click with the Left button to decrement the channel; Right to increment.
About the Time Signature and Tempo Settings:
The MidiTrack ST Series sequencers support more time signatures and finer
tempos than EZ-Track Plus. EZ-Track Plus will not reject a file if the time
signature is out of its range (such as 33/16), but will, of course, assume
a different time signature than MidiMover might save in the file in such a
circumstance. Similarly, EZ-Track Plus will use the closest tempo value it
can if the tempo MidiMover displays is not available in EZ-Track Plus.
Naming Tracks/Song (this is DIFFERENT than in EZ-Track Plus):
Click simultaneously with _both_ mouse buttons on the track name or song
name to change it (a dialog box will appear; use the Esc key to clear out
the old name; click OK or hit Return when done). The track names appear
under the word File in the menu. The song name appears in the box at the
upper right of the screen, above the Version Number.
Other Features:
New Song clears all the tracks and resets all parameters to factory values
(unless you are using an AUTOLOAD.SNG, in which case it will reload it).
Entering Menu (Safety menu), when checked, requires that you _click_ in
the menu bar to cause a menu to drop down. Back Up Files (Safety menu),
when checked, backs up _.SNG_ files automatically (as .SBK files); .MID
files are _not_ backed up if you try to save a file when one already exists
by that name. If you turn off Back Up Files, trying to save a .SNG file
when one already exists by that name will bring up a dialog box.
Note:
All tracks are unprotected when a .SNG file is loaded into MidiMover,
and MIDI Clock Output is disabled, even if those settings were enabled
in the .SNG file.
HybriSwitch Capabilities:
-------------------------
MidiMover is HybriSwitch-able, and requires a minimum of 234K to load.
The more memory you allocate, the larger the files you'll be able to
convert. Remember, you'll need more memory to convert a format 0 file
than a format 1 file of the same size. MidiMover supports data sharing
with Ludwig (Ludwig can send tracks to MidiMover directly) and EZ-Score
Plus (EZ-Score Plus can Auto-Score directly from the song in MidiMover's
memory) in the same manner as MidiTrack ST can; see the HybriSwitch
"Appendix H" manual for details.