@DATABASE OctaMED Soundstudio Help

@REM Features Guide: Instruments [part 3 of 3]

@$VER: 2.0 (24.07.96) for Soundstudio V1.01
@AUTHOR Ed Wiles (e.d.wiles@dur.ac.uk)
@HELP OctaMED.guide/Help


@REM S Y N T H S O U N D S


@REM Creating


@NODE f2_cr "Instruments / Creating [Synthsounds]"
@TOC OctaMED.guide/f2
HOW TO...
	@{"      Set up a new synthsound       " LINK f2_cr_1}
	@{"         Create a waveform          " LINK f2_cr_2}
	@{" Transfer between waveform displays " LINK f2_cr_3}

OVERVIEW
The synthetic sound, or `synthsound', is a simpler, less memory-
consuming alternative to the sample. It's made up of one or more
short `waveforms', which can be played in any order and be altered
in volume and pitch by creating a `synthsound script' of simple
commands and values.

To create a synthsound, firstly change the current instrument's
type to Synthetic or Hybrid. Synthetic is the normal synthsound;
Hybrid is a cross between a sample and a synthsound, whereby an
ordinary sample is controlled by a synthsound script. Once this is
done, use the Synthetic Sound Editor to fashion your synthsound.

The waveforms in the synthsound often grow from selecting one of
the `presets', a set of commonly-used waveforms. Choose from a sine
or sawtooth wave, ramp up or down, square wave or random noise.
Alternatively, draw a waveform `freehand' with the mouse. A
suitably-sized porition of a sample can also be copied over from
the sample editor.

Unlike the sample editor, the synthsound editor has two waveform
displays (the big speckled boxes). One, of course, shows the
current instrument's waveforms. The other displays the `temporary
waveform', used as a copy buffer or a spare area in which to try
things out. Waveforms or parts of waveforms can be easily
transferred between the two displays.

NOTES
* Remember that the Synthetic Sound Editor has its own set of menus
  - this can be confusing at first!
@ENDNODE


@NODE f2_cr_1 "Creating [Synthsounds] / How To Set Up A New Synthsound"
@TOC f2_cr
		  HOW TO SET UP A NEW SYNTHSOUND
INTRODUCTION
Of course, the usual instrument type is the sample, so the first
step in creating your synthsound is to select an instrument and set
its type to Synthetic or Hybrid.

Synthetic is the normal synthetic sound. Hybrid is a cross between
between a sample and a synthsound, whereby an ordinary sample is
controlled by a synthsound script, giving great flexibility over
the sample.

To set up a normal synthsound, either select Project menu -> New
Synthsound in the Synthetic Sound Editor, or click Synth in the
Instrument Type window. The Main Control window will show the
instrument size as -Synth-.

To set up a hybrid, load a sample into memory then set its type to
Hybrid. An `H' appears beside the sample's size.

STEPS

EITHER Set up a normal synthsound.

1) Select any instrument.					    @{" How? " LINK F2a.guide/f2_inma_1}

2) EITHER Use the synthsound editor.
   > Display menu -> Synth Editor THEN
   > In the synth editor, Project menu -> New Synthsound

   OR Use the Instrument Type window.
   > Instr menu -> Type OR Main Control window -> Type THEN
   > Click Synthetic

OR Set up a hybrid instrument.

1) Select any instrument.					    @{" How? " LINK F2a.guide/f2_inma_1}

2) Open the Instrument Type window.
   > Instr menu -> Type OR
   > Main Control window -> Type

3) Change the current instrument to a hybrid.
   > Click Hybrid

4) Switch off edit mode. This allows you to play notes with your
   synthsound without accidentally editing the `synthsound script'.
   > Main Control window -> Edit OR
   > (Usually) Press the Esc key

NOTES
* If the current instrument is a normal synthsound, click Edit in
  the Main Control window to open the Synthetic Sound Editor.
@ENDNODE


@NODE f2_cr_2 "Creating [Synthsounds] / How To Create A Waveform"
@TOC f2_cr
		     HOW TO CREATE A WAVEFORM
INTRODUCTION
A synthsound consists of one or more `waveforms', graphical
representations of the instrument's sound. Use the Synthetic Sound
Editor to create these waveforms.

The big speckled boxes in the editor are the `waveform displays'.
The left-hand display shows one of the current instrument's
waveforms; the right-hand box displays the `temporary waveform',
used as a copy buffer and a general doodling area. You can play the
left-hand waveform using the keyboard. (Synthsounds have a 5-octave @{" More " LINK F3.guide/f3_in_3}
range.)

Select a waveform display by clicking on it. Now choose a `preset'
waveform from the Presets menu, or draw directly on to the display
`freehand' with the mouse, or use a combination of both methods.
There are several drawing modes to choose from.

The normal length of a waveform is 128 bytes, the maximum. It can
be any even value between 2 and 128 bytes long, though. The shorter
the waveform, the higher the pitch; in fact, a shorter waveform is
often desirable, as a 128-byte waveform is often rather low. So
that the instrument is `harmonically compatible' with other
instruments, you should use lengths 2, 4, 8, 16, 32, 64 or 128.

STEPS
1) Set up a new synthsound.					    @{" How? " LINK f2_cr_1}

2) If necessary, open the Synthetic Sound Editor.
   > Main Control window -> Edit button OR
   > Display menu -> Synth Editor

3) Usually, the right-hand `temporary' waveform is selected. To
   affect the actual current instrument, select the left-hand
   waveform.
   > Click on the appropriate waveform

4) If desired, change the length of the waveform.
   > Adjust the Length slider

5) If you'll be drawing the waveform `freehand', set the drawing
   mode by using the two cycle gadgets in the Draw Mode section
   (bottom-middle).
   > Set Pixel [normal method] OR
   > Set Line [draw only straight lines] THEN
   > Set Direct [normal method] OR
   > Set Mix [mixes the drawing with the existing waveform]

