User Tools

Site Tools


oric:ayt:sfx_effects_editor

SFX control the shape of the note over time. SFX Keys

SFX are composed in a list of up to 64 steps.
Each step can either control the sound or the flow of the SFX.
Primarily SFX Sound Commands change the Tracks Note, Pitch and Volume which all observe Sharing.


However SFX may also control most aspects of the Sound chip such as EG, Tone and Noise flags, EG envelope period, EG cycle and Noise pitch. These latter changes act outside of sharing and care should be taken to not upset sharing unless a good understanding of the sound chip is had.

AYT SFX offers two schemes for the control of Noise and EG. If complete control over noise is preferred then dedicate a Track to Noise. Pitch changes in the Pattern assigned to the Track will change the Noise Pitch and Pitch (Or note) changes in the SFX will also change the Noise Pitch. Changes in the SFX and Pattern Entry for Volume will toggle the Noise Flag.

However if the noise is just required incidentally (ie. for simple 3 channel harmony and sonix compatibility) then it may be modified with this Step together with the Noise, Tone and EG flag Steps.

SFX Flow controls include a Delay(1-10),a Random Delay, a Counter(1-19), an unconditional Loop and 2 conditional Loops.

Further advanced commands provide Random Note, Random Noise, Random Volume, Random Pitch and a Software Pitch Filter.


Commands

INC NOTE BY and DEC NOTE BY

Range Shortcut Key
01-25 (up to 2 Octaves in either direction)N(Repeat same key to switch between two modes)

These commands increment or decrement the Note by the specified amount. The final note is converted to pitch and stored again. This means that the next change to pitch or note will be based on the result of this command.

The range of Notes depends on the Sound Source associated to the Track. If a note step takes the pitch beyond the Sound Source limits the pitch will loop and be set to the other end of the scale.

A note step will overwrite any previous pitch step applied to the track.

A typical use for this Step is in a Trill, Arpeggio, Fake chord or Ornament whereby the note is switched between 3 offsets (the original note, 4 semitones higher and 7 semitones higher).

00 DELAY 02
01 INC NOTE BY 04
02 DELAY 02
03 INC NOTE BY 03
04 DELAY 02
05 DEC NOTE BY 07
06 LOOP TO ROW 00

INC PITCH BY and DEC PITCH BY

Range Shortcut Key
01-25P(Repeat same key to switch between two modes)

These commands increment or decrement the Pitch by the specified amount. The final pitch is stored again. This means that the next change to pitch will be based on the result of this command.

The range of pitch depends on the Sound Source associated to the Track. If a pitch step takes the pitch beyond the Sound Source limits the pitch will loop and be set to the other end of the scale.

The typical use of this step is in creating vibrato, a rapid alternation of Pitch over time.

00 DELAY 01
01 INC PITCH BY 02
02 DELAY 01
03 DEC PITCH BY 02
04 LOOP TO ROW 00

INC VOLUME BY and DEC VOLUME BY

Range Shortcut Key
01-15V(Repeat same key to switch between two modes)

These commands increment or decrement the Volume by the specified amount. The final volume is stored again. This means that the next change to volume will be based on the result of this command.

The range of Volume depends on the Sound Source associated to the Track and the Resolution set in the List Editor. If a volume step takes the volume beyond the Sound Source limits the volume will loop and be set to the other end of the scale.

A use for this is to produce Tremelo on the note, that is a rapid alternation of volume over time.

00 DELAY 01
01 DEC VOLUME BY 02
02 DELAY 01
03 INC VOLUME BY 02
04 LOOP TO ROW 00

INC NOISE BY and DEC NOISE BY

Range Shortcut Key
01-16S(Repeat same key to switch between two modes)

These commands increment or decrement the Noise(Independant of Sharing) by the specified amount. The final Noise Pitch is stored again. This means that the next change to Noise Pitch will be based on the result of this command.

The range of Noise Pitches depend on the Resolution set in the List Editor. If a Noise pitch step takes it beyond the Sound Source limits the pitch will loop and set to the other end of the scale.

INC EG PERIOD BY and DEC EG PERIOD BY

Range Shortcut Key
01-08E(Repeat same key to switch between two modes)

These commands increment or decrement the EG Period(Independant of Sharing) by the specified amount. The final Period is stored again. This means that the next change to EG Period will be based on the result of this command.

The range of EG Period is from 0 to 65535 although for the intended purposes of its use in SFX it should only range 0 to 63. If a Period step takes it beyond 0 or 65535 the EG Period will loop and set to the other end of the scale.

SET E FLAG

Range Shortcut Key
OFF or ON G

This command sets or resets the EG Flag for a channel (Not track) and works independant of Sharing. Its primary use is for tunes that do not use Sharing but may be used to 'tidy up' the flag.

