          EPSS - Enhanced Polyphonic Sample Synthesizer v1.0
          --------------------------------------------------

This program is Shareware which means that it is allowed to be copied
as a complete archive with its files unhanged. The program is allowed
to be tested for a trial period of one week. After that time, the program
should be registered to the address mentioned below for an amount of

             SEK 250:- ( DM 50,- / $40,- / GBP 20,- )

When registered, the user gets a personal registered copy of the program
together with some useful utilities such as an MROS(R)-driver and some
patches and songs to be used with EPSS.

The program is not allowed to be put on any Shareware-collection disks
without noticing the author.

System requirements
-------------------
Runs on STe/MSTe/TT with TOS 1.06 or newer.
Together with DUMMY.BIN it can also be run in silent mode on a ST.
1MB memory and one discdrive is minimum, but a harddisk is recommended.
Minimum resolution is 640x400. A medium resolution version is also avalible.


Features
--------
EPSS is a program which lets you use your Atari STe or TT as a MIDI-sample
player. The program is aimed at those people who usually makes their music
with real synthesizers and a sequencer. Their existing instrument could be
completed with EPSS to give them more possibilities. The programs could also
be used by people who usually make songs in traditionally computer-trackers,
but want more artistically freedom for their songs.

Some of its most important features are

* 8 channel polyphony
* 25 kHz effective replay frequency
* Independent volumes and pitch on each sound
* Independent stereo-panning of each sound
* Varaible looping of each sound
* Unlimited samplelength
* Maximum 256 sounds in one patch
* Maximum 128 different sounds on every MIDI-channel
* Velocity Variant Filter Emulation, VVFE, to achive filereffects
* Subtones
* Used integrated with your favourite sequencer
* EPSS Export Driver for MROS(R) to be used with all MROS(R) based sequencers
* Possible to load different sound-drivers for different hardware
* Use the drivers in your own programs or demos for playing the songs
* MIDI-In, Out and Thru
* Replay possible from MID-files independant of sequencer
* Integrated sample and sound editor
* Direct loading of samples from S-50-discs
* Fully GEM Multi-Window environment compatible with MultiTOS
* Runs both as Program or ACCessory

...and much more...

Installing EPSS
---------------
Copy EPSS.ACC and EPSS.INF to your bootpartition (C:) if you use harddisk,
or drive (A:) if you use disk.

Reboot computer.

Choose a sounddriver from the fileselector which comes up when the desktop
is loaded. Use EPSS25_8.BIN for the 8-channel driver and EPSS25_4.BIN for
the 4-channel driver.

Open EPSS Control from the Desk-menue.

Choose a default patch (*.SPI) with the fileselector.

The main window should now open.

Press 'Save Inf' to save EPSS.INF with information about the sounddriver
and patch loaded, to make EPSS to load this automatically next time you
boot.

If you want to play some demosongs, first load the patchfile for the sounds
with the 'Load'-button under Patch, and then load a song with the 'Load'-
button under Song. Press the play symbol to start it.


Functions:
----------
When the program first is started the Main window is showed. Following
is an explanation of the buttons in this window.

Driver: This button opens the Driverinformation window. See below for
an explanation of its functions.
	
Install:
Here you choose the sequencer in which EPSS should be installed.
You must be inside the sequencer program when you press this
button. All midi-out data is then linked to EPSS, and
everything played from the sequencer is replayed by EPSS.

Info:
Brief information about EPSS Control Panel. The button 'More' gives
you a guideline on how to start up EPSS.
	
MIDI In:
If this button is selected, all MIDI-in events are linked to
EPSS. This is useful if you want to use an external sequencer or
a sequencer which is running on a different computer to play together
with EPSS. Because of the way the TOS handles MIDI-interrupts, this
will not work 100% on a 8MHz STe due to colliding ACIA-packets. On
a faster computer, e.g. a Mega STe or a TT this works better.
	