6) EITHER Select one of the presets. Experiment with all of them to
   discover their shapes.
   > Select one of the first 6 items from the Presets menu

   OR Draw on the waveform freehand.
   > Drag the mouse along a waveform display

NOTES
* Another way to create a waveform is to transfer a suitably-sized
  part of waveform from the sample editor. To fit in the synthsound
  waveform display, the bit of sample must be 128 bytes maximum.

  To do this, mark a range in the sample editor over the part to be @{" How? " LINK F2b.guide/f2_maara}
  transferred, then select Tools menu -> Copy to Synth Editor. The  @{"Where?" LINK Qb.guide/w_saed 81}
  waveform is transferred to the temporary (right-hand) waveform,
  to be used with any synthsound.

* If you make a mistake while drawing, or select anything that you
  don't mean to, just click UNDO (middle) to reverse the effects.

* It's pretty hard to tell which waveform display is selected. Look
  out for the white `range', which only appears on the selected
  display. It may be a thin line at the very start of the waveform.

* The top Draw Mode cycle gadget also selects `range'. In this
  mode, drawing on a waveform display marks a range over an area.   @{" More " LINK f2_raaf_1}
@ENDNODE


@NODE f2_cr_3 "Creating [Synthsounds] / How To Transfer Between Waveform Displays"
@TOC f2_cr
	     HOW TO TRANSFER BETWEEN WAVEFORM DISPLAYS
INTRODUCTION
In the Synthetic Sound Editor, the two big speckled boxes are the
two `waveform displays'. The left-hand display shows one of the
current instrument's waveforms; the right-hand box displays the
`temporary waveform', used as a copy buffer and an area to try out
your latest synthsound-creating technique.

Using five of the buttons between the waveform displays, you can
transfer a waveform to the other display, or swap the waveforms
around. The right-hand waveform can also be mixed with the
left-hand, storing the results in the left-hand display.

STEPS
1) EITHER Transfer a waveform to the other display.
   > Click < Copy [right-hand --> left-hand] OR
   > Click Copy > [left-hand --> right-hand]

   OR Swap the two displays.
   > Click < Swap >

   OR Mix the two waveforms together, storing the result in the
      left-hand waveform.
   > Click <Mix [produces the average of the waveforms] OR
   > Click <Add [adds the waveforms together - there may be
		 `distortion']					    @{" More " LINK F2b.guide/f2_adef_1 28}

NOTES
* If you select or do anything you don't mean to, just click UNDO
  (middle of window) to reverse the effects. You can even use UNDO
  to reverse the effects of an UNDO!

* Copying to the right-hand waveform changes its length to that of
  the left-hand waveform. You can clear it and reset its length to  @{" More " LINK f2_muwa_1-4 40}
  128 by selecting Project menu -> Reset Temp Wave. Select Presets
  menu -> Clear Wave to clear the selected waveform display.

* American users may need to close the SynthEd Script window to
  see the whole right-hand waveform display. Don't worry, the
  window can be reopened when necessary using the Script button.
@ENDNODE


@REM Multiple Waveforms


@NODE f2_muwa "Instruments / Multiple Waveforms"
@TOC OctaMED.guide/f2
HOW TO...
	@{"              Add a new waveform               " LINK f2_muwa_1-4 0}
	@{"               Remove a waveform               " LINK f2_muwa_1-4 11}
	@{"               Select a waveform               " LINK f2_muwa_1-4 21}
	@{"               Clear a waveform                " LINK f2_muwa_1-4 40}
	@{" Make a `transformation' between two waveforms " LINK f2_muwa_5}

OVERVIEW
The synthetic sound, or `synthsound', is a simpler, less memory-
consuming alternative to the sample. It's made up of one or more
short `waveforms', which can be played in any order and be altered
in volume and pitch by creating a `synthsound script' of simple
commands and values.

Although many synthsounds consist of just one waveform, more
advanced synthsounds usually have several. The waveforms can be
played in any order in the synthsound script. Use the buttons below @{" More " LINK f2_sc}
the left-hand waveform display to add, remove or select a waveform.
Clear the current waveform through the Presets menu.

One particular feature connected with multiple waveforms is
`transformation'. Suppose you have a sine wave as waveform number
2, and a ramp up as number 6. You could use transformation to
slowly change your sine wave into a ramp up, throughout waveforms
3, 4 and 5. Especially when a transformation spreads over many
waveforms, this makes for great effects!

NOTES
* There can be up to 64 waveforms in a synthsound. Should be
  enough!
@ENDNODE


@NODE f2_muwa_1-4 "Multiple Waveforms / How To Add, Remove, Select And Clear A Waveform"
@TOC f2_muwa
		     HOW TO ADD A NEW WAVEFORM
STEPS
1) EITHER Add a new waveform after the last one. The new waveform
   is automatically selected.
   > Click New Waveform

   OR Add a waveform before the current one.
   > Select the current waveform THEN				    @{" How? " LINK f2_muwa_1-4 21}
   > Click New Here


		     HOW TO REMOVE A WAVEFORM
STEPS
1) EITHER Remove the very last waveform.
   > Click Delete Last

   OR Remove the current waveform.
   > Select the current waveform THEN				    @{" How? " LINK f2_muwa_1-4 21}
   > Click Delete Current


		     HOW TO SELECT A WAVEFORM
INTRODUCTION
The number of the current waveform is shown in the number box below
the left-hand waveform display; the first waveform is 0. To the
right of this, the current waveform number in hexadecimal, and the
number of the last waveform (in decimal), are shown.

STEPS
1) EITHER Select a particular waveform number directly.
   > Type the waveform number into the number box beside Waveform

   OR Select the previous or next waveform.
   > Click one of the arrow buttons below the left-hand display OR
   > Press Alt-<left> or Alt-<right>

   OR Select the first or last waveform.
   > Shift-click one of the arrow buttons			    @{" How? " LINK F5.guide/f5_usthmo_2}


		      HOW TO CLEAR A WAVEFORM
