                     ____
  ___________________\   |____   _____________________________________________
 _\__    ________    |   |   /___\   ____     ___\___/    ___/____   /       /
 |   |   |   |       |_  /  _|   |   |   \   /   |   |____   |   /   |   |   |
 |:  |   |   |:  |   |:  \   |:  |   |:  |   |   |:  |:  /   |: /____|:  |___\
 /___|___|___/_______/___|   |____   |___|___|___/___/_______\_______/___|gwEm
 ========================|___\ltk/___|========================================

                                maxYMiser v1.00
                             (c) Gareth Morris 2005


                                  User Manual

   maxYMiser requires an Atari (Mega)ST(e), Falcon or TT with 1Mb+ of ST-RAM.
              I also recommend competent emulations such as STEem.
   Monochrome screens NOT supported, however TT-RAM will be used if present.
________________________________________________________________________________

(0) Contents
============
0.......Contents
1.......E-Mail
2.......Credits
3.......Licence
4.......Introduction
5.......Basic Principals
5.1         Patterns and songs
5.2         Sequences and instruments
5.3         Ways to make sound
5.4         The 'N' key
6.......Tracker Display
6.1         Note
6.2         Instrument
6.3         Volume
6.4         Effects 1 & 2
7.......Instrument Editor
7.1         Instrument Selector
7.2         Instrument Parameters
7.3         Sequence Editor
7.4         DigiDrums
8.......Sub-Menus
8.1         Escape
8.2         About
8.3         Help
8.4         Normal
8.5         Configuration
8.6         Zap/Pack
8.7         Transpose
8.8         Advanced edit
8.9         Play song
8.10        Play pattern
8.11        Stop
8.12        Record song
8.13        Record pattern
8.14        Disk operations
8.15        Sequence editor extension
9.......Tracker Effects
10......Replaying maxYMiser music
10.1        Technical
11......Finally
________________________________________________________________________________

(1) E-Mail
==========
For all information, help, or questions:

gwem@preromanbritain.com
________________________________________________________________________________

(2) Credits
===========
Code, design and manual.......................................Gareth Morris:gwEm
Design........................................Mathieu Stempell:Dma-Sc/Sector One
Graphics.............................................Sebastien Larnac:STSurvivor

Falcon DSP clock detection.......................Denis Huget:ST Ghost/Sector One
ICE pack algorithm.....ripped by Phil Graham:Grazey/PHF, original by Axe/Delight
ASCII logo...........................................Stefan Benz:Lotekstyle/tSCc

Its true that most of the grind work on maxYMiser was done by me (Gareth Morris)
but  we  should  not forget the work of these other guys, especially Dma-Sc, who
all  made  maxYMiser what it is today, so thanks again this crew. Special greets
also  to  EarX/Lineout  (moral support plus CT60 and TT testing), Pink/RG (stuck
key bizness) and Evil/DHS (various bits of helpful advice).
________________________________________________________________________________

(3) Licence
===========
I'm  bored  of  releasing freeware software that gets a huge number of downloads
but  receives  little  or  no  feedback,  except  from people who I usually know
personally. So:

maxYMiser  is FREE, but if you make music or sounds with this software which are
released  either  in  any  kind  of commercial or non-commercial way, you should
mention  somehow that you used maxYMiser in its production. In case you wonder -
this is serious.

maxYMiser  maybe  distributed freely, but only with this text document and other
associated files. None of the files may be modified in any way.

maxYMiser  comes  with  no  warranty  of  any  kind: It may very well trash your
machine/files/music etc etc
________________________________________________________________________________

(4) Introduction
================
The Atari ST has many good music editors for the built-in YM2149 sound chip. The
problem  is  though  that,  in  someway,  every  one of them sucks. When I first
discussed  the  project  with Dma-Sc, he said I should make 'the music editor of
our dreams'. Later I decided to change this goal and just tried to make the best
sound  chip editor on any platform. With such high aims this was a long project,
however  I am happy with the end result - even if in many ways I regret starting
it.