TOS Off:
Locks all interrupts except MIDI-in and SPACE-key. Used for
getting somewhat more system-time when using MIDI-in.

Below is the current song position counter located. This is only updated
when the main window is the top window.

Reset: When the computer gets too busy, which it often gets when
8 channel music is played at the same time as the sequencer
works for full power, it could happen that the PCM-chip looses
its track of what its playing. This button then re-initializes
the pointers so the correct sound-data is replayed. The program also
uses a vertical blank interrupt to keep track of the PCM-chip and
set it back whenever it plays on wrong addresses.

Save Inf: Saves the current patch and song into the file
EPSS.INF in the root of your boot directory. This file is a 
plain ASCII-file, and can therefore easily be modified with a
standard ASCII-editor.
When EPSS is started next time, either as program or accessory,
the patch and song will be loaded automatically if you saved the
information when a patch and song was loaded. If the song is
playing while saving the info, it will also start playing when
autoloaded. Current module and values for preallocated memory is
also saved in the EPSS.INF-file.

Soundpatch:
-----------
This area contains buttons for the handling of the patch.

Patch: The filename of the patch loaded is shown.
	
Info: This button opens a window which gives you information about
the patch current in memory. See 'Patchinformation' for more info
about this.
	
Load: Loads new patch and precalculates the samples if necessary. You must
use the Load-function to reload a patch when you change sound-driver. The
frequencys are currently not recalculated so make sure you use a 50 kHz
patch together with the 50 kHz-driver.
	
Save: Saves the edited patch. If you are playing the song at the same time
you saves the patch, the sound is turned off when the patch is recalculated
to its original and turned on when it is saved.
	
Edit: Opens the patcheditwindow. In this window you can define splits, load
sounds and set parameters for the sounds. See 'Patchedit' for more information
about the functions.
	
Song:
-----
This area contains buttons for the songhandling.
	
Info: Opens a window with information about the song. See 'Songinformation'
for more information of these values.
	
Load: Load new song and start playing. The program accepts only standard
.MID-files of type 1, that is one or more sequential tracks.

Below is a set of symbols which represent the song playing functions.

<<: Rewind of the song position counter.

Close symbol: Stop playing the song.

>: Start playing the song.

>>: Forward of the song position counter.

Stop: Stops playing currently loaded song.
	
Play: Starts playing currently loaded song.
	

Driverinformation window
------------------------
Shows information about the current driver loaded. These parameters
are updated when a new driver is loaded.

To the left in the window there are 16 buttons. These buttons represent
which of the incoming MIDI-channels that will be sent to EPSS. If the
button is unselected all MIDI-messages received from the sequencer at
that channel is also sent to MIDI-out. This feature is very useful if
you want to use EPSS together with other MIDI-equipment. You could then
assign channel 1 to 8 to EPSS and channels 9 to 16 to your other devices
for example. If you want to use EPSS like this, we strongly recommend
you to register and then get the MROS-driver for EPSS. See below for
an explanation about EPSS.DRV.

Load Driver: This button is used for loading another sound-driver.
Note that the patch loaded are usually precalculated based on the
current driver. If a driver with different number of channels are
loaded, you must also load the patch again to get the precalculation
right. The program informs you about that when you load a driver which
requires a recalculation.


Patchedit window
----------------
This is the most complex window in EPSS. In this you control how the
samples should be placed at the MIDI-channels (the splitting). You
load and listens to the samples and defines start, loop and stop of
them. You can manipulate the volume and controll all soundattributes
of each sound separately. The window also contains a keyboard which
can be set to show each incoming MIDI-messages from either the MIDI-in
or from the sequencer. The keyboard can also be used to play MIDI-out
messages.
	
The keyboard:
-------------
As default the numbers on the keys represent the number of the sound
placed on that key.
If the splitfunction 'Tone' is active, the values on the keys represent
the pitch of the sound placed on that key. If the value is C6, this
indicates that the sound is played at its original pitch.
Above the keyboard, the octave number for the keys below is shown.