STEPS
1) Select a waveform display.
   > Click on the appropriate display

2) Clear the waveform.
   > Preset menu -> Clear Wave

NOTES
* Project menu -> Reset Temp Wave clears the right-hand waveform,
  and sets its length to the usual 128.

* To clear the entire synthsound, select Project menu -> New
  Synthsound.
@ENDNODE


@NODE f2_muwa_5 "Multiple Waveforms / How To Make A `Transformation' Between Two Waveforms"
@TOC f2_muwa
       HOW TO MAKE A `TRANSFORMATION' BETWEEN TWO WAVEFORMS
INTRODUCTION
The synthsound editor's `transformation' feature gradually
transforms one waveform into another waveform, by filling in the
intervening waveforms with intermediate states.

Pardon? Let's see it in action! Here's a specific example.

STEPS
1) Set up a new synthsound.					    @{" How? " LINK f2_cr_1}

2) Choose a sine wave for the first waveform (Presets menu).

3) Add another 10 waveforms (New Waveform button 10 times).

4) Choose a square wave (also called `pulse wave') for waveform
   number 10.

5) Mark the starting waveform of the transformation. It doesn't
   matter whether the starting waveform has the lower or higher
   number. Nothing will appear to happen.
   > Waveform menu -> Start Transformation

6) Select the first waveform.					    @{" How? " LINK f2_muwa_1-4 21}

7) Mark this as the ending waveform, and do the transformation.
   The waveform will blink briefly.
   > Waveform menu -> Do Transformation

8) Using the right arrow button, select the intervening waveforms
   one by one, and witness the gradual transformation of a sine
   wave into a square wave.

NOTES
* Transformations make for great effects, but you won't be able to
  hear the other waveforms unless you enter a `set waveform' script
  command for each waveform. There's a quick way to do this.	    @{" More " LINK f2_sc_3 26}
@ENDNODE


@REM Range Affecters


@NODE f2_raaf "Instruments / Range Affecters [Synthsounds]"
@TOC OctaMED.guide/f2
HOW TO...
	@{"          Mark a range          " LINK f2_raaf_1}
	@{"      Move or copy an area      " LINK f2_raaf_2}
	@{"    Remove or clear an area     " LINK f2_raaf_3}
	@{" Make an area one octave higher " LINK f2_raaf_4}
	@{"     Turn an area backwards     " LINK f2_raaf_5}
	@{"  Shift an area left or right   " LINK f2_raaf_6}
	@{"  Change the volume of an area  " LINK f2_raaf_7}
	@{"       `Stretch' an area        " LINK f2_raaf_8}

OVERVIEW
The synthetic sound, or `synthsound', is a simpler, less memory-
consuming alternative to the sample. It's made up of one or more
short `waveforms', which can be played in any order and be altered
in volume and pitch by creating a `synthsound script' of simple
commands and values.

Those familiar with the sample editor will be comfortable with
`range marking', defining an area which is to be affected in some
way. As in the sample editor, ranges can be moved, removed, copied,
cleared, reversed or have their volume changed.

Features unique to the synthsound editor are `doubling', `shifting'
and `stretching'. Doubling halves the area horizontally then
repeats it, raising the pitch by one octave. Shifting moves the
area in small steps. Stretching `stretches' a point on the waveform
towards another point (it's best understood by experimenting).

NOTES
* As the right-hand waveform display is used a lot by range-
  affecting facilities, remember that you can reset the temporary
  waveform - clear it and set its length to 128 - by selecting
  Project menu -> Reset Temp Wave.
@ENDNODE


@NODE f2_raaf_1 "Range Affecters [Synthsounds] / How To Mark A Range"
@TOC f2_raaf
			HOW TO MARK A RANGE
INTRODUCTION
The most common way of marking a range is to drag the mouse along a
waveform display, with the drawing mode set to Range. Instead, you
can mark a precise range by entering start and end bytes into the
number boxes at the bottom-right. Mark a range over the entire
selected waveform by clicking Range All.

Sometimes, a one-byte range (or `cursor') is all that needs to be
marked. To do this, click at the appropriate point on the selected
waveform: A thin white line will appear. Alternatively, use the
three buttons in the bottom-right corner of the synthsound editor.
They mark a cursor at the start, middle or end of the waveform.

STEPS
1) Select a waveform display on which to mark a range.
   > Click on the appropriate display

2) EITHER Mark a range with the mouse.
   a) Set the drawing mode to Range.
      > Set the cycle gadget immediately underneath Draw Mode
	(bottom-middle) to Range

   b) Mark a range on the selected waveform.
      > Drag the mouse over the selected waveform OR
      > Click anywhere on the waveform

   OR Mark a precise range, using the two number boxes in the
      bottom-right corner.
   > Type a new value into the start box (the top one) THEN
   > Type a new value into the end box (the bottom one) OR
   > Use the four arrow buttons beside the number boxes

   OR Mark a `cursor' at one of the preset positions, using the
      buttons in the bottom-right corner.
   > Click |<  [cursor at start] OR
   > Click >|< [cursor in middle] OR
   > Click >|  [cursor at end]

NOTES
* The range cannot be adjusted by holding down Shift, as it can in  @{" More " LINK F2b.guide/f2_maara_2}
  the sample editor.
@ENDNODE


@NODE f2_raaf_2 "Range Affecters [Synthsounds] / How To Move Or Copy An Area"
@TOC f2_raaf
		    HOW TO MOVE OR COPY AN AREA
INTRODUCTION
Moving or copying an area of the synthsound is quite simple. Mark a
range over the area in the left-hand waveform; click Cut or Copy;
click on the position to insert the area; click Paste.

Cut and Copy move or copy the range to the `copy buffer', the
right-hand waveform, whose length changes to the length of the
range. Paste transfers the right-hand to the left-hand waveform at
the cursor position.

STEPS
1) Mark a range over the area to be moved or copied. It must be in  @{" How? " LINK f2_raaf_1}
   the left-hand waveform.

2) Choose to move or copy the range.
   > Click Cut [to move] OR
   > Click Copy [to copy]

3) Set the position to move or copy the area to. Usually, click
   anywhere on the left-hand waveform display. You can also use the
   gadgets in the Range section (bottom-right). 		    @{" More " LINK f2_raaf_1}

4) Move or copy the area.
   > Click Paste
@ENDNODE


@NODE f2_raaf_3 "Range Affecters [Synthsounds] / How To Remove Or Clear An Area"
@TOC f2_raaf
		  HOW TO REMOVE OR CLEAR AN AREA
INTRODUCTION
There is no Erase button in the synthsound editor; you must use Cut
to remove an area of the left-hand waveform. Or use Clear to clear
an area of either waveform.

STEPS
1) Mark a range over the area to be removed or cleared. For	    @{" How? " LINK f2_raaf_1}
   removal, it must be in the left-hand waveform.

2) EITHER Remove the area.
   > Click Cut

   OR Clear the area.
   > Click Clear

ALSO SEE
	@{" How To Clear A Waveform " LINK f2_muwa_1-4 40}
@ENDNODE


@NODE f2_raaf_4 "Range Affecters [Synthsounds] / How To Make An Area One Octave Higher"
@TOC f2_raaf
	       HOW TO MAKE AN AREA ONE OCTAVE HIGHER
INTRODUCTION
One way to make a waveform one octave higher is to halve its
length. This does not compress the waveform into half of its
original space, though, so a better way to do it is to mark a range
over the whole waveform and click Double.

The `Double' button does precisely that to the marked range. It
compresses the range into half of its space, then repeats it.

STEPS
1) Mark a range over the area to be doubled. To double the whole    @{" How? " LINK f2_raaf_1}
   waveform, click on a waveform then click Range All. This
   function can affect either waveform.

2) Double the area.
   > Click Double
@ENDNODE


@NODE f2_raaf_5 "Range Affecters [Synthsounds] / How To Turn An Area Backwards"
@TOC f2_raaf
		   HOW TO TURN AN AREA BACKWARDS
STEPS
1) Mark a range over the area to be reversed. This function can     @{" How? " LINK f2_raaf_1}
   affect either waveform display.

