____
___________________\ |____ _____________________________________________
_\__ ________ | | /___\ ____ ___\___/ ___/____ / /
| | | | |_ / _| | | \ / | |____ | / | | |
|: | | |: | |: \ |: | |: | | |: |: / |: /____|: |___\
/___|___|___/_______/___| |____ |___|___|___/___/_______\_______/___|gwEm
========================|___\ltk/___|========================================
maxYMiser Live v1.24
(c) Gareth Morris 2008
User Manual
maxYMiser works on any Atari 16/32 platform or competent emulation
STe, Mega STe, TT or Falcon required for STe DMA sound features
Monochrome screens NOT supported
________________________________________________________________________________
(0) Contents
============
0.......Contents
1.......E-Mail
2.......Credits
3.......Licence
4.......Introduction
4.1 520, 1mb, and 2mb versions
5.......Basic Principals
5.1 Patterns and songs
5.2 Sequences and instruments
5.3 Ways to make sound
5.4 The 'N' key
5.5 Operation without screen
6.......Tracker Display
6.1 Note
6.2 Instrument
6.3 Volume
6.4 Effects 1 & 2
6.5 Sample number
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 and sample editor extension
9.......Tracker Effects
10......MIDI Controllers
10.1 Tracker controllers
10.2 Instrument controllers
11......Jam Mode
11.1 Looping pattern
12......MIDI / Sync24 Output
13......MMC
14......Replaying maxYMiser Music
14.1 Technical
14.2 Tips for low CPU consumption
15......Finally
________________________________________________________________________________
(1) E-Mail
==========
For all information, help, or questions:
[email protected]
To register your interest in maxYMiser please joint the mailing list, details
at:
http://www.preromanbritain.com/maxymiser
________________________________________________________________________________
(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 who all made maxYMiser
what it is today, so thanks again this crew.
Extra mention this time to Ultra/Cream for the loan of his Roland TR606 drum
machine.
________________________________________________________________________________
(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. I think its a small price for quality free software.
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.5, which is
easy to learn and has an advanced sound system.
Recently Dma-Sc and 505 have produced a newbie guide, and some free instruments,
to stay up to date with cool developments like this, visit the maxYMiser webpage
often :)
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. If you need some guidance about what effects use how much CPU, look in
Section 10.2
(4.1) 520, 1mb, and 2mb versions
--------------------------------
There are three versions of maxYMiser included:
For machines with only half a megabyte of RAM - 520ST, 520STF, 520STFM, 520STe
etc use MYM_520.PRG. A few features had to be removed for this version. These
features are the STSurvior intro screen, all features relating to digi and
sample playback, STe microwire and ICE pack/depack. The powerful maxYMiser YM
engine is still intact.
For machines with more memory - MYM_1MB.PRG is guaranteed to work correctly on
machines with 1mb of RAM. MYM_2MB.PRB might also work in most cases, but no
promises. In the version for 1mb machines, sample memory has been limited to 8kb
per sample, in the 2mb version you get the full 32kb.
The rest of the manual related to the 2mb version, so please be aware of these
differences if using a different version.
________________________________________________________________________________
(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. Some preset patterns exist for ease of use, eg
'empty pattern' and 'note off'.
(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.
On STe machines and higher we have even a fifth possibility to make sound - a
simple DMA sound chip. maxYMiser offers quite optimised mixing and resampling
routines and a simple interface to allow this DMA chip to be used together with
our old friend the YM for hybrid composing.
(5.4) The 'N' key
-----------------
In many of the editors and screens pressing 'N', 'shift+N' or 'control+N' will
select the next unused pattern or sequence. Remembering this will save you time
and effort - thanks 505 ;)
(5.5) Operation without screen
------------------------------
maxYMiser includes some file auto-loading functions to allow the use of the
program without needing a big and heavy screen - for example as a part of a live
performance, or when using maxYMiser as a MIDI sound module.
To do this, you might setup a floppy disk as follows:
A:\AUTO - here put your maxYMiser program file
A:\ - here include your default voice sets and configurations:
\MYM.CNF - first the usual maxYMiser configuration file is loaded
\DEFAULT.SND - a default SNDH file is attempted next, if not...
\DEFAULT.MYS - then tries to load a default song...
\DEFAULT.MYV - and voice set
\DEFAULT.MYI - if this also fails, tries to load a default instrument
otherwise, no default files are loaded
So by including maxYMiser in an auto folder, and a default file in the root
directory is possible to boot from a floppy and have some pre-made voices or a
tune loaded automatically when you power on the machine.
________________________________________________________________________________
(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 with a new pattern number or
preset.
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 YM tracker data there are seven pieces of info.
Lets illustrate them below:
| | | | . | . |
| Note-Octave | Instrument | Volume | FX 1 : Type . Value | FX 2: Type . Value |
| | | | . | . |
The same patterns are also used for the STe DMA track. Here the meaning of the
data is a bit different:
| . . | . . |
| Note-Octave 1 . Sample 1 . Volume 1 | Note-Octave 2 . Sample 2 . Volume 2 |
| . . | . . |
There are no effects (except volume) on the STe DMA track - but you do get two
independent channels for sample playback!
(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.
The octave reached by press 'F9' maps each key to middle C on a different
instrument, useful for entering rhythms.
(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.
(6.5) Sample number
-------------------
On the STe DMA track we have sample number instead of instrument number. The
tracker plays back samples loaded into the digidrum banks, and the sample number
here corresponds to the digidrum sample number. Samples are played back with
middle C corresponding to 8287Hz.
________________________________________________________________________________
(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. For an in-depth tutorial of the maxYMiser instrument editor by
Dma-Sc check the maxYMiser website.
(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 for
digidrums or STe DMA. 8 samples are allowed, each of which can be applied to
many YM instruments, or played back through the DMA sound chip. Select the
sample number you want to load into and then choose the 'Lod' button. Select an
8bit signed headerless sample (eg RAW PCM type formats). If loading is
successful the sample length will be displayed. When playing back as a digidrum
each sample is automatically converted for 4bit YM sample resolution using a
highly accurate lookup table. Each digidrum can be up to 32kb in length.
If you want to load a new sample simply pick the 'Lod' button.
To save your sample, along with any editing use 'Sav'.
Finally, to clear an unused sample simply pick the 'Clr' button.
Its also possible to change the length of your sample by clicking on the 'Len'
field.
________________________________________________________________________________
(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, some YM2149 and DMA low level details, and
information about maxYMiser's MIDI implementation. 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. Preset
patterns can be accessed as follows:
Empty pattern : Backspace
Note off pattern : Caps Lock
Looping pattern : Spacebar
For more details of the Looping pattern see the Jam mode description, in normal
playback, looping patterns are simply skipped over.
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.
Beside the 'TC' setting you have the possibility to toggle between using the
Atari internal system clock, 'MIDI' clock input including Song Position Pointer,
and 'SY24' Sync24 input using a special joystick port interface (see the
maxYMiser webpage for details of how to make that. Sync24 input works better
with faster Ataris. In MIDI and Sync24 modes the song speed may not be adjusted.
The box below the interrupt setting gives the current playback mode, which makes
it easier to use the 'jam' features included for realtime resequencing of your
music. For more about jam mode, please read that section. Clicking on this box
allows toggling between normal playback and jam mode, as well and song and
pattern play. Using this box to change the playback mode does not interrupt the
playback of your music. You can use F10 / Shift+F10 to toggle this setting also.
'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 - useful for realtime
editing!
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.
A bright block indicates when a timer is used.
The status of the STe DMA sound chip functions can be set. Either all STe DMA
features can be deactivated, enabled on standard resampling mode for 1 or 2
channels, or enabled for a single STe native frequency channel only. Single
channel STe DMA modes boost the volume of the DMA sounds, and the native STe
frequency mode has no CPU overhead for resampling.
The DMA volume control allows the user to set the minimum volume level the STe
channel will respond to. If you choose to allow less volume levels the memory is
saved in STe native mode. On the single channel DMA mode then both CPU and RAM
are saved by setting this control to zero.
'Speaker' enables and disables TT/Falcon030 internal speaker (assuming you
didn't rip it out already ;) )
'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.
'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. Better use a
different system for more accurate CPU usage monitoring, for example SNDH_CPU.
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. Next to this field you can select what sound is put out over the
external output. You can choose either YM or STe DMA sounds to be transmitted.
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.
'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.
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, and the 2 STe DMA channels can be assigned to a specific MIDI
channel ($0-$F corresponding to channels 1-16), each with a different instrument
or sample number. This instrument can also be changed with a 'MIDI patch change'
separate of this sub-menu. If YM and DMA tracks are set to the same MIDI channel
then MIDI note input on this channel will be multi-plexed in a semi-intelligent
way to give polyphonic abilities :)
There are also two special MIDI instrument numbers. When '--' is shown this
track is totally disabled. The 'DD' instrument allows support of MIDI drum kits
to play maxYMiser sounds. The 'DD' is a tribute to the Yamaha DD series of
electronic drum sets - yo! In this mode each key plays middle C on a different
sound. You can enable this mode for the editor by pressing 'F9'.
You can enable maxYMiser's ability to respond to MIDI controllers here too by
toggling the 'cntrllers' setting.
(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. Preset pattern are subsituted where applicable.
You can also get some statistics about the last used sequence and pattern, which
indicates how much memory is used for storing these things. Press 'update' to
update this display.
(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.
'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.
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. Clicking on the 'all'
text toggles all of the column masks on and off.
(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 and sample editor extension
-------------------------------------------
The first half of 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.
The second half of the menu expands the abilities of the little digidrum panel
into a minimalist sample editor.
You can amplify or attenuate you sample in units of 1.5db.
There are fine tuning functions which allow you to pitch up or down your sample
in units of an octave, a semi tone, and 1/8 of a semi tone fine tuning. Tuning
down an octave includes interpolation for improved quality.
The YMise function is not to be found on any other sample editor. Converts the
sample to sound like a YM digidrum - even on the STe DMA channel. This is for
true digidrum freakz.
Incase you loaded by mistake a sample in a really old fashioned unsigned format,
have no stress and click the 'Sign/Unsign' button :)
The sample start point can be manually trimmed with the 'Start' field. This
allows for really old skool style sample editing found on classic samplers like
Akai S950. To set this point really finely you could playback your sample at a
very low pitch.
Hint: you can also load microsoft .WAV files saved in PCM 8bit format into
maxYMiser without too much effort. Firstly use 'sign/unsign' and then trim the
first 44 bytes from the start of the sample.
________________________________________________________________________________
(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 Uwire + value (this sets the LMC1992 sound adjustment circuit on STe and TT)
(only operates when DMA sound is activated)
U00->0C set the bass boost/cut - U06 is the default (not on F030)
U10->1C set the treble boost/cut - U16 is the default (not on F030)
U80->A0 set the master volume level (emulated on F030)
UC0->D0->E0 set the panning position (emulated on F030)
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) MIDI Controllers
=====================
For maxYMiser to respond to MIDI controllers, they first need to be enabled in
the 'config' menu. MIDI controllers supported by maxYMiser are split in to
three types - Tracker controllers and Instrument controllers. Instrument
controllers are sensitive to MIDI channel, and operate only on the instrument
editor of a specific sound. Tracker controllers operate globally on maxYMiser
itself, or a YM/DMA channel, they respond on all MIDI channels.
(10.1) Tracker controllers
--------------------------
16,17,18,19,20 channel mutes
21 song speed
22 song position
23 jam mode
24 pattern/song play
25 pattern position
26 instrument select (disabled)
27 mouse pointer type
28 global noise transpose
29,30,31 YM channel noise transpose
32 global transpose
33,34,35,36,37 track transpose
38 global volume
39,40,41,42,43 track volume
44,45,46,47 next patterns (Jam mode)
(final controls set the LMC1992 sound adjustment circuit on STe and TT)
(only operates when DMA sound is activated)
48 Uwire volume (emulated on F030)
49 Uwire pan (emulated on F030)
50 Uwire bass (not on F030)
51 Uwire treble (not on F030)
(10.2) Instrument controllers
-----------------------------
60 volume sequence
61 arpeggio sequence
62 vibrato sequence
63 mixer sequence
64 noise sequence
65 fixed freq sequence
66 timer sequence
109 instrument volume
110 sequence speed
111 digi sample
112 digi rate
113 buzzer waveform
114 start sync
115 coarse tune
116 fine tune
________________________________________________________________________________
(11) Jam Mode
=============
maxYMiser also includes some features to allow rearrangement and sequencing for
your songs in real-time. You can use these for live performance, and also to try
out sequencing ideas before permanently tracking them.
To enable jam mode press 'F10' or click in the right place in the 'Normal' menu.
Press 'shift+F10' to disable the mode.
Once jam mode is activated song and pattern play modes function slightly
differently.
When jam mode is activated during song playback the key combinations:
Control + cursor left / Control + cursor right
can be used to navigate the song. Normally changes to the current song position
using this combination occur immediately, but in jam mode the new position
selected will be jumped to after the current pattern finishes. This allows for
smooth rerrangement of your music. For safety reasons pattern selection is
disabled when in jam song mode.
When jam mode is activated in pattern playback the key combinations:
Shift + cursor left / Shift + cursor right
can be used to select the next pattern that will be played in the current track.
Again, the new patterns selected are jumped to after the current pattern is
finished. This allows the user a finer level of control for reworking their
music. The patterns selectors above each column can be used as normal, including
selection of preset patterns which is especially useful in jam mode.
There are also some jamming aids which are activated constantly, irrespective of
the status of jam mode.
The mute mode functions differently from other trackers. Now the track mutes
just disable the sequencing for that track. Notes can still be played via the
keyboard or over MIDI, allowing you to try out new solos, or to perform them for
real in a live situation.
Using the keyboard shortcuts allows the composer to select between record on/off
and pattern/song play during playback, without retriggering the playback. This
means that you can switch between all these modes smoothly with no interruption
in audio:
Key Playback stopped Playback running
-----------------------------------------------------------
Return Start song play Switch to song mode
#~ Start pattern play Switch to pattern mode
Right shift Start pattern record Toggle record on/off
(11.1) Looping pattern
----------------------
In the song editor the spacebar can be used to add longer automatic loops to
your track. When jam mode is inactive, a song step containing a looping pattern
is jumped over.
In jam mode however when the song reaches a looping pattern playback continues
immediately after the previous looping pattern. If there is no previous looping
pattern, than playback resumes from the beginning of the song.
Combining these new looping patterns with the jam mode behaviour described so
far gives live rearrangement facilities similar to the famous Alesis MMT8
hardware sequencer.
________________________________________________________________________________
(12) MIDI / Sync24 Output
=========================
maxYMiser constantly outputs MIDI clock pulses, and Sync24 clock pulses during
playback. In order to use the Sync24 clock output its necessary to build a
special interface, details of which are available on the the maxYMiser webpage.
Due to the limitations of the Atari (in other words - fixed system clock of
200Hz) and certain Sync24 enabled equipment with slow CPUs (for example TB-303
and TR-606), there is a maximum tempo of just below 250bpm which can be
reliably transmitted. Above this speed, Sync24 equipment will start to drift out
of sync. However, if the song speed drops below this rate Sync24 will try to
'catch-up'.
MIDI and Sync24 output also works with MIDI or Sync24 input.
________________________________________________________________________________
(13) MMC
========
Mega-type STs have a detachable keyboard. So that maxYMiser can be used without
this keyboard I decided to support MMC messages for start and stop. These can be
transmitted over MIDI by several external control surfaces.
________________________________________________________________________________
(14) 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.
(14.1) Technical
----------------
Here are details for the header offsets of the maxYMiser replayer, run each
routine in supervisor mode:
MUSIC +$0 = branch here for music initialise routine
MUSIC +$4 = branch here for music de-initialise routine
MUSIC +$8 = branch here for music interrupt routine
MUSIC +$C (binary replayer) = read here for 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, data and instruction caches are not
separated, so there are no strange effects with using these self-modifying code
routines.
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.
(14.2) Tips for low CPU consumption
-----------------------------------
As a composer for music on any platform you have to be aware of using CPU. On PC
and Mac, for example, any VST or other synth/effect you use takes some CPU time,
so you can't run too many of them. The same with Atari ST chip music, any
special effects you use will use some CPU, and with an old skool 8MHz machine
you can easily use it all up ;) If you're working with a coder on a demo
production, they're sure to want some spare CPU time for running their effects.
Depending on the coder, you might not be allowed to use too much CPU for your
music. Even if you chip just for fun, you can still easily use your machine up
with too much of certain effect types.
As a guide, here is a list of different effect types, and some guidance about
CPU usage.
* YM DigiDrums. These are easily the most CPU eating effect. Best is not to
use them at all. To minimise the impact, use on one channel at once only,
and with the lowest possible sample rate for ok quality - maybe 6kHz.
* SID. Software generated SID waveforms use less CPU than YM DigiDrums, but
they can still eat CPU. Triple classic SID tunes from the SID Sound
Designer days were notorious for eating much CPU. With the advanced SID
effects maxYMiser offers, a composer can easily use more. To minimise CPU
usage its recommended to use as few SID voices at once as possible. Use
the minimum number of steps in your SID waveform as you can for your YM
sound effect. Avoid using SID for high frequency notes.
* STe DMA channels. maxYMiser uses quite optimised routines for resampled
STe DMA channels. Even so each DMA channel can use around 10% CPU,
roughly the same as a SID voice. Try working with a single DMA channel,
with STe native sample rates only or no DMA ;) Lower frequencies do use
less CPU and STe DMA uses no timers.
* SyncBuzzer. In general the same applies for syncbuzzer as SID, but with
some differences. SyncBuzzer does eat as much CPU as SID, in fact it uses
about half the amount of CPU. Also its only possible to use the buzzer on
one voice at once, so you have the enforced limitation of the hardware to
help too.
* Native STe DMA. The STe native frequency mode uses no CPU for resampling
on STe, Mega STe and TT, and just a little overhead to parse the tracker
data. The volume control is achieved by preshifting, and uses no extra
CPU in this mode. Native STe rates on Falcon work for compatibility only
and use the same CPU as a resampled DMA channel.
* Noise, square, buzzer. Normal 'native' YM effects not using timer or other
special tricks use the least CPU possible. Roughly around 5%. Start sync
is not a CPU heavy effect, and nor is detuning.
For the case of an ST demo, a nice compromise would be one channel with timer
effects allowed, limiting yourself to maximum of 4 steps in you SID waveform.
The two remaining YM channels could be used for buzzer and drums and classic
squarewave effects.
For an STe, where heavy blitter use might mean that no timer or interrupts can
be used, then 3 channels of plain YM with a single STe DMA channel could also be
a good tradeoff between CPU and interesting sound effects.
________________________________________________________________________________
(15) Finally
============
Have fun and stay Atari ;) Gareth Morris/gwEm
Oct 2008