MIDI: Indicates which MIDI-channel the keyboard should show. The
channel is incremented or decremented with the '+' and '-'-buttons.
If you press at the text you get a sub-menue in which you can choose
which channel you want to change to.

Octave: With this function you could change the current octaves show
at the keyboard. Four octaves are shown at a time. Either increment
or decrement with the '+' and '-'-buttons or press at the text to
choose octave range from the submenue.

Play: When this button is activated, the keyboard is used to play
and listen to which sound each key is mapped to by pressing at a key.

Show Inp: When this button is activated, the keyboard shows all keys
played by inverting the keys. Because this is done with the system's
AES-functions, this is not fast enough to show rapid tones and the
tones are delayed. If you have 'MIDI-In' turned on, all notes received
are shown at the keys. If you have EPSS installed in a sequencer, all
notes received from the sequencer are shown at the keyboard. The MIDI-
channel must match the incoming note for it to be shown.

MIDI-Out: All keys which are played with the keyboard in Play-mode is
also sent to MIDI-out if this button is activated.

The soundfunctions:
-------------------
The '+' amd '-'-buttons is used for changing soundnumber.

The number of the sound is indicated to the right of the buttons.
If you press the number, you get a submenue from which you can choose
another sound. Together with the number and name, the lenght of the
sound in kilobytes is also shown here.

Filename of current sound is shown besides the soundnumber. If you
have a patchfile loaded which is of a old version, no names is shown
here. You can listen at the sound shown by clicking at the name.
The transpose setting and loop-point is used when playing the sound.

Beside the soundname an file-extension is showed. This indicated the
current type of the sample which is to be loaded and has nothing to
do which type of sample the sound contains of. If this extension is
pressed, you get a submenue from which you could choose another sample-
type. Current supported formats are SPL (8-bit unsigned), PCM (8-bit
signed) and S-50 (12-bit Roland S-50 disks). The S-50-type is
somewhat unique, because it actually loads a sound direct from an original
disk from a Roland S-50-disk. The sound is always reduced to 8-bits
and recalculated to 25 kHz (from either 30 kHz or 15 kHz).

Info: Extended information of the sound. 16 characters. This is changed
by clicking at the text to get a inputbox in which you could use the
standard keys for deleting and inserting text.

Load: Loads a sample to the sound. When using the SPL and PCM-extension
you could choose sound from the fileselector shown. When using the S-50
extension, the program reads the directory from the S-50 disk, which
should be placed in drive A:, and shows a submenue with the sounds found
together with their recalculated lengths.

Save: With this function you could save a sound in SPL-format. Useful if
you have loaded the sound from a S-50-disk and then want to change its
volume. It should then be loaded with volume set to 100%, saved as a SPL-
file and it could then be reloaded with a different volume from the
harddisk instead of the S-50 disk, to save loading time.

New: When pressed, this button makes room for a new sound at the end of
the patch. As default this is set to a physical sound, but by changing
the 'Sub'-button you can also make it a virtual sound (sub-tone).

Del: Deletes the current sound. If there are subtones attached to the
sound, the program informs you that these first must be deleted. The sample
for the sound and its soundentry is totally removed from the patch and
all sounds above the deleted sound are moved down one step and the sound
number for the splitinformation is also changed. You can never delete the
last sound as the patch at least must sontain one sound.

Swap: You choose the sound you want to swap the current sound with from
the soundsubmenue. This is useful for reordering the sounds so you can
have the drums at one section, the bass-sounds at another and so on.

Trunc: Truncates the current sound. As end marker the length value is
used. When a truncation of a sample is made, the sample are physically
reduced and therefore the patchsize is also reduced. If there are subtones
attached to this sample, it is not possible to truncate the sample.