2) Turn the area backwards.
   > Click Reverse
@ENDNODE


@NODE f2_raaf_6 "Range Affecters [Synthsounds] / How To Shift An Area Left Or Right"
@TOC f2_raaf
		HOW TO SHIFT AN AREA LEFT OR RIGHT
STEPS
1) Mark a range over the area to be shifted in small steps. This    @{" How? " LINK f2_raaf_1}
   function can affect either waveform display.

2) EITHER Shift the area left.
   > Click << (bottom-right)

   OR Shift the area right.
   > Click >> (bottom-right)
@ENDNODE


@NODE f2_raaf_7 "Range Affecters [Synthsounds] / How To Change The Volume Of An Area"
@TOC f2_raaf
		HOW TO CHANGE THE VOLUME OF AN AREA
INTRODUCTION
The volume of an area can be changed, as a percentage of its
original volume. For example, to make the volume twice as loud, set
the level to 200 %. To halve the volume, set it to 50 %.

If the volume is increased too much, the waveform will attempt to
exceed its limits (in vain, of course), producing a `distorted'
sound.

STEPS
1) Mark a range over the area whose volume is to be changed. This   @{" How? " LINK f2_raaf_1}
   function can affect either waveform display.

2) Open the Synthsound Volume window.
   > Waveform menu -> Change Volume

3) Set the percentage volume change, and change the volume.
   > Type a value into the Volume Factor box, and press Return
@ENDNODE


@NODE f2_raaf_8 "Range Affecters [Synthsounds] / How To `Stretch' An Area"
@TOC f2_raaf
		     HOW TO `STRETCH' AN AREA
INTRODUCTION
The Stretch button `stretches' a point on the waveform towards
another point. It's best understood by seeing it in action. You
supply a `stretch value'; a positive value stretches right, a
negative value left.

One use for the facility is to expand an area of the waveform to
fill the whole display. Click on the end of the area, then do a
quick calculation: length of waveform - number shown by the Range
number boxes (bottom-right) - 1. Enter this as the stretch value.

Because it has to be seen to be understood, the how-to provides a
specific example!

STEPS
1) Choose a sine wave for this waveform (Presets menu).

2) Move the cursor to the middle of the waveform.
   > Click >|< (bottom-right corner)

3) Open the Synthsound Stretch window.
   > Waveform menu -> Stretch

4) Set the stretch value, and do the stretching.
   > Type a value (say 32) into the Stretch Value box, and press
     Return
@ENDNODE


@REM Scripts


@NODE f2_sc "Instruments / Scripts [Synthsounds]"
@TOC OctaMED.guide/f2
HOW TO...
	@{"     Add an entry to a sequence      " LINK f2_sc_1-2 0}
	@{"   Remove an entry from a sequence   " LINK f2_sc_1-2 75}
	@{" Set the volume and waveform number  " LINK f2_sc_3}
	@{"      Slide the volume or pitch      " LINK f2_sc_4}
	@{"             Add vibrato             " LINK f2_sc_5}
	@{"      Pause or stop a sequence       " LINK f2_sc_6}
	@{"         Create an arpeggio          " LINK f2_sc_7}
	@{"       Set the sequence speed        " LINK f2_sc_8}
	@{"       `Jump' to another line        " LINK f2_sc_9-10 0}
	@{"     Force a jump during a song      " LINK f2_sc_9-10 69}
	@{" Set the volume and vibrato `shapes' " LINK f2_sc_11}

