STOS MAESTRO INSTRUCTIONS: Difference between revisions

From Atari Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 2,063: Line 2,063:
   
 
</pre>
 
</pre>
  +
<br />
[[Category:Programming languages]]
 
  +
<br />
  +
Back to [[STOS BASIC]]
  +
<br />
  +
<br />
 
[[Category:STOS BASIC]]
 
[[Category:STOS BASIC]]
[[Category:Programming]]
 

Latest revision as of 16:15, 1 January 2013


STOS MAESTRO INSTRUCTIONS
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Complete DOCS typed for Sewer Software by Paul.
Brought to you by Sewer Software.                    

Note : These DOCS are huge (over 100K) so make sure your printer
       is feeling pretty good and you've got a bit of spare time
       before attempting to print the entire docs. But then again, 
       if you've got that much spare time, why don't you write us
       some docs and send them to the address in the scrolltext.

 CONTENTS
 --------

 Introduction................................................... 1

   Connecting the STOS maestro cartridge to an ST............... 1
   Making a backup.............................................. 2
   What is a sampler............................................ 3

 Chapter 1: The sound sampler editor............................ 5

   Loading and playing a sample................................. 5
   The main screen.............................................. 6
        Spectrum analysers and pointers......................... 6
        Sample display area..................................... 7
        Play and record area.................................... 7
        The menu bar........................................... 10
           Cut and paste....................................... 10
           Disc options........................................ 11
           FX menu............................................. 13
           Special options..................................... 14
   Creating your own welcome sample............................ 15

 Chapter 2: Disco and Phaser programmes........................ 16

   STOS Maestro Disco unit..................................... 16
   STOS Phaser programme....................................... 17

 Chapter 3: STOS Basic Interface............................... 17

   Installing the new STOS Maestro extension file.............. 18
   Maestro accessory........................................... 18
   Accessory tutorial.......................................... 19
   Drum machine................................................ 20

 Chapter 4: STOS Maestro commands.............................. 21

   Playback commands........................................... 21
   Sampler control commands.................................... 29

 Chapter 5: Creating your own sampler in STOS Basic............ 30

   Initialisation.............................................. 30
   Setting the sample speed.................................... 31
   Recording a sample.......................................... 31
   Playing a sample............................................ 32
        through the loudspeaker................................ 32

 Chapter 6: Technical appendix................................. 33

   Adding sampled sounds to an existing STOS Basic programme... 35
   Assembly language interface................................. 36
   STOS Maestro Plus cartridge specifications.................. 38


 INTRODUCTION
 ------------

 Congratulations  for  buying  STOS Maestro, an exciting  new  utility  which, 
 together  with the STOS Compiler, continues Mandarin's commitment to  support 
 STOS Basic.
   STOS  Maestro  allows  you to incorporate  "real"  sounds  of  professional 
 quality - speech, music and special effects - into your STOS Basic programmes 
 with  the addition of only a few lines of code. Not only will it enhance  the 
 style  and quality of your games and programmes but is also a fun package  to 
 use.
   The  package  is available in two formats: STOS Maestro  and  STOS  Maestro 
 Plus.   The  only  difference  is  that  the  latter  package  includes   the 
 professionally-designed sampler cartridge.
   With the STOS Maestro Plus sampler cartridge you can record your sounds  as 
 easily as you would play a record or cassette and the whole world of sound is 
 open  to you. To get you started, the STOS Maestro package contains  over  50 
 sampled sounds, along with the two discs - one containing the programmes, the 
 other  containing  the samples. You will also find a  registration  card  and 
 details about the STOS Maestro Plus sampler cartridge and how to order it -if 
 you don't already have one.

 Connecting the STOS maestro plus sampler cartridge to an ST
 -----------------------------------------------------------
 If   your STOS Maestro set up includes the sampler cartridge you must  follow 
 the steps below. They detail the proper use of the cartridge.

 1  Before inserting or removing the cartridge turn the ST off. Otherwise  the 
 cartridge or even the computer could develop a fault.

 2 Insert the cartridge into the ST's cartridge port (located on the left side 
 of  the  system),  taking  care to ensure that the STOS  Maestro  sticker  is 
 facing up and facing towards you.

 3  Now insert the STOS Maestro programmes disc into drive A and turn  on  the 
 ST.

 External lead requirements
 --------------------------
 The  cartridge  links  the ST to the outside world of  sound.  You  must  now 
 connect an external sound source to the cartridge.
   We have supplied a female phono port to which you must connect an  external 
 lead.  For  best  results take the output from the headphones  port  of  your 
 external  source  (hi-fi,  tape recorder, walkman,  musical  keyboard).  This 
 output can be controlled via the volume control. If you directly transfer the 
 sound  from, say, a CD by phono to phono then you'll probably find the  sound 
 output  is too high and won't be controllable. If you don't have such a  lead 
 then  any  electronic shop will be able to supply you with one  -  if  you're 
 unsure,  take  the cartridge with you and explain your  requirements  to  the 
 shopkeeper.

 On  the enclosed samples disc are 51 sampled sounds. Here's a quick list  for 
 your reference.

  -------------------------------------------------------------------------
 | Synthesiser sounds                          Voices                      |
 | ------------------                          ------                      |
 | 5th string violin                           Bonus points                |
 | Clockwork                                   EEEEERRRRR...               |
 | Easy synth                                  Level                       |
 | Fullrank                                    1, 2, 3, 4, 5               |
 | Moonsynth                                   Game over                   |
 | Orchestra                                   H-e-l-p!                    |
 | Piano brass                                 Get ready                   |
 | Pitch bend                                                              |
 | Spacy sound                                 Sound effects               |
 | Synth Bass                                  -------------               |
 | Weird sound                                 Boing                       |     
 | Yeah sound                                  Bounce                      |
 |                                             Computer bleep              |
 | Musical Instruments                         Electric door               |
 | -------------------                         Explosion                   |
 | Acoustic guitar                             Helicopter rotor blades     |
 | Electric guitar                             Laugh                       |
 | Gong                                        Laser gun                   |
 | Horn                                        Machine gun                 |
 | Orchestral stab                             Metal bar sound             |
 | Panpipe                                     Pistol shot                 |
 | Piano                                       Siren                       |
 | Saxophone                                   Smashing                    |
 | Strings                                     Spring effect               |
 | Tubular bells                               Swoosh                      |
 |                                             Zangy                       |
  -------------------------------------------------------------------------

 Making a backup
 ---------------
 Stos  Maestro is not copy-protected which means you can make backups or  load 
 it  onto a hard drive if you have one. But please don't give copies to  other 
 people. STOS Maestro took many months to produce and it is only by continuing 
 sales that we will able develop new extension discs and accessory programmes.
   The  two STOS Maestro discs have been specially formatted so as to fit  the 
 extra music demos on. This means that side two of each disc cannot be  copied 
 using  the  standard  Gem Desktop backup procedure. Don't  worry  about  this 
 because copying the discs as single format will backup the other files - it's 
 only  the DEMO.TOS files that can't be re-duplicated. If  you have a  special 
 copying  utility  such as PROCOPY then you'll be able to back  the  discs  up 
 fully.  The  following  procedure shows how you should backup  the  discs  as 
 single sided.

 1  Slide  the  write protect tab of the original disc so  that  you  can  see 
 through the hole. This will guard your disc against possible mistakes  during 
 copying.

 2 Place a blank disc into drive A and format it as single sided

 3  Now put the STOS Maestro programme disc into drive A and drag the drive  A 
 icon on to the drive B icon.

 4 Follow the prompts displayed in the Gem dialogue boxes.

 5 Repeat steps 1 to 4 for the STOS Maestro samples disc.

 You  will  now be left with two backup discs, but the  DEMO.TOS  files  won't 
 work.
   As  you  read through the manual and experiment with the samples,  you  may 
 well  create  some new sounds which you really like. Keep a  spare  formatted 
 disc to hand for storing your samples but don't you worry if you forget - the 
 STOS Maestro editor has a built in disc formatter.

 What is a sampler?
 ------------------
 You probably know that sampled sounds are extremely realistic - they are,  in 
 fact "real" sounds - and most ST games make a feature of the life-like  music 
 and  sound  effects  they  contain. But how does the  sound  get  inside  the 
 computer in the first place?
   Here's the theory behind sampling - but don't worry, there's not much of it 
 and it won't hurt a bit. If you know how sampling works you'll get much  more 
 out of the programme.
   If  you  really  don't want to know what's going on you  can  memorise  the 
 following  simple rule and skip ahead to Chapter 1: The higher  the  sampling 
 rate the better the sound quality but the more memory it will take.
   Simply,  sampling is the process of converting analogue sound into  digital 
 information,  storing  it  in the computer and then  converting  it  back  to 
 analogue sound again so we can hear it. The routines required to do this  are 
 known,  naturally  enough,  as  analogue-to-digital  and  digital-to-analogue 
 converters  or A-to-D and D-to-A for short. These terms you will come  across 
 whenever samplers are mentioned.
   STOS  Maestro  does all this conversion work for you automatically  so  you 
 don't have to worry about it at all. But it will help in understand a  little 
 about the mechanics of the conversion process.
   If you look at sound waves on an oscilloscope you'll see that they  consist 
 of  lots of smooth curves and continuously varying lines. Computers,  as  you 
 probably  know, aren't very good with curves. At their lowest level they  can 
 only  store  the  digits 0 and 1 and when they draw a curve  on  the  monitor 
 you'll notice that it's not a continuous unbroken line but a series of steps, 
 generally pixel size.
   So  how  can  we represent a continuously varying value  (sound  waves)  as 
 numbers?  THe  solution  is  to take samples of the  sound  wave  at  regular 
 intervals and store the reading as numbers.
   Let's put this little bit of theory into practice and see what happens when 
 we sample a sine wave, the purest sound in the universe, it's a little like a 
 plain  flat  whistle or flute sound and does not contain any  "other  noises" 
 (the  technical  term for these is harmonics) which make a sound  bright  and 
 raspy like brass, thin and reedy like an oboe or hollow like a clarinet (sine 
 in Latin means "without").
   If  you  feed  a sine wave into an oscilloscope  the  display  will  appear 
 something like this:


                      -------------------------------------- 
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                     |          paste figure 1 here         |
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                      -------------------------------------- 

   It  tells us that the entire sine wave lasted only four milliseconds  (four 
 thousandths  of a second). Or to put it another way, 250 of these sine  waves 
 will occur every second. The actual pitch produced by this will be an out-of-
 tune  B  below  middle C, but we'll use this value because  it  makes  things 
 simpler if we stick to round numbers.
   How  many samples do we need to take to convert to digital form? Let's  try 
 taking  a  sample once every thousandth of second. We'd  get  something  like 
 this:


                      -------------------------------------- 
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                     |          paste figure 2 here         |
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                      -------------------------------------- 


 It's  a nice try but it's not a very good representation of a sine  wave,  is 
 it? Let's increase the sample rate to four thousandths of second:



                      -------------------------------------- 
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                     |          paste figure 3 here         |
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                      -------------------------------------- 


 That's a bit more like it, although it's not quite perfect.
   To  avoid having to talk in terribly small numbers like so-may  thousandths 
 of a second, we use the term kiloHerz which is abbreviated to KHz. So we  can 
 say our first digital conversion was sampled at 1KHz and the second at 4KHz.
   The sampling rate in STOS Maestro can be varied from 5KHz to 32KHz. You can 
 see  that we were getting pretty close to a sine wave with a sample  rate  of 
 4KHz.
 At  32KHz our digital representation of the wave will be pretty close to  the 
 real thing.
   Great! So you could sample everything at 32KHz. Well you could but I've got 
 some good news and bad news for you.
   As  we've seen, the more samples taken in a given time, the  more  accurate 
 the digital model will be and consequently the better the sound quality  will 
 be on playback, that's the good news.
   However  the  more  samples you take in a given time,  the  more  data  you 
 accumulate,  the more memory you will require and the more jerkily your  STOS 
 sprites  will move because so much processor time is being taken  up.  That's 
 the bad news.
   You  will  find that some samples will sound fine at low sample  rates  but 
 others  will  lose  their  brightness and "edge".  Here's  the  bottom  line: 
 Sampling is a trade off between fidelity and memory used.
   But  here's  some good news. In order to convert digital data  into  sound, 
 samplers  use a conversion table and the quality of the sample  depends  upon 
 the precision and accuracy of this table. Maestro incorporates a super quiet, 
 high  precision  conversion table and you'll find that many  samples  san  be 
 recorded and played back at quite low sampling rates and still sound good.

   And  here's even more good news - STOS Maestro employs a  technique  called 
 oversampling  which  enables  samples to be taken at low  sample  rates  with 
 greater than average accuracy. It also features a unique pack facility  which 
 lets  you  squeeze more samples into less memory. Oversampling and  pack  are 
 fully explained in chapter 1.
   Okay, that's enough theory, now let's get sampling

  --------------------------------------------------------------------------
 | 1: The Sound Sampler Editor                                              |
  --------------------------------------------------------------------------
 Quick Start Guide
 By now you'll want to see - and hear - what STOS Maestro can do so we'll  run 
 through a few basics to get you up and running.
         WARNING: If you are going to create samples of your own with STOS
         Maestro  Plus sampler cartridge, make sure your Atari ST is  switched 
 off
         before plugging the cartridge into the cartridge port

   Insert  your  backup programme disc into the disc drive and  turn  on  your 
 computer.  Double-click  on the Drive A icon and a window will  open.  Double 
 click on STOSM.PRG
   When  the loading screen appears, press the 1 key on  the ST's keyboard  to 
 load  the  sampler  programme. Alternatively the sampler  can  be  loaded  by 
 double-clicking on the Phaser programmes described later.
 Upon loading the display will change to a screen full of icons and a  welcome 
 sample will be played.

 Loading and playing a Sample
 ----------------------------
 Remove  the STOS Maestro programme disc and place the back-up sample disc  in 
 your  drive.  To  load a sample you must first select the  disc  menu  (we'll 
 explain all about the various menus in a moment) so click on the disc icon on 
 the second line from the bottom:

 DISC  MENU:  The Disc menu will roll down on the bottom line.  Click  on  the 
 leftmost  icon and a Gem-type file selector box will appear. You will  notice 
 that  the  samples  have  been divided into four types  and  stored  in  four 
 folders: Music, Sound, Synth and Voice.
   Open a folder by clicking on the folder name. Then load a sample by double-
 clicking  on  the sample name or by clicking on it to highlight it  and  then 
 clicking  on  the OK box. A message will appear in the middle of  the  screen 
 telling  you which sample file the programme is loading then you will  see  a 
 small  blue and white visual representation of the sound to the left  of  the 
 central display area. To hear the sample, left click on the Play icon:

 PLAY: To stop playback press the spacebar. Whenever the programme is sampling 
 or  playing back you can always halt the operation by pressing the  spacebar. 
 You'll notice that when you do this an orange bar appears in the display area 
 marking  the point at which you stopped playback. This helps  pinpoint  small 
 sections of a sound within a larger sample and is useful during editing.
   Now that you know how to load and play samples, you can try out some of the 
 other  sounds on the disc. Let's now look at all the exciting  features  STOS 
 Maestro has to offer.

 The main screen
 ---------------
 STOS  Maestro  only has one main screen so it's very easy to  use.  At  first 
 glance  some  of  the icons may look strange but they will  be  explained  in 
 detail.  You will soon master STOS Maestro and using it will  quickly  become 
 second nature.
   The STOS Maestro screen is divided into four areas.

                                                             
                      -------------------------------------- 
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                     |          paste figure 4 here         |
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                     |                                      |
                      -------------------------------------- 

   Options  are selected by moving the arrow around the screen with the  mouse 
 and  left  clicking on an icon. The right button has some  special  functions 
 which we'll explain when we come to them.

 1 Spectrum analysers, position and size displays

 Spectrum  analysers: These are the two large boxes in the top left and  right 
 hand  corners of the screen. They give a visual representation of the  signal 
 which  is  entering the Audio-In socket of the STOS Maestro  Plus  cartridge. 
 They  will  work  whenever  you aren't  doing  anything  which  requires  the 
 programmes full attention such as sampling and playing back.
   Use  the indicators as a guide to the volume level of the signal. They  are 
 calibrated in decibels (dB) which is how sound levels are measured. The  more 
 decibels, the louder the signal.
   When  you're recording a sample, get as much signal into the  programme  as 
 you can but don't turn the volume up so high that the bars hit the top of the 
 windows and are truncated as this will distort the sample.
   Here's a useful tip: When you're recording, try to avoid trailing the  lead 
 which  connects  the  sound source to the cartridge  over  your  computer  or 
 alongside your monitor as it may pick up background noise.

 Position  and  size  indicators: Underneath the spectrum  analysers  are  the 
 position  indicators labeled POS1 and POS2. These show which area  of  memory 
 you are currently working on and reflect the position of the two white dotted 
 pointers in the sample display area below.
   In  between the position indicators is the size indicator which  tells  you 
 how  much  memory  (in bytes) lies between the two  pointers.  This  is  very 
 useful: Not only does it save you doing complicated sums but it can tell  you 
 exactly how large a sample is so you know how much memory it will take up  in 
 your STOS programmes.
   The  total amount of memory will depend on the size of your ST's ram. On  a 
 1040  ST  you will have a little less than 700k to play with. We'll  look  at 
 this more in detail now.

 2 Sample display area

 This  gives  you  a visual representation of the sample(s)  in  memory.  Upon 
 loading the programme, this area will show all the free memory - and it  will 
 be completely empty. The two white dotted lines at either end of the  display 
 area  are the pointers. The left mouse button controls the left  pointer  and 
 the right mouse button controls the right pointer.
   Using the mouse, position the arrow anywhere in the display area and  press 
 the left mouse button. The pointer will move to the arrow position. Move  the 
 arrow  to the right and press the right button and the right pointer will  do 
 likewise.  Note that the position and size indicators change as you move  the 
 pointers.  Also note that the left pointer cannot be further right  than  the 
 right pointer, and vice versa.
   In addition you can click and drag the pointers around the display area  by 
 keeping the left or right button pressed and moving the mouse.
   The  area between the pointers is the current work area and all  recording, 
 playing and editing functions take place between these pointers. If you  want 
 to hear just a part of a sample, isolate it with the pointers.
   Just  below  the  sample display area is the  memory  bar  indicator.  This 
 indicates how much of the available memory is actually in view in the display 
 area.  It  also shows where it lies in relation to the whole of  the  memory. 
 This will become clear when we look at the magnify and de-magnify facilities. 
 At the moment the bar runs the full width of the display area indicating that 
 the whole of the available memory is on view.

 3 The Play and Record area
 This  consists of the two rows of icons below the sample display area.  Let's 
 look at them one by one.

 |<- Moves the left pointer to the extreme left of the sample display area.

 <-  Moves the left pointer to the left of the display by one pixel. If it  is 
 already at the extreme left of the display area you won't be able to move  it 
 any  further.  Although  the pointer moves one pixel at a  time,  the  actual 
 number  of  bytes  it  steps will vary according  to  the  amount  of  memory 
 represented  by  the display area. On a 1040 ST, if the  whole  of  available 
 memory  is  shown in the display area a one-pixel movement will  step  on  by 
 about 2550 bytes.

 ->  Moves  the  left  pointer to the right by one  pixel.  Using  these  step 
 functions  you can home in accurately on a particular part of a  sample.  The 
 right pointer can be controlled with similar icons located  at the far  right 
 of this line of icons.

 Magnify:  This "blows-up" the current work area (that part of memory  between 
 the  two pointers) to fill the sample display area. Let's try an  experiment. 
 Load  the  BONUSPNT.SAM file in the VOICE folder. Move the  right  pointer  a 
 little to the right of the end of the sample (until the size indicator  reads 
 between  15000 and 16000) and click on the Play icon to check that the  whole 
 sample is between the pointers.
   Now click on Magnify. That's more informative, isn't it. Now move the right 
 pointer  so  that  it's just to the left of the last  little  "blip"  in  the 
 display  area. Click on play. You should now have lost the "s" off  "points". 
 It  should  be easy to see where "Bonus" ends and "Points" begins.  Move  the 
 right  pointer  further left until you only hear "Bonus" when  you  click  on 
 Play.
   Now try something a bit more tricky. See if you can move the right  pointer 
 so that the "Bonus" become "Bone". Fun isn't it?


   You  can  magnify an area, define another area and magnify that and  so  on 
 down to a maximum magnification level of about 320 bytes.  At this level, the 
 encapsulated sample will be so short it will be little more than a click.
   You  cannot  magnify more than 15 times.  However if you are working  on  a 
 specific  area of a sample, you will probably find you reach the maximum  320 
 bytes level after only four or five magnifications.
   Watch the memory bar indicator as you magnify.  It shows exactly where  the 
 sample sits in relation to the total memory.

 De-Magnify:   Reverses the magnification process and steps backwards  through 
 the  various stages of magnification which have been made.  Watch the  memory 
 bar indicator.

 Thru:  Clicking here turns the mouse pointer from an arrow into a  busy  bee.  
 Any  sound source fed into the stos Maestro Plus sampler cartridge  will  now 
 sound  through  your  monitor  as it plays.  The quality  of  the  sounds  is 
 determined  by  the  record sample rate (second row,  extreme  right)  -  see 
 later).  This allows you to check the quality of a sound before recording it.

 Programme:   Used to programme the function keys with samples.  Click on  the 
 Wipe  icon to clear memory and then load the GAMEOVER.SAM sample. Magnify  it 
 and  use the right pointer to isolate "Game" - its not where you'll  probably 
 look for it first.  Left click on Programme and `the display area will prompt 
 you  to press a function key.  Press F1.  Right click on Programme, press  F1 
 and  you  will hear "Game".  Unlike normal playback mode you  can  press  the 
 function key before the sample has finished playing to create the famous  "N-
 N-N-N-N-Nineteen" effect - or "G-G-G-Game" in this case.  Press the  spacebar 
 to  escape from playback mode.  Now isolator "Over" and store it in  F2.   If 
 you  accidentally select Programme and don't wish to set a function key  then 
 you can quit by pressing any other key.
   Programme doesn't store the actual samples, `rather it keeps a note of  the 
 positions  of the left and right pointers.  We can demonstrate  this  easily: 
 Click  on the Full icon (the very next on on our list) and load  GETREADY.SAM 
 Right click on Programme and press F1 and F2.

 Full:   A  useful  control  which you have already  used.   It  restores  the 
 pointers to the start and end of memory.

 Wipe:  This wipes (empties) the whole of memory, not just the section between 
 the pointers  (use the Cut function which you'll find in the Edit Menu).  its 
 non  reversible and you get a warning prompt before it proceeds.   It  resets 
 the pointers to the start and end of available memory.

 Play  (and Play Menu):  Left clicking here plays the sample between  the  two 
 pointers.   Right clicking will roll down the Play menu on the  bottom  line.  
 Load  GETREADY.SAM  (you may have to click on the disc icon to get  the  Disc 
 Menu  back).  Magnify the sample and move the right pointer pretty close  the 
 end of the sample.  Now for some fun: Right click on Play.

 Backwards Loop:  Play the sample in reverse and loops its.  Press spacebar to 
 stop.

 Forwards Loop:  Plays the sample forwards and loops it.

 Forwards/Backwards Loop:  Plays the sample forwards then backwards also in  a 
 loop.

 Backwards:  Plays the sample backwards once.

 Forwards:   This  is the default Play button and plays the  sample  forwards.  
 Notice that as you select each of the icons they appear in the second line in 
 place  of  the  Play  icon.  This allows you to use any  of  these  types  of 
 playback during editing without having to call up the Play menu each time.

 Playback  Rate:   If you recall the sampling theory  from  the  introduction, 
 you'll remember that the more samples we take in a given time, the better the 
 quality.   Its probably occurred to you that you can sample at one  rate  and 
 play  back at another.  If you haven't tried this yet lets try it  now.   The 
 principle  involved  is  rather like speeding up or  slowing  down  an  audio 
 recording  using  a  record deck (playing 45s and 33rpm)  or  a  reel-to-reel 
 recorder.   You  probably know that if you slow down a  recording  the  pitch 
 becomes lower and speeding it up produces Pinky and Perky voices.
   Its the same with sampling.  If you increase the playback speed of a sample 
 -the  rate  at  which the digital information is passed through  the  D-to  A 
 converter - the pitch becomes higher, and vice versa.  This is easy to do  on 
 a  computer.  This icon is used to set the playback speed which can be  fully 
 varied from 5KHz to 32 KHz.  Click on the left and right arrows to adjust the 
 rate and check the result by playing the sample.  If you double the  playback 
 speed, the pitch of the sample will double.  In musical terms it increases by 
 an octave.  If you right click on this icon it will change the playback  rate 
 to that of the record rate.  

 Playback  Plug:   This  connects the playback routine to  the  Trigger  Level 
 circuitry.

 Trigger  Level:   This sets the Trigger Level in decibels (we  mentioned  dBs 
 briefly  in  relation  to the spectrum analysers).   When  plugged  into  the 
 Playback or Record section of the programme it holds up the function until it 
 receives  an input signal equal to or high than the dB level.   When  plugged 
 into a section and activated, the screen will change colour while waiting for 
 a  signal  of  the correct level.  You can escape from  this,  as  usual,  by 
 pressing the spacebar, Check the dB level of incoming signals on the spectrum 
 analysers.
   When  recording,  the Trigger Level can be useful if you want to  record  a 
 sound with silence in front of it.

 Record  Plug:   This  connects  the  Record  routine  to  the  Trigger  Level 
 circuitry.

 Record:  Click here to begin recording will terminate when the  current  work 
 area  is  full  Press the spacebar to terminate earlier.   Note:  Unless  the 
 Trigger  is "plugged in". STOS Maestro will begin sampling as soon as  Record 
 is pressed even if there is no sound at the input.

 Oversampling:  In order to help you make better samples. STOS Maestro uses  a 
 process known as Over-sampling.  Its completely automatic and you don't e  en 
 have to switch it in and out.  
   When  STOS Maestro is sampling at 32khz it's running pretty close  to  flat 
 out.  At lower rates, however, it has a little processing power to spare  and 
 at sampling rates of 19 khz and less it automatically goes into  Oversampling 
 mode.
   Instead  of  sampling at the set rate it takes as many samples  as  it  can 
 during the sampling time and the  works out an average figure.  So if you set 
 the  sample  rate of 10khz and Maestro oversampled at 50 khz  it  would  take 
 five  samples  instead  of one average them out.  This will  provide  a  more 
 accurate representation of the sound during that period of time than just one 
 sample.

 Record  Rate:   This  determines the rate in KHz at which  the  recording  is 
 samples.  It works in exactly the same way as the playback rate icon.  If you 
 have  the STOS Maestro Plus sampler sampler cartridge, try recording the same 
 sample at different rates and see how much memory each one uses, then compare 
 the quality.

 4 The Menu Bar

 The  third  line of icons is used to call up various menus  onto  the  bottom 
 line.  You've already used the Play menu and part of the Disc menu.

 Cut  &  Paste  Menu:  Rolls the Cut & Paste menu onto the  bottom  line.   It 
 contains  a number of tools for manipulating the samples.  Load a sample  and 
 try out the various editing procedures.

 Play cut buffer:  Click here to play the contents of the cut butter.  If  you 
 haven't  Cut  anything yet it will have no effect.  Right  clicking  on  this 
 button  allows  you  to edit any sample currently in  the  cut  buffer.   All 
 operations  in  the current work area will only affect the cut  buffer  data.  
 When you need to return to the full memory sample, simply right click on this 
 icon again.

 Cut:  Cuts the area between the two pointers and stores it in the cut buffer.  
 You  can't cut more than 50k of sample (check the size in the size  indicator 
 window)  and  if you try, a dialogue window will appear advising you  of  the 
 fact.
   If  you haven't done so already, load a sample.  Use the right  pointer  to 
 isolate  it, then magnify it.  Now click on Cut and sample will  vanish  from 
 the  display area.  Clicking on Play will have no effect but if you click  on 
 Plays cut buffer you'll hear the sample.  

 Copy:   This  is similar to Cut but it copies the area into  the  cut  buffer 
 leaving  the original intact.  Again there is a 50k limit on the size of  the 
 area you can copy.  

 Splice:  This cuts out the area between the two pointers and stores it in the 
 cut  buffer.  Then it closes up the gap - useful for swapping samples  around 
 memory.

 Paste:   This copies the contents of the cut buffer into memory  starting  at 
 the position of the left pointer.  This overwrites any data which may already 
 be there but the buffer remains intact.  If the area between the two pointers 
 is small than the contents of the cut buffer, the contents of the buffer will 
 not be copied.

 Insert:  This is similar to paste but instead of overwriting memory it  makes 
 a  space  for  the buffer contents by moving any data to  the  right  of  the 
 insertion  point (the position of the left pointer)   further to  the  right.  
 It will always insert the full contents of the buffer-any data at the end  of 
 memory will be lost the distance between the left and right pointers dictates 
 how much of the buffer will be inserted.

 Mix:   This  operation too, begins at the position of the left  pointer.   It 
 mixes  the contents of the cut buffer with the data which is  already  there.  
 This can produce some stunning effects.  For example, copy a complete  sample 
 (try one of the voices) into the cut buffer.  Move the left pointer a  little 
 to the right and hit Mix.  Move it further to the right and Mix again.   Make 
 sure the right pointer is sufficiently far right so it does not truncate  the 
 Mix.   Depending  upon  the  offset, this  will  produce  reverb,  delay  and 
 variations on the N-N-N-Nineteen effect - or a combination of all three.

 Delete:  This simply erases the area between the two pointers.

 Chop:   Erases  the  sample outside the two pointers  and  moves  the  sample 
 (between the pointers) to the start of free memory.

 Flip:   This reverses the sample between the two pointers.  Playing  it  will 
 now  have the same effect as clicking on the Play backwards icon in the  Play 
 Menu.

 Disc  Menu:  Rolls down the Disc menu on the bottom line which is  where  all 
 file handling takes place.  The icons below are available after you click  on 
 the icon.

 Load  Sample:   Produces a Gem file selector box which allows you to  load  a 
 file  of  sample data at the position of the left pointer,  allowing  you  to 
 store  several different samples in memory at the same time.  If  the  memory 
 area  between the left and right pointers is small than the sample then  only 
 this  amount  will  be  loaded, so make sure you set  them  up  or  use  Wipe 
 beforehand.
   On  first access, the routine will look for files with the  extension  SAM.  
 We  recommend you add this extension to all your sample files - but  its  not 
 compulsory.
   To  search  for other extensions, click on the path name so  that  the  txt 
 cursor  appears  after SAM. Backspace three times to delete SAM  and  type  * 
 don't  press  Return  because a bug in Gem will send you  back  to  the  main 
 screen..   Instead, click on the top of the file selector box where  it  says 
 *.SAM.  The directory will now show all files and folders regardless of their 
 extension.   A quick tip is to click on the path name press Escape  and  then 
 click  on  the file selector box top - this default to drive A and  uses  *.* 
 search specification. 


   It's interesting to note that the sample files created by most samplers for 
 the  Atari  ST produce the same kind of data. You will be able to  load  most 
 samples  made  with  other samplers in Maestro - and vice  versa.  Even  more 
 interesting  is  the possibility of grabbing samples from  commercial  games. 
 Files  of  sample  data may have the same extension SAM,  SPL,  SNG,  SND  or 
 something  else. But beware: Trying to access some protected discs may  cause 
 the STOS Maestro programme lock up.
   You may have discovered that you can load any file into STOS Maestro and it 
 will  treat is as sample data. If it's not a sample it will sound terrible  - 
 probably like a screech.

 Save  sample: This does not prompt for a filename but saves the area  between 
 the  pointers  with the same name as the last filename used. It will  be  the 
 name  of the last sample loaded or saved, otherwise it will use  the  default 
 SAMPLE.SAM.  This is useful as it allows you to work on a sample and save  it 
 quickly  without having to type in a filename. If the file already  exist  on 
 the  disc,  a dialogue box will appear requesting permission  to  update  the 
 file.
   A unique STOS Maestro feature means that the playback rate is saved to disc 
 along with the sample data. You've probably noticed the playback rate  change 
 when loading various samples. No longer will you have to determine the sample 
 speed by experimentation. However when loading samples from games or  created 
 on other samplers you'll have to find the correct playback rate by trial  and 
 error.

 Save sample as: Click here to save the sample between the two pointers.  This 
 option allows you to enter a new filename just as you would with any Gem file 
 selector.

 Insert sample: This works in a similar way to the insert function in the  Cut 
 & Paste menu. It reads a file of sample data from disc and inserts it at  the 
 left  pointer  position and moves the sample in memory to the right  to  make 
 room for it. If you want to combine samples use mix in the Cut & Paste menu.

 Drive: Prompts for the current drive. When prompted press a letter from A  to 
 H. The default depends on the drive from which you booted STOS Maestro.

 Disc info: Gives information about the current driveL Identifier, total  disc 
 space and total free space.

 Delete  File: When the file selector appears, click on the file you  wish  to 
 delete and then click on OK or just double click on the file. After selecting 
 a  file there is a confirmation prompt so that you can have  second  thoughts 
 about this action.

 Rename: Use this to rename a file. It can be very useful if you've  forgotten 
 to  give  a file an extension or if you've a list of samples  such  as  WOW1, 
 WOW2, WOW3,...WOW16. Click here and the file selector will appear. Select the 
 file you wish to rename by double clicking on it or by clicking on it once to 
 highlight  it  and then clicking on OK. A new file selector box  will  appear 
 with the text cursor on the selection heading. Enter a new filename and press 
 return  or  click on OK and the file will be renamed. The  routine  will  not 
 allow you to rename a file with a name that already exists.

 Format: Allow you to format a disc as single or double sided without  leaving 
 STOS Maestro. This produces a warning prompt as formatting a disc will  erase 
 all  the data on it. Get past this and you are asked to select Drive A  or  B 
 and then the number of sides you want to format.

 New Folder: Folders are very useful for sorting your samples into types.  You 
 will  have  noticed  that the samples on the data disc  are  stored  in  four 
 folders.  Click  here and enter the name of the new folder  -  eight  letters 
 maximum.  To escape from this option, press the 'escape' key - a  null  entry 
 will also terminate the procedure.

 FX:  Rolls down the effects menu onto the bottom line. This reveals the  four 
 icons below

 Echo:  An  echo is produced by repeating the original signal  after  a  short 
 delay. Although the delay is short you will be able to hear the two (or more) 
 echoes quite distinctly. A characteristic of natural echo is that  subsequent 
 echoes  decrease in volume. If you click on Echo with the left  button,  STOS 
 Maestro will automatically add echo to the sample between the pointers.  This 
 is irreversible so a dialogue box pops up to warn you. You can repeatedly add 
 more  and more echo to a sample for increasingly pronounced effects. As  echo 
 effectively  extends  the length of a sample you may have to move  the  right 
 pointer further right to accommodate all the repeats.
   Clicking on echo with the right button adds echo to any sound being fed  in 
 from the STOS Maestro sampler cartridge in real time.

 Reverb: Reverberation, to give it its full title, is produced by thousands of 
 extremely short echoes following hot on the heels of each other. They are  so 
 short, in fact, that you cannot tell when one ends and another begins -  they 
 blur  together and seem to become an extension of the original sound.  Reverb 
 produces a ringing, cavernous effect. Try it with voice samples and use it on 
 dripping  sounds.  If your game is set underground you will need  reverb  for 
 atmosphere.
   Do a left click to add reverb to the sample between the pointers and  right 
 click  to  add reverb in real time to a sound being played through  the  STOS 
 Maestro Plus sampler cartridge.

 Hall: The type and quality of reverb will vary according to the  environment. 
 Compare  the  reverb  qualities of a concert hall  with  your  bathroom,  for 
 example.  Hall reverb is more pronounced than Maestro's standard reverb  -  a 
 little  slower,  perhaps. Left click to apply it to the  sample  between  the 
 pointers,  right click to apply it to a sound coming in through  the  sampler 
 cartridge.

 Room: This is the third type of reverb effect which STOS Maestro has to offer 
 and  it's a little shorter than the others. As usual, left click to add  echo 
 between the pointers, right click for the sampler cartridge.

 Delay FX
 --------
 You  can have a lot of fun and create lots of fascinating sounds with  reverb 
 and echo.
   Here are a few suggestions:

 For  a  well-pronounced effect, give a sample 3,4, or more doses of  echo  or 
 reverb
 Add both echo and reverb to a sample
 Flip a sample, apply an effect and then flip it back.
 Move the left pointer slightly before applying subsequent effects.
 Use mix to create combinations of echo and reverb.
 Split a sample (insert blank memory) and add an effect only to the middle  of 
 it.
 Don't forget to Magnify the sample in order to home in on selected areas.

 Amplify:  Amplifies the sample between the pointers to make it  louder.  This 
 can be very useful if you can't record your favourite sound at a high  enough 
 volume.  You  can  also apply it to a sample if it has  undergone  a  lot  of 
 editing. You will probably have noticed by now that lots of manipulation  can 
 reduce  the effective volume of the sample. But use Amplify sparingly  as  it 
 will  increase  the background noise as well. If you continuously  amplify  a 
 sample it will soon distort.

 Pack: This is another unique feature to help you record even better  samples. 
 It  packs the data between the pointers, effectively halving the size of  the 
 sample  and saving lots of memory. It also means that your STOS  Basic  games 
 won't slow down as much when samples are playing.
   In  order  to hear a packed sample at its original pitch you only  need  to 
 play  it at half its sampled rate. For example, you could record a  sound  at 
 32KHz,  Pack  it twice and play it back at 8KHz. The quality will  be  better 
 than  if  you  recorded at 8KHz because the pack  routine  takes  an  average 
 reading of the data (like Oversampling).

 Fade  In:  Creates a Fade In on the sample between the  pointers.  The  wider 
 apart the pointers, the slower the fade. You'll notice that this  drastically 
 reduces the size of the sample in the display area.

 Fade Out: Creates a Fade Out on the sample between the pointers. The comments 
 relating to Fade In apply here, too.

 Soft:  This is the opposite of amplify and reduces the volume of  the  sample 
 between  the  pointers, too much softening and you will  probably  notice  an 
 increase in noise. While you may be able to amplify a softened sample back to 
 its  original  volume  without too much signal  deterioration,  softening  an 
 amplified sample will bring with some of the noise created by Amplify.

 Filt: Passes the sample between the pointers through a low pass filter.  This 
 passes  the  low frequencies and filters out the high ones.  Noise  tends  to 
 reside in the high frequencies so use this to help reduce the noise level  on 
 very noisy samples. It also "softens" a sound.

 Specials: This rolls down another menu containing more display options.

 About box: Gives you information about STOS Maestro - the version number  and 
 the credits.


 Filled  Waveform:  This  option and the next two determine  how  samples  are 
 displayed  in the sample display area. This is the default option  and  shows 
 the  waveform  of the sample with the positive (upper) and  negative  (lower) 
 cycles filled in white and blue.
   If  you  have a musical instrument which can produce sine  waves  (see  the 
 introduction), plug it into the cartridge, sample a sine wave and magnify it. 
 This option will clearly show the sine wave shape in the display area.
   Synthesisers  often use a square wave to produce a clarinet sound.  If  you 
 can  analyse either of these you will see the squarish waveforms (a  clarinet 
 will  produce waves which are not quite square due to additional  harmonics). 
 Brass and string sounds are often constructed from sawtooth waves  (sometimes 
 called ramp waves) and make for interesting analysis, too.

 Envelope: This displays the volume envelope of the sample - in other words it 
 shows  how loud it is, rather like the spectrum analysers. You will see  that 
 the positive and negative cycles are identical (as if they had been reflected 
 along the central line) as you can't really have a negative volume.

 Waveform Outline:  This is similar to the Filled Waveform option but it shows 
 the  waveform  of  the sample as an outline, just like you'd  see  it  on  an 
 oscilloscope.  It's  often easier to see the exact shape of a  waveform  when 
 displayed this way.

 Oscilloscope:  The  STOS oscilloscope lets you see the shape  of  the  sounds 
 which  are  entering  the sampler cartridge. Most sounds  in  everyday  life, 
 particularly  music  and the human voice, are very complex indeed  and  their 
 waveforms are very complex, too. Try it for yourself.
   If you can produce sine waves you'll be able to see them quite clearly. Low 
 notes  produce  "longer"  waves while higher notes  bunch  the  waves  closer 
 together.  You  will even be able to spot sine wave  characteristics  in  the 
 spectrum analysers. Exit to the main screen by pressing the spacebar.

 Exit:  Click  here to exit back to the Gem Desktop. If you  have  edited  the 
 sample in memory, it will give you the option of saving before quitting.

 Creating your own welcome sample
 --------------------------------
 As  you  enter  STOS  Maestro you are welcomed by a  voice  sample.  You  can 
 customise your own welcome sample using the following easy procedure:

 1 Create a sample using Record at around 10KHz
 2  Save the sample from the disc menu under the filename WELCOME.SAM,  making 
 sure it's in the same folder from which you run MAESTRO.PRG

 Every time you now load STOS Maestro it will pick up your sample and play it. 
 If  this  becomes  annoying then just remove the WELCOME.SAM  file  from  the 
 folder.

 Now you know everything there is to know about STOS Maestro - Have fun!


  --------------------------------------------------------------------------
 | 2: Disco, Phaser and DEMOS                                               |
  --------------------------------------------------------------------------

 STOS Maestro disco unit

 The STOS Maestro Disco unit is a real- time digital delay programme. You  can 
 load it directly from disc by double -clicking on DISCO.PRG or from the  STOS 
 loading   screen   by  selecting the 2 key on your Atari  ST.  You  will   of  
 course 
 need  the STOS sampler cartridge to use this programme.
   Make  sure your ST is switched off before plugging the cartridge  into  the 
 ST's cartridge port. Plug a sound source into the cartridge. To hear  exactly 
 what  Disco does, it will help if you have control over the duration  of  the 
 sound  -  a  microphone or musical keyboard is ideal. If you  intend  to  use 
 music,  then  compose a piece which is fairly simple. Once  you  hear  what's 
 going  on  you can try it out on the 1812 Overture! Disco is a  digital  echo 
 machine  but  unlike the echo function in STOS Maestro it only plays  back  a 
 single echo at a time. However the delay time is fully under your control and 
 can  be in the range 0 -9.99 seconds. Disco plays the original sound as  soon 
 as it enters the cartridge and then it plays it again after the delay period. 
 It's a continuous process so the delayed sound will be heard at the same time 
 as  the  original  sound - trailing behind a little. This  can  produce  some 
 fascinating overlapping effects.

 Controlling Disco
 -----------------
 Disco is controlled with the function keys which are mainly used to alter the 
 delay:
  ------------------------------------------------------------------------- 
 |  Function key  |                    Effect                              |
 |-------------------------------------------------------------------------| 
 |  F1            |   Increased by 10 milliseconds (100th of a second)     |
 |  F2            |   Decreased by 10 milliseconds                         |
 |  F3            |   Increased by 100 milliseconds (10th of a second)     |
 |  F4            |   Decreased by 100 milliseconds                        |
 |  F5            |   Increased by 1 second                                |
 |  F6            |   Decreased by 1 second                                |
 |  F7 - F9       |   Pauses the display when held down                    |
 |  F10           |   Press twice to reset and default back to Desktop     |
  -------------------------------------------------------------------------

 You  can  change the delay time as music is playing through  the  unit.  Very 
 short  delays  will  produce a chorus effect which "thickens"  the  sound  or 
 longer delay times sound very effective if you can match the delay setting to 
 the  beat  of the music. Alternatively, offsetting the  delay  time-a  little 
 faster  or slower than the beat-can produce interesting effects, too, as  the 
 music and the repeat move out of sync with each other. Try it with any  music 
 of a rhythmic nature. It works extremely well with electronic music and  many 
 of Jean Michel Jarre's tunes have suffered at the hands of (or been  enhanced 
 by?)  the Disco programme. The central area of the screen produces a  graphic 
 display (spectrum analyzer) of the sound entering the cartridge port. Plug in 
 some music, turn the lights down, pump up the volume, watch and relax.

 The STOS Phaser Program
  The  STOS  Phaser is a small utility which we have included on  the  program 
 disc  as  an  extra.  Although it's a simple  program  it  can  produce  some 
 fascinating  effects.  Load STOS Phaser directly by  double-clicking  on  the 
 PHASER.TOS file or by loading it via STOSM.PRG.
  Warning  in  order to use the phaser you require the  STOS  Maestro  sampler 
 cartridge.  Make  sure your ST is switched off before plugging  the  hardware 
 into your ST's cartridge port.
 Phasing  is a very popular effect especially in electronic music, producing  a 
 sort of sweeping effect. Play some music and listen for yourself. If you want 
 to  know  what  a phaser actually does to a sound and how  it  produces  it's 
 effects you need to know a little about waveforms. A detailed explanation  is 
 beyond  the scope of this manual and it's not strictly necessary-you can  use 
 the  programme without knowing the theory behind it. However, if you  want  a 
 visual  analogy,  think  of  a zebra walking behind  a  black  garden  fence- 
 sometimes  you  see  different pits appearing and disappearing  in  a  cyclic 
 fashion.  A  phaser  does  a similar kind of thing  to  the  harmonics  of  a 
 sound.  Harmonics are the particles of a sound which make it  bright,  hollow 
 brassy  and  so on. As it sweep through the harmonics, the tone  of  the  sound 
 Changes.  You  will  hear the effects of the phaser beat  with  sounds  which 
 contain lots of harmonics such as brass and strings. Flutes, on the other hand, 
 don't  contain  many  harmonies so there is less for  the  phaser  to  sweep 
 through.
  Controlling The Phaser
  The phaser is very easy to control - like the disco it only uses the function 
 keys.
  f1 Increase the phaser key by one 
  f2 Decrease the phaser key by one
 The  phaser  speed  determines  how quickly the  can  be  very  tranquil  and 
 relaxing. At a faster speeds it can be quite hectic.
  f3 Increase the phaser depth by one
  f4 Decrease the phaser depth by one
 Phaser  depth is the degree or the amount of sweep. A low or shallow  setting 
 can  produce a very subtle effect. At greater depths it really rakes  through 
 those harmonies.
  f5 Select phaser sweep- SWP
  f6 Select phaser forward sweep- FDW
  f7 Select phaser backward sweep- BWD
 These  keys determine the direction of the sweep:f5 (up and down),  f6  (down 
 only ) and f7 (up only).
  f8 Turn phaser off
  f9 Turn phaser on
  f10 Reset computer and default to the Gem Desktop (must be pressed twice  to 
 work)
 Try out the Phaser by playing some of your favourite pieces of music  through 
 it-  using  a  fairly  low depth and slow speed for  a  subtle  effect,  then 
 increase both gradually to taste.
 The DEMO. TOS Files
 If one of your Atari floppy disc drives is double sided then you will be able 
 to  run these demos. Simply double click on a DEMO.TOS icon to play  a  tune. 
 The  two STOS Maestro discs have a special dual format- single  drive  owners 
 can still use the discs but won't be able to access the demos. The  programme 
 run  from side one then load up data from side two of each disc. Turn up  the 
 volume for an example of what can be achieved with STOS Maestro.

 3:STOS MAESTRO BASIC INTERFACE 
  Installing The STOS Basic Extension File
 Before you can access the sampler from Basic , you first need to install  the 
 new commands onto your current STOS language disc. Load up STOS Basic, insert 
 the STOS Maestro programmes disc and enter the following command:
   LOAD "\BASIC \INSTALL.BAS"
 Once  this  has loaded, you should place a copy of your  STOS  language  disc  
 into drive A and type:
                         run
 The  new Maestro extension can now be installed onto all your copies of  STOS 
 Basic  by  pressing  the  E key. Select a STOS folder  to  update  using  the 
 resulting  file  selector. Once inside a STOS folder press  return-  the  new 
 extension file will now be saved into the STOS folder. Since the installation 
 holds  all the extension commands in a STOS memory bank, no disc swapping  is 
 required.
 If you own a copy of the STOS compiler, you should now place your back-up  of 
 the  compiler  disc  into  drive A and  press  C.  The  appropriate  compiler 
 extension can  now be installed into the COMPILER folders in the same  manner 
 as  above.  You can add sampled sounds to your Basic programmes  and  compile 
 them in the normal way.
 The Maestro Accessory
 A  special  memory bank system is used by the STOS Basic  extension  to  hold 
 samples. THis makes loading in samples and playing them child's play. To make 
 life  as  easy  as possible we've devised a  powerful  accessory  capable  of 
 generating sample banks from pre-recorded sample files. 
 This  combines up to 32 separate samples in a single memory bank,  which  can 
 then be incorporated directly into your STOS Basic programs. You can enter it 
 from the Maestro disk with a line like :
     accload "\basic\maestro"

 Here is a breakdown of the various menu options.

 STOS MENU
 About  Bank  Creator : This displays a copyright message. Click on  the  left 
 mouse button to return to the main menu screen.
 Quit  : Exits back to your current program. Warning! Don't call  this  option 
 without saving your sample bank first!
 Quit  & Grab : Grabs the current samples installed into the ST's memory,  and 
 places  them  into  bank  5 of your current  program.  This  option  is  only 
 available if Maestro has been loaded as an accessory.

 DISK MENU : The disk menu allows you to load and save samples onto the disk.
 Load SAMPLE.??? : Loads a sample into bank number 5. These samples are  those 
 which  have been directly imported from the STOS Maestro Plus  cartridge  (or 
 compatible).  The Maestro accessory can be use with the output of most  sound 
 samplers  currently  available  for the Atari ST. This allows  you  to  enter 
 samples from many commercial games. Look for files with extensions like .SAM, 
 .SMP or .SND. Feel free to experiment  with this option as much as you  like. 
 The worst thing that can happen in practice is that the sample will not load.
 Load  SAMPLE.MBK  :  This enters a memory bank previously  created  with  the 
 Maestro accessory.
 Load SAMPLE FOLDER : Loads an entire folder full of samples into memory. This 
 option is especially useful when using the disk, as it allows you to  install 
 all of a folder's contents into a single memory bank in one smooth operation.
 Save SAMPLE.MBK : Saves all the samples currently installed into memory. This 
 data can be subsequently loaded for use by the SAMPLAY and SAMMUSIC commands.

 SAMPLE MENU 
 Delete Sample : Deletes one of the 32 possible samples from the ST's  memory. 
 The sample to be erased is indicated using the number from 1 to 32.
 Rename : Changes the name of one of the samples currently installed into  the 
 memory.
 Play  Sample  :  Plays  one of the samples which has  been  loaded  into  the 
 accessory. Before the sample is played, you will be requested for the  speed. 
 This should be input as a number from 5 to 22.


 MAESTRO TUTORIAL

 We'll  now show you how the various features of the Maestro accessory can  be 
 actually used. Start off by loading the accessory from the Maestro disk  with 
 :

     dir$="\basic"
     accnew:accload "maestro"

 First enter the accessory from the Help menu by typing <HELP><F1>. Then place 
 the samples disk into drive A and select the LOAD SAMPLE.??? option from  the 
 disk  menu. This presents you with a standard STOS file selector. Now load  a 
 sample  by clicking on the SOUND folder, and choosing the file  EXPLSION.SAM. 
 You can play this sample from the Sample menu using a speed setting of around 
 10.
 This process can now be repeated for the samples LAZERGUN and PISTOL.  Insert 
 a  blank  disk into drive A and save these samples with the  SAVE.MBK  option 
 from  the disk menu. Use the filename EFFECTS.MBK for this purpose. Now  exit 
 to the STOS Basic editor with Quit and type :

     load "effects.mbk":rem Load samples into bank 5

 These samples can be played from STOS Basic using the lines :

     click off:sound init:rem initialise sound chip
     samplay 1:rem Play Explosion
     samplay 2:rem Laser
     samplay 3:rem Gunshot

 We'll  now  show  you how you can load an entire folder full  of  samples  in 
 exactly  the same way. Call up Maestro using <HELP><F1>, and select the  Load 
 Folder option from the Disk Menu. When the file selector appears, access  the 
 VOICES folder in the normal way. Now move the mouse pointer over the filename 
 box and enter the text : SAM
 The  contents of the voices folder will now be automatically loaded into  the 
 ST's  memory. You can then save the data under the filename of VOICES.MBK  by 
 placing a blank disk into drive A and calling the SAVE.MBK option.
 Finally  choose  the  Quit option to re-enter STOS Basic  then  type  in  the 
 following program.

     load "voices.mbk"

     10 click off:sound init:samspeed auto
     20 for i=1 to 11
     30 samplay i
     40 wait key
     50 next i

 This pages through each of the 11 voices stores in memory bank number 5.


 THE DRUM MACHINE

 In  order  to illustrate the possible applications of this package,  we  have 
 included a simple Drum Machine on the Maestro disk. This can be loaded  using 
 the line :

     load "\basic\drums.bas"

 When  you run the program, you are presented with a picture of a drummer  and 
 his dog. The action of the various instruments can be controlled through  the 
 keyboard  numbers from one to six. As you can see, some of these  instruments 
 are fairly unusual!
 Another feature is the R option which allows you to record long sequences  of 
 drum  beats into the ST's memory. This performance can be interrupted at  any 
 time using the space-bar. Your composition can now be replayed by pressing P. 
 Notice  how the program has cleverly preserved the exact timing of your  key 
 presses. 
 The  Drum Machine was written entirely in STOS Basic. You can therefore  list 
 the  program  to the screen or the printer in the normal  way.  Interestingly 
 enough,  the actual program is remarkably simple. The samples for  the  drums 
 are held in bank number 5, and the recording itself is stored in bank 6. Each 
 individual  sound corresponds to a single entry in bank 6, with the  gaps  in 
 your music being represented by a Chr$(0)

 Here are a few ideas for possible extensions :

 1.  Replace the drum samples in bank 5 with some of your own.  Remember  that 
 these  samples  should first be converted into the correct format  using  the 
 Maestro accessory.
 2.  Introduce  the ability to change the pitch of a note  during  play.  This 
 could be generated by assigning a row of keys to particular notes. You  could 
 then  simply replace the SAMPLAY instructions with the  appropriate  SAMMUSIC 
 commands.
 3. Extend the number of available instruments. It's possible to add up to  32 
 different instruments to the drum machine.
 4. Add the ability to load and save sequences on the disk. This would involve 
 saving bank 6 using the BSAVE command from STOS Basic.
 5. Allow the user to speed up or slow down drum patterns he has recorded.


  --------------------------------------------------------------------------
 | 4 : STOS MAESTRO COMMANDS                                                |
  --------------------------------------------------------------------------

 STOS Maestro instructions

 The  STOS Maestro extension includes a number of powerful instructions  which 
 allow  you  to incorporate samples sounds directly into your own  STOS  Basic 
 programs. A demonstration of how these commands are used can be found in  the 
 programs PLAYER.BAS and DRUMS.BAS on the STOS Maestro program disk.

 The Playback Commands

 These  commands  are used to play back a previously  generated  sound  sample 
 within  the STOS Basic system. Any programs which use these commands can  run 
 independently of the STOS Maestro Plus cartridge. 

     SOUND INIT (Initialise the ST's sound chip)

 The SOUND INIT command kills any existing sounds and prepares the sound  chip 
 for use by the sampler instructions. It is normally called at the start  of 
 a program like so.

     10 click off:rem switch off keyboard clicks
     20 sound init:rem initialise sound chip

 The  keyboard click will interfere with the sampler system. It  is  therefore 
 necessary to turn of the keyboard click when using the sampler.

     SAMPLAY (play a sample from the current memory bank)

 SAMPLAY  plays  one of the 32 possible samples stored in the  current  memory 
 bank (normally bank 5). N is the number of the sample, ranging from 1 to 32.

 Example:
     load "effects.mbk"

     click off:sound init:samspeed auto
     samplay 1:rem plays an explosion
     samplay 2:rem laser beam
     samplay 3:rem gun

 This  example uses the EFFECTS.MBK file created in the tutorial on  the  STOS 
 Maestro accessory. These samples are played back using the interrupts and are 
 completely  independent of the rest of the STOS system. This means  that  you 
 can  happily  add  sound effects to an arcade game such  as  Zoltar,  without 
 slowing down any of the action.
 Note that only a single sample can be played at any one time. So if you start 
 a  new  sample  before the existing one has completed, the  old  sample  will 
 immediately be replaced.
 It's  possible  to  exploit this feature to produce a  number  of  intriguing 
 effects. Take the following example :

     load "\voices.mbk"

     10 click off:sound init:samspeed auto
     20 for i=1 to 5
     30 samplay i:wait 5
     40 next i

 This  generates a noticeable stutter in the sampled voice. VOICES.MBK  is  an 
 example file created in the section on the Maestro accessory. It contains the 
 entire contents of the VOICE folder on the STOS disk. One minor limitation of 
 the  SAMPLAY  instruction is that it is unable to work alongside any  of  the 
 STOS  music functions. If your program uses music, this should  be  suspended 
 with MUSIC FREEZE before a sample is played, then restarted after the  sample 
 has been completed.

 SAMSTOP (Stop the current sample)

 The SAMSTOP command terminates all current sampling operations.

 Example:

     reserve as data 6,12000

     bload"A:\sound\explsion.sam":rem load a sample from the samples folder

     10 click off:sound init:samspeed auto
     20 samraw start(6),start(6)+length(^):rem plays a sample
     30 wait key:samstop

 SAMSPEED (Set the sampling rate)

     SAMSPEED n
 SAmspeed  enters  the  rate which will be used  for  any  subsequent  sampler 
 commands. N can range between 5 and 22KHz, with 10 KHz as the default.

 Example:

     load "voices.mbk":rem created with MAESTRO.ACB

     10 click off:sound init
     20 for i=5 to 22
     30 samspeed i:samplay 1:wait 20
     40 next i

 Incidentally, while the STOS Maestro Plus cartridge is capable of working  at 
 speeds  of up to 32 KHZ, you are currently restricted to a maximum of 22  KHz 
 in your STOS Basic programs. In order to play 32 KHz samples from STOS  Basic 
 you  will need to use MAESTRO.PRG and call the Pack option from the FX  Menu. 
 The compressed sample can then be played at a speed of 16Khz from STOS BAsic. 
 It's  not  32KHz but it's the only alternative - STOS is  too  busy  handling 
 sprites  and all the other interrupts to play back samples at a  rate  faster 
 than 22 KHz.

 SAMSPEED AUTO (Enter automatic sampling mode)

 SAMSPEED  AUTO  automatically selects the appropriate sample  speed  for  the 
 current  sample. The automatic sampling mode expects the speed of the  sample 
 to be encoded into the current memory bank during the recording process. This 
 information  is  included with all samples produced using  the  STOS  Maestro 
 sampler programme. However if you try to use this option in conjunction  with 
 samples created from another source, such as the SAMRECORD function, a syntax 
 error will be generated.
   Also  note that automatic is effectively canceled the next time you  change 
 the sampling rate with SAMSPEED.

 Example:

    load"voices.mbk":rem Load some sound effects
    10 click off:sound init
    20 print"Default speed":samplay 1
    30 print"Hit a key to continue":wait key
    40 samspeed auto:rem Set appropriate speed automatically
    50 print"Recorded speed":samplay 1
    60 wait key

 SAMSPEED MANUAL (Exit automatic sampling mode)

 SAMSPEED  MANUAL exits from automatic playback mode. It  immediately  returns 
 the  sample speed back to the rate which was set by the most recent  SAMSPEED 
 n command in the programme.

 Example:

    load"voices.mbk":rem Loads some sound effects

    10 click off:sound init
    20 samspeed 20:rem Set very fast speed
    30 print"20 KHz":samplay 1
    40 print"Hit a key to continue":wait key
    50 samspeed auto:rem Set proper speed
    60 print"Recorded speed":samplay 1
    70 wait key:samspeed manual:rem Set samspeed back to 20KHz
    80 print"20KHz again":samplay 1:wait key


 SAMMUSIC (Play sample as a note)

    SAMMUSIC n,'note'

 The SAMMUSIC instruction allows you to alter the tone of a sample when it  is 
 played.  It's specifically intended for samples which represent some sort  of 
 musical  instrument.  The  effect  is to widen the  scale  of  the  sound  to 
 encompass the full range of musical notes.
   N  can be any one of the 32 possible samples stored in the  current  memory 
 bank.

 'note' must be a string containing one of the following notes:

    C,C#,D,D#,E,F,F#,G,G#,A,A#,B

 The current pitch of the sample is assumed to be middle C.

    Example:

    load"voices.mbk":rem Load some effects created previously

    10 click off:sound init
    20 for i=1 to 12
    30 read n$:print"Key";N$:sammusic 3,n$
    40 wait key:rem Wait for the voice to be finished
    50 next i
    60 data "C","C#","D","D#","E","F","F#","G","G#","A","A#","B"

   A  better  example of SAMMUSIC can be found in the file PLAYER.BAS  on  the 
 STOS  maestro  programme disc. This lets you load a sample into  memory,  and 
 then  'play' it from the keyboard. PLAYER assumes that the sampled  found  on 
 the  disc  is in raw form. It's therefore possible to load  samples  straight 
 off the samples disc. However, don't try to input .MBK files created with the 
 STOS  Maestro  accessory  as  you will generate an  error  message  from  the 
 programme.

 SAMLOOP ON (Repeat a sampled sound)

 After  this  command  has been performed, any sample  which  is  subsequently 
 played  using the SAMPLAY, SAMMUSIC and SAMRAW functions will be  continually 
 repeated from beginning to end.

    reserve as data 6,12000
    bload"A:\sound\explosion.sam",6:rem Load a sample from the samples disc
    
    10 click off:sound init:samspeed auto
    20 samloop on
    30 samraw start(6),start(6)+length(6)
    40 print"Press a key to end"
    50 wait key:samstop:samloop off:click on

   Like all the sampling commands, SAMLOOP is accomplished using an  interrupt 
 routine.  So  once you have started the loop your programme can get  on  with 
 more important work, and forget about the sampler completely.


 SAMLOOP OFF (Exit from a sample loop)

 The  SAMLOOP  OFF  command instructs the sample routine to  play  any  future 
 samples  exactly once. This instruction has no effect on the sample which  is 
 currently being played. If you wish to halt an existing sample you will  need 
 to use the SAMSTOP directive instead.

 Example:

    reserve as data 6,12000
    load"A:\sound\explosion.sam",6:rem Load a sample from the samples disc
    
    10 click off:sound init:samspeed 10
    20 samloop on:rem Repeat the next sample
    30 samraw start(6),start(6)+length(6):rem Play sample
    40 print"Press a key to end"
    50 wait key:samstop:samloop off:rem Turn off looping
    60 samraw start(6),start(6)+length(6):rem Play a single shot

 SAMDIR FORWARD (Play a sample from start to finish)

 Normally  all samples are played back in the direction they  were  originally 
 recorded. However you can change this using the SAMDIR BACKWARD command.

 SAMDIR BACKWARD (Play a sample backwards)

 This  reverses  the action of all future playback  commands.  Any  subsequent 
 samples will now be played backwards until canceled by using SAMDIR FORWARD.

 Example:

    reserve as data 6,10000
    bload"A:\voice\gameover.sam",6:rem Load a sample from the samples disc
    
    10 click off:sound init
    20 samdir backward
    40 samraw start(6),start(6)+length(6)
    50 wait key:samstop
 
   The  above  programme plays the phrase "game over" back to front.  You  can 
 also  call  the  SAMLOOP command with a reversed sample.  Add  the  following 
 lines to the above example:

    30 samloop on
    55 samloop off

   Although  SAMDIR  may  seem  rather  pointless  at  first,  it's   actually 
 surprisingly useful. You can, for instance, create a convincing impression of 
 an "alien" language, by simply reversing normal speech, and then altering the 
 playback speed. This technique was used to great effect in the radio  version 
 of The Hitch-hiker's Guide to the Galaxy.


 SAMSWEEP ON (Repeatedly play a sample forwards and backwards)

 The  SAMSWEEP command is ideal for the generation of 'swishing'  noises  like 
 those  produced by an aeroplane. The effect is to repeatedly cycle  a  sample 
 forwards  and  backwards. Note that, like SAMLOOP, the sweeping  action  only 
 takes effect from the next sample which is played.

 Example:

    reserve as data 6,784
    bload"A:\sound\swosh.sam",6:rem Load a sample from the samples disc
    
    10 click off:sound init
    20 samsweep on:rem Start sweeping
    30 samraw start(6),start(6)+784
    50 wait key:samstop

 SAMSWEEP OFF (Stop sweeping effect for the next sample)

 This removes the sweeping effect from any sample which is subsequently played 
 with  the SAMPLAY, SAMMUSIC, SAMRAW instructions. Like SAMLOOP OFF it has  no 
 effect on the sample which is currently being performed.

 SAMRAW (Plays samples straight from memory)

    SAMRAW start,end

 Plays  a  raw sample stored from addresses start to end. Raw samples  can  be 
 placed anywhere in memory. So it's perfectly possible to load a sample into a 
 string, and then subsequently manipulate it with normal string functions.

 Example:

    10 SOUND$=string$(chr$(0),12000)
    20 bload"\VOICE\GAMEOVER.SAM",varptr(SOUND$)
    30 samraw varptr(SOUND$),varptr(SOUND$)+len(SOUND$)
    40 wait key
    50 rem Chop the word "over" from "game over"
    60 OVER$=right$(SOUND$,8000)
    70 samraw varptr(OVER$),varptr(OVER$)+len(OVER$)

 Raw  samples  can also be looped, reversed and swept  using  the  appropriate 
 sampler commands.

 Example:

    10 reserve as work 8,100000:rem Reserve 100k to hold samples
    15 click off:sound init:samloop off:samsweep off
    20 F$=file select$("*.sam","Load sample to play")
    30 if F$=""then end
    40 open in#1,F$:L=lof(#1):close#1:rem Get length of sample
    50 bload F$,8:rem Load sample
    60 input"Playback speed";s
    70 if S<5 or S>22 then print"Invalid Speed":goto 50
    80 samspeed S
    90 samraw,start(8),start(8)+L
    100 print"Hit a key to continue":wait key:goto 20


 SAMBANK (Select current bank for SAMPLAY and SAMMUSIC commands)

    SAMBANK n

 N  is a number from 1 to 15 specifying a STOS memory bank to be used  by  the 
 sampler.
 As a default, the SAMPLAY and SAMMUSIC operations expect a list of previously 
 created samples to be available from memory bank number 5. Unfortunately this 
 can  cause  serious problems for anyone wishing to add sampled  sound  to  an 
 existing programme.
  Supposing you wanted to include sound effects in a programme such as Zoltar. 
 In  this  case,  you can't place the samples in bank 5, as  this  is  already 
 allocated  to  one of the screens. You therefore need to change  the  current 
 sample bank with SAMBANK. See the section called Adding samples to your games 
 for more details of this procedure.
   Another application is to allow you to incorporate more than the maximum of 
 32 samples in a STOS Basic programme.

 Example:

    load"effects.mbk",5
    load"voices.mbk",6

    10 click off:sound init:samspeed auto
    20 sambank 6:rem Use bank number 6
    30 for i=1 to 5
    40 samplay i:print"Hit a key to continue":wait key:rem Press a key
    50 next i
    60 sambank 5:rem Set bank back to 5
    70 goto 30:rem Playback 5 sound effects

 SAMCOPY (Copy a sample from one place to another)

    SAMCOPY start,end,dest

 This is just a special version of the standard STOS copy command which allows 
 you  to  start  copying from an odd location - that  is,  from  any  location 
 whether  it  is  on a word boundary or not. SCREENCOPY  only  works  on  word 
 boundaries for reasons of speed.
 Start  is the beginning of the address which is to be moved. It can take  any 
 value you wish, and it does not have to be even.
 End is the address of the end of the sample which is to be copied.
 Dest is the destination of the new sample.

 Example :

      10 reserve as work 10,30000:rem reserve 30K
      20 input "place the sample disk in drive A";a$

      30 samspeed 12
      40 dir$="A:\VOICE\"
      50 bload "gameover.sam",10:rem load a sample
      55 rem make a second copy of the sample into bank 10
      60 samcopy start(10),start(10)+10000,start(10)+10001
      65 rem play the entire sample
      70 samraw start(10),start(10)+length(10)


 SAMPLACE (Return the current position in the sample)

      p=SAMPLACE

 The  SAMPLACE function retrieves the present position in the sample which  is 
 currently  being played. This number is relative to the start of the  sample. 
 The  possible values taken by SAMPLACE range from 0 to the total sample  size 
 (in bytes).
 Imagine you had a sample which was 20K long. If you were to get the  position 
 at the halfway point, a value of 10000 would be returned.

      10 rem simple tape counter
      20 click off:sound init:curs off:hide
      30 input "Sample number";N
      40 input "Sample rate";s
      50 samspeed s:samplay n
      60 XC=xcurs:YC=ycurs:P=samplace/1000:print"Tape counter:";P;" ";
      65 locate XC,YC: if inkey$="" then 60
      70 goto 30

 The  SAMPLACE function is often used to determine when a sample has  finished 
 playing.  This  information  is essential if you  wish  to  combine  melodies 
 produced from the MUSIC accessory with sampled sounds.

 Example :

      load "music.mbk";rem load from the STOS Basic accessory disk
      load "effects.mbk":rem created previously with MAESTRO accessory

      10 click off:music 1:tempo 30
      20 if rnd(1000)<>3 then 20:rem produce random sound effects
      30 music freeze:sound init:samplay 1
      40 if samplace=11842 the samstop:music on:goto 20:rem sample 10K long
      50 goto 40


 THE SAMPLER CONTROL COMMANDS

 These  functions  are  designed solely for use with  the  STOS  Maestro  Plus 
 cartridge  (or equivalent). They give you complete control over  the  various 
 features provided by the sampler and allow you to create customized  sampling 
 programs  in  STOS  BAsic.  This opens the door to  a  bewildering  range  of 
 possible applications, form speech synthesizers to simple speech  recognition 
 systems!

 SAMRECORD (Records a sample from the sound cartridge)

      SAMRECORD start,end

  SAMRECORD starts the sampler running, and records a sample using the current 
 speed  setting. the new sample is entered directly into the memory  locations 
 between start and end. While the sample is being recorded, the sampled  sound 
 is continuously played through your TV or monitor.
 Start is the address of the start of the sample
 End is the address of the end of the sample. When this point is reached,  the 
 sampling process is automatically terminated.

 Samples  created  using this function can be save to the  disk  and  accessed 
 directly from either the Maestro program or the SAMRAW command.

 Example :

      10 rem recording a sample
      20 click off:sound init
      30 reserve as work 6,1024*50; rem reserve 50K for sample
      40 input "SAmple Speed";s
      50 if S<5 or S>22 then print "Invalid speed";goto 40
      60 samspeed S
      70 print "Prepare your recorder"
      80 samthru:input "Hit return to start sampling";R$
      85 print "REcording sample"
      90 samrecord start(6),start(6)+1024*50
      100 if samplace<49999 then 100:rem Wait until recording finished
      110 print "Playing back sample"
      120 samraw start(6),start(6)+length(6):rem play sample
      130 if samplace<1024*50 then 130:rem wait until playback finished
      140 input "Play again Y/N";A$:If A$="y" or A$="Y" then 120
      150 goto 40

 As  you  might expect, the sampling rate can be set up using the  SAMSPEED  n 
 instruction, and the sampling can be aborted at any time with SAMSTOP.
 It's  important to note that this instruction does store the recording  speed 
 as part of the sample. So if you try to play back a sample using the SAMSPEED 
 AUTO instruction, an error will be generated.

 SAMTHRU (Play the input from the sampler through the monitor's speaker)

 The  SAMTHRU  command simply pipes the current sound output through  your  TV 
 speaker.  This allows you to listen to the input without creating  an  actual 
 sample.

 Example:

 Place a tape in your recorder and press PLAY. Now type:

     click off:sound init:samthru

 This THRU mode can be interrupted at any time using the SAMSTOP command.

 SAMPLE (Read the sample value directly from the cartridge port)

     s=SAMPLE

 S holds a value from -127 to +127 which represents the volume of the sound in 
 a digital form. The STOS Maestro Plus cartridge reads this value thousands of 
 times  per  second  and uses it to create a  digital  representation  of  the 
 sampled sound.

 Example:

     10 click off:sound init:l=0:mode 1:cls:physic:cls back
     20 ink 1:hide:samthru
     30 S=sample/2:draw l,100 to 100-S:incl
     40 if l>=640 then l=0:cls:physic:goto 30 else 30


 Initialisation
 --------------
 This  sets  up the screen and reserves space for your samples in one  of  the 
 STOS Basic memory banks.

     10 rem Sampler
     20 mode 0:click off:sound init:rem Initialise sound chip
     25 rem Set up screen
     30 cls physic:cls back:windopen 21,5,38,19,0
     50 rem reserve maximum available memory
     60  MEM=free-50000:if  mem>0 then reserve as work  6,MEM  else  print"Not 
 enough     memory":end

   Most of the above code is fairly obvious but pay special attention to  line 
 60. This reserves all the currently available memory for the sample,  leaving 
 50k for the programme itself.


 Entering the user's commands
 ----------------------------
 The  input routine forms the heart of your sampling programme and  interprets 
 the  commands as they are entered by the user. You can make this  routine  as 
 simple or as complex as you wish. Commands can be entered using the keyboard, 
 STOS menus or the mouse. Here is a simple example of input routine.

     65 rem Keyboard input routine
     70 input"Input command";C$:C$=upper$(C$)
     80 if C$="K"then gosub 490:goto 70:rem Set speed
     90 if C$="P"then 170:rem Play sample
     100 if C$="R"then 250:rem Record sample
     110 if C$="T"then 320:rem Thru sample
     120 if C$="L"then 450:rem Load sample
     130 if C$="S"then 370:rem Save sample
     140 if C$="Q"then samstop:default:end
     150 print"Command not recognised":goto 70

   We'll  now go through each of these commands in turn and show you how  they 
 can be implemented in STOS Basic.

 Setting the sample speed
 ------------------------

     490 rem Set speed
     500 input"Sample speed";S
     510 if S<5 or S>22 then samstop:boom:goto 500
     520 samspeed S
     530 return

   The  SET SPEED routine uses samspeed to set a sampling rate between  5  and 
 22KHz. Note the check in line 510.

 Recording a sample
 ------------------

     240 rem Record sample
     250 if S=0 then gosub 490
     260 gosub 550:rem position
     270 samrecord start(6)+BEGIN,start(6)+FINISH
     280 gosub 620:samstop:rem Display counter
     290 input"Repeat sample ?";A$:if upper$(A$)="Y"then 270
     300 input"Reset interval ?";A$:if upper$(A$)=Y"then 250
     310 goto 70

   This routine uses the SAMRECORD function to enter a sample into memory. The 
 gosub  at  line  250 is just to call to the set speed routine  I  showed  you 
 earlier. This forces the user to choose a speed before recording the  sample. 
 The  size and position of the recording is set using a special  Set  Interval 
 routine like so:


     540 rem Get starting point
     550 input"Starting point";ST:BEGIN=ST*1000
     560  if  BEGIN<0  or  BEGIN>MEM then print  "Number  must  be  between  0     
 and";MEM/1000:goto 550
     570 input"Ending point";SP:FINISH=SP*1000
     580   if  FINISH<=BEGIN  then  print"End  point  must  be  greater   than 
 start":goto     570
     590  if FINISH>MEM then print"Number must be between 0  and"MEM/1000:goto 
 570
     600 return

   Each  unit corresponds to a thousand bytes of the sample. So a start  point 
 of  5  and  an end point of 50 will record from  locations  START(6)+5000  to 
 START(6)+50000.  Another useful routine is a Tape Counter which  continuously 
 displays the current sampling position.

     610 rem Print current position
     620 curs off:hide
     630 XC=xcurs:YC=ycurs:P=samplace/1000+ST:print"Tape counter:";P;" ";
     635 if P<SP then locate XC,YC:goto 630
     640 curs on:show
     650 return

 The equation P=samplace/1000+ST, converts the position in the current  sample 
 to the position relative to the entire memory bank.

 Playing a sample
 ----------------

     160 rem Play sample
     170 if S=0 then gosub 490
     180 gosub 550:rem Get position
     190 samraw start(6)+BEGIN,start(6)+FINISH
     200 gosub 620:samstop:rem Display counter
     210 print:input"Play again?";A$:if A$="Y"or A$="y"then 190
     220 input"Reset interval?";A$:if A$="Y"or A$="y"then 170
     230 goto 70

   As  with  the record function, I've added a check for  whether  the  sample 
 speed  has been set previously. This compensates for the lack of  the  sample 
 speed in the recorded sound.

 Playing a sample through the loudspeaker
 ----------------------------------------

 This can be performed using the following code:

     320 rem Thru
     330 input"Press play";A$
     340 samthru:print"Press the spacebar to stop"
     350 if inkey$<>" "then 350
     360 samstop:goto 70


   Finally, we'll add the routines which allow you to save and load samples to 
 the disc.

     370 rem Save sample to disc
     380 F$=file select$("*.*","Save a sample")
     390 if F$=""then 70
     400 gosub 540
     410  if  dfree<FINISH-BEGIN then print"Not enough  disc  space":print"Try     
 again":goto 390
     420 print"Saving ";F$
     430 bsave F$,start(6)+BEGIN to start(6)+FINISH:goto 70

   Note the call to Set Interval routine at 540, which enables you to save any 
 part of the sample independently.

 Loading a sample
 ----------------

     440 rem Load a sample
     450 F$=file select$("*.*","Load a sample")
     460 if F$=""then 70
     470 print"Loading ";F$
     480 bload F$,start(6):goto 70

 Although  the  programme is undoubtedly crude, it's more  than  adequate  for 
 adding  the  finishing touches to samples produced from MAESTRO.PRG  You  can 
 therefore  fine  tune  your samples without having to leave  the  STOS  Basic 
 environment. Feel free to modify it as much as you like for use with your own 
 programmes.

 6:Tech ind

 Adding sampled sounds to an existing programme
 ----------------------------------------------
 If you've been using STOS Basic seriously for any appreciable length of time, 
 you'll  probably  have dozens of programmes which would sound  great  with  a 
 little sampled sound. This is especially true for those wishing to enter  the 
 STOS Gameswriter of the Year competition.
   We'll  now  demonstrate how you can incorporate samples into a  large  STOS 
 Basic programme. In order to keep our examples as realistic as possible we'll 
 use the Zoltar game from the STOS Games disc.
 Switch on your ST and load Zoltar into memory with a line like:

     load"\zoltar\zoltar"

   If  you  list this programme you will be confronted with several  pages  of 
 densely packed instructions.
   The  first  step is to check which banks are currently being  used  by  the 
 programme. You can do this by using the LISTBANK command:

     listbank


     Reserved memory banks:

     1 sprites S:$0E9900 E:$0ED300 L:$003A00
     3 music   S:$0ED300 E:$0ED700 L:$000400
     5 data    S:$0ED700 E:$0EF200 L:$001B00
     6 data    S:$0EF200 E:$0EFF00 L:$000D00

   The precise numbers aren't really important and will vary depending on your 
 system configuration. The only crucial fact is that bank number 5 is  already 
 used  -  this  clashes  with the default memory  bank  used  by  the  samplay 
 instruction.  you  will therefore need to change the  sample  bank  somewhere 
 early in the programme using SAMBANK. In the case of Zoltar the first  unused 
 bank is 7. You can set this at the start of Zoltar like so:

     200 reserve as screen 10:cls 10:sambank 7

   You  can now incorporate the standard pieces of initialisation  code  which 
 will be required by your programme.

     42 click off:sound init:samspeed auto:rem Initialise sound chip

   The  next  phase is to make a list of the various sound effects  which  are 
 currently  used  in  your game. If the programme is one  of  your  own,  this 
 process  will be fairly trivial. But in the case of Zoltar you will  need  to 
 repeatedly  scan  the program with the SEARCH instruction.  The  table  below 
 shows the lines which require changing.

 Breakdown of the sound effects used in Zoltar

          Line   Sound commands                   Purpose

          10465  envel 1,1000   : noise 3,2       Player fires a missile
          10485  envel 4,750    : noise 3,15      Ship fires a missile
          10500  envel 1,4000   : noise 3,31      Attacker destroyed
          10515  envel 1,20000  : noise 3,31      Player destroyed
          10810  envel 1,1000   : noise 3,2       Player fires a missile
          10840  envel 4,750    : noise 3,15      Magedon fires a missile
          10845  envel 1,20000  : noise 3,31      Player destroyed
          10900  voice off      : volume 16   :   Magedon destroyed
                 envel 1,35000  : noise 31

 The  precise  nature of these effects was discovered by simply  calling  them 
 directly  from the editor. Once you have isolated the sound effects  in  your 
 programme you can then choose some appropriate samples from the samples disc. 
 These  raw samples must now be combined into a single memory bank  using  the 
 Maestro accessory.
   You are now in a position to incorporate these samples into your STOS Basic 
 programme.

     load"effects.mbk",7:rem Load effects used by Zoltar


   Now  replace  each  of the NOISE instructions  with  the  relevant  SAMPLAY 
 command.  When  these  have been introduced try running  Zoltar  -  you  will 
 quickly  discover  that  the sampled sounds interfere with the  music.  As  a 
 general rule it's safest to avoid the combination of music with sampled sound 
 altogether.  Any  accesses  to  the MUSIC  instruction  should  therefore  be 
 removed.  This can be simplified by checking through the programme  with  the 
 SEARCH commands.

     1014 music 1
     2005 music off:M=1:T$="Please select option":gosub 11000
     5000 WAVE=1:LIVES=3:SCRE=0:music 1:gosub 10400:music off

  Alternatively, you can halt the music with MUSIC FREEZE before the sample is 
 played,  and  then  restart it using the MUSIC ON  command.  So  the  SAMPLAY 
 instructions could be replaced by:

     music freeze:samplay 1:wait 50:music on

   Unfortunately  this simple-minded approach will only work for  games  which 
 use  interrupt driven sprites used by the majority of STOS Basic  programmes. 
 Zoltar  however, manipulates the sprites solely with the SPRITE  command  and 
 the  game will be halted for about a second after every explosion. Also  note 
 that above technique requires you to resume the music after a sample has been 
 completed. Otherwise the music will fail to resume after MUSIC ON statement.

 Here are a few possible extensions to the Zoltar programme:

 1 Add sampled voices for "GETREADY" or "BONUSPOINTS":See lines 1155 and 10405
 2 Give each possible sound a different sample.

 Finally I'll summarise the various steps in the modification procedure.

 Adding sound to a STOS Basic game
 ---------------------------------

 1  Check for the existence of bank 5. If it is already in use, set the sample
    bank to the next free bank using SAMBANK.
 2  Add the initialisation code to the start of the programme. This will
    typically consist of the  following instructions.

         click off:sound init:samspeed auto

 3  List the various sound effects used and create a bank of replacements
    using the Maestro accessory.
 4  Add the new effects to the appropriate points in your programme.
 5  If your programme is using music you are presented with two possible
    options.
    Either remove the music completely, or halt the music using MUSIC FREEZE
    before a sample is played and resume with MUSIC ON after it has finished.


 Assembly language interface
 ---------------------------
 If  you have a little experience in assembly language, you will be  delighted 
 to  discover that any samples created using the STOS Maestro  Plus  cartridge 
 can be replayed using just a few lines of assembler.
   In order to access these features, you will need to incorporate the  echoed 
 found in the MAESTRO.OBJ file into your programme. This can be loaded at  the 
 end of your programme using the INCBIN directive within your source file.

     sampler incbin"maestro.obj"

   If  your  assembler does not include this facility, you will be  forced  to 
 load  the  object  file  directly from the disc  in  your  assembly  language 
 programme. Full details of the required BIOS calls can be found in any decent 
 ST reference manual.
   Since  the  sampler uses an interrupt routine, it cannot be  guaranteed  to 
 work with any existing interrupts  which access  the sound chip.
   The  calling  procedure  is simplicity itself. First  define  a  number  of 
 important system variables at the start of your programme like so:

 Equates for accessing the routines and variables

     SAMINIT        EQU $000  ; Offset the initialisation routine
     SAMPLAY        EQU $020  ; Offset to the playback routine
     SAMSTOP        EQU $370  ; Offset to the samstop routine
     AUTO           EQU $3A2  ; Offset to a variable holding the AUTO status
     TYPE           EQU $3A8  ; Offset to a variable holding the samplermode
                              ; TYPE(A6)=1 for forward play
                              ; TYPE(A6)=2 for backwards play
                              ; TYPE(A6)=3 for forwards loop
                              ; TYPE(A6)=4 for backwards loop
                              ; TYPE(A6)=5 for sweep
     SPEED          EQU$3AA

     ; Offset to variable controlling the speed. Permissible values
     ; range from 5 to 32 KiloHertz. Note this option only works if
     ; AUTO(A6) is set to ZERO

 Now  load  the  address  of the sampler routine  into  a  convenient  address 
 register.

          lea SAMPLER,a6

 You must then initialise the sound chip using the SAMINIT function.

          jsr SAMINIT(a6)     ; Call routine to initialise sound chip

 Finally enter supervisor mode with a call to SUPER and play your sample with:

          lea SAMPLE_START_ADDR,a0 ; Start address of sample
          move.l #SAMPLE_LENGTH,a1  ; Length of sample in bytes


          lea SAMPLER,a6           ; Address of MAESTRO.OBJ code
          move.w #1,TYPE(a6)       ; Forward play
          move.w #0,AUTO(a6)       ; Set manual mode
          move.w #10,SPEED(a6)     ; Set sample speed to 10KHz
          jsr SAMPLAY(a6)          ; Call playback function

 You can stop this sample at any time using the instructions:

          lea SAMPLER,a6           ; Start address of .OBJ file
          jsr SAMSTOP(a6)

 Here are a couple of Macro definitions which simplify this procedure:

     ; PLAYSAM Play a sample
     ; Usage: playsam SAMPLER,START,END,SPEED
     ; SAMPLER=Start address of MAESTRO.OBJ file
     ; START=Start address of sample
     ; END=End address of sample
     ; SPEED=Speed of sample (in kilohertz)

     SAMPLAY:MACRO LEA\1,a6        ; Get address of OBJ file in a6

          jsr SAMINIT(a6)          ; Init sound chip
          move.l #\2,a0            ; Start of sample in a0.L
          move.l #\3,a1            ; End of sample in a1.L
          move.w #\4,SPEED(a6)     ; Speed of play
          clr.w AUTO(a6)           ; Not auto speed select
          move.w #1,TYPE(a6)       ; Play forwards (TYPE=1)
          jsr SAMPLAY(a6)          ; Call routine

     ENDM                          ; End macro


     ; SAMSTOP Stop a sample
     ; Usage:samstop SAMPLER
     ; SAMPLER=Start address of MAESTRO.OBJ file

     SAMHALT:MACRO

          lea \1,a6
          jsr SAMSTOP(a6)2

     ENDM

   If you use these macros, don't forget to enter supervisor mode first! other 
 languages  which incorporate some form of machine code call command  will  be 
 able  to take advantage of the MAESTRO.OBJ file - simply set up the  relevant 
 variables and call the code.


 STOS Maestro Plus cartridge specifications:
 -------------------------------------------

 Signal to noise ratio             30.48 Dbs
 Maximum frequency                 98.5 KHz (not guaranteed)
 Frequency Selection               Software controlled
 Resolution                        8 Bits
 Linearity                         +/- 0.5 LSB
 Maximum input signal              2.5V RMS (peak to peak)
 Anti-aliasing filter              Yes

 Internal successive approximation logic circuitry.

 Chip conversion activated by ROM-SEL 3 on cartridge port.


******************************************************************
Well, here we are at the end of yet another mammoth (100K+) doc 
brought to you by Sewer Software. Thanks again to Paul who typed 
these docs for us, word for word from the original manual.




Back to STOS BASIC