Update: The sound is reloaded to activate any volume changes by pressing
this button. If you have changes the samplepath by loading a sound from
a different path, you must choose the sound again from the fileselector,
otherwise the program reloads the sample and recalculates the volume
automatically. This feature doesn't work if you have the type set to a
S-50-sounds. In that case you always get the S-50-directory is the same
way as when you press the 'Load'-button.

Tune: When this button is selected, a sound is heard with the pitch of
the value set with TuneRef. This is useful when you want to tune in a sound
which is sampled at a different tone than the rest.

TuneRef: Which frequency the reference tone should sound at. Default is
C3 with the frequency 523 Hz (Flat C). The value is change by pressing it at
with either left or right mouse button.

Sampleattributes:
-----------------
Start: This is the startpoint of the sample. It is changed by pressing
at the value by either left or right mouse button to increase or
decrease it. Used together with the shift-key, the change
is ten times faster.

Loop-value: If the LOOP-button is selected, this is the loop-point of
the sample. It is changed by pressing at the value by either left or
right mouse button to increase or decrease it. Used with
the shift-key, the change is ten times faster.

End: Indicated the endpoint of the of sample. The value is changed by
pressing at the number by either left or right mouse button to increase
or decrease it. Used together with the shift-key, the change is
ten times faster.

VVFE-sensitivity: Velocity Variant Filter Emulation.
Multiplicator which determines how much the startoffset of the sample
should be set. This is controlled by the MIDI-velocity. Values are
1, 2, 4, 8, 16, 32, 64 and 128. If you use a keyboard with fixed
velocity, set the VVFE-value to 1 to make it velocity insensitive.
The value is changed by pressing at the number by either left or
right mouse button to increase or decrease it.
	
Trp: Transpose. -128 to +127. The value is changed by pressing
at the number by either left or right mouse button to increase
or decrease it.
	
Vol: This value is ONLY used when loading a sound. If the function
was made to work on the current sample, the sound would be incorrectly
recalculated when the volume first was reduced in volume and then
increased and this would result in noise and distorsion. The only solution
to avoid such things is to ensure that the best possible original data
is used, and this is done by always reloading the sample.
Therefore, if you want to change the volume of a sound previous loaded,
you first set the volume you want and then reload the sound, preferrably
with the 'Update'-function to avoid the fileselector.
The value is changed by pressing at the number by either left or right
mouse button to increase or decrease it.

Show: When this button is activated, the keyboard shown in the upper
half of the dialogue is changed to a sample window which gives you a
visual view of the sample. This makes editing loops and volumes much
easier. You have three vertical lines in the window with the markers
'S' for start, 'L' for loop and 'E' for end. These are updated together
with the '+' and '-' buttons and they can also be dragged in the window
by placing the mouse above the line, and pressing and holding left mousebutton.
When it is released, the counters are updated. You cannot move the markers
past or before its start and endpoints.

If you click with the mouse at the sample, it is zoomed in two times at
the point you have clicked. This is useful if you want to look at a
particular point at the sample.

If you press and hold the mousebutton in an area without any marker near,
you define an area with the rubberband-function, which is to be zoomed.
When the window is zoomed, you can only update the markers by changing
the values with by pressing at the start, stopp and loop-values by either
left or right mouse button to decrease or increase the value.

To reset the zoom to original, you press the right mouse button in the
sample window.


Soundattributes:
----------------
Loop: If this button is selected, the sample is looped when it reaches
the end. You can change the looppoint while playing the sound. As for
the current STe/TT-versions of the drivers, the loopfunction is not
very exact when the looping of the sample takes place. This is done
in favour of speed. The loop-point could differ depending on which pitch
the sound is replayed at. It could therefore be difficult to find a nice
and clean looppoint, which sounds the same at different pitches, but the
loop-feature could still be used with reasonable result.