OVERVIEW
Every synthsound has a `synthsound script', which offers great
control over how your instrument sounds. The script is shown in the
SynthEd Script window, automatically opened when the synthsound
editor is opened.

There are four columns of numbers in the SynthEd Script window:
Line numbers in decimal and hex, and two `sequences'. The left-hand
`volume sequence', possibly showing 40 END, controls the volume of
the synthsound. The right-hand `pitch sequence', probably 00 END,
controls the synthsound's pitch and also which waveforms are played
when (if the synthsound has more than one waveform).

Sequences consist of three-letter `commands', most of which require
a level value. For example, the VBS command with level 30 sets the
ViBrato Speed to 30. This would appear in the pitch sequence, with
VBS on one line and 30 on the following line.

Two particular commands - `set volume' and `play waveform' - don't
have a 3-letter command name, only a level. If a level value
appears `on its own' in the volume sequence, it is taken as being
the level for a `set volume' command; similarly for `play waveform'
and the pitch sequence. Both commands must appear in the synthsound
script for the synthsound to be heard, hence the default 40 and 00
levels. Two END commands are always present, marking the end of
each sequence.

To add an entry to a sequence, insert a blank entry (level 00) at
the cursor position, then replace that level with a command name if
required. Command names are entered with a single keypress,
sometimes with Shift held. For example, to enter CHD (CHange volume
or pitch Down), press D. To enter VBS, press Shift-V. Most of the
keypresses are easy to remember.

Used together, the available commands give you extensive control
over your synthsound. While a synthsound is playing, you can even
make it `jump' to a particular line in either sequence, to (for
example) start vibrato or a volume fade.

Once set, the synthsound script is used every time you play the
synthetic sound. The two sequences run together, although their
speeds may differ. Set each sequence's running speed with the
Volume and Wave sliders, or the SPD command.

An appendix of synthsound commands is available in the Brief Guide. @{"Where?" LINK App.guide/app_sysoco}

NOTES
* This is repeated often through these how-tos: ALL level values in
  both sequences are in HEXADECIMAL. Remember this and you'll be
  fine! Hexadecimal is not described in detail here.		    @{" More " LINK App.guide/app_heva}

* It's easy to create `loops' - repeated sections of a sequence -
  by using the JMP command. Loops are great, but they can take up
  so much of OctaMED's time that the computer hangs! To prevent
  this, ensure that at least one WAI, `set volume' or `play
  waveform' command appears in the loop.

* The SynthEd Script window can get in the way of the main
  synthsound editor. If it does, just close it, and later reopen it
  with the Script button (middle of synthsound editor). In earlier
  versions of the Soundstudio, `Program' is used instead of
  `Script'.

* Player commands which change a note's volume - types 05, 06, 0C,
  0D, 1A and 1B - have no effect on synthsounds. Bear in mind that
  the `set volume' comand acts like type 0C, while CHU and CHD in
  the volume sequence act like 0D.
@ENDNODE


@NODE f2_sc_1-2 "Scripts [Synthsounds] / How To Add An Entry To A Sequence"
@TOC f2_sc
		 HOW TO ADD AN ENTRY TO A SEQUENCE
INTRODUCTION
By default, the two sequences are set at 40 END and 00 END. To add
more entries, position the cursor appropriately and press Return.
This adds a level value 00 to a sequence, which can be changed to a
new level or replaced with a three-letter command name.

There are three possible cursor positions in each sequence, one for
each letter of a command name. To enter a command, the cursor must
be at the leftmost position in the appropriate sequence;
particularly, it can't be on either digit of a level value. This is
a safeguard against unintentional entry of commands.

Because most commands require a level value, entering a command
also adds a level for it, if that particular command requires one.
This level is again 00; change it, or any other level, simply by
moving the cursor over each digit and typing a new digit. Every
command has a keypress associated with it; use this keypress to
enter the command.

Remember: All level values are in hexadecimal!			    @{" More " LINK App.guide/app_heva}

STEPS
1) If necessary, open the SynthEd Script window.
   > Synthetic Sound Editor -> Script button (middle of window)

2) Move the cursor over the sequence to which to add an entry.
   > Use the <left> and <right> arrow keys

3) Move to the line where the entry should be inserted. It will be
   inserted before the current line. To add an entry to the end of
   the sequence, move to the END command.
   > Use the <up> and <down> arrow keys OR
   > Use the scroll bar beside the script area OR
   > Use the F6 to F10 keys as in the Tracker editor (for example,  @{" More " LINK PCKS.guide/key_cumo}
     F10 moves to the last line of the current sequence)

4) Switch on edit mode. Because the Main Control window is usually
   obscured, use the keyboard shortcut (Esc key) and check the edit
   status in the Information window, which may be just visible.
   > Press the Esc key if necessary OR
   > Main Control window -> Edit button

5) Insert an entry (level value 00).
   > Press Return OR
   > Click Insert (beside the script area)

6) EITHER Change the new level to that required.
   > Move the cursor over each digit and type a new digit

   OR Replace the new level with a command name.
   > Move the cursor to its leftmost position in the current
     sequence, so that it's beside the level, not on a digit THEN
   > Press the key associated with the command THEN
   > Change the level 00 that is inserted with the command, as
     appropriate

7) When you've finished editing, switch off edit mode to play the
   synthsound.

NOTES
* Both sequences can be 127 lines long.

* Sometimes, particularly in the pitch sequence, you need to enter
  a long list of ascending or descending level values. For example,
  you may want to play all the waveforms from number 0 to 9 in
  turn. You could enter the numbers individually, but computers are
  supposed to take the drudgery out of such mundane tasks...

  ...and OctaMED does! In this example, enter levels 00 and 09 on
  consecutive lines, move the cursor to the level 09, and click
  Transition. Presto! OctaMED inserts the intervening levels,
  01 02 03 04 05 06 07 08. This saves a lot of typing!


	      HOW TO REMOVE AN ENTRY FROM A SEQUENCE
INTRODUCTION
This how-to assumes that you know how to add an entry to a
sequence. Removing an entry is much simpler: Position the cursor
over the entry to be removed, then press the Del key.

STEPS
1) Move the cursor to the entry to be removed.

2) Remove the entry.
   > Press the Del key OR
   > Click Delete (beside the script area)

NOTES
* You can't remove an END command. You can try though!
@ENDNODE


@NODE f2_sc_3 "Scripts [Synthsounds] / How To Set The Volume And Waveform Number"
@TOC f2_sc
	     HOW TO SET THE VOLUME AND WAVEFORM NUMBER

The `set volume' and `play waveform' commands are unique in that
they don't require a command name, only a level value. Any value on
its own - not connected to a command name - is assumed to be a `set
volume' or `play waveform' command.

