home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
converters
/
trackconv_2
/
!TrackConv
/
!Help
< prev
next >
Wrap
Text File
|
1997-02-08
|
28KB
|
699 lines
!Help file for !TrackConv by Chris Davis.
=========================================
Last updated 8th Feb 1997.
The !TrackConv directory should contain the following.
!Boot - Boot file.
!Help - This file.
!Notice - Legal notice.
!Run - Run file.
!RunImage - Main program.
!Sprites - Standard res. application sprites.
!Sprites22 - High res. application sprites.
!Sprites23 - High res. mono application sprites.
Formats - List of formats known by !TrackConv.
History - History of TrackConv
PackIt - Directory containing PackIt utils.
: Compress - Program to compress coconizer packets.
Decompress - Program to decompress coconizer packets.
PackIt - PackIt module (must be loaded for the above).
Code - ARM Code routines used by the main application
Templates - Templates file
Messages - Directory containing messages files.
(Options) - This file contains the saved options so they are the same
when TrackConv is next loaded. It is not neccesary for this
file to be included as TrackConv will create a new one if it
is not found.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TrackConv
---------
The purpose of TrackConv is to convert Tracker style music files to another
similar format. e.g. Amiga Sountracker to Archimedes Tracker, Archimedes
Coconizer to Amiga Soundtracker. It will also let you load and save samples
into or from the file in memory and it will let you save patterns, as well
as giving general information on the file.
Method
------
TrackConv works by loading the original file into memory and at the same
time converting it to TrackConv's own format. When the file needs to be
saved it is converted from this format to the required format. This means
that individual routines needed to convert from one specific file format to
another are not needed. Two seperate routines, a load and save, are used for
each file format so once a routine has been created it can be used in
conjuction with all the other routines immediately. The disadvantage of this
is that TrackConv's own format has to support everything all the other files
support so that an accurate conversion can always take place.
The many different Tracker style file formats all use volumes and samples.
In some cases the volume values used are in linear format (0-64) and in
other cases they are logarithmic format (0-255). A perfect conversion
between these formats cannot be done (you don't get the original values if
you do a linear to logarithmic conversion, then a logarithmic to linear
conversion) so TrackConv keeps the original values in memory and sets a flag
to denote their format. It then only converts them, if it needs to, when
saving a file, still keeping the original values so that if the original and
desiginated files use the same format an accurate conversion is done.
The same thing happens for samples. Samples are either Linear Signed,
Logarithmic or sometimes Linear Unsigned. TrackConv keeps the orignal
samples denoting their format and then converts them when it needs to.
However, the original samples are not kept because of the amount of memory
needed for a buffer.
Formats
-------
Amiga SoundTracker:
==================
This is probably the most common file format found on Acorn machines,
although the facilty to save to this format is not found on very many
Archimedes programs. This reason for this is the vast amount of Amiga tunes
written that get moved to the Archimedes in comparison to the few tunes that
get actually get written on the Archimedes using Archimedes programs.
Although this file format only allows for 16 commands it has a very good
command set.
There are many variations of the Sound Tracker format. The following are
supported by TrackConv:
Sound Tracker 15 inst.
Sound Tracker 31 inst.
ProTracker 31 inst.
(The following are all 31 inst.)
Fairlight Startrekker (4 & 8 channel)
Fast Tracker (6 & 8 channel)
Take Tracker (16 & 32 channel)
Archimedes Tracker:
==================
This was one of the first Archimedes tracker file formats. It contains more
information about the music than Amiga STracker and for that reason are
slightly larger. However, it has a limiting command set. This is also a very
common file format.
Archimedes Coconizer:
====================
Coconizer is a freeware application for the Archimedes. It is very similar
to Tracker but slightly more restrictive.
Coconizer 'song' files do not contain samples. The samples are stored in
directories accessable to the main application. Also coconizer tunes are
often in compressed 'packets'.
Coconizer 'Trackfiles' are very similar to the song files, expcept that they
contain samples.
There is also a tool that will allow you to create stand alone self playing
relocatable modules from coconizer files. TrackConv will also load these.
Teque Music:
===========
Teque music are Amiga STracker files set-typed &CC5.
Digital Symphony:
================
Digital Symphony is a fairly recent application for the Archimedes and it's
files are very sophiscated. It has the widest command set of all the
supported formats and is designed to offer the wider command set of Amiga
files on the Archimedes.
Digital Symphony files can be (and usually are) compressed. TrackConv will
load these compressed files, although it is a lot slower than Digital
Symphony itself at deompressing them. TrackConv will also allow you to save
compressed Digital Symphony files too. However, I do not recommend you use
TrackConv for compressing them as it is very, very slow (can be up to 5-10
minutes!!). If you do compress them using TrackConv the end result should be
as good as (or even better) as what Digital Symphony would produce.
TrackConv will also support the new version (V1) Symphony files. However,
most of these use the 'Sigma Delta' compression method and TrackConv does
not support this and therefore cannot load these files.
Musix:
=====
Musix is a PD program which will enable you to write 4 track tunes.
TrackConv will attempt to load and save these but I cannot be sure that they
will convert properly.
Octalyser:
=========
Octalyser is (I think) a program on the Amiga which will allow you to create
music containing up to 8 channels.
OctaMED:
=======
OctaMED is a program on the Amiga which will allow you to create music with
up to 8 channels and will also support MIDI. TrackConv cannot support the
MIDI aspects of the file but will convert the rest properly.
Scream Tracker 2:
================
Scream Tracker is a four track file format on the PC, similar to Sound
Tracker. It creates files with the extension '.STM'.
Scream Tracker 3:
================
This is a much more advanced version of Scream Tracker, supporting upto 32
channels. It creates files with the extension '.S3M'.
Scream Tracker 2 & 3 have a volume for each event, as well as a command. As
this cannot be fully supported by other formats, TrackConv will convert the
command if there is one, otherwise it will put in a volume command.
Also, S3M files support 7 octaves. TrackConv only supports 3 so, if you have
the 'resampling' option selected, it will under or over sample the samples
which are played out of range, so that the tune will play (almost) correctly.
However, oversampling means that a sample is copied so that it is 8 times
longer. This means that some tunes will take up a lot of memory.
Arc ProTracker:
==============
Arc ProTracker is a PD application for the Archimedes which nearly has the
full command set of Sound/Pro Tracker on the Amiga. It's files are very
similar to Tracker but have subtle differences that cause some applications
to crash.
PC 669:
======
PC 669 is an 8 track format for the PC. It has a volume for each event and
so TrackConv will always add in volume commands if there is no other effect.
669 also has a default tempo (speed?) for each pattern and, at the moment,
this is ignored by TrackConv.
Zool tunes:
==========
These are tunes found in the game 'Zool'. These must be loaded via the
GuessType option.
Currently TrackConv assumes the ProTracker command set except it
subtracts 1 off all speed values. As the default speed is 6 it also sets the
speed to 5 near the beginning of the song (at the first empty command). This
sounds wierd but it works the best! However, this is not right all the time
and some tracks may sound too fast or too slow. It may be more sensible to
insert a tempo command near the beggining of the track and keep the speed
values the same ... but this is not really fair to users of programs like
Tracker or Coconizer which don't have a tempo command.
Desktop Tracker:
===============
TrackConv will not currently load Desktop Tracker files properly...but it
comes close(ish). It will load the samples correctly but mucks up the
patterns a little (it ignores the commands and sometimes gets the notes
wrong).
Multi Tracker:
=============
Multi Tracker is a format on the PC which has the full Pro Tracker command
set. It will support up to 32 channels.
Maestro:
=======
TrackConv will do it's best to import Maestro files. I have tested it on
quite a few Maestro files and it converted them okay.
When importing a Maestro file, TrackConv will work out how many channels are
needed (1-8) and set the speed/tempo of the tune according to the original
tempo of the tune.
It will also work out what samples are needed. As most Tracker formats only
have 3 octaves, 2 samples will usually be needed for each different
instrument used in the original file. TrackConv will work out which of these
2 are needed (octaves 1-3 and/or octaves 4-7), and set the sample names
accordingly. You will have provide your own samples and load them in
seperatly.
The options are as follows:
Easy to edit - If you turn this off TrackConv will use pattern delay
commands to ensure there are no blank lines. (Not
currently supported fully)
Complex commands - This is to let TrackConv know if your music editor
supports the tempo command and the pattern delay command.
If not turn it off!
No. of channels - Auto will get TrackConv to only use as many channels as
needed. If you don't like this you can set your own value
(useful for adding in percussion, etc.)
Speed - Auto will get TrackConv to set the speed of the tune
according to the original file. If you set your own the
default tempo will be used and a speed command inserted
with the set value. (this will be halved or quartered if
very short notes are played.)
Volumes - This tells TrackConv to insert volume commands according
to the volume of each channel.
One voice - This will tell TrackConv to assume that all the channels
use the same instrument, instead of refering to the
instruments used in the original file.
PPP Track:
=========
This is TrackConv's own file format. It has no real advantages over other
formats, except that there will be no data loss when using it. (i.e. it
contains all the information TrackConv knows about the file at the time of
saving).
TrackConv will also allow you to save compressed PPP Tracks too, which can
be very slow (5-10 mins!), although loading them is quicker. The results are
not as good as those achieved by Digital Symphony but it can sometimes be
better than ArcFS.
Using !TrackConv
----------------
Loading and saving tunes:
========================
To load a file simply drag it on to the TrackConv icon on the icon bar. If
the tune is in a recoginzed format, can be loaded and there is enough
application memory reserved for TrackConv it will be loaded. If not all of
this is true, either nothing will happen or an error will be generated.
Please note that the file must be set-typed correctly and that although it
may be recognized it may not be loadable with this version of TrackConv. You
can also use the GuessType feature to work out what format the music is in
without set-typing it.
To save a file go to the 'Save' option on the icon bar menu and go through
the various submenus. Then enter your file name and drag the icon to a
directory viewer.
The save option will not be selectable if there is no music in memory.
Loading and saving samples:
==========================
Loading samples can be done by one of three ways. Firstly, you can drag the
sample to the icon bar icon. TrackConv will try to guess where the sample
belongs by using looking for a two digit number at the end of the file name
or by using the sample name itself. The second way is to drag a directory of
samples on to the icon. The application will load any samples it thinks
should be loaded using the same method above. The third way is to drag
samples directly onto the sample display window. TrackConv will replace the
currently displayed sample with the one you have loaded, regardless of the
filename.
You may also create or delete samples using the menu options on the sample
window. Using the 'Add' option will add samples after all the current ones
and 'Insert' will insert samples before the currently displayed sample.
To save a sample or samples go through the various submenu's off the save
option. To save a single sample use the pointers to select it's number and
then enter a file name and drag it to a directory viewer. To save all the
samples click on the left pointer until you reach 'All'. Then either enter
an eight letter filename to save the samples with their number in two digit
form at the end of the filename or enter "/////" to save the samples with
their original names.
You can also save a sample directly from the sample window, which is much
simpler really.
If you use ten letter filenames with the first method the program may crash.
Also if you put a filename before the "/////" with the second method the
program may also crash. In all cases, though, you may use a path name.
You may also save single samples using the "/////" method. This method is
useful for programs like Musix and Coconizer where the samples are stored
in directory's, not in the music files. If a sample has no name then it is
saved as 'm' plus the samples' number. This name is also put in Coconizer
files so that they will match. Any invalid charecters such as ':' or '.' are
missed out. One disadvantage of this method is that if samples have
identical names one or more of them will be over-written.
Saving patterns:
===============
This is done the same way as saving samples except you cannot use the
"/////" to keep their names as patterns don't have names.
Saving textdumps:
================
To save a textdump select the submenu off the save option and select which
areas of information you would like. You can also select what format you
would like the patterns displayed in (if you select the 'pattern' option).
When you have done this drag the text file to a directory viewer to create
the file.
Send:
====
This option allows you to send the currently to loaded file to a paticular
player module or music application. The currently available players and
applications will be show on the list.
Options:
=======
Volumes - This allows you to change the format the volumes are displayed
in:
Logarithmic - Displays volumes in logarithmic format
Linear - Displays volumes in linear format
Auto1 - Displays volumes in their current format, except
in patterns (text dumps) where they are in the
format of the selected pattern format:
STracker & Digital Symphony - Linear
Tracker - Logarithmic
Auto2 - Displays volumes in their current format
Verbose - This tells you what is happening as the computer is loading or
saving files.
Samples - This allows you to set what format the current samples in memory
are and what format to load or save raw data samples in.
Show - This lets you bring up various windows giving you information
about the current file and status of the program.
Patterns:
Make 64 - This will make sure all pattern lengths are 64
lines/rows or less.
Cut - This will search through for pattern breaks and 'cut'
the pattern so it is only as long as is needed (Not
implemented in this version).
Symphonies:
Pack - This causes the program to pack Digital Symphony files
when saving.
Patterns - This lets you choose what way the Digital Symphony
sequence is to be created. As you may know Digital
Symphony uses 1 pattern for each track, rather than
the conventional method of one pattern for all the
tracks. The 'normal' setting means that 4 new patterns
are created for each conventional pattern. 'Blanks'
will add any blanks into the sequence rather than
creating a new blank pattern. 'Min-pats' will minimise
the total number of patterns needed by adding blanks
and ensuring there are no identical patterns. The last
two are very slow.
Trackers:
Commands - This lets you filter out certain Tracker commands,
some of which are not used in Tracker but let you
produce better reproductions of the original file if
needed.
This comes into affect when loading and saving
Tracker files and also when dumping text files, but
only in loading does it have an affect on the data
stored in memory.
Commands that are allowed on the different levels:
Level 1: Level 2: Level 3:
Level 1+ Level 2+
0-Appregio 3-Tone portamento 5-Tone portamento+Vol. slide
1-Slide up 4-Vibrato 6-Vibrato+Vol. slide
2-Slide down 7-Tremelo
B-Break pattern 9-Set sample offset
E-Set stereo
G-Vol. slide up
H-Vol. slide down
J-Position jump
L-Line jump
S-Set speed
V-Set volume
Level 2 is the default setting.
Fill voices - In Sound Trackers, when you play a note with
specified voice, you can also play a note after it
in the same pattern and same track without
specifying a voice. If you try this in Tracker it
does not have the same effect. Selecting this
option fills in any blank voices where there is a
note and no voice. It sets the voice to the last
played voice. If there has been no voice
previously played on that track in that pattern
nothing is done. This only comes into effect when
saving Trackers and does not produce the same
effect that would be achieved in the original
piece of music.
STrackers:
This will bring up a window allowing you to choose what format you would
like STracker's to be saved in. The first option will get TrackConv to
automatically choose between STracker 15 inst. or ProTracker 31 inst.,
depending on the no. of instruments in the current file.
Volumes - This allows you to choose which volume converiosn algorithm is
used.
Guesstype - See the section on Guesstype below.
AutoSend - See the section on AutoSend below
PPP Tracks:
Pack - This will cause TrackConv to compress all PPP Tracks
when saving.
Resampling - This states whether or not you wish TrackConv to use resampling
to simulate much larger octaves ranges. Currently, this feature
is only implemented with S3M files.
Save - This will save the current setting of all the options so they will
be the same when you next load TrackConv.
'GuessType'
-----------
GuessType is a new feature which will guess the format of any music file,
from about 20 formats known to TrackConv, without using the Risc OS file
type. It is very reliable (in my experience). To use it drag a file into
it's window (this will have no effect on the currently loaded tune) and it
will look at the file and give it's verdict. A seperate routine for each
format will give the marks out of ten for the file 'looking okay'. Whichever
format is marked the highest is selected (each format has a radio icon). You
can then click on 'Load' to get TrackConv to load the file as that format.
If you disagree with it's verdict you can select the format youself.
HOWEVER, if you get it wrong TrackConv could hangup your computer! (so be
careful).
This feature is also used to load tunes in a format which do not have a
specific Risc OS type, such as Zool tunes (Data), and therefore cannot not
be loaded properly by TrackConv just by dragging them to TrackConv's icon.
Auto Send
---------
This is a special feature of TrackConv that will, seemingly, allow just about
any desktop music application to play any of the music formats TrackConv
supports. It works by getting TrackConv to load the file and then immediately
sending to the application of your choice. (using the scrap directory)
To use it open the Auto Send window and select the music application you want
to send the files to (you will have to have it loaded first). Then select the
file format it uses itself.
Now, if you drag any file to the Auto Send window TrackConv will convert it
and send it to the application you have selected.
The options in the bottom half of the window let you choose if you want Auto
Send to intercept the loading of a file. If you choose 'Filer double click'
Auto Send will send any files you double click on the application (assuming
they do not get loaded by another application first). TrackConv will not load
any files you double click on that are already in the format you have chosen
and assumes they will be loaded by the application.
If you choose 'Icon bar drag' Auto Send will send any files that you drag on
to TrackConv's icon bar icon.
This option is not guaranteed to work with all applications but should work
with most.
Too many tracks/channels
------------------------
If you load a file and then save it in a format which supports less tracks
than the file you loaded TrackConv will cut out the tracks which cannot be
fitted on.
If you save the file in a format which has more tracks than the file you
loaded TrackConv will add in blank tracks. An example of this is when saving
a 6 track file to Coconizer. Coconizer can support either 4 or 8 tracks so
TrackConv will save it as 8 tracks and add an extra 2 blank tracks.
Both of these features have no effect on the currently loaded data. This
means you could load an 8 track file and save it as a four track file while
still retaining the full 8 tracks in memory.
Technically, TrackConv can handle upto 255 tracks, although the largest it
will ever load is 32 tracks (unless another program supports export of PPP
tracks and it allows greater than 32 tracks).
Problem solving
---------------
Won't load:
==========
If you find you can't get a tune to load (i.e. TrackConv totally ingnores
it if you drag it onto its icon) make sure you have set-typed the file
properly (see the formats window). Some of the types I have used may seem a
little unorthodox but it is neccesary so that TrackConv can identify the
file correctly. A way around this is to use the GuessType feature which
should identify the file correctly without using the Risc OS Type.
Address exception errors:
========================
There could be a number of reasons for this. Most commonly, the file you
have tried to load has been corrupted. Also, it could have been identified
wrongly (read above).
Another cause is the 'Min-pats' bug (see below).
Known problems/bugs
-------------------
Poor Conversions:
================
Unforntunately you can very rarely get a 100% conversion from one file to
another. This is for many reasons but the most common is where the
designated file format has a poorer command set than the original file. The
commands that aren't supported in the new file format have to be missed out
and this results in very poor conversions.
For example, you are likely to get poor conversions when you convert a
Symphony file to a Coconizer file because Symphony files have many more
commands than Coconizer.
Other reasons for poor conversions are just in the way the program plays a
pattern as a whole, which is generally quite hard to fix as TrackConv would
have to be quite intelligent.
Innacurate volumes conversion:
=============================
The methods used to convert linear volumes to logarithmic volumes and vice
versa are not correct. However they are pretty close and are better than the
methods used in !Tracker which is a commercial program! The program will be
very easy to change once I know the correct methods though so if anyone
knows them please tell me.
'Min-Pats':
============
The 'Min-pats' option for symphonies has tendancy to cause the program to
crash when large numbers of patterns are involved. I have tried to fix this
but I am currently baffled by it but will fix it as soon as I figure out
what's wrong.
Compression:
===========
Any compression done by TrackConv is very slow. My routine (believe it or
not) is written in ARM code but has compression times sometimes over 5
minutes. If I can I will improve my routine in the future but at the moment
I have no idea how to make it faster.
Disc full:
=========
If you get a 'Disc Full' error whilst saving a file from TrackConv it is
likely that the samples in memory will have been corrupted. This is because
TrackConv converts each sample before saving it but if an error occurs during
saving then some samples will have been converted and not others. To fix this
I will have to change TrackConv to convert all the samples before saving,
rather than individually.
PC disks:
========
When TrackConv saves to PC disks (using RO3) the file becomes completely
garbled. I have no idea why this happens. To overcome this problem I suggest
you save the file to an Arc format disk first (e.g. RamDisc or Hard Drive)
and then copy it to the PC disk.
Lots of bugs:
============
I have fixed most of the bugs and mentioned those I haven't..... but I'm
sure there are loads I haven't found, so please tell me of any you find so I
can fix em'.
Credits
-------
Thanks to Dave Williams for all the OctaMED format details & also a lot of
nice comments about TrackConv :)
Thanks to Ingmar Weigel for sending me all the details for 8+ foreign music
formats!!
Thanks to Gareth Boden & Richard Simmons for the Coconizer TrackFile
details.
Thanks to Alex Fraser and Andrew Pepperell for sending me details of LZW
compression.
Thanks to Gareth Moore for sending me 800k's worth of music file info!!
Thanks to 'Wombat' for some helpful encryption tricks.
Hello to Ed Ross, Dave Williams, Robin Jubber, Alex Howarth and everyone on
#acorn!
Software Used
-------------
Main program (inc. source code) originally written using !Edit but now
updated using !Zap.
Program crunched using MH's Squish.
Program encoded using 'my encoder' and then compressed using squeeze.
Templates originally designed using !FormEd and then updated using !TemplEd.
Application sprites designed using !Paint.
All text files originally written using !Edit and updated using !Zap.