SYNTHETIC AND HYBRID SOUND COMMANDS:



VOLUME SEQUENCE LIST COMMANDS



+-----------------------------------+------+----------+----------+
|     FUNCTION                      | CMMD | ARGUMENT | KEYBOARD |
+----+------------------------------+------+----------+----------+
|1.  | Set volume                   |  --- | volume   | ---      |
+----+------------------------------+------+----------+----------+
|2.  | END sequence                 |  END | ---      | ---      |
+----+------------------------------+------+----------+----------+
|3.  | Set volume CHange Down speed |  CHD | speed    | D        |
+----+------------------------------+------+----------+----------+
|4.  | Set volume CHange Up speed   |  CHU | speed    | U        |
+----+------------------------------+------+----------+----------+
|5.  | WAIt                         |  WAI | pulses   | W        |
+----+------------------------------+------+----------+----------+
|6.  | JuMP                         |  JMP | line #   | J        |
+----+------------------------------+------+----------+----------+
|7.  | Jump Waveform Sequence       |  JWS | line #   | Shift-J  |
+----+------------------------------+------+----------+----------+
|8.  | HaLT                         |  HLT | ---      | H        |
+----+------------------------------+------+----------+----------+
|9.  | Set SPeeD                    |  SPD | speed    | S        |
+----+------------------------------+------+----------+----------+
|10. | One-shot ENvelope            |  EN1 | envelope#| E        |
+----+------------------------------+------+----------+----------+
|11. | Looping ENvelope             |  EN2 | envelope#| Shift-E  |
+----+------------------------------+------+----------+----------+








                                  120


Waveform sequence list commands

+----+------------------------------+------+----------+----------+
|      FUNCTION                     | Cmmd |          | Keyboard |
+----+------------------------------+------+----------+----------+
|1.  | Set waveform                 |  --- | number   | ---      |
+----+------------------------------+------+----------+----------+
|2.  | END sequence                 |  END | ---      | ---      |
+----+------------------------------+------+----------+----------+
|3.  | Set pitch CHange Down speed  |  CHD | speed    | D        |
+----+------------------------------+------+----------+----------+
|4.  | Set pitch CHange Up speed    |  CHU | speed    | U        |
+----+------------------------------+------+----------+----------+
|5.  | WAIt                         |  WAI | pulses   | W        |
+----+------------------------------+------+----------+----------+
|6.  | JuMP                         |  JMP | line #   | J        |
+----+------------------------------+------+----------+----------+
|7.  | Jump Volume Sequence         |  JVS | line #   | Shift-J  |
+----+------------------------------+------+----------+----------+
|8.  | HaLT                         |  HLT | ---      | H        |
+----+------------------------------+------+----------+----------+
|9.  | Set SPeeD                    |  SPD | speed    | S        |
+----+------------------------------+------+----------+----------+
10.  | ARPeggio begin definition    |  ARP | offset   | A        |
+----+------------------------------+------+----------+----------+
11.  | ARpeggio End definition      |  ARE | ---      | E        |
+----+------------------------------+------+----------+----------+
12.  | Set ViBrato Depth            |  VBD | depth    | V        |
+----+------------------------------+------+----------+----------+
13.  | Set ViBrato Speed            |  VBS | speed    | Shift-V  |
+----+------------------------------+------+----------+----------+
14.  | RESet pitch                  |  RES | ---      | R        |
+----+------------------------------+------+----------+----------+
|15. | Set Vibrato WaveForm         |  VWF | number   | Shift-W  |
+----+------------------------------+------+----------+----------+


                                 

                                  121
EXAMPLES:


VOLUME SEQUENCE LIST COMMANDS:

Set volume
Command:  ---
Argument: ---
Keyboard: --- (direct number)

This is the default command.  It has no command keyword identifier.  It sets the absolute volume of the synthetic sound.  The range is 00 to 40.  You cannot use relative track volumes set on the VOLUME PANEL with synthetic sounds.

Example:
00  30  Volume = $30
01  10  Volume = $10

Command:  END
Argument: ---
Keyboard: ---

END terminates the Volume Sequence List and is always on the list.  You cannot insert other commands below the END command.

Change Down (volume)
Command:  CHD
Argument: (speed)
Keyboard: D

