Art Of Noise 1.5 preview module structure
-----------------------------------------
by Laurent Clevy (lclevy@club-internet.fr)

version : 29 nov 1999


Chorus - Art of Noise was written by Bastian Spiegel (Twice/Lego)



offset	type 	size 	comments
--------------------------------------------------------------------
0x0000	B	4	"AON4"/"AON8" (4 voices/8 voices)
0x0004	B	42	"artofnoise by bastian spiegel (twice/lego)"

0x002e	B	4	"NAME"
	L	1	length
	B	???	songname

???	B	4	"AUTH"
	L	1	length
	B	???	author name

???	B	4	"DATE"
	L	1	length
	B	???	song date

???	B	4	"RMRK"
	L	1	length
	B	???	remark text

???	B	4	"INFO"
	L	1	length (=4 ?)
	B	1	(always 0x34 ?)
	B	1	song length
	B	1
	B	1
	
???	B	4	"ARPG"
	L	1	length (=0x40 ?)
	L	???	arpeggio

???	B	4	"PLST"
	L	1	length
	B	???	playlist (patterns playing order)

???	B	4	"PATT"
	L	1	total patterns length (0x400*nb patterns)
	
	1 pattern = 64 pos
	1 pos = 4 voices
	1 voice =
		bytes
		0	B	1	note
		1	B	1	instrument (0-9A-Za-z)
		2	B	1	command
		3	B	1	parameter(s)
		
	total = 1024 bytes

???	B	4	"INST"
	L	1	length (0x20*number of inst)

	0x00	B	1	00=synth/01=sample
	0x01	B	1	volume
	0x02	B	1	finetune
	0x03	B	1	waveform-1

		Inst
		0x04	L	1	sample offset
		0x08	L	1	sample length
		0x0c	L	1	repeat offset
		0x10	L	1	repeat length
	
	or	Sample
		0x04	B	1	repeat len
		0x05	B	9	always 0 ?
		0x0a	B	1	vib param
		0x0b	B	1	vib delay
		0x0c	B	1	vib wave : 0=sinus, 1=triangle, 2=square, 3=off
		0x0d	B	1	wave speed
		0x0e	B	1	wave speed len
		0x0f	B	1	wave repeat
		0x10	B	1	wave rep len
		0x11	B	1	repctrl : 0=normal, 1=backwards, 2=pingpong
		0x12	B	11	always 0 ?
		0x1c	B	1	start
		0x1d	B	1	add
		0x1e	B	1	end
		0x1f	B	1	sub


???	B	4	"INAM"	(exists only if insts have names :-) )
	L	1	length (=0x7a0 ?  61 inst max * 0x20)
		0	B	32	inst name (zero terminated)
		...

???	B	4	"WLEN"
	L	1	length (=0x100 ? 0x40*4)
		0	L	1	1st wave length
		...

???	B	4	"WAVE"
	L	1	total waves length
		0	B	???	1st wave
		...


Example:
--------

000000	"AON4"
000004	"artofnoise by bastian spiegel (twice/lego)"
0x002e	"NAME"
	0000000c
	"back in time
	"AUTH"
	0000000a
	"twice/lego"
	"DATE"
	00000010
	"17-november-1994"
	"RMRK"
	00000190
	0a
	"Brr.. a cold and rainy november day.. I just came back from school"
	0a
	"and it's still quite early (9:30).. As I looked out of the window"
...
	"INFO"
	00000004
	34140000
	"ARPG"
	00000040
	00000000 30470000 30370000 30580000 30590000 00000000 00000000 00000000
	00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	"PLST"
	00000014
	00000102 03040405 05060707 03040405 05060707
	"PATT"
	00002000
	1e0 10 f06	000 00 c00	360 20 f7d	000 00 e01
	000 01 210	000 00 000	000 00 000	000 00 000
	2a0 11 110	000 00 000	000 00 000	310 20 c38
...
	25050000 20031110 00000000 00000000

0x0227c	"INST"
	00000100
0x02284	01 40 00 00  20 011e00  0001 72 0a  00 01 10 00  0c 02 0000 00000000
		00000000 00000000
	01 40 00 02  10 011e00  0004 72 0a  00 01 10 00  0c 02 0000 00000000
		00000000 00000000
	01 40 00 05  10 010d00  0006 73 0a  01 01 10 00  10 02 0000 00000000
		00000000 00000000
	00 29 00 07 00000000 00000208 00000000 00000001 00000000 00000000
		00000000
	00 40 00 08 00000000 000001bc 00000000 00000001 00000000 00000000
		00000000
	00 40 00 09 00000000 000001fc 00000000 00000000 00000000 00000000
		00000000
	01 40 00 0a  08 011e00  0004 72 0a  00 01 10 00  0c 02 0000 00000000
		00000000 00000000
	01 2a 00 05  10 010d00  0006 71 0a  01 06 10 00  10 02 0000 00000000
		00000000 00000000