At least one of each command must appear in the synthsound script
for the synthsound to be heard. The `set volume' command, used in
the volume sequence, specifies the synthsound's volume in
hexadecimal. The usual 64 volume levels are allowed, with full	    @{" More " LINK F3.guide/f3_in_5}
volume at $40 (64 decimal), hence the 40 in the default volume
sequence. Level $00 is silent, half-volume is $20.

The `play waveform' command, used in the pitch sequence, starts
playing a particular waveform number. Remembering that the first
waveform is number 0, level $00 plays the first waveform, hence the
00 in the default pitch sequence. Once started, the waveform plays
continously until stopped in some way (by another waveform starting
to play, for example).

As always, the `play waveform' command is set in hexadecimal. To
help you enter such commands, the current waveform's number is
displayed in hex underneath the left-hand waveform display (look
for the $ sign).

The SynthEd Script window's Transition button can especially help
when you need several waveforms to be played one after the other.
The following script plays waveforms 0 to 5 and back to 1, before
repeating. It also sets the synthsound's volume to three-quarters.

	000 00	30  00	-+
	001 01 END  01	 |
	002 02	    02	 | Enter this by creating a transition
	003 03	    03	 | from 00 to 05...
	004 04	    04	 |
	005 05	    05	-+
	006 06	    04	 | ...and this by creating a transition
	007 07	    03	 | from 05 to 01
	008 08	    02	 |
	009 09	    01	-+
	010 0A	   JMP	<- Jumps back to line 0
	011 0B	    00	<-
	012 0C	   END

STEPS
1) Add a new level value to either sequence, and change it to the   @{" How? " LINK f2_sc_1-2}
   appropriate `set volume' or `play waveform' level.
@ENDNODE


@NODE f2_sc_4 "Scripts [Synthsounds] / How To Slide The Volume Or Pitch"
@TOC f2_sc
		 HOW TO SLIDE THE VOLUME OR PITCH
INTRODUCTION
The two commands CHU and CHD, both taking a level value, are
abbreviations of `change up' and `change down'. Both commands can
be used in either sequence with different results.

In the volume sequence, a CHU command raises the volume at the
speed given by the level value, producing a `volume slide'. For
example, CHU 01 slowly increases the volume until it can go no
louder; CHU 02 increases the volume at double the rate. Similarly,
CHD lowers the synthsound's volume at the specified rate.

In the pitch sequence, a CHU command raises the pitch at the speed
given by the level value, producing a `pitch slide'. Again, CHU 01
slides at half the rate of CHU 02. CHD works in a similar way.

To stop a volume or pitch slide, use either command later in the
sequence with level 00. For example:

	CHD
	 02 <- Starts sliding down at rate 2
	WAI
	 05 <- Pauses for 5 units of time			    @{" More " LINK f2_sc_6}
	CHU
	 00 <- Stops the sliding

In the pitch sequence, a RES command resets the pitch to its
original level before a pitch slide began.

STEPS
1) Add a new level value to the sequence, and use key:		    @{" How? " LINK f2_sc_1-2}

	U	to enter CHU
	D	to enter CHD
	R	to enter RES

NOTES
* Technically speaking, at speed 1, CHU in the volume sequence	    @{" More " LINK f2_sc_8}
  increases the volume by the level value on every tick. CHU in the
  pitch sequence lowers the note's `period' by the level value on
  every tick.
@ENDNODE


@NODE f2_sc_5 "Scripts [Synthsounds] / How To Add Vibrato"
@TOC f2_sc
			HOW TO ADD VIBRATO
INTRODUCTION
`Vibrato' is rapidly `wobbling' the pitch of a note, a technique
especially used with real-life string instruments. It can add real
life to your synthsound too!

If you've used player command 04 (`vibrato'), you'll feel
comfortable with the two vibrato settings, `depth' and `speed'. Use
command VBD to set the vibrato depth (the extent of the wobble),
and VBS to set the vibrato speed.

Both commands take a hexadecimal level value. The higher the value, @{" More " LINK App.guide/app_heva}
the greater the effect, although depths above around $20 tend to
sound a bit silly. Which might be just what you're looking for!
Both commands must be set before vibrato can occur. Level $00 used
with either command turns vibrato off. For example:

	VBD
	 04
	VBS
	 30 <- Vibrato starts here
	WAI
	 08 <- Wait for a bit...				    @{" More " LINK f2_sc_6}
	VBD
	 00 <- ...and switch off vibrato

STEPS
1) Add a new level value to the sequence, and use key:		    @{" How? " LINK f2_sc_1-2}

	V	to enter VBD
	Shift-V to enter VBS

NOTES
* The maximum level value of VBD and VBS is $7F (127 decimal).
@ENDNODE


@NODE f2_sc_6 "Scripts [Synthsounds] / How To Pause Or Stop A Sequence"
@TOC f2_sc
		  HOW TO PAUSE OR STOP A SEQUENCE
