4 ** XModule replay routine 1.0
6 ** Copyright (C) 1995 Bernardo Innocenti
8 ** Assembler structure definitions for player
16 STRUCTURE PlayerCmd,MN_SIZE
31 EITEM PERR_UNKNOWN_COMMAND
36 STRUCTURE NoteStruct,0
37 APTR nst_Channels ; pointer to a list of notechannels
38 ULONG nst_Flags ; misc flags (see below)
39 ULONG nst_MaxFrequency ; max. frequency of this player (28,867 Hz in DMA mode)
40 UWORD nst_MaxVolume ; max. volume of this player (in most cases 64)
41 STRUCT nst_Reserved,18 ; reserved for future use (must be 0 for now)
45 BITDEF NST,Dummy,0 ; only a dummy-NoteStruct (no NotePlayer needed)
46 BITDEF NST,Period,1 ; Amiga period supplied instead of frequency
47 BITDEF NST,ExtPeriod,2 ; Extended period (period*4) supplied instead of frequency
48 BITDEF NST,NTSCTiming,3 ; Period/ExtPeriod supplied in NTSC instead of PAL
49 BITDEF NST,EvenLength,4 ; Samplelength supplied as WORD instead of LONG
50 BITDEF NST,AllRepeats,5 ; play Repeats even if no One-Shot part was played yet
52 BITDEF NST,Reverse,8 ; little endian byte ordering
53 BITDEF NST,Signed,9 ; sample data is signed linear (2's complement)
54 BITDEF NST,Unsigned,10 ; -"- unsigned linear
55 BITDEF NST,Ulaw,11 ; -"- U-law (logarithmic)
56 BITDEF NST,Alaw,12 ; -"- A-law (logarithmic)
57 BITDEF NST,Float,13 ; -"- IEEE floats
59 BITDEF NST,7Bit,16 ; sample data is in 7-bit format
60 BITDEF NST,8Bit,17 ; -"- bytes
61 BITDEF NST,16Bit,18 ; -"- 16-bit words
62 BITDEF NST,24Bit,19 ; -"- 24-bit data
63 BITDEF NST,32Bit,20 ; -"- longwords
64 BITDEF NST,64Bit,21 ; -"- quadwords
66 NSTD_TypeMask EQU NSTF_Reverse!NSTF_Signed!NSTF_Unsigned!NSTF_Ulaw!NSTF_Alaw!NSTF_Float
67 NSTD_SizeMask EQU NSTF_7Bit!NSTF_8Bit!NSTF_16Bit!NSTF_24Bit!NSTF_32Bit!NSTF_64Bit
70 STRUCTURE NoteChannel,0
71 APTR nch_NextChannel ; next channel in the list (NULL if last)
72 ULONG nch_NotePlayer ; for use by the noteplayer (the deliplayer must ignore this)
73 WORD nch_Reserved0 ; reserved for future use (must be 0 for now)
74 UBYTE nch_Private ; just what it says
75 UBYTE nch_Changed ; what has changed since last call
76 WORD nch_StereoPos ; set this field when the InitNote function is called
77 WORD nch_Stereo ; describes "where" this channel is supposed to play
78 APTR nch_SampleStart ; ^sampledata
79 ULONG nch_SampleLength ; size of sample
80 APTR nch_RepeatStart ; ^repeat part of sample
81 ULONG nch_RepeatLength ; size of repeat part
82 ULONG nch_Frequency ; frequency (or period) of sample
83 UWORD nch_Volume ; volume of sample
84 STRUCT nch_Reserved1,26 ; reserved for future use (must be 0 for now)
85 LABEL NoteChannel_SIZE
88 BITDEF NCH,Stereo,0 ; pan position of channel has changed (???)
89 BITDEF NCH,Sample,1 ; one-shot part of sample has changed
90 BITDEF NCH,Repeat,2 ; repeat part of sample has changed
91 BITDEF NCH,Frequency,3 ; frequency has changed
92 BITDEF NCH,Volume,4 ; volume (or pan position ???) has changed
93 BITDEF NCH,Trigger,5 ; trigger sample
95 BITDEF NCH,Loop,16 ; sample has looped at least once (set by DeliTracker)
97 NCHD_Ignore EQU -32768 ; ignore this notechannel
98 NCHD_Balanced EQU 0 ; play balanced on both sides
99 NCHD_FarLeft EQU -32767 ; play only on left speaker
100 NCHD_FarRight EQU 32767 ; play only on right speaker