CHD sets the speed the volume decreases on each timing pulse.  The volume starts changing after the command.  To stop the volume slide, issue the command again with the speed set to 00.

Example:
00 CHD  Command:  Change Down
01  05  Argument: (speed = 5)
...
10 CHD  Command:  Change Down
11  00  Argument: (speed = 0) stop sliding

                                  122                                 
Change Up (volume)
Command:  CHU
Argument: (speed)
Keyboard: U

CHU is similar to CHD, but it changes the volume up.

Wait
Command:  WAI
Argument: (pulses)
Keyboard: W

WAI pauses a specified number of timing pulses.
Example:
03 WAI  Command:  Wait
04  10  Argument: (wait for 16 ($10 hex) pulses)

Jump
Command:  JMP
Argument: (line number)
Keyboard: J

JMP goes to another position in the Volume Sequence List.
Example:
05 JMP  Command:  Jump
06  0A  Argument: (jumps to line 0A)

Jump Waveform Sequence
Command:  JWS
Argument: (line number)
Keyboard: Shift-J

JWS causes a jump in the Waveform Sequence.  This can, for example, trigger a pitch change at the end of the Volume Sequence List.  This does not cause a jump to Volume Sequence.

Example:
04 JWS  Command:  Jump Waveform Sequence
05  0F  Argument: (jump to waveform sequence 0F)


                                  123
Halt
Command:  HLT
Argument: ---
Keyboard: H

HLT has the same effect as END, but it can be in the middle of a sequence list.

Example:
03 HLT  Command:  Halt
04  0... Some other code.  Can be accessed with JMP instruction.
...

Speed
Command:  SPD
Argument: (speed)
Keyboard: S

SPD sets the execution speed.

Example:
0A SPD  Command:  Speed
0B  01  Argument: (speed = 1) fastest
...

The following commands require OctaMED V2.00 (MED V3.20) or later versions.

One-shot Envelope
Command:  EN1
Argument: (envelope wave form number)
Keyboard:  E

EN1 lets you to set the shape of the envelope. When the end of the envelope is reached, nothing occurs.

Example:
02  40
03 EN1  Command:  Set Envelope
04  05  Argument: (waveform 05)

                                 

                                  124
Here waveform 05 is used as an envelope.  The envelope execution starts on the next interrupt, so the volume is initialized to 40.  The envelope waveform must always be 128 bytes long.

Looping Envelope
Command:  EN2
Argument: (envelope waveform number)
Keyboard: Shift-E

EN2 is similar to the EN1 command except at the end execution loops to the beginning.


WAVEFORM SEQUENCE LIST COMMANDS:

Set Waveform
Command:  ---
Argument: (waveform number)
Keyboard: ---

Use this command to indicate the waveform number (starting from 00). After this instruction, execution stops until next timing pulse occurs.  Do not use waveform numbers higher than the number of the last waveform.

Example:
00  00  waveform 00
01  01  waveform 01
...

End
Command:  END
Argument: ---
Keyboard: ---

END terminates the Waveform Sequence List. It is always in the list.  You can not insert commands below it.

Change Down (pitch)
Command:  CHD
Argument: (speed)
Keyboard: D

                                  125                                 

CHD sets the sliding speed for sliding the pitch down.  The sliding starts after this command and stops when speed is set to zero.

Example:
00 CHD  Command:  Change Volume Down
01  03  Argument: (speed = 3)
...

Change Up (pitch)
Command:  CHU
Argument: (speed)
Keyboard: U

CHU is similar to CHD, but slides the pitch up.

Wait
Command:  WAI
Argument: (pulses)
Keyboard: W

WAI pauses for the number of pulses specified.

Example:
03 WAI  Command:  Wait
04  02  Argument: (wait 2 pulses)

Jump
Command:  JMP
Argument: (line number)
Keyboard: J

JMP causes a jump to another position in the Waveform Sequence List.
Example:
05 JMP  Command:  Jump
06  0A  Argument: (go to line 0A)

Jump Volume Sequence
Command:  JVS
Argument: (speed)
Keyboard: Shift-J

                                  126
JVS causes a jump in the Volume Sequence.  It can, for example, trigger volume changes after waveform events.

Example:
09 JVS  Command:  Jump
0A  00  Argument: (go to volume sequence 00)