You'll  notice  the interface and keyboard layout borrows (steals ;) ) much from
the PC sample tracker 'FastTracker 2'.... of course, because this is my absolute
favourite  tracker.  I  made changes to the things I disliked about this editor,
and  also  made  changes to make the interface fit to YM2149 sound chip editing.
The  many  fans  of  FastTracker 2 should have no problems to adapt to maxYMiser
though I think.

maxYMiser  is  not a program for a beginner - it needs a decent knowledge of the
YM2149  sound  chip.  You can read the YM2149 datasheet to give yourself a crash
course,  or  use  a different editor. I heartily recommend MusicMon2.1, which is
easy to learn and has an advanced sound system.

maxYMiser  has  no  guards  over  CPU  utilisation, with certain combinations of
effect you can easily use more than 100% CPU, which has easy to imagine results.
The  composer  has no restriction over combinations of effect types and channels
and  there  are  also  no lame 'are you sure about this' type screens - so watch
out.
________________________________________________________________________________

(5) Basic Principals
====================
Here  I  discuss  some of the basic ideas, terms and concepts used in maxYMiser.
Some  basic  tracker  knowledge  could help here - I suggest newbies consult the
famous 'Trackers Handbook'.

(5.1) Patterns and songs
------------------------
On  first  appearances  maxYMiser  looks  like  it  takes  the  song and pattern
structure  from FastTracker 2 or ProTracker. This was my intention, but actually
its  not  the  case.  In FastTracker, 2 dimensional patterns are linked together
into  a  one dimensional song list. In maxYMiser songs are 2 dimensional and the
patterns  are  1  dimensional.  This makes for a saving in file size, and offers
some ease of use to the composer.

(5.2) Sequences and instruments
-------------------------------
When  I  was  designing  maxYMiser  I  wanted  to  give the composer the maximum
possibilities  of  the  YM sound chip. This meant a low-level instrument editor,
and  so  I  devised sequences. A sequence is a list of binary words that you can
use  to  vary  some  parameter  of the sound over time. To give, for instance, a
classic  arpeggiated  chord, or a wobbly vibrato effect. A sequence is also used
to  produce  a  volume  envelope, or to define a SID waveform. For more details,
read the instrument editor part of this manual.

(5.3) Ways to make sound
------------------------
I  already  suggested  to  read the YM2149 data sheet, so please do. Anyhow, the
YM2149  can  produce sounds formed from combining square wave, buzzer and noise.
On  Atari  ST  we  have  a  fourth  possibility  -  the MFP or timer. Timers can
interrupt  the  CPU  at regular intervals for manipulating the YM into producing
various  effects.  This distributed version of maxYMiser has 3 specific types of
timer effects. Each channel uses its own separate timer, if its enabled that is.
The effects include:

    * 'DigiDrums'  which  play  a 4bit sample, typically a drum sound or special
        effect
    * 'SID'  produces a software generated waveform. In the past this has always
        been  a  fixed  waveform  (usually  square),  maxYMiser  allows  you the
        possibility  to  program  this  yourself,  eg  for  sine  or fake-buzzer
        waveforms.
    * 'SyncBuzzer'  retriggers  the buzzer waveform at audio frequency intervals
        to  create  synchronisation  effects  in  the  same  way  as  the 'sync'
        function works on an analogue synthesiser.

(5.4) The 'N' key
-----------------
In  many  of the editors and screens pressing 'N' or 'control+N' will select the
next  unused pattern or sequence. Remembering this will save you time and effort
- thanks 505 ;)
________________________________________________________________________________

(6) Tracker Display
===================
As  you  can see the tracker display consists of three large vertical columns of
codes.  Each  vertical  column  corresponds  to  one  of  the three YM2149 sound
channels.

The  number at the top of each channel shows the current pattern being displayed
there.  Pressing 'Play Pattern' plays the current patterns without reloading the
current  patterns  from  the  song list. This allows you to demo combinations of
patterns  without  changes  to  the  song.  These  patterns  can be changed with
keyboard shortcuts, or by modifying these fields.

Like  many  trackers the patterns are 64 steps long, which nicely corresponds to
4  musical  bars, with each step equal to one 1/16th note. Pattern break tracker
commands allow you to shorten this length.

For  each  step  in  each column of tracker data there are seven pieces of data.
Lets illustrate them below:

|             |            |        |             .       |            .       |
| Note-Octave | Instrument | Volume | FX 1 : Type . Value | FX 2: Type . Value |
|             |            |        |             .       |            .       |

(6.1) Note
----------
This  column  holds  the note data for that step. If this is blank the currently
playing  note  is unaffected. CapsLock can be used to enter a universal note off
here.  Notes  can  be entered either in real or step time, and using an external
MIDI keyboard, or the Atari keyboard (here we show mapping on a UK system):

(Upper octave)
 2 3   5 6 7   9 0   =      =>     C# D#    F# G# A#    C# D#    F#
Q W E R T Y U I O P [ ]     =>    C  D  E  F  G  A  B  C  D  E  F  G

(Lower octave)
   S D   G H J   L :        =>        C# D#    F# G# A#    C# D#
  Z X C V B N M , . /       =>       C  D  E  F  G  A  B  C  D  E

Octaves  can  be changed with the function keys. maxYMiser supports all notes in
the YM frequency range, even if the very high notes are not useful musically.

(6.2) Instrument
----------------
If  an  instrument  number  is present here then the sound is triggered from the
start  so, to avoid retriggering, simply omit this column. The instrument number
to  be  entered  in  this  column  can  be selected with the numeric keypad, the
instrument editor, or via a 'MIDI patch change'.

(6.3) Volume
------------
The volume number in this column is an attenuation level. A dash means no change
to  the  current  attenuation  level.  A $0 gives the loudest volume, and $F the
quietest. Usually a dash is entered in this column, but you can change this with
the 'vol' field in the 'normal' menu.

(6.4) Effects 1 & 2
-------------------
Effects  type  is  an  alphanumeric  value, in other words 0-9 and A-Z. The full
details  of  these  effects  are  provided  later  on  in  this  manual, and are
summarised in the online help system.

The  effects  value which corresponds to this type is shown by the adjoining two
nibbles,  which  form  a  hexadecimal value in the range $00-$FF. The meaning of
this value depends on the effects type.

The  single  effect  columns  previously  available on existing YM trackers were
thought  not  to  be  sufficient for the complex compositions with adjustment in
instrument  parameters  that  maxYMiser  was  designed for. Therefore two effect
columns are provided, which offer exactly the same features.
________________________________________________________________________________

(7) Instrument Editor
=====================
The  right  half  of  the screen allows selection and editing of the instruments
used in your composition. Almost every instrument parameter can be adjusted with
tracker commands.

(7.1) Instrument Selector
-------------------------
maxYMiser  has  four banks of eight instruments, giving 32 instruments in total.
Instrument banks maybe selected with the buttons to the top right of the screen,
or with keyboard shortcuts on the numeric keypad.

Within  each bank you can select instruments with a left mouse click. Highlights
appear over the instrument name and the instrument number. These can be selected
independently for copy and remapping operations. Right clicking on an instrument
name allows editing.

(7.2) Instrument Parameters
---------------------------
From the top down:

The   'de-tune  matrix'  allows  you  to  enable  different  instrument  effects
(portamento,  vibrato  etc)  on  different parts of your sound (the square wave,
buzzer  or  timer  generated  effect). Fixing the frequency of the sound using a
fixed  frequency  sequence  (fix  freq)  disallows  all other effects except for
vibrato,  it  is  also  no  longer  possible to play notes with this part of the
sound.  Selecting  'fixed  frequency'  and 'fixed de-tune' bypasses the need for
specifying  fixed  frequencies  with  a  sequence,  instead  the fine and coarse
instrument  parameters  allow  you  to  fix the frequency, this allows the fixed
frequency to be adjust via tracker commands if required. The transpose effect is
controlled  by the transpose tracker command. As you can recognise, the 'de-tune
matrix'  gives  many  possibilities  for de-tuning sounds, for ravey stabs, fake
resonant effects etc.

Below  the  matrix  you  can  select  sequences  to  change the sound over time.
Sequences can be shared between sounds.

'Vol'  sequence  changes  the note volume over time $F=maximum level $0=minimum.
Volume sequences do not affect digi and buzzer sounds for technical reasons.

