Amos Professional Manual  Contents  Index

Memory Bank Structures


         REPT     Number_of_patterns
* We will now define a separate note list for each voice
* This is NOT essential, as the notes are TOTALLY independent of the voice number
* So the same note list can be used for ANY of the four voices if required
*
Voice_0_Note_List.pat:    
            dc.w   ""              * All the notes for voice 0 go here
Voice_1_Note_List.pat:
            dc.w   ""              * All the notes for voice 1 go here
Voice_2_Note_List.pat:
            dc.w   ""              * All the notes for voice 2 go here
Voice_3_Note_List.pat:
            dc.w   ""              * All the notes for voice 3 go here
         ENDR
* End Repeat

The Patterns
Unlike the Soundtracker system, Patterns are held as a simple list of notes, and they can be assigned to any of the four voices independently. Providing that the correct offset values are set, you can play the same pattern through all of the available voices simultaneously.

The AMOS Professional music format is closer to IFF music format than the standard Soundtracker system. Each effect, every instrument and each note is defined by a specific label. Several labels can be inserted in a sequence, and the AMOS Professional music routines will execute them one by one, until it finds the actual note to be played through a loudspeaker.

The labels are stored as two-byte words, using the following system:

+ A normal note:
         dc.w         %0000pppppppppppp
         * pppppppppppp defines the "period" of the sample
         * This will be poked directly into the Amiga's sound chips
         * Please see your technical reference manual for more details

The note will be played immediately, using the current instrument assigned to the voice.

Labels are defined by setting bit 15 of the note to 1. The general format is as follows:

         dc.w            %11111111 pppppppp
         * 11111111: the number of the label
         * pppppppp: a parameter value

Here is a full list of the possible label types:

 + PATTERN_END             label 0
         dc.w              %10000000 00000000
 + SET_VOLUME              label 3(1 and 2 are presently unused)
         dc.w              %10000011 vvvvvvvv
         * vvvvvvvv : volume level from 0 to 63
Back    Next
14.E.11