xref: /freebsd/contrib/file/magic/Magdir/audio (revision 58a0f0d00c0cc4a90ce584a61470290751bfcac7)
1b6cee71dSXin LI
2b6cee71dSXin LI#------------------------------------------------------------------------------
3*58a0f0d0SEitan Adler# $File: audio,v 1.86 2018/03/11 00:53:11 christos Exp $
4b6cee71dSXin LI# audio:  file(1) magic for sound formats (see also "iff")
5b6cee71dSXin LI#
6b6cee71dSXin LI# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
7b6cee71dSXin LI# and others
8b6cee71dSXin LI#
9b6cee71dSXin LI
10b6cee71dSXin LI# Sun/NeXT audio data
11b6cee71dSXin LI0	string		.snd		Sun/NeXT audio data:
12b6cee71dSXin LI>12	belong		1		8-bit ISDN mu-law,
13b6cee71dSXin LI!:mime	audio/basic
14b6cee71dSXin LI>12	belong		2		8-bit linear PCM [REF-PCM],
15b6cee71dSXin LI!:mime	audio/basic
16b6cee71dSXin LI>12	belong		3		16-bit linear PCM,
17b6cee71dSXin LI!:mime	audio/basic
18b6cee71dSXin LI>12	belong		4		24-bit linear PCM,
19b6cee71dSXin LI!:mime	audio/basic
20b6cee71dSXin LI>12	belong		5		32-bit linear PCM,
21b6cee71dSXin LI!:mime	audio/basic
22b6cee71dSXin LI>12	belong		6		32-bit IEEE floating point,
23b6cee71dSXin LI!:mime	audio/basic
24b6cee71dSXin LI>12	belong		7		64-bit IEEE floating point,
25b6cee71dSXin LI!:mime	audio/basic
26b6cee71dSXin LI>12	belong		8		Fragmented sample data,
27b6cee71dSXin LI>12	belong		10		DSP program,
28b6cee71dSXin LI>12	belong		11		8-bit fixed point,
29b6cee71dSXin LI>12	belong		12		16-bit fixed point,
30b6cee71dSXin LI>12	belong		13		24-bit fixed point,
31b6cee71dSXin LI>12	belong		14		32-bit fixed point,
32b6cee71dSXin LI>12	belong		18		16-bit linear with emphasis,
33b6cee71dSXin LI>12	belong		19		16-bit linear compressed,
34b6cee71dSXin LI>12	belong		20		16-bit linear with emphasis and compression,
35b6cee71dSXin LI>12	belong		21		Music kit DSP commands,
36b6cee71dSXin LI>12	belong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
37b6cee71dSXin LI!:mime  audio/x-adpcm
38b6cee71dSXin LI>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
39b6cee71dSXin LI>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
40b6cee71dSXin LI>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
41b6cee71dSXin LI>12	belong		27		8-bit A-law (CCITT G.711),
42b6cee71dSXin LI>20	belong		1		mono,
43b6cee71dSXin LI>20	belong		2		stereo,
44b6cee71dSXin LI>20	belong		4		quad,
45b6cee71dSXin LI>16	belong		>0		%d Hz
46b6cee71dSXin LI
47b6cee71dSXin LI# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
48b6cee71dSXin LI# that uses little-endian encoding and has a different magic number
49b6cee71dSXin LI0	lelong		0x0064732E	DEC audio data:
50b6cee71dSXin LI>12	lelong		1		8-bit ISDN mu-law,
51b6cee71dSXin LI!:mime	audio/x-dec-basic
52b6cee71dSXin LI>12	lelong		2		8-bit linear PCM [REF-PCM],
53b6cee71dSXin LI!:mime	audio/x-dec-basic
54b6cee71dSXin LI>12	lelong		3		16-bit linear PCM,
55b6cee71dSXin LI!:mime	audio/x-dec-basic
56b6cee71dSXin LI>12	lelong		4		24-bit linear PCM,
57b6cee71dSXin LI!:mime	audio/x-dec-basic
58b6cee71dSXin LI>12	lelong		5		32-bit linear PCM,
59b6cee71dSXin LI!:mime	audio/x-dec-basic
60b6cee71dSXin LI>12	lelong		6		32-bit IEEE floating point,
61b6cee71dSXin LI!:mime	audio/x-dec-basic
62b6cee71dSXin LI>12	lelong		7		64-bit IEEE floating point,
63b6cee71dSXin LI!:mime	audio/x-dec-basic
64b6cee71dSXin LI>12	belong		8		Fragmented sample data,
65b6cee71dSXin LI>12	belong		10		DSP program,
66b6cee71dSXin LI>12	belong		11		8-bit fixed point,
67b6cee71dSXin LI>12	belong		12		16-bit fixed point,
68b6cee71dSXin LI>12	belong		13		24-bit fixed point,
69b6cee71dSXin LI>12	belong		14		32-bit fixed point,
70b6cee71dSXin LI>12	belong		18		16-bit linear with emphasis,
71b6cee71dSXin LI>12	belong		19		16-bit linear compressed,
72b6cee71dSXin LI>12	belong		20		16-bit linear with emphasis and compression,
73b6cee71dSXin LI>12	belong		21		Music kit DSP commands,
74b6cee71dSXin LI>12	lelong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
75b6cee71dSXin LI!:mime	audio/x-dec-basic
76b6cee71dSXin LI>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
77b6cee71dSXin LI>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
78b6cee71dSXin LI>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
79b6cee71dSXin LI>12	belong		27		8-bit A-law (CCITT G.711),
80b6cee71dSXin LI>20	lelong		1		mono,
81b6cee71dSXin LI>20	lelong		2		stereo,
82b6cee71dSXin LI>20	lelong		4		quad,
83b6cee71dSXin LI>16	lelong		>0		%d Hz
84b6cee71dSXin LI
85b6cee71dSXin LI# Creative Labs AUDIO stuff
86b6cee71dSXin LI0	string	MThd			Standard MIDI data
87b6cee71dSXin LI!:mime	audio/midi
88b6cee71dSXin LI>8 	beshort	x			(format %d)
89b6cee71dSXin LI>10	beshort	x			using %d track
90b6cee71dSXin LI>10	beshort		>1		\bs
91b6cee71dSXin LI>12	beshort&0x7fff	x		at 1/%d
92b6cee71dSXin LI>12	beshort&0x8000	>0		SMPTE
93b6cee71dSXin LI
94b6cee71dSXin LI0	string	CTMF			Creative Music (CMF) data
95b6cee71dSXin LI!:mime	audio/x-unknown
96b6cee71dSXin LI0	string	SBI			SoundBlaster instrument data
97b6cee71dSXin LI!:mime	audio/x-unknown
98b6cee71dSXin LI0	string	Creative\ Voice\ File	Creative Labs voice data
99b6cee71dSXin LI!:mime	audio/x-unknown
100b6cee71dSXin LI# is this next line right?  it came this way...
101b6cee71dSXin LI>19	byte	0x1A
102b6cee71dSXin LI>23	byte	>0			- version %d
103b6cee71dSXin LI>22	byte	>0			\b.%d
104b6cee71dSXin LI
105b6cee71dSXin LI# first entry is also the string "NTRK"
106b6cee71dSXin LI0	belong		0x4e54524b	MultiTrack sound data
107b6cee71dSXin LI>4	belong		x		- version %d
108b6cee71dSXin LI
109b6cee71dSXin LI# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
110b6cee71dSXin LI# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
111b6cee71dSXin LI0	string		EMOD		Extended MOD sound data,
112b6cee71dSXin LI>4	byte&0xf0	x		version %d
113b6cee71dSXin LI>4	byte&0x0f	x		\b.%d,
114b6cee71dSXin LI>45	byte		x		%d instruments
115b6cee71dSXin LI>83	byte		0		(module)
116b6cee71dSXin LI>83	byte		1		(song)
117b6cee71dSXin LI
118b6cee71dSXin LI# Real Audio (Magic .ra\0375)
119b6cee71dSXin LI0	belong		0x2e7261fd	RealAudio sound file
120b6cee71dSXin LI!:mime	audio/x-pn-realaudio
121b6cee71dSXin LI0	string		.RMF\0\0\0	RealMedia file
122b6cee71dSXin LI!:mime	application/vnd.rn-realmedia
123b6cee71dSXin LI#video/x-pn-realvideo
124b6cee71dSXin LI#video/vnd.rn-realvideo
125b6cee71dSXin LI#application/vnd.rn-realmedia
126b6cee71dSXin LI#	sigh, there are many mimes for that but the above are the most common.
127b6cee71dSXin LI
128b6cee71dSXin LI# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
129b6cee71dSXin LI# Oct 31, 1995
130b6cee71dSXin LI# fixed by <doj@cubic.org> 2003-06-24
131b6cee71dSXin LI# Too short...
132b6cee71dSXin LI#0	string		MTM		MultiTracker Module sound file
133b6cee71dSXin LI#0	string		if		Composer 669 Module sound data
134b6cee71dSXin LI#0	string		JN		Composer 669 Module sound data (extended format)
135b6cee71dSXin LI0	string		MAS_U		ULT(imate) Module sound data
136b6cee71dSXin LI
137b6cee71dSXin LI#0	string		FAR		Module sound data
138b6cee71dSXin LI#>4	string		>\15		Title: "%s"
139b6cee71dSXin LI
140b6cee71dSXin LI0x2c	string		SCRM		ScreamTracker III Module sound data
141b6cee71dSXin LI>0	string		>\0		Title: "%s"
142b6cee71dSXin LI
143b6cee71dSXin LI# Gravis UltraSound patches
144b6cee71dSXin LI# From <ache@nagual.ru>
145b6cee71dSXin LI
146b6cee71dSXin LI0	string		GF1PATCH110\0ID#000002\0	GUS patch
147b6cee71dSXin LI0	string		GF1PATCH100\0ID#000002\0	Old GUS	patch
148b6cee71dSXin LI
149b6cee71dSXin LI# mime types according to http://www.geocities.com/nevilo/mod.htm:
150b6cee71dSXin LI#	audio/it	.it
151b6cee71dSXin LI#	audio/x-zipped-it	.itz
152b6cee71dSXin LI#	audio/xm	fasttracker modules
153b6cee71dSXin LI#	audio/x-s3m	screamtracker modules
154b6cee71dSXin LI#	audio/s3m	screamtracker modules
155b6cee71dSXin LI#	audio/x-zipped-mod	mdz
156b6cee71dSXin LI#	audio/mod	mod
157b6cee71dSXin LI#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
158b6cee71dSXin LI
159b6cee71dSXin LI#
160b6cee71dSXin LI# Taken from loader code from mikmod version 2.14
161b6cee71dSXin LI# by Steve McIntyre (stevem@chiark.greenend.org.uk)
162b6cee71dSXin LI# <doj@cubic.org> added title printing on 2003-06-24
163b6cee71dSXin LI0	string	MAS_UTrack_V00
164b6cee71dSXin LI>14	string	>/0		ultratracker V1.%.1s module sound data
165b6cee71dSXin LI!:mime	audio/x-mod
166b6cee71dSXin LI#audio/x-tracker-module
167b6cee71dSXin LI
168b6cee71dSXin LI0	string	UN05		MikMod UNI format module sound data
169b6cee71dSXin LI
170b6cee71dSXin LI0	string	Extended\ Module: Fasttracker II module sound data
171b6cee71dSXin LI!:mime	audio/x-mod
172b6cee71dSXin LI#audio/x-tracker-module
173b6cee71dSXin LI>17	string	>\0		Title: "%s"
174b6cee71dSXin LI
175b6cee71dSXin LI21	string/c	=!SCREAM!	Screamtracker 2 module sound data
176b6cee71dSXin LI!:mime	audio/x-mod
177b6cee71dSXin LI#audio/x-screamtracker-module
178b6cee71dSXin LI21	string	BMOD2STM	Screamtracker 2 module sound data
179b6cee71dSXin LI!:mime	audio/x-mod
180b6cee71dSXin LI#audio/x-screamtracker-module
181b6cee71dSXin LI1080	string	M.K.		4-channel Protracker module sound data
182b6cee71dSXin LI!:mime	audio/x-mod
183b6cee71dSXin LI#audio/x-protracker-module
184b6cee71dSXin LI>0	string	>\0		Title: "%s"
185b6cee71dSXin LI1080	string	M!K!		4-channel Protracker module sound data
186b6cee71dSXin LI!:mime	audio/x-mod
187b6cee71dSXin LI#audio/x-protracker-module
188b6cee71dSXin LI>0	string	>\0		Title: "%s"
189b6cee71dSXin LI1080	string	FLT4		4-channel Startracker module sound data
190b6cee71dSXin LI!:mime	audio/x-mod
191b6cee71dSXin LI#audio/x-startracker-module
192b6cee71dSXin LI>0	string	>\0		Title: "%s"
193b6cee71dSXin LI1080	string	FLT8		8-channel Startracker module sound data
194b6cee71dSXin LI!:mime	audio/x-mod
195b6cee71dSXin LI#audio/x-startracker-module
196b6cee71dSXin LI>0	string	>\0		Title: "%s"
197b6cee71dSXin LI1080	string	4CHN		4-channel Fasttracker module sound data
198b6cee71dSXin LI!:mime	audio/x-mod
199b6cee71dSXin LI#audio/x-fasttracker-module
200b6cee71dSXin LI>0	string	>\0		Title: "%s"
201b6cee71dSXin LI1080	string	6CHN		6-channel Fasttracker module sound data
202b6cee71dSXin LI!:mime	audio/x-mod
203b6cee71dSXin LI#audio/x-fasttracker-module
204b6cee71dSXin LI>0	string	>\0		Title: "%s"
205b6cee71dSXin LI1080	string	8CHN		8-channel Fasttracker module sound data
206b6cee71dSXin LI!:mime	audio/x-mod
207b6cee71dSXin LI#audio/x-fasttracker-module
208b6cee71dSXin LI>0	string	>\0		Title: "%s"
209b6cee71dSXin LI1080	string	CD81		8-channel Octalyser module sound data
210b6cee71dSXin LI!:mime	audio/x-mod
211b6cee71dSXin LI#audio/x-octalysertracker-module
212b6cee71dSXin LI>0	string	>\0		Title: "%s"
213b6cee71dSXin LI1080	string	OKTA		8-channel Octalyzer module sound data
214b6cee71dSXin LI!:mime	audio/x-mod
215b6cee71dSXin LI#audio/x-octalysertracker-module
216b6cee71dSXin LI>0	string	>\0		Title: "%s"
217b6cee71dSXin LI# Not good enough.
218b6cee71dSXin LI#1082	string	CH
219b6cee71dSXin LI#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
220b6cee71dSXin LI1080	string	16CN		16-channel Taketracker module sound data
221b6cee71dSXin LI!:mime	audio/x-mod
222b6cee71dSXin LI#audio/x-taketracker-module
223b6cee71dSXin LI>0	string	>\0		Title: "%s"
224b6cee71dSXin LI1080	string	32CN		32-channel Taketracker module sound data
225b6cee71dSXin LI!:mime	audio/x-mod
226b6cee71dSXin LI#audio/x-taketracker-module
227b6cee71dSXin LI>0	string	>\0		Title: "%s"
228b6cee71dSXin LI
229b6cee71dSXin LI# TOC sound files -Trevor Johnson <trevor@jpj.net>
230b6cee71dSXin LI#
231b6cee71dSXin LI0       string          TOC             TOC sound file
232b6cee71dSXin LI
233b6cee71dSXin LI# sidfiles <pooka@iki.fi>
234b6cee71dSXin LI# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
235b6cee71dSXin LI0	string		SIDPLAY\ INFOFILE	Sidplay info file
236b6cee71dSXin LI
237b6cee71dSXin LI0	string		PSID			PlaySID v2.2+ (AMIGA) sidtune
238b6cee71dSXin LI>4	beshort		>0			w/ header v%d,
239b6cee71dSXin LI>14	beshort		=1			single song,
240b6cee71dSXin LI>14	beshort		>1			%d songs,
241b6cee71dSXin LI>16	beshort		>0			default song: %d
242b6cee71dSXin LI>0x16	string		>\0			name: "%s"
243b6cee71dSXin LI>0x36	string		>\0			author: "%s"
244b6cee71dSXin LI>0x56	string		>\0			copyright: "%s"
245b6cee71dSXin LI
246b6cee71dSXin LI0	string		RSID			RSID sidtune PlaySID compatible
247b6cee71dSXin LI>4	beshort		>0			w/ header v%d,
248b6cee71dSXin LI>14	beshort		=1			single song,
249b6cee71dSXin LI>14	beshort		>1			%d songs,
250b6cee71dSXin LI>16	beshort		>0			default song: %d
251b6cee71dSXin LI>0x16	string		>\0			name: "%s"
252b6cee71dSXin LI>0x36	string		>\0			author: "%s"
253b6cee71dSXin LI>0x56	string		>\0			copyright: "%s"
254b6cee71dSXin LI
255b6cee71dSXin LI# IRCAM sound files - Michael Pruett <michael@68k.org>
256b6cee71dSXin LI# http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html
257b6cee71dSXin LI0	belong		0x64a30100		IRCAM file (VAX little-endian)
258b6cee71dSXin LI0	belong		0x0001a364		IRCAM file (VAX big-endian)
259b6cee71dSXin LI0	belong		0x64a30200		IRCAM file (Sun big-endian)
260b6cee71dSXin LI0	belong		0x0002a364		IRCAM file (Sun little-endian)
261b6cee71dSXin LI0	belong		0x64a30300		IRCAM file (MIPS little-endian)
262b6cee71dSXin LI0	belong		0x0003a364		IRCAM file (MIPS big-endian)
263b6cee71dSXin LI0	belong		0x64a30400		IRCAM file (NeXT big-endian)
264b6cee71dSXin LI0	belong		0x64a30400		IRCAM file (NeXT big-endian)
265b6cee71dSXin LI0	belong		0x0004a364		IRCAM file (NeXT little-endian)
266b6cee71dSXin LI
267b6cee71dSXin LI# NIST SPHERE <mpruett@sgi.com>
268b6cee71dSXin LI0	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
269b6cee71dSXin LI
270b6cee71dSXin LI# Sample Vision <mpruett@sgi.com>
271b6cee71dSXin LI0	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
272b6cee71dSXin LI
273b6cee71dSXin LI# Audio Visual Research <tonigonenstein@users.sourceforge.net>
274b6cee71dSXin LI0	string		2BIT			Audio Visual Research file,
275b6cee71dSXin LI>12	beshort		=0			mono,
276b6cee71dSXin LI>12	beshort		=-1			stereo,
277b6cee71dSXin LI>14	beshort		x			%d bits
278b6cee71dSXin LI>16	beshort		=0			unsigned,
279b6cee71dSXin LI>16	beshort		=-1			signed,
280b6cee71dSXin LI>22	belong&0x00ffffff	x		%d Hz,
281b6cee71dSXin LI>18	beshort		=0			no loop,
282b6cee71dSXin LI>18	beshort		=-1			loop,
283b6cee71dSXin LI>21	ubyte		<128			note %d,
284b6cee71dSXin LI>22	byte		=0			replay 5.485 KHz
285b6cee71dSXin LI>22	byte		=1			replay 8.084 KHz
286b6cee71dSXin LI>22	byte		=2			replay 10.971 KHz
287b6cee71dSXin LI>22	byte		=3			replay 16.168 KHz
288b6cee71dSXin LI>22	byte		=4			replay 21.942 KHz
289b6cee71dSXin LI>22	byte		=5			replay 32.336 KHz
290b6cee71dSXin LI>22	byte		=6			replay 43.885 KHz
291b6cee71dSXin LI>22	byte		=7			replay 47.261 KHz
292b6cee71dSXin LI
293b6cee71dSXin LI# SGI SoundTrack <mpruett@sgi.com>
294b6cee71dSXin LI0	string		_SGI_SoundTrack		SGI SoundTrack project file
295b6cee71dSXin LI# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
296b6cee71dSXin LI0	string		ID3	Audio file with ID3 version 2
297b6cee71dSXin LI>3	byte		x	\b.%d
298b6cee71dSXin LI>4	byte		x	\b.%d
299b6cee71dSXin LI>>5	byte		&0x80	\b, unsynchronized frames
300b6cee71dSXin LI>>5	byte		&0x40	\b, extended header
301b6cee71dSXin LI>>5	byte		&0x20	\b, experimental
302b6cee71dSXin LI>>5	byte		&0x10	\b, footer present
3035f0216bdSXin LI>(6.I+10)	indirect	x	\b, contains:
304b6cee71dSXin LI
305b6cee71dSXin LI# NSF (NES sound file) magic
306b6cee71dSXin LI0	string		NESM\x1a	NES Sound File
307b6cee71dSXin LI>14	string		>\0		("%s" by
308b6cee71dSXin LI>46	string		>\0		%s, copyright
309b6cee71dSXin LI>78	string		>\0		%s),
310b6cee71dSXin LI>5	byte		x		version %d,
311b6cee71dSXin LI>6	byte		x		%d tracks,
312b6cee71dSXin LI>122	byte&0x2	=1		dual PAL/NTSC
313b6cee71dSXin LI>122	byte&0x1	=1		PAL
314b6cee71dSXin LI>122	byte&0x1	=0		NTSC
315b6cee71dSXin LI
3165f0216bdSXin LI# NSFE (Extended NES sound file) magic
3175f0216bdSXin LI# http://slickproductions.org/docs/NSF/nsfespec.txt
3185f0216bdSXin LI# From: David Pflug <david@pflug.email>
3195f0216bdSXin LI0	string		NSFE		Extended NES Sound File
3205f0216bdSXin LI>48	search/0x1000	auth
3215f0216bdSXin LI>>&0	string		>\0		("%s"
3225f0216bdSXin LI>>>&1	string		>\0		by %s
3235f0216bdSXin LI>>>>&1	string		>\0		\b, copyright %s
3245f0216bdSXin LI>>>>>&1	string		>\0		\b, ripped by %s
3255f0216bdSXin LI>20	byte		x		\b), %d tracks,
3265f0216bdSXin LI>18	byte&0x2	=1		dual PAL/NTSC
3275f0216bdSXin LI>18     byte&0x2	=0
3285f0216bdSXin LI>>18	byte&0x1	=1		PAL
3295f0216bdSXin LI>>18	byte&0x1	=0		NTSC
3305f0216bdSXin LI
331b6cee71dSXin LI# Type: SNES SPC700 sound files
332b6cee71dSXin LI# From: Josh Triplett <josh@freedesktop.org>
333b6cee71dSXin LI0	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
334b6cee71dSXin LI>&0	string	0.30					\b, version %s
335b6cee71dSXin LI>>0x23	byte	0x1B					\b, without ID666 tag
336b6cee71dSXin LI>>0x23	byte	0x1A					\b, with ID666 tag
337b6cee71dSXin LI>>>0x2E	string	>\0					\b, song "%.32s"
338b6cee71dSXin LI>>>0x4E	string	>\0					\b, game "%.32s"
339b6cee71dSXin LI
340b6cee71dSXin LI# Impulse tracker module (audio/x-it)
341b6cee71dSXin LI0	string		IMPM		Impulse Tracker module sound data -
342b6cee71dSXin LI!:mime	audio/x-mod
343b6cee71dSXin LI>4	string		>\0		"%s"
344b6cee71dSXin LI>40	leshort		!0		compatible w/ITv%x
345b6cee71dSXin LI>42	leshort		!0		created w/ITv%x
346b6cee71dSXin LI
347b6cee71dSXin LI# Imago Orpheus module (audio/x-imf)
348b6cee71dSXin LI60	string		IM10		Imago Orpheus module sound data -
349b6cee71dSXin LI>0	string		>\0		"%s"
350b6cee71dSXin LI
351b6cee71dSXin LI# From <collver1@attbi.com>
352b6cee71dSXin LI# These are the /etc/magic entries to decode modules, instruments, and
353b6cee71dSXin LI# samples in Impulse Tracker's native format.
354b6cee71dSXin LI
355b6cee71dSXin LI0	string		IMPS		Impulse Tracker Sample
356b6cee71dSXin LI>18	byte		&2		16 bit
357b6cee71dSXin LI>18	byte		^2		8 bit
358b6cee71dSXin LI>18	byte		&4		stereo
359b6cee71dSXin LI>18	byte		^4		mono
360b6cee71dSXin LI0	string		IMPI		Impulse Tracker Instrument
361b6cee71dSXin LI>28	leshort		!0		ITv%x
362b6cee71dSXin LI>30	byte		!0		%d samples
363b6cee71dSXin LI
364b6cee71dSXin LI# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
365b6cee71dSXin LI# From <collver1@attbi.com>
366b6cee71dSXin LI0	string		LM8953		Yamaha TX Wave
367b6cee71dSXin LI>22	byte		0x49		looped
368b6cee71dSXin LI>22	byte		0xC9		non-looped
369b6cee71dSXin LI>23	byte		1		33kHz
370b6cee71dSXin LI>23	byte		2		50kHz
371b6cee71dSXin LI>23	byte		3		16kHz
372b6cee71dSXin LI
373b6cee71dSXin LI# scream tracker:  file(1) magic for Scream Tracker sample files
374b6cee71dSXin LI#
375b6cee71dSXin LI# From <collver1@attbi.com>
376b6cee71dSXin LI76	string		SCRS		Scream Tracker Sample
377b6cee71dSXin LI>0	byte		1		sample
378b6cee71dSXin LI>0	byte		2		adlib melody
379b6cee71dSXin LI>0	byte		>2		adlib drum
380b6cee71dSXin LI>31	byte		&2		stereo
381b6cee71dSXin LI>31	byte		^2		mono
382b6cee71dSXin LI>31	byte		&4		16bit little endian
383b6cee71dSXin LI>31	byte		^4		8bit
384b6cee71dSXin LI>30	byte		0		unpacked
385b6cee71dSXin LI>30	byte		1		packed
386b6cee71dSXin LI
387b6cee71dSXin LI# audio
388b6cee71dSXin LI# From: Cory Dikkers <cdikkers@swbell.net>
389b6cee71dSXin LI0	string		MMD0		MED music file, version 0
390b6cee71dSXin LI0	string		MMD1		OctaMED Pro music file, version 1
391b6cee71dSXin LI0	string		MMD3		OctaMED Soundstudio music file, version 3
392b6cee71dSXin LI0	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
393b6cee71dSXin LI0	string		MED		MED_Song
394b6cee71dSXin LI0	string		SymM		Symphonie SymMOD music file
395b6cee71dSXin LI#
396b6cee71dSXin LI0	string		THX		AHX version
397b6cee71dSXin LI>3	byte		=0		1 module data
398b6cee71dSXin LI>3	byte		=1		2 module data
399b6cee71dSXin LI#
400b6cee71dSXin LI0	string		OKTASONG	Oktalyzer module data
401b6cee71dSXin LI#
402b6cee71dSXin LI0	string		DIGI\ Booster\ module\0	%s
403b6cee71dSXin LI>20	byte		>0		%c
404b6cee71dSXin LI>>21	byte		>0		\b%c
405b6cee71dSXin LI>>>22	byte		>0		\b%c
406b6cee71dSXin LI>>>>23	byte		>0		\b%c
407b6cee71dSXin LI>610	string		>\0		\b, "%s"
408b6cee71dSXin LI#
409b6cee71dSXin LI0	string		DBM0	   	DIGI Booster Pro Module
410b6cee71dSXin LI>4	byte		>0		V%X.
411b6cee71dSXin LI>>5	byte		x		\b%02X
412b6cee71dSXin LI>16	string		>\0		\b, "%s"
413b6cee71dSXin LI#
414b6cee71dSXin LI0	string		FTMN		FaceTheMusic module
415b6cee71dSXin LI>16	string		>\0d		\b, "%s"
416b6cee71dSXin LI
417b6cee71dSXin LI# From: <doj@cubic.org> 2003-06-24
418b6cee71dSXin LI0	string		AMShdr\32	Velvet Studio AMS Module v2.2
419b6cee71dSXin LI0	string		Extreme		Extreme Tracker AMS Module v1.3
420b6cee71dSXin LI0	string		DDMF		Xtracker DMF Module
421b6cee71dSXin LI>4	byte		x		v%i
422b6cee71dSXin LI>0xD	string		>\0		Title: "%s"
423b6cee71dSXin LI>0x2B	string		>\0		Composer: "%s"
424b6cee71dSXin LI0	string		DSM\32		Dynamic Studio Module DSM
425b6cee71dSXin LI0	string		SONG		DigiTrekker DTM Module
426b6cee71dSXin LI0	string		DMDL		DigiTrakker MDL Module
427b6cee71dSXin LI0	string		PSM\32		Protracker Studio PSM Module
428b6cee71dSXin LI44	string		PTMF		Poly Tracker PTM Module
429b6cee71dSXin LI>0	string		>\32		Title: "%s"
430b6cee71dSXin LI0	string		MT20		MadTracker 2.0 Module MT2
431b6cee71dSXin LI0	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
432b6cee71dSXin LI0	string		RTMM		RTM Module
433b6cee71dSXin LI0x426	string		MaDoKaN96	XMS Adlib Module
434b6cee71dSXin LI>0	string		>\0		Composer: "%s"
435b6cee71dSXin LI0	string		AMF		AMF Module
436b6cee71dSXin LI>4	string		>\0		Title: "%s"
437b6cee71dSXin LI0	string		MODINFO1	Open Cubic Player Module Inforation MDZ
438b6cee71dSXin LI0	string		Extended\40Instrument: Fast Tracker II Instrument
439b6cee71dSXin LI
440b6cee71dSXin LI# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
441b6cee71dSXin LI# NOA Nancy Codec file
442b6cee71dSXin LI0	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
443b6cee71dSXin LI# Yamaha SMAF format
444b6cee71dSXin LI0	string		MMMD		Yamaha SMAF file
445b6cee71dSXin LI# Sharp Jisaku Melody format for PDC
446b6cee71dSXin LI0	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
447b6cee71dSXin LI>20	string		Ver01.00	Ver. 1.00
448b6cee71dSXin LI>>32	byte		x		, %d tracks
449b6cee71dSXin LI
450b6cee71dSXin LI# Free lossless audio codec <http://flac.sourceforge.net>
451b6cee71dSXin LI# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
452b6cee71dSXin LI0	string			fLaC		FLAC audio bitstream data
453*58a0f0d0SEitan Adler!:mime	audio/flac
454b6cee71dSXin LI>4	byte&0x7f		>0		\b, unknown version
455b6cee71dSXin LI>4	byte&0x7f		0		\b
456b6cee71dSXin LI# some common bits/sample values
457b6cee71dSXin LI>>20	beshort&0x1f0		0x030		\b, 4 bit
458b6cee71dSXin LI>>20	beshort&0x1f0		0x050		\b, 6 bit
459b6cee71dSXin LI>>20	beshort&0x1f0		0x070		\b, 8 bit
460b6cee71dSXin LI>>20	beshort&0x1f0		0x0b0		\b, 12 bit
461b6cee71dSXin LI>>20	beshort&0x1f0		0x0f0		\b, 16 bit
462b6cee71dSXin LI>>20	beshort&0x1f0		0x170		\b, 24 bit
463b6cee71dSXin LI>>20	byte&0xe		0x0		\b, mono
464b6cee71dSXin LI>>20	byte&0xe		0x2		\b, stereo
465b6cee71dSXin LI>>20	byte&0xe		0x4		\b, 3 channels
466b6cee71dSXin LI>>20	byte&0xe		0x6		\b, 4 channels
467b6cee71dSXin LI>>20	byte&0xe		0x8		\b, 5 channels
468b6cee71dSXin LI>>20	byte&0xe		0xa		\b, 6 channels
469b6cee71dSXin LI>>20	byte&0xe		0xc		\b, 7 channels
470b6cee71dSXin LI>>20	byte&0xe		0xe		\b, 8 channels
471*58a0f0d0SEitan Adler# sample rates derived from known oscillator frequencies;
472*58a0f0d0SEitan Adler# 24.576 MHz (video/fs=48kHz), 22.5792 (audio/fs=44.1kHz) and
473*58a0f0d0SEitan Adler# 16.384 (other/fs=32kHz).
474*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x02b110	\b, 11.025 kHz
475*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x03e800	\b, 16 kHz
476b6cee71dSXin LI>>17	belong&0xfffff0       	0x056220	\b, 22.05 kHz
477b6cee71dSXin LI>>17	belong&0xfffff0       	0x05dc00	\b, 24 kHz
478*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x07d000	\b, 32 kHz
479*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x0ac440	\b, 44.1 kHz
480*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x0bb800	\b, 48 kHz
481b6cee71dSXin LI>>17	belong&0xfffff0       	0x0fa000	\b, 64 kHz
482*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x158880	\b, 88.2 kHz
483*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x177000	\b, 96 kHz
484*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x1f4000	\b, 128 kHz
485*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x2b1100	\b, 176.4 kHz
486*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x2ee000	\b, 192 kHz
487*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x3e8000	\b, 256 kHz
488*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x562200	\b, 352.8 kHz
489*58a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x5dc000	\b, 384 kHz
490b6cee71dSXin LI>>21	byte&0xf		>0		\b, >4G samples
491b6cee71dSXin LI>>21	byte&0xf		0		\b
492b6cee71dSXin LI>>>22	belong			>0		\b, %u samples
493b6cee71dSXin LI>>>22	belong			0		\b, length unknown
494b6cee71dSXin LI
495b6cee71dSXin LI# (ISDN) VBOX voice message file (Wolfram Kleff)
496b6cee71dSXin LI0       string          VBOX            VBOX voice message data
497b6cee71dSXin LI
498b6cee71dSXin LI# ReBorn Song Files (.rbs)
499b6cee71dSXin LI# David J. Singer <doc@deadvirgins.org.uk>
500b6cee71dSXin LI8       string          RB40             RBS Song file
501b6cee71dSXin LI>29     string          ReBorn           created by ReBorn
502b6cee71dSXin LI>37     string          Propellerhead    created by ReBirth
503b6cee71dSXin LI
504b6cee71dSXin LI# Synthesizer Generator and Kimwitu share their file format
505b6cee71dSXin LI0	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
506b6cee71dSXin LI# Kimwitu++ uses a slightly different magic
507b6cee71dSXin LI0	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
508b6cee71dSXin LI
509b6cee71dSXin LI# From "Simon Hosie
510b6cee71dSXin LI0       string  TFMX-SONG       TFMX module sound data
511b6cee71dSXin LI
512b6cee71dSXin LI# Monkey's Audio compressed audio format (.ape)
513b6cee71dSXin LI# From danny.milo@gmx.net (Danny Milosavljevic)
514b6cee71dSXin LI# New version from Abel Cheung <abel (@) oaka.org>
515b6cee71dSXin LI0		string		MAC\040		Monkey's Audio compressed format
516b6cee71dSXin LI!:mime audio/x-ape
517b6cee71dSXin LI>4		uleshort	>0x0F8B		version %d
518b6cee71dSXin LI>>(0x08.l)	uleshort	=1000		with fast compression
519b6cee71dSXin LI>>(0x08.l)	uleshort	=2000		with normal compression
520b6cee71dSXin LI>>(0x08.l)	uleshort	=3000		with high compression
521b6cee71dSXin LI>>(0x08.l)	uleshort	=4000		with extra high compression
522b6cee71dSXin LI>>(0x08.l)	uleshort	=5000		with insane compression
523b6cee71dSXin LI>>(0x08.l+18)	uleshort	=1		\b, mono
524b6cee71dSXin LI>>(0x08.l+18)	uleshort	=2		\b, stereo
525b6cee71dSXin LI>>(0x08.l+20)	ulelong		x		\b, sample rate %d
526b6cee71dSXin LI>4		uleshort	<0x0F8C		version %d
527b6cee71dSXin LI>>6		uleshort	=1000		with fast compression
528b6cee71dSXin LI>>6		uleshort	=2000		with normal compression
529b6cee71dSXin LI>>6		uleshort	=3000		with high compression
530b6cee71dSXin LI>>6		uleshort	=4000		with extra high compression
531b6cee71dSXin LI>>6		uleshort	=5000		with insane compression
532b6cee71dSXin LI>>10		uleshort	=1		\b, mono
533b6cee71dSXin LI>>10		uleshort	=2		\b, stereo
534b6cee71dSXin LI>>12		ulelong		x		\b, sample rate %d
535b6cee71dSXin LI
536b6cee71dSXin LI# adlib sound files
537*58a0f0d0SEitan Adler# From: Alex Myczko <alex@aiei.ch>
538b6cee71dSXin LI0    	string		RAWADATA	RdosPlay RAW
539b6cee71dSXin LI
540b6cee71dSXin LI1068	string		RoR		AMUSIC Adlib Tracker
541b6cee71dSXin LI
542b6cee71dSXin LI0	string		JCH		EdLib
543b6cee71dSXin LI
544b6cee71dSXin LI0	string		mpu401tr	MPU-401 Trakker
545b6cee71dSXin LI
546b6cee71dSXin LI0	string		SAdT		Surprise! Adlib Tracker
547b6cee71dSXin LI>4	byte		x		Version %d
548b6cee71dSXin LI
549b6cee71dSXin LI0	string		XAD!		eXotic ADlib
550b6cee71dSXin LI
551b6cee71dSXin LI0	string		ofTAZ!		eXtra Simple Music
552b6cee71dSXin LI
553b6cee71dSXin LI# Spectrum 128 tunes (.ay files).
554b6cee71dSXin LI# From: Emanuel Haupt <ehaupt@critical.ch>
555b6cee71dSXin LI0	string		ZXAYEMUL	Spectrum 128 tune
556b6cee71dSXin LI
557b6cee71dSXin LI0	string		\0BONK		BONK,
558b6cee71dSXin LI#>5	byte		x		version %d
559b6cee71dSXin LI>14	byte		x		%d channel(s),
560b6cee71dSXin LI>15	byte		=1		lossless,
561b6cee71dSXin LI>15	byte		=0		lossy,
562b6cee71dSXin LI>16	byte		x		mid-side
563b6cee71dSXin LI
564b6cee71dSXin LI384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
565b6cee71dSXin LI
566b6cee71dSXin LI# format VQF (proprietary codec for sound)
567b6cee71dSXin LI# some infos on the header file available at :
568b6cee71dSXin LI# http://www.twinvq.org/english/technology_format.html
569b6cee71dSXin LI0	string		TWIN97012000	VQF data
570b6cee71dSXin LI>27	short		0		\b, Mono
571b6cee71dSXin LI>27	short		1		\b, Stereo
572b6cee71dSXin LI>31	short 		>0		\b, %d kbit/s
573b6cee71dSXin LI>35	short 		>0		\b, %d kHz
574b6cee71dSXin LI
575b6cee71dSXin LI# Nelson A. de Oliveira (naoliv@gmail.com)
576b6cee71dSXin LI# .eqf
577b6cee71dSXin LI0	string	Winamp\ EQ\ library\ file	%s
578b6cee71dSXin LI# it will match only versions like v<digit>.<digit>
579b6cee71dSXin LI# Since I saw only eqf files with version v1.1 I think that it's OK
580b6cee71dSXin LI>23	string	x	\b%.4s
581b6cee71dSXin LI# .preset
582b6cee71dSXin LI0	string	[Equalizer\ preset]	XMMS equalizer preset
583b6cee71dSXin LI# .m3u
584b6cee71dSXin LI0	search/1	#EXTM3U 	M3U playlist text
585b6cee71dSXin LI# .pls
586b6cee71dSXin LI0	search/1	[playlist]	PLS playlist text
587b6cee71dSXin LI# licq.conf
588b6cee71dSXin LI1	string	[licq]			LICQ configuration file
589b6cee71dSXin LI
590b6cee71dSXin LI# Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
591b6cee71dSXin LI0	string		ICE!		SNDH Atari ST music
592b6cee71dSXin LI0	string		SC68\ Music-file\ /\ (c)\ (BeN)jami	sc68 Atari ST music
593b6cee71dSXin LI
594b6cee71dSXin LI# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
5953e41d09dSXin LI0       string          MP+     Musepack audio (MP+)
596b6cee71dSXin LI!:mime	audio/x-musepack
597b6cee71dSXin LI>3      byte            255     \b, SV pre8
598b6cee71dSXin LI>3      byte&0xF        0x6     \b, SV 6
599b6cee71dSXin LI>3      byte&0xF        0x8     \b, SV 8
600b6cee71dSXin LI>3      byte&0xF        0x7     \b, SV 7
601b6cee71dSXin LI>>3     byte&0xF0       0x0     \b.0
602b6cee71dSXin LI>>3     byte&0xF0       0x10    \b.1
603b6cee71dSXin LI>>3     byte&0xF0       240     \b.15
604b6cee71dSXin LI>>10    byte&0xF0       0x0     \b, no profile
605b6cee71dSXin LI>>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
606b6cee71dSXin LI>>10    byte&0xF0       0x50    \b, quality 0
607b6cee71dSXin LI>>10    byte&0xF0       0x60    \b, quality 1
608b6cee71dSXin LI>>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
609b6cee71dSXin LI>>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
610b6cee71dSXin LI>>10    byte&0xF0       0x90    \b, quality 4 (Radio)
611b6cee71dSXin LI>>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
612b6cee71dSXin LI>>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
613b6cee71dSXin LI>>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
614b6cee71dSXin LI>>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
615b6cee71dSXin LI>>10    byte&0xF0       0xE0    \b, quality 9
616b6cee71dSXin LI>>10    byte&0xF0       0xF0    \b, quality 10
617b6cee71dSXin LI>>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
618b6cee71dSXin LI>>27    byte            102     \b, Beta 1.02
619b6cee71dSXin LI>>27    byte            104     \b, Beta 1.04
620b6cee71dSXin LI>>27    byte            105     \b, Alpha 1.05
621b6cee71dSXin LI>>27    byte            106     \b, Beta 1.06
622b6cee71dSXin LI>>27    byte            110     \b, Release 1.1
623b6cee71dSXin LI>>27    byte            111     \b, Alpha 1.11
624b6cee71dSXin LI>>27    byte            112     \b, Beta 1.12
625b6cee71dSXin LI>>27    byte            113     \b, Alpha 1.13
626b6cee71dSXin LI>>27    byte            114     \b, Beta 1.14
627b6cee71dSXin LI>>27    byte            115     \b, Alpha 1.15
628b6cee71dSXin LI
6293e41d09dSXin LI0       string          MPCK    Musepack audio (MPCK)
6303e41d09dSXin LI!:mime	audio/x-musepack
6313e41d09dSXin LI
632b6cee71dSXin LI# IMY
633b6cee71dSXin LI# from http://filext.com/detaillist.php?extdetail=IMY
634b6cee71dSXin LI# http://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
635b6cee71dSXin LI# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
636b6cee71dSXin LI# http://www.wx800.com/msg/download/irda/iMelody.pdf
637b6cee71dSXin LI0	string	BEGIN:IMELODY	iMelody Ringtone Format
638b6cee71dSXin LI
639b6cee71dSXin LI# From: "Mateus Caruccio" <mateus@caruccio.com>
640b6cee71dSXin LI# guitar pro v3,4,5 from http://filext.com/file-extension/gp3
641b6cee71dSXin LI0	string	\030FICHIER\ GUITAR\ PRO\ v3.	Guitar Pro Ver. 3 Tablature
642b6cee71dSXin LI
643b6cee71dSXin LI# From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
644b6cee71dSXin LI60	string	SONG		SoundFX Module sound file
645b6cee71dSXin LI
646b6cee71dSXin LI# Type: Adaptive Multi-Rate Codec
647b6cee71dSXin LI# URL:  http://filext.com/detaillist.php?extdetail=AMR
648b6cee71dSXin LI# From: Russell Coker <russell@coker.com.au>
649b6cee71dSXin LI0	string	#!AMR		Adaptive Multi-Rate Codec (GSM telephony)
650b6cee71dSXin LI
651b6cee71dSXin LI# Type: SuperCollider 3 Synth Definition File Format
652b6cee71dSXin LI# From: Mario Lang <mlang@debian.org>
653b6cee71dSXin LI0	string	SCgf	SuperCollider3 Synth Definition file,
654b6cee71dSXin LI>4	belong	x	version %d
655b6cee71dSXin LI
656b6cee71dSXin LI# Type: True Audio Lossless Audio
657b6cee71dSXin LI# URL:  http://wiki.multimedia.cx/index.php?title=True_Audio
658b6cee71dSXin LI# From: Mike Melanson <mike@multimedia.cx>
659b6cee71dSXin LI0	string	TTA1	True Audio Lossless Audio
660b6cee71dSXin LI
661b6cee71dSXin LI# Type: WavPack Lossless Audio
662b6cee71dSXin LI# URL:  http://wiki.multimedia.cx/index.php?title=WavPack
663b6cee71dSXin LI# From: Mike Melanson <mike@multimedia.cx>
664b6cee71dSXin LI0	string	wvpk	WavPack Lossless Audio
665b6cee71dSXin LI
666b6cee71dSXin LI# From Fabio R. Schmidlin <frs@pop.com.br>
667b6cee71dSXin LI# VGM music file
66840427ccaSGordon Tetlow0	string		Vgm\040
669b6cee71dSXin LI>9	ubyte		>0	VGM Video Game Music dump v
670b6cee71dSXin LI>>9	ubyte/16	>0	\b%d
671b6cee71dSXin LI>>9	ubyte&0x0F	x	\b%d
672b6cee71dSXin LI>>8	ubyte/16	x	\b.%d
673b6cee71dSXin LI>>8	ubyte&0x0F	>0	\b%d
674b6cee71dSXin LI#Get soundchips
675b6cee71dSXin LI>>8	ubyte		x	\b, soundchip(s)=
676b6cee71dSXin LI>>0x0C	ulelong		>0	SN76489,
677b6cee71dSXin LI>>0x10	ulelong		>0	YM2413,
678b6cee71dSXin LI>>0x2C	ulelong		>0	YM2612,
679b6cee71dSXin LI>>0x30	ulelong		>0	YM2151,
680b6cee71dSXin LI>>0x38	ulelong		>0	Sega PCM,
681b6cee71dSXin LI>>0x34	ulelong		>0xC
682b6cee71dSXin LI>>>0x40	ulelong		>0	RF5C68,
683b6cee71dSXin LI>>0x34	ulelong		>0x10
684b6cee71dSXin LI>>>0x44	ulelong		>0	YM2203,
685b6cee71dSXin LI>>0x34	ulelong		>0x14
686b6cee71dSXin LI>>>0x48	ulelong		>0	YM2608,
687b6cee71dSXin LI>>0x34	ulelong		>0x18
688b6cee71dSXin LI>>>0x4C	lelong		>0	YM2610,
689b6cee71dSXin LI>>>0x4C	lelong		<0	YM2610B,
690b6cee71dSXin LI>>0x34	ulelong		>0x1C
691b6cee71dSXin LI>>>0x50	ulelong		>0	YM3812,
692b6cee71dSXin LI>>0x34	ulelong		>0x20
693b6cee71dSXin LI>>>0x54	ulelong		>0	YM3526,
694b6cee71dSXin LI>>0x34	ulelong		>0x24
695b6cee71dSXin LI>>>0x58	ulelong		>0	Y8950,
696b6cee71dSXin LI>>0x34	ulelong		>0x28
697b6cee71dSXin LI>>>0x5C	ulelong		>0	YMF262,
698b6cee71dSXin LI>>0x34	ulelong		>0x2C
699b6cee71dSXin LI>>>0x60	ulelong		>0	YMF278B,
700b6cee71dSXin LI>>0x34	ulelong		>0x30
701b6cee71dSXin LI>>>0x64	ulelong		>0	YMF271,
702b6cee71dSXin LI>>0x34	ulelong		>0x34
703b6cee71dSXin LI>>>0x68	ulelong		>0	YMZ280B,
704b6cee71dSXin LI>>0x34	ulelong		>0x38
705b6cee71dSXin LI>>>0x6C	ulelong		>0	RF5C164,
706b6cee71dSXin LI>>0x34	ulelong		>0x3C
707b6cee71dSXin LI>>>0x70	ulelong		>0	PWM,
708b6cee71dSXin LI>>0x34	ulelong		>0x40
709b6cee71dSXin LI>>>0x74	ulelong		>0
710b6cee71dSXin LI>>>>0x78 ubyte		0x00	AY-3-8910,
711b6cee71dSXin LI>>>>0x78 ubyte		0x01	AY-3-8912,
712b6cee71dSXin LI>>>>0x78 ubyte		0x02	AY-3-8913,
713b6cee71dSXin LI>>>>0x78 ubyte		0x03	AY-3-8930,
714b6cee71dSXin LI>>>>0x78 ubyte		0x10	YM2149,
715b6cee71dSXin LI>>>>0x78 ubyte		0x11	YM3439,
716b6cee71dSXin LI
717b6cee71dSXin LI# GVOX Encore file format
718b6cee71dSXin LI# Since this is a proprietary file format and there is no publicly available
719b6cee71dSXin LI# format specification, this is just based on induction
720b6cee71dSXin LI#
721b6cee71dSXin LI0	string	SCOW
722b6cee71dSXin LI>4	byte	0xc4	GVOX Encore music, version 5.0 or above
723b6cee71dSXin LI>4	byte	0xc2	GVOX Encore music, version < 5.0
724b6cee71dSXin LI
725b6cee71dSXin LI0	string	ZBOT
726b6cee71dSXin LI>4	byte	0xc5	GVOX Encore music, version < 5.0
727b6cee71dSXin LI
7283e41d09dSXin LI# Summary:	Garmin Voice Processing Module (WAVE audios)
7293e41d09dSXin LI# From:		Joerg Jenderek
7303e41d09dSXin LI# URL:		http://www.garmin.com/
7313e41d09dSXin LI# Reference:	http://turboccc.wikispaces.com/share/view/28622555
7323e41d09dSXin LI# NOTE:		there exist 2 other Garmin VPM formats
7333e41d09dSXin LI0		string	AUDIMG
7343e41d09dSXin LI# skip text files starting with string "AUDIMG"
7353e41d09dSXin LI>13		ubyte		<13	Garmin Voice Processing Module
7363e41d09dSXin LI!:mime	audio/x-vpm-wav-garmin
7373e41d09dSXin LI!:ext	vpm
7383e41d09dSXin LI# 3 bytes indicating the voice version (200,220)
7393e41d09dSXin LI>>6		string		x	\b, version %3.3s
7403e41d09dSXin LI# day of release (01-31)
7413e41d09dSXin LI>>12		ubyte		x	\b, %.2d
7423e41d09dSXin LI# month of release (01-12)
7433e41d09dSXin LI>>13		ubyte		x	\b.%.2d
7443e41d09dSXin LI# year of release (like 2006, 2007, 2008)
7453e41d09dSXin LI>>14		uleshort	x	\b.%.4d
7463e41d09dSXin LI# hour of release (0-23)
7473e41d09dSXin LI>>11		ubyte		x	%.2d
7483e41d09dSXin LI# minute of release (0-59)
7493e41d09dSXin LI>>10		ubyte		x	\b:%.2d
7503e41d09dSXin LI# second of release (0-59)
7513e41d09dSXin LI>>9		ubyte		x	\b:%.2d
7523e41d09dSXin LI# if you select a language like german on your garmin device
75340427ccaSGordon Tetlow# you can only select voice modules with corresponding language byte ID like 1
7543e41d09dSXin LI>>18		ubyte		x	\b, language ID %d
7553e41d09dSXin LI# pointer to 1st audio WAV sample
7563e41d09dSXin LI>>16		uleshort	>0
7573e41d09dSXin LI>>>(16.s)	ulelong		>0	\b, at offset 0x%x
7583e41d09dSXin LI# WAV length
7593e41d09dSXin LI>>>>(16.s+4)	ulelong		>0	%d Bytes
7603e41d09dSXin LI# look for magic
7613e41d09dSXin LI>>>>>(&-8.l)	string		RIFF
7623e41d09dSXin LI# determine type by ./riff
7633e41d09dSXin LI>>>>>>&-4	indirect	x	\b
7643e41d09dSXin LI# 2 - ~ 131 WAV samples following same way
7653e41d09dSXin LI
76640427ccaSGordon Tetlow# From Martin Mueller Skarbiniks Pedersen
76740427ccaSGordon Tetlow0		string		GDM
76840427ccaSGordon Tetlow>0x3		byte		0xFE	General Digital Music.
76940427ccaSGordon Tetlow>0x4		string		>\0	title: "%s"
77040427ccaSGordon Tetlow>0x24		string		>\0	musician: "%s"
77140427ccaSGordon Tetlow>>0x44		beshort		0x0D0A
77240427ccaSGordon Tetlow>>>0x46		byte		0x1A
77340427ccaSGordon Tetlow>>>>0x47	string		GMFS	Version
77440427ccaSGordon Tetlow>>>>0x4B	byte		x	%d.
77540427ccaSGordon Tetlow>>>>0x4C	byte		x	\b%02d
77640427ccaSGordon Tetlow>>>>0x4D	beshort		0x000	(2GDM v
77740427ccaSGordon Tetlow>>>>0x4F	byte		x	\b%d.
77840427ccaSGordon Tetlow>>>>>0x50	byte		x	\b%d)
77940427ccaSGordon Tetlow
78040427ccaSGordon Tetlow0		string		MTM	Multitracker
78140427ccaSGordon Tetlow>0x3		byte/16		x	Version %d.
78240427ccaSGordon Tetlow>0x3		byte&0x0F	x	\b%02d
78340427ccaSGordon Tetlow>>0x4		string		>\0	title: "%s"
78440427ccaSGordon Tetlow
78540427ccaSGordon Tetlow0		string		HVL
78640427ccaSGordon Tetlow>3		byte		<2	Hively Tracker Song
78740427ccaSGordon Tetlow>3		byte		0	1 module data
78840427ccaSGordon Tetlow>3		byte		1	2 module data
78940427ccaSGordon Tetlow
79040427ccaSGordon Tetlow0		string		MO3
79140427ccaSGordon Tetlow>3		ubyte		<6	MOdule with MP3
79240427ccaSGordon Tetlow>>3		byte		0	Version	0	(With MP3 and lossless)
79340427ccaSGordon Tetlow>>3		byte		1	Version	1	(With ogg and lossless)
79440427ccaSGordon Tetlow>>3		byte		3	Version 2.2
79540427ccaSGordon Tetlow>>3		byte		4	(With no LAME header)
79640427ccaSGordon Tetlow>>3		byte		5	Version 2.4
79740427ccaSGordon Tetlow
79840427ccaSGordon Tetlow0		string		ADRVPACK	AProSys	module
79940427ccaSGordon Tetlow
80040427ccaSGordon Tetlow# ftp://ftp.modland.com/pub/documents/format_documentation/\
80140427ccaSGordon Tetlow# Art%20Of%20Noise%20(.aon).txt
80240427ccaSGordon Tetlow0		string		AON
80340427ccaSGordon Tetlow>4		string		"ArtOfNoise by Bastian Spiegel(twice/lego)"
80440427ccaSGordon Tetlow>0x2e		string		NAME	Art of Noise Tracker Song
80540427ccaSGordon Tetlow>3		string		<9
80640427ccaSGordon Tetlow>3		string		4	(4 voices)
80740427ccaSGordon Tetlow>3		string		8	(8 voices)
80840427ccaSGordon Tetlow>>0x36		string		>\0	Title: "%s"
80940427ccaSGordon Tetlow
81040427ccaSGordon Tetlow0		string		FAR
81140427ccaSGordon Tetlow>0x2c		byte		0x0d
81240427ccaSGordon Tetlow>0x2d		byte		0x0a
81340427ccaSGordon Tetlow>0x2e		byte		0x1a
81440427ccaSGordon Tetlow>>0x3		byte		0xFE	Farandole Tracker Song
81540427ccaSGordon Tetlow>>>0x31		byte/16		x	Version %d.
81640427ccaSGordon Tetlow>>>0x31		byte&0x0F	x	\b%02d
81740427ccaSGordon Tetlow>>>>0x4		string		>\0	\b, title: "%s"
818*58a0f0d0SEitan Adler
819*58a0f0d0SEitan Adler# magic for Klystrack, http://kometbomb.github.io/klystrack/
820*58a0f0d0SEitan Adler# from Alex Myczko <alex@aiei.ch>
821*58a0f0d0SEitan Adler0	string	cyd!song	Klystrack song
822*58a0f0d0SEitan Adler>8	byte	>0		\b, version %u
823*58a0f0d0SEitan Adler>8	byte	>26
824*58a0f0d0SEitan Adler#>>9	byte	x		\b, channels %u
825*58a0f0d0SEitan Adler#>>10	leshort	x		\b, time signature %u
826*58a0f0d0SEitan Adler#>>12	leshort	x		\b, sequence step %u
827*58a0f0d0SEitan Adler#>>14	byte	x		\b, instruments %u
828*58a0f0d0SEitan Adler#>>15	leshort	x		\b, patterns %u
829*58a0f0d0SEitan Adler#>>17	leshort	x		\b, sequences %u
830*58a0f0d0SEitan Adler#>>19	leshort	x		\b, length %u
831*58a0f0d0SEitan Adler#>>21	leshort	x		\b, loop point %u
832*58a0f0d0SEitan Adler#>>23	byte	x		\b, master volume %u
833*58a0f0d0SEitan Adler#>>24	byte	x		\b, song speed %u
834*58a0f0d0SEitan Adler#>>25	byte	x		\b, song speed2 %u
835*58a0f0d0SEitan Adler#>>26	byte	x		\b, song rate %u
836*58a0f0d0SEitan Adler#>>27	belong	x		\b, flags %#x
837*58a0f0d0SEitan Adler#>>31	byte	x		\b, multiplex period %u
838*58a0f0d0SEitan Adler#>>32	byte	x		\b, pitch inaccuracy %u
839*58a0f0d0SEitan Adler>>149	pstring	x		\b, title %s
840*58a0f0d0SEitan Adler
841*58a0f0d0SEitan Adler0	string	cyd!inst	Klystrack instrument
842*58a0f0d0SEitan Adler
843*58a0f0d0SEitan Adler# magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor
844*58a0f0d0SEitan Adler# see Specifications/WOPL-and-OPLI-Specification.txt
845*58a0f0d0SEitan Adler
846*58a0f0d0SEitan Adler0	string	WOPL3-INST\0	WOPL instrument
847*58a0f0d0SEitan Adler>11	leshort	x	\b, version %u
848*58a0f0d0SEitan Adler0	string	WOPL3-BANK\0	WOPL instrument bank
849*58a0f0d0SEitan Adler>11	leshort	x	\b, version %u
850*58a0f0d0SEitan Adler
851*58a0f0d0SEitan Adler# AdLib/OPL instrument files. Format specifications on
852*58a0f0d0SEitan Adler#  http://www.shikadi.net/moddingwiki
853*58a0f0d0SEitan Adler0	string	Junglevision\ Patch\ File	Junglevision instrument data
854*58a0f0d0SEitan Adler0	string	#OPL_II#	DMX OP2 instrument data
855*58a0f0d0SEitan Adler0	string	IBK\x1a		IBK instrument data
856*58a0f0d0SEitan Adler0	string	2OP\x1a		IBK instrument data, 2 operators
857*58a0f0d0SEitan Adler0	string	4OP\x1a		IBK instrument data, 4 operators
858*58a0f0d0SEitan Adler2	string	ADLIB-		AdLib instrument data
859*58a0f0d0SEitan Adler>0	byte	x		\b, version %u
860*58a0f0d0SEitan Adler>1	byte	x		\b.%u
861