xref: /freebsd/contrib/file/magic/Magdir/audio (revision ae316d1d1cffd71ab7751f94e10118777a88e027)
1b6cee71dSXin LI
2b6cee71dSXin LI#------------------------------------------------------------------------------
3*ae316d1dSXin LI# $File: audio,v 1.133 2024/09/04 19:07:20 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
102*ae316d1dSXin LI>>23	byte	>0			- version %d
103*ae316d1dSXin 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"
142d38c30c0SXin LI!:mime	audio/x-s3m
143d38c30c0SXin LI
144d38c30c0SXin LI# .stm before it got above .s3m extension
145d38c30c0SXin LI0x16	string		\!Scream\!	ScreamTracker Module sound data
146d38c30c0SXin LI>0	string		>\0		Title: "%s"
147b6cee71dSXin LI
148b6cee71dSXin LI# Gravis UltraSound patches
149b6cee71dSXin LI# From <ache@nagual.ru>
150b6cee71dSXin LI
151b6cee71dSXin LI0	string		GF1PATCH110\0ID#000002\0	GUS patch
152b6cee71dSXin LI0	string		GF1PATCH100\0ID#000002\0	Old GUS	patch
153b6cee71dSXin LI
154b6cee71dSXin LI# mime types according to http://www.geocities.com/nevilo/mod.htm:
155b6cee71dSXin LI#	audio/it	.it
156b6cee71dSXin LI#	audio/x-zipped-it	.itz
157b6cee71dSXin LI#	audio/xm	fasttracker modules
158b6cee71dSXin LI#	audio/x-s3m	screamtracker modules
159b6cee71dSXin LI#	audio/s3m	screamtracker modules
160b6cee71dSXin LI#	audio/x-zipped-mod	mdz
161b6cee71dSXin LI#	audio/mod	mod
162b6cee71dSXin LI#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
163b6cee71dSXin LI
164b6cee71dSXin LI#
165b6cee71dSXin LI# Taken from loader code from mikmod version 2.14
166b6cee71dSXin LI# by Steve McIntyre (stevem@chiark.greenend.org.uk)
167b6cee71dSXin LI# <doj@cubic.org> added title printing on 2003-06-24
168b6cee71dSXin LI0	string	MAS_UTrack_V00
169b6cee71dSXin LI>14	string	>/0		ultratracker V1.%.1s module sound data
170b6cee71dSXin LI!:mime	audio/x-mod
171b6cee71dSXin LI#audio/x-tracker-module
172b6cee71dSXin LI
173b6cee71dSXin LI0	string	UN05		MikMod UNI format module sound data
174b6cee71dSXin LI
175b6cee71dSXin LI0	string	Extended\ Module: Fasttracker II module sound data
176b6cee71dSXin LI!:mime	audio/x-mod
177b6cee71dSXin LI#audio/x-tracker-module
178b6cee71dSXin LI>17	string	>\0		Title: "%s"
179b6cee71dSXin LI
180b6cee71dSXin LI21	string/c	=!SCREAM!	Screamtracker 2 module sound data
181b6cee71dSXin LI!:mime	audio/x-mod
182b6cee71dSXin LI#audio/x-screamtracker-module
183b6cee71dSXin LI21	string	BMOD2STM	Screamtracker 2 module sound data
184b6cee71dSXin LI!:mime	audio/x-mod
185b6cee71dSXin LI#audio/x-screamtracker-module
186898496eeSXin LI
187898496eeSXin LI1080	string	\!PM!		4-channel Protracker module sound data
188898496eeSXin LI!:mime	audio/x-mod
189898496eeSXin LI#audio/x-protracker-module
190898496eeSXin LI>0	string	>\0		Title: "%s"
191898496eeSXin LI
192b6cee71dSXin LI1080	string	M.K.		4-channel Protracker module sound data
193b6cee71dSXin LI!:mime	audio/x-mod
194b6cee71dSXin LI#audio/x-protracker-module
195b6cee71dSXin LI>0	string	>\0		Title: "%s"
196898496eeSXin LI
197b6cee71dSXin LI1080	string	M!K!		4-channel Protracker module sound data
198b6cee71dSXin LI!:mime	audio/x-mod
199b6cee71dSXin LI#audio/x-protracker-module
200b6cee71dSXin LI>0	string	>\0		Title: "%s"
201898496eeSXin LI
202b6cee71dSXin LI1080	string	FLT4		4-channel Startracker module sound data
203b6cee71dSXin LI!:mime	audio/x-mod
204b6cee71dSXin LI#audio/x-startracker-module
205b6cee71dSXin LI>0	string	>\0		Title: "%s"
206898496eeSXin LI
207b6cee71dSXin LI1080	string	FLT8		8-channel Startracker module sound data
208b6cee71dSXin LI!:mime	audio/x-mod
209b6cee71dSXin LI#audio/x-startracker-module
210b6cee71dSXin LI>0	string	>\0		Title: "%s"
211898496eeSXin LI
212b6cee71dSXin LI1080	string	4CHN		4-channel Fasttracker module sound data
213b6cee71dSXin LI!:mime	audio/x-mod
214b6cee71dSXin LI#audio/x-fasttracker-module
215b6cee71dSXin LI>0	string	>\0		Title: "%s"
216898496eeSXin LI
217b6cee71dSXin LI1080	string	6CHN		6-channel Fasttracker module sound data
218b6cee71dSXin LI!:mime	audio/x-mod
219b6cee71dSXin LI#audio/x-fasttracker-module
220b6cee71dSXin LI>0	string	>\0		Title: "%s"
221898496eeSXin LI
222b6cee71dSXin LI1080	string	8CHN		8-channel Fasttracker module sound data
223b6cee71dSXin LI!:mime	audio/x-mod
224b6cee71dSXin LI#audio/x-fasttracker-module
225b6cee71dSXin LI>0	string	>\0		Title: "%s"
226898496eeSXin LI
227b6cee71dSXin LI1080	string	CD81		8-channel Octalyser module sound data
228b6cee71dSXin LI!:mime	audio/x-mod
229b6cee71dSXin LI#audio/x-octalysertracker-module
230b6cee71dSXin LI>0	string	>\0		Title: "%s"
231898496eeSXin LI
232b6cee71dSXin LI1080	string	OKTA		8-channel Octalyzer module sound data
233b6cee71dSXin LI!:mime	audio/x-mod
234b6cee71dSXin LI#audio/x-octalysertracker-module
235b6cee71dSXin LI>0	string	>\0		Title: "%s"
236898496eeSXin LI
237b6cee71dSXin LI# Not good enough.
238b6cee71dSXin LI#1082	string	CH
239b6cee71dSXin LI#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
240b6cee71dSXin LI1080	string	16CN		16-channel Taketracker module sound data
241b6cee71dSXin LI!:mime	audio/x-mod
242b6cee71dSXin LI#audio/x-taketracker-module
243b6cee71dSXin LI>0	string	>\0		Title: "%s"
244b6cee71dSXin LI1080	string	32CN		32-channel Taketracker module sound data
245b6cee71dSXin LI!:mime	audio/x-mod
246b6cee71dSXin LI#audio/x-taketracker-module
247b6cee71dSXin LI>0	string	>\0		Title: "%s"
248b6cee71dSXin LI
249b6cee71dSXin LI# TOC sound files -Trevor Johnson <trevor@jpj.net>
250b6cee71dSXin LI#
251b6cee71dSXin LI0       string          TOC             TOC sound file
252b6cee71dSXin LI
253b6cee71dSXin LI# sidfiles <pooka@iki.fi>
254b6cee71dSXin LI# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
255b6cee71dSXin LI0	string		SIDPLAY\ INFOFILE	Sidplay info file
256b6cee71dSXin LI
257b6cee71dSXin LI0	string		PSID			PlaySID v2.2+ (AMIGA) sidtune
258b6cee71dSXin LI>4	beshort		>0			w/ header v%d,
259b6cee71dSXin LI>14	beshort		=1			single song,
260b6cee71dSXin LI>14	beshort		>1			%d songs,
261b6cee71dSXin LI>16	beshort		>0			default song: %d
262b6cee71dSXin LI>0x16	string		>\0			name: "%s"
263b6cee71dSXin LI>0x36	string		>\0			author: "%s"
264b6cee71dSXin LI>0x56	string		>\0			copyright: "%s"
265b6cee71dSXin LI
266b6cee71dSXin LI0	string		RSID			RSID sidtune PlaySID compatible
267b6cee71dSXin LI>4	beshort		>0			w/ header v%d,
268b6cee71dSXin LI>14	beshort		=1			single song,
269b6cee71dSXin LI>14	beshort		>1			%d songs,
270b6cee71dSXin LI>16	beshort		>0			default song: %d
271b6cee71dSXin LI>0x16	string		>\0			name: "%s"
272b6cee71dSXin LI>0x36	string		>\0			author: "%s"
273b6cee71dSXin LI>0x56	string		>\0			copyright: "%s"
274b6cee71dSXin LI
275b6cee71dSXin LI# IRCAM sound files - Michael Pruett <michael@68k.org>
276b6cee71dSXin LI# http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html
277b6cee71dSXin LI0	belong		0x64a30100		IRCAM file (VAX little-endian)
278b6cee71dSXin LI0	belong		0x0001a364		IRCAM file (VAX big-endian)
279b6cee71dSXin LI0	belong		0x0002a364		IRCAM file (Sun little-endian)
280*ae316d1dSXin LI0	belong		0x64a30200		IRCAM file (Sun big-endian)
281b6cee71dSXin LI0	belong		0x64a30300		IRCAM file (MIPS little-endian)
282b6cee71dSXin LI0	belong		0x0003a364		IRCAM file (MIPS big-endian)
283b6cee71dSXin LI0	belong		0x0004a364		IRCAM file (NeXT little-endian)
284*ae316d1dSXin LI0	belong		0x64a30400		IRCAM file (NeXT big-endian)
285b6cee71dSXin LI
286b6cee71dSXin LI# NIST SPHERE <mpruett@sgi.com>
287b6cee71dSXin LI0	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
288b6cee71dSXin LI
289b6cee71dSXin LI# Sample Vision <mpruett@sgi.com>
290b6cee71dSXin LI0	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
291b6cee71dSXin LI
292b6cee71dSXin LI# Audio Visual Research <tonigonenstein@users.sourceforge.net>
293b6cee71dSXin LI0	string		2BIT			Audio Visual Research file,
294b6cee71dSXin LI>12	beshort		=0			mono,
295b6cee71dSXin LI>12	beshort		=-1			stereo,
296b6cee71dSXin LI>14	beshort		x			%d bits
297b6cee71dSXin LI>16	beshort		=0			unsigned,
298b6cee71dSXin LI>16	beshort		=-1			signed,
299b6cee71dSXin LI>22	belong&0x00ffffff	x		%d Hz,
300b6cee71dSXin LI>18	beshort		=0			no loop,
301b6cee71dSXin LI>18	beshort		=-1			loop,
302b6cee71dSXin LI>21	ubyte		<128			note %d,
303b6cee71dSXin LI>22	byte		=0			replay 5.485 KHz
304b6cee71dSXin LI>22	byte		=1			replay 8.084 KHz
305b6cee71dSXin LI>22	byte		=2			replay 10.971 KHz
306b6cee71dSXin LI>22	byte		=3			replay 16.168 KHz
307b6cee71dSXin LI>22	byte		=4			replay 21.942 KHz
308b6cee71dSXin LI>22	byte		=5			replay 32.336 KHz
309b6cee71dSXin LI>22	byte		=6			replay 43.885 KHz
310b6cee71dSXin LI>22	byte		=7			replay 47.261 KHz
311b6cee71dSXin LI
312b6cee71dSXin LI# SGI SoundTrack <mpruett@sgi.com>
313b6cee71dSXin LI0	string		_SGI_SoundTrack		SGI SoundTrack project file
314b6cee71dSXin LI# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
315b6cee71dSXin LI0	string		ID3	Audio file with ID3 version 2
316b6cee71dSXin LI>3	byte		x	\b.%d
317b6cee71dSXin LI>4	byte		x	\b.%d
318b6cee71dSXin LI>>5	byte		&0x80	\b, unsynchronized frames
319b6cee71dSXin LI>>5	byte		&0x40	\b, extended header
320b6cee71dSXin LI>>5	byte		&0x20	\b, experimental
321b6cee71dSXin LI>>5	byte		&0x10	\b, footer present
3225f0216bdSXin LI>(6.I+10)	indirect	x	\b, contains:
323b6cee71dSXin LI
324b6cee71dSXin LI# NSF (NES sound file) magic
325b6cee71dSXin LI0	string		NESM\x1a	NES Sound File
326b6cee71dSXin LI>14	string		>\0		("%s" by
327b6cee71dSXin LI>46	string		>\0		%s, copyright
328b6cee71dSXin LI>78	string		>\0		%s),
329b6cee71dSXin LI>5	byte		x		version %d,
330b6cee71dSXin LI>6	byte		x		%d tracks,
331b6cee71dSXin LI>122	byte&0x2	=1		dual PAL/NTSC
332b6cee71dSXin LI>122	byte&0x1	=1		PAL
333b6cee71dSXin LI>122	byte&0x1	=0		NTSC
334b6cee71dSXin LI
3355f0216bdSXin LI# NSFE (Extended NES sound file) magic
3365f0216bdSXin LI# http://slickproductions.org/docs/NSF/nsfespec.txt
3375f0216bdSXin LI# From: David Pflug <david@pflug.email>
3385f0216bdSXin LI0	string		NSFE		Extended NES Sound File
3395f0216bdSXin LI>48	search/0x1000	auth
3405f0216bdSXin LI>>&0	string		>\0		("%s"
3415f0216bdSXin LI>>>&1	string		>\0		by %s
3425f0216bdSXin LI>>>>&1	string		>\0		\b, copyright %s
3435f0216bdSXin LI>>>>>&1	string		>\0		\b, ripped by %s
3445f0216bdSXin LI>20	byte		x		\b), %d tracks,
3455f0216bdSXin LI>18	byte&0x2	=1		dual PAL/NTSC
3465f0216bdSXin LI>18     byte&0x2	=0
3475f0216bdSXin LI>>18	byte&0x1	=1		PAL
3485f0216bdSXin LI>>18	byte&0x1	=0		NTSC
3495f0216bdSXin LI
350b6cee71dSXin LI# Type: SNES SPC700 sound files
351b6cee71dSXin LI# From: Josh Triplett <josh@freedesktop.org>
352b6cee71dSXin LI0	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
353b6cee71dSXin LI>&0	string	0.30					\b, version %s
354b6cee71dSXin LI>>0x23	byte	0x1B					\b, without ID666 tag
355b6cee71dSXin LI>>0x23	byte	0x1A					\b, with ID666 tag
356b6cee71dSXin LI>>>0x2E	string	>\0					\b, song "%.32s"
357b6cee71dSXin LI>>>0x4E	string	>\0					\b, game "%.32s"
358b6cee71dSXin LI
359b6cee71dSXin LI# Impulse tracker module (audio/x-it)
360b6cee71dSXin LI0	string		IMPM		Impulse Tracker module sound data -
361b6cee71dSXin LI!:mime	audio/x-mod
362b6cee71dSXin LI>4	string		>\0		"%s"
363b6cee71dSXin LI>40	leshort		!0		compatible w/ITv%x
364b6cee71dSXin LI>42	leshort		!0		created w/ITv%x
365b6cee71dSXin LI
366b6cee71dSXin LI# Imago Orpheus module (audio/x-imf)
367b6cee71dSXin LI60	string		IM10		Imago Orpheus module sound data -
368b6cee71dSXin LI>0	string		>\0		"%s"
369b6cee71dSXin LI
370b6cee71dSXin LI# From <collver1@attbi.com>
371b6cee71dSXin LI# These are the /etc/magic entries to decode modules, instruments, and
372b6cee71dSXin LI# samples in Impulse Tracker's native format.
373b6cee71dSXin LI
374b6cee71dSXin LI0	string		IMPS		Impulse Tracker Sample
375b6cee71dSXin LI>18	byte		&2		16 bit
376b6cee71dSXin LI>18	byte		^2		8 bit
377b6cee71dSXin LI>18	byte		&4		stereo
378b6cee71dSXin LI>18	byte		^4		mono
379b6cee71dSXin LI0	string		IMPI		Impulse Tracker Instrument
380b6cee71dSXin LI>28	leshort		!0		ITv%x
381b6cee71dSXin LI>30	byte		!0		%d samples
382b6cee71dSXin LI
383b6cee71dSXin LI# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
384b6cee71dSXin LI# From <collver1@attbi.com>
385b6cee71dSXin LI0	string		LM8953		Yamaha TX Wave
386b6cee71dSXin LI>22	byte		0x49		looped
387b6cee71dSXin LI>22	byte		0xC9		non-looped
388b6cee71dSXin LI>23	byte		1		33kHz
389b6cee71dSXin LI>23	byte		2		50kHz
390b6cee71dSXin LI>23	byte		3		16kHz
391b6cee71dSXin LI
392b6cee71dSXin LI# scream tracker:  file(1) magic for Scream Tracker sample files
393b6cee71dSXin LI#
394b6cee71dSXin LI# From <collver1@attbi.com>
395b6cee71dSXin LI76	string		SCRS		Scream Tracker Sample
396b6cee71dSXin LI>0	byte		1		sample
397b6cee71dSXin LI>0	byte		2		adlib melody
398b6cee71dSXin LI>0	byte		>2		adlib drum
399b6cee71dSXin LI>31	byte		&2		stereo
400b6cee71dSXin LI>31	byte		^2		mono
401b6cee71dSXin LI>31	byte		&4		16bit little endian
402b6cee71dSXin LI>31	byte		^4		8bit
403b6cee71dSXin LI>30	byte		0		unpacked
404b6cee71dSXin LI>30	byte		1		packed
405b6cee71dSXin LI
406b6cee71dSXin LI# audio
407b6cee71dSXin LI# From: Cory Dikkers <cdikkers@swbell.net>
408b6cee71dSXin LI0	string		MMD0		MED music file, version 0
409b6cee71dSXin LI0	string		MMD1		OctaMED Pro music file, version 1
410b6cee71dSXin LI0	string		MMD3		OctaMED Soundstudio music file, version 3
411b6cee71dSXin LI0	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
412b6cee71dSXin LI0	string		MED		MED_Song
413b6cee71dSXin LI0	string		SymM		Symphonie SymMOD music file
414b6cee71dSXin LI#
41548c779cdSXin LI# Track Length (TRL), Tracks (TRK), Samples (SMP), Subsongs (SS)
41648c779cdSXin LI# http://lclevy.free.fr/exotica/ahx/ahxformat.txt
417b6cee71dSXin LI0	string		THX		AHX version
418b6cee71dSXin LI>3	byte		=0		1 module data
419b6cee71dSXin LI>3	byte		=1		2 module data
420a2dfb722SXin LI>11	ubyte		x		TRK: %u
421a2dfb722SXin LI>10	ubyte		x		TRL: %u
422a2dfb722SXin LI>12	ubyte		x		SMP: %u
423a2dfb722SXin LI>13	ubyte		x		SS: %u
424a2dfb722SXin LI>(4.H)		string		x		Title: "%.128s"
425a2dfb722SXin LI
426a2dfb722SXin LI# header is mostly AHX format
427a2dfb722SXin LI0		string		HVL
428a2dfb722SXin LI>3		byte		<2	Hively Tracker Song
429a2dfb722SXin LI>3		byte		=0		v1 module data
430a2dfb722SXin LI>3		byte		=1		v2 module data
431a2dfb722SXin LI>11		ubyte		x		TRK: %u
432a2dfb722SXin LI>10		ubyte		x		TRL: %u
433a2dfb722SXin LI>12		ubyte		x		SMP: %u
434a2dfb722SXin LI>13		ubyte		x		SS: %u
435a2dfb722SXin LI>8		ubyte/4		=0		CHN: 4
436a2dfb722SXin LI>8		ubyte/4		>0		CHN: 4+%u
437a2dfb722SXin LI#>-0		offset		<0xffff
438a2dfb722SXin LI>(4.H)		string		x		Title: "%.128s"
439a2dfb722SXin LI
440b6cee71dSXin LI#
441b6cee71dSXin LI0	string		OKTASONG	Oktalyzer module data
442b6cee71dSXin LI#
443b6cee71dSXin LI0	string		DIGI\ Booster\ module\0	%s
444b6cee71dSXin LI>20	byte		>0		%c
445b6cee71dSXin LI>>21	byte		>0		\b%c
446b6cee71dSXin LI>>>22	byte		>0		\b%c
447b6cee71dSXin LI>>>>23	byte		>0		\b%c
448b6cee71dSXin LI>610	string		>\0		\b, "%s"
449b6cee71dSXin LI#
450b6cee71dSXin LI0	string		DBM0	   	DIGI Booster Pro Module
451b6cee71dSXin LI>4	byte		>0		V%X.
452b6cee71dSXin LI>>5	byte		x		\b%02X
453b6cee71dSXin LI>16	string		>\0		\b, "%s"
454b6cee71dSXin LI#
455b6cee71dSXin LI0	string		FTMN		FaceTheMusic module
456b6cee71dSXin LI>16	string		>\0d		\b, "%s"
457b6cee71dSXin LI
458b6cee71dSXin LI# From: <doj@cubic.org> 2003-06-24
459b6cee71dSXin LI0	string		AMShdr\32	Velvet Studio AMS Module v2.2
460b6cee71dSXin LI0	string		Extreme		Extreme Tracker AMS Module v1.3
461b6cee71dSXin LI0	string		DDMF		Xtracker DMF Module
462b6cee71dSXin LI>4	byte		x		v%i
463b6cee71dSXin LI>0xD	string		>\0		Title: "%s"
464b6cee71dSXin LI>0x2B	string		>\0		Composer: "%s"
465b6cee71dSXin LI0	string		DSM\32		Dynamic Studio Module DSM
466b6cee71dSXin LI0	string		SONG		DigiTrekker DTM Module
467b6cee71dSXin LI0	string		DMDL		DigiTrakker MDL Module
468b6cee71dSXin LI0	string		PSM\32		Protracker Studio PSM Module
469b6cee71dSXin LI44	string		PTMF		Poly Tracker PTM Module
470b6cee71dSXin LI>0	string		>\32		Title: "%s"
471b6cee71dSXin LI0	string		MT20		MadTracker 2.0 Module MT2
472b6cee71dSXin LI0	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
473b6cee71dSXin LI0	string		RTMM		RTM Module
474b6cee71dSXin LI0x426	string		MaDoKaN96	XMS Adlib Module
475b6cee71dSXin LI>0	string		>\0		Composer: "%s"
476b6cee71dSXin LI0	string		AMF		AMF Module
477b6cee71dSXin LI>4	string		>\0		Title: "%s"
47843a5ec4eSXin LI0	string		MODINFO1	Open Cubic Player Module Information MDZ
479b6cee71dSXin LI0	string		Extended\40Instrument: Fast Tracker II Instrument
480b6cee71dSXin LI
481b6cee71dSXin LI# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
482b6cee71dSXin LI# NOA Nancy Codec file
483b6cee71dSXin LI0	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
484b6cee71dSXin LI# Yamaha SMAF format
485b6cee71dSXin LI0	string		MMMD		Yamaha SMAF file
486b6cee71dSXin LI# Sharp Jisaku Melody format for PDC
487b6cee71dSXin LI0	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
488b6cee71dSXin LI>20	string		Ver01.00	Ver. 1.00
489*ae316d1dSXin LI>>32	byte		x		\b, %d tracks
490b6cee71dSXin LI
491b6cee71dSXin LI# Free lossless audio codec <http://flac.sourceforge.net>
492b6cee71dSXin LI# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
493b6cee71dSXin LI0	string			fLaC		FLAC audio bitstream data
49458a0f0d0SEitan Adler!:mime	audio/flac
495b6cee71dSXin LI>4	byte&0x7f		>0		\b, unknown version
496b6cee71dSXin LI>4	byte&0x7f		0		\b
497b6cee71dSXin LI# some common bits/sample values
498b6cee71dSXin LI>>20	beshort&0x1f0		0x030		\b, 4 bit
499b6cee71dSXin LI>>20	beshort&0x1f0		0x050		\b, 6 bit
500b6cee71dSXin LI>>20	beshort&0x1f0		0x070		\b, 8 bit
501b6cee71dSXin LI>>20	beshort&0x1f0		0x0b0		\b, 12 bit
502b6cee71dSXin LI>>20	beshort&0x1f0		0x0f0		\b, 16 bit
503b6cee71dSXin LI>>20	beshort&0x1f0		0x170		\b, 24 bit
504b6cee71dSXin LI>>20	byte&0xe		0x0		\b, mono
505b6cee71dSXin LI>>20	byte&0xe		0x2		\b, stereo
506b6cee71dSXin LI>>20	byte&0xe		0x4		\b, 3 channels
507b6cee71dSXin LI>>20	byte&0xe		0x6		\b, 4 channels
508b6cee71dSXin LI>>20	byte&0xe		0x8		\b, 5 channels
509b6cee71dSXin LI>>20	byte&0xe		0xa		\b, 6 channels
510b6cee71dSXin LI>>20	byte&0xe		0xc		\b, 7 channels
511b6cee71dSXin LI>>20	byte&0xe		0xe		\b, 8 channels
51258a0f0d0SEitan Adler# sample rates derived from known oscillator frequencies;
51358a0f0d0SEitan Adler# 24.576 MHz (video/fs=48kHz), 22.5792 (audio/fs=44.1kHz) and
51458a0f0d0SEitan Adler# 16.384 (other/fs=32kHz).
51558a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x02b110	\b, 11.025 kHz
51658a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x03e800	\b, 16 kHz
517b6cee71dSXin LI>>17	belong&0xfffff0       	0x056220	\b, 22.05 kHz
518b6cee71dSXin LI>>17	belong&0xfffff0       	0x05dc00	\b, 24 kHz
51958a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x07d000	\b, 32 kHz
52058a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x0ac440	\b, 44.1 kHz
52158a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x0bb800	\b, 48 kHz
522b6cee71dSXin LI>>17	belong&0xfffff0       	0x0fa000	\b, 64 kHz
52358a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x158880	\b, 88.2 kHz
52458a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x177000	\b, 96 kHz
52558a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x1f4000	\b, 128 kHz
52658a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x2b1100	\b, 176.4 kHz
52758a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x2ee000	\b, 192 kHz
52858a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x3e8000	\b, 256 kHz
52958a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x562200	\b, 352.8 kHz
53058a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x5dc000	\b, 384 kHz
531b6cee71dSXin LI>>21	byte&0xf		>0		\b, >4G samples
532b6cee71dSXin LI>>21	byte&0xf		0		\b
533b6cee71dSXin LI>>>22	belong			>0		\b, %u samples
534b6cee71dSXin LI>>>22	belong			0		\b, length unknown
535b6cee71dSXin LI
536b6cee71dSXin LI# (ISDN) VBOX voice message file (Wolfram Kleff)
537b6cee71dSXin LI0       string          VBOX            VBOX voice message data
538b6cee71dSXin LI
539b6cee71dSXin LI# ReBorn Song Files (.rbs)
540b6cee71dSXin LI# David J. Singer <doc@deadvirgins.org.uk>
541b6cee71dSXin LI8       string          RB40             RBS Song file
542b6cee71dSXin LI>29     string          ReBorn           created by ReBorn
543b6cee71dSXin LI>37     string          Propellerhead    created by ReBirth
544b6cee71dSXin LI
545b6cee71dSXin LI# Synthesizer Generator and Kimwitu share their file format
546b6cee71dSXin LI0	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
547b6cee71dSXin LI# Kimwitu++ uses a slightly different magic
548b6cee71dSXin LI0	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
549b6cee71dSXin LI
550b6cee71dSXin LI# From "Simon Hosie
551b6cee71dSXin LI0       string  TFMX-SONG       TFMX module sound data
552b6cee71dSXin LI
553b6cee71dSXin LI# Monkey's Audio compressed audio format (.ape)
554b6cee71dSXin LI# From danny.milo@gmx.net (Danny Milosavljevic)
555b6cee71dSXin LI# New version from Abel Cheung <abel (@) oaka.org>
556b6cee71dSXin LI0		string		MAC\040		Monkey's Audio compressed format
557b6cee71dSXin LI!:mime audio/x-ape
558b6cee71dSXin LI>4		uleshort	>0x0F8B		version %d
559b6cee71dSXin LI>>(0x08.l)	uleshort	=1000		with fast compression
560b6cee71dSXin LI>>(0x08.l)	uleshort	=2000		with normal compression
561b6cee71dSXin LI>>(0x08.l)	uleshort	=3000		with high compression
562b6cee71dSXin LI>>(0x08.l)	uleshort	=4000		with extra high compression
563b6cee71dSXin LI>>(0x08.l)	uleshort	=5000		with insane compression
564b6cee71dSXin LI>>(0x08.l+18)	uleshort	=1		\b, mono
565b6cee71dSXin LI>>(0x08.l+18)	uleshort	=2		\b, stereo
566b6cee71dSXin LI>>(0x08.l+20)	ulelong		x		\b, sample rate %d
567b6cee71dSXin LI>4		uleshort	<0x0F8C		version %d
568b6cee71dSXin LI>>6		uleshort	=1000		with fast compression
569b6cee71dSXin LI>>6		uleshort	=2000		with normal compression
570b6cee71dSXin LI>>6		uleshort	=3000		with high compression
571b6cee71dSXin LI>>6		uleshort	=4000		with extra high compression
572b6cee71dSXin LI>>6		uleshort	=5000		with insane compression
573b6cee71dSXin LI>>10		uleshort	=1		\b, mono
574b6cee71dSXin LI>>10		uleshort	=2		\b, stereo
575b6cee71dSXin LI>>12		ulelong		x		\b, sample rate %d
576b6cee71dSXin LI
577b6cee71dSXin LI# adlib sound files
57858a0f0d0SEitan Adler# From: Alex Myczko <alex@aiei.ch>
57948c779cdSXin LI
58048c779cdSXin LI# https://github.com/rerrahkr/BambooTracker
581a2dfb722SXin LI0	string	BambooTracker	BambooTracker
582a2dfb722SXin LI>13	string	Mod		Module
583a2dfb722SXin LI>13	string	Ist		Instrument
584a2dfb722SXin LI>13	string	Bnk		Bank
58548c779cdSXin LI>22	byte	x		\b, version %u
58648c779cdSXin LI>21	byte	x		\b.%u
58748c779cdSXin LI>20	byte	x		\b.%u
58848c779cdSXin LI
589d38c30c0SXin LI0	string		CC2x		CheeseCutter 2 song
590d38c30c0SXin LI
591b6cee71dSXin LI0    	string		RAWADATA	RdosPlay RAW
592b6cee71dSXin LI
593b6cee71dSXin LI1068	string		RoR		AMUSIC Adlib Tracker
594b6cee71dSXin LI
595b6cee71dSXin LI0	string		JCH		EdLib
596b6cee71dSXin LI
597b6cee71dSXin LI0	string		mpu401tr	MPU-401 Trakker
598b6cee71dSXin LI
599b6cee71dSXin LI0	string		SAdT		Surprise! Adlib Tracker
600b6cee71dSXin LI>4	byte		x		Version %d
601b6cee71dSXin LI
602b6cee71dSXin LI0	string		XAD!		eXotic ADlib
603b6cee71dSXin LI
604b6cee71dSXin LI0	string		ofTAZ!		eXtra Simple Music
605b6cee71dSXin LI
60648c779cdSXin LI0	string		FMK!		FM Kingtracker Song
60748c779cdSXin LI
60848c779cdSXin LI0	string		DFM		DFM Song
60948c779cdSXin LI
61048c779cdSXin LI0	string		\<CUD-FM-File\>	CFF Song
61148c779cdSXin LI
61248c779cdSXin LI0	string		_A2module	A2M Song
61348c779cdSXin LI
614b6cee71dSXin LI# Spectrum 128 tunes (.ay files).
615b6cee71dSXin LI# From: Emanuel Haupt <ehaupt@critical.ch>
616b6cee71dSXin LI0	string		ZXAYEMUL	Spectrum 128 tune
617b6cee71dSXin LI
618b6cee71dSXin LI0	string		\0BONK		BONK,
619b6cee71dSXin LI#>5	byte		x		version %d
620b6cee71dSXin LI>14	byte		x		%d channel(s),
621b6cee71dSXin LI>15	byte		=1		lossless,
622b6cee71dSXin LI>15	byte		=0		lossy,
623b6cee71dSXin LI>16	byte		x		mid-side
624b6cee71dSXin LI
625b6cee71dSXin LI384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
626b6cee71dSXin LI
627b6cee71dSXin LI# format VQF (proprietary codec for sound)
628b6cee71dSXin LI# some infos on the header file available at :
629b6cee71dSXin LI# http://www.twinvq.org/english/technology_format.html
630b6cee71dSXin LI0	string		TWIN97012000	VQF data
631b6cee71dSXin LI>27	short		0		\b, Mono
632b6cee71dSXin LI>27	short		1		\b, Stereo
633b6cee71dSXin LI>31	short 		>0		\b, %d kbit/s
634b6cee71dSXin LI>35	short 		>0		\b, %d kHz
635b6cee71dSXin LI
636b6cee71dSXin LI# Nelson A. de Oliveira (naoliv@gmail.com)
637b6cee71dSXin LI# .eqf
638b6cee71dSXin LI0	string	Winamp\ EQ\ library\ file	%s
639b6cee71dSXin LI# it will match only versions like v<digit>.<digit>
640b6cee71dSXin LI# Since I saw only eqf files with version v1.1 I think that it's OK
641b6cee71dSXin LI>23	string	x	\b%.4s
642b6cee71dSXin LI# .preset
643b6cee71dSXin LI0	string	[Equalizer\ preset]	XMMS equalizer preset
644b6cee71dSXin LI# .m3u
645b6cee71dSXin LI0	search/1	#EXTM3U 	M3U playlist text
646*ae316d1dSXin LI!:mime  audio/x-mpegurl
647b6cee71dSXin LI# .pls
648b6cee71dSXin LI0	search/1	[playlist]	PLS playlist text
649b6cee71dSXin LI# licq.conf
650b6cee71dSXin LI1	string	[licq]			LICQ configuration file
651b6cee71dSXin LI
652b6cee71dSXin LI# Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
653d38c30c0SXin LI# NOTE: Most SNDH music is packed using ICE, which has
654d38c30c0SXin LI# magic numbers "ICE!" and "Ice!". Some SNDH music is
655d38c30c0SXin LI# not packed, so we check for both packed and unpacked.
656d38c30c0SXin LI12	string			SNDH	SNDH Atari ST music
657d38c30c0SXin LI0	belong&0xFFDFDFFF	0x49434521
658d38c30c0SXin LI>14	search/40		NDH	SNDH Atari ST music
659d38c30c0SXin LI>14	search/40		TITL	SNDH Atari ST music
660b6cee71dSXin LI0	string		SC68\ Music-file\ /\ (c)\ (BeN)jami	sc68 Atari ST music
661b6cee71dSXin LI
662b6cee71dSXin LI# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
6633e41d09dSXin LI0       string          MP+     Musepack audio (MP+)
664b6cee71dSXin LI!:mime	audio/x-musepack
665b6cee71dSXin LI>3      byte            255     \b, SV pre8
666b6cee71dSXin LI>3      byte&0xF        0x6     \b, SV 6
667b6cee71dSXin LI>3      byte&0xF        0x8     \b, SV 8
668b6cee71dSXin LI>3      byte&0xF        0x7     \b, SV 7
669b6cee71dSXin LI>>3     byte&0xF0       0x0     \b.0
670b6cee71dSXin LI>>3     byte&0xF0       0x10    \b.1
671b6cee71dSXin LI>>3     byte&0xF0       240     \b.15
672b6cee71dSXin LI>>10    byte&0xF0       0x0     \b, no profile
673b6cee71dSXin LI>>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
674b6cee71dSXin LI>>10    byte&0xF0       0x50    \b, quality 0
675b6cee71dSXin LI>>10    byte&0xF0       0x60    \b, quality 1
676b6cee71dSXin LI>>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
677b6cee71dSXin LI>>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
678b6cee71dSXin LI>>10    byte&0xF0       0x90    \b, quality 4 (Radio)
679b6cee71dSXin LI>>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
680b6cee71dSXin LI>>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
681b6cee71dSXin LI>>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
682b6cee71dSXin LI>>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
683b6cee71dSXin LI>>10    byte&0xF0       0xE0    \b, quality 9
684b6cee71dSXin LI>>10    byte&0xF0       0xF0    \b, quality 10
685b6cee71dSXin LI>>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
686b6cee71dSXin LI>>27    byte            102     \b, Beta 1.02
687b6cee71dSXin LI>>27    byte            104     \b, Beta 1.04
688b6cee71dSXin LI>>27    byte            105     \b, Alpha 1.05
689b6cee71dSXin LI>>27    byte            106     \b, Beta 1.06
690b6cee71dSXin LI>>27    byte            110     \b, Release 1.1
691b6cee71dSXin LI>>27    byte            111     \b, Alpha 1.11
692b6cee71dSXin LI>>27    byte            112     \b, Beta 1.12
693b6cee71dSXin LI>>27    byte            113     \b, Alpha 1.13
694b6cee71dSXin LI>>27    byte            114     \b, Beta 1.14
695b6cee71dSXin LI>>27    byte            115     \b, Alpha 1.15
696b6cee71dSXin LI
6973e41d09dSXin LI0       string          MPCK    Musepack audio (MPCK)
6983e41d09dSXin LI!:mime	audio/x-musepack
6993e41d09dSXin LI
700b6cee71dSXin LI# IMY
701b6cee71dSXin LI# from http://filext.com/detaillist.php?extdetail=IMY
70248c779cdSXin LI# https://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
703b6cee71dSXin LI# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
704b6cee71dSXin LI# http://www.wx800.com/msg/download/irda/iMelody.pdf
705b6cee71dSXin LI0	string	BEGIN:IMELODY	iMelody Ringtone Format
706b6cee71dSXin LI
707b6cee71dSXin LI# From: "Mateus Caruccio" <mateus@caruccio.com>
708b6cee71dSXin LI# guitar pro v3,4,5 from http://filext.com/file-extension/gp3
709b6cee71dSXin LI0	string	\030FICHIER\ GUITAR\ PRO\ v3.	Guitar Pro Ver. 3 Tablature
710b6cee71dSXin LI
711b6cee71dSXin LI# From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
712b6cee71dSXin LI60	string	SONG		SoundFX Module sound file
713b6cee71dSXin LI
714b6cee71dSXin LI# Type: Adaptive Multi-Rate Codec
715b6cee71dSXin LI# URL:  http://filext.com/detaillist.php?extdetail=AMR
716*ae316d1dSXin LI#		http://fileformats.archiveteam.org/wiki/Adaptive_Multi-Rate_Audio
717*ae316d1dSXin LI# Reference:	https://datatracker.ietf.org/doc/html/rfc4867
718*ae316d1dSXin LI#		http://mark0.net/download/triddefs_xml.7z/defs/a/audio-amr.trid.xml
719*ae316d1dSXin LI# Update:	Joerg Jenderek
720b6cee71dSXin LI# From: Russell Coker <russell@coker.com.au>
721*ae316d1dSXin LI# Note:		called "AMR (Adaptive Multi Rate) encoded audio" by TrID and
722*ae316d1dSXin LI#		"Adaptive Multi-Rate Audio" by DROID via PUID fmt/356 and
723*ae316d1dSXin LI#		"AMR" "AMR audio" or "Adaptive Multi-Rate" by shared MIME-info database from freedesktop.org
724*ae316d1dSXin LI0	string	#!AMR		Adaptive Multi-Rate Codec
725*ae316d1dSXin LI# Adaptive Multi-Rate Codec (strength=80) before wrong "a AMR script executable (binary data)" (strength=20=60/3) by ./varied.script
726*ae316d1dSXin LI#!:strength +0
727*ae316d1dSXin LI# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/a/audio-awb.trid.xml
728*ae316d1dSXin LI# Note:		called "Adaptive Multi-Rate Wideband ACELP codec" by TrID and
729*ae316d1dSXin LI#		"Adaptive Multi-Rate Wideband Audio" bY DROID via PUID fmt/954 and
730*ae316d1dSXin LI#		"AMR-WB" "AMR-WB audio" or "Adaptive Multi-Rate Wideband" by shared MIME-info database from freedesktop.org
731*ae316d1dSXin LI>5	string	-WB		(Wideband)
732*ae316d1dSXin LI# https://www.iana.org/assignments/media-types/audio/AMR-WB
733*ae316d1dSXin LI!:mime	audio/AMR-WB
734*ae316d1dSXin LI#!:mime	audio/amr-wb-encrypted
735*ae316d1dSXin LI!:apple	????amrw
736*ae316d1dSXin LI!:ext	awb
737*ae316d1dSXin LI# variant without Wideband
738*ae316d1dSXin LI>5	default	x		(GSM telephony)
739*ae316d1dSXin LI# https://www.iana.org/assignments/media-types/audio/AMR
740*ae316d1dSXin LI!:mime	audio/AMR
741*ae316d1dSXin LI# last character in type code is space
742*ae316d1dSXin LI!:apple	????amr
74348c779cdSXin LI!:ext  amr
744*ae316d1dSXin LI# GRR: maybe also 3ga suffix?		https://telparia.com/fileFormatSamples/audio/amr/example.3ga
745*ae316d1dSXin LI#!:ext  amr/3ga
746b6cee71dSXin LI
747b6cee71dSXin LI# Type: SuperCollider 3 Synth Definition File Format
748b6cee71dSXin LI# From: Mario Lang <mlang@debian.org>
749b6cee71dSXin LI0	string	SCgf	SuperCollider3 Synth Definition file,
750b6cee71dSXin LI>4	belong	x	version %d
751b6cee71dSXin LI
752b6cee71dSXin LI# Type: True Audio Lossless Audio
75348c779cdSXin LI# URL:  https://wiki.multimedia.cx/index.php?title=True_Audio
754b6cee71dSXin LI# From: Mike Melanson <mike@multimedia.cx>
755b6cee71dSXin LI0	string	TTA1	True Audio Lossless Audio
756b6cee71dSXin LI
757b6cee71dSXin LI# Type: WavPack Lossless Audio
75848c779cdSXin LI# URL:  https://wiki.multimedia.cx/index.php?title=WavPack
759b6cee71dSXin LI# From: Mike Melanson <mike@multimedia.cx>
760b6cee71dSXin LI0	string	wvpk	WavPack Lossless Audio
761b6cee71dSXin LI
762b6cee71dSXin LI# From Fabio R. Schmidlin <frs@pop.com.br>
763b6cee71dSXin LI# VGM music file
76440427ccaSGordon Tetlow0	string		Vgm\040
765b6cee71dSXin LI>9	ubyte		>0	VGM Video Game Music dump v
76648c779cdSXin LI!:mime	audio/x-vgm
76748c779cdSXin LI!:ext	vgm
768b6cee71dSXin LI>>9	ubyte/16	>0	\b%d
769b6cee71dSXin LI>>9	ubyte&0x0F	x	\b%d
770b6cee71dSXin LI>>8	ubyte/16	x	\b.%d
771b6cee71dSXin LI>>8	ubyte&0x0F	>0	\b%d
772b6cee71dSXin LI#Get soundchips
773b6cee71dSXin LI>>8	ubyte		x	\b, soundchip(s)=
77443a5ec4eSXin LI>>0x0C	ulelong		>0	SN76489 (PSG),
77543a5ec4eSXin LI>>0x10	ulelong		>0	YM2413 (OPLL),
77643a5ec4eSXin LI>>0x2C	ulelong		>0	YM2612 (OPN2),
77743a5ec4eSXin LI>>0x30	ulelong		>0	YM2151 (OPM),
778b6cee71dSXin LI>>0x38	ulelong		>0	Sega PCM,
779b6cee71dSXin LI>>0x34	ulelong		>0xC
78043a5ec4eSXin LI>>>0x40	ulelong		>0	RF5C68 (PCM),
781b6cee71dSXin LI>>0x34	ulelong		>0x10
78243a5ec4eSXin LI>>>0x44	ulelong		>0	YM2203 (OPN),
783b6cee71dSXin LI>>0x34	ulelong		>0x14
78443a5ec4eSXin LI>>>0x48	ulelong		>0	YM2608 (OPNA),
785b6cee71dSXin LI>>0x34	ulelong		>0x18
78643a5ec4eSXin LI>>>0x4C	lelong		>0	YM2610 (OPNB),
78743a5ec4eSXin LI>>>0x4C	lelong		<0	YM2610B (OPNB+2FM),
788b6cee71dSXin LI>>0x34	ulelong		>0x1C
78943a5ec4eSXin LI>>>0x50	ulelong		>0	YM3812 (OPL2),
790b6cee71dSXin LI>>0x34	ulelong		>0x20
79143a5ec4eSXin LI>>>0x54	ulelong		>0	YM3526 (OPL),
792b6cee71dSXin LI>>0x34	ulelong		>0x24
79343a5ec4eSXin LI>>>0x58	ulelong		>0	Y8950 (MSX-Audio),
794b6cee71dSXin LI>>0x34	ulelong		>0x28
79543a5ec4eSXin LI>>>0x5C	ulelong		>0	YMF262 (OPL3),
796b6cee71dSXin LI>>0x34	ulelong		>0x2C
79743a5ec4eSXin LI>>>0x60	ulelong		>0	YMF278B (OPL4),
798b6cee71dSXin LI>>0x34	ulelong		>0x30
79943a5ec4eSXin LI>>>0x64	ulelong		>0	YMF271 (OPX),
800b6cee71dSXin LI>>0x34	ulelong		>0x34
80143a5ec4eSXin LI>>>0x68	ulelong		>0	YMZ280B (PCMD8),
802b6cee71dSXin LI>>0x34	ulelong		>0x38
80343a5ec4eSXin LI>>>0x6C	ulelong		>0	RF5C164 (PCM),
804b6cee71dSXin LI>>0x34	ulelong		>0x3C
805b6cee71dSXin LI>>>0x70	ulelong		>0	PWM,
806b6cee71dSXin LI>>0x34	ulelong		>0x40
807b6cee71dSXin LI>>>0x74	ulelong		>0
808b6cee71dSXin LI>>>>0x78 ubyte		0x00	AY-3-8910,
809b6cee71dSXin LI>>>>0x78 ubyte		0x01	AY-3-8912,
810b6cee71dSXin LI>>>>0x78 ubyte		0x02	AY-3-8913,
811b6cee71dSXin LI>>>>0x78 ubyte		0x03	AY-3-8930,
812b6cee71dSXin LI>>>>0x78 ubyte		0x10	YM2149,
813b6cee71dSXin LI>>>>0x78 ubyte		0x11	YM3439,
814d38c30c0SXin LI>>>>0x78 ubyte		0x12	YMZ284,
815d38c30c0SXin LI>>>>0x78 ubyte		0x13	YMZ294,
81648c779cdSXin LI# VGM 1.61
81748c779cdSXin LI>>0x34	ulelong		>0x4C
81848c779cdSXin LI>>>0x80	ulelong		>0	DMG,
81948c779cdSXin LI>>0x34	ulelong		>0x50
82048c779cdSXin LI>>>0x84	lelong		>0	NES APU,
82148c779cdSXin LI>>>0x84	lelong		<0	NES APU with FDS,
82248c779cdSXin LI>>0x34	ulelong		>0x54
82348c779cdSXin LI>>>0x88	ulelong		>0	MultiPCM,
82448c779cdSXin LI>>0x34	ulelong		>0x58
82543a5ec4eSXin LI>>>0x8C	ulelong		>0	uPD7759 (ADPCM Speech),
82648c779cdSXin LI>>0x34	ulelong		>0x5C
82743a5ec4eSXin LI>>>0x90	ulelong		>0	OKIM6258 (ADPCM Speech),
82848c779cdSXin LI>>0x34	ulelong		>0x64
82943a5ec4eSXin LI>>>0x98	ulelong		>0	OKIM6295 (ADPCM),
83048c779cdSXin LI>>0x34	ulelong		>0x68
83148c779cdSXin LI>>>0x9C	ulelong		>0	K051649,
83248c779cdSXin LI>>0x34	ulelong		>0x6C
83348c779cdSXin LI>>>0xA0	ulelong		>0	K054539,
83448c779cdSXin LI>>0x34	ulelong		>0x70
83548c779cdSXin LI>>>0xA4	ulelong		>0	HuC6280,
83648c779cdSXin LI>>0x34	ulelong		>0x74
83748c779cdSXin LI>>>0xA8	ulelong		>0	C140,
83848c779cdSXin LI>>0x34	ulelong		>0x78
83948c779cdSXin LI>>>0xAC	ulelong		>0	K053260,
84048c779cdSXin LI>>0x34	ulelong		>0x7C
84148c779cdSXin LI>>>0xB0	ulelong		>0	Pokey,
84248c779cdSXin LI>>0x34	ulelong		>0x80
84348c779cdSXin LI>>>0xB4	ulelong		>0	QSound,
84448c779cdSXin LI# VGM 1.71
84548c779cdSXin LI>>0x34	ulelong		>0x84
84648c779cdSXin LI>>>0xB8	ulelong		>0	SCSP,
84748c779cdSXin LI>>0x34	ulelong		>0x8C
84848c779cdSXin LI>>>0xC0	ulelong		>0	WonderSwan,
84948c779cdSXin LI>>0x34	ulelong		>0x90
85048c779cdSXin LI>>>0xC4	ulelong		>0	VSU,
85148c779cdSXin LI>>0x34	ulelong		>0x94
85248c779cdSXin LI>>>0xC8	ulelong		>0	SAA1099,
85348c779cdSXin LI>>0x34	ulelong		>0x98
85443a5ec4eSXin LI>>>0xCC	ulelong		>0	ES5503 (DOC),
85548c779cdSXin LI>>0x34	ulelong		>0x9C
85643a5ec4eSXin LI>>>0xD0	lelong		>0	ES5505 (OTIS),
85743a5ec4eSXin LI>>>0xD0	lelong		<0	ES5506 (OTTO),
85848c779cdSXin LI>>0x34	ulelong		>0xA4
85948c779cdSXin LI>>>0xD8	ulelong		>0	X1-010,
86048c779cdSXin LI>>0x34	ulelong		>0xA8
86148c779cdSXin LI>>>0xDC	ulelong		>0	C352,
86248c779cdSXin LI>>0x34	ulelong		>0xAC
86348c779cdSXin LI>>>0xE0	ulelong		>0	GA20,
864b6cee71dSXin LI
865b6cee71dSXin LI# GVOX Encore file format
866b6cee71dSXin LI# Since this is a proprietary file format and there is no publicly available
867b6cee71dSXin LI# format specification, this is just based on induction
868b6cee71dSXin LI#
869b6cee71dSXin LI0	string	SCOW
870b6cee71dSXin LI>4	byte	0xc4	GVOX Encore music, version 5.0 or above
871b6cee71dSXin LI>4	byte	0xc2	GVOX Encore music, version < 5.0
872b6cee71dSXin LI
873b6cee71dSXin LI0	string	ZBOT
874b6cee71dSXin LI>4	byte	0xc5	GVOX Encore music, version < 5.0
875b6cee71dSXin LI
8763e41d09dSXin LI# Summary:	Garmin Voice Processing Module (WAVE audios)
8773e41d09dSXin LI# From:		Joerg Jenderek
87848c779cdSXin LI# URL:		https://www.garmin.com/
87948c779cdSXin LI# Reference:	http://www.poi-factory.com/node/19580
8803e41d09dSXin LI# NOTE:		there exist 2 other Garmin VPM formats
8813e41d09dSXin LI0		string	AUDIMG
8823e41d09dSXin LI# skip text files starting with string "AUDIMG"
8833e41d09dSXin LI>13		ubyte		<13	Garmin Voice Processing Module
8843e41d09dSXin LI!:mime	audio/x-vpm-wav-garmin
8853e41d09dSXin LI!:ext	vpm
8863e41d09dSXin LI# 3 bytes indicating the voice version (200,220)
8873e41d09dSXin LI>>6		string		x	\b, version %3.3s
8883e41d09dSXin LI# day of release (01-31)
8893e41d09dSXin LI>>12		ubyte		x	\b, %.2d
8903e41d09dSXin LI# month of release (01-12)
8913e41d09dSXin LI>>13		ubyte		x	\b.%.2d
8923e41d09dSXin LI# year of release (like 2006, 2007, 2008)
8933e41d09dSXin LI>>14		uleshort	x	\b.%.4d
8943e41d09dSXin LI# hour of release (0-23)
8953e41d09dSXin LI>>11		ubyte		x	%.2d
8963e41d09dSXin LI# minute of release (0-59)
8973e41d09dSXin LI>>10		ubyte		x	\b:%.2d
8983e41d09dSXin LI# second of release (0-59)
8993e41d09dSXin LI>>9		ubyte		x	\b:%.2d
9003e41d09dSXin LI# if you select a language like german on your garmin device
90140427ccaSGordon Tetlow# you can only select voice modules with corresponding language byte ID like 1
9023e41d09dSXin LI>>18		ubyte		x	\b, language ID %d
90348c779cdSXin LI# structure for phrases/sentences?
90448c779cdSXin LI# number of voice sample in the 1st phrase?
90543a5ec4eSXin LI#>>19		uleshort		x	\b, %#x samples
90643a5ec4eSXin LI#>>>21		uleshort		>0	\b, at %#4.4x
90743a5ec4eSXin LI#>>>(21.s)	ubequad			x	%#llx
90848c779cdSXin LI# 2nd phrase?
90943a5ec4eSXin LI#>>23		uleshort		x	\b, %#x samples
91043a5ec4eSXin LI#>>>25		uleshort		>0	\b, at %#4.4x
91143a5ec4eSXin LI#>>>(25.s)	ubequad			x	%#llx
9123e41d09dSXin LI# pointer to 1st audio WAV sample
9133e41d09dSXin LI>>16		uleshort	>0
91443a5ec4eSXin LI>>>(16.s)	ulelong		>0	\b, at %#x
9153e41d09dSXin LI# WAV length
91648c779cdSXin LI# 1 space char after "bytes" to get phrase "bytes RIFF"
91748c779cdSXin LI>>>>(16.s+4)	ulelong		>0	%u bytes
9183e41d09dSXin LI# look for magic
9193e41d09dSXin LI>>>>>(&-8.l)	string		RIFF
9203e41d09dSXin LI# determine type by ./riff
92148c779cdSXin LI>>>>>>&-4	indirect	x
9223e41d09dSXin LI# 2 - ~ 131 WAV samples following same way
92348c779cdSXin LI#
92448c779cdSXin LI# Summary:	encrypted Garmin Voice Processing Module
92548c779cdSXin LI# From:		Joerg Jenderek
92648c779cdSXin LI# URL:		https://www.garmin.com/us/products/ontheroad/voicestudio
92748c779cdSXin LI# NOTE:		Encrypted variant used in voices like DrNightmare, Elfred, Yeti.
92848c779cdSXin LI#		There exist 2 other Garmin VPM formats
92948c779cdSXin LI0	ubequad		0xa141190fecc8ced6	Garmin Voice Processing Module (encrypted)
93048c779cdSXin LI!:mime	audio/x-vpm-garmin
93148c779cdSXin LI!:ext	vpm
9323e41d09dSXin LI
93340427ccaSGordon Tetlow# From Martin Mueller Skarbiniks Pedersen
93440427ccaSGordon Tetlow0		string		GDM
93540427ccaSGordon Tetlow>0x3		byte		0xFE	General Digital Music.
936*ae316d1dSXin LI>>0x4		string		>\0	title: "%s"
937*ae316d1dSXin LI>>0x24		string		>\0	musician: "%s"
938*ae316d1dSXin LI>>>0x44		beshort		0x0D0A
939*ae316d1dSXin LI>>>>0x46	byte		0x1A
940*ae316d1dSXin LI>>>>>0x47	string		GMFS	Version
941*ae316d1dSXin LI>>>>>0x4B	byte		x	%d.
942*ae316d1dSXin LI>>>>>0x4C	byte		x	\b%02d
943*ae316d1dSXin LI>>>>>0x4D	beshort		0x000	(2GDM v
944*ae316d1dSXin LI>>>>>0x4F	byte		x	\b%d.
945*ae316d1dSXin LI>>>>>>0x50	byte		x	\b%d)
94640427ccaSGordon Tetlow
94740427ccaSGordon Tetlow0		string		MTM	Multitracker
94840427ccaSGordon Tetlow>0x3		byte/16		x	Version %d.
94940427ccaSGordon Tetlow>0x3		byte&0x0F	x	\b%02d
95040427ccaSGordon Tetlow>>0x4		string		>\0	title: "%s"
95140427ccaSGordon Tetlow
95240427ccaSGordon Tetlow0		string		MO3
95340427ccaSGordon Tetlow>3		ubyte		<6	MOdule with MP3
95440427ccaSGordon Tetlow>>3		byte		0	Version	0	(With MP3 and lossless)
95540427ccaSGordon Tetlow>>3		byte		1	Version	1	(With ogg and lossless)
95640427ccaSGordon Tetlow>>3		byte		3	Version 2.2
95740427ccaSGordon Tetlow>>3		byte		4	(With no LAME header)
95840427ccaSGordon Tetlow>>3		byte		5	Version 2.4
95940427ccaSGordon Tetlow
96040427ccaSGordon Tetlow0		string		ADRVPACK	AProSys	module
96140427ccaSGordon Tetlow
96240427ccaSGordon Tetlow# ftp://ftp.modland.com/pub/documents/format_documentation/\
96340427ccaSGordon Tetlow# Art%20Of%20Noise%20(.aon).txt
96440427ccaSGordon Tetlow0		string		AON
96540427ccaSGordon Tetlow>4		string		"ArtOfNoise by Bastian Spiegel(twice/lego)"
96640427ccaSGordon Tetlow>0x2e		string		NAME	Art of Noise Tracker Song
96740427ccaSGordon Tetlow>3		string		<9
968*ae316d1dSXin LI>>3		string		4	(4 voices)
969*ae316d1dSXin LI>>3		string		8	(8 voices)
97040427ccaSGordon Tetlow>>0x36		string		>\0	Title: "%s"
97140427ccaSGordon Tetlow
97240427ccaSGordon Tetlow0		string		FAR
97340427ccaSGordon Tetlow>0x2c		byte		0x0d
974*ae316d1dSXin LI>>0x2d		byte		0x0a
975*ae316d1dSXin LI>>>0x2e		byte		0x1a
976*ae316d1dSXin LI>>>>0x3		byte		0xFE	Farandole Tracker Song
977*ae316d1dSXin LI>>>>>0x31		byte/16		x	Version %d.
978*ae316d1dSXin LI>>>>>0x31		byte&0x0F	x	\b%02d
979*ae316d1dSXin LI>>>>>0x4		string		>\0	\b, title: "%s"
98058a0f0d0SEitan Adler
98148c779cdSXin LI# magic for Klystrack, https://kometbomb.github.io/klystrack/
98258a0f0d0SEitan Adler# from Alex Myczko <alex@aiei.ch>
98358a0f0d0SEitan Adler0	string	cyd!song	Klystrack song
98458a0f0d0SEitan Adler>8	byte	>0		\b, version %u
98558a0f0d0SEitan Adler>8	byte	>26
98658a0f0d0SEitan Adler#>>9	byte	x		\b, channels %u
98758a0f0d0SEitan Adler#>>10	leshort	x		\b, time signature %u
98858a0f0d0SEitan Adler#>>12	leshort	x		\b, sequence step %u
98958a0f0d0SEitan Adler#>>14	byte	x		\b, instruments %u
99058a0f0d0SEitan Adler#>>15	leshort	x		\b, patterns %u
99158a0f0d0SEitan Adler#>>17	leshort	x		\b, sequences %u
99258a0f0d0SEitan Adler#>>19	leshort	x		\b, length %u
99358a0f0d0SEitan Adler#>>21	leshort	x		\b, loop point %u
99458a0f0d0SEitan Adler#>>23	byte	x		\b, master volume %u
99558a0f0d0SEitan Adler#>>24	byte	x		\b, song speed %u
99658a0f0d0SEitan Adler#>>25	byte	x		\b, song speed2 %u
99758a0f0d0SEitan Adler#>>26	byte	x		\b, song rate %u
99858a0f0d0SEitan Adler#>>27	belong	x		\b, flags %#x
99958a0f0d0SEitan Adler#>>31	byte	x		\b, multiplex period %u
100058a0f0d0SEitan Adler#>>32	byte	x		\b, pitch inaccuracy %u
100158a0f0d0SEitan Adler>>149	pstring	x		\b, title %s
100258a0f0d0SEitan Adler
100358a0f0d0SEitan Adler0	string	cyd!inst	Klystrack instrument
100458a0f0d0SEitan Adler
100558a0f0d0SEitan Adler# magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor
100658a0f0d0SEitan Adler# see Specifications/WOPL-and-OPLI-Specification.txt
100758a0f0d0SEitan Adler
100858a0f0d0SEitan Adler0	string	WOPL3-INST\0	WOPL instrument
100958a0f0d0SEitan Adler>11	leshort	x	\b, version %u
101058a0f0d0SEitan Adler0	string	WOPL3-BANK\0	WOPL instrument bank
101158a0f0d0SEitan Adler>11	leshort	x	\b, version %u
101258a0f0d0SEitan Adler
101358a0f0d0SEitan Adler# AdLib/OPL instrument files. Format specifications on
101458a0f0d0SEitan Adler#  http://www.shikadi.net/moddingwiki
101558a0f0d0SEitan Adler0	string	Junglevision\ Patch\ File	Junglevision instrument data
101658a0f0d0SEitan Adler0	string	#OPL_II#	DMX OP2 instrument data
101758a0f0d0SEitan Adler0	string	IBK\x1a		IBK instrument data
101858a0f0d0SEitan Adler0	string	2OP\x1a		IBK instrument data, 2 operators
101958a0f0d0SEitan Adler0	string	4OP\x1a		IBK instrument data, 4 operators
102058a0f0d0SEitan Adler2	string	ADLIB-		AdLib instrument data
102158a0f0d0SEitan Adler>0	byte	x		\b, version %u
102258a0f0d0SEitan Adler>1	byte	x		\b.%u
10232dc4dbb9SEitan Adler
10242dc4dbb9SEitan Adler# CRI ADX ADPCM audio
10252dc4dbb9SEitan Adler# Used by various Sega games.
10262dc4dbb9SEitan Adler# https://en.wikipedia.org/wiki/ADX_(file_format)
10272dc4dbb9SEitan Adler# https://wiki.multimedia.cx/index.php/CRI_ADX_file
10282dc4dbb9SEitan Adler# Added by David Korth <gerbilsoft@gerbilsoft.com>
10292dc4dbb9SEitan Adler0x00		beshort		0x8000
10302dc4dbb9SEitan Adler>(2.S-2)	string		(c)CRI		CRI ADX ADPCM audio
103148c779cdSXin LI!:ext adx
103248c779cdSXin LI!:mime audio/x-adx
103348c779cdSXin LI!:strength +50
10342dc4dbb9SEitan Adler>>0x12		byte		x		v%u
10352dc4dbb9SEitan Adler>>0x04		byte		0x02		\b, pre-set prediction coefficients
10362dc4dbb9SEitan Adler>>0x04		byte		0x03		\b, standard ADX
10372dc4dbb9SEitan Adler>>0x04		byte		0x04		\b, exponential scale
103848c779cdSXin LI>>0x04		byte		0x10		\b, AHX (Dreamcast)
103948c779cdSXin LI>>0x04		byte		0x11		\b, AHX
10402dc4dbb9SEitan Adler>>0x08		belong		x		\b, %u Hz
10412dc4dbb9SEitan Adler>>0x12		byte		0x03
10422dc4dbb9SEitan Adler>>>0x02		beshort		>0x2B
10432dc4dbb9SEitan Adler>>>>0x18	belong		!0		\b, looping
10442dc4dbb9SEitan Adler>>0x12		byte		0x04
10452dc4dbb9SEitan Adler>>>0x02		beshort		>0x37
10462dc4dbb9SEitan Adler>>>>0x24	belong		!0		\b, looping
10472dc4dbb9SEitan Adler>>0x13		byte&0x08	0x08		\b, encrypted
10482dc4dbb9SEitan Adler
10492dc4dbb9SEitan Adler# Lossless audio (.la) (http://www.lossless-audio.com/)
10502dc4dbb9SEitan Adler0	string	LA
10512dc4dbb9SEitan Adler>2	string	03	Lossless audio version 0.3
10522dc4dbb9SEitan Adler>2	string	04	Lossless audio version 0.4
10532dc4dbb9SEitan Adler
10542dc4dbb9SEitan Adler# Sony PlayStation Audio (.xa)
10552dc4dbb9SEitan Adler0	leshort 0x4158	Sony PlayStation Audio
10562dc4dbb9SEitan Adler
105748c779cdSXin LI# Portable Sound Format
105848c779cdSXin LI# Used for audio rips for various consoles.
105948c779cdSXin LI# http://fileformats.archiveteam.org/wiki/Portable_Sound_Format
106048c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
1061d38c30c0SXin LI0	string	PSF
1062d38c30c0SXin LI>3	byte	0x01
1063*ae316d1dSXin LI>>0	use	portable_sound_format
1064d38c30c0SXin LI>3	byte	0x02
1065*ae316d1dSXin LI>>0	use	portable_sound_format
1066d38c30c0SXin LI>3	byte	0x11
1067*ae316d1dSXin LI>>0	use	portable_sound_format
1068d38c30c0SXin LI>3	byte	0x12
1069*ae316d1dSXin LI>>0	use	portable_sound_format
1070d38c30c0SXin LI>3	byte	0x13
1071*ae316d1dSXin LI>>0	use	portable_sound_format
1072d38c30c0SXin LI>3	byte	0x21
1073*ae316d1dSXin LI>>0	use	portable_sound_format
1074d38c30c0SXin LI>3	byte	0x22
1075*ae316d1dSXin LI>>0	use	portable_sound_format
1076d38c30c0SXin LI>3	byte	0x23
1077*ae316d1dSXin LI>>0	use	portable_sound_format
1078d38c30c0SXin LI>3	byte	0x41
1079*ae316d1dSXin LI>>0	use	portable_sound_format
1080*ae316d1dSXin LI
1081*ae316d1dSXin LI
1082*ae316d1dSXin LI0	name	portable_sound_format
1083*ae316d1dSXin LI>0	string	PSF	Portable Sound Format
108448c779cdSXin LI!:mime	audio/x-psf
1085*ae316d1dSXin LI>>3	byte	0x01	(Sony PlayStation)
1086*ae316d1dSXin LI>>3	byte	0x02	(Sony PlayStation 2)
1087*ae316d1dSXin LI>>3	byte	0x11	(Sega Saturn)
1088*ae316d1dSXin LI>>3	byte	0x12	(Sega Dreamcast)
1089*ae316d1dSXin LI>>3	byte	0x13	(Sega Mega Drive)
1090*ae316d1dSXin LI>>3	byte	0x21	(Nintendo 64)
1091*ae316d1dSXin LI>>3	byte	0x22	(Game Boy Advance)
1092*ae316d1dSXin LI>>3	byte	0x23	(Super NES)
1093*ae316d1dSXin LI>>3	byte	0x41	(Capcom QSound)
109448c779cdSXin LI
109548c779cdSXin LI# Atari 8-bit SAP audio format
109648c779cdSXin LI# http://asap.sourceforge.net/sap-format.html
109748c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
109848c779cdSXin LI0	string		SAP\r\n	Atari 8-bit SAP audio file
109948c779cdSXin LI!:mime	audio/x-sap
110048c779cdSXin LI!:ext	sap
110148c779cdSXin LI>5	search/1024	NAME
110248c779cdSXin LI>>&1	string		x	\b: %s
110348c779cdSXin LI>>5	search/1024	AUTHOR
110448c779cdSXin LI>>>&1	string		x	by %s
110548c779cdSXin LI
110648c779cdSXin LI# Nintendo Wii BRSTM audio format (fields)
110748c779cdSXin LI# NOTE: Assuming HEAD starts at 0x40.
110848c779cdSXin LI# FIXME: Replace 0x48 with HEAD offset plus 8.
110948c779cdSXin LI0	name	nintendo-wii-brstm-fields
111048c779cdSXin LI>(0x10.L)	string	HEAD	\b:
111148c779cdSXin LI>>(0x10.L+0x0C)	belong	x
111248c779cdSXin LI>>>(&-4.L+0x48)	belong	x
111348c779cdSXin LI>>>>&-4		byte	0	PCM, signed 8-bit,
111448c779cdSXin LI>>>>&-4		byte	1	PCM, signed 16-bit,
111548c779cdSXin LI>>>>&-4		byte	2	THP ADPCM,
111648c779cdSXin LI>>>>&-3		byte	!0	looping,
111748c779cdSXin LI>>>>&-2		byte	1	mono
111848c779cdSXin LI>>>>&-2		byte	2	stereo
111948c779cdSXin LI>>>>&-2		byte	3	3 channels
112048c779cdSXin LI>>>>&-2		byte	4	quad
112148c779cdSXin LI>>>>&-2		byte	>4	%u channels
112248c779cdSXin LI>>>>&0		beshort	!0	%u Hz
112348c779cdSXin LI
112448c779cdSXin LI# Nintendo Wii BRSTM audio format
112548c779cdSXin LI# https://wiibrew.org/wiki/BRSTM_file
112648c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
112748c779cdSXin LI0	string		RSTM	Nintendo Wii BRSTM audio file
112848c779cdSXin LI!:mime	audio/x-brstm
112948c779cdSXin LI!:ext	brstm
113048c779cdSXin LI# Wii is big-endian, so default to BE.
113148c779cdSXin LI>4	beshort		0xFEFF
113248c779cdSXin LI>>0	use		nintendo-wii-brstm-fields
113348c779cdSXin LI>4	leshort		0xFEFF
113448c779cdSXin LI>>0	use		\^nintendo-wii-brstm-fields
113548c779cdSXin LI
113648c779cdSXin LI# Nintendo 3DS BCSTM audio format (fields)
113748c779cdSXin LI0	name	nintendo-3ds-bcstm-fields
113848c779cdSXin LI>(0x18.l)	string	INFO	\b:
113948c779cdSXin LI# INFO block: Stream information starts at 0x20 (minus 4 for the 'INFO' magic)
114048c779cdSXin LI>>&0x1C		byte	0	PCM, signed 8-bit,
114148c779cdSXin LI>>&0x1C		byte	1	PCM, signed 16-bit,
114248c779cdSXin LI>>&0x1C		byte	2	DSP ADPCM,
114348c779cdSXin LI>>&0x1C		byte	3	IMA ADPCM,
114448c779cdSXin LI>>&0x1D		byte	!0	looping,
114548c779cdSXin LI>>&0x1E		byte	1	mono
114648c779cdSXin LI>>&0x1E		byte	2	stereo
114748c779cdSXin LI>>&0x1E		byte	3	3 channels
114848c779cdSXin LI>>&0x1E		byte	4	quad
114948c779cdSXin LI>>&0x1E		byte	>4	%u channels
115048c779cdSXin LI>>&0x20		lelong	!0	%u Hz
115148c779cdSXin LI
115248c779cdSXin LI# Nintendo 3DS BCSTM audio format
115348c779cdSXin LI# https://www.3dbrew.org/wiki/BCSTM
115448c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
115548c779cdSXin LI0	string		CSTM	Nintendo 3DS BCSTM audio file
115648c779cdSXin LI!:mime	audio/x-bcstm
115748c779cdSXin LI!:ext	bcstm
115848c779cdSXin LI# 3DS is little-endian, so default to LE.
115948c779cdSXin LI>4	leshort		0xFEFF
116048c779cdSXin LI>>0	use		nintendo-3ds-bcstm-fields
116148c779cdSXin LI>4	beshort		0xFEFF
116248c779cdSXin LI>>0	use		\^nintendo-3ds-bcstm-fields
116348c779cdSXin LI
116448c779cdSXin LI# Nintendo Wii U BFSTM audio format
116548c779cdSXin LI# http://mk8.tockdom.com/wiki/BFSTM_(File_Format)
116648c779cdSXin LI# NOTE: This format is very similar to BCSTM.
116748c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
116848c779cdSXin LI0	string		FSTM	Nintendo Wii U BFSTM audio file
116948c779cdSXin LI!:mime	audio/x-bfstm
117048c779cdSXin LI!:ext	bfstm
117148c779cdSXin LI# BFSTM is used on both Wii U (BE) and Switch (LE),
117248c779cdSXin LI# so default to LE.
117348c779cdSXin LI>4	leshort		0xFEFF
117448c779cdSXin LI>>0	use		nintendo-3ds-bcstm-fields
117548c779cdSXin LI>4	beshort		0xFEFF
117648c779cdSXin LI>>0	use		\^nintendo-3ds-bcstm-fields
117748c779cdSXin LI
117848c779cdSXin LI# Nintendo 3DS BCSTM audio format (fields)
117948c779cdSXin LI0	name	nintendo-3ds-bcwav-fields
118048c779cdSXin LI>(0x18.l)	string	INFO	\b:
118148c779cdSXin LI# INFO block (minus 4 for INFO magic)
118248c779cdSXin LI>>&0x4		byte	0	PCM, signed 8-bit,
118348c779cdSXin LI>>&0x4		byte	1	PCM, signed 16-bit,
118448c779cdSXin LI>>&0x4		byte	2	DSP ADPCM,
118548c779cdSXin LI>>&0x4		byte	3	IMA ADPCM,
118648c779cdSXin LI>>&0x5		byte	!0	looping,
118748c779cdSXin LI>>&0x8		lelong	x	stereo
118848c779cdSXin LI>>&0x8		lelong	!0	%u Hz
118948c779cdSXin LI
119048c779cdSXin LI# Nintendo 3DS BCWAV audio format
119148c779cdSXin LI# https://www.3dbrew.org/wiki/BCWAV
119248c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
119348c779cdSXin LI0	string		CWAV	Nintendo 3DS BCWAV audio file
119448c779cdSXin LI!:mime	audio/x-bcwav
119548c779cdSXin LI!:ext	bcwav
119648c779cdSXin LI# 3DS is little-endian, so default to LE.
119748c779cdSXin LI>4	leshort		0xFEFF
119848c779cdSXin LI>>0	use		nintendo-3ds-bcwav-fields
119948c779cdSXin LI>4	beshort		0xFEFF
120048c779cdSXin LI>>0	use		\^nintendo-3ds-bcwav-fields
1201a2dfb722SXin LI
1202a2dfb722SXin LI# Philips DSDIFF audio format (Direct Stream Digital Interchange File Format)
1203a2dfb722SXin LI# Used for DSD audio recordings and Super Audio CD (SACD) mastering annotations
1204a2dfb722SXin LI# https://dsd-guide.com/sites/default/files/white-papers/DSDIFF_1.5_Spec.pdf
1205a2dfb722SXin LI# From: Toni Ruottu <toni.ruottu@iki.fi>
1206a2dfb722SXin LI0		string		FRM8
1207a2dfb722SXin LI12		string		DSD\x20		DSDIFF audio bitstream data
1208a2dfb722SXin LI!:mime		audio/x-dff
1209a2dfb722SXin LI!:ext		dff
1210a2dfb722SXin LI
1211a2dfb722SXin LI# format version chunk
1212a2dfb722SXin LI>&0		string		FVER
1213a2dfb722SXin LI# version 1
1214a2dfb722SXin LI>>&8		byte		1
1215a2dfb722SXin LI
1216a2dfb722SXin LI# v1 / sampling resolution ( 1 bit PDM only )
1217a2dfb722SXin LI>>>&0		string		x		\b, 1 bit
1218a2dfb722SXin LI
1219a2dfb722SXin LI# v1 / sound property chunk
1220a2dfb722SXin LI>>>&0		search/0xff	PROP
1221a2dfb722SXin LI>>>>&8		string		SND
1222a2dfb722SXin LI
1223a2dfb722SXin LI# v1 / sound property chunk / channel configuration chunk
1224a2dfb722SXin LI>>>>>&0		search/0xff	CHNL
1225a2dfb722SXin LI>>>>>>&8	ubeshort	1							\b, mono
1226a2dfb722SXin LI>>>>>>&8	ubeshort	2
1227a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGT						\b, stereo
1228a2dfb722SXin LI>>>>>>>&0	default		x							\b, 2 channels
1229a2dfb722SXin LI>>>>>>&8	ubeshort	3
1230a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGTLFE\x20						\b, 2.1 stereo
1231a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGTC\x20\x20\x20					\b, 3.0 stereo
1232a2dfb722SXin LI>>>>>>>&0	default		x							\b, 3 channels
1233a2dfb722SXin LI>>>>>>&8	ubeshort	4
1234a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTLS\x20\x20RS\x20\x20				\b, 4.0 surround
1235a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGTC\x20\x20\x20LFE\x20				\b, 3.1 stereo
1236a2dfb722SXin LI>>>>>>>&0	default		x							\b, 4 channels
1237a2dfb722SXin LI>>>>>>&8	ubeshort	5
1238a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTC\x20\x20\x20LS\x20\x20RS\x20\x20		\b, 5.0 surround
1239a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTLFE\x20LS\x20\x20RS\x20\x20			\b, 4.1 surround
1240a2dfb722SXin LI>>>>>>>&0	default		x							\b, 5 channels
1241a2dfb722SXin LI>>>>>>&8	ubeshort	6
1242a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTC\x20\x20\x20LFE\x20LS\x20\x20RS\x20\x20	\b, 5.1 surround
1243a2dfb722SXin LI>>>>>>>&0	default		x							\b, 6 channels
1244a2dfb722SXin LI>>>>>>&8	ubeshort	>6							\b, %u channels
1245a2dfb722SXin LI
1246a2dfb722SXin LI# v1 / sound property chunk / sample rate chunk
1247a2dfb722SXin LI>>>>>&0		search/0xff	FS\x20\x20
1248a2dfb722SXin LI>>>>>>&0	string		x		\b,
1249a2dfb722SXin LI>>>>>>&8	ubelong%44100	0
1250a2dfb722SXin LI>>>>>>>&-4	ubelong/44100	x		"DSD %u"
1251a2dfb722SXin LI>>>>>>>&-4	ubelong		x		%u Hz
1252a2dfb722SXin LI
1253a2dfb722SXin LI# v1 / sound property chunk / compression type chunk
1254a2dfb722SXin LI>>>>>&0		search/0xff	CMPR
1255a2dfb722SXin LI>>>>>>&8	string		DSD\x20		\b, no compression
1256a2dfb722SXin LI>>>>>>&8	string		DST\x20		\b, DST compression
1257a2dfb722SXin LI>>>>>>&8	default		x		\b, unknown compression
1258a2dfb722SXin LI
1259a2dfb722SXin LI# v1 / quest for metadata
1260a2dfb722SXin LI>>>&0		string		x
1261a2dfb722SXin LI
1262a2dfb722SXin LI# v1 / quest for metadata / edited master information chunk
1263a2dfb722SXin LI>>>>&0		search		DIIN
1264a2dfb722SXin LI>>>>>&0		ubequad		>0		\b, "edited master" metadata
1265a2dfb722SXin LI
1266a2dfb722SXin LI# v1 / quest for metadata / ID3 chunk ( defacto standard )
1267a2dfb722SXin LI>>>>&0		search		ID3\x20
1268a2dfb722SXin LI>>>>>&8		string		ID3		\b, ID3 version 2
1269a2dfb722SXin LI>>>>>&0		byte		x		\b.%u
1270a2dfb722SXin LI>>>>>&1		byte		x		\b.%u
1271a2dfb722SXin LI
1272a2dfb722SXin LI# v1 / quest for metadata / failure ( possibly due to -P bytes=... being too low )
1273a2dfb722SXin LI>>>>&0		default		x		\b, ID3 missing (or unreachable)
1274a2dfb722SXin LI
1275a2dfb722SXin LI# version > 1 or 0
1276a2dfb722SXin LI>>&0		default		x		\b, unknown version
1277a2dfb722SXin LI
1278a2dfb722SXin LI# Sony DSF audio format (Direct Stream Digital Stream File)
1279a2dfb722SXin LI# Used for lossless digital storage of songs produced as DSD audio
1280a2dfb722SXin LI# Portable analog of a track stored on a Super Audio CD (SACD)
1281a2dfb722SXin LI# https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf
1282a2dfb722SXin LI# From: Toni Ruottu <toni.ruottu@iki.fi>
1283a2dfb722SXin LI0		string		DSD\x20		DSF audio bitstream data
1284a2dfb722SXin LI!:mime		audio/x-dsf
1285a2dfb722SXin LI!:ext		dsf
1286a2dfb722SXin LI
1287a2dfb722SXin LI# format chunk
1288a2dfb722SXin LI>28		string		fmt\x20
1289a2dfb722SXin LI# version 1
1290a2dfb722SXin LI>>&8		ulelong		1
1291a2dfb722SXin LI
1292a2dfb722SXin LI# v1 / sampling resolution ( 1 bit PDM only )
1293a2dfb722SXin LI# NOTE: the spec incorrectly uses "bits per sample" instead of "bits per byte"
1294a2dfb722SXin LI>>>&0		string		x		\b, 1 bit
1295a2dfb722SXin LI
1296a2dfb722SXin LI# v1 / channel configuration
1297a2dfb722SXin LI>>>>&4		ulelong		1		\b, mono
1298a2dfb722SXin LI>>>>&4		ulelong		2		\b, stereo
1299a2dfb722SXin LI>>>>&4		ulelong		3		\b, 3.0 stereo
1300a2dfb722SXin LI>>>>&4		ulelong		4		\b, 4.0 surround
1301a2dfb722SXin LI>>>>&4		ulelong		5		\b, 3.1 stereo
1302a2dfb722SXin LI>>>>&4		ulelong		6		\b, 5.0 surround
1303a2dfb722SXin LI>>>>&4		ulelong		7		\b, 5.1 surround
1304a2dfb722SXin LI>>>>&0		default		x
1305a2dfb722SXin LI>>>>>&4		ulelong		x		\b, %u channels
1306a2dfb722SXin LI
1307a2dfb722SXin LI# v1 / sample rate chunk
1308a2dfb722SXin LI>>>>&0		string		x		\b,
1309a2dfb722SXin LI>>>>&12		ulelong%44100	0
1310a2dfb722SXin LI>>>>>&-4	ulelong/44100	x		"DSD %u"
1311a2dfb722SXin LI>>>>&12		ulelong		x		%u Hz
1312a2dfb722SXin LI
1313a2dfb722SXin LI# v1 / compression
1314a2dfb722SXin LI>>>>&0		string		x
1315a2dfb722SXin LI>>>>>&0		ulelong		0		\b, no compression
1316a2dfb722SXin LI>>>>>&0		default		x		\b, unknown compression
1317a2dfb722SXin LI
1318a2dfb722SXin LI# v1 / embedded ID3v2 metadata
1319a2dfb722SXin LI>>>0		string		x 		\b, ID3
1320a2dfb722SXin LI>>>>20		ulequad		!0
1321a2dfb722SXin LI>>>>>(20.q)	string		ID3		version 2
1322a2dfb722SXin LI>>>>>>&0	byte		x		\b.%u
1323a2dfb722SXin LI>>>>>>&1	byte		x		\b.%u
1324a2dfb722SXin LI# unable to verify ID3 ( possibly due to -P bytes=... being too low )
1325a2dfb722SXin LI>>>>>&0		default		x		unreachable
1326a2dfb722SXin LI>>>>&0		default		x		missing
1327a2dfb722SXin LI
1328a2dfb722SXin LI# version > 1 or 0
1329a2dfb722SXin LI>>&0		default		x		\b, unknown version
1330*ae316d1dSXin LI
1331*ae316d1dSXin LI# https://moddingwiki.shikadi.net/wiki/ROL_Format
1332*ae316d1dSXin LI4	string	\\roll\\default	AdLib Visual Composer ROL file
1333*ae316d1dSXin LI>0	leshort	x		\b, version %d.
1334*ae316d1dSXin LI>2	leshort	x		\b%d
1335*ae316d1dSXin LI>44	leshort	x		\b, tickBeat %d
1336*ae316d1dSXin LI>46	leshort	x		\b, beatMeasure %d
1337*ae316d1dSXin LI>48	leshort	x		\b, scaleY %d
1338*ae316d1dSXin LI>50	leshort	x		\b, scaleX %d
1339*ae316d1dSXin LI>52	byte	0		\b, percussive
1340*ae316d1dSXin LI>52	byte	1		\b, melodic
1341