User Tools

Site Tools


oric:ayt:pattern_editor

The Pattern Editor contains up to 8 Tracks of Patterns configured in a List Track Row. Pattern Keys

Track Rests will display Blank Tracks. At the time of release the cursor may still move over these Track Rests but attempting to enter Note data will fail.

Also Highlighting is not permitted if an attempt is made to highlight accross Track Rests.

Pattern Heading

Each Pattern Column contains a heading which shows the Pattern being viewed (000) and the Tracks Channel Source. The Channel Source differs from the Sound Source in that it indicates the Physical Channel. This can be more useful than the SSID.

The possible Channel Resources are shown below together with the field usage

Channel Source letterChannel Source NameNote FieldVolume FieldSFX Field
AChannel ANoteVolumeSFX ID
BChannel BNoteVolumeSFX ID
CChannel CNoteVolumeSFX ID
NNoiseNoise Pitch(0-31)VolumeSFX ID
EEGEG Period(0-60)Wave CodeSFX ID
c(Special Command Character)Command Track(H Only)Command IDParam1Param2

Pattern Entries

Each Pattern Entry is composed of a Note, a Rest, a Volume Rest or a Bar. If Track H is the Command Pattern then each entry can be a Command, Rest or Bar.

Patterns are played from the top down at an even tempo (Tracked during play by a White square in the Pattern Index on the far left). Notes are placed in the list with Rests padded between. The distance the notes are apart (vertically) has a direct relationship to the time apart they are played.

Pattern Note Entry

A Pattern Note entry consists of a Note, Octave, Volume and SFX field. If the Track has a Sound Source(Or channel source) of Noise or EG the Note and Octave fields are combined into two Numeric fields where the two digit number represents the Source Pitch that is applied to the Sound Resource.

Pattern Note Field

This holds a Note from C to B(White notes) with optional Sharp(Black notes). The note displayed includes any Note Offset applied to the Track. The Note entered also observes this restriction.

If the Tracks SS is Noise then both Note and Octave display a single 2 digit number from 00 to 31. Values above 31 may currently be selected but will just cycle the lower range. A Noise Pitch of 00 is high and 31 is deep.

If the Tracks SS is EG then again both Note and Octave display a single 2 digit number but this time from 00 to 60. An EG Pitch of 00 is very high and 60 very low. The EG can generate both Triangle and Sawtooth. Sawtooth waveforms are double the frequency of Triangle waveforms based on the same value in the Note field. Below is a table of common Pitches to Notes (These only relate to EG)

EG PitchNote
60C-0
56C#0
53D-0
50D#0
47E-0
45F-0
42F#0
40G-0
38G#0
36A-0
34A#0
32B-0

Halving the values will double the frequency but the actual conceived pitch may be too crude a tuning. Doubling the values will halve the frequency and lower the octave by one (Equal tempered Scale).

Pattern Octave Field

The Pattern Octave range is always 5 octaves and by default ranges C-0 to C-5.

By using the Note Offset RWC in the List Editor (before the Track Row) it is possible to change the octave range from 0-5 to 4-9.

Pattern Volume Field

The Volume field holds the initial volume for the note. The field will always hold a volume relevant to the Sound Source used for the track.

Sound Source(SS)Volume ResolutionVolume range Shown
00,01,024 Bit00,01,02.. ..13,14,15
00,01,026 Bit00,04,08.. ..52,56,63
03,04,05-00,01,01.. ..01,01,01(Off or On)
06,07,08,09,10,11,12-00,01,02.. ..13,14,15(EG Wave Code)
13,14,15,16,17,18,19-00,01,01.. ..01,01,01(Off or On)

Pattern Volume may also be considered the Maximum volume of a Track because of the way the Effects can work. For example if an SFX is set up like the following

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

Then setting the volume to 0 will immediately exit the SFX with no sound output. However setting the Volume to 5 will decay the volume from 5 to 0. Setting the Volume to 10 will decay the volume from 10 to 0.

An attack ramp can be accomplished with a similar maximum volume property as follows

00 SET COUNT TO 10
01 SKIP LOOP ON COUNTER OVER
02 DELAY 01
03 INC VOLUME BY 01
04 LOOP TO ROW 02
05 END SFX!!