'Arp'  sequence  allows complex arpeggios to be performed. The sequence provides
the  number of semi-tones the note is to be adjusted by over time. The number is
interpreted  as  signed 2's compliment, so $FFFF is a -1 semitone adjustment for
example.

'Vib',  or vibrato, works similarly to the arpeggio except the adjustment is not
tuned  by  semitones,  rather  YM  frequency  register  value.  This allows fine
adjustments - however they are not in tune over a wide frequency range.

'Mix'  allows  for  changing the state of the YM mixer over time. The details of
the  YM  mixer  appear in the online help. The first nibble enables and disables
the  noise  generator,  the  second  nibble enables and disables the square wave
generator.  The  third nibble enables the buzzer. The final nibble allows you to
select which timer-based effect (for example SID or digidrums) will be used.

'Noi',  short  for  noise,  allows  you  to adjust the frequency of the YM noise
generator  over  time. As the YM sound chip just has one noise generator, higher
number YM channels have the priority over setting this frequency. Adjust between
$00 to $1F.

'Fix',  for  fixed  frequency,  is  a rarely used but powerful sequence. You can
specify  actual YM frequency register values changing over time. The online help
provides  all  the  formulae you need to calculate these values. If a particular
frequency  step  is  set to $FFFF then fixed frequency is ignored and the normal
note is played - useful for combining instruments.

'Tim'  provides never before seen possibilities in a YM tracker, and is arguably
the most powerful feature of maxYMiser. In short it allows you fine control over
many  of  the  timer  effects.  In the case of SID, this sequence configures the
software  waveform  that  is generated by the SID timer interrupt. For example a
sequence  $F,$0  gives  a  square  wave.  $F,$F,$F,$0  gives  a  pulse waveform.
$F,$A,$5,$0  a  rough  saw  waveform  and  so on (sine wave is also possible for
example). Up to 16 steps maybe used in a SID waveform, and fewer steps mean less
CPU  utilisation.  In  the  case  of  syncbuzzer each step in the 'Tim' sequence
represents  a buzzer waveform, allowing you to form complex alternating waveform
syncbuzzer  effects. Up to 8 steps maybe used in a syncbuzzer effect, and number
of steps does not effect CPU utilisation.

Below the sequence selection fields are instrument parameters that do not change
over time:

'Seq  Speed'  allows  the user to set the speed with which all the sequences are
processed. A higher number means slower sequence effects.

'Buzz Wave' sets the buzzer waveform associated with this sound. The online help
section  has  a list of the different possibilities. As with the noise generator
YM2149  just  has one buzzer to share with all voices. Higher number YM channels
take priority over the buzzer effect.

'Start  Syn'  allows effects only previously possible with the MusicMon2 editor.
Other  YM editors passed this little gem by, but here again it appears. Enabling
this field forces the instrument to synchronise all its tuned components (square
wave,  buzzer  and timer) when the note is triggered, for repeatable phasing. It
is  not  possible  to  guarantee  synchronisation of the YM2149 square wave with
precision  of greater than 180degrees - this leads to 2 possible phasing effects
in this case.

'Fix  Det'.  If  fixed  de-tune  is enabled by the de-tune matrix then these two
fields  affect  the  sound.  The  coarse  de-tune  allows  de-tuning in semitone
intervals. The fine de-tune allows de-tuning in YM frequency register intervals.

'Digi  Sample'  allows  you  to pick a digidrum sample from the 8 that maxYMiser
supports. For more information see the DigiDrum section. A value of zero in this
field means no digidrum sample is selected.

'Rate'  allows  you  to  set  the  replay  frequency of the digi sample. You are
altering  timer  register values, however these are also converted to Hz to make
things  easier.  So called 'tempered' digi sounds are not easily possible (so it
is  not  convenient  to  play  tuned  notes  with them). However this is not the
purpose  of  digidrums  (a  hint  there  in  the  name ;) ) - and in the case of
percussive  samples I believe that fine control over replay frequency is better.
maxYMiser gives you the finest control possible with the hardware.

'Instrument  volume'  specifies  the  amount  of  attenuation  applied  to  this
instrument.  This  means a value of zero gives the loudest sound, and a value of
$F, the smallest. Make sure you have a defined volume sequence or a buzzer based
sound.... otherwise you hear nothing ;)