Halt
Command:  HLT
Argument: ---
Keyboard: H

HLT has the same effect as END, but it can be in the middle of the sequence list.

Example:
03 HLT  Command:  Halt
04  0... some other code.

Speed
Command:  SPD
Argument: (speed)
Keyboard: S

SPD sets the execution speed in pulses.

Example:
0A SPD  Command:  Set Speed
0B  01  Argument: (speed = 1) fastest
...

Arpeggio Definition
Command:  ARP
Argument: (offset)
Keyboard: A

ARP begins an arpeggio definition sequence.  The values that follow are the arpeggio offsets from the root note.  The arpeggio sequence ends with an ARE command. The arpeggio starts after the sequence is defined.

                                 

                                  127
Example:
03 ARP  Command:  Start Arpeggio
04  00  Argument: (offset value)
05  04  Argument: (offset value)
06  07  Argument: (offset value)
08 ARE  Command:  End Definition

Arpeggio End
Command:  ARE
Argument: ---
Keyboard: E

ARE ends an arpeggio definition.  See above.

Vibrato Depth
Command:  VBD
Argument: (depth)
Keyboard: V

VBD sets the vibrato depth (00-7F). Values below 0F are usually suitable for ordinary vibrato.  Higher values are mainly useful for special effects.

Example:
02 VBD  Command:  Set Vibrato Depth
03  04  Argument: (depth = 4)

Vibrato Speed
Command:  VBS
Argument: (speed)
Keyboard: Shift-V

VBS sets the vibrato speed (00 - 7F).  Both the speed and depth must be non-zero for vibrato to work.

Example:
02 VBD  Command:  Set Vibrato Depth
03  04  Argument: (depth = 4)
04 VBS  Command:  Set vibrato speed
05  30  Argument: (speed = 30)

                                  128                                 
Reset Pitch
Command:  RES
Argument: ---
Keyboard: R

RES resets the pitch of the note to its initial pitch.

The following command requires OctaMED V2.00 (MED V3.20) or later.

Vibrato Waveform
Command:  VWF
Argument: (waveform number)
Keyboard: Shift-W

VWF sets the vibrato waveform.  The waveform should always be 32 bytes long.  It is actually played reversed (use the REV button to reverse it).  By default, a sine wave is used.

Example:
00 VBD  Command:  Set Vibrato Depth
01  06  Argument: (depth = 6)
02 VBS  Command:  Set Vibrato Speed
03  40  Argument: (speed = 40)
04 VWF  Command:  Set Vibrato Waveform
05  04  Argument: (use waveform 04)


SYNTHETIC SOUND COMMANDS IN SONGS:

If used as a MIDI command in a song, E controls the MIDI pan, when used with MIDI.  However, when used with synthetic sounds, it triggers a jump in the Waveform Sequence List.

                                 







                                  129
For example, to decrease the pitch of the sound at a certain point, the Waveform Sequence could look like this:

00 VBS  Command:  Set Vibrato Speed
01  40  Argument: (speed = 40)
02 VBD  Command:  Set Vibrato Depth
03  06  Argument: (depth = 6)
04  00  Command:  Play Waveform 00
05 HLT  Command:  Halt
06 CHD  Command:  Pitch Changing Entry Point
07  02  Argument: (speed = 2)
08 END  Command:  End

Now you could compose a track like this:

+-----+----------
| 011 | C-2 30000 this is the previous synthetic sound
| 013 | --- 00000
| 014 | --- 00000
| 015 | --- 00E06 jump to position 06 (pitch starts to slide down)
| 016 | --- 00000
| 017 | ...


HOLD AND DECAY IN SYNTHETIC SOUNDS:

Hold and Decay work well with synthetic sounds.  The decay value in synthetic sounds is a jump address in the Volume Sequence List.  When the decay starts, execution jumps to this entry in the Volume Sequence List.  You can also use it to affect the Waveform Sequence List with the JWS command.

Example Volume Sequence List:
00  40  Command:  Initialize Volume
01 HLT  Command:  Halt
02 CHD  Command:  decay handling (entry point) --> cause decay
03  03  Argument: (speed = 3)
04 END  Command:  End

The decay value for this synthetic sound should be 2.

                                  130