Sub: This button represent one of the unique features of EPSS, the subtone-
concept. With this concept it is possible to create a new sound which takes
the same sample used for another sound and for example uses it with different
start, stopp and loop-point and different sound-attributes. This could for
example be used when you want to use the same sound both in loop and one shot
mode, or perhaps one sound at left speaker and the other at right. The
possibilities are many.
When a sound is marked as a subtone, you muse define which sample it should
work at. This is done by choosing a sound from the submenue show when
accessing the Load-function. All subtones already defined are unselected
because it is not possible to make subtones from subtones...

Drum: If this switch is active, the sound always plays at its original pitch,
e.g. the pitch at which it is sampled at. This is useful for drumsounds which
you want to place at several keys in a row but doesn't want to be different
pitched for the different tones. If you also want to have the sound pitched
as well you could create a sub-tone.

VVFE-switch: This switch determines how the MIDI-velocity and Poly-Pressure
should be interpretated. Following explains how it is used:

     VVFE-switch   MIDI-velocity (at Note-On)  Poly-Pressure
                   used as                     used as
------------------------------------------------------------
     ON            VVFE                        Sound-Volume
     OFF           Sound-Volume and VVFE       Dynamic Sound-Volume

To use the MIDI-velocity as sound-volume without any VVFE, just set the VVFE-
sensitivity to 1 to disable the VVFE.


L and R: Choose if the sound preferably should be played in the left or
right channel. If the buttons are unlit, the panning is choosed from a
preset panning-map which tries to place the sounds as even as possible.
It is recommended to always pan the sounds. When there are no availible
voices, the sound flips to the other channel.

The originalfrequency of the sound can be selected from the frequency-
submenue. This is to be used in the future to let the sounddrivers
recalculate the frequencys of the sounds in the patch. This is currently
not implemented.

Splitfunctions
--------------
Show: When this button is selected, it is marked on the keyboard on
which notes the actual sound is placed. This is done by inverting the
keys. It always searches the sound from the lowest point of the
keyboard where is current is placed. Therefore it is possible to
find multiple occurances of a sound by keeping the Show-button
activated and then pressing octave increase (the + button beside 'Octave').
If more sounds are present, the keyboard is moved to this new position,
otherwise it stays at the same midi-channel and octave.

Mark: This button is both used for defining the original tone and marking
a split section at the keyboard. When you use this button the 'Show'-
function should be turned off. The 'Play'-button must also be turned off
to make selection of multiple keys possible.
If you only select one note on the keyboard, by inverting it by clicking
on it with the mouse, this functions locates the note and puts it as the
original tone for a split. This is indicated by the 'OrgTone:'.
When you have selected two or more keys, this function marks every key
inside the range from the lowest selected note to the highest selected
note.

Tones: With this button you can choose if you want to show the sound-number
or the pitch for the sound at the keys. The pitch is useful to show in
combination with the 'Show'-button to find out how your sound is splitted
and eventually find the original tone. The octave is indicated as the single
number placed on top of the white keys, e.g. if the number on the key shows
a '5' and the letter below the key shows a 'C', the pitch of this key is
C5, which is one octave below its original note which always is the C6.
The layout is as follows:


C4: - 2 octaves down from the original pitch (lowest note possible if transpose
    is set to 0.)
C5: - 1 octave down from the original pitch
C6: Original pitch of the sound. This is the pitch which you hear when you
    play the sound, and is affected by eventual transposevalue.
C7: + 1 octave up from the original pitch.
C8: + 2 octaves up from the original pitch (highest note possible if
    transpose is set to 0.)

Make: This button is used when you want to define a split for the current
sound.

The splitting procedure is done as follows:

1) Choose the sound you want to define a split for from the sound-
submenue or by increasing or decreasing the sound number.

2) Select the MIDI-channel and octave-range you want the sound to be
split at. This is done by choosing MIDI-channel from the MIDI-channel
submenue and choosing octave from the octave-submenue.