(7.3) Sequence Editor
---------------------
This  word  editor allows you to define the sequences used by the instruments. I
believe usage of this editor to be self-explaining, however:

'Cpy' copies the current sequence to the 'Dest' sequence.

'Clr' clears the current sequence.

'Length' holds the length of the current sequence, and 'Repeat' holds its repeat
point (if appropriate).

(7.4) DigiDrums
---------------
This  small  menu allows you to load new digi samples into your music. 8 samples
are  allowed,  each  of  which  can be applied to many instruments. Select which
sample you want to load and then choose the 'Load' button. Select an 8bit signed
headerless sample (eg RAW PCM type formats). If loading is successful the sample
length  will  be  displayed and it is automatically converted for 4bit YM sample
resolution using a highly accurate lookup table. Each digidrum can be up to 16Kb
in length.

If you want to clear an unused sample simply pick the 'Clear' button.
________________________________________________________________________________

(8) Sub-Menus
=============
Here I describe the individual functions of each program sub-menu:

(8.1) Escape
------------
You  reach  this  menu  by  clicking  on  the  top left corner of the screen, or
pressing  the  escape  key.  'Quit'  exits  the program back to the GEM desktop.
'Background'  partially restores your Atari to enable it to run desk accessories
(eg  calculators, sound setup accessories etc) or, in a multi-tasking OS such as
Mint, other programs. Select 'Foreground' to return to maxYMiser.

(8.2) About
-----------
Displays  the  main  program credits. Right clicking on the 'Title' and 'Artist'
fields allows the composer to edit the data for these SNDH format tags.

(8.3) Help
----------
This help section provides the user with a quick reference to all tracker effect
commands,  keyboard  shortcuts  and  some YM2149 low level details. Clicking the
buttons  on the left selects which help you want to view. Then click on the help
pane, and use the mouse to navigate through each screen.

(8.4) Normal
------------
The  mini-tracker  display to the top right is the song editor. Here you can set
how  your  patterns  will be sequenced to form a finished song. This mini-editor
supports many cut and paste features of the main editor, so experiment.

The  arrows allow you to move up and down the song editor - right clicking moves
to the song start and end.

'Len' holds the length of the song, and 'Rep' the repeat point for the song.

'Speed' holds the song speed in number of replay routine calls per 1/16th note.

'BPM'  cannot be edited and is a rough calculation based on the replay speed and
interrupt frequency.

'TC' allows you to set the frequency that the maxYMiser replay routine is called
by.  This  frequency  is synthesised from the 200Hz system tick. In this way you
can select tempos with fine resolution.

'MIDI'  disables  the maxYMiser replay routine from the system clock. Instead it
is  called  by  incoming  MIDI clock signals. In this mode song speed may not be
adjusted.

'Xpand'  and  'Shrnk'  allows  to double and half speed the current pattern. Any
part  of  the pattern 'cut off' by the expand operation is stored in the pattern
edit buffer.

'Time' is self explaining ;)

'Zync' shows the current demo zynchronisation code for easy editing.

'Vol' holds the current note volume put in to the editor.

'Add' holds the number of 1/16 steps skipped each time you enter a new note.

Left  clicking  on the 'Chan' buttons mutes and unmutes that YM channel. A right
click solos and unsolos that channel.

(8.5) Configuration
-------------------
Here you select different options for the appearance and operation of maxYMiser.

'Scroll' activates and deactivates pattern scrolling.

The controls just below 'scroll' allow you to setup different colour schemes for
the editor.

'Mouse' selects between 8 classic mouse pointer shapes ;)

The 'Timers' check boxes activate and deactivate MFP timer based effects on each
YM channel. This can also be changed dynamically whilst the song is playing with
tracker  commands. This allows easy swapping of timer utilisation between the YM
chip  music and any other demo effect you might be running. The timer activation
and deactivation is system friendly and fully restores the original settings.

'Show  CPU'  enables  display  of the amount of CPU used by the maxYMiser replay
routine. Interpret this with caution and knowledge! Timer effects will slow down
the CPU at all times, not just when the replay routine is active.

'VB  Freq' - you can set this to high or low screen refresh setting on ST(e) and
Falcon  platforms.  This  may  improve  your  display  quality  and  is  totally
independent of the sound replay frequency.

