xref: /dflybsd-src/contrib/file/magic/Magdir/audio (revision 739f0ef867128a933e021db3d831e906fcafd825)
1f72f8299SJan Lentfer
2327e51cbSPeter Avalos#------------------------------------------------------------------------------
3*3b9cdfa3SAntonio Huete Jimenez# $File: audio,v 1.124 2022/08/28 08:58:20 christos Exp $
4327e51cbSPeter Avalos# audio:  file(1) magic for sound formats (see also "iff")
5327e51cbSPeter Avalos#
6327e51cbSPeter Avalos# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
7327e51cbSPeter Avalos# and others
8327e51cbSPeter Avalos#
9327e51cbSPeter Avalos
10327e51cbSPeter Avalos# Sun/NeXT audio data
11327e51cbSPeter Avalos0	string		.snd		Sun/NeXT audio data:
12327e51cbSPeter Avalos>12	belong		1		8-bit ISDN mu-law,
1379343712SPeter Avalos!:mime	audio/basic
14327e51cbSPeter Avalos>12	belong		2		8-bit linear PCM [REF-PCM],
1579343712SPeter Avalos!:mime	audio/basic
16327e51cbSPeter Avalos>12	belong		3		16-bit linear PCM,
1779343712SPeter Avalos!:mime	audio/basic
18327e51cbSPeter Avalos>12	belong		4		24-bit linear PCM,
1979343712SPeter Avalos!:mime	audio/basic
20327e51cbSPeter Avalos>12	belong		5		32-bit linear PCM,
2179343712SPeter Avalos!:mime	audio/basic
22327e51cbSPeter Avalos>12	belong		6		32-bit IEEE floating point,
2379343712SPeter Avalos!:mime	audio/basic
24327e51cbSPeter Avalos>12	belong		7		64-bit IEEE floating point,
2579343712SPeter Avalos!:mime	audio/basic
26327e51cbSPeter Avalos>12	belong		8		Fragmented sample data,
27327e51cbSPeter Avalos>12	belong		10		DSP program,
28327e51cbSPeter Avalos>12	belong		11		8-bit fixed point,
29327e51cbSPeter Avalos>12	belong		12		16-bit fixed point,
30327e51cbSPeter Avalos>12	belong		13		24-bit fixed point,
31327e51cbSPeter Avalos>12	belong		14		32-bit fixed point,
32327e51cbSPeter Avalos>12	belong		18		16-bit linear with emphasis,
33327e51cbSPeter Avalos>12	belong		19		16-bit linear compressed,
34327e51cbSPeter Avalos>12	belong		20		16-bit linear with emphasis and compression,
35327e51cbSPeter Avalos>12	belong		21		Music kit DSP commands,
36327e51cbSPeter Avalos>12	belong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
3779343712SPeter Avalos!:mime  audio/x-adpcm
38327e51cbSPeter Avalos>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
39327e51cbSPeter Avalos>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
40327e51cbSPeter Avalos>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
41327e51cbSPeter Avalos>12	belong		27		8-bit A-law (CCITT G.711),
42327e51cbSPeter Avalos>20	belong		1		mono,
43327e51cbSPeter Avalos>20	belong		2		stereo,
44327e51cbSPeter Avalos>20	belong		4		quad,
45327e51cbSPeter Avalos>16	belong		>0		%d Hz
46327e51cbSPeter Avalos
47327e51cbSPeter Avalos# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
48327e51cbSPeter Avalos# that uses little-endian encoding and has a different magic number
49327e51cbSPeter Avalos0	lelong		0x0064732E	DEC audio data:
50327e51cbSPeter Avalos>12	lelong		1		8-bit ISDN mu-law,
5179343712SPeter Avalos!:mime	audio/x-dec-basic
52327e51cbSPeter Avalos>12	lelong		2		8-bit linear PCM [REF-PCM],
5379343712SPeter Avalos!:mime	audio/x-dec-basic
54327e51cbSPeter Avalos>12	lelong		3		16-bit linear PCM,
5579343712SPeter Avalos!:mime	audio/x-dec-basic
56327e51cbSPeter Avalos>12	lelong		4		24-bit linear PCM,
5779343712SPeter Avalos!:mime	audio/x-dec-basic
58327e51cbSPeter Avalos>12	lelong		5		32-bit linear PCM,
5979343712SPeter Avalos!:mime	audio/x-dec-basic
60327e51cbSPeter Avalos>12	lelong		6		32-bit IEEE floating point,
6179343712SPeter Avalos!:mime	audio/x-dec-basic
62327e51cbSPeter Avalos>12	lelong		7		64-bit IEEE floating point,
6379343712SPeter Avalos!:mime	audio/x-dec-basic
64327e51cbSPeter Avalos>12	belong		8		Fragmented sample data,
65327e51cbSPeter Avalos>12	belong		10		DSP program,
66327e51cbSPeter Avalos>12	belong		11		8-bit fixed point,
67327e51cbSPeter Avalos>12	belong		12		16-bit fixed point,
68327e51cbSPeter Avalos>12	belong		13		24-bit fixed point,
69327e51cbSPeter Avalos>12	belong		14		32-bit fixed point,
70327e51cbSPeter Avalos>12	belong		18		16-bit linear with emphasis,
71327e51cbSPeter Avalos>12	belong		19		16-bit linear compressed,
72327e51cbSPeter Avalos>12	belong		20		16-bit linear with emphasis and compression,
73327e51cbSPeter Avalos>12	belong		21		Music kit DSP commands,
74327e51cbSPeter Avalos>12	lelong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
7579343712SPeter Avalos!:mime	audio/x-dec-basic
76327e51cbSPeter Avalos>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
77327e51cbSPeter Avalos>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
78327e51cbSPeter Avalos>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
79327e51cbSPeter Avalos>12	belong		27		8-bit A-law (CCITT G.711),
80327e51cbSPeter Avalos>20	lelong		1		mono,
81327e51cbSPeter Avalos>20	lelong		2		stereo,
82327e51cbSPeter Avalos>20	lelong		4		quad,
83327e51cbSPeter Avalos>16	lelong		>0		%d Hz
84327e51cbSPeter Avalos
85327e51cbSPeter Avalos# Creative Labs AUDIO stuff
86327e51cbSPeter Avalos0	string	MThd			Standard MIDI data
8779343712SPeter Avalos!:mime	audio/midi
88327e51cbSPeter Avalos>8 	beshort	x			(format %d)
89327e51cbSPeter Avalos>10	beshort	x			using %d track
90327e51cbSPeter Avalos>10	beshort		>1		\bs
91327e51cbSPeter Avalos>12	beshort&0x7fff	x		at 1/%d
92327e51cbSPeter Avalos>12	beshort&0x8000	>0		SMPTE
93327e51cbSPeter Avalos
94327e51cbSPeter Avalos0	string	CTMF			Creative Music (CMF) data
9579343712SPeter Avalos!:mime	audio/x-unknown
96327e51cbSPeter Avalos0	string	SBI			SoundBlaster instrument data
9779343712SPeter Avalos!:mime	audio/x-unknown
98327e51cbSPeter Avalos0	string	Creative\ Voice\ File	Creative Labs voice data
9979343712SPeter Avalos!:mime	audio/x-unknown
100327e51cbSPeter Avalos# is this next line right?  it came this way...
101327e51cbSPeter Avalos>19	byte	0x1A
102327e51cbSPeter Avalos>23	byte	>0			- version %d
103327e51cbSPeter Avalos>22	byte	>0			\b.%d
104327e51cbSPeter Avalos
105327e51cbSPeter Avalos# first entry is also the string "NTRK"
106327e51cbSPeter Avalos0	belong		0x4e54524b	MultiTrack sound data
10782c5fa3eSPeter Avalos>4	belong		x		- version %d
108327e51cbSPeter Avalos
109327e51cbSPeter Avalos# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
110327e51cbSPeter Avalos# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
111327e51cbSPeter Avalos0	string		EMOD		Extended MOD sound data,
112327e51cbSPeter Avalos>4	byte&0xf0	x		version %d
113327e51cbSPeter Avalos>4	byte&0x0f	x		\b.%d,
114327e51cbSPeter Avalos>45	byte		x		%d instruments
115327e51cbSPeter Avalos>83	byte		0		(module)
116327e51cbSPeter Avalos>83	byte		1		(song)
117327e51cbSPeter Avalos
118327e51cbSPeter Avalos# Real Audio (Magic .ra\0375)
119327e51cbSPeter Avalos0	belong		0x2e7261fd	RealAudio sound file
12079343712SPeter Avalos!:mime	audio/x-pn-realaudio
121e4d4ce0cSPeter Avalos0	string		.RMF\0\0\0	RealMedia file
12279343712SPeter Avalos!:mime	application/vnd.rn-realmedia
12379343712SPeter Avalos#video/x-pn-realvideo
12479343712SPeter Avalos#video/vnd.rn-realvideo
12579343712SPeter Avalos#application/vnd.rn-realmedia
12679343712SPeter Avalos#	sigh, there are many mimes for that but the above are the most common.
127327e51cbSPeter Avalos
128327e51cbSPeter Avalos# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
129327e51cbSPeter Avalos# Oct 31, 1995
130327e51cbSPeter Avalos# fixed by <doj@cubic.org> 2003-06-24
131327e51cbSPeter Avalos# Too short...
132327e51cbSPeter Avalos#0	string		MTM		MultiTracker Module sound file
133327e51cbSPeter Avalos#0	string		if		Composer 669 Module sound data
134327e51cbSPeter Avalos#0	string		JN		Composer 669 Module sound data (extended format)
135327e51cbSPeter Avalos0	string		MAS_U		ULT(imate) Module sound data
136327e51cbSPeter Avalos
137327e51cbSPeter Avalos#0	string		FAR		Module sound data
138327e51cbSPeter Avalos#>4	string		>\15		Title: "%s"
139327e51cbSPeter Avalos
140327e51cbSPeter Avalos0x2c	string		SCRM		ScreamTracker III Module sound data
141327e51cbSPeter Avalos>0	string		>\0		Title: "%s"
1426fca56fbSSascha Wildner!:mime	audio/x-s3m
1436fca56fbSSascha Wildner
1446fca56fbSSascha Wildner# .stm before it got above .s3m extension
1456fca56fbSSascha Wildner0x16	string		\!Scream\!	ScreamTracker Module sound data
1466fca56fbSSascha Wildner>0	string		>\0		Title: "%s"
147327e51cbSPeter Avalos
148327e51cbSPeter Avalos# Gravis UltraSound patches
149327e51cbSPeter Avalos# From <ache@nagual.ru>
150327e51cbSPeter Avalos
151327e51cbSPeter Avalos0	string		GF1PATCH110\0ID#000002\0	GUS patch
152327e51cbSPeter Avalos0	string		GF1PATCH100\0ID#000002\0	Old GUS	patch
153327e51cbSPeter Avalos
15479343712SPeter Avalos# mime types according to http://www.geocities.com/nevilo/mod.htm:
15579343712SPeter Avalos#	audio/it	.it
15679343712SPeter Avalos#	audio/x-zipped-it	.itz
15779343712SPeter Avalos#	audio/xm	fasttracker modules
15879343712SPeter Avalos#	audio/x-s3m	screamtracker modules
15979343712SPeter Avalos#	audio/s3m	screamtracker modules
16079343712SPeter Avalos#	audio/x-zipped-mod	mdz
16179343712SPeter Avalos#	audio/mod	mod
16279343712SPeter Avalos#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
16379343712SPeter Avalos
164327e51cbSPeter Avalos#
165327e51cbSPeter Avalos# Taken from loader code from mikmod version 2.14
166327e51cbSPeter Avalos# by Steve McIntyre (stevem@chiark.greenend.org.uk)
167327e51cbSPeter Avalos# <doj@cubic.org> added title printing on 2003-06-24
168327e51cbSPeter Avalos0	string	MAS_UTrack_V00
169327e51cbSPeter Avalos>14	string	>/0		ultratracker V1.%.1s module sound data
17079343712SPeter Avalos!:mime	audio/x-mod
17179343712SPeter Avalos#audio/x-tracker-module
172327e51cbSPeter Avalos
173327e51cbSPeter Avalos0	string	UN05		MikMod UNI format module sound data
174327e51cbSPeter Avalos
175327e51cbSPeter Avalos0	string	Extended\ Module: Fasttracker II module sound data
17679343712SPeter Avalos!:mime	audio/x-mod
17779343712SPeter Avalos#audio/x-tracker-module
178327e51cbSPeter Avalos>17	string	>\0		Title: "%s"
179327e51cbSPeter Avalos
180327e51cbSPeter Avalos21	string/c	=!SCREAM!	Screamtracker 2 module sound data
18179343712SPeter Avalos!:mime	audio/x-mod
18279343712SPeter Avalos#audio/x-screamtracker-module
183327e51cbSPeter Avalos21	string	BMOD2STM	Screamtracker 2 module sound data
18479343712SPeter Avalos!:mime	audio/x-mod
18579343712SPeter Avalos#audio/x-screamtracker-module
186327e51cbSPeter Avalos1080	string	M.K.		4-channel Protracker module sound data
18779343712SPeter Avalos!:mime	audio/x-mod
18879343712SPeter Avalos#audio/x-protracker-module
189327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
190327e51cbSPeter Avalos1080	string	M!K!		4-channel Protracker module sound data
19179343712SPeter Avalos!:mime	audio/x-mod
19279343712SPeter Avalos#audio/x-protracker-module
193327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
194327e51cbSPeter Avalos1080	string	FLT4		4-channel Startracker module sound data
19579343712SPeter Avalos!:mime	audio/x-mod
19679343712SPeter Avalos#audio/x-startracker-module
197327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
198327e51cbSPeter Avalos1080	string	FLT8		8-channel Startracker module sound data
19979343712SPeter Avalos!:mime	audio/x-mod
20079343712SPeter Avalos#audio/x-startracker-module
201327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
202327e51cbSPeter Avalos1080	string	4CHN		4-channel Fasttracker module sound data
20379343712SPeter Avalos!:mime	audio/x-mod
20479343712SPeter Avalos#audio/x-fasttracker-module
205327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
206327e51cbSPeter Avalos1080	string	6CHN		6-channel Fasttracker module sound data
20779343712SPeter Avalos!:mime	audio/x-mod
20879343712SPeter Avalos#audio/x-fasttracker-module
209327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
210327e51cbSPeter Avalos1080	string	8CHN		8-channel Fasttracker module sound data
21179343712SPeter Avalos!:mime	audio/x-mod
21279343712SPeter Avalos#audio/x-fasttracker-module
213327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
214327e51cbSPeter Avalos1080	string	CD81		8-channel Octalyser module sound data
21579343712SPeter Avalos!:mime	audio/x-mod
21679343712SPeter Avalos#audio/x-octalysertracker-module
217327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
21879343712SPeter Avalos1080	string	OKTA		8-channel Octalyzer module sound data
21979343712SPeter Avalos!:mime	audio/x-mod
22079343712SPeter Avalos#audio/x-octalysertracker-module
221327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
222327e51cbSPeter Avalos# Not good enough.
223327e51cbSPeter Avalos#1082	string	CH
224327e51cbSPeter Avalos#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
225327e51cbSPeter Avalos1080	string	16CN		16-channel Taketracker module sound data
22679343712SPeter Avalos!:mime	audio/x-mod
22779343712SPeter Avalos#audio/x-taketracker-module
228327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
229327e51cbSPeter Avalos1080	string	32CN		32-channel Taketracker module sound data
23079343712SPeter Avalos!:mime	audio/x-mod
23179343712SPeter Avalos#audio/x-taketracker-module
232327e51cbSPeter Avalos>0	string	>\0		Title: "%s"
233327e51cbSPeter Avalos
234327e51cbSPeter Avalos# TOC sound files -Trevor Johnson <trevor@jpj.net>
235327e51cbSPeter Avalos#
236327e51cbSPeter Avalos0       string          TOC             TOC sound file
237327e51cbSPeter Avalos
238327e51cbSPeter Avalos# sidfiles <pooka@iki.fi>
239327e51cbSPeter Avalos# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
240327e51cbSPeter Avalos0	string		SIDPLAY\ INFOFILE	Sidplay info file
241327e51cbSPeter Avalos
242327e51cbSPeter Avalos0	string		PSID			PlaySID v2.2+ (AMIGA) sidtune
243327e51cbSPeter Avalos>4	beshort		>0			w/ header v%d,
244327e51cbSPeter Avalos>14	beshort		=1			single song,
245327e51cbSPeter Avalos>14	beshort		>1			%d songs,
246327e51cbSPeter Avalos>16	beshort		>0			default song: %d
247327e51cbSPeter Avalos>0x16	string		>\0			name: "%s"
248327e51cbSPeter Avalos>0x36	string		>\0			author: "%s"
249327e51cbSPeter Avalos>0x56	string		>\0			copyright: "%s"
250327e51cbSPeter Avalos
251327e51cbSPeter Avalos0	string		RSID			RSID sidtune PlaySID compatible
252327e51cbSPeter Avalos>4	beshort		>0			w/ header v%d,
253327e51cbSPeter Avalos>14	beshort		=1			single song,
254327e51cbSPeter Avalos>14	beshort		>1			%d songs,
255327e51cbSPeter Avalos>16	beshort		>0			default song: %d
256327e51cbSPeter Avalos>0x16	string		>\0			name: "%s"
257327e51cbSPeter Avalos>0x36	string		>\0			author: "%s"
258327e51cbSPeter Avalos>0x56	string		>\0			copyright: "%s"
259327e51cbSPeter Avalos
260ff91a668SPeter Avalos# IRCAM sound files - Michael Pruett <michael@68k.org>
261ff91a668SPeter Avalos# http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html
262ff91a668SPeter Avalos0	belong		0x64a30100		IRCAM file (VAX little-endian)
263ff91a668SPeter Avalos0	belong		0x0001a364		IRCAM file (VAX big-endian)
264ff91a668SPeter Avalos0	belong		0x64a30200		IRCAM file (Sun big-endian)
265ff91a668SPeter Avalos0	belong		0x0002a364		IRCAM file (Sun little-endian)
266327e51cbSPeter Avalos0	belong		0x64a30300		IRCAM file (MIPS little-endian)
267ff91a668SPeter Avalos0	belong		0x0003a364		IRCAM file (MIPS big-endian)
268ff91a668SPeter Avalos0	belong		0x64a30400		IRCAM file (NeXT big-endian)
269ff91a668SPeter Avalos0	belong		0x64a30400		IRCAM file (NeXT big-endian)
270ff91a668SPeter Avalos0	belong		0x0004a364		IRCAM file (NeXT little-endian)
271327e51cbSPeter Avalos
272327e51cbSPeter Avalos# NIST SPHERE <mpruett@sgi.com>
273327e51cbSPeter Avalos0	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
274327e51cbSPeter Avalos
275327e51cbSPeter Avalos# Sample Vision <mpruett@sgi.com>
276327e51cbSPeter Avalos0	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
277327e51cbSPeter Avalos
278327e51cbSPeter Avalos# Audio Visual Research <tonigonenstein@users.sourceforge.net>
279327e51cbSPeter Avalos0	string		2BIT			Audio Visual Research file,
280327e51cbSPeter Avalos>12	beshort		=0			mono,
281327e51cbSPeter Avalos>12	beshort		=-1			stereo,
282327e51cbSPeter Avalos>14	beshort		x			%d bits
283327e51cbSPeter Avalos>16	beshort		=0			unsigned,
284327e51cbSPeter Avalos>16	beshort		=-1			signed,
285327e51cbSPeter Avalos>22	belong&0x00ffffff	x		%d Hz,
286327e51cbSPeter Avalos>18	beshort		=0			no loop,
287327e51cbSPeter Avalos>18	beshort		=-1			loop,
28879343712SPeter Avalos>21	ubyte		<128			note %d,
289327e51cbSPeter Avalos>22	byte		=0			replay 5.485 KHz
290327e51cbSPeter Avalos>22	byte		=1			replay 8.084 KHz
291f72f8299SJan Lentfer>22	byte		=2			replay 10.971 KHz
292f72f8299SJan Lentfer>22	byte		=3			replay 16.168 KHz
293327e51cbSPeter Avalos>22	byte		=4			replay 21.942 KHz
294327e51cbSPeter Avalos>22	byte		=5			replay 32.336 KHz
295327e51cbSPeter Avalos>22	byte		=6			replay 43.885 KHz
296327e51cbSPeter Avalos>22	byte		=7			replay 47.261 KHz
297327e51cbSPeter Avalos
298327e51cbSPeter Avalos# SGI SoundTrack <mpruett@sgi.com>
299327e51cbSPeter Avalos0	string		_SGI_SoundTrack		SGI SoundTrack project file
300327e51cbSPeter Avalos# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
301327e51cbSPeter Avalos0	string		ID3	Audio file with ID3 version 2
30279343712SPeter Avalos>3	byte		x	\b.%d
30379343712SPeter Avalos>4	byte		x	\b.%d
30479343712SPeter Avalos>>5	byte		&0x80	\b, unsynchronized frames
30579343712SPeter Avalos>>5	byte		&0x40	\b, extended header
30679343712SPeter Avalos>>5	byte		&0x20	\b, experimental
30779343712SPeter Avalos>>5	byte		&0x10	\b, footer present
308c30bd091SSascha Wildner>(6.I+10)	indirect	x	\b, contains:
309327e51cbSPeter Avalos
310327e51cbSPeter Avalos# NSF (NES sound file) magic
311327e51cbSPeter Avalos0	string		NESM\x1a	NES Sound File
312327e51cbSPeter Avalos>14	string		>\0		("%s" by
313327e51cbSPeter Avalos>46	string		>\0		%s, copyright
314327e51cbSPeter Avalos>78	string		>\0		%s),
315327e51cbSPeter Avalos>5	byte		x		version %d,
316327e51cbSPeter Avalos>6	byte		x		%d tracks,
317327e51cbSPeter Avalos>122	byte&0x2	=1		dual PAL/NTSC
318327e51cbSPeter Avalos>122	byte&0x1	=1		PAL
319327e51cbSPeter Avalos>122	byte&0x1	=0		NTSC
320327e51cbSPeter Avalos
321c30bd091SSascha Wildner# NSFE (Extended NES sound file) magic
322c30bd091SSascha Wildner# http://slickproductions.org/docs/NSF/nsfespec.txt
323c30bd091SSascha Wildner# From: David Pflug <david@pflug.email>
324c30bd091SSascha Wildner0	string		NSFE		Extended NES Sound File
325c30bd091SSascha Wildner>48	search/0x1000	auth
326c30bd091SSascha Wildner>>&0	string		>\0		("%s"
327c30bd091SSascha Wildner>>>&1	string		>\0		by %s
328c30bd091SSascha Wildner>>>>&1	string		>\0		\b, copyright %s
329c30bd091SSascha Wildner>>>>>&1	string		>\0		\b, ripped by %s
330c30bd091SSascha Wildner>20	byte		x		\b), %d tracks,
331c30bd091SSascha Wildner>18	byte&0x2	=1		dual PAL/NTSC
332c30bd091SSascha Wildner>18     byte&0x2	=0
333c30bd091SSascha Wildner>>18	byte&0x1	=1		PAL
334c30bd091SSascha Wildner>>18	byte&0x1	=0		NTSC
335c30bd091SSascha Wildner
336e4d4ce0cSPeter Avalos# Type: SNES SPC700 sound files
337e4d4ce0cSPeter Avalos# From: Josh Triplett <josh@freedesktop.org>
338e4d4ce0cSPeter Avalos0	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
339e4d4ce0cSPeter Avalos>&0	string	0.30					\b, version %s
340e4d4ce0cSPeter Avalos>>0x23	byte	0x1B					\b, without ID666 tag
341e4d4ce0cSPeter Avalos>>0x23	byte	0x1A					\b, with ID666 tag
342e4d4ce0cSPeter Avalos>>>0x2E	string	>\0					\b, song "%.32s"
343e4d4ce0cSPeter Avalos>>>0x4E	string	>\0					\b, game "%.32s"
344e4d4ce0cSPeter Avalos
345327e51cbSPeter Avalos# Impulse tracker module (audio/x-it)
346327e51cbSPeter Avalos0	string		IMPM		Impulse Tracker module sound data -
34779343712SPeter Avalos!:mime	audio/x-mod
348327e51cbSPeter Avalos>4	string		>\0		"%s"
349327e51cbSPeter Avalos>40	leshort		!0		compatible w/ITv%x
350327e51cbSPeter Avalos>42	leshort		!0		created w/ITv%x
351327e51cbSPeter Avalos
352327e51cbSPeter Avalos# Imago Orpheus module (audio/x-imf)
353327e51cbSPeter Avalos60	string		IM10		Imago Orpheus module sound data -
354327e51cbSPeter Avalos>0	string		>\0		"%s"
355327e51cbSPeter Avalos
356327e51cbSPeter Avalos# From <collver1@attbi.com>
357327e51cbSPeter Avalos# These are the /etc/magic entries to decode modules, instruments, and
358327e51cbSPeter Avalos# samples in Impulse Tracker's native format.
359327e51cbSPeter Avalos
360327e51cbSPeter Avalos0	string		IMPS		Impulse Tracker Sample
361327e51cbSPeter Avalos>18	byte		&2		16 bit
362327e51cbSPeter Avalos>18	byte		^2		8 bit
363327e51cbSPeter Avalos>18	byte		&4		stereo
364327e51cbSPeter Avalos>18	byte		^4		mono
365327e51cbSPeter Avalos0	string		IMPI		Impulse Tracker Instrument
366327e51cbSPeter Avalos>28	leshort		!0		ITv%x
367327e51cbSPeter Avalos>30	byte		!0		%d samples
368327e51cbSPeter Avalos
369327e51cbSPeter Avalos# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
370327e51cbSPeter Avalos# From <collver1@attbi.com>
371327e51cbSPeter Avalos0	string		LM8953		Yamaha TX Wave
372327e51cbSPeter Avalos>22	byte		0x49		looped
373327e51cbSPeter Avalos>22	byte		0xC9		non-looped
374327e51cbSPeter Avalos>23	byte		1		33kHz
375327e51cbSPeter Avalos>23	byte		2		50kHz
376327e51cbSPeter Avalos>23	byte		3		16kHz
377327e51cbSPeter Avalos
378327e51cbSPeter Avalos# scream tracker:  file(1) magic for Scream Tracker sample files
379327e51cbSPeter Avalos#
380327e51cbSPeter Avalos# From <collver1@attbi.com>
381327e51cbSPeter Avalos76	string		SCRS		Scream Tracker Sample
382327e51cbSPeter Avalos>0	byte		1		sample
383327e51cbSPeter Avalos>0	byte		2		adlib melody
384327e51cbSPeter Avalos>0	byte		>2		adlib drum
385327e51cbSPeter Avalos>31	byte		&2		stereo
386327e51cbSPeter Avalos>31	byte		^2		mono
387327e51cbSPeter Avalos>31	byte		&4		16bit little endian
388327e51cbSPeter Avalos>31	byte		^4		8bit
389327e51cbSPeter Avalos>30	byte		0		unpacked
390327e51cbSPeter Avalos>30	byte		1		packed
391327e51cbSPeter Avalos
392327e51cbSPeter Avalos# audio
393327e51cbSPeter Avalos# From: Cory Dikkers <cdikkers@swbell.net>
394327e51cbSPeter Avalos0	string		MMD0		MED music file, version 0
395327e51cbSPeter Avalos0	string		MMD1		OctaMED Pro music file, version 1
396327e51cbSPeter Avalos0	string		MMD3		OctaMED Soundstudio music file, version 3
397327e51cbSPeter Avalos0	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
398327e51cbSPeter Avalos0	string		MED		MED_Song
399327e51cbSPeter Avalos0	string		SymM		Symphonie SymMOD music file
400327e51cbSPeter Avalos#
4016fca56fbSSascha Wildner# Track Length (TRL), Tracks (TRK), Samples (SMP), Subsongs (SS)
4026fca56fbSSascha Wildner# http://lclevy.free.fr/exotica/ahx/ahxformat.txt
403327e51cbSPeter Avalos0	string		THX		AHX version
404327e51cbSPeter Avalos>3	byte		=0		1 module data
405327e51cbSPeter Avalos>3	byte		=1		2 module data
406*3b9cdfa3SAntonio Huete Jimenez>11	ubyte		x		TRK: %u
407*3b9cdfa3SAntonio Huete Jimenez>10	ubyte		x		TRL: %u
408*3b9cdfa3SAntonio Huete Jimenez>12	ubyte		x		SMP: %u
409*3b9cdfa3SAntonio Huete Jimenez>13	ubyte		x		SS: %u
410*3b9cdfa3SAntonio Huete Jimenez>(4.H)		string		x		Title: "%.128s"
411*3b9cdfa3SAntonio Huete Jimenez
412*3b9cdfa3SAntonio Huete Jimenez# header is mostly AHX format
413*3b9cdfa3SAntonio Huete Jimenez0		string		HVL
414*3b9cdfa3SAntonio Huete Jimenez>3		byte		<2	Hively Tracker Song
415*3b9cdfa3SAntonio Huete Jimenez>3		byte		=0		v1 module data
416*3b9cdfa3SAntonio Huete Jimenez>3		byte		=1		v2 module data
417*3b9cdfa3SAntonio Huete Jimenez>11		ubyte		x		TRK: %u
418*3b9cdfa3SAntonio Huete Jimenez>10		ubyte		x		TRL: %u
419*3b9cdfa3SAntonio Huete Jimenez>12		ubyte		x		SMP: %u
420*3b9cdfa3SAntonio Huete Jimenez>13		ubyte		x		SS: %u
421*3b9cdfa3SAntonio Huete Jimenez>8		ubyte/4		=0		CHN: 4
422*3b9cdfa3SAntonio Huete Jimenez>8		ubyte/4		>0		CHN: 4+%u
423*3b9cdfa3SAntonio Huete Jimenez#>-0		offset		<0xffff
424*3b9cdfa3SAntonio Huete Jimenez>(4.H)		string		x		Title: "%.128s"
425*3b9cdfa3SAntonio Huete Jimenez
426327e51cbSPeter Avalos#
427327e51cbSPeter Avalos0	string		OKTASONG	Oktalyzer module data
428327e51cbSPeter Avalos#
429327e51cbSPeter Avalos0	string		DIGI\ Booster\ module\0	%s
430327e51cbSPeter Avalos>20	byte		>0		%c
431327e51cbSPeter Avalos>>21	byte		>0		\b%c
432327e51cbSPeter Avalos>>>22	byte		>0		\b%c
433327e51cbSPeter Avalos>>>>23	byte		>0		\b%c
434327e51cbSPeter Avalos>610	string		>\0		\b, "%s"
435327e51cbSPeter Avalos#
436327e51cbSPeter Avalos0	string		DBM0	   	DIGI Booster Pro Module
437327e51cbSPeter Avalos>4	byte		>0		V%X.
438327e51cbSPeter Avalos>>5	byte		x		\b%02X
439327e51cbSPeter Avalos>16	string		>\0		\b, "%s"
440327e51cbSPeter Avalos#
441327e51cbSPeter Avalos0	string		FTMN		FaceTheMusic module
442327e51cbSPeter Avalos>16	string		>\0d		\b, "%s"
443327e51cbSPeter Avalos
444327e51cbSPeter Avalos# From: <doj@cubic.org> 2003-06-24
445327e51cbSPeter Avalos0	string		AMShdr\32	Velvet Studio AMS Module v2.2
446327e51cbSPeter Avalos0	string		Extreme		Extreme Tracker AMS Module v1.3
447327e51cbSPeter Avalos0	string		DDMF		Xtracker DMF Module
448327e51cbSPeter Avalos>4	byte		x		v%i
449327e51cbSPeter Avalos>0xD	string		>\0		Title: "%s"
450327e51cbSPeter Avalos>0x2B	string		>\0		Composer: "%s"
451327e51cbSPeter Avalos0	string		DSM\32		Dynamic Studio Module DSM
452327e51cbSPeter Avalos0	string		SONG		DigiTrekker DTM Module
453327e51cbSPeter Avalos0	string		DMDL		DigiTrakker MDL Module
454327e51cbSPeter Avalos0	string		PSM\32		Protracker Studio PSM Module
455327e51cbSPeter Avalos44	string		PTMF		Poly Tracker PTM Module
456327e51cbSPeter Avalos>0	string		>\32		Title: "%s"
457327e51cbSPeter Avalos0	string		MT20		MadTracker 2.0 Module MT2
458327e51cbSPeter Avalos0	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
459327e51cbSPeter Avalos0	string		RTMM		RTM Module
460327e51cbSPeter Avalos0x426	string		MaDoKaN96	XMS Adlib Module
461327e51cbSPeter Avalos>0	string		>\0		Composer: "%s"
462327e51cbSPeter Avalos0	string		AMF		AMF Module
463327e51cbSPeter Avalos>4	string		>\0		Title: "%s"
464970935fdSSascha Wildner0	string		MODINFO1	Open Cubic Player Module Information MDZ
465327e51cbSPeter Avalos0	string		Extended\40Instrument: Fast Tracker II Instrument
466327e51cbSPeter Avalos
467327e51cbSPeter Avalos# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
468327e51cbSPeter Avalos# NOA Nancy Codec file
469327e51cbSPeter Avalos0	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
470327e51cbSPeter Avalos# Yamaha SMAF format
471327e51cbSPeter Avalos0	string		MMMD		Yamaha SMAF file
472327e51cbSPeter Avalos# Sharp Jisaku Melody format for PDC
473327e51cbSPeter Avalos0	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
474327e51cbSPeter Avalos>20	string		Ver01.00	Ver. 1.00
475327e51cbSPeter Avalos>>32	byte		x		, %d tracks
476327e51cbSPeter Avalos
477327e51cbSPeter Avalos# Free lossless audio codec <http://flac.sourceforge.net>
478327e51cbSPeter Avalos# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
479327e51cbSPeter Avalos0	string			fLaC		FLAC audio bitstream data
4806fca56fbSSascha Wildner!:mime	audio/flac
481327e51cbSPeter Avalos>4	byte&0x7f		>0		\b, unknown version
482327e51cbSPeter Avalos>4	byte&0x7f		0		\b
483327e51cbSPeter Avalos# some common bits/sample values
484327e51cbSPeter Avalos>>20	beshort&0x1f0		0x030		\b, 4 bit
485327e51cbSPeter Avalos>>20	beshort&0x1f0		0x050		\b, 6 bit
486327e51cbSPeter Avalos>>20	beshort&0x1f0		0x070		\b, 8 bit
487327e51cbSPeter Avalos>>20	beshort&0x1f0		0x0b0		\b, 12 bit
488327e51cbSPeter Avalos>>20	beshort&0x1f0		0x0f0		\b, 16 bit
489327e51cbSPeter Avalos>>20	beshort&0x1f0		0x170		\b, 24 bit
490327e51cbSPeter Avalos>>20	byte&0xe		0x0		\b, mono
491327e51cbSPeter Avalos>>20	byte&0xe		0x2		\b, stereo
492327e51cbSPeter Avalos>>20	byte&0xe		0x4		\b, 3 channels
493327e51cbSPeter Avalos>>20	byte&0xe		0x6		\b, 4 channels
494327e51cbSPeter Avalos>>20	byte&0xe		0x8		\b, 5 channels
495327e51cbSPeter Avalos>>20	byte&0xe		0xa		\b, 6 channels
496327e51cbSPeter Avalos>>20	byte&0xe		0xc		\b, 7 channels
497327e51cbSPeter Avalos>>20	byte&0xe		0xe		\b, 8 channels
4986fca56fbSSascha Wildner# sample rates derived from known oscillator frequencies;
4996fca56fbSSascha Wildner# 24.576 MHz (video/fs=48kHz), 22.5792 (audio/fs=44.1kHz) and
5006fca56fbSSascha Wildner# 16.384 (other/fs=32kHz).
5016fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x02b110	\b, 11.025 kHz
5026fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x03e800	\b, 16 kHz
503327e51cbSPeter Avalos>>17	belong&0xfffff0       	0x056220	\b, 22.05 kHz
504327e51cbSPeter Avalos>>17	belong&0xfffff0       	0x05dc00	\b, 24 kHz
5056fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x07d000	\b, 32 kHz
5066fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x0ac440	\b, 44.1 kHz
5076fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x0bb800	\b, 48 kHz
508327e51cbSPeter Avalos>>17	belong&0xfffff0       	0x0fa000	\b, 64 kHz
5096fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x158880	\b, 88.2 kHz
5106fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x177000	\b, 96 kHz
5116fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x1f4000	\b, 128 kHz
5126fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x2b1100	\b, 176.4 kHz
5136fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x2ee000	\b, 192 kHz
5146fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x3e8000	\b, 256 kHz
5156fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x562200	\b, 352.8 kHz
5166fca56fbSSascha Wildner>>17	belong&0xfffff0       	0x5dc000	\b, 384 kHz
517327e51cbSPeter Avalos>>21	byte&0xf		>0		\b, >4G samples
518327e51cbSPeter Avalos>>21	byte&0xf		0		\b
519327e51cbSPeter Avalos>>>22	belong			>0		\b, %u samples
520327e51cbSPeter Avalos>>>22	belong			0		\b, length unknown
521327e51cbSPeter Avalos
522327e51cbSPeter Avalos# (ISDN) VBOX voice message file (Wolfram Kleff)
523327e51cbSPeter Avalos0       string          VBOX            VBOX voice message data
524327e51cbSPeter Avalos
525327e51cbSPeter Avalos# ReBorn Song Files (.rbs)
526327e51cbSPeter Avalos# David J. Singer <doc@deadvirgins.org.uk>
527327e51cbSPeter Avalos8       string          RB40             RBS Song file
528327e51cbSPeter Avalos>29     string          ReBorn           created by ReBorn
529327e51cbSPeter Avalos>37     string          Propellerhead    created by ReBirth
530327e51cbSPeter Avalos
531327e51cbSPeter Avalos# Synthesizer Generator and Kimwitu share their file format
532327e51cbSPeter Avalos0	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
533327e51cbSPeter Avalos# Kimwitu++ uses a slightly different magic
534327e51cbSPeter Avalos0	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
535327e51cbSPeter Avalos
536327e51cbSPeter Avalos# From "Simon Hosie
537327e51cbSPeter Avalos0       string  TFMX-SONG       TFMX module sound data
538327e51cbSPeter Avalos
539327e51cbSPeter Avalos# Monkey's Audio compressed audio format (.ape)
540327e51cbSPeter Avalos# From danny.milo@gmx.net (Danny Milosavljevic)
541327e51cbSPeter Avalos# New version from Abel Cheung <abel (@) oaka.org>
542327e51cbSPeter Avalos0		string		MAC\040		Monkey's Audio compressed format
54317b11469SPeter Avalos!:mime audio/x-ape
544327e51cbSPeter Avalos>4		uleshort	>0x0F8B		version %d
545327e51cbSPeter Avalos>>(0x08.l)	uleshort	=1000		with fast compression
546327e51cbSPeter Avalos>>(0x08.l)	uleshort	=2000		with normal compression
547327e51cbSPeter Avalos>>(0x08.l)	uleshort	=3000		with high compression
548327e51cbSPeter Avalos>>(0x08.l)	uleshort	=4000		with extra high compression
549327e51cbSPeter Avalos>>(0x08.l)	uleshort	=5000		with insane compression
550327e51cbSPeter Avalos>>(0x08.l+18)	uleshort	=1		\b, mono
551327e51cbSPeter Avalos>>(0x08.l+18)	uleshort	=2		\b, stereo
552327e51cbSPeter Avalos>>(0x08.l+20)	ulelong		x		\b, sample rate %d
553327e51cbSPeter Avalos>4		uleshort	<0x0F8C		version %d
554327e51cbSPeter Avalos>>6		uleshort	=1000		with fast compression
555327e51cbSPeter Avalos>>6		uleshort	=2000		with normal compression
556327e51cbSPeter Avalos>>6		uleshort	=3000		with high compression
557327e51cbSPeter Avalos>>6		uleshort	=4000		with extra high compression
558327e51cbSPeter Avalos>>6		uleshort	=5000		with insane compression
559327e51cbSPeter Avalos>>10		uleshort	=1		\b, mono
560327e51cbSPeter Avalos>>10		uleshort	=2		\b, stereo
561327e51cbSPeter Avalos>>12		ulelong		x		\b, sample rate %d
562327e51cbSPeter Avalos
563327e51cbSPeter Avalos# adlib sound files
5646fca56fbSSascha Wildner# From: Alex Myczko <alex@aiei.ch>
5656fca56fbSSascha Wildner
5666fca56fbSSascha Wildner# https://github.com/rerrahkr/BambooTracker
567*3b9cdfa3SAntonio Huete Jimenez0	string	BambooTracker	BambooTracker
568*3b9cdfa3SAntonio Huete Jimenez>13	string	Mod		Module
569*3b9cdfa3SAntonio Huete Jimenez>13	string	Ist		Instrument
570*3b9cdfa3SAntonio Huete Jimenez>13	string	Bnk		Bank
5716fca56fbSSascha Wildner>22	byte	x		\b, version %u
5726fca56fbSSascha Wildner>21	byte	x		\b.%u
5736fca56fbSSascha Wildner>20	byte	x		\b.%u
5746fca56fbSSascha Wildner
5756fca56fbSSascha Wildner0	string		CC2x		CheeseCutter 2 song
5766fca56fbSSascha Wildner
577327e51cbSPeter Avalos0    	string		RAWADATA	RdosPlay RAW
578327e51cbSPeter Avalos
579327e51cbSPeter Avalos1068	string		RoR		AMUSIC Adlib Tracker
580327e51cbSPeter Avalos
581327e51cbSPeter Avalos0	string		JCH		EdLib
582327e51cbSPeter Avalos
583327e51cbSPeter Avalos0	string		mpu401tr	MPU-401 Trakker
584327e51cbSPeter Avalos
585327e51cbSPeter Avalos0	string		SAdT		Surprise! Adlib Tracker
586327e51cbSPeter Avalos>4	byte		x		Version %d
587327e51cbSPeter Avalos
588327e51cbSPeter Avalos0	string		XAD!		eXotic ADlib
589327e51cbSPeter Avalos
590327e51cbSPeter Avalos0	string		ofTAZ!		eXtra Simple Music
591327e51cbSPeter Avalos
5926fca56fbSSascha Wildner0	string		FMK!		FM Kingtracker Song
5936fca56fbSSascha Wildner
5946fca56fbSSascha Wildner0	string		DFM		DFM Song
5956fca56fbSSascha Wildner
5966fca56fbSSascha Wildner0	string		\<CUD-FM-File\>	CFF Song
5976fca56fbSSascha Wildner
5986fca56fbSSascha Wildner0	string		_A2module	A2M Song
5996fca56fbSSascha Wildner
600327e51cbSPeter Avalos# Spectrum 128 tunes (.ay files).
601327e51cbSPeter Avalos# From: Emanuel Haupt <ehaupt@critical.ch>
602327e51cbSPeter Avalos0	string		ZXAYEMUL	Spectrum 128 tune
603327e51cbSPeter Avalos
604327e51cbSPeter Avalos0	string		\0BONK		BONK,
605327e51cbSPeter Avalos#>5	byte		x		version %d
606327e51cbSPeter Avalos>14	byte		x		%d channel(s),
607327e51cbSPeter Avalos>15	byte		=1		lossless,
608327e51cbSPeter Avalos>15	byte		=0		lossy,
609327e51cbSPeter Avalos>16	byte		x		mid-side
610327e51cbSPeter Avalos
611327e51cbSPeter Avalos384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
612327e51cbSPeter Avalos
613327e51cbSPeter Avalos# format VQF (proprietary codec for sound)
614327e51cbSPeter Avalos# some infos on the header file available at :
615327e51cbSPeter Avalos# http://www.twinvq.org/english/technology_format.html
616327e51cbSPeter Avalos0	string		TWIN97012000	VQF data
617327e51cbSPeter Avalos>27	short		0		\b, Mono
618327e51cbSPeter Avalos>27	short		1		\b, Stereo
619327e51cbSPeter Avalos>31	short 		>0		\b, %d kbit/s
620327e51cbSPeter Avalos>35	short 		>0		\b, %d kHz
621327e51cbSPeter Avalos
622327e51cbSPeter Avalos# Nelson A. de Oliveira (naoliv@gmail.com)
623327e51cbSPeter Avalos# .eqf
624327e51cbSPeter Avalos0	string	Winamp\ EQ\ library\ file	%s
625327e51cbSPeter Avalos# it will match only versions like v<digit>.<digit>
626327e51cbSPeter Avalos# Since I saw only eqf files with version v1.1 I think that it's OK
627327e51cbSPeter Avalos>23	string	x	\b%.4s
628327e51cbSPeter Avalos# .preset
629327e51cbSPeter Avalos0	string	[Equalizer\ preset]	XMMS equalizer preset
630327e51cbSPeter Avalos# .m3u
63179343712SPeter Avalos0	search/1	#EXTM3U 	M3U playlist text
632327e51cbSPeter Avalos# .pls
63379343712SPeter Avalos0	search/1	[playlist]	PLS playlist text
634327e51cbSPeter Avalos# licq.conf
635327e51cbSPeter Avalos1	string	[licq]			LICQ configuration file
636327e51cbSPeter Avalos
637327e51cbSPeter Avalos# Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
6386fca56fbSSascha Wildner# NOTE: Most SNDH music is packed using ICE, which has
6396fca56fbSSascha Wildner# magic numbers "ICE!" and "Ice!". Some SNDH music is
6406fca56fbSSascha Wildner# not packed, so we check for both packed and unpacked.
6416fca56fbSSascha Wildner12	string			SNDH	SNDH Atari ST music
6426fca56fbSSascha Wildner0	belong&0xFFDFDFFF	0x49434521
6436fca56fbSSascha Wildner>14	search/40		NDH	SNDH Atari ST music
6446fca56fbSSascha Wildner>14	search/40		TITL	SNDH Atari ST music
645327e51cbSPeter Avalos0	string		SC68\ Music-file\ /\ (c)\ (BeN)jami	sc68 Atari ST music
646327e51cbSPeter Avalos
647327e51cbSPeter Avalos# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
648c30bd091SSascha Wildner0       string          MP+     Musepack audio (MP+)
649e8af9738SPeter Avalos!:mime	audio/x-musepack
650327e51cbSPeter Avalos>3      byte            255     \b, SV pre8
651327e51cbSPeter Avalos>3      byte&0xF        0x6     \b, SV 6
652327e51cbSPeter Avalos>3      byte&0xF        0x8     \b, SV 8
653327e51cbSPeter Avalos>3      byte&0xF        0x7     \b, SV 7
654327e51cbSPeter Avalos>>3     byte&0xF0       0x0     \b.0
655327e51cbSPeter Avalos>>3     byte&0xF0       0x10    \b.1
656327e51cbSPeter Avalos>>3     byte&0xF0       240     \b.15
657327e51cbSPeter Avalos>>10    byte&0xF0       0x0     \b, no profile
658327e51cbSPeter Avalos>>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
659327e51cbSPeter Avalos>>10    byte&0xF0       0x50    \b, quality 0
660327e51cbSPeter Avalos>>10    byte&0xF0       0x60    \b, quality 1
661327e51cbSPeter Avalos>>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
662327e51cbSPeter Avalos>>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
663327e51cbSPeter Avalos>>10    byte&0xF0       0x90    \b, quality 4 (Radio)
664327e51cbSPeter Avalos>>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
665327e51cbSPeter Avalos>>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
666327e51cbSPeter Avalos>>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
667327e51cbSPeter Avalos>>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
668327e51cbSPeter Avalos>>10    byte&0xF0       0xE0    \b, quality 9
669327e51cbSPeter Avalos>>10    byte&0xF0       0xF0    \b, quality 10
670327e51cbSPeter Avalos>>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
671327e51cbSPeter Avalos>>27    byte            102     \b, Beta 1.02
672327e51cbSPeter Avalos>>27    byte            104     \b, Beta 1.04
673327e51cbSPeter Avalos>>27    byte            105     \b, Alpha 1.05
674327e51cbSPeter Avalos>>27    byte            106     \b, Beta 1.06
675327e51cbSPeter Avalos>>27    byte            110     \b, Release 1.1
676327e51cbSPeter Avalos>>27    byte            111     \b, Alpha 1.11
677327e51cbSPeter Avalos>>27    byte            112     \b, Beta 1.12
678327e51cbSPeter Avalos>>27    byte            113     \b, Alpha 1.13
679327e51cbSPeter Avalos>>27    byte            114     \b, Beta 1.14
680327e51cbSPeter Avalos>>27    byte            115     \b, Alpha 1.15
681327e51cbSPeter Avalos
682c30bd091SSascha Wildner0       string          MPCK    Musepack audio (MPCK)
683c30bd091SSascha Wildner!:mime	audio/x-musepack
684c30bd091SSascha Wildner
685327e51cbSPeter Avalos# IMY
686327e51cbSPeter Avalos# from http://filext.com/detaillist.php?extdetail=IMY
6876fca56fbSSascha Wildner# https://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
688327e51cbSPeter Avalos# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
689327e51cbSPeter Avalos# http://www.wx800.com/msg/download/irda/iMelody.pdf
690327e51cbSPeter Avalos0	string	BEGIN:IMELODY	iMelody Ringtone Format
691327e51cbSPeter Avalos
692327e51cbSPeter Avalos# From: "Mateus Caruccio" <mateus@caruccio.com>
693327e51cbSPeter Avalos# guitar pro v3,4,5 from http://filext.com/file-extension/gp3
694327e51cbSPeter Avalos0	string	\030FICHIER\ GUITAR\ PRO\ v3.	Guitar Pro Ver. 3 Tablature
695327e51cbSPeter Avalos
696327e51cbSPeter Avalos# From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
697327e51cbSPeter Avalos60	string	SONG		SoundFX Module sound file
698327e51cbSPeter Avalos
69979343712SPeter Avalos# Type: Adaptive Multi-Rate Codec
70079343712SPeter Avalos# URL:  http://filext.com/detaillist.php?extdetail=AMR
70179343712SPeter Avalos# From: Russell Coker <russell@coker.com.au>
70279343712SPeter Avalos0	string	#!AMR		Adaptive Multi-Rate Codec (GSM telephony)
7036fca56fbSSascha Wildner!:mime	audio/amr
7046fca56fbSSascha Wildner!:ext  amr
705e4d4ce0cSPeter Avalos
706e4d4ce0cSPeter Avalos# Type: SuperCollider 3 Synth Definition File Format
707e4d4ce0cSPeter Avalos# From: Mario Lang <mlang@debian.org>
708e4d4ce0cSPeter Avalos0	string	SCgf	SuperCollider3 Synth Definition file,
709e4d4ce0cSPeter Avalos>4	belong	x	version %d
710a96e001bSPeter Avalos
711a96e001bSPeter Avalos# Type: True Audio Lossless Audio
7126fca56fbSSascha Wildner# URL:  https://wiki.multimedia.cx/index.php?title=True_Audio
713a96e001bSPeter Avalos# From: Mike Melanson <mike@multimedia.cx>
714a96e001bSPeter Avalos0	string	TTA1	True Audio Lossless Audio
715a96e001bSPeter Avalos
716a96e001bSPeter Avalos# Type: WavPack Lossless Audio
7176fca56fbSSascha Wildner# URL:  https://wiki.multimedia.cx/index.php?title=WavPack
718a96e001bSPeter Avalos# From: Mike Melanson <mike@multimedia.cx>
719a96e001bSPeter Avalos0	string	wvpk	WavPack Lossless Audio
720e8af9738SPeter Avalos
72182c5fa3eSPeter Avalos# From Fabio R. Schmidlin <frs@pop.com.br>
722e8af9738SPeter Avalos# VGM music file
723c30bd091SSascha Wildner0	string		Vgm\040
724e8af9738SPeter Avalos>9	ubyte		>0	VGM Video Game Music dump v
7256fca56fbSSascha Wildner!:mime	audio/x-vgm
7266fca56fbSSascha Wildner!:ext	vgm
727e8af9738SPeter Avalos>>9	ubyte/16	>0	\b%d
728e8af9738SPeter Avalos>>9	ubyte&0x0F	x	\b%d
729e8af9738SPeter Avalos>>8	ubyte/16	x	\b.%d
730e8af9738SPeter Avalos>>8	ubyte&0x0F	>0	\b%d
731e8af9738SPeter Avalos#Get soundchips
732e8af9738SPeter Avalos>>8	ubyte		x	\b, soundchip(s)=
733970935fdSSascha Wildner>>0x0C	ulelong		>0	SN76489 (PSG),
734970935fdSSascha Wildner>>0x10	ulelong		>0	YM2413 (OPLL),
735970935fdSSascha Wildner>>0x2C	ulelong		>0	YM2612 (OPN2),
736970935fdSSascha Wildner>>0x30	ulelong		>0	YM2151 (OPM),
737e8af9738SPeter Avalos>>0x38	ulelong		>0	Sega PCM,
738e8af9738SPeter Avalos>>0x34	ulelong		>0xC
739970935fdSSascha Wildner>>>0x40	ulelong		>0	RF5C68 (PCM),
740e8af9738SPeter Avalos>>0x34	ulelong		>0x10
741970935fdSSascha Wildner>>>0x44	ulelong		>0	YM2203 (OPN),
742e8af9738SPeter Avalos>>0x34	ulelong		>0x14
743970935fdSSascha Wildner>>>0x48	ulelong		>0	YM2608 (OPNA),
744e8af9738SPeter Avalos>>0x34	ulelong		>0x18
745970935fdSSascha Wildner>>>0x4C	lelong		>0	YM2610 (OPNB),
746970935fdSSascha Wildner>>>0x4C	lelong		<0	YM2610B (OPNB+2FM),
747e8af9738SPeter Avalos>>0x34	ulelong		>0x1C
748970935fdSSascha Wildner>>>0x50	ulelong		>0	YM3812 (OPL2),
749e8af9738SPeter Avalos>>0x34	ulelong		>0x20
750970935fdSSascha Wildner>>>0x54	ulelong		>0	YM3526 (OPL),
751e8af9738SPeter Avalos>>0x34	ulelong		>0x24
752970935fdSSascha Wildner>>>0x58	ulelong		>0	Y8950 (MSX-Audio),
753e8af9738SPeter Avalos>>0x34	ulelong		>0x28
754970935fdSSascha Wildner>>>0x5C	ulelong		>0	YMF262 (OPL3),
755e8af9738SPeter Avalos>>0x34	ulelong		>0x2C
756970935fdSSascha Wildner>>>0x60	ulelong		>0	YMF278B (OPL4),
757e8af9738SPeter Avalos>>0x34	ulelong		>0x30
758970935fdSSascha Wildner>>>0x64	ulelong		>0	YMF271 (OPX),
759e8af9738SPeter Avalos>>0x34	ulelong		>0x34
760970935fdSSascha Wildner>>>0x68	ulelong		>0	YMZ280B (PCMD8),
761e8af9738SPeter Avalos>>0x34	ulelong		>0x38
762970935fdSSascha Wildner>>>0x6C	ulelong		>0	RF5C164 (PCM),
763e8af9738SPeter Avalos>>0x34	ulelong		>0x3C
764e8af9738SPeter Avalos>>>0x70	ulelong		>0	PWM,
765e8af9738SPeter Avalos>>0x34	ulelong		>0x40
766e8af9738SPeter Avalos>>>0x74	ulelong		>0
767e8af9738SPeter Avalos>>>>0x78 ubyte		0x00	AY-3-8910,
768e8af9738SPeter Avalos>>>>0x78 ubyte		0x01	AY-3-8912,
769e8af9738SPeter Avalos>>>>0x78 ubyte		0x02	AY-3-8913,
770e8af9738SPeter Avalos>>>>0x78 ubyte		0x03	AY-3-8930,
771e8af9738SPeter Avalos>>>>0x78 ubyte		0x10	YM2149,
772e8af9738SPeter Avalos>>>>0x78 ubyte		0x11	YM3439,
7736fca56fbSSascha Wildner>>>>0x78 ubyte		0x12	YMZ284,
7746fca56fbSSascha Wildner>>>>0x78 ubyte		0x13	YMZ294,
7756fca56fbSSascha Wildner# VGM 1.61
7766fca56fbSSascha Wildner>>0x34	ulelong		>0x4C
7776fca56fbSSascha Wildner>>>0x80	ulelong		>0	DMG,
7786fca56fbSSascha Wildner>>0x34	ulelong		>0x50
7796fca56fbSSascha Wildner>>>0x84	lelong		>0	NES APU,
7806fca56fbSSascha Wildner>>>0x84	lelong		<0	NES APU with FDS,
7816fca56fbSSascha Wildner>>0x34	ulelong		>0x54
7826fca56fbSSascha Wildner>>>0x88	ulelong		>0	MultiPCM,
7836fca56fbSSascha Wildner>>0x34	ulelong		>0x58
784970935fdSSascha Wildner>>>0x8C	ulelong		>0	uPD7759 (ADPCM Speech),
7856fca56fbSSascha Wildner>>0x34	ulelong		>0x5C
786970935fdSSascha Wildner>>>0x90	ulelong		>0	OKIM6258 (ADPCM Speech),
7876fca56fbSSascha Wildner>>0x34	ulelong		>0x64
788970935fdSSascha Wildner>>>0x98	ulelong		>0	OKIM6295 (ADPCM),
7896fca56fbSSascha Wildner>>0x34	ulelong		>0x68
7906fca56fbSSascha Wildner>>>0x9C	ulelong		>0	K051649,
7916fca56fbSSascha Wildner>>0x34	ulelong		>0x6C
7926fca56fbSSascha Wildner>>>0xA0	ulelong		>0	K054539,
7936fca56fbSSascha Wildner>>0x34	ulelong		>0x70
7946fca56fbSSascha Wildner>>>0xA4	ulelong		>0	HuC6280,
7956fca56fbSSascha Wildner>>0x34	ulelong		>0x74
7966fca56fbSSascha Wildner>>>0xA8	ulelong		>0	C140,
7976fca56fbSSascha Wildner>>0x34	ulelong		>0x78
7986fca56fbSSascha Wildner>>>0xAC	ulelong		>0	K053260,
7996fca56fbSSascha Wildner>>0x34	ulelong		>0x7C
8006fca56fbSSascha Wildner>>>0xB0	ulelong		>0	Pokey,
8016fca56fbSSascha Wildner>>0x34	ulelong		>0x80
8026fca56fbSSascha Wildner>>>0xB4	ulelong		>0	QSound,
8036fca56fbSSascha Wildner# VGM 1.71
8046fca56fbSSascha Wildner>>0x34	ulelong		>0x84
8056fca56fbSSascha Wildner>>>0xB8	ulelong		>0	SCSP,
8066fca56fbSSascha Wildner>>0x34	ulelong		>0x8C
8076fca56fbSSascha Wildner>>>0xC0	ulelong		>0	WonderSwan,
8086fca56fbSSascha Wildner>>0x34	ulelong		>0x90
8096fca56fbSSascha Wildner>>>0xC4	ulelong		>0	VSU,
8106fca56fbSSascha Wildner>>0x34	ulelong		>0x94
8116fca56fbSSascha Wildner>>>0xC8	ulelong		>0	SAA1099,
8126fca56fbSSascha Wildner>>0x34	ulelong		>0x98
813970935fdSSascha Wildner>>>0xCC	ulelong		>0	ES5503 (DOC),
8146fca56fbSSascha Wildner>>0x34	ulelong		>0x9C
815970935fdSSascha Wildner>>>0xD0	lelong		>0	ES5505 (OTIS),
816970935fdSSascha Wildner>>>0xD0	lelong		<0	ES5506 (OTTO),
8176fca56fbSSascha Wildner>>0x34	ulelong		>0xA4
8186fca56fbSSascha Wildner>>>0xD8	ulelong		>0	X1-010,
8196fca56fbSSascha Wildner>>0x34	ulelong		>0xA8
8206fca56fbSSascha Wildner>>>0xDC	ulelong		>0	C352,
8216fca56fbSSascha Wildner>>0x34	ulelong		>0xAC
8226fca56fbSSascha Wildner>>>0xE0	ulelong		>0	GA20,
823e8af9738SPeter Avalos
824e8af9738SPeter Avalos# GVOX Encore file format
825e8af9738SPeter Avalos# Since this is a proprietary file format and there is no publicly available
826e8af9738SPeter Avalos# format specification, this is just based on induction
827e8af9738SPeter Avalos#
828e8af9738SPeter Avalos0	string	SCOW
829e8af9738SPeter Avalos>4	byte	0xc4	GVOX Encore music, version 5.0 or above
830e8af9738SPeter Avalos>4	byte	0xc2	GVOX Encore music, version < 5.0
831e8af9738SPeter Avalos
832e8af9738SPeter Avalos0	string	ZBOT
833e8af9738SPeter Avalos>4	byte	0xc5	GVOX Encore music, version < 5.0
834e8af9738SPeter Avalos
835c30bd091SSascha Wildner# Summary:	Garmin Voice Processing Module (WAVE audios)
836c30bd091SSascha Wildner# From:		Joerg Jenderek
8376fca56fbSSascha Wildner# URL:		https://www.garmin.com/
8386fca56fbSSascha Wildner# Reference:	http://www.poi-factory.com/node/19580
839c30bd091SSascha Wildner# NOTE:		there exist 2 other Garmin VPM formats
840c30bd091SSascha Wildner0		string	AUDIMG
841c30bd091SSascha Wildner# skip text files starting with string "AUDIMG"
842c30bd091SSascha Wildner>13		ubyte		<13	Garmin Voice Processing Module
843c30bd091SSascha Wildner!:mime	audio/x-vpm-wav-garmin
844c30bd091SSascha Wildner!:ext	vpm
845c30bd091SSascha Wildner# 3 bytes indicating the voice version (200,220)
846c30bd091SSascha Wildner>>6		string		x	\b, version %3.3s
847c30bd091SSascha Wildner# day of release (01-31)
848c30bd091SSascha Wildner>>12		ubyte		x	\b, %.2d
849c30bd091SSascha Wildner# month of release (01-12)
850c30bd091SSascha Wildner>>13		ubyte		x	\b.%.2d
851c30bd091SSascha Wildner# year of release (like 2006, 2007, 2008)
852c30bd091SSascha Wildner>>14		uleshort	x	\b.%.4d
853c30bd091SSascha Wildner# hour of release (0-23)
854c30bd091SSascha Wildner>>11		ubyte		x	%.2d
855c30bd091SSascha Wildner# minute of release (0-59)
856c30bd091SSascha Wildner>>10		ubyte		x	\b:%.2d
857c30bd091SSascha Wildner# second of release (0-59)
858c30bd091SSascha Wildner>>9		ubyte		x	\b:%.2d
859c30bd091SSascha Wildner# if you select a language like german on your garmin device
860c30bd091SSascha Wildner# you can only select voice modules with corresponding language byte ID like 1
861c30bd091SSascha Wildner>>18		ubyte		x	\b, language ID %d
8626fca56fbSSascha Wildner# structure for phrases/sentences?
8636fca56fbSSascha Wildner# number of voice sample in the 1st phrase?
864614728caSSascha Wildner#>>19		uleshort		x	\b, %#x samples
865614728caSSascha Wildner#>>>21		uleshort		>0	\b, at %#4.4x
866614728caSSascha Wildner#>>>(21.s)	ubequad			x	%#llx
8676fca56fbSSascha Wildner# 2nd phrase?
868614728caSSascha Wildner#>>23		uleshort		x	\b, %#x samples
869614728caSSascha Wildner#>>>25		uleshort		>0	\b, at %#4.4x
870614728caSSascha Wildner#>>>(25.s)	ubequad			x	%#llx
871c30bd091SSascha Wildner# pointer to 1st audio WAV sample
872c30bd091SSascha Wildner>>16		uleshort	>0
873614728caSSascha Wildner>>>(16.s)	ulelong		>0	\b, at %#x
874c30bd091SSascha Wildner# WAV length
8756fca56fbSSascha Wildner# 1 space char after "bytes" to get phrase "bytes RIFF"
8766fca56fbSSascha Wildner>>>>(16.s+4)	ulelong		>0	%u bytes
877c30bd091SSascha Wildner# look for magic
878c30bd091SSascha Wildner>>>>>(&-8.l)	string		RIFF
879c30bd091SSascha Wildner# determine type by ./riff
8806fca56fbSSascha Wildner>>>>>>&-4	indirect	x
881c30bd091SSascha Wildner# 2 - ~ 131 WAV samples following same way
8826fca56fbSSascha Wildner#
8836fca56fbSSascha Wildner# Summary:	encrypted Garmin Voice Processing Module
8846fca56fbSSascha Wildner# From:		Joerg Jenderek
8856fca56fbSSascha Wildner# URL:		https://www.garmin.com/us/products/ontheroad/voicestudio
8866fca56fbSSascha Wildner# NOTE:		Encrypted variant used in voices like DrNightmare, Elfred, Yeti.
8876fca56fbSSascha Wildner#		There exist 2 other Garmin VPM formats
8886fca56fbSSascha Wildner0	ubequad		0xa141190fecc8ced6	Garmin Voice Processing Module (encrypted)
8896fca56fbSSascha Wildner!:mime	audio/x-vpm-garmin
8906fca56fbSSascha Wildner!:ext	vpm
891c30bd091SSascha Wildner
892c30bd091SSascha Wildner# From Martin Mueller Skarbiniks Pedersen
893c30bd091SSascha Wildner0		string		GDM
894c30bd091SSascha Wildner>0x3		byte		0xFE	General Digital Music.
895c30bd091SSascha Wildner>0x4		string		>\0	title: "%s"
896c30bd091SSascha Wildner>0x24		string		>\0	musician: "%s"
897c30bd091SSascha Wildner>>0x44		beshort		0x0D0A
898c30bd091SSascha Wildner>>>0x46		byte		0x1A
899c30bd091SSascha Wildner>>>>0x47	string		GMFS	Version
900c30bd091SSascha Wildner>>>>0x4B	byte		x	%d.
901c30bd091SSascha Wildner>>>>0x4C	byte		x	\b%02d
902c30bd091SSascha Wildner>>>>0x4D	beshort		0x000	(2GDM v
903c30bd091SSascha Wildner>>>>0x4F	byte		x	\b%d.
904c30bd091SSascha Wildner>>>>>0x50	byte		x	\b%d)
905c30bd091SSascha Wildner
906c30bd091SSascha Wildner0		string		MTM	Multitracker
907c30bd091SSascha Wildner>0x3		byte/16		x	Version %d.
908c30bd091SSascha Wildner>0x3		byte&0x0F	x	\b%02d
909c30bd091SSascha Wildner>>0x4		string		>\0	title: "%s"
910c30bd091SSascha Wildner
911c30bd091SSascha Wildner0		string		MO3
912c30bd091SSascha Wildner>3		ubyte		<6	MOdule with MP3
913c30bd091SSascha Wildner>>3		byte		0	Version	0	(With MP3 and lossless)
914c30bd091SSascha Wildner>>3		byte		1	Version	1	(With ogg and lossless)
915c30bd091SSascha Wildner>>3		byte		3	Version 2.2
916c30bd091SSascha Wildner>>3		byte		4	(With no LAME header)
917c30bd091SSascha Wildner>>3		byte		5	Version 2.4
918c30bd091SSascha Wildner
919c30bd091SSascha Wildner0		string		ADRVPACK	AProSys	module
920c30bd091SSascha Wildner
921c30bd091SSascha Wildner# ftp://ftp.modland.com/pub/documents/format_documentation/\
922c30bd091SSascha Wildner# Art%20Of%20Noise%20(.aon).txt
923c30bd091SSascha Wildner0		string		AON
924c30bd091SSascha Wildner>4		string		"ArtOfNoise by Bastian Spiegel(twice/lego)"
925c30bd091SSascha Wildner>0x2e		string		NAME	Art of Noise Tracker Song
926c30bd091SSascha Wildner>3		string		<9
927c30bd091SSascha Wildner>3		string		4	(4 voices)
928c30bd091SSascha Wildner>3		string		8	(8 voices)
929c30bd091SSascha Wildner>>0x36		string		>\0	Title: "%s"
930c30bd091SSascha Wildner
931c30bd091SSascha Wildner0		string		FAR
932c30bd091SSascha Wildner>0x2c		byte		0x0d
933c30bd091SSascha Wildner>0x2d		byte		0x0a
934c30bd091SSascha Wildner>0x2e		byte		0x1a
935c30bd091SSascha Wildner>>0x3		byte		0xFE	Farandole Tracker Song
936c30bd091SSascha Wildner>>>0x31		byte/16		x	Version %d.
937c30bd091SSascha Wildner>>>0x31		byte&0x0F	x	\b%02d
938c30bd091SSascha Wildner>>>>0x4		string		>\0	\b, title: "%s"
9396fca56fbSSascha Wildner
9406fca56fbSSascha Wildner# magic for Klystrack, https://kometbomb.github.io/klystrack/
9416fca56fbSSascha Wildner# from Alex Myczko <alex@aiei.ch>
9426fca56fbSSascha Wildner0	string	cyd!song	Klystrack song
9436fca56fbSSascha Wildner>8	byte	>0		\b, version %u
9446fca56fbSSascha Wildner>8	byte	>26
9456fca56fbSSascha Wildner#>>9	byte	x		\b, channels %u
9466fca56fbSSascha Wildner#>>10	leshort	x		\b, time signature %u
9476fca56fbSSascha Wildner#>>12	leshort	x		\b, sequence step %u
9486fca56fbSSascha Wildner#>>14	byte	x		\b, instruments %u
9496fca56fbSSascha Wildner#>>15	leshort	x		\b, patterns %u
9506fca56fbSSascha Wildner#>>17	leshort	x		\b, sequences %u
9516fca56fbSSascha Wildner#>>19	leshort	x		\b, length %u
9526fca56fbSSascha Wildner#>>21	leshort	x		\b, loop point %u
9536fca56fbSSascha Wildner#>>23	byte	x		\b, master volume %u
9546fca56fbSSascha Wildner#>>24	byte	x		\b, song speed %u
9556fca56fbSSascha Wildner#>>25	byte	x		\b, song speed2 %u
9566fca56fbSSascha Wildner#>>26	byte	x		\b, song rate %u
9576fca56fbSSascha Wildner#>>27	belong	x		\b, flags %#x
9586fca56fbSSascha Wildner#>>31	byte	x		\b, multiplex period %u
9596fca56fbSSascha Wildner#>>32	byte	x		\b, pitch inaccuracy %u
9606fca56fbSSascha Wildner>>149	pstring	x		\b, title %s
9616fca56fbSSascha Wildner
9626fca56fbSSascha Wildner0	string	cyd!inst	Klystrack instrument
9636fca56fbSSascha Wildner
9646fca56fbSSascha Wildner# magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor
9656fca56fbSSascha Wildner# see Specifications/WOPL-and-OPLI-Specification.txt
9666fca56fbSSascha Wildner
9676fca56fbSSascha Wildner0	string	WOPL3-INST\0	WOPL instrument
9686fca56fbSSascha Wildner>11	leshort	x	\b, version %u
9696fca56fbSSascha Wildner0	string	WOPL3-BANK\0	WOPL instrument bank
9706fca56fbSSascha Wildner>11	leshort	x	\b, version %u
9716fca56fbSSascha Wildner
9726fca56fbSSascha Wildner# AdLib/OPL instrument files. Format specifications on
9736fca56fbSSascha Wildner#  http://www.shikadi.net/moddingwiki
9746fca56fbSSascha Wildner0	string	Junglevision\ Patch\ File	Junglevision instrument data
9756fca56fbSSascha Wildner0	string	#OPL_II#	DMX OP2 instrument data
9766fca56fbSSascha Wildner0	string	IBK\x1a		IBK instrument data
9776fca56fbSSascha Wildner0	string	2OP\x1a		IBK instrument data, 2 operators
9786fca56fbSSascha Wildner0	string	4OP\x1a		IBK instrument data, 4 operators
9796fca56fbSSascha Wildner2	string	ADLIB-		AdLib instrument data
9806fca56fbSSascha Wildner>0	byte	x		\b, version %u
9816fca56fbSSascha Wildner>1	byte	x		\b.%u
9826fca56fbSSascha Wildner
9836fca56fbSSascha Wildner# CRI ADX ADPCM audio
9846fca56fbSSascha Wildner# Used by various Sega games.
9856fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/ADX_(file_format)
9866fca56fbSSascha Wildner# https://wiki.multimedia.cx/index.php/CRI_ADX_file
9876fca56fbSSascha Wildner# Added by David Korth <gerbilsoft@gerbilsoft.com>
9886fca56fbSSascha Wildner0x00		beshort		0x8000
9896fca56fbSSascha Wildner>(2.S-2)	string		(c)CRI		CRI ADX ADPCM audio
9906fca56fbSSascha Wildner!:ext adx
9916fca56fbSSascha Wildner!:mime audio/x-adx
9926fca56fbSSascha Wildner!:strength +50
9936fca56fbSSascha Wildner>>0x12		byte		x		v%u
9946fca56fbSSascha Wildner>>0x04		byte		0x02		\b, pre-set prediction coefficients
9956fca56fbSSascha Wildner>>0x04		byte		0x03		\b, standard ADX
9966fca56fbSSascha Wildner>>0x04		byte		0x04		\b, exponential scale
9976fca56fbSSascha Wildner>>0x04		byte		0x10		\b, AHX (Dreamcast)
9986fca56fbSSascha Wildner>>0x04		byte		0x11		\b, AHX
9996fca56fbSSascha Wildner>>0x08		belong		x		\b, %u Hz
10006fca56fbSSascha Wildner>>0x12		byte		0x03
10016fca56fbSSascha Wildner>>>0x02		beshort		>0x2B
10026fca56fbSSascha Wildner>>>>0x18	belong		!0		\b, looping
10036fca56fbSSascha Wildner>>0x12		byte		0x04
10046fca56fbSSascha Wildner>>>0x02		beshort		>0x37
10056fca56fbSSascha Wildner>>>>0x24	belong		!0		\b, looping
10066fca56fbSSascha Wildner>>0x13		byte&0x08	0x08		\b, encrypted
10076fca56fbSSascha Wildner
10086fca56fbSSascha Wildner# Lossless audio (.la) (http://www.lossless-audio.com/)
10096fca56fbSSascha Wildner0	string	LA
10106fca56fbSSascha Wildner>2	string	03	Lossless audio version 0.3
10116fca56fbSSascha Wildner>2	string	04	Lossless audio version 0.4
10126fca56fbSSascha Wildner
10136fca56fbSSascha Wildner# Sony PlayStation Audio (.xa)
10146fca56fbSSascha Wildner0	leshort 0x4158	Sony PlayStation Audio
10156fca56fbSSascha Wildner
10166fca56fbSSascha Wildner# Portable Sound Format
10176fca56fbSSascha Wildner# Used for audio rips for various consoles.
10186fca56fbSSascha Wildner# http://fileformats.archiveteam.org/wiki/Portable_Sound_Format
10196fca56fbSSascha Wildner# Added by David Korth <gerbilsoft@gerbilsoft.com>
10206fca56fbSSascha Wildner0	string	PSF
10216fca56fbSSascha Wildner>3	byte	0x01
10226fca56fbSSascha Wildner>3	byte	0x02
10236fca56fbSSascha Wildner>3	byte	0x11
10246fca56fbSSascha Wildner>3	byte	0x12
10256fca56fbSSascha Wildner>3	byte	0x13
10266fca56fbSSascha Wildner>3	byte	0x21
10276fca56fbSSascha Wildner>3	byte	0x22
10286fca56fbSSascha Wildner>3	byte	0x23
10296fca56fbSSascha Wildner>3	byte	0x41
10306fca56fbSSascha Wildner>>0	string	PSF	Portable Sound Format
10316fca56fbSSascha Wildner!:mime	audio/x-psf
10326fca56fbSSascha Wildner>>>3	byte	0x01	(Sony PlayStation)
10336fca56fbSSascha Wildner>>>3	byte	0x02	(Sony PlayStation 2)
10346fca56fbSSascha Wildner>>>3	byte	0x11	(Sega Saturn)
10356fca56fbSSascha Wildner>>>3	byte	0x12	(Sega Dreamcast)
10366fca56fbSSascha Wildner>>>3	byte	0x13	(Sega Mega Drive)
10376fca56fbSSascha Wildner>>>3	byte	0x21	(Nintendo 64)
10386fca56fbSSascha Wildner>>>3	byte	0x22	(Game Boy Advance)
10396fca56fbSSascha Wildner>>>3	byte	0x23	(Super NES)
10406fca56fbSSascha Wildner>>>3	byte	0x41	(Capcom QSound)
10416fca56fbSSascha Wildner
10426fca56fbSSascha Wildner# Atari 8-bit SAP audio format
10436fca56fbSSascha Wildner# http://asap.sourceforge.net/sap-format.html
10446fca56fbSSascha Wildner# Added by David Korth <gerbilsoft@gerbilsoft.com>
10456fca56fbSSascha Wildner0	string		SAP\r\n	Atari 8-bit SAP audio file
10466fca56fbSSascha Wildner!:mime	audio/x-sap
10476fca56fbSSascha Wildner!:ext	sap
10486fca56fbSSascha Wildner>5	search/1024	NAME
10496fca56fbSSascha Wildner>>&1	string		x	\b: %s
10506fca56fbSSascha Wildner>>5	search/1024	AUTHOR
10516fca56fbSSascha Wildner>>>&1	string		x	by %s
10526fca56fbSSascha Wildner
10536fca56fbSSascha Wildner# Nintendo Wii BRSTM audio format (fields)
10546fca56fbSSascha Wildner# NOTE: Assuming HEAD starts at 0x40.
10556fca56fbSSascha Wildner# FIXME: Replace 0x48 with HEAD offset plus 8.
10566fca56fbSSascha Wildner0	name	nintendo-wii-brstm-fields
10576fca56fbSSascha Wildner>(0x10.L)	string	HEAD	\b:
10586fca56fbSSascha Wildner>>(0x10.L+0x0C)	belong	x
10596fca56fbSSascha Wildner>>>(&-4.L+0x48)	belong	x
10606fca56fbSSascha Wildner>>>>&-4		byte	0	PCM, signed 8-bit,
10616fca56fbSSascha Wildner>>>>&-4		byte	1	PCM, signed 16-bit,
10626fca56fbSSascha Wildner>>>>&-4		byte	2	THP ADPCM,
10636fca56fbSSascha Wildner>>>>&-3		byte	!0	looping,
10646fca56fbSSascha Wildner>>>>&-2		byte	1	mono
10656fca56fbSSascha Wildner>>>>&-2		byte	2	stereo
10666fca56fbSSascha Wildner>>>>&-2		byte	3	3 channels
10676fca56fbSSascha Wildner>>>>&-2		byte	4	quad
10686fca56fbSSascha Wildner>>>>&-2		byte	>4	%u channels
10696fca56fbSSascha Wildner>>>>&0		beshort	!0	%u Hz
10706fca56fbSSascha Wildner
10716fca56fbSSascha Wildner# Nintendo Wii BRSTM audio format
10726fca56fbSSascha Wildner# https://wiibrew.org/wiki/BRSTM_file
10736fca56fbSSascha Wildner# Added by David Korth <gerbilsoft@gerbilsoft.com>
10746fca56fbSSascha Wildner0	string		RSTM	Nintendo Wii BRSTM audio file
10756fca56fbSSascha Wildner!:mime	audio/x-brstm
10766fca56fbSSascha Wildner!:ext	brstm
10776fca56fbSSascha Wildner# Wii is big-endian, so default to BE.
10786fca56fbSSascha Wildner>4	beshort		0xFEFF
10796fca56fbSSascha Wildner>>0	use		nintendo-wii-brstm-fields
10806fca56fbSSascha Wildner>4	leshort		0xFEFF
10816fca56fbSSascha Wildner>>0	use		\^nintendo-wii-brstm-fields
10826fca56fbSSascha Wildner
10836fca56fbSSascha Wildner# Nintendo 3DS BCSTM audio format (fields)
10846fca56fbSSascha Wildner0	name	nintendo-3ds-bcstm-fields
10856fca56fbSSascha Wildner>(0x18.l)	string	INFO	\b:
10866fca56fbSSascha Wildner# INFO block: Stream information starts at 0x20 (minus 4 for the 'INFO' magic)
10876fca56fbSSascha Wildner>>&0x1C		byte	0	PCM, signed 8-bit,
10886fca56fbSSascha Wildner>>&0x1C		byte	1	PCM, signed 16-bit,
10896fca56fbSSascha Wildner>>&0x1C		byte	2	DSP ADPCM,
10906fca56fbSSascha Wildner>>&0x1C		byte	3	IMA ADPCM,
10916fca56fbSSascha Wildner>>&0x1D		byte	!0	looping,
10926fca56fbSSascha Wildner>>&0x1E		byte	1	mono
10936fca56fbSSascha Wildner>>&0x1E		byte	2	stereo
10946fca56fbSSascha Wildner>>&0x1E		byte	3	3 channels
10956fca56fbSSascha Wildner>>&0x1E		byte	4	quad
10966fca56fbSSascha Wildner>>&0x1E		byte	>4	%u channels
10976fca56fbSSascha Wildner>>&0x20		lelong	!0	%u Hz
10986fca56fbSSascha Wildner
10996fca56fbSSascha Wildner# Nintendo 3DS BCSTM audio format
11006fca56fbSSascha Wildner# https://www.3dbrew.org/wiki/BCSTM
11016fca56fbSSascha Wildner# Added by David Korth <gerbilsoft@gerbilsoft.com>
11026fca56fbSSascha Wildner0	string		CSTM	Nintendo 3DS BCSTM audio file
11036fca56fbSSascha Wildner!:mime	audio/x-bcstm
11046fca56fbSSascha Wildner!:ext	bcstm
11056fca56fbSSascha Wildner# 3DS is little-endian, so default to LE.
11066fca56fbSSascha Wildner>4	leshort		0xFEFF
11076fca56fbSSascha Wildner>>0	use		nintendo-3ds-bcstm-fields
11086fca56fbSSascha Wildner>4	beshort		0xFEFF
11096fca56fbSSascha Wildner>>0	use		\^nintendo-3ds-bcstm-fields
11106fca56fbSSascha Wildner
11116fca56fbSSascha Wildner# Nintendo Wii U BFSTM audio format
11126fca56fbSSascha Wildner# http://mk8.tockdom.com/wiki/BFSTM_(File_Format)
11136fca56fbSSascha Wildner# NOTE: This format is very similar to BCSTM.
11146fca56fbSSascha Wildner# Added by David Korth <gerbilsoft@gerbilsoft.com>
11156fca56fbSSascha Wildner0	string		FSTM	Nintendo Wii U BFSTM audio file
11166fca56fbSSascha Wildner!:mime	audio/x-bfstm
11176fca56fbSSascha Wildner!:ext	bfstm
11186fca56fbSSascha Wildner# BFSTM is used on both Wii U (BE) and Switch (LE),
11196fca56fbSSascha Wildner# so default to LE.
11206fca56fbSSascha Wildner>4	leshort		0xFEFF
11216fca56fbSSascha Wildner>>0	use		nintendo-3ds-bcstm-fields
11226fca56fbSSascha Wildner>4	beshort		0xFEFF
11236fca56fbSSascha Wildner>>0	use		\^nintendo-3ds-bcstm-fields
11246fca56fbSSascha Wildner
11256fca56fbSSascha Wildner# Nintendo 3DS BCSTM audio format (fields)
11266fca56fbSSascha Wildner0	name	nintendo-3ds-bcwav-fields
11276fca56fbSSascha Wildner>(0x18.l)	string	INFO	\b:
11286fca56fbSSascha Wildner# INFO block (minus 4 for INFO magic)
11296fca56fbSSascha Wildner>>&0x4		byte	0	PCM, signed 8-bit,
11306fca56fbSSascha Wildner>>&0x4		byte	1	PCM, signed 16-bit,
11316fca56fbSSascha Wildner>>&0x4		byte	2	DSP ADPCM,
11326fca56fbSSascha Wildner>>&0x4		byte	3	IMA ADPCM,
11336fca56fbSSascha Wildner>>&0x5		byte	!0	looping,
11346fca56fbSSascha Wildner>>&0x8		lelong	x	stereo
11356fca56fbSSascha Wildner>>&0x8		lelong	!0	%u Hz
11366fca56fbSSascha Wildner
11376fca56fbSSascha Wildner# Nintendo 3DS BCWAV audio format
11386fca56fbSSascha Wildner# https://www.3dbrew.org/wiki/BCWAV
11396fca56fbSSascha Wildner# Added by David Korth <gerbilsoft@gerbilsoft.com>
11406fca56fbSSascha Wildner0	string		CWAV	Nintendo 3DS BCWAV audio file
11416fca56fbSSascha Wildner!:mime	audio/x-bcwav
11426fca56fbSSascha Wildner!:ext	bcwav
11436fca56fbSSascha Wildner# 3DS is little-endian, so default to LE.
11446fca56fbSSascha Wildner>4	leshort		0xFEFF
11456fca56fbSSascha Wildner>>0	use		nintendo-3ds-bcwav-fields
11466fca56fbSSascha Wildner>4	beshort		0xFEFF
11476fca56fbSSascha Wildner>>0	use		\^nintendo-3ds-bcwav-fields
1148*3b9cdfa3SAntonio Huete Jimenez
1149*3b9cdfa3SAntonio Huete Jimenez# Philips DSDIFF audio format (Direct Stream Digital Interchange File Format)
1150*3b9cdfa3SAntonio Huete Jimenez# Used for DSD audio recordings and Super Audio CD (SACD) mastering annotations
1151*3b9cdfa3SAntonio Huete Jimenez# https://dsd-guide.com/sites/default/files/white-papers/DSDIFF_1.5_Spec.pdf
1152*3b9cdfa3SAntonio Huete Jimenez# From: Toni Ruottu <toni.ruottu@iki.fi>
1153*3b9cdfa3SAntonio Huete Jimenez0		string		FRM8
1154*3b9cdfa3SAntonio Huete Jimenez12		string		DSD\x20		DSDIFF audio bitstream data
1155*3b9cdfa3SAntonio Huete Jimenez!:mime		audio/x-dff
1156*3b9cdfa3SAntonio Huete Jimenez!:ext		dff
1157*3b9cdfa3SAntonio Huete Jimenez
1158*3b9cdfa3SAntonio Huete Jimenez# format version chunk
1159*3b9cdfa3SAntonio Huete Jimenez>&0		string		FVER
1160*3b9cdfa3SAntonio Huete Jimenez# version 1
1161*3b9cdfa3SAntonio Huete Jimenez>>&8		byte		1
1162*3b9cdfa3SAntonio Huete Jimenez
1163*3b9cdfa3SAntonio Huete Jimenez# v1 / sampling resolution ( 1 bit PDM only )
1164*3b9cdfa3SAntonio Huete Jimenez>>>&0		string		x		\b, 1 bit
1165*3b9cdfa3SAntonio Huete Jimenez
1166*3b9cdfa3SAntonio Huete Jimenez# v1 / sound property chunk
1167*3b9cdfa3SAntonio Huete Jimenez>>>&0		search/0xff	PROP
1168*3b9cdfa3SAntonio Huete Jimenez>>>>&8		string		SND
1169*3b9cdfa3SAntonio Huete Jimenez
1170*3b9cdfa3SAntonio Huete Jimenez# v1 / sound property chunk / channel configuration chunk
1171*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		search/0xff	CHNL
1172*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubeshort	1							\b, mono
1173*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubeshort	2
1174*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		SLFTSRGT						\b, stereo
1175*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	default		x							\b, 2 channels
1176*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubeshort	3
1177*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		SLFTSRGTLFE\x20						\b, 2.1 stereo
1178*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		SLFTSRGTC\x20\x20\x20					\b, 3.0 stereo
1179*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	default		x							\b, 3 channels
1180*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubeshort	4
1181*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		MLFTMRGTLS\x20\x20RS\x20\x20				\b, 4.0 surround
1182*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		SLFTSRGTC\x20\x20\x20LFE\x20				\b, 3.1 stereo
1183*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	default		x							\b, 4 channels
1184*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubeshort	5
1185*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		MLFTMRGTC\x20\x20\x20LS\x20\x20RS\x20\x20		\b, 5.0 surround
1186*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		MLFTMRGTLFE\x20LS\x20\x20RS\x20\x20			\b, 4.1 surround
1187*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	default		x							\b, 5 channels
1188*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubeshort	6
1189*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	string		MLFTMRGTC\x20\x20\x20LFE\x20LS\x20\x20RS\x20\x20	\b, 5.1 surround
1190*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&0	default		x							\b, 6 channels
1191*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubeshort	>6							\b, %u channels
1192*3b9cdfa3SAntonio Huete Jimenez
1193*3b9cdfa3SAntonio Huete Jimenez# v1 / sound property chunk / sample rate chunk
1194*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		search/0xff	FS\x20\x20
1195*3b9cdfa3SAntonio Huete Jimenez>>>>>>&0	string		x		\b,
1196*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	ubelong%44100	0
1197*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&-4	ubelong/44100	x		"DSD %u"
1198*3b9cdfa3SAntonio Huete Jimenez>>>>>>>&-4	ubelong		x		%u Hz
1199*3b9cdfa3SAntonio Huete Jimenez
1200*3b9cdfa3SAntonio Huete Jimenez# v1 / sound property chunk / compression type chunk
1201*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		search/0xff	CMPR
1202*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	string		DSD\x20		\b, no compression
1203*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	string		DST\x20		\b, DST compression
1204*3b9cdfa3SAntonio Huete Jimenez>>>>>>&8	default		x		\b, unknown compression
1205*3b9cdfa3SAntonio Huete Jimenez
1206*3b9cdfa3SAntonio Huete Jimenez# v1 / quest for metadata
1207*3b9cdfa3SAntonio Huete Jimenez>>>&0		string		x
1208*3b9cdfa3SAntonio Huete Jimenez
1209*3b9cdfa3SAntonio Huete Jimenez# v1 / quest for metadata / edited master information chunk
1210*3b9cdfa3SAntonio Huete Jimenez>>>>&0		search		DIIN
1211*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		ubequad		>0		\b, "edited master" metadata
1212*3b9cdfa3SAntonio Huete Jimenez
1213*3b9cdfa3SAntonio Huete Jimenez# v1 / quest for metadata / ID3 chunk ( defacto standard )
1214*3b9cdfa3SAntonio Huete Jimenez>>>>&0		search		ID3\x20
1215*3b9cdfa3SAntonio Huete Jimenez>>>>>&8		string		ID3		\b, ID3 version 2
1216*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		byte		x		\b.%u
1217*3b9cdfa3SAntonio Huete Jimenez>>>>>&1		byte		x		\b.%u
1218*3b9cdfa3SAntonio Huete Jimenez
1219*3b9cdfa3SAntonio Huete Jimenez# v1 / quest for metadata / failure ( possibly due to -P bytes=... being too low )
1220*3b9cdfa3SAntonio Huete Jimenez>>>>&0		default		x		\b, ID3 missing (or unreachable)
1221*3b9cdfa3SAntonio Huete Jimenez
1222*3b9cdfa3SAntonio Huete Jimenez# version > 1 or 0
1223*3b9cdfa3SAntonio Huete Jimenez>>&0		default		x		\b, unknown version
1224*3b9cdfa3SAntonio Huete Jimenez
1225*3b9cdfa3SAntonio Huete Jimenez# Sony DSF audio format (Direct Stream Digital Stream File)
1226*3b9cdfa3SAntonio Huete Jimenez# Used for lossless digital storage of songs produced as DSD audio
1227*3b9cdfa3SAntonio Huete Jimenez# Portable analog of a track stored on a Super Audio CD (SACD)
1228*3b9cdfa3SAntonio Huete Jimenez# https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf
1229*3b9cdfa3SAntonio Huete Jimenez# From: Toni Ruottu <toni.ruottu@iki.fi>
1230*3b9cdfa3SAntonio Huete Jimenez0		string		DSD\x20		DSF audio bitstream data
1231*3b9cdfa3SAntonio Huete Jimenez!:mime		audio/x-dsf
1232*3b9cdfa3SAntonio Huete Jimenez!:ext		dsf
1233*3b9cdfa3SAntonio Huete Jimenez
1234*3b9cdfa3SAntonio Huete Jimenez# format chunk
1235*3b9cdfa3SAntonio Huete Jimenez>28		string		fmt\x20
1236*3b9cdfa3SAntonio Huete Jimenez# version 1
1237*3b9cdfa3SAntonio Huete Jimenez>>&8		ulelong		1
1238*3b9cdfa3SAntonio Huete Jimenez
1239*3b9cdfa3SAntonio Huete Jimenez# v1 / sampling resolution ( 1 bit PDM only )
1240*3b9cdfa3SAntonio Huete Jimenez# NOTE: the spec incorrectly uses "bits per sample" instead of "bits per byte"
1241*3b9cdfa3SAntonio Huete Jimenez>>>&0		string		x		\b, 1 bit
1242*3b9cdfa3SAntonio Huete Jimenez
1243*3b9cdfa3SAntonio Huete Jimenez# v1 / channel configuration
1244*3b9cdfa3SAntonio Huete Jimenez>>>>&4		ulelong		1		\b, mono
1245*3b9cdfa3SAntonio Huete Jimenez>>>>&4		ulelong		2		\b, stereo
1246*3b9cdfa3SAntonio Huete Jimenez>>>>&4		ulelong		3		\b, 3.0 stereo
1247*3b9cdfa3SAntonio Huete Jimenez>>>>&4		ulelong		4		\b, 4.0 surround
1248*3b9cdfa3SAntonio Huete Jimenez>>>>&4		ulelong		5		\b, 3.1 stereo
1249*3b9cdfa3SAntonio Huete Jimenez>>>>&4		ulelong		6		\b, 5.0 surround
1250*3b9cdfa3SAntonio Huete Jimenez>>>>&4		ulelong		7		\b, 5.1 surround
1251*3b9cdfa3SAntonio Huete Jimenez>>>>&0		default		x
1252*3b9cdfa3SAntonio Huete Jimenez>>>>>&4		ulelong		x		\b, %u channels
1253*3b9cdfa3SAntonio Huete Jimenez
1254*3b9cdfa3SAntonio Huete Jimenez# v1 / sample rate chunk
1255*3b9cdfa3SAntonio Huete Jimenez>>>>&0		string		x		\b,
1256*3b9cdfa3SAntonio Huete Jimenez>>>>&12		ulelong%44100	0
1257*3b9cdfa3SAntonio Huete Jimenez>>>>>&-4	ulelong/44100	x		"DSD %u"
1258*3b9cdfa3SAntonio Huete Jimenez>>>>&12		ulelong		x		%u Hz
1259*3b9cdfa3SAntonio Huete Jimenez
1260*3b9cdfa3SAntonio Huete Jimenez# v1 / compression
1261*3b9cdfa3SAntonio Huete Jimenez>>>>&0		string		x
1262*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		ulelong		0		\b, no compression
1263*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		default		x		\b, unknown compression
1264*3b9cdfa3SAntonio Huete Jimenez
1265*3b9cdfa3SAntonio Huete Jimenez# v1 / embedded ID3v2 metadata
1266*3b9cdfa3SAntonio Huete Jimenez>>>0		string		x 		\b, ID3
1267*3b9cdfa3SAntonio Huete Jimenez>>>>20		ulequad		!0
1268*3b9cdfa3SAntonio Huete Jimenez>>>>>(20.q)	string		ID3		version 2
1269*3b9cdfa3SAntonio Huete Jimenez>>>>>>&0	byte		x		\b.%u
1270*3b9cdfa3SAntonio Huete Jimenez>>>>>>&1	byte		x		\b.%u
1271*3b9cdfa3SAntonio Huete Jimenez# unable to verify ID3 ( possibly due to -P bytes=... being too low )
1272*3b9cdfa3SAntonio Huete Jimenez>>>>>&0		default		x		unreachable
1273*3b9cdfa3SAntonio Huete Jimenez>>>>&0		default		x		missing
1274*3b9cdfa3SAntonio Huete Jimenez
1275*3b9cdfa3SAntonio Huete Jimenez# version > 1 or 0
1276*3b9cdfa3SAntonio Huete Jimenez>>&0		default		x		\b, unknown version
1277