0x2384	"WLEN"
	00000100
	00000400 0000001e 00000200 0000001e 0000001e 00000200 0000000d 00000410
	00000378 000003f8 00000100 00000000 00000000 00000000 00000000 00000000
...
00248c	"WAVE"
	000014e7
	a6a6a6a6 a6a6a6a6 a6a6a6a6 a6a6a6a6 a6a6a6a6 a6a6a6a6 a6a6a6a6
...
	7f7f7f7f 7f7f7f7f 7f7f0000 7f7f7f7f
0x3970	7f7f7f7f 7f7f7f7f 7f7f7f
0x397A




ART OF NOISE V1.5  -  Player commands
-----------------------------------------------------------------------
0 - normal play or Arpeggio       0xy : x-first halfnote add, y-second
1 - slide Up                      1xx : upspeed                       
2 - slide Down                    2xx : downspeed                     
3 - tone Portamento               3xx : up/down speed
4 - vibrato                       4xy : x-speed,   y-depth
5 - tone Portamento + Vol. Slide  5xy : x-upspeed, y-downspeed
6 - vibrato + Volume Slide        6xy : x-upspeed, y-downspeed
7 - tremolo                       7xy : x-speed,   y-depth            
8 - NOT USED                                                          
9 - set SampleOffset              9xx : offset (23 -> 2300)           
A - volumeSlide                   Axy : x-upspeed, y-downspeed        
B - position Jump                 Bxx : songposition                  
C - set Volume                    Cxx : volume, 00-40                 
D - pattern Break                 Dxx : break position in next patt   
E0- set Filter                    E0x : 0-filter on, 1-filter off     
E1- fineSlide Up                  E1x : value                         
E2- fineSlide Down                E2x : value                         
E3- glissando Control             E3x : 0-off, 1-on (use with tonep.) 
E4- set Vibrato Waveform          E4x : 0-sine, 1-ramp down, 2-square 
E5- set Loop                      E5x : set loop point                
E6- jump to Loop                  E6x : jump to loop, play x times    
E7- set Tremolo Waveform          E7x : 0-sine, 1-ramp down. 2-square 
E8- NOT USED                                                          
E9- retrig Note                   E9x : retrig from note + x vblanks  
EA- fine VolumeSlide Up           EAx : add x to volume               
EB- fine VolumeSlide Down         EBx : subtract x from volume        
EC- noteCut                       ECx : cut from note + x vblanks     
ED- noteDelay                     EDx : delay note x vblanks          
EE- patternDelay                  EEx : delay pattern x notes         
F - Set Speed                     Fxx : speed (00-1F) / tempo (20-FF) 
G - new volume                    Gxy : set vol. to 4+(x*$4)+y vblanks
H - synth control                 Hxy : x<>0=Keep wave, y<>0=Keep Env.
I - wavetable speedcontrol        Ixy : wavespeed=x                   
J - set arpspeed                  Jxy : Set arpspd=y                  
K - set volume &do vibrato        Kxx : set volume=xx                 
L - fineslide&portamento UP       Lxy : volslide=x  , portamento=y    
M - fineslide&portamento DOWN     Mxy : volslide=x  , portamento=y    
N - avoid noise (wave<512bytes)   Nxy : y<>0=noiseavoid on y=0=off    
O - play samples >128k            Oxy : y<>0=on y=0=off               
P - fine volslide&vibrato         Pxy : x=up , y=down                 
Q - vol&portdown-slide (syndrums) Qxy : x=portdown , y=volslidedown   
R - set volume & tone portamento  Rxx : xx=new volume                 
S - finevolslide & tone portam.   Sxy : x=finevol up , y=finevol down
T - set track-volume              Txx : xx=new track-volume
U - set wavetable-mode            Uxy : x<>0=freeze wavetable
                                        y<>0=never reset wavetable
V - unused
W - unused
X - external event 1 (synchro)    Xxx : Event #1 set to xx
Y - external event 2 (synchro)    Yxx : Event #2 set to xx
Z - external event 3 (synchro)    Zxx : Event #3 set to xx