SET T FLAG

Range Shortcut Key
OFF or ON T

This command sets or resets the Tone Flag(ChipSound) for a channel (Not track) and works independant of Sharing. Its primary use is for tunes that do not use Sharing but may be used to 'tidy up' the flag.

SET N FLAG

Range Shortcut Key
OFF or ON O

This command sets or resets the Noise Flag for a channel (Not track) and works independant of Sharing. Its primary use is for tunes that do not use Sharing but may be used to 'tidy up' the flag.

SKIP LOOP

Range Shortcut Key
OFF or ON /(Repeat same key to switch between modes)

This command sets the break condition out of loops. When a condition is set any loop will only take place whilst the condition is false. The available conditions are as follows..

Condition Description
UNCONDITIONALLYNever skip the loop
ON VOLUME OVERSkip the loop when the volume reaches the limits deemed by the Sound Source
ON COUNT OVERSkip the loop when the Counter reaches zero

The example used here is an expansion of the Vibrato example used (in the first place) for the PITCH example and (in the second place and expanded) the LOOP example. This example expands upon the vibrato by decaying the volume to zero. The following example will fail to loop..

00 SKIP LOOP ON COUNT OVER
01 SET COUNT TO 03
02 DELAY 01
03 INC PITCH BY 01
04 LOOP TO ROW 02
05 SET COUNT TO 03
06 DELAY 01
07 DEC PITCH BY 01
08 LOOP TO ROW 06
09 SKIP LOOP ON VOLUME OVER
10 LOOP TO ROW 00

Because the skip condition VOLUME OVER looks for 0 or 15 in the Track Volume. If the pattern entry volume is 15 then it will not be changed by the time it reaches row 09.

The obvious change is to gradually decrement the volume beforehand..

00 SKIP LOOP ON COUNT OVER
01 SET COUNT TO 03
02 DELAY 01
03 INC PITCH BY 01
04 LOOP TO ROW 02
05 DEC VOLUME BY 01
06 SET COUNT TO 03
07 DELAY 01
08 DEC PITCH BY 01
09 LOOP TO ROW 07
10 SKIP LOOP ON VOLUME OVER
11 LOOP TO ROW 00

FILTER

Range Shortcut Key
OFF or 1-4F(Repeat same key to switch between modes)

Filter masks the pitch registers reducing the pitch to 5 different range of frequencies.

The possible values are..

ValuePitch Range produced
1493Hz - 8Khz
2987Hz - 8Khz
31.9Khz - 8Khz
43.9Khz - 8Khz
57.8Khz - 8Khz

RND NOTE combined with FILTER 2, 3 or 4 will filter out the bottom notes and produce a more narrow bandwidth of pitches, not dissimilar to a babbling brook..

00 DELAY 01
01 RND NOTE
02 SET FILTER 02
03 LOOP TO ROW 00
04 END SFX!!

DELAY

Range Shortcut Key
1-10 D

Sets a delay in the SFX. The SFX will resume after the specified delay has expired. The Delay is based on the current SFX speed as set in the IRQ SFX command in the List Editor.

Delays are always required within Loops otherwise the changes would never be heard. If an SFX contains a Loop but no delay the Editor will not allow navigation away from the SFX until either the loop is removed or a Delay is placed in the loop.

SET COUNT TO

Range Shortcut Key
1 to 19 C

The counter is used to time events within the SFX. Only one counter exists and will count down to zero on each Loop command.

The intention of this command is to use it in conjunction with the SKIP LOOP ON COUNT OVER loop condition.

LOOP TO ROW

Range Shortcut Key
Up to 24 Rows back L

Loops back to the specified row. However if the SKIP condition is set the loop will depend on this. The value shown corresponds to the row the loop will jump to. This will always be above the LOOP row and the editor will not allow the value to be set outside the range. However the range cannot exceed more than 24 rows above the LOOP.

Note that deleting or inserting a row (Thereby shifting rows up or down respectively) will not update the Loop rows automatically. Therefore it is neccesary (after performing either of these operations) to check any existing loops in the SFX.

A smoother transition of the Pitch example given above may be achieved by using loops and the counter for each transitional change to the pitch and a big loop at the end to jump to the start again..

00 SKIP LOOP ON COUNT OVER
01 SET COUNT TO 03
02 DELAY 01
03 INC PITCH BY 01
04 LOOP TO ROW 02
05 SET COUNT TO 03
06 DELAY 01
07 DEC PITCH BY 01
08 LOOP TO ROW 06
09 SKIP LOOP UNCONDITIONALLY
10 LOOP TO ROW 00

Note that the condition need only be set once for it to affect both loops but the last condition is set to prevent the final big loop being skipped.