3) Select ONE note where you want the original note to be put. Normally
you want to do a four octave split and then you choose the C in the middle
of the keyboard for the original note. The sounds can always be played two
octaves up and two octaves down from its original tone, so it is most
effective to make the split four octaves to always have the whole range
of the sound available. Note that if you have used tranpose to tune the
sound, you might not be able to play it at its whole range.

4) Press the Mark-button to get the original tone chosen into the 'OrgNote'-
text. (The 'OrgNote' can also be set manually by pressing at the text by
either left or right mouse button).

5) Next you should define all the keys on which you want the sound to be
placed at. This is done easiest by selecting the lowest and the highest
note and then pressing the Mark-button to select all the the keys in
between automatically. You could also define all the notes manually by
selecting them each and each.

6) Press the 'Make'-button to perform the actual split. All marked keys
are now defined with the sound chosen at different pitches depending on
the original tone.

Clear: This button is the opposite of the Make-button. It clears all the
keys marked from its sound.

OrgTone: This indicates at which key the original pitch of the sound
should be placed when defining a split with the 'Make'-button. This can
either be chosen manually by pressing at the value by either left or
right mousebutton, or with the help of the 'Mark'-button, but the most
convenient way of selecting the note is by doubleclicking at the tone
on the keyboard.

Patchinformation window
-----------------------
This is an explanation of the text shown in the patchinformation window.

Info: Textinformation e.g. about the patch-author. This is stored in the
patch. 32 characters. When you click at the text, you get at inputbox
in which you could modify the text.
	
Created: Creation date of the patch.
	
Changed: Change date of the patch.
	
Channels: How many MIDI-channels the patch contains.
	
Sounds: Number of sounds in the patch.
	
Length: Filelength of the patch. Indicated in number of bytes.

Version: Version of the patch. Version 1.00 has no information about
samples and volumes. Version 1.01 has this information.

Songinformation window
----------------------
If the song contains a copyright notice, this notice is shown on the
two first lines in this information. Otherwise nothing is shown here.

Length: Length of the MID-file. Indicated in number of bytes.
	
Format: MID-file format. 0: sigle multi-channel track, 1: one
or more simultaneous tracks of a sequence, 2: one or more
sequentially independent single-track patterns (not supported)
	
Tracks: Number of tracks in the song.
	
Signature: Signature of the song.
	
Clocks/Tick: Number of MIDI-clocks per MIDI-tick.
	
32nds/MIDI-quarter: Number of 1/32nd notes per MIDI 1/4-note.

Speed: Tempo measures in BPM. The resolution is about 7 BPM in
the replayroutines currently used. Min 15 max 200.


Using EPSS together with your sequencer
---------------------------------------
When EPSS is to be used together with a sequencer, you must first modify the
EPSS.INF and reserve memory for the patch and the song before you load
the sequencer. In the archive there is a .INF-file for EPSS which is setup
to let you use a patch with a maximum of 500000 bytes. The name of this file
is EPSS_SEQ.INF. If you find this enough you can let is as it is, and copy
it to you bootpartition and rename it to EPSS.INF. Otherwise you could load
it into an ASCII-editor and change its values. For an explanation of the
keywords which could be used in the INF-file, see below.

When you reboot with EPSS as an ACCessory, you then have to choose driver
and patch if these are not specified in the EPSS.INF.

Load your sequencer. If you run a MROS(R)-based sequencer, and are using
MROS(R) V 3.30 or newer, place the EPSS.DRV (only supplied for registered
users) inside your MROS(R)-folder before you start the sequencer. This is a
Export driver which lets you use EPSS as an external MROS(R) device.

Open EPSS Control and press INSTALL-button and choose your sequencer, unless
you run have EPSS Export Driver installed. After a few seconds, an alert
appears if the installation was successfull.

You can now play with the sounds loaded by turning on the MIDI-Thru in your
sequencer. All MIDI-events which are suppose to go to MIDI-out is now going
to EPSS.

NOTE! When EPSS is used in Cubase(R) It is important to always turn the
Running Status OFF for EPSS. If you don't hear any sounds, or EPSS only
plays one note or something other strange, the Running Status is probably
turned on.