INTRODUCTION
The WAI command, usable in either sequence, makes the sequence
pause for a specified length of time. It only affects the sequence
in which it appears; the other sequence carries on regardless.

If you've read the how-tos on pitch and volume slides or vibrato,
you'll have seen WAI commands in the example sequences. It's useful
to leave time for an effect such as vibrato to take effect. After a
pause, provided by a WAI command, the effect can be switched off.

Of course, WAI takes a level value, the amount of time to pause.
The actual time waited depends on the speed of the appropriate	    @{" More " LINK f2_sc_8}
sequence.

You can also stop a sequence altogether, with the HLT (`halt')
command. It doesn't take a value, and has the same effect as an END
command. However, the sequence can continue after a HLT command;
that part of the sequence might be accessed by forcing a `jump'
from within a song, for example. (Remember that END always and only
appears at the end of a sequence.)

	CHU
	 03 <- Starts sliding up at rate 3			    @{" More " LINK f2_sc_4}
	WAI
	 04 <- Waits for 4 units of time
	HLT <- Stops this sequence
	CHD <- This part can be accessed by a `jump' command,
	 02    perhaps JVS from the pitch sequence		    @{" More " LINK f2_sc_9-10 0}

STEPS
1) Add a new level value to the sequence, and use key:		    @{" How? " LINK f2_sc_1-2}

	W	to enter WAI
	H	to enter HLT
@ENDNODE


@NODE f2_sc_7 "Scripts [Synthsounds] / How To Create An Arpeggio"
@TOC f2_sc
		     HOW TO CREATE AN ARPEGGIO
INTRODUCTION
During an `arpeggio', a note is rapidly changed between many
different pitches. If the pitch changes are quick enough, it can
simulate a `chord' (where several notes are played together).

For example, in a major chord, there is a gap of 4 halfsteps
(semitones) between the 1st and 2nd notes, and 7 halfsteps between
the 1st and 3rd notes. So a major arpeggio would rapidly change
between the bass note, the note 4 halfsteps above the bass, and the
note 7 halfsteps above the bass.

The ARP and ARE commands, in the pitch sequence, are used to start
an arpeggio. The level values entered between the commands are the
notes to be played, in halfsteps above the bass note. If the bass
note is to be played, it must be included (as level 00). There can
be any number of notes in an arpeggio. As usual, all levels are in
hexadecimal.							    @{" More " LINK App.guide/app_heva}

	ARP
	 00
	 04
	 07
	ARE <- Starts a major arpeggio (at ARpeggio End)

The speed of the arpeggio is always the same: very fast! To switch
off an arpeggio, use the sequence ARP 00 ARE.

STEPS
1) Add a new level value to the pitch sequence, and use key A to    @{" How? " LINK f2_sc_1-2}
   enter an ARP command.

2) Add new level values for each level in the arpeggio, and change  @{" How? " LINK f2_sc_1-2}
   them accordingly.

3) Add a new level value to the sequence, and use key E to enter an @{" How? " LINK f2_sc_1-2}
   ARE command.

TIPS
* Probably the strangest pitch effect possible is a combination of
  pitch sliding, vibrato and arpeggio! Go on, try it!
@ENDNODE


@NODE f2_sc_8 "Scripts [Synthsounds] / How To Set The Sequence Speed"
@TOC f2_sc
		   HOW TO SET THE SEQUENCE SPEED
INTRODUCTION
Although the two sequences execute together, they needn't run at
the same speed. The speed at which a sequence runs is its
`execution speed', and can be set with the Volume and Wave sliders
in the SynthEd Script window, or by using the SPD command.

Usually, both sequences run at speed 3. This means, technically,
that the sequences are `handled' every 3rd tick. Given that there
are usually 6 ticks per Tracker editor line, the sequences are
handled twice per song line.

The Volume and Wave sliders set the execution speed of the volume
and pitch sequence respectively (the pitch sequence is also called
the `waveform sequence' because it plays waveforms). So to handle
the volume sequence on every tick, set Volume to 1.

`Handling' a sequence is really doing what the sequence asks. For
example, if the volume sequence requested a volume slide downwards
in steps of 2, OctaMED would slide the volume down 2 notches every
time the volume sequence was handled. So the execution speed has a
bearing on all time-dependent commands in the sequence.

The SPD command, from within a sequence, changes the speed of the
sequence in which it appears. It takes the new speed as a level
value. For example, SPD 04 sets the sequence speed to 4.

STEPS
1) EITHER Use the sliders in the SynthEd Script window.
   > Adjust the Volume slider [volume sequence] THEN
   > Adjust the Wave slider [pitch sequence]

   OR Add a new level value to the sequence, and use the S key to   @{" How? " LINK f2_sc_1-2}
   enter a SPD command.
@ENDNODE


@NODE f2_sc_9-10 "Scripts [Synthsounds] / `Jumping' To Another Line"
@TOC f2_sc
		   HOW TO `JUMP' TO ANOTHER LINE
INTRODUCTION
The JMP command `jumps' to any line of the sequence in which it
appears. It ignores any intervening lines, and goes straight to the
specified line - which may be forwards or backwards in the sequence
- and carries on from there. If you're familiar with the
programming language BASIC, it's equivalent to the infamous GOTO!

JMP is mainly used to create `loops' - sections of the sequence
which are repeated over and over again, although it can also skip
unnecessary sections. In the following volume sequence example, the
volume is repeatedly quietened and loudened:

	000 00	40 <- Set volume to full			    @{" More " LINK f2_sc_3}
	001 01 CHD
	002 02	02 <- Slide volume down in steps of 2		    @{" More " LINK f2_sc_4}
	003 03 WAI
	004 04	05 <- Wait for 5 units of time			    @{" More " LINK f2_sc_6}
	005 05 CHU
	006 06	02 <- Slide volume up in steps of 2		    @{" More " LINK f2_sc_4}
	007 07 WAI
	008 08	05 <- Wait for 5 units of time			    @{" More " LINK f2_sc_6}
	009 09 JMP
	010 0A	01 <- `Jump' back to line 1 to start all over again
	011 0B END

JMP's level value, as usual, is in hexadecimal. This is the main    @{" More " LINK App.guide/app_heva}
reason for numbering the lines in hexadecimal as well as decimal,
so take advantage of them! Remember that the first line is 00.

There are two additional interesting jump commands, JWS and JVS.
JWS is used in the volume sequence, and forces a jump to occur in
the *pitch* sequence to a specified line. JVS, similarly, is used
in the pitch sequence to force a jump in the *volume* sequence.
Take a look at this example:

	000 00	20  00
	001 01 CHU HLT
	002 02	01 VBS
	003 03 WAI  35
	004 04	10 VBD
	005 05 CHU  09
	006 06	00 END
	007 07 JWS
	008 08	02
	009 09 END

Here, the pitch sequence starts waveform 00 playing, then stops.
Meanwhile, the volume sequence gradually increases the volume from
half-volume, over a period of $10 time units. When the time period
is up, the volume slide is stopped and JWS 02 used to cause the
pitch sequence to jump to line 02. This adds vibrato to the sound.

Note that JVS and JWS force a jump *in* the other sequence; they
don't jump *to* the other sequence. In the above example, the
volume sequence could continue after the JWS command.

STEPS
1) Add a new level value to the sequence, and use:		    @{" How? " LINK f2_sc_1-2}

	J	to enter JMP
	Shift-J to enter JVS or JWS (depending on the current
		sequence)

