xref: /freebsd/contrib/file/magic/Magdir/audio (revision 898496ee09ed2b7d25f6807edc4515628196ec0a)
1b6cee71dSXin LI
2b6cee71dSXin LI#------------------------------------------------------------------------------
3*898496eeSXin LI# $File: audio,v 1.127 2023/03/05 20:15:49 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"
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
186*898496eeSXin LI
187*898496eeSXin LI1080	string	\!PM!		4-channel Protracker module sound data
188*898496eeSXin LI!:mime	audio/x-mod
189*898496eeSXin LI#audio/x-protracker-module
190*898496eeSXin LI>0	string	>\0		Title: "%s"
191*898496eeSXin 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"
196*898496eeSXin 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"
201*898496eeSXin 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"
206*898496eeSXin 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"
211*898496eeSXin 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"
216*898496eeSXin 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"
221*898496eeSXin 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"
226*898496eeSXin 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"
231*898496eeSXin 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"
236*898496eeSXin 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		0x64a30200		IRCAM file (Sun big-endian)
280b6cee71dSXin LI0	belong		0x0002a364		IRCAM file (Sun little-endian)
281b6cee71dSXin LI0	belong		0x64a30300		IRCAM file (MIPS little-endian)
282b6cee71dSXin LI0	belong		0x0003a364		IRCAM file (MIPS big-endian)
283b6cee71dSXin LI0	belong		0x64a30400		IRCAM file (NeXT big-endian)
284b6cee71dSXin LI0	belong		0x64a30400		IRCAM file (NeXT big-endian)
285b6cee71dSXin LI0	belong		0x0004a364		IRCAM file (NeXT little-endian)
286b6cee71dSXin LI
287b6cee71dSXin LI# NIST SPHERE <mpruett@sgi.com>
288b6cee71dSXin LI0	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
289b6cee71dSXin LI
290b6cee71dSXin LI# Sample Vision <mpruett@sgi.com>
291b6cee71dSXin LI0	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
292b6cee71dSXin LI
293b6cee71dSXin LI# Audio Visual Research <tonigonenstein@users.sourceforge.net>
294b6cee71dSXin LI0	string		2BIT			Audio Visual Research file,
295b6cee71dSXin LI>12	beshort		=0			mono,
296b6cee71dSXin LI>12	beshort		=-1			stereo,
297b6cee71dSXin LI>14	beshort		x			%d bits
298b6cee71dSXin LI>16	beshort		=0			unsigned,
299b6cee71dSXin LI>16	beshort		=-1			signed,
300b6cee71dSXin LI>22	belong&0x00ffffff	x		%d Hz,
301b6cee71dSXin LI>18	beshort		=0			no loop,
302b6cee71dSXin LI>18	beshort		=-1			loop,
303b6cee71dSXin LI>21	ubyte		<128			note %d,
304b6cee71dSXin LI>22	byte		=0			replay 5.485 KHz
305b6cee71dSXin LI>22	byte		=1			replay 8.084 KHz
306b6cee71dSXin LI>22	byte		=2			replay 10.971 KHz
307b6cee71dSXin LI>22	byte		=3			replay 16.168 KHz
308b6cee71dSXin LI>22	byte		=4			replay 21.942 KHz
309b6cee71dSXin LI>22	byte		=5			replay 32.336 KHz
310b6cee71dSXin LI>22	byte		=6			replay 43.885 KHz
311b6cee71dSXin LI>22	byte		=7			replay 47.261 KHz
312b6cee71dSXin LI
313b6cee71dSXin LI# SGI SoundTrack <mpruett@sgi.com>
314b6cee71dSXin LI0	string		_SGI_SoundTrack		SGI SoundTrack project file
315b6cee71dSXin LI# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
316b6cee71dSXin LI0	string		ID3	Audio file with ID3 version 2
317b6cee71dSXin LI>3	byte		x	\b.%d
318b6cee71dSXin LI>4	byte		x	\b.%d
319b6cee71dSXin LI>>5	byte		&0x80	\b, unsynchronized frames
320b6cee71dSXin LI>>5	byte		&0x40	\b, extended header
321b6cee71dSXin LI>>5	byte		&0x20	\b, experimental
322b6cee71dSXin LI>>5	byte		&0x10	\b, footer present
3235f0216bdSXin LI>(6.I+10)	indirect	x	\b, contains:
324b6cee71dSXin LI
325b6cee71dSXin LI# NSF (NES sound file) magic
326b6cee71dSXin LI0	string		NESM\x1a	NES Sound File
327b6cee71dSXin LI>14	string		>\0		("%s" by
328b6cee71dSXin LI>46	string		>\0		%s, copyright
329b6cee71dSXin LI>78	string		>\0		%s),
330b6cee71dSXin LI>5	byte		x		version %d,
331b6cee71dSXin LI>6	byte		x		%d tracks,
332b6cee71dSXin LI>122	byte&0x2	=1		dual PAL/NTSC
333b6cee71dSXin LI>122	byte&0x1	=1		PAL
334b6cee71dSXin LI>122	byte&0x1	=0		NTSC
335b6cee71dSXin LI
3365f0216bdSXin LI# NSFE (Extended NES sound file) magic
3375f0216bdSXin LI# http://slickproductions.org/docs/NSF/nsfespec.txt
3385f0216bdSXin LI# From: David Pflug <david@pflug.email>
3395f0216bdSXin LI0	string		NSFE		Extended NES Sound File
3405f0216bdSXin LI>48	search/0x1000	auth
3415f0216bdSXin LI>>&0	string		>\0		("%s"
3425f0216bdSXin LI>>>&1	string		>\0		by %s
3435f0216bdSXin LI>>>>&1	string		>\0		\b, copyright %s
3445f0216bdSXin LI>>>>>&1	string		>\0		\b, ripped by %s
3455f0216bdSXin LI>20	byte		x		\b), %d tracks,
3465f0216bdSXin LI>18	byte&0x2	=1		dual PAL/NTSC
3475f0216bdSXin LI>18     byte&0x2	=0
3485f0216bdSXin LI>>18	byte&0x1	=1		PAL
3495f0216bdSXin LI>>18	byte&0x1	=0		NTSC
3505f0216bdSXin LI
351b6cee71dSXin LI# Type: SNES SPC700 sound files
352b6cee71dSXin LI# From: Josh Triplett <josh@freedesktop.org>
353b6cee71dSXin LI0	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
354b6cee71dSXin LI>&0	string	0.30					\b, version %s
355b6cee71dSXin LI>>0x23	byte	0x1B					\b, without ID666 tag
356b6cee71dSXin LI>>0x23	byte	0x1A					\b, with ID666 tag
357b6cee71dSXin LI>>>0x2E	string	>\0					\b, song "%.32s"
358b6cee71dSXin LI>>>0x4E	string	>\0					\b, game "%.32s"
359b6cee71dSXin LI
360b6cee71dSXin LI# Impulse tracker module (audio/x-it)
361b6cee71dSXin LI0	string		IMPM		Impulse Tracker module sound data -
362b6cee71dSXin LI!:mime	audio/x-mod
363b6cee71dSXin LI>4	string		>\0		"%s"
364b6cee71dSXin LI>40	leshort		!0		compatible w/ITv%x
365b6cee71dSXin LI>42	leshort		!0		created w/ITv%x
366b6cee71dSXin LI
367b6cee71dSXin LI# Imago Orpheus module (audio/x-imf)
368b6cee71dSXin LI60	string		IM10		Imago Orpheus module sound data -
369b6cee71dSXin LI>0	string		>\0		"%s"
370b6cee71dSXin LI
371b6cee71dSXin LI# From <collver1@attbi.com>
372b6cee71dSXin LI# These are the /etc/magic entries to decode modules, instruments, and
373b6cee71dSXin LI# samples in Impulse Tracker's native format.
374b6cee71dSXin LI
375b6cee71dSXin LI0	string		IMPS		Impulse Tracker Sample
376b6cee71dSXin LI>18	byte		&2		16 bit
377b6cee71dSXin LI>18	byte		^2		8 bit
378b6cee71dSXin LI>18	byte		&4		stereo
379b6cee71dSXin LI>18	byte		^4		mono
380b6cee71dSXin LI0	string		IMPI		Impulse Tracker Instrument
381b6cee71dSXin LI>28	leshort		!0		ITv%x
382b6cee71dSXin LI>30	byte		!0		%d samples
383b6cee71dSXin LI
384b6cee71dSXin LI# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
385b6cee71dSXin LI# From <collver1@attbi.com>
386b6cee71dSXin LI0	string		LM8953		Yamaha TX Wave
387b6cee71dSXin LI>22	byte		0x49		looped
388b6cee71dSXin LI>22	byte		0xC9		non-looped
389b6cee71dSXin LI>23	byte		1		33kHz
390b6cee71dSXin LI>23	byte		2		50kHz
391b6cee71dSXin LI>23	byte		3		16kHz
392b6cee71dSXin LI
393b6cee71dSXin LI# scream tracker:  file(1) magic for Scream Tracker sample files
394b6cee71dSXin LI#
395b6cee71dSXin LI# From <collver1@attbi.com>
396b6cee71dSXin LI76	string		SCRS		Scream Tracker Sample
397b6cee71dSXin LI>0	byte		1		sample
398b6cee71dSXin LI>0	byte		2		adlib melody
399b6cee71dSXin LI>0	byte		>2		adlib drum
400b6cee71dSXin LI>31	byte		&2		stereo
401b6cee71dSXin LI>31	byte		^2		mono
402b6cee71dSXin LI>31	byte		&4		16bit little endian
403b6cee71dSXin LI>31	byte		^4		8bit
404b6cee71dSXin LI>30	byte		0		unpacked
405b6cee71dSXin LI>30	byte		1		packed
406b6cee71dSXin LI
407b6cee71dSXin LI# audio
408b6cee71dSXin LI# From: Cory Dikkers <cdikkers@swbell.net>
409b6cee71dSXin LI0	string		MMD0		MED music file, version 0
410b6cee71dSXin LI0	string		MMD1		OctaMED Pro music file, version 1
411b6cee71dSXin LI0	string		MMD3		OctaMED Soundstudio music file, version 3
412b6cee71dSXin LI0	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
413b6cee71dSXin LI0	string		MED		MED_Song
414b6cee71dSXin LI0	string		SymM		Symphonie SymMOD music file
415b6cee71dSXin LI#
41648c779cdSXin LI# Track Length (TRL), Tracks (TRK), Samples (SMP), Subsongs (SS)
41748c779cdSXin LI# http://lclevy.free.fr/exotica/ahx/ahxformat.txt
418b6cee71dSXin LI0	string		THX		AHX version
419b6cee71dSXin LI>3	byte		=0		1 module data
420b6cee71dSXin LI>3	byte		=1		2 module data
421a2dfb722SXin LI>11	ubyte		x		TRK: %u
422a2dfb722SXin LI>10	ubyte		x		TRL: %u
423a2dfb722SXin LI>12	ubyte		x		SMP: %u
424a2dfb722SXin LI>13	ubyte		x		SS: %u
425a2dfb722SXin LI>(4.H)		string		x		Title: "%.128s"
426a2dfb722SXin LI
427a2dfb722SXin LI# header is mostly AHX format
428a2dfb722SXin LI0		string		HVL
429a2dfb722SXin LI>3		byte		<2	Hively Tracker Song
430a2dfb722SXin LI>3		byte		=0		v1 module data
431a2dfb722SXin LI>3		byte		=1		v2 module data
432a2dfb722SXin LI>11		ubyte		x		TRK: %u
433a2dfb722SXin LI>10		ubyte		x		TRL: %u
434a2dfb722SXin LI>12		ubyte		x		SMP: %u
435a2dfb722SXin LI>13		ubyte		x		SS: %u
436a2dfb722SXin LI>8		ubyte/4		=0		CHN: 4
437a2dfb722SXin LI>8		ubyte/4		>0		CHN: 4+%u
438a2dfb722SXin LI#>-0		offset		<0xffff
439a2dfb722SXin LI>(4.H)		string		x		Title: "%.128s"
440a2dfb722SXin LI
441b6cee71dSXin LI#
442b6cee71dSXin LI0	string		OKTASONG	Oktalyzer module data
443b6cee71dSXin LI#
444b6cee71dSXin LI0	string		DIGI\ Booster\ module\0	%s
445b6cee71dSXin LI>20	byte		>0		%c
446b6cee71dSXin LI>>21	byte		>0		\b%c
447b6cee71dSXin LI>>>22	byte		>0		\b%c
448b6cee71dSXin LI>>>>23	byte		>0		\b%c
449b6cee71dSXin LI>610	string		>\0		\b, "%s"
450b6cee71dSXin LI#
451b6cee71dSXin LI0	string		DBM0	   	DIGI Booster Pro Module
452b6cee71dSXin LI>4	byte		>0		V%X.
453b6cee71dSXin LI>>5	byte		x		\b%02X
454b6cee71dSXin LI>16	string		>\0		\b, "%s"
455b6cee71dSXin LI#
456b6cee71dSXin LI0	string		FTMN		FaceTheMusic module
457b6cee71dSXin LI>16	string		>\0d		\b, "%s"
458b6cee71dSXin LI
459b6cee71dSXin LI# From: <doj@cubic.org> 2003-06-24
460b6cee71dSXin LI0	string		AMShdr\32	Velvet Studio AMS Module v2.2
461b6cee71dSXin LI0	string		Extreme		Extreme Tracker AMS Module v1.3
462b6cee71dSXin LI0	string		DDMF		Xtracker DMF Module
463b6cee71dSXin LI>4	byte		x		v%i
464b6cee71dSXin LI>0xD	string		>\0		Title: "%s"
465b6cee71dSXin LI>0x2B	string		>\0		Composer: "%s"
466b6cee71dSXin LI0	string		DSM\32		Dynamic Studio Module DSM
467b6cee71dSXin LI0	string		SONG		DigiTrekker DTM Module
468b6cee71dSXin LI0	string		DMDL		DigiTrakker MDL Module
469b6cee71dSXin LI0	string		PSM\32		Protracker Studio PSM Module
470b6cee71dSXin LI44	string		PTMF		Poly Tracker PTM Module
471b6cee71dSXin LI>0	string		>\32		Title: "%s"
472b6cee71dSXin LI0	string		MT20		MadTracker 2.0 Module MT2
473b6cee71dSXin LI0	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
474b6cee71dSXin LI0	string		RTMM		RTM Module
475b6cee71dSXin LI0x426	string		MaDoKaN96	XMS Adlib Module
476b6cee71dSXin LI>0	string		>\0		Composer: "%s"
477b6cee71dSXin LI0	string		AMF		AMF Module
478b6cee71dSXin LI>4	string		>\0		Title: "%s"
47943a5ec4eSXin LI0	string		MODINFO1	Open Cubic Player Module Information MDZ
480b6cee71dSXin LI0	string		Extended\40Instrument: Fast Tracker II Instrument
481b6cee71dSXin LI
482b6cee71dSXin LI# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
483b6cee71dSXin LI# NOA Nancy Codec file
484b6cee71dSXin LI0	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
485b6cee71dSXin LI# Yamaha SMAF format
486b6cee71dSXin LI0	string		MMMD		Yamaha SMAF file
487b6cee71dSXin LI# Sharp Jisaku Melody format for PDC
488b6cee71dSXin LI0	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
489b6cee71dSXin LI>20	string		Ver01.00	Ver. 1.00
490b6cee71dSXin LI>>32	byte		x		, %d tracks
491b6cee71dSXin LI
492b6cee71dSXin LI# Free lossless audio codec <http://flac.sourceforge.net>
493b6cee71dSXin LI# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
494b6cee71dSXin LI0	string			fLaC		FLAC audio bitstream data
49558a0f0d0SEitan Adler!:mime	audio/flac
496b6cee71dSXin LI>4	byte&0x7f		>0		\b, unknown version
497b6cee71dSXin LI>4	byte&0x7f		0		\b
498b6cee71dSXin LI# some common bits/sample values
499b6cee71dSXin LI>>20	beshort&0x1f0		0x030		\b, 4 bit
500b6cee71dSXin LI>>20	beshort&0x1f0		0x050		\b, 6 bit
501b6cee71dSXin LI>>20	beshort&0x1f0		0x070		\b, 8 bit
502b6cee71dSXin LI>>20	beshort&0x1f0		0x0b0		\b, 12 bit
503b6cee71dSXin LI>>20	beshort&0x1f0		0x0f0		\b, 16 bit
504b6cee71dSXin LI>>20	beshort&0x1f0		0x170		\b, 24 bit
505b6cee71dSXin LI>>20	byte&0xe		0x0		\b, mono
506b6cee71dSXin LI>>20	byte&0xe		0x2		\b, stereo
507b6cee71dSXin LI>>20	byte&0xe		0x4		\b, 3 channels
508b6cee71dSXin LI>>20	byte&0xe		0x6		\b, 4 channels
509b6cee71dSXin LI>>20	byte&0xe		0x8		\b, 5 channels
510b6cee71dSXin LI>>20	byte&0xe		0xa		\b, 6 channels
511b6cee71dSXin LI>>20	byte&0xe		0xc		\b, 7 channels
512b6cee71dSXin LI>>20	byte&0xe		0xe		\b, 8 channels
51358a0f0d0SEitan Adler# sample rates derived from known oscillator frequencies;
51458a0f0d0SEitan Adler# 24.576 MHz (video/fs=48kHz), 22.5792 (audio/fs=44.1kHz) and
51558a0f0d0SEitan Adler# 16.384 (other/fs=32kHz).
51658a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x02b110	\b, 11.025 kHz
51758a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x03e800	\b, 16 kHz
518b6cee71dSXin LI>>17	belong&0xfffff0       	0x056220	\b, 22.05 kHz
519b6cee71dSXin LI>>17	belong&0xfffff0       	0x05dc00	\b, 24 kHz
52058a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x07d000	\b, 32 kHz
52158a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x0ac440	\b, 44.1 kHz
52258a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x0bb800	\b, 48 kHz
523b6cee71dSXin LI>>17	belong&0xfffff0       	0x0fa000	\b, 64 kHz
52458a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x158880	\b, 88.2 kHz
52558a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x177000	\b, 96 kHz
52658a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x1f4000	\b, 128 kHz
52758a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x2b1100	\b, 176.4 kHz
52858a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x2ee000	\b, 192 kHz
52958a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x3e8000	\b, 256 kHz
53058a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x562200	\b, 352.8 kHz
53158a0f0d0SEitan Adler>>17	belong&0xfffff0       	0x5dc000	\b, 384 kHz
532b6cee71dSXin LI>>21	byte&0xf		>0		\b, >4G samples
533b6cee71dSXin LI>>21	byte&0xf		0		\b
534b6cee71dSXin LI>>>22	belong			>0		\b, %u samples
535b6cee71dSXin LI>>>22	belong			0		\b, length unknown
536b6cee71dSXin LI
537b6cee71dSXin LI# (ISDN) VBOX voice message file (Wolfram Kleff)
538b6cee71dSXin LI0       string          VBOX            VBOX voice message data
539b6cee71dSXin LI
540b6cee71dSXin LI# ReBorn Song Files (.rbs)
541b6cee71dSXin LI# David J. Singer <doc@deadvirgins.org.uk>
542b6cee71dSXin LI8       string          RB40             RBS Song file
543b6cee71dSXin LI>29     string          ReBorn           created by ReBorn
544b6cee71dSXin LI>37     string          Propellerhead    created by ReBirth
545b6cee71dSXin LI
546b6cee71dSXin LI# Synthesizer Generator and Kimwitu share their file format
547b6cee71dSXin LI0	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
548b6cee71dSXin LI# Kimwitu++ uses a slightly different magic
549b6cee71dSXin LI0	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
550b6cee71dSXin LI
551b6cee71dSXin LI# From "Simon Hosie
552b6cee71dSXin LI0       string  TFMX-SONG       TFMX module sound data
553b6cee71dSXin LI
554b6cee71dSXin LI# Monkey's Audio compressed audio format (.ape)
555b6cee71dSXin LI# From danny.milo@gmx.net (Danny Milosavljevic)
556b6cee71dSXin LI# New version from Abel Cheung <abel (@) oaka.org>
557b6cee71dSXin LI0		string		MAC\040		Monkey's Audio compressed format
558b6cee71dSXin LI!:mime audio/x-ape
559b6cee71dSXin LI>4		uleshort	>0x0F8B		version %d
560b6cee71dSXin LI>>(0x08.l)	uleshort	=1000		with fast compression
561b6cee71dSXin LI>>(0x08.l)	uleshort	=2000		with normal compression
562b6cee71dSXin LI>>(0x08.l)	uleshort	=3000		with high compression
563b6cee71dSXin LI>>(0x08.l)	uleshort	=4000		with extra high compression
564b6cee71dSXin LI>>(0x08.l)	uleshort	=5000		with insane compression
565b6cee71dSXin LI>>(0x08.l+18)	uleshort	=1		\b, mono
566b6cee71dSXin LI>>(0x08.l+18)	uleshort	=2		\b, stereo
567b6cee71dSXin LI>>(0x08.l+20)	ulelong		x		\b, sample rate %d
568b6cee71dSXin LI>4		uleshort	<0x0F8C		version %d
569b6cee71dSXin LI>>6		uleshort	=1000		with fast compression
570b6cee71dSXin LI>>6		uleshort	=2000		with normal compression
571b6cee71dSXin LI>>6		uleshort	=3000		with high compression
572b6cee71dSXin LI>>6		uleshort	=4000		with extra high compression
573b6cee71dSXin LI>>6		uleshort	=5000		with insane compression
574b6cee71dSXin LI>>10		uleshort	=1		\b, mono
575b6cee71dSXin LI>>10		uleshort	=2		\b, stereo
576b6cee71dSXin LI>>12		ulelong		x		\b, sample rate %d
577b6cee71dSXin LI
578b6cee71dSXin LI# adlib sound files
57958a0f0d0SEitan Adler# From: Alex Myczko <alex@aiei.ch>
58048c779cdSXin LI
58148c779cdSXin LI# https://github.com/rerrahkr/BambooTracker
582a2dfb722SXin LI0	string	BambooTracker	BambooTracker
583a2dfb722SXin LI>13	string	Mod		Module
584a2dfb722SXin LI>13	string	Ist		Instrument
585a2dfb722SXin LI>13	string	Bnk		Bank
58648c779cdSXin LI>22	byte	x		\b, version %u
58748c779cdSXin LI>21	byte	x		\b.%u
58848c779cdSXin LI>20	byte	x		\b.%u
58948c779cdSXin LI
590d38c30c0SXin LI0	string		CC2x		CheeseCutter 2 song
591d38c30c0SXin LI
592b6cee71dSXin LI0    	string		RAWADATA	RdosPlay RAW
593b6cee71dSXin LI
594b6cee71dSXin LI1068	string		RoR		AMUSIC Adlib Tracker
595b6cee71dSXin LI
596b6cee71dSXin LI0	string		JCH		EdLib
597b6cee71dSXin LI
598b6cee71dSXin LI0	string		mpu401tr	MPU-401 Trakker
599b6cee71dSXin LI
600b6cee71dSXin LI0	string		SAdT		Surprise! Adlib Tracker
601b6cee71dSXin LI>4	byte		x		Version %d
602b6cee71dSXin LI
603b6cee71dSXin LI0	string		XAD!		eXotic ADlib
604b6cee71dSXin LI
605b6cee71dSXin LI0	string		ofTAZ!		eXtra Simple Music
606b6cee71dSXin LI
60748c779cdSXin LI0	string		FMK!		FM Kingtracker Song
60848c779cdSXin LI
60948c779cdSXin LI0	string		DFM		DFM Song
61048c779cdSXin LI
61148c779cdSXin LI0	string		\<CUD-FM-File\>	CFF Song
61248c779cdSXin LI
61348c779cdSXin LI0	string		_A2module	A2M Song
61448c779cdSXin LI
615b6cee71dSXin LI# Spectrum 128 tunes (.ay files).
616b6cee71dSXin LI# From: Emanuel Haupt <ehaupt@critical.ch>
617b6cee71dSXin LI0	string		ZXAYEMUL	Spectrum 128 tune
618b6cee71dSXin LI
619b6cee71dSXin LI0	string		\0BONK		BONK,
620b6cee71dSXin LI#>5	byte		x		version %d
621b6cee71dSXin LI>14	byte		x		%d channel(s),
622b6cee71dSXin LI>15	byte		=1		lossless,
623b6cee71dSXin LI>15	byte		=0		lossy,
624b6cee71dSXin LI>16	byte		x		mid-side
625b6cee71dSXin LI
626b6cee71dSXin LI384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
627b6cee71dSXin LI
628b6cee71dSXin LI# format VQF (proprietary codec for sound)
629b6cee71dSXin LI# some infos on the header file available at :
630b6cee71dSXin LI# http://www.twinvq.org/english/technology_format.html
631b6cee71dSXin LI0	string		TWIN97012000	VQF data
632b6cee71dSXin LI>27	short		0		\b, Mono
633b6cee71dSXin LI>27	short		1		\b, Stereo
634b6cee71dSXin LI>31	short 		>0		\b, %d kbit/s
635b6cee71dSXin LI>35	short 		>0		\b, %d kHz
636b6cee71dSXin LI
637b6cee71dSXin LI# Nelson A. de Oliveira (naoliv@gmail.com)
638b6cee71dSXin LI# .eqf
639b6cee71dSXin LI0	string	Winamp\ EQ\ library\ file	%s
640b6cee71dSXin LI# it will match only versions like v<digit>.<digit>
641b6cee71dSXin LI# Since I saw only eqf files with version v1.1 I think that it's OK
642b6cee71dSXin LI>23	string	x	\b%.4s
643b6cee71dSXin LI# .preset
644b6cee71dSXin LI0	string	[Equalizer\ preset]	XMMS equalizer preset
645b6cee71dSXin LI# .m3u
646b6cee71dSXin LI0	search/1	#EXTM3U 	M3U playlist text
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
716b6cee71dSXin LI# From: Russell Coker <russell@coker.com.au>
717b6cee71dSXin LI0	string	#!AMR		Adaptive Multi-Rate Codec (GSM telephony)
71848c779cdSXin LI!:mime	audio/amr
71948c779cdSXin LI!:ext  amr
720b6cee71dSXin LI
721b6cee71dSXin LI# Type: SuperCollider 3 Synth Definition File Format
722b6cee71dSXin LI# From: Mario Lang <mlang@debian.org>
723b6cee71dSXin LI0	string	SCgf	SuperCollider3 Synth Definition file,
724b6cee71dSXin LI>4	belong	x	version %d
725b6cee71dSXin LI
726b6cee71dSXin LI# Type: True Audio Lossless Audio
72748c779cdSXin LI# URL:  https://wiki.multimedia.cx/index.php?title=True_Audio
728b6cee71dSXin LI# From: Mike Melanson <mike@multimedia.cx>
729b6cee71dSXin LI0	string	TTA1	True Audio Lossless Audio
730b6cee71dSXin LI
731b6cee71dSXin LI# Type: WavPack Lossless Audio
73248c779cdSXin LI# URL:  https://wiki.multimedia.cx/index.php?title=WavPack
733b6cee71dSXin LI# From: Mike Melanson <mike@multimedia.cx>
734b6cee71dSXin LI0	string	wvpk	WavPack Lossless Audio
735b6cee71dSXin LI
736b6cee71dSXin LI# From Fabio R. Schmidlin <frs@pop.com.br>
737b6cee71dSXin LI# VGM music file
73840427ccaSGordon Tetlow0	string		Vgm\040
739b6cee71dSXin LI>9	ubyte		>0	VGM Video Game Music dump v
74048c779cdSXin LI!:mime	audio/x-vgm
74148c779cdSXin LI!:ext	vgm
742b6cee71dSXin LI>>9	ubyte/16	>0	\b%d
743b6cee71dSXin LI>>9	ubyte&0x0F	x	\b%d
744b6cee71dSXin LI>>8	ubyte/16	x	\b.%d
745b6cee71dSXin LI>>8	ubyte&0x0F	>0	\b%d
746b6cee71dSXin LI#Get soundchips
747b6cee71dSXin LI>>8	ubyte		x	\b, soundchip(s)=
74843a5ec4eSXin LI>>0x0C	ulelong		>0	SN76489 (PSG),
74943a5ec4eSXin LI>>0x10	ulelong		>0	YM2413 (OPLL),
75043a5ec4eSXin LI>>0x2C	ulelong		>0	YM2612 (OPN2),
75143a5ec4eSXin LI>>0x30	ulelong		>0	YM2151 (OPM),
752b6cee71dSXin LI>>0x38	ulelong		>0	Sega PCM,
753b6cee71dSXin LI>>0x34	ulelong		>0xC
75443a5ec4eSXin LI>>>0x40	ulelong		>0	RF5C68 (PCM),
755b6cee71dSXin LI>>0x34	ulelong		>0x10
75643a5ec4eSXin LI>>>0x44	ulelong		>0	YM2203 (OPN),
757b6cee71dSXin LI>>0x34	ulelong		>0x14
75843a5ec4eSXin LI>>>0x48	ulelong		>0	YM2608 (OPNA),
759b6cee71dSXin LI>>0x34	ulelong		>0x18
76043a5ec4eSXin LI>>>0x4C	lelong		>0	YM2610 (OPNB),
76143a5ec4eSXin LI>>>0x4C	lelong		<0	YM2610B (OPNB+2FM),
762b6cee71dSXin LI>>0x34	ulelong		>0x1C
76343a5ec4eSXin LI>>>0x50	ulelong		>0	YM3812 (OPL2),
764b6cee71dSXin LI>>0x34	ulelong		>0x20
76543a5ec4eSXin LI>>>0x54	ulelong		>0	YM3526 (OPL),
766b6cee71dSXin LI>>0x34	ulelong		>0x24
76743a5ec4eSXin LI>>>0x58	ulelong		>0	Y8950 (MSX-Audio),
768b6cee71dSXin LI>>0x34	ulelong		>0x28
76943a5ec4eSXin LI>>>0x5C	ulelong		>0	YMF262 (OPL3),
770b6cee71dSXin LI>>0x34	ulelong		>0x2C
77143a5ec4eSXin LI>>>0x60	ulelong		>0	YMF278B (OPL4),
772b6cee71dSXin LI>>0x34	ulelong		>0x30
77343a5ec4eSXin LI>>>0x64	ulelong		>0	YMF271 (OPX),
774b6cee71dSXin LI>>0x34	ulelong		>0x34
77543a5ec4eSXin LI>>>0x68	ulelong		>0	YMZ280B (PCMD8),
776b6cee71dSXin LI>>0x34	ulelong		>0x38
77743a5ec4eSXin LI>>>0x6C	ulelong		>0	RF5C164 (PCM),
778b6cee71dSXin LI>>0x34	ulelong		>0x3C
779b6cee71dSXin LI>>>0x70	ulelong		>0	PWM,
780b6cee71dSXin LI>>0x34	ulelong		>0x40
781b6cee71dSXin LI>>>0x74	ulelong		>0
782b6cee71dSXin LI>>>>0x78 ubyte		0x00	AY-3-8910,
783b6cee71dSXin LI>>>>0x78 ubyte		0x01	AY-3-8912,
784b6cee71dSXin LI>>>>0x78 ubyte		0x02	AY-3-8913,
785b6cee71dSXin LI>>>>0x78 ubyte		0x03	AY-3-8930,
786b6cee71dSXin LI>>>>0x78 ubyte		0x10	YM2149,
787b6cee71dSXin LI>>>>0x78 ubyte		0x11	YM3439,
788d38c30c0SXin LI>>>>0x78 ubyte		0x12	YMZ284,
789d38c30c0SXin LI>>>>0x78 ubyte		0x13	YMZ294,
79048c779cdSXin LI# VGM 1.61
79148c779cdSXin LI>>0x34	ulelong		>0x4C
79248c779cdSXin LI>>>0x80	ulelong		>0	DMG,
79348c779cdSXin LI>>0x34	ulelong		>0x50
79448c779cdSXin LI>>>0x84	lelong		>0	NES APU,
79548c779cdSXin LI>>>0x84	lelong		<0	NES APU with FDS,
79648c779cdSXin LI>>0x34	ulelong		>0x54
79748c779cdSXin LI>>>0x88	ulelong		>0	MultiPCM,
79848c779cdSXin LI>>0x34	ulelong		>0x58
79943a5ec4eSXin LI>>>0x8C	ulelong		>0	uPD7759 (ADPCM Speech),
80048c779cdSXin LI>>0x34	ulelong		>0x5C
80143a5ec4eSXin LI>>>0x90	ulelong		>0	OKIM6258 (ADPCM Speech),
80248c779cdSXin LI>>0x34	ulelong		>0x64
80343a5ec4eSXin LI>>>0x98	ulelong		>0	OKIM6295 (ADPCM),
80448c779cdSXin LI>>0x34	ulelong		>0x68
80548c779cdSXin LI>>>0x9C	ulelong		>0	K051649,
80648c779cdSXin LI>>0x34	ulelong		>0x6C
80748c779cdSXin LI>>>0xA0	ulelong		>0	K054539,
80848c779cdSXin LI>>0x34	ulelong		>0x70
80948c779cdSXin LI>>>0xA4	ulelong		>0	HuC6280,
81048c779cdSXin LI>>0x34	ulelong		>0x74
81148c779cdSXin LI>>>0xA8	ulelong		>0	C140,
81248c779cdSXin LI>>0x34	ulelong		>0x78
81348c779cdSXin LI>>>0xAC	ulelong		>0	K053260,
81448c779cdSXin LI>>0x34	ulelong		>0x7C
81548c779cdSXin LI>>>0xB0	ulelong		>0	Pokey,
81648c779cdSXin LI>>0x34	ulelong		>0x80
81748c779cdSXin LI>>>0xB4	ulelong		>0	QSound,
81848c779cdSXin LI# VGM 1.71
81948c779cdSXin LI>>0x34	ulelong		>0x84
82048c779cdSXin LI>>>0xB8	ulelong		>0	SCSP,
82148c779cdSXin LI>>0x34	ulelong		>0x8C
82248c779cdSXin LI>>>0xC0	ulelong		>0	WonderSwan,
82348c779cdSXin LI>>0x34	ulelong		>0x90
82448c779cdSXin LI>>>0xC4	ulelong		>0	VSU,
82548c779cdSXin LI>>0x34	ulelong		>0x94
82648c779cdSXin LI>>>0xC8	ulelong		>0	SAA1099,
82748c779cdSXin LI>>0x34	ulelong		>0x98
82843a5ec4eSXin LI>>>0xCC	ulelong		>0	ES5503 (DOC),
82948c779cdSXin LI>>0x34	ulelong		>0x9C
83043a5ec4eSXin LI>>>0xD0	lelong		>0	ES5505 (OTIS),
83143a5ec4eSXin LI>>>0xD0	lelong		<0	ES5506 (OTTO),
83248c779cdSXin LI>>0x34	ulelong		>0xA4
83348c779cdSXin LI>>>0xD8	ulelong		>0	X1-010,
83448c779cdSXin LI>>0x34	ulelong		>0xA8
83548c779cdSXin LI>>>0xDC	ulelong		>0	C352,
83648c779cdSXin LI>>0x34	ulelong		>0xAC
83748c779cdSXin LI>>>0xE0	ulelong		>0	GA20,
838b6cee71dSXin LI
839b6cee71dSXin LI# GVOX Encore file format
840b6cee71dSXin LI# Since this is a proprietary file format and there is no publicly available
841b6cee71dSXin LI# format specification, this is just based on induction
842b6cee71dSXin LI#
843b6cee71dSXin LI0	string	SCOW
844b6cee71dSXin LI>4	byte	0xc4	GVOX Encore music, version 5.0 or above
845b6cee71dSXin LI>4	byte	0xc2	GVOX Encore music, version < 5.0
846b6cee71dSXin LI
847b6cee71dSXin LI0	string	ZBOT
848b6cee71dSXin LI>4	byte	0xc5	GVOX Encore music, version < 5.0
849b6cee71dSXin LI
8503e41d09dSXin LI# Summary:	Garmin Voice Processing Module (WAVE audios)
8513e41d09dSXin LI# From:		Joerg Jenderek
85248c779cdSXin LI# URL:		https://www.garmin.com/
85348c779cdSXin LI# Reference:	http://www.poi-factory.com/node/19580
8543e41d09dSXin LI# NOTE:		there exist 2 other Garmin VPM formats
8553e41d09dSXin LI0		string	AUDIMG
8563e41d09dSXin LI# skip text files starting with string "AUDIMG"
8573e41d09dSXin LI>13		ubyte		<13	Garmin Voice Processing Module
8583e41d09dSXin LI!:mime	audio/x-vpm-wav-garmin
8593e41d09dSXin LI!:ext	vpm
8603e41d09dSXin LI# 3 bytes indicating the voice version (200,220)
8613e41d09dSXin LI>>6		string		x	\b, version %3.3s
8623e41d09dSXin LI# day of release (01-31)
8633e41d09dSXin LI>>12		ubyte		x	\b, %.2d
8643e41d09dSXin LI# month of release (01-12)
8653e41d09dSXin LI>>13		ubyte		x	\b.%.2d
8663e41d09dSXin LI# year of release (like 2006, 2007, 2008)
8673e41d09dSXin LI>>14		uleshort	x	\b.%.4d
8683e41d09dSXin LI# hour of release (0-23)
8693e41d09dSXin LI>>11		ubyte		x	%.2d
8703e41d09dSXin LI# minute of release (0-59)
8713e41d09dSXin LI>>10		ubyte		x	\b:%.2d
8723e41d09dSXin LI# second of release (0-59)
8733e41d09dSXin LI>>9		ubyte		x	\b:%.2d
8743e41d09dSXin LI# if you select a language like german on your garmin device
87540427ccaSGordon Tetlow# you can only select voice modules with corresponding language byte ID like 1
8763e41d09dSXin LI>>18		ubyte		x	\b, language ID %d
87748c779cdSXin LI# structure for phrases/sentences?
87848c779cdSXin LI# number of voice sample in the 1st phrase?
87943a5ec4eSXin LI#>>19		uleshort		x	\b, %#x samples
88043a5ec4eSXin LI#>>>21		uleshort		>0	\b, at %#4.4x
88143a5ec4eSXin LI#>>>(21.s)	ubequad			x	%#llx
88248c779cdSXin LI# 2nd phrase?
88343a5ec4eSXin LI#>>23		uleshort		x	\b, %#x samples
88443a5ec4eSXin LI#>>>25		uleshort		>0	\b, at %#4.4x
88543a5ec4eSXin LI#>>>(25.s)	ubequad			x	%#llx
8863e41d09dSXin LI# pointer to 1st audio WAV sample
8873e41d09dSXin LI>>16		uleshort	>0
88843a5ec4eSXin LI>>>(16.s)	ulelong		>0	\b, at %#x
8893e41d09dSXin LI# WAV length
89048c779cdSXin LI# 1 space char after "bytes" to get phrase "bytes RIFF"
89148c779cdSXin LI>>>>(16.s+4)	ulelong		>0	%u bytes
8923e41d09dSXin LI# look for magic
8933e41d09dSXin LI>>>>>(&-8.l)	string		RIFF
8943e41d09dSXin LI# determine type by ./riff
89548c779cdSXin LI>>>>>>&-4	indirect	x
8963e41d09dSXin LI# 2 - ~ 131 WAV samples following same way
89748c779cdSXin LI#
89848c779cdSXin LI# Summary:	encrypted Garmin Voice Processing Module
89948c779cdSXin LI# From:		Joerg Jenderek
90048c779cdSXin LI# URL:		https://www.garmin.com/us/products/ontheroad/voicestudio
90148c779cdSXin LI# NOTE:		Encrypted variant used in voices like DrNightmare, Elfred, Yeti.
90248c779cdSXin LI#		There exist 2 other Garmin VPM formats
90348c779cdSXin LI0	ubequad		0xa141190fecc8ced6	Garmin Voice Processing Module (encrypted)
90448c779cdSXin LI!:mime	audio/x-vpm-garmin
90548c779cdSXin LI!:ext	vpm
9063e41d09dSXin LI
90740427ccaSGordon Tetlow# From Martin Mueller Skarbiniks Pedersen
90840427ccaSGordon Tetlow0		string		GDM
90940427ccaSGordon Tetlow>0x3		byte		0xFE	General Digital Music.
91040427ccaSGordon Tetlow>0x4		string		>\0	title: "%s"
91140427ccaSGordon Tetlow>0x24		string		>\0	musician: "%s"
91240427ccaSGordon Tetlow>>0x44		beshort		0x0D0A
91340427ccaSGordon Tetlow>>>0x46		byte		0x1A
91440427ccaSGordon Tetlow>>>>0x47	string		GMFS	Version
91540427ccaSGordon Tetlow>>>>0x4B	byte		x	%d.
91640427ccaSGordon Tetlow>>>>0x4C	byte		x	\b%02d
91740427ccaSGordon Tetlow>>>>0x4D	beshort		0x000	(2GDM v
91840427ccaSGordon Tetlow>>>>0x4F	byte		x	\b%d.
91940427ccaSGordon Tetlow>>>>>0x50	byte		x	\b%d)
92040427ccaSGordon Tetlow
92140427ccaSGordon Tetlow0		string		MTM	Multitracker
92240427ccaSGordon Tetlow>0x3		byte/16		x	Version %d.
92340427ccaSGordon Tetlow>0x3		byte&0x0F	x	\b%02d
92440427ccaSGordon Tetlow>>0x4		string		>\0	title: "%s"
92540427ccaSGordon Tetlow
92640427ccaSGordon Tetlow0		string		MO3
92740427ccaSGordon Tetlow>3		ubyte		<6	MOdule with MP3
92840427ccaSGordon Tetlow>>3		byte		0	Version	0	(With MP3 and lossless)
92940427ccaSGordon Tetlow>>3		byte		1	Version	1	(With ogg and lossless)
93040427ccaSGordon Tetlow>>3		byte		3	Version 2.2
93140427ccaSGordon Tetlow>>3		byte		4	(With no LAME header)
93240427ccaSGordon Tetlow>>3		byte		5	Version 2.4
93340427ccaSGordon Tetlow
93440427ccaSGordon Tetlow0		string		ADRVPACK	AProSys	module
93540427ccaSGordon Tetlow
93640427ccaSGordon Tetlow# ftp://ftp.modland.com/pub/documents/format_documentation/\
93740427ccaSGordon Tetlow# Art%20Of%20Noise%20(.aon).txt
93840427ccaSGordon Tetlow0		string		AON
93940427ccaSGordon Tetlow>4		string		"ArtOfNoise by Bastian Spiegel(twice/lego)"
94040427ccaSGordon Tetlow>0x2e		string		NAME	Art of Noise Tracker Song
94140427ccaSGordon Tetlow>3		string		<9
94240427ccaSGordon Tetlow>3		string		4	(4 voices)
94340427ccaSGordon Tetlow>3		string		8	(8 voices)
94440427ccaSGordon Tetlow>>0x36		string		>\0	Title: "%s"
94540427ccaSGordon Tetlow
94640427ccaSGordon Tetlow0		string		FAR
94740427ccaSGordon Tetlow>0x2c		byte		0x0d
94840427ccaSGordon Tetlow>0x2d		byte		0x0a
94940427ccaSGordon Tetlow>0x2e		byte		0x1a
95040427ccaSGordon Tetlow>>0x3		byte		0xFE	Farandole Tracker Song
95140427ccaSGordon Tetlow>>>0x31		byte/16		x	Version %d.
95240427ccaSGordon Tetlow>>>0x31		byte&0x0F	x	\b%02d
95340427ccaSGordon Tetlow>>>>0x4		string		>\0	\b, title: "%s"
95458a0f0d0SEitan Adler
95548c779cdSXin LI# magic for Klystrack, https://kometbomb.github.io/klystrack/
95658a0f0d0SEitan Adler# from Alex Myczko <alex@aiei.ch>
95758a0f0d0SEitan Adler0	string	cyd!song	Klystrack song
95858a0f0d0SEitan Adler>8	byte	>0		\b, version %u
95958a0f0d0SEitan Adler>8	byte	>26
96058a0f0d0SEitan Adler#>>9	byte	x		\b, channels %u
96158a0f0d0SEitan Adler#>>10	leshort	x		\b, time signature %u
96258a0f0d0SEitan Adler#>>12	leshort	x		\b, sequence step %u
96358a0f0d0SEitan Adler#>>14	byte	x		\b, instruments %u
96458a0f0d0SEitan Adler#>>15	leshort	x		\b, patterns %u
96558a0f0d0SEitan Adler#>>17	leshort	x		\b, sequences %u
96658a0f0d0SEitan Adler#>>19	leshort	x		\b, length %u
96758a0f0d0SEitan Adler#>>21	leshort	x		\b, loop point %u
96858a0f0d0SEitan Adler#>>23	byte	x		\b, master volume %u
96958a0f0d0SEitan Adler#>>24	byte	x		\b, song speed %u
97058a0f0d0SEitan Adler#>>25	byte	x		\b, song speed2 %u
97158a0f0d0SEitan Adler#>>26	byte	x		\b, song rate %u
97258a0f0d0SEitan Adler#>>27	belong	x		\b, flags %#x
97358a0f0d0SEitan Adler#>>31	byte	x		\b, multiplex period %u
97458a0f0d0SEitan Adler#>>32	byte	x		\b, pitch inaccuracy %u
97558a0f0d0SEitan Adler>>149	pstring	x		\b, title %s
97658a0f0d0SEitan Adler
97758a0f0d0SEitan Adler0	string	cyd!inst	Klystrack instrument
97858a0f0d0SEitan Adler
97958a0f0d0SEitan Adler# magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor
98058a0f0d0SEitan Adler# see Specifications/WOPL-and-OPLI-Specification.txt
98158a0f0d0SEitan Adler
98258a0f0d0SEitan Adler0	string	WOPL3-INST\0	WOPL instrument
98358a0f0d0SEitan Adler>11	leshort	x	\b, version %u
98458a0f0d0SEitan Adler0	string	WOPL3-BANK\0	WOPL instrument bank
98558a0f0d0SEitan Adler>11	leshort	x	\b, version %u
98658a0f0d0SEitan Adler
98758a0f0d0SEitan Adler# AdLib/OPL instrument files. Format specifications on
98858a0f0d0SEitan Adler#  http://www.shikadi.net/moddingwiki
98958a0f0d0SEitan Adler0	string	Junglevision\ Patch\ File	Junglevision instrument data
99058a0f0d0SEitan Adler0	string	#OPL_II#	DMX OP2 instrument data
99158a0f0d0SEitan Adler0	string	IBK\x1a		IBK instrument data
99258a0f0d0SEitan Adler0	string	2OP\x1a		IBK instrument data, 2 operators
99358a0f0d0SEitan Adler0	string	4OP\x1a		IBK instrument data, 4 operators
99458a0f0d0SEitan Adler2	string	ADLIB-		AdLib instrument data
99558a0f0d0SEitan Adler>0	byte	x		\b, version %u
99658a0f0d0SEitan Adler>1	byte	x		\b.%u
9972dc4dbb9SEitan Adler
9982dc4dbb9SEitan Adler# CRI ADX ADPCM audio
9992dc4dbb9SEitan Adler# Used by various Sega games.
10002dc4dbb9SEitan Adler# https://en.wikipedia.org/wiki/ADX_(file_format)
10012dc4dbb9SEitan Adler# https://wiki.multimedia.cx/index.php/CRI_ADX_file
10022dc4dbb9SEitan Adler# Added by David Korth <gerbilsoft@gerbilsoft.com>
10032dc4dbb9SEitan Adler0x00		beshort		0x8000
10042dc4dbb9SEitan Adler>(2.S-2)	string		(c)CRI		CRI ADX ADPCM audio
100548c779cdSXin LI!:ext adx
100648c779cdSXin LI!:mime audio/x-adx
100748c779cdSXin LI!:strength +50
10082dc4dbb9SEitan Adler>>0x12		byte		x		v%u
10092dc4dbb9SEitan Adler>>0x04		byte		0x02		\b, pre-set prediction coefficients
10102dc4dbb9SEitan Adler>>0x04		byte		0x03		\b, standard ADX
10112dc4dbb9SEitan Adler>>0x04		byte		0x04		\b, exponential scale
101248c779cdSXin LI>>0x04		byte		0x10		\b, AHX (Dreamcast)
101348c779cdSXin LI>>0x04		byte		0x11		\b, AHX
10142dc4dbb9SEitan Adler>>0x08		belong		x		\b, %u Hz
10152dc4dbb9SEitan Adler>>0x12		byte		0x03
10162dc4dbb9SEitan Adler>>>0x02		beshort		>0x2B
10172dc4dbb9SEitan Adler>>>>0x18	belong		!0		\b, looping
10182dc4dbb9SEitan Adler>>0x12		byte		0x04
10192dc4dbb9SEitan Adler>>>0x02		beshort		>0x37
10202dc4dbb9SEitan Adler>>>>0x24	belong		!0		\b, looping
10212dc4dbb9SEitan Adler>>0x13		byte&0x08	0x08		\b, encrypted
10222dc4dbb9SEitan Adler
10232dc4dbb9SEitan Adler# Lossless audio (.la) (http://www.lossless-audio.com/)
10242dc4dbb9SEitan Adler0	string	LA
10252dc4dbb9SEitan Adler>2	string	03	Lossless audio version 0.3
10262dc4dbb9SEitan Adler>2	string	04	Lossless audio version 0.4
10272dc4dbb9SEitan Adler
10282dc4dbb9SEitan Adler# Sony PlayStation Audio (.xa)
10292dc4dbb9SEitan Adler0	leshort 0x4158	Sony PlayStation Audio
10302dc4dbb9SEitan Adler
103148c779cdSXin LI# Portable Sound Format
103248c779cdSXin LI# Used for audio rips for various consoles.
103348c779cdSXin LI# http://fileformats.archiveteam.org/wiki/Portable_Sound_Format
103448c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
1035d38c30c0SXin LI0	string	PSF
1036d38c30c0SXin LI>3	byte	0x01
1037d38c30c0SXin LI>3	byte	0x02
1038d38c30c0SXin LI>3	byte	0x11
1039d38c30c0SXin LI>3	byte	0x12
1040d38c30c0SXin LI>3	byte	0x13
1041d38c30c0SXin LI>3	byte	0x21
1042d38c30c0SXin LI>3	byte	0x22
1043d38c30c0SXin LI>3	byte	0x23
1044d38c30c0SXin LI>3	byte	0x41
1045d38c30c0SXin LI>>0	string	PSF	Portable Sound Format
104648c779cdSXin LI!:mime	audio/x-psf
1047d38c30c0SXin LI>>>3	byte	0x01	(Sony PlayStation)
1048d38c30c0SXin LI>>>3	byte	0x02	(Sony PlayStation 2)
1049d38c30c0SXin LI>>>3	byte	0x11	(Sega Saturn)
1050d38c30c0SXin LI>>>3	byte	0x12	(Sega Dreamcast)
1051d38c30c0SXin LI>>>3	byte	0x13	(Sega Mega Drive)
1052d38c30c0SXin LI>>>3	byte	0x21	(Nintendo 64)
1053d38c30c0SXin LI>>>3	byte	0x22	(Game Boy Advance)
1054d38c30c0SXin LI>>>3	byte	0x23	(Super NES)
1055d38c30c0SXin LI>>>3	byte	0x41	(Capcom QSound)
105648c779cdSXin LI
105748c779cdSXin LI# Atari 8-bit SAP audio format
105848c779cdSXin LI# http://asap.sourceforge.net/sap-format.html
105948c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
106048c779cdSXin LI0	string		SAP\r\n	Atari 8-bit SAP audio file
106148c779cdSXin LI!:mime	audio/x-sap
106248c779cdSXin LI!:ext	sap
106348c779cdSXin LI>5	search/1024	NAME
106448c779cdSXin LI>>&1	string		x	\b: %s
106548c779cdSXin LI>>5	search/1024	AUTHOR
106648c779cdSXin LI>>>&1	string		x	by %s
106748c779cdSXin LI
106848c779cdSXin LI# Nintendo Wii BRSTM audio format (fields)
106948c779cdSXin LI# NOTE: Assuming HEAD starts at 0x40.
107048c779cdSXin LI# FIXME: Replace 0x48 with HEAD offset plus 8.
107148c779cdSXin LI0	name	nintendo-wii-brstm-fields
107248c779cdSXin LI>(0x10.L)	string	HEAD	\b:
107348c779cdSXin LI>>(0x10.L+0x0C)	belong	x
107448c779cdSXin LI>>>(&-4.L+0x48)	belong	x
107548c779cdSXin LI>>>>&-4		byte	0	PCM, signed 8-bit,
107648c779cdSXin LI>>>>&-4		byte	1	PCM, signed 16-bit,
107748c779cdSXin LI>>>>&-4		byte	2	THP ADPCM,
107848c779cdSXin LI>>>>&-3		byte	!0	looping,
107948c779cdSXin LI>>>>&-2		byte	1	mono
108048c779cdSXin LI>>>>&-2		byte	2	stereo
108148c779cdSXin LI>>>>&-2		byte	3	3 channels
108248c779cdSXin LI>>>>&-2		byte	4	quad
108348c779cdSXin LI>>>>&-2		byte	>4	%u channels
108448c779cdSXin LI>>>>&0		beshort	!0	%u Hz
108548c779cdSXin LI
108648c779cdSXin LI# Nintendo Wii BRSTM audio format
108748c779cdSXin LI# https://wiibrew.org/wiki/BRSTM_file
108848c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
108948c779cdSXin LI0	string		RSTM	Nintendo Wii BRSTM audio file
109048c779cdSXin LI!:mime	audio/x-brstm
109148c779cdSXin LI!:ext	brstm
109248c779cdSXin LI# Wii is big-endian, so default to BE.
109348c779cdSXin LI>4	beshort		0xFEFF
109448c779cdSXin LI>>0	use		nintendo-wii-brstm-fields
109548c779cdSXin LI>4	leshort		0xFEFF
109648c779cdSXin LI>>0	use		\^nintendo-wii-brstm-fields
109748c779cdSXin LI
109848c779cdSXin LI# Nintendo 3DS BCSTM audio format (fields)
109948c779cdSXin LI0	name	nintendo-3ds-bcstm-fields
110048c779cdSXin LI>(0x18.l)	string	INFO	\b:
110148c779cdSXin LI# INFO block: Stream information starts at 0x20 (minus 4 for the 'INFO' magic)
110248c779cdSXin LI>>&0x1C		byte	0	PCM, signed 8-bit,
110348c779cdSXin LI>>&0x1C		byte	1	PCM, signed 16-bit,
110448c779cdSXin LI>>&0x1C		byte	2	DSP ADPCM,
110548c779cdSXin LI>>&0x1C		byte	3	IMA ADPCM,
110648c779cdSXin LI>>&0x1D		byte	!0	looping,
110748c779cdSXin LI>>&0x1E		byte	1	mono
110848c779cdSXin LI>>&0x1E		byte	2	stereo
110948c779cdSXin LI>>&0x1E		byte	3	3 channels
111048c779cdSXin LI>>&0x1E		byte	4	quad
111148c779cdSXin LI>>&0x1E		byte	>4	%u channels
111248c779cdSXin LI>>&0x20		lelong	!0	%u Hz
111348c779cdSXin LI
111448c779cdSXin LI# Nintendo 3DS BCSTM audio format
111548c779cdSXin LI# https://www.3dbrew.org/wiki/BCSTM
111648c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
111748c779cdSXin LI0	string		CSTM	Nintendo 3DS BCSTM audio file
111848c779cdSXin LI!:mime	audio/x-bcstm
111948c779cdSXin LI!:ext	bcstm
112048c779cdSXin LI# 3DS is little-endian, so default to LE.
112148c779cdSXin LI>4	leshort		0xFEFF
112248c779cdSXin LI>>0	use		nintendo-3ds-bcstm-fields
112348c779cdSXin LI>4	beshort		0xFEFF
112448c779cdSXin LI>>0	use		\^nintendo-3ds-bcstm-fields
112548c779cdSXin LI
112648c779cdSXin LI# Nintendo Wii U BFSTM audio format
112748c779cdSXin LI# http://mk8.tockdom.com/wiki/BFSTM_(File_Format)
112848c779cdSXin LI# NOTE: This format is very similar to BCSTM.
112948c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
113048c779cdSXin LI0	string		FSTM	Nintendo Wii U BFSTM audio file
113148c779cdSXin LI!:mime	audio/x-bfstm
113248c779cdSXin LI!:ext	bfstm
113348c779cdSXin LI# BFSTM is used on both Wii U (BE) and Switch (LE),
113448c779cdSXin LI# so default to LE.
113548c779cdSXin LI>4	leshort		0xFEFF
113648c779cdSXin LI>>0	use		nintendo-3ds-bcstm-fields
113748c779cdSXin LI>4	beshort		0xFEFF
113848c779cdSXin LI>>0	use		\^nintendo-3ds-bcstm-fields
113948c779cdSXin LI
114048c779cdSXin LI# Nintendo 3DS BCSTM audio format (fields)
114148c779cdSXin LI0	name	nintendo-3ds-bcwav-fields
114248c779cdSXin LI>(0x18.l)	string	INFO	\b:
114348c779cdSXin LI# INFO block (minus 4 for INFO magic)
114448c779cdSXin LI>>&0x4		byte	0	PCM, signed 8-bit,
114548c779cdSXin LI>>&0x4		byte	1	PCM, signed 16-bit,
114648c779cdSXin LI>>&0x4		byte	2	DSP ADPCM,
114748c779cdSXin LI>>&0x4		byte	3	IMA ADPCM,
114848c779cdSXin LI>>&0x5		byte	!0	looping,
114948c779cdSXin LI>>&0x8		lelong	x	stereo
115048c779cdSXin LI>>&0x8		lelong	!0	%u Hz
115148c779cdSXin LI
115248c779cdSXin LI# Nintendo 3DS BCWAV audio format
115348c779cdSXin LI# https://www.3dbrew.org/wiki/BCWAV
115448c779cdSXin LI# Added by David Korth <gerbilsoft@gerbilsoft.com>
115548c779cdSXin LI0	string		CWAV	Nintendo 3DS BCWAV audio file
115648c779cdSXin LI!:mime	audio/x-bcwav
115748c779cdSXin LI!:ext	bcwav
115848c779cdSXin LI# 3DS is little-endian, so default to LE.
115948c779cdSXin LI>4	leshort		0xFEFF
116048c779cdSXin LI>>0	use		nintendo-3ds-bcwav-fields
116148c779cdSXin LI>4	beshort		0xFEFF
116248c779cdSXin LI>>0	use		\^nintendo-3ds-bcwav-fields
1163a2dfb722SXin LI
1164a2dfb722SXin LI# Philips DSDIFF audio format (Direct Stream Digital Interchange File Format)
1165a2dfb722SXin LI# Used for DSD audio recordings and Super Audio CD (SACD) mastering annotations
1166a2dfb722SXin LI# https://dsd-guide.com/sites/default/files/white-papers/DSDIFF_1.5_Spec.pdf
1167a2dfb722SXin LI# From: Toni Ruottu <toni.ruottu@iki.fi>
1168a2dfb722SXin LI0		string		FRM8
1169a2dfb722SXin LI12		string		DSD\x20		DSDIFF audio bitstream data
1170a2dfb722SXin LI!:mime		audio/x-dff
1171a2dfb722SXin LI!:ext		dff
1172a2dfb722SXin LI
1173a2dfb722SXin LI# format version chunk
1174a2dfb722SXin LI>&0		string		FVER
1175a2dfb722SXin LI# version 1
1176a2dfb722SXin LI>>&8		byte		1
1177a2dfb722SXin LI
1178a2dfb722SXin LI# v1 / sampling resolution ( 1 bit PDM only )
1179a2dfb722SXin LI>>>&0		string		x		\b, 1 bit
1180a2dfb722SXin LI
1181a2dfb722SXin LI# v1 / sound property chunk
1182a2dfb722SXin LI>>>&0		search/0xff	PROP
1183a2dfb722SXin LI>>>>&8		string		SND
1184a2dfb722SXin LI
1185a2dfb722SXin LI# v1 / sound property chunk / channel configuration chunk
1186a2dfb722SXin LI>>>>>&0		search/0xff	CHNL
1187a2dfb722SXin LI>>>>>>&8	ubeshort	1							\b, mono
1188a2dfb722SXin LI>>>>>>&8	ubeshort	2
1189a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGT						\b, stereo
1190a2dfb722SXin LI>>>>>>>&0	default		x							\b, 2 channels
1191a2dfb722SXin LI>>>>>>&8	ubeshort	3
1192a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGTLFE\x20						\b, 2.1 stereo
1193a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGTC\x20\x20\x20					\b, 3.0 stereo
1194a2dfb722SXin LI>>>>>>>&0	default		x							\b, 3 channels
1195a2dfb722SXin LI>>>>>>&8	ubeshort	4
1196a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTLS\x20\x20RS\x20\x20				\b, 4.0 surround
1197a2dfb722SXin LI>>>>>>>&0	string		SLFTSRGTC\x20\x20\x20LFE\x20				\b, 3.1 stereo
1198a2dfb722SXin LI>>>>>>>&0	default		x							\b, 4 channels
1199a2dfb722SXin LI>>>>>>&8	ubeshort	5
1200a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTC\x20\x20\x20LS\x20\x20RS\x20\x20		\b, 5.0 surround
1201a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTLFE\x20LS\x20\x20RS\x20\x20			\b, 4.1 surround
1202a2dfb722SXin LI>>>>>>>&0	default		x							\b, 5 channels
1203a2dfb722SXin LI>>>>>>&8	ubeshort	6
1204a2dfb722SXin LI>>>>>>>&0	string		MLFTMRGTC\x20\x20\x20LFE\x20LS\x20\x20RS\x20\x20	\b, 5.1 surround
1205a2dfb722SXin LI>>>>>>>&0	default		x							\b, 6 channels
1206a2dfb722SXin LI>>>>>>&8	ubeshort	>6							\b, %u channels
1207a2dfb722SXin LI
1208a2dfb722SXin LI# v1 / sound property chunk / sample rate chunk
1209a2dfb722SXin LI>>>>>&0		search/0xff	FS\x20\x20
1210a2dfb722SXin LI>>>>>>&0	string		x		\b,
1211a2dfb722SXin LI>>>>>>&8	ubelong%44100	0
1212a2dfb722SXin LI>>>>>>>&-4	ubelong/44100	x		"DSD %u"
1213a2dfb722SXin LI>>>>>>>&-4	ubelong		x		%u Hz
1214a2dfb722SXin LI
1215a2dfb722SXin LI# v1 / sound property chunk / compression type chunk
1216a2dfb722SXin LI>>>>>&0		search/0xff	CMPR
1217a2dfb722SXin LI>>>>>>&8	string		DSD\x20		\b, no compression
1218a2dfb722SXin LI>>>>>>&8	string		DST\x20		\b, DST compression
1219a2dfb722SXin LI>>>>>>&8	default		x		\b, unknown compression
1220a2dfb722SXin LI
1221a2dfb722SXin LI# v1 / quest for metadata
1222a2dfb722SXin LI>>>&0		string		x
1223a2dfb722SXin LI
1224a2dfb722SXin LI# v1 / quest for metadata / edited master information chunk
1225a2dfb722SXin LI>>>>&0		search		DIIN
1226a2dfb722SXin LI>>>>>&0		ubequad		>0		\b, "edited master" metadata
1227a2dfb722SXin LI
1228a2dfb722SXin LI# v1 / quest for metadata / ID3 chunk ( defacto standard )
1229a2dfb722SXin LI>>>>&0		search		ID3\x20
1230a2dfb722SXin LI>>>>>&8		string		ID3		\b, ID3 version 2
1231a2dfb722SXin LI>>>>>&0		byte		x		\b.%u
1232a2dfb722SXin LI>>>>>&1		byte		x		\b.%u
1233a2dfb722SXin LI
1234a2dfb722SXin LI# v1 / quest for metadata / failure ( possibly due to -P bytes=... being too low )
1235a2dfb722SXin LI>>>>&0		default		x		\b, ID3 missing (or unreachable)
1236a2dfb722SXin LI
1237a2dfb722SXin LI# version > 1 or 0
1238a2dfb722SXin LI>>&0		default		x		\b, unknown version
1239a2dfb722SXin LI
1240a2dfb722SXin LI# Sony DSF audio format (Direct Stream Digital Stream File)
1241a2dfb722SXin LI# Used for lossless digital storage of songs produced as DSD audio
1242a2dfb722SXin LI# Portable analog of a track stored on a Super Audio CD (SACD)
1243a2dfb722SXin LI# https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf
1244a2dfb722SXin LI# From: Toni Ruottu <toni.ruottu@iki.fi>
1245a2dfb722SXin LI0		string		DSD\x20		DSF audio bitstream data
1246a2dfb722SXin LI!:mime		audio/x-dsf
1247a2dfb722SXin LI!:ext		dsf
1248a2dfb722SXin LI
1249a2dfb722SXin LI# format chunk
1250a2dfb722SXin LI>28		string		fmt\x20
1251a2dfb722SXin LI# version 1
1252a2dfb722SXin LI>>&8		ulelong		1
1253a2dfb722SXin LI
1254a2dfb722SXin LI# v1 / sampling resolution ( 1 bit PDM only )
1255a2dfb722SXin LI# NOTE: the spec incorrectly uses "bits per sample" instead of "bits per byte"
1256a2dfb722SXin LI>>>&0		string		x		\b, 1 bit
1257a2dfb722SXin LI
1258a2dfb722SXin LI# v1 / channel configuration
1259a2dfb722SXin LI>>>>&4		ulelong		1		\b, mono
1260a2dfb722SXin LI>>>>&4		ulelong		2		\b, stereo
1261a2dfb722SXin LI>>>>&4		ulelong		3		\b, 3.0 stereo
1262a2dfb722SXin LI>>>>&4		ulelong		4		\b, 4.0 surround
1263a2dfb722SXin LI>>>>&4		ulelong		5		\b, 3.1 stereo
1264a2dfb722SXin LI>>>>&4		ulelong		6		\b, 5.0 surround
1265a2dfb722SXin LI>>>>&4		ulelong		7		\b, 5.1 surround
1266a2dfb722SXin LI>>>>&0		default		x
1267a2dfb722SXin LI>>>>>&4		ulelong		x		\b, %u channels
1268a2dfb722SXin LI
1269a2dfb722SXin LI# v1 / sample rate chunk
1270a2dfb722SXin LI>>>>&0		string		x		\b,
1271a2dfb722SXin LI>>>>&12		ulelong%44100	0
1272a2dfb722SXin LI>>>>>&-4	ulelong/44100	x		"DSD %u"
1273a2dfb722SXin LI>>>>&12		ulelong		x		%u Hz
1274a2dfb722SXin LI
1275a2dfb722SXin LI# v1 / compression
1276a2dfb722SXin LI>>>>&0		string		x
1277a2dfb722SXin LI>>>>>&0		ulelong		0		\b, no compression
1278a2dfb722SXin LI>>>>>&0		default		x		\b, unknown compression
1279a2dfb722SXin LI
1280a2dfb722SXin LI# v1 / embedded ID3v2 metadata
1281a2dfb722SXin LI>>>0		string		x 		\b, ID3
1282a2dfb722SXin LI>>>>20		ulequad		!0
1283a2dfb722SXin LI>>>>>(20.q)	string		ID3		version 2
1284a2dfb722SXin LI>>>>>>&0	byte		x		\b.%u
1285a2dfb722SXin LI>>>>>>&1	byte		x		\b.%u
1286a2dfb722SXin LI# unable to verify ID3 ( possibly due to -P bytes=... being too low )
1287a2dfb722SXin LI>>>>>&0		default		x		unreachable
1288a2dfb722SXin LI>>>>&0		default		x		missing
1289a2dfb722SXin LI
1290a2dfb722SXin LI# version > 1 or 0
1291a2dfb722SXin LI>>&0		default		x		\b, unknown version
1292