EPSS.INF
--------

When clicked on Save Inf, a info-file is saved which contains information of
the current patch and song. This file can be modified with a standard ASCII-
editor to change EPSS setup information.

The file is loaded everytime the EPSS is started. If you run EPSS as
ACCessory, you must always REBOOT to activate the settings when you have
changed the file.

Following keywords can be used in the INF-file:

DEFAULTPATCH  X:\XXXXXX\XXXXXX.SPI
  The patch is autoloaded when EPSS Control is accessed for the
  first time.
	  
DEFAULTSONG X:\XXXXXX\XXXXXXX.MID
   The song is autoloaded and started when EPSS Control is
   accessed for the first time.

SAMPLEDIR X:\XXXXXXX\YYYYYYY
   This defines the default sample directory. Useful for making the
   'Update'-function to work directly at your sample directory without
   having to choose it by the fileselector.
	   
PATCHMEM 500000
   An amount of memory is allocated for the patchfile when the computer is
   booted. A new patch can then be loaded from inside a program which reserves
   all system-memory, such as Cubase(R). If this is omitted, the memory is
   allocated dynamically when the patch is loaded, which may not work when
   inside a sequencer.

MIDMEM 100000
   An amound of memory is allocated for the song when the
   computer is booted. A new song can then be loaded from
   inside a program which steals all system-memory, such as
   Cubase(R). If this is omitted, the memory is allocated
   dynamically when the song is loaded.