Then setting the volume to 0 will raise the volume to 10 in the SFX where it will then level off. However setting the Volume to 5 will raise the volume to 15. Setting the volume to 10 will raise the volume to 15.

If the Track is set to EG then the Volume becomes the Wave Code from 00 to 15. The Wave Code is written directly into the Sound Chip and the following codes are known.

Wave CodeCycleEnvelope ShapeWaveform name
8BistableHigh Slope Low Repeating)Sawtooth
9MonostableHigh Slope Low
10BistableHigh Slope Low Slope High RepeatingTriangle
11MonostableHigh Slope Low then High
12BistableLow Slope High RepeatingSawtooth
13MonostableLow Slope High
14BistableLow Slope High Slope Low RepeatingTriangle
15MonostableLow Slope High then Low

Pattern SFX Field

The SFX field holds the SFX ID or number which ranges 0 to 63.

Any SFX name is displayed in the Status bar when the cursor moves over this field.

The SFX is based on the Tracks current Note and Volume. This will have been set in the Note and Volume entries. An SFX is expected to continue to run after the Note and into the Rests. Any subsequent Note will override the current SFX.

Any Volume Rest will override the current Tracks Volume level and may affect the SFX.

Pattern Rest Entry

A Pattern Rest does not affect the note but rests the Pattern row for this track.

Pattern Volume Rest Entry

A Volume Rest may be used to silence or alter the Volume of the last note overriding the SFX.

Pattern Bar Entry

A Pattern Bar may be placed in any track (apart from a rested one) and will terminate the complete group of Patterns. The next List event will then be executed. If no Bar is used the Pattern will end normally after reaching row 63.

Pattern Command Entry

The Pattern Command entry can only exist on Track H. 4 Commands are provided currently and are shown in the editor as the Command Icon, Command ID(0-3) and any parameters.

Pattern Command ID 0(Pitchbend)

Once Pitchbend has been placed in Command Track H(FUNC B) each Track required for pitchbend in that row must be flagged with FUNC C whilst in that Track. Pitchbend will bend the previous note to the current note in the row at the rate set in the Pitchbend command.

For example

A B C D E F G H
C-3
C-4c3X

The note C-3 (In Track A) will begin to rise to C-4 on the C-4 row. The amount of time that the note takes to rise will depend on the value set in X.

  • Pitchbend may ascend/descend multiple Tracks on the same row but always at the rate set in X.
  • Pitchbend can act on all types of Sound Sources including EG and Noise.
  • Pitchbend will operate on the Note at the Music frequency but will not be dependant on the Song Tempo.

The Pitchbend rate has been gradiented to cover both fractionally small steps (0) to large steps (15) to reach the destination. This is because as the pitch falls the number of steps between each note increases exponentially.

Pattern Command ID 1(Trigger Out)

Trigger Out triggers an external event by writing to a zero page location between $F0 and $FF with a specified value.

The first parameter following the Command ID of 0 is the location above $F0 and the second parameter is the value to write (between 0 and 63).

Pattern Command ID 2(Trigger In)

Trigger In will pause the pattern (and all music) until the specified location contains the specified value.

The first parameter following the Command ID of 0 is the location above $F0 and the second parameter is the value to check for (between 0 and 63).

Pattern Command ID 3(Song Tempo)

Changes the Song Tempo for all subsequent notes until either the end of the song or another Command ID 2 is used.

The Song Tempo ranges 0 to 63 and is shown in the last column of the command entry.

Pattern Command ID 4(EG Cycle)

There are two distinct methods of constructing music in AYT. Either with each Track being dedicated to a particular sound source (such as Chip or EG) or that music is constructed from 3 Track Channels that then call upon the other resources when required. Both modes are possible and this command supports the latter technique. It allows the EG cycle register to be directly written to whilst also providing the EG Flag to enabled or disabled on all active tracks.

Pattern Command ID 5(EG Period)

Allows both the High and Low registers of the Envelope Period to be set. Usually AYT assumes the Hardware Envelope generator will be a wave generator (set to bistable mode) but this command allows one to set any period value in the range 0 to 4095. It is also designed to be invoked outside of sharing, but could be used during sharing to set the high bits of the Period.

oric/ayt/pattern_editor.txt · Last modified: 2009/02/22 00:43 by twilighte