NOTES
* JWS stands for Jump Waveform Sequence. `Waveform sequence' is
  another name for `pitch sequence', because it can play waveforms.


		 HOW TO FORCE A JUMP DURING A SONG

During the course of a song, you can force a `jump' - a change to a
different line - in one of a synthsound's sequences. The synthsound
must already be playing for the jump to take effect.

For example, you may have two parts to your volume sequence: One
part to start the synthsound playing, another part to fade it away
at the end. It might look like this (line numbers included):

	000 00	40 <- Full volume				    @{" More " LINK f2_sc_3}
	001 01 HLT <- Stop the sequence 			    @{" More " LINK f2_sc_6}
	002 02 CHD
	003 03	02 <- (For later) Gradually fade away		    @{" More " LINK f2_sc_4}
	004 04 END

Here, the synthsound starts playing at full volume, then the
sequence stops at the HLT command. When your song wants to stop the
note, it can force a jump to line 02 which will fade the note away.

There are two ways of forcing a jump:

* Player command type 0E. Its command level is the line number of   @{" More " LINK F1a.guide/f1_plco}
  the *pitch* sequence to which the sequence should jump. To make
  it affect the volume sequence, jump to an appropriate JVS command
  in the pitch sequence.

* `Hold and decay'. When used with synthsounds, the decay value is  @{" More " LINK F3.guide/f3_in_7}
  the *volume* sequence line number to which the sequence should
  jump after the hold is complete. Again, to make it affect the
  pitch sequence, jump to a JWS command in the volume sequence.
@ENDNODE


@NODE f2_sc_11 "Scripts [Synthsounds] / How To Set The Volume And Vibrato `Shapes'"
@TOC f2_sc
	    HOW TO SET THE VOLUME AND VIBRATO `SHAPES'
INTRODUCTION
One way to control a synthsound's volume exactly is to draw a
`volume shape'. A volume shape is a graphical representation of the
synthsound's volume, and is drawn on the left-hand waveform
display in a particular waveform you set aside for the purpose.

The further down is a point on the volume shape, the louder the
volume. Consider this volume shape:

			+------------+	<= no volume (0)
			| \	   / |
	Left-hand	|  \	  /  |
	waveform   ->	|   \	 /   |
	display 	|    \	/    |
			|     \/     |
			+------------+	<= no volume (64)

Here, the volume will gradually increase to maximum, then fade to
nothing. The volume shape waveform must always be 128 bytes long.

After drawing the shape, use the EN1 or EN2 command in the volume
sequence, with the volume shape waveform's number as the level
value. EN1 only plays using the volume shape once, then stops the
sound. EN2 repeats the shape continuously. Use the commands in the
volume sequence.

	EN1 <- Can use EN2 instead
	 02 <- Uses waveform number 2 as a volume shape

On a similar theme, the `vibrato shape' used by commands VBS and
VBD can also be drawn in a waveform. This time, the further down is
a point on the waveform, the higher the pitch. Vibrato shapes
should always be 32 bytes long, and are actually played backwards,
so reverse it after creating one. The command to set the volume
shape is VWF (Vibrato WaveForm), used in the pitch sequence.

STEPS
1) Add a new waveform especially for the shape. Call its number N.  @{" How? " LINK f2_muwa_1-4 0}

2) Set the waveform length appropriately. 128 for a volume shape,
   32 for a vibrato shape.
   > Adjust the Length slider in the synthsound editor

3) Create the shape.						    @{" How? " LINK f2_cr_2}

4) If you've created a vibrato shape, reverse the whole waveform.   @{" How? " LINK f2_raaf_5}

5) Add a new level value to the sequence, and use:		    @{" How? " LINK f2_sc_1-2}

	E	to enter EN1 [volume sequence]
	Shift-E to enter EN2 [volume sequence]
	Shift-W to enter VWF [pitch sequence]

   Set the command's level value to N (see step 1 above).

NOTES
* You can change the volume shape's speed using the SPD command.    @{" More " LINK f2_sc_8}

* The volume is actually set to full (level 64) before the volume
  shape begins to be used, so if the shape starts at no or low
  volume, you may hear a slight `click'.

* The EN in EN1 and EN2 stands for `envelope', which you must admit
  is a peculiar name for a volume shape!
@ENDNODE