WORKMEM 100000
   An amount of memory is allocated for converting S-50-sounds.
   If you never plan to load any S-50-sounds, this keyword can
   be skipped to save memory. Otherwise it is recommended to set
   this value to make S-50-loading possible from within a sequencer
   which reserves most of its memory for itself (like for example
   Steinberg's Cubase v 2.0).

PLAY ON/OFF
   This keyword indicated if the song should be started
   immediately after loading it or not.

DRIVER X:\XXXXXXXX\XXXXXXX.BIN
   This keyword tells which EPSS-driver which is to be used.

NOCHECK
   This keyword disables the buffer overrun check which normally
   is done each VBL. When a overrun occurs the screen is inverted.

EPSS.DRV, the MROS driver for EPSS
----------------------------------
This is a MROS(R) Export Driver for EPSS which let you use EPSS as an external
MROS(R) device if installed inside the MROS(R)-folder of your sequencer and you
run MROS(R) V 3.30 or newer. When you are running Cubase as sequencer, you can
choose the output of individual tracks to be sent to EPSS by choosing output
EPSS in the trackinformation. It is also important that you disables the
running status for the EPSS from the MIDI Setup menue in Cubase. This is also
necessary if you run EPSS with direct linking into the sequencer by the
'Install'-option.
This driver is only present in the registered version of EPSS.

Various Information
-------------------
The program can be used under Multi-TOS either as a accessory or as an
application. Its PRG-flag must then be set to "Super". None of the current
AES or GEMDOS extensions in MT are currently used.

The ACC-file can be loaded with Chameleon, the ACC-fileloader, but EPSS
Control cannot be released from it. A systemcrash will most certainly happen
if trying to do so.

The program can also be used as a PRG-file, by renaming it. It can then be
used to load songs and play them.

The program accepts all standard .MID-files of version 1.

If you are planning to load patches or songs when inside a  sequencer, such
as Cubase, make sure you have reserved enough memory with PATCHMEM and MIDMEM,
otherwise the program gives an error message because lack of free memory.

For color users, EPSS can be run in ST-Medium with a special version of the
program called EPSS_M.ACC. EPSS is also tested together with the swedish
monochrome emulator Sebra, and works very well with it.


MIDI-implementation
-------------------
	
MIDI-velocity is used for VVFE in EPSS.
Formula: (127-velocity)*VVFEvalue. Example:
Velocity 64 and VVFE 128 makes the sound start (127-64)*128=8064 bytes
forward in the sample.

PolyPressure on a note which is activated, changes the volume in 64
different steps. Min 0, Max 127.
	
The swich 'VVFE' is used to swap volume and VVFE for a sound.
	
Technical data
--------------
	
* Uses PCM-DMA at 50066 Hz replay rate in stereo.
* 8 channels by multiplexing four physical channels and then addition of
  predivided sound data. This gives a true replay frequency of 25 kHz for
  each channel.
* 8 channels polyphony by first-in first-out. No recapture of notes muted
  by overflow.
* Approximately 7 bits dynamic range for 8 channel driver.
* Frequency calculation 4 octaves (two up and two down) by skipping and
  holding samples.
* Realtime volume by 64 precalculated steps controlled by MIDI PolyPressure
  or Note-On-Volume.

  Implementation data:

* Timer A used for syncronizing samplebuffers and calculation of next buffer.
  PCM-DMA used in loopmode. Bufferlength 2000 bytes. Interpretation of MID-
  file for replay made on Timer A also. Some .BIN-modules are made for using
  on the VBL when the host program uses Timer A for its own purpose.
* Trap #7 used for redirecting MIDI-out to EPSS.
* XBRA- and cookie-ID is EPSS. EPSS-cookie is always installed when EPSS is
  currently in memory. The cookie parameter points to start of EPSS
  information block described elsewhere.

Everything is subject to be changed without further notification...

Something about the speed...
----------------------------

The replayroutines uses 25 kHz stereo, 8 channels. Although the replayroutines
are heavily optimized, this consumes lots of processortime and therefore you
cannot use the variable volume feature on more than 2-3 channels at once on
a STe. No check of this is done, so its up to you to watch out so the processor
isn't overloaded. Of course you may run on a 16 MHz 68000, MSTe or TT  which
allows you to use more voices with volumes.

The samples takes much less processortime when played at its original
frequency. Therefore it is recommended to always use the 'Drum'-switch for all
sounds which don't need to be pitched, like the drums.

When used inside a sequencer, such as for example Cubase, the sequencer itselfs
consumes processor power, so it is often necessary to mute some of the channels
when working on a song. The play-function could then be used to replay the song
in full, when it is exported to a MID-file.

Of course the program is compatible with the current multitasking environments
which is availible for the ST like MultiTOS or PowerDOS/Net, but these consumes
also normally a lot of processor time, so be careful when you use EPSS in these
environments.


The Future of EPSS
------------------
	
This system has been developed for the PCM-DMA of Atari STe/TT. Although this
is a limited device for playing differently pitched high quality sounds in
realtime, we think we have achived pretty good performance. When new hardware
is developed by Atari, we will of course contine to develope EPSS to make the
most use of it, and we are especially looking forward to converting it to start
working with the Atari Falcon...


Greetings
---------
Thanks to Gem Two of Unit Seventeen for always trying out new versions and
making such great demosongs for EPSS.

Thanks to Elof and Jason of Unit Seventeen for trying out new versions and
coming with ideas.

Thanks to our betatesters which have been waiting so long for their versions.



Conny Pettersson, Copson of Unit Seventeen, Copson DATA, Sweden

Registrationaddress:

Conny Pettersson
Copson DATA
Hovetorpsgatan 66
S-582 64 Linkping, Sweden

Swedish Postal Giro Account:  428 48 70-5
This can be used from all banks and post offices in all countries if you
state 'PostGirot Utland, Sweden' as the banking service.

Mailaddresses:

Fidonet : 2:204/419.5 (Fidonet)
Internet: Conny_Pettersson@p5.f419.n204.
          z2.fidonet.cd.chalmers.se



Cubase and MROS are registered trademarks of Steinberg, Germany
Atari ST/STe/MSTe/TT/Falcon 030, MultiTOS are trademarks of Atari
  Corporation, USA
	