On  Falcon  030,  maxYMiser  supports external DSP clocks, and extra outputs. If
your  sound system is not locked when maxYMiser is run, then external DSP clocks
will be detected. You can see the frequency of this clock here. If you have dual
DSP  clocks  (represented by an asterisk) then you can toggle which one is used.
If  you  have  an  external  DSP  clock  then an external output, such a SP-DIF,
Analog-8  etc  is automatically enabled. 44.1kHz is by default chosen if this is
available.

'Speaker'  enables  and  disables  TT/Falcon030  internal  speaker (assuming you
didn't rip it out already ;) )

'Save  CNF' writes a file 'MYM.CNF' to the maxYMiser directory. This stores your
configuration settings and will be reloaded each time maxYMiser is run.

The  'Year'  field  allows  you to enter the year of composition for your music.
This information is used in work saved as an SNDH file.

If 'Re-load' is enabled then your configuration will be reloaded after loading a
SNDH  or song file. In this way settings stored in these files can be ignored if
you wish.

The  MIDI  settings on the screen allow access to maxYMiser's MIDI functions. YM
tracks 1,2 and 3 can be assigned to a specific MIDI channel ($0-$F corresponding
to channels 1-16), each with a different instrument. This instrument can also be
changed with a 'MIDI patch change' separate of this sub-menu.

(8.6) Zap/Pack
--------------
The 'devastate' options allow you to trash your song, instruments, or both ;)

The  'squish'  options  give  you  some  memory management functions. Duplicated
patterns  and  sequences are removed and the remainder are stored in a way so as
to reduce file size.

(8.7) Transpose
---------------
Here  you  get  an  enhanced  version of FastTracker2's menu. In addition to the
usual  32  transposition  possibilities  you  can  perform  16  different volume
adjustments with this menu.

(8.8) Advanced edit
-------------------
This menu gives powerful editing possibilities.

'Copy'  copies  an  instrument  between  positions in the instrument editor. The
small  'instrument  number'  highlight specifies the destination, and the larger
'instrument name' highlight gives the source.

'Track',  'Pattern',  'Song' and 'Block' allows you to re-map instruments within
your song.

You can select 'Overwrite', 'Overlay' and 'Underlay' paste modes.

The  seven  button  toggle  below the paste mode selection allow masking of each
column of tracker data for the cut and paste operations.

(8.9) Play song
---------------
Selecting  with  the  left  mouse  button  plays  the song from the start of the
current  pattern  onwards. A right click plays the song all the way through from
the top.

(8.10) Play pattern
-------------------
Left  clicking  plays the current pattern from the start without re-initialising
them  from  the  song list. This allows you to try out patterns together without
changing  the  song.  Right  clicking  has  the same effect, but starts from the
current cursor position.

(8.11) Stop
-----------
Stops play and record modes.

(8.12) Record song
------------------
Only  left  click  has  an  effect.  Operates the same as play song, but enables
record mode.

(8.13) Record pattern
---------------------
Only  left  click  has an effect. Operates the same as play pattern, but enables
record mode.

(8.14) Disk operations
----------------------
maxYMiser  gives  you an array of loading and saving possibilities. You can work
with  files  in  the  popular  Atari ST music format 'SNDH' (of course only SNDH
files  created  with maxYMiser can be loaded into the editor). You can also save
and  load  voice  sets  and song data separately for use with maxYMiser's binary
replay  routine.  In  addition you can save your favourite instruments and trade
with your friends ;)

The  software  saves  and  loads  files packed with the famous ICE algorithm. To
enable  saving with this packer, select the check box. The next file to be saved
will  then  be  ice  packed  for  a significant file size reduction, however the
packing operation can take some time, especially on a standard ST... Therefore I
recommend  ICE packing only for distributing your finished music. All fully SNDH
standard compliant players support playback of ICE packed files.

Another  option  for  distributing  your finished music is the 'time' check box.
Normally saved files loop continuously at the repeat point. However, by checking
this  box  the  next  saved  SNDH  file  will have its track duration set by the
current  track  timer.  Just play your track to its end point, and press stop to
set  the  timer  appropriately.  Now  in  supporting players your music will end
correctly.