RND

Range Shortcut Key
- R(Repeat same key to switch between modes)

This command will randomly set an element to a random value. the random value depends on the element changed.

The elements available are DELAY, NOISE, VOLUME, NOTE and PITCH.

RND values may be used to make a tune sound more humanistic than it may otherwise sound. It may also be used for sound effects such as a river torrent or an explosion.

RND NOTE can be used in a short SFX to produce a computer like sound..

00 DELAY 01
01 RND NOTE
02 LOOP TO ROW 00
03 END SFX!!

SET EG WAVE

Range Shortcut Key
4 Waveforms W

Sets the EG Waveform. The EG may be set to..

WaveformGraphicNotes
SAWTOOTH \\\
Repeating
TRIANGLE /\/\/ Repeating
DECAY \ Decay Ramp
ATTACK /—- Rise to maximum

SFX Validation Process

SFX are validated to ensure they do not incur an infinite loop.

An Infinite loop will occur if the rows within a loop do not contain a delay. In this case the SFX will eternally loop freezing the music and the editor too.

Rather than scan the SFX for delays within loops before the end, the validation process runs through the sfx and performs two counts. Counter 1 counts down from 15 to 0 but is reset to 15 when a DELAY is found. Counter 2 counts down from 255 to 0. If Counter 1 reaches 0 then an infinite loop is reported. If counter 2 reaches zero then the SFX is deemed safe. If (within this time) the SFX ends then the SFX is also deemed safe.

This method has been chosen to allow infinite loops with delays to be used. This also makes the rule that a valid SFX is one that does not perform more than 15 steps without a delay. This also protects the SFX from excessive delays in processing.

Example SFX

A very simple SFX would consist of a volume fade from 15 to 0. The steps would look like this..

00 SKIP LOOP WHEN VOLUME OVER
01 DELAY 01
02 DEC VOLUME BY 01
03 LOOP TO ROW 01
04 END SFX!!

This first tells the SFX that when the Volume reaches either 0 or 15 to not loop. The next row then sets a delay. Every Effect that contains a loop must also hold a delay to allow the player to handle other events. The next row decrements the volume by 1. The Loop will now jump back to Row 1 so long as the volume has not reached 0. When the Volume has reached zero the loop will be skipped and the SFX will end. This SFX may be used on any Pattern Note whose volume ranges 0 to 15(or 0 to 63 with higher resolution).


Another example SFX would be a simple Drum. A drum is simulated by a rapid fall of pitch over time.

00 SKIP LOOP WHEN VOLUME OVER
01 DELAY 01
02 DEC NOTE BY 03
03 DEC VOLUME BY 01
04 LOOP TO ROW 01
05 END SFX!!

The SFX is exactly the same as the previous example except now it also decrements the note on each loop by 3.


Another SFX commonly used in Trackers is the Ornament or Trill which continuely jumps between three different notes to create a simulated chord.

00 DELAY 02
01 INC NOTE BY 05
02 DELAY 02
03 INC NOTE BY 04
04 DELAY 02
05 DEC NOTE BY 09
06 LOOP TO ROW 00


On entering the SFX the originally note will sound for 2 delay ticks. Then the note will be raised by 5 semitones and played again for 2 ticks. Then the note is raised once more by 4 semitones and played for 2 ticks. Finally the original note is restored by reducing the note by 9 semitones The loop both forces the play to repeat and enters row 00 which will delay the original note again for 2 ticks.


A variation of the above SFX would be to gradually reduce the volume to zero then end..

00 SKIP LOOP WHEN VOLUME OVER
01 DELAY 02
02 INC NOTE BY 05
03 DELAY 02
04 DEC VOLUME BY 01
05 INC NOTE BY 04
06 DELAY 02
07 DEC NOTE BY 09
08 LOOP TO ROW 01
09 END SFX!!



The Counter can be used to create an envelope that reduces the volume(Decay) to a predetermined level for a time (sustain) then recede to zero (Release). This method can be used to create full controllable ADSR envelopes..

The first stage decays the volume from 15(If Pattern note entry volume set to 15) to 7(15-8)..

00 SKIP LOOP WHEN COUNT OVER
01 SET COUNT TO 8
02 DELAY 01
03 DEC VOLUME BY 01
04 LOOP TO ROW 02

The second stage waits for 10 Ticks at volume 7.
05 DELAY 10

The final stage recedes the volume to 0..
06 SKIP LOOP WHEN VOLUME OVER
07 DELAY 01
08 DEC VOLUME BY 01
09 LOOP TO ROW 07
10 END SFX!!

oric/ayt/sfx_effects_editor.txt · Last modified: 2009/02/22 17:55 by twilighte