The  bottom  field on this panel gives the result of the last disk operation, so
it is also displayed after loading digi samples.

(8.15) Sequence editor extension
--------------------------------
This  menu  allows fast generation of sequence data. Sweeps and oscillations can
be  easily  programmed  here.  'Minimum',  'Maximum' and 'Oscillations' are self
explaining. You can 'Gen'erate a new sequence or 'Mod'ify an existing one.

The  'Morph'  button  generates  sequences  that  fit in between the current and
destination  sequences.  For  this  to work these sequences should have the same
length.  Combining  this feature with tracker commands allows versatile morphing
of sounds, eg SID-morph.
________________________________________________________________________________

(9) Tracker Effects
===================
I did not follow the scheme of any previous tracker for this, rather my own idea
of what's logical. You can look these up with the on-line help system.

0
1   set portamento enable flag mask
2   set arpeggio enable flag mask
3   set vibrato enable flag mask
4   set transpose enable flag mask
5   set fixed frequency enable flag mask
6   set fixed de-tune enable flag mask
7
8
9
A   Arpeggio sequence + number
B   pattern Break
C   start synChronisation + value (on/off)
D   Detune coarse + value
E   dEtune fine + value
F   Fixed frequency sequence + number
G   diGi sample + number
H
I   tImer sequence + number
J
K
L   voLume sequence + number
M   Mixer sequence + number
N   Noise sequence + number
O   nOise transpose + amount
P   Portamento + rate
Q   seQuence speed + value
R   digi Rate + value
S   song Speed + value
T   Transpose + number of semitones
U
V   Vibrato sequence + number
W   buzzer Waveform value
X   eXtra 2/3  step  arpeggio  (High and low nibbles give the number of semitone
        variations - eg X47 gives major arpeggiated chord. If the second step is
        set  to  $F  then  a  2  step arpeggio is produced eg XFC gives a 2 step
        octave arpeggio)
Y   dYnamic timer allocation mask eg 7=all timers, 2=timer B only etc
Z   set demo Zynchronisation code
________________________________________________________________________________

(10) Replaying maxYMiser music
==============================
Files saved in the SNDH format can be played with any SNDH replayer. There are a
number  of these for a variety of platforms. SNDH is a standard format for Atari
ST  chip  music,  rather like the famous SID format on C64. For more information
visit http://sndplayer.atari.org/

Apart  from  the  SNDH  format  maxYMiser  voice  and song files can be combined
together  in various ways and replayed in your productions by using the supplied
binary  replayer.  For guidance on how do this please look at the example source
code, which is for a multi sub-tune SNDH file. This example covers most possible
replay  situations,  and  even novice level assembly programmers will be able to
make use of maxYMiser music.

(10.1) Technical
----------------
Here  are  details  for  the  header offsets of the maxYMiser replayer, run each
routine in supervisor mode:

MUSIC +$0                    = music initialise routine
MUSIC +$4                    = music de-initialise routine
MUSIC +$8                    = music interrupt routine
MUSIC +$C  (binary replayer) = demo zynchronisation byte
      +$B8 (unmodified SNDH)
      +$?? (modified SNDH - byte is present directly after HDNS tag)

The  replay  routine  stored  within  the  SNDH  file, and the one in the binary
replayer   are  virtually  identical.  There  is  little  advantage  either  way
performance  wise. The replay routine is fully PC relative, and performs partial
relocation on part of its code in the initialisation routine.

You will probably notice that replaying maxYMiser music outside of the editor is
a  little  faster  than inside it, this is due to the RLE algorithm used to pack
the pattern data.

The replay routine automatically detects processors without cache, and then uses
self-modifying  code  routines for performance. This includes MegaSTe - although
this  system has second level cache, through extensive testing I have noticed no
strange  effect  with  using  these self-modifying code routines... except for a
decent performance increase.

The  routine is generic, customised space-saving versions of the binary replayer
can  be  made  available  depending  on  your specific application. Email me for
details.
________________________________________________________________________________

(11) Finally
============
Have fun and stay Atari ;)                                    Gareth Morris/gwEm
                                                                        Mar 2005
