xref: /freebsd/contrib/file/magic/Magdir/audio (revision 8b238f4126d32df3e70056bc32536b7248ebffa0)
1
2#------------------------------------------------------------------------------
3# $File: audio,v 1.111 2019/05/08 18:02:45 christos Exp $
4# audio:  file(1) magic for sound formats (see also "iff")
5#
6# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
7# and others
8#
9
10# Sun/NeXT audio data
110	string		.snd		Sun/NeXT audio data:
12>12	belong		1		8-bit ISDN mu-law,
13!:mime	audio/basic
14>12	belong		2		8-bit linear PCM [REF-PCM],
15!:mime	audio/basic
16>12	belong		3		16-bit linear PCM,
17!:mime	audio/basic
18>12	belong		4		24-bit linear PCM,
19!:mime	audio/basic
20>12	belong		5		32-bit linear PCM,
21!:mime	audio/basic
22>12	belong		6		32-bit IEEE floating point,
23!:mime	audio/basic
24>12	belong		7		64-bit IEEE floating point,
25!:mime	audio/basic
26>12	belong		8		Fragmented sample data,
27>12	belong		10		DSP program,
28>12	belong		11		8-bit fixed point,
29>12	belong		12		16-bit fixed point,
30>12	belong		13		24-bit fixed point,
31>12	belong		14		32-bit fixed point,
32>12	belong		18		16-bit linear with emphasis,
33>12	belong		19		16-bit linear compressed,
34>12	belong		20		16-bit linear with emphasis and compression,
35>12	belong		21		Music kit DSP commands,
36>12	belong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
37!:mime  audio/x-adpcm
38>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
39>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
40>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
41>12	belong		27		8-bit A-law (CCITT G.711),
42>20	belong		1		mono,
43>20	belong		2		stereo,
44>20	belong		4		quad,
45>16	belong		>0		%d Hz
46
47# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
48# that uses little-endian encoding and has a different magic number
490	lelong		0x0064732E	DEC audio data:
50>12	lelong		1		8-bit ISDN mu-law,
51!:mime	audio/x-dec-basic
52>12	lelong		2		8-bit linear PCM [REF-PCM],
53!:mime	audio/x-dec-basic
54>12	lelong		3		16-bit linear PCM,
55!:mime	audio/x-dec-basic
56>12	lelong		4		24-bit linear PCM,
57!:mime	audio/x-dec-basic
58>12	lelong		5		32-bit linear PCM,
59!:mime	audio/x-dec-basic
60>12	lelong		6		32-bit IEEE floating point,
61!:mime	audio/x-dec-basic
62>12	lelong		7		64-bit IEEE floating point,
63!:mime	audio/x-dec-basic
64>12	belong		8		Fragmented sample data,
65>12	belong		10		DSP program,
66>12	belong		11		8-bit fixed point,
67>12	belong		12		16-bit fixed point,
68>12	belong		13		24-bit fixed point,
69>12	belong		14		32-bit fixed point,
70>12	belong		18		16-bit linear with emphasis,
71>12	belong		19		16-bit linear compressed,
72>12	belong		20		16-bit linear with emphasis and compression,
73>12	belong		21		Music kit DSP commands,
74>12	lelong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
75!:mime	audio/x-dec-basic
76>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
77>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
78>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
79>12	belong		27		8-bit A-law (CCITT G.711),
80>20	lelong		1		mono,
81>20	lelong		2		stereo,
82>20	lelong		4		quad,
83>16	lelong		>0		%d Hz
84
85# Creative Labs AUDIO stuff
860	string	MThd			Standard MIDI data
87!:mime	audio/midi
88>8 	beshort	x			(format %d)
89>10	beshort	x			using %d track
90>10	beshort		>1		\bs
91>12	beshort&0x7fff	x		at 1/%d
92>12	beshort&0x8000	>0		SMPTE
93
940	string	CTMF			Creative Music (CMF) data
95!:mime	audio/x-unknown
960	string	SBI			SoundBlaster instrument data
97!:mime	audio/x-unknown
980	string	Creative\ Voice\ File	Creative Labs voice data
99!:mime	audio/x-unknown
100# is this next line right?  it came this way...
101>19	byte	0x1A
102>23	byte	>0			- version %d
103>22	byte	>0			\b.%d
104
105# first entry is also the string "NTRK"
1060	belong		0x4e54524b	MultiTrack sound data
107>4	belong		x		- version %d
108
109# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
110# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
1110	string		EMOD		Extended MOD sound data,
112>4	byte&0xf0	x		version %d
113>4	byte&0x0f	x		\b.%d,
114>45	byte		x		%d instruments
115>83	byte		0		(module)
116>83	byte		1		(song)
117
118# Real Audio (Magic .ra\0375)
1190	belong		0x2e7261fd	RealAudio sound file
120!:mime	audio/x-pn-realaudio
1210	string		.RMF\0\0\0	RealMedia file
122!:mime	application/vnd.rn-realmedia
123#video/x-pn-realvideo
124#video/vnd.rn-realvideo
125#application/vnd.rn-realmedia
126#	sigh, there are many mimes for that but the above are the most common.
127
128# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
129# Oct 31, 1995
130# fixed by <doj@cubic.org> 2003-06-24
131# Too short...
132#0	string		MTM		MultiTracker Module sound file
133#0	string		if		Composer 669 Module sound data
134#0	string		JN		Composer 669 Module sound data (extended format)
1350	string		MAS_U		ULT(imate) Module sound data
136
137#0	string		FAR		Module sound data
138#>4	string		>\15		Title: "%s"
139
1400x2c	string		SCRM		ScreamTracker III Module sound data
141>0	string		>\0		Title: "%s"
142
143# Gravis UltraSound patches
144# From <ache@nagual.ru>
145
1460	string		GF1PATCH110\0ID#000002\0	GUS patch
1470	string		GF1PATCH100\0ID#000002\0	Old GUS	patch
148
149# mime types according to http://www.geocities.com/nevilo/mod.htm:
150#	audio/it	.it
151#	audio/x-zipped-it	.itz
152#	audio/xm	fasttracker modules
153#	audio/x-s3m	screamtracker modules
154#	audio/s3m	screamtracker modules
155#	audio/x-zipped-mod	mdz
156#	audio/mod	mod
157#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
158
159#
160# Taken from loader code from mikmod version 2.14
161# by Steve McIntyre (stevem@chiark.greenend.org.uk)
162# <doj@cubic.org> added title printing on 2003-06-24
1630	string	MAS_UTrack_V00
164>14	string	>/0		ultratracker V1.%.1s module sound data
165!:mime	audio/x-mod
166#audio/x-tracker-module
167
1680	string	UN05		MikMod UNI format module sound data
169
1700	string	Extended\ Module: Fasttracker II module sound data
171!:mime	audio/x-mod
172#audio/x-tracker-module
173>17	string	>\0		Title: "%s"
174
17521	string/c	=!SCREAM!	Screamtracker 2 module sound data
176!:mime	audio/x-mod
177#audio/x-screamtracker-module
17821	string	BMOD2STM	Screamtracker 2 module sound data
179!:mime	audio/x-mod
180#audio/x-screamtracker-module
1811080	string	M.K.		4-channel Protracker module sound data
182!:mime	audio/x-mod
183#audio/x-protracker-module
184>0	string	>\0		Title: "%s"
1851080	string	M!K!		4-channel Protracker module sound data
186!:mime	audio/x-mod
187#audio/x-protracker-module
188>0	string	>\0		Title: "%s"
1891080	string	FLT4		4-channel Startracker module sound data
190!:mime	audio/x-mod
191#audio/x-startracker-module
192>0	string	>\0		Title: "%s"
1931080	string	FLT8		8-channel Startracker module sound data
194!:mime	audio/x-mod
195#audio/x-startracker-module
196>0	string	>\0		Title: "%s"
1971080	string	4CHN		4-channel Fasttracker module sound data
198!:mime	audio/x-mod
199#audio/x-fasttracker-module
200>0	string	>\0		Title: "%s"
2011080	string	6CHN		6-channel Fasttracker module sound data
202!:mime	audio/x-mod
203#audio/x-fasttracker-module
204>0	string	>\0		Title: "%s"
2051080	string	8CHN		8-channel Fasttracker module sound data
206!:mime	audio/x-mod
207#audio/x-fasttracker-module
208>0	string	>\0		Title: "%s"
2091080	string	CD81		8-channel Octalyser module sound data
210!:mime	audio/x-mod
211#audio/x-octalysertracker-module
212>0	string	>\0		Title: "%s"
2131080	string	OKTA		8-channel Octalyzer module sound data
214!:mime	audio/x-mod
215#audio/x-octalysertracker-module
216>0	string	>\0		Title: "%s"
217# Not good enough.
218#1082	string	CH
219#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
2201080	string	16CN		16-channel Taketracker module sound data
221!:mime	audio/x-mod
222#audio/x-taketracker-module
223>0	string	>\0		Title: "%s"
2241080	string	32CN		32-channel Taketracker module sound data
225!:mime	audio/x-mod
226#audio/x-taketracker-module
227>0	string	>\0		Title: "%s"
228
229# TOC sound files -Trevor Johnson <trevor@jpj.net>
230#
2310       string          TOC             TOC sound file
232
233# sidfiles <pooka@iki.fi>
234# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
2350	string		SIDPLAY\ INFOFILE	Sidplay info file
236
2370	string		PSID			PlaySID v2.2+ (AMIGA) sidtune
238>4	beshort		>0			w/ header v%d,
239>14	beshort		=1			single song,
240>14	beshort		>1			%d songs,
241>16	beshort		>0			default song: %d
242>0x16	string		>\0			name: "%s"
243>0x36	string		>\0			author: "%s"
244>0x56	string		>\0			copyright: "%s"
245
2460	string		RSID			RSID sidtune PlaySID compatible
247>4	beshort		>0			w/ header v%d,
248>14	beshort		=1			single song,
249>14	beshort		>1			%d songs,
250>16	beshort		>0			default song: %d
251>0x16	string		>\0			name: "%s"
252>0x36	string		>\0			author: "%s"
253>0x56	string		>\0			copyright: "%s"
254
255# IRCAM sound files - Michael Pruett <michael@68k.org>
256# http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html
2570	belong		0x64a30100		IRCAM file (VAX little-endian)
2580	belong		0x0001a364		IRCAM file (VAX big-endian)
2590	belong		0x64a30200		IRCAM file (Sun big-endian)
2600	belong		0x0002a364		IRCAM file (Sun little-endian)
2610	belong		0x64a30300		IRCAM file (MIPS little-endian)
2620	belong		0x0003a364		IRCAM file (MIPS big-endian)
2630	belong		0x64a30400		IRCAM file (NeXT big-endian)
2640	belong		0x64a30400		IRCAM file (NeXT big-endian)
2650	belong		0x0004a364		IRCAM file (NeXT little-endian)
266
267# NIST SPHERE <mpruett@sgi.com>
2680	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
269
270# Sample Vision <mpruett@sgi.com>
2710	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
272
273# Audio Visual Research <tonigonenstein@users.sourceforge.net>
2740	string		2BIT			Audio Visual Research file,
275>12	beshort		=0			mono,
276>12	beshort		=-1			stereo,
277>14	beshort		x			%d bits
278>16	beshort		=0			unsigned,
279>16	beshort		=-1			signed,
280>22	belong&0x00ffffff	x		%d Hz,
281>18	beshort		=0			no loop,
282>18	beshort		=-1			loop,
283>21	ubyte		<128			note %d,
284>22	byte		=0			replay 5.485 KHz
285>22	byte		=1			replay 8.084 KHz
286>22	byte		=2			replay 10.971 KHz
287>22	byte		=3			replay 16.168 KHz
288>22	byte		=4			replay 21.942 KHz
289>22	byte		=5			replay 32.336 KHz
290>22	byte		=6			replay 43.885 KHz
291>22	byte		=7			replay 47.261 KHz
292
293# SGI SoundTrack <mpruett@sgi.com>
2940	string		_SGI_SoundTrack		SGI SoundTrack project file
295# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
2960	string		ID3	Audio file with ID3 version 2
297>3	byte		x	\b.%d
298>4	byte		x	\b.%d
299>>5	byte		&0x80	\b, unsynchronized frames
300>>5	byte		&0x40	\b, extended header
301>>5	byte		&0x20	\b, experimental
302>>5	byte		&0x10	\b, footer present
303>(6.I+10)	indirect	x	\b, contains:
304
305# NSF (NES sound file) magic
3060	string		NESM\x1a	NES Sound File
307>14	string		>\0		("%s" by
308>46	string		>\0		%s, copyright
309>78	string		>\0		%s),
310>5	byte		x		version %d,
311>6	byte		x		%d tracks,
312>122	byte&0x2	=1		dual PAL/NTSC
313>122	byte&0x1	=1		PAL
314>122	byte&0x1	=0		NTSC
315
316# NSFE (Extended NES sound file) magic
317# http://slickproductions.org/docs/NSF/nsfespec.txt
318# From: David Pflug <david@pflug.email>
3190	string		NSFE		Extended NES Sound File
320>48	search/0x1000	auth
321>>&0	string		>\0		("%s"
322>>>&1	string		>\0		by %s
323>>>>&1	string		>\0		\b, copyright %s
324>>>>>&1	string		>\0		\b, ripped by %s
325>20	byte		x		\b), %d tracks,
326>18	byte&0x2	=1		dual PAL/NTSC
327>18     byte&0x2	=0
328>>18	byte&0x1	=1		PAL
329>>18	byte&0x1	=0		NTSC
330
331# Type: SNES SPC700 sound files
332# From: Josh Triplett <josh@freedesktop.org>
3330	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
334>&0	string	0.30					\b, version %s
335>>0x23	byte	0x1B					\b, without ID666 tag
336>>0x23	byte	0x1A					\b, with ID666 tag
337>>>0x2E	string	>\0					\b, song "%.32s"
338>>>0x4E	string	>\0					\b, game "%.32s"
339
340# Impulse tracker module (audio/x-it)
3410	string		IMPM		Impulse Tracker module sound data -
342!:mime	audio/x-mod
343>4	string		>\0		"%s"
344>40	leshort		!0		compatible w/ITv%x
345>42	leshort		!0		created w/ITv%x
346
347# Imago Orpheus module (audio/x-imf)
34860	string		IM10		Imago Orpheus module sound data -
349>0	string		>\0		"%s"
350
351# From <collver1@attbi.com>
352# These are the /etc/magic entries to decode modules, instruments, and
353# samples in Impulse Tracker's native format.
354
3550	string		IMPS		Impulse Tracker Sample
356>18	byte		&2		16 bit
357>18	byte		^2		8 bit
358>18	byte		&4		stereo
359>18	byte		^4		mono
3600	string		IMPI		Impulse Tracker Instrument
361>28	leshort		!0		ITv%x
362>30	byte		!0		%d samples
363
364# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
365# From <collver1@attbi.com>
3660	string		LM8953		Yamaha TX Wave
367>22	byte		0x49		looped
368>22	byte		0xC9		non-looped
369>23	byte		1		33kHz
370>23	byte		2		50kHz
371>23	byte		3		16kHz
372
373# scream tracker:  file(1) magic for Scream Tracker sample files
374#
375# From <collver1@attbi.com>
37676	string		SCRS		Scream Tracker Sample
377>0	byte		1		sample
378>0	byte		2		adlib melody
379>0	byte		>2		adlib drum
380>31	byte		&2		stereo
381>31	byte		^2		mono
382>31	byte		&4		16bit little endian
383>31	byte		^4		8bit
384>30	byte		0		unpacked
385>30	byte		1		packed
386
387# audio
388# From: Cory Dikkers <cdikkers@swbell.net>
3890	string		MMD0		MED music file, version 0
3900	string		MMD1		OctaMED Pro music file, version 1
3910	string		MMD3		OctaMED Soundstudio music file, version 3
3920	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
3930	string		MED		MED_Song
3940	string		SymM		Symphonie SymMOD music file
395#
396# Track Length (TRL), Tracks (TRK), Samples (SMP), Subsongs (SS)
397# http://lclevy.free.fr/exotica/ahx/ahxformat.txt
3980	string		THX		AHX version
399>3	byte		=0		1 module data
400>3	byte		=1		2 module data
401>10	byte		x		TRL: %u
402>11	byte		x		TRK: %u
403>12	byte		x		SMP: %u
404>13	byte		x		SS: %u
405#
4060	string		OKTASONG	Oktalyzer module data
407#
4080	string		DIGI\ Booster\ module\0	%s
409>20	byte		>0		%c
410>>21	byte		>0		\b%c
411>>>22	byte		>0		\b%c
412>>>>23	byte		>0		\b%c
413>610	string		>\0		\b, "%s"
414#
4150	string		DBM0	   	DIGI Booster Pro Module
416>4	byte		>0		V%X.
417>>5	byte		x		\b%02X
418>16	string		>\0		\b, "%s"
419#
4200	string		FTMN		FaceTheMusic module
421>16	string		>\0d		\b, "%s"
422
423# From: <doj@cubic.org> 2003-06-24
4240	string		AMShdr\32	Velvet Studio AMS Module v2.2
4250	string		Extreme		Extreme Tracker AMS Module v1.3
4260	string		DDMF		Xtracker DMF Module
427>4	byte		x		v%i
428>0xD	string		>\0		Title: "%s"
429>0x2B	string		>\0		Composer: "%s"
4300	string		DSM\32		Dynamic Studio Module DSM
4310	string		SONG		DigiTrekker DTM Module
4320	string		DMDL		DigiTrakker MDL Module
4330	string		PSM\32		Protracker Studio PSM Module
43444	string		PTMF		Poly Tracker PTM Module
435>0	string		>\32		Title: "%s"
4360	string		MT20		MadTracker 2.0 Module MT2
4370	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
4380	string		RTMM		RTM Module
4390x426	string		MaDoKaN96	XMS Adlib Module
440>0	string		>\0		Composer: "%s"
4410	string		AMF		AMF Module
442>4	string		>\0		Title: "%s"
4430	string		MODINFO1	Open Cubic Player Module Inforation MDZ
4440	string		Extended\40Instrument: Fast Tracker II Instrument
445
446# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
447# NOA Nancy Codec file
4480	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
449# Yamaha SMAF format
4500	string		MMMD		Yamaha SMAF file
451# Sharp Jisaku Melody format for PDC
4520	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
453>20	string		Ver01.00	Ver. 1.00
454>>32	byte		x		, %d tracks
455
456# Free lossless audio codec <http://flac.sourceforge.net>
457# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
4580	string			fLaC		FLAC audio bitstream data
459!:mime	audio/flac
460>4	byte&0x7f		>0		\b, unknown version
461>4	byte&0x7f		0		\b
462# some common bits/sample values
463>>20	beshort&0x1f0		0x030		\b, 4 bit
464>>20	beshort&0x1f0		0x050		\b, 6 bit
465>>20	beshort&0x1f0		0x070		\b, 8 bit
466>>20	beshort&0x1f0		0x0b0		\b, 12 bit
467>>20	beshort&0x1f0		0x0f0		\b, 16 bit
468>>20	beshort&0x1f0		0x170		\b, 24 bit
469>>20	byte&0xe		0x0		\b, mono
470>>20	byte&0xe		0x2		\b, stereo
471>>20	byte&0xe		0x4		\b, 3 channels
472>>20	byte&0xe		0x6		\b, 4 channels
473>>20	byte&0xe		0x8		\b, 5 channels
474>>20	byte&0xe		0xa		\b, 6 channels
475>>20	byte&0xe		0xc		\b, 7 channels
476>>20	byte&0xe		0xe		\b, 8 channels
477# sample rates derived from known oscillator frequencies;
478# 24.576 MHz (video/fs=48kHz), 22.5792 (audio/fs=44.1kHz) and
479# 16.384 (other/fs=32kHz).
480>>17	belong&0xfffff0       	0x02b110	\b, 11.025 kHz
481>>17	belong&0xfffff0       	0x03e800	\b, 16 kHz
482>>17	belong&0xfffff0       	0x056220	\b, 22.05 kHz
483>>17	belong&0xfffff0       	0x05dc00	\b, 24 kHz
484>>17	belong&0xfffff0       	0x07d000	\b, 32 kHz
485>>17	belong&0xfffff0       	0x0ac440	\b, 44.1 kHz
486>>17	belong&0xfffff0       	0x0bb800	\b, 48 kHz
487>>17	belong&0xfffff0       	0x0fa000	\b, 64 kHz
488>>17	belong&0xfffff0       	0x158880	\b, 88.2 kHz
489>>17	belong&0xfffff0       	0x177000	\b, 96 kHz
490>>17	belong&0xfffff0       	0x1f4000	\b, 128 kHz
491>>17	belong&0xfffff0       	0x2b1100	\b, 176.4 kHz
492>>17	belong&0xfffff0       	0x2ee000	\b, 192 kHz
493>>17	belong&0xfffff0       	0x3e8000	\b, 256 kHz
494>>17	belong&0xfffff0       	0x562200	\b, 352.8 kHz
495>>17	belong&0xfffff0       	0x5dc000	\b, 384 kHz
496>>21	byte&0xf		>0		\b, >4G samples
497>>21	byte&0xf		0		\b
498>>>22	belong			>0		\b, %u samples
499>>>22	belong			0		\b, length unknown
500
501# (ISDN) VBOX voice message file (Wolfram Kleff)
5020       string          VBOX            VBOX voice message data
503
504# ReBorn Song Files (.rbs)
505# David J. Singer <doc@deadvirgins.org.uk>
5068       string          RB40             RBS Song file
507>29     string          ReBorn           created by ReBorn
508>37     string          Propellerhead    created by ReBirth
509
510# Synthesizer Generator and Kimwitu share their file format
5110	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
512# Kimwitu++ uses a slightly different magic
5130	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
514
515# From "Simon Hosie
5160       string  TFMX-SONG       TFMX module sound data
517
518# Monkey's Audio compressed audio format (.ape)
519# From danny.milo@gmx.net (Danny Milosavljevic)
520# New version from Abel Cheung <abel (@) oaka.org>
5210		string		MAC\040		Monkey's Audio compressed format
522!:mime audio/x-ape
523>4		uleshort	>0x0F8B		version %d
524>>(0x08.l)	uleshort	=1000		with fast compression
525>>(0x08.l)	uleshort	=2000		with normal compression
526>>(0x08.l)	uleshort	=3000		with high compression
527>>(0x08.l)	uleshort	=4000		with extra high compression
528>>(0x08.l)	uleshort	=5000		with insane compression
529>>(0x08.l+18)	uleshort	=1		\b, mono
530>>(0x08.l+18)	uleshort	=2		\b, stereo
531>>(0x08.l+20)	ulelong		x		\b, sample rate %d
532>4		uleshort	<0x0F8C		version %d
533>>6		uleshort	=1000		with fast compression
534>>6		uleshort	=2000		with normal compression
535>>6		uleshort	=3000		with high compression
536>>6		uleshort	=4000		with extra high compression
537>>6		uleshort	=5000		with insane compression
538>>10		uleshort	=1		\b, mono
539>>10		uleshort	=2		\b, stereo
540>>12		ulelong		x		\b, sample rate %d
541
542# adlib sound files
543# From: Alex Myczko <alex@aiei.ch>
544
545# https://github.com/rerrahkr/BambooTracker
5460	string		BambooTrackerMod	BambooTracker module
547>22	byte	x	\b, version %u
548>21	byte	x	\b.%u
549>20	byte	x	\b.%u
550
5510	string		BambooTrackerIst	BambooTracker instrument
552>22	byte	x	\b, version %u
553>21	byte	x	\b.%u
554>20	byte	x	\b.%u
555
5560    	string		RAWADATA	RdosPlay RAW
557
5581068	string		RoR		AMUSIC Adlib Tracker
559
5600	string		JCH		EdLib
561
5620	string		mpu401tr	MPU-401 Trakker
563
5640	string		SAdT		Surprise! Adlib Tracker
565>4	byte		x		Version %d
566
5670	string		XAD!		eXotic ADlib
568
5690	string		ofTAZ!		eXtra Simple Music
570
5710	string		FMK!		FM Kingtracker Song
572
5730	string		DFM		DFM Song
574
5750	string		\<CUD-FM-File\>	CFF Song
576
5770	string		_A2module	A2M Song
578
579# Spectrum 128 tunes (.ay files).
580# From: Emanuel Haupt <ehaupt@critical.ch>
5810	string		ZXAYEMUL	Spectrum 128 tune
582
5830	string		\0BONK		BONK,
584#>5	byte		x		version %d
585>14	byte		x		%d channel(s),
586>15	byte		=1		lossless,
587>15	byte		=0		lossy,
588>16	byte		x		mid-side
589
590384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
591
592# format VQF (proprietary codec for sound)
593# some infos on the header file available at :
594# http://www.twinvq.org/english/technology_format.html
5950	string		TWIN97012000	VQF data
596>27	short		0		\b, Mono
597>27	short		1		\b, Stereo
598>31	short 		>0		\b, %d kbit/s
599>35	short 		>0		\b, %d kHz
600
601# Nelson A. de Oliveira (naoliv@gmail.com)
602# .eqf
6030	string	Winamp\ EQ\ library\ file	%s
604# it will match only versions like v<digit>.<digit>
605# Since I saw only eqf files with version v1.1 I think that it's OK
606>23	string	x	\b%.4s
607# .preset
6080	string	[Equalizer\ preset]	XMMS equalizer preset
609# .m3u
6100	search/1	#EXTM3U 	M3U playlist text
611# .pls
6120	search/1	[playlist]	PLS playlist text
613# licq.conf
6141	string	[licq]			LICQ configuration file
615
616# Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
6170	string		ICE!		SNDH Atari ST music
6180	string		SC68\ Music-file\ /\ (c)\ (BeN)jami	sc68 Atari ST music
619
620# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
6210       string          MP+     Musepack audio (MP+)
622!:mime	audio/x-musepack
623>3      byte            255     \b, SV pre8
624>3      byte&0xF        0x6     \b, SV 6
625>3      byte&0xF        0x8     \b, SV 8
626>3      byte&0xF        0x7     \b, SV 7
627>>3     byte&0xF0       0x0     \b.0
628>>3     byte&0xF0       0x10    \b.1
629>>3     byte&0xF0       240     \b.15
630>>10    byte&0xF0       0x0     \b, no profile
631>>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
632>>10    byte&0xF0       0x50    \b, quality 0
633>>10    byte&0xF0       0x60    \b, quality 1
634>>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
635>>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
636>>10    byte&0xF0       0x90    \b, quality 4 (Radio)
637>>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
638>>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
639>>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
640>>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
641>>10    byte&0xF0       0xE0    \b, quality 9
642>>10    byte&0xF0       0xF0    \b, quality 10
643>>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
644>>27    byte            102     \b, Beta 1.02
645>>27    byte            104     \b, Beta 1.04
646>>27    byte            105     \b, Alpha 1.05
647>>27    byte            106     \b, Beta 1.06
648>>27    byte            110     \b, Release 1.1
649>>27    byte            111     \b, Alpha 1.11
650>>27    byte            112     \b, Beta 1.12
651>>27    byte            113     \b, Alpha 1.13
652>>27    byte            114     \b, Beta 1.14
653>>27    byte            115     \b, Alpha 1.15
654
6550       string          MPCK    Musepack audio (MPCK)
656!:mime	audio/x-musepack
657
658# IMY
659# from http://filext.com/detaillist.php?extdetail=IMY
660# https://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
661# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
662# http://www.wx800.com/msg/download/irda/iMelody.pdf
6630	string	BEGIN:IMELODY	iMelody Ringtone Format
664
665# From: "Mateus Caruccio" <mateus@caruccio.com>
666# guitar pro v3,4,5 from http://filext.com/file-extension/gp3
6670	string	\030FICHIER\ GUITAR\ PRO\ v3.	Guitar Pro Ver. 3 Tablature
668
669# From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
67060	string	SONG		SoundFX Module sound file
671
672# Type: Adaptive Multi-Rate Codec
673# URL:  http://filext.com/detaillist.php?extdetail=AMR
674# From: Russell Coker <russell@coker.com.au>
6750	string	#!AMR		Adaptive Multi-Rate Codec (GSM telephony)
676!:mime	audio/amr
677!:ext  amr
678
679# Type: SuperCollider 3 Synth Definition File Format
680# From: Mario Lang <mlang@debian.org>
6810	string	SCgf	SuperCollider3 Synth Definition file,
682>4	belong	x	version %d
683
684# Type: True Audio Lossless Audio
685# URL:  https://wiki.multimedia.cx/index.php?title=True_Audio
686# From: Mike Melanson <mike@multimedia.cx>
6870	string	TTA1	True Audio Lossless Audio
688
689# Type: WavPack Lossless Audio
690# URL:  https://wiki.multimedia.cx/index.php?title=WavPack
691# From: Mike Melanson <mike@multimedia.cx>
6920	string	wvpk	WavPack Lossless Audio
693
694# From Fabio R. Schmidlin <frs@pop.com.br>
695# VGM music file
6960	string		Vgm\040
697>9	ubyte		>0	VGM Video Game Music dump v
698!:mime	audio/x-vgm
699!:ext	vgm
700>>9	ubyte/16	>0	\b%d
701>>9	ubyte&0x0F	x	\b%d
702>>8	ubyte/16	x	\b.%d
703>>8	ubyte&0x0F	>0	\b%d
704#Get soundchips
705>>8	ubyte		x	\b, soundchip(s)=
706>>0x0C	ulelong		>0	SN76489,
707>>0x10	ulelong		>0	YM2413,
708>>0x2C	ulelong		>0	YM2612,
709>>0x30	ulelong		>0	YM2151,
710>>0x38	ulelong		>0	Sega PCM,
711>>0x34	ulelong		>0xC
712>>>0x40	ulelong		>0	RF5C68,
713>>0x34	ulelong		>0x10
714>>>0x44	ulelong		>0	YM2203,
715>>0x34	ulelong		>0x14
716>>>0x48	ulelong		>0	YM2608,
717>>0x34	ulelong		>0x18
718>>>0x4C	lelong		>0	YM2610,
719>>>0x4C	lelong		<0	YM2610B,
720>>0x34	ulelong		>0x1C
721>>>0x50	ulelong		>0	YM3812,
722>>0x34	ulelong		>0x20
723>>>0x54	ulelong		>0	YM3526,
724>>0x34	ulelong		>0x24
725>>>0x58	ulelong		>0	Y8950,
726>>0x34	ulelong		>0x28
727>>>0x5C	ulelong		>0	YMF262,
728>>0x34	ulelong		>0x2C
729>>>0x60	ulelong		>0	YMF278B,
730>>0x34	ulelong		>0x30
731>>>0x64	ulelong		>0	YMF271,
732>>0x34	ulelong		>0x34
733>>>0x68	ulelong		>0	YMZ280B,
734>>0x34	ulelong		>0x38
735>>>0x6C	ulelong		>0	RF5C164,
736>>0x34	ulelong		>0x3C
737>>>0x70	ulelong		>0	PWM,
738>>0x34	ulelong		>0x40
739>>>0x74	ulelong		>0
740>>>>0x78 ubyte		0x00	AY-3-8910,
741>>>>0x78 ubyte		0x01	AY-3-8912,
742>>>>0x78 ubyte		0x02	AY-3-8913,
743>>>>0x78 ubyte		0x03	AY-3-8930,
744>>>>0x78 ubyte		0x10	YM2149,
745>>>>0x78 ubyte		0x11	YM3439,
746# VGM 1.61
747>>0x34	ulelong		>0x4C
748>>>0x80	ulelong		>0	DMG,
749>>0x34	ulelong		>0x50
750>>>0x84	lelong		>0	NES APU,
751>>>0x84	lelong		<0	NES APU with FDS,
752>>0x34	ulelong		>0x54
753>>>0x88	ulelong		>0	MultiPCM,
754>>0x34	ulelong		>0x58
755>>>0x8C	ulelong		>0	uPD7759,
756>>0x34	ulelong		>0x5C
757>>>0x90	ulelong		>0	OKIM6258,
758>>0x34	ulelong		>0x64
759>>>0x98	ulelong		>0	OKIM6295,
760>>0x34	ulelong		>0x68
761>>>0x9C	ulelong		>0	K051649,
762>>0x34	ulelong		>0x6C
763>>>0xA0	ulelong		>0	K054539,
764>>0x34	ulelong		>0x70
765>>>0xA4	ulelong		>0	HuC6280,
766>>0x34	ulelong		>0x74
767>>>0xA8	ulelong		>0	C140,
768>>0x34	ulelong		>0x78
769>>>0xAC	ulelong		>0	K053260,
770>>0x34	ulelong		>0x7C
771>>>0xB0	ulelong		>0	Pokey,
772>>0x34	ulelong		>0x80
773>>>0xB4	ulelong		>0	QSound,
774# VGM 1.71
775>>0x34	ulelong		>0x84
776>>>0xB8	ulelong		>0	SCSP,
777>>0x34	ulelong		>0x8C
778>>>0xC0	ulelong		>0	WonderSwan,
779>>0x34	ulelong		>0x90
780>>>0xC4	ulelong		>0	VSU,
781>>0x34	ulelong		>0x94
782>>>0xC8	ulelong		>0	SAA1099,
783>>0x34	ulelong		>0x98
784>>>0xCC	ulelong		>0	ES5503,
785>>0x34	ulelong		>0x9C
786>>>0xD0	lelong		>0	ES5505,
787>>>0xD0	lelong		<0	ES5506,
788>>0x34	ulelong		>0xA4
789>>>0xD8	ulelong		>0	X1-010,
790>>0x34	ulelong		>0xA8
791>>>0xDC	ulelong		>0	C352,
792>>0x34	ulelong		>0xAC
793>>>0xE0	ulelong		>0	GA20,
794
795# GVOX Encore file format
796# Since this is a proprietary file format and there is no publicly available
797# format specification, this is just based on induction
798#
7990	string	SCOW
800>4	byte	0xc4	GVOX Encore music, version 5.0 or above
801>4	byte	0xc2	GVOX Encore music, version < 5.0
802
8030	string	ZBOT
804>4	byte	0xc5	GVOX Encore music, version < 5.0
805
806# Summary:	Garmin Voice Processing Module (WAVE audios)
807# From:		Joerg Jenderek
808# URL:		https://www.garmin.com/
809# Reference:	http://www.poi-factory.com/node/19580
810# NOTE:		there exist 2 other Garmin VPM formats
8110		string	AUDIMG
812# skip text files starting with string "AUDIMG"
813>13		ubyte		<13	Garmin Voice Processing Module
814!:mime	audio/x-vpm-wav-garmin
815!:ext	vpm
816# 3 bytes indicating the voice version (200,220)
817>>6		string		x	\b, version %3.3s
818# day of release (01-31)
819>>12		ubyte		x	\b, %.2d
820# month of release (01-12)
821>>13		ubyte		x	\b.%.2d
822# year of release (like 2006, 2007, 2008)
823>>14		uleshort	x	\b.%.4d
824# hour of release (0-23)
825>>11		ubyte		x	%.2d
826# minute of release (0-59)
827>>10		ubyte		x	\b:%.2d
828# second of release (0-59)
829>>9		ubyte		x	\b:%.2d
830# if you select a language like german on your garmin device
831# you can only select voice modules with corresponding language byte ID like 1
832>>18		ubyte		x	\b, language ID %d
833# structure for phrases/sentences?
834# number of voice sample in the 1st phrase?
835#>>19		uleshort		x	\b, 0x%x samples
836#>>>21		uleshort		>0	\b, at 0x%4.4x
837#>>>(21.s)	ubequad			x	0x%llx
838# 2nd phrase?
839#>>23		uleshort		x	\b, 0x%x samples
840#>>>25		uleshort		>0	\b, at 0x%4.4x
841#>>>(25.s)	ubequad			x	0x%llx
842# pointer to 1st audio WAV sample
843>>16		uleshort	>0
844>>>(16.s)	ulelong		>0	\b, at 0x%x
845# WAV length
846# 1 space char after "bytes" to get phrase "bytes RIFF"
847>>>>(16.s+4)	ulelong		>0	%u bytes
848# look for magic
849>>>>>(&-8.l)	string		RIFF
850# determine type by ./riff
851>>>>>>&-4	indirect	x
852# 2 - ~ 131 WAV samples following same way
853#
854# Summary:	encrypted Garmin Voice Processing Module
855# From:		Joerg Jenderek
856# URL:		https://www.garmin.com/us/products/ontheroad/voicestudio
857# NOTE:		Encrypted variant used in voices like DrNightmare, Elfred, Yeti.
858#		There exist 2 other Garmin VPM formats
8590	ubequad		0xa141190fecc8ced6	Garmin Voice Processing Module (encrypted)
860!:mime	audio/x-vpm-garmin
861!:ext	vpm
862
863# From Martin Mueller Skarbiniks Pedersen
8640		string		GDM
865>0x3		byte		0xFE	General Digital Music.
866>0x4		string		>\0	title: "%s"
867>0x24		string		>\0	musician: "%s"
868>>0x44		beshort		0x0D0A
869>>>0x46		byte		0x1A
870>>>>0x47	string		GMFS	Version
871>>>>0x4B	byte		x	%d.
872>>>>0x4C	byte		x	\b%02d
873>>>>0x4D	beshort		0x000	(2GDM v
874>>>>0x4F	byte		x	\b%d.
875>>>>>0x50	byte		x	\b%d)
876
8770		string		MTM	Multitracker
878>0x3		byte/16		x	Version %d.
879>0x3		byte&0x0F	x	\b%02d
880>>0x4		string		>\0	title: "%s"
881
8820		string		HVL
883>3		byte		<2	Hively Tracker Song
884>3		byte		0	1 module data
885>3		byte		1	2 module data
886
8870		string		MO3
888>3		ubyte		<6	MOdule with MP3
889>>3		byte		0	Version	0	(With MP3 and lossless)
890>>3		byte		1	Version	1	(With ogg and lossless)
891>>3		byte		3	Version 2.2
892>>3		byte		4	(With no LAME header)
893>>3		byte		5	Version 2.4
894
8950		string		ADRVPACK	AProSys	module
896
897# ftp://ftp.modland.com/pub/documents/format_documentation/\
898# Art%20Of%20Noise%20(.aon).txt
8990		string		AON
900>4		string		"ArtOfNoise by Bastian Spiegel(twice/lego)"
901>0x2e		string		NAME	Art of Noise Tracker Song
902>3		string		<9
903>3		string		4	(4 voices)
904>3		string		8	(8 voices)
905>>0x36		string		>\0	Title: "%s"
906
9070		string		FAR
908>0x2c		byte		0x0d
909>0x2d		byte		0x0a
910>0x2e		byte		0x1a
911>>0x3		byte		0xFE	Farandole Tracker Song
912>>>0x31		byte/16		x	Version %d.
913>>>0x31		byte&0x0F	x	\b%02d
914>>>>0x4		string		>\0	\b, title: "%s"
915
916# magic for Klystrack, https://kometbomb.github.io/klystrack/
917# from Alex Myczko <alex@aiei.ch>
9180	string	cyd!song	Klystrack song
919>8	byte	>0		\b, version %u
920>8	byte	>26
921#>>9	byte	x		\b, channels %u
922#>>10	leshort	x		\b, time signature %u
923#>>12	leshort	x		\b, sequence step %u
924#>>14	byte	x		\b, instruments %u
925#>>15	leshort	x		\b, patterns %u
926#>>17	leshort	x		\b, sequences %u
927#>>19	leshort	x		\b, length %u
928#>>21	leshort	x		\b, loop point %u
929#>>23	byte	x		\b, master volume %u
930#>>24	byte	x		\b, song speed %u
931#>>25	byte	x		\b, song speed2 %u
932#>>26	byte	x		\b, song rate %u
933#>>27	belong	x		\b, flags %#x
934#>>31	byte	x		\b, multiplex period %u
935#>>32	byte	x		\b, pitch inaccuracy %u
936>>149	pstring	x		\b, title %s
937
9380	string	cyd!inst	Klystrack instrument
939
940# magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor
941# see Specifications/WOPL-and-OPLI-Specification.txt
942
9430	string	WOPL3-INST\0	WOPL instrument
944>11	leshort	x	\b, version %u
9450	string	WOPL3-BANK\0	WOPL instrument bank
946>11	leshort	x	\b, version %u
947
948# AdLib/OPL instrument files. Format specifications on
949#  http://www.shikadi.net/moddingwiki
9500	string	Junglevision\ Patch\ File	Junglevision instrument data
9510	string	#OPL_II#	DMX OP2 instrument data
9520	string	IBK\x1a		IBK instrument data
9530	string	2OP\x1a		IBK instrument data, 2 operators
9540	string	4OP\x1a		IBK instrument data, 4 operators
9552	string	ADLIB-		AdLib instrument data
956>0	byte	x		\b, version %u
957>1	byte	x		\b.%u
958
959# CRI ADX ADPCM audio
960# Used by various Sega games.
961# https://en.wikipedia.org/wiki/ADX_(file_format)
962# https://wiki.multimedia.cx/index.php/CRI_ADX_file
963# Added by David Korth <gerbilsoft@gerbilsoft.com>
9640x00		beshort		0x8000
965>(2.S-2)	string		(c)CRI		CRI ADX ADPCM audio
966!:ext adx
967!:mime audio/x-adx
968!:strength +50
969>>0x12		byte		x		v%u
970>>0x04		byte		0x02		\b, pre-set prediction coefficients
971>>0x04		byte		0x03		\b, standard ADX
972>>0x04		byte		0x04		\b, exponential scale
973>>0x04		byte		0x10		\b, AHX (Dreamcast)
974>>0x04		byte		0x11		\b, AHX
975>>0x08		belong		x		\b, %u Hz
976>>0x12		byte		0x03
977>>>0x02		beshort		>0x2B
978>>>>0x18	belong		!0		\b, looping
979>>0x12		byte		0x04
980>>>0x02		beshort		>0x37
981>>>>0x24	belong		!0		\b, looping
982>>0x13		byte&0x08	0x08		\b, encrypted
983
984# Lossless audio (.la) (http://www.lossless-audio.com/)
9850	string	LA
986>2	string	03	Lossless audio version 0.3
987>2	string	04	Lossless audio version 0.4
988
989# Sony PlayStation Audio (.xa)
9900	leshort 0x4158	Sony PlayStation Audio
991
992# Portable Sound Format
993# Used for audio rips for various consoles.
994# http://fileformats.archiveteam.org/wiki/Portable_Sound_Format
995# Added by David Korth <gerbilsoft@gerbilsoft.com>
9960	string	PSF	Portable Sound Format
997!:mime	audio/x-psf
998>3	byte	0x01	(Sony PlayStation)
999>3	byte	0x02	(Sony PlayStation 2)
1000>3	byte	0x11	(Sega Saturn)
1001>3	byte	0x12	(Sega Dreamcast)
1002>3	byte	0x13	(Sega Mega Drive)
1003>3	byte	0x21	(Nintendo 64)
1004>3	byte	0x22	(Game Boy Advance)
1005>3	byte	0x23	(Super NES)
1006>3	byte	0x41	(Capcom QSound)
1007
1008# Atari 8-bit SAP audio format
1009# http://asap.sourceforge.net/sap-format.html
1010# Added by David Korth <gerbilsoft@gerbilsoft.com>
10110	string		SAP\r\n	Atari 8-bit SAP audio file
1012!:mime	audio/x-sap
1013!:ext	sap
1014>5	search/1024	NAME
1015>>&1	string		x	\b: %s
1016>>5	search/1024	AUTHOR
1017>>>&1	string		x	by %s
1018
1019# Nintendo Wii BRSTM audio format (fields)
1020# NOTE: Assuming HEAD starts at 0x40.
1021# FIXME: Replace 0x48 with HEAD offset plus 8.
10220	name	nintendo-wii-brstm-fields
1023>(0x10.L)	string	HEAD	\b:
1024>>(0x10.L+0x0C)	belong	x
1025>>>(&-4.L+0x48)	belong	x
1026>>>>&-4		byte	0	PCM, signed 8-bit,
1027>>>>&-4		byte	1	PCM, signed 16-bit,
1028>>>>&-4		byte	2	THP ADPCM,
1029>>>>&-3		byte	!0	looping,
1030>>>>&-2		byte	1	mono
1031>>>>&-2		byte	2	stereo
1032>>>>&-2		byte	3	3 channels
1033>>>>&-2		byte	4	quad
1034>>>>&-2		byte	>4	%u channels
1035>>>>&0		beshort	!0	%u Hz
1036
1037# Nintendo Wii BRSTM audio format
1038# https://wiibrew.org/wiki/BRSTM_file
1039# Added by David Korth <gerbilsoft@gerbilsoft.com>
10400	string		RSTM	Nintendo Wii BRSTM audio file
1041!:mime	audio/x-brstm
1042!:ext	brstm
1043# Wii is big-endian, so default to BE.
1044>4	beshort		0xFEFF
1045>>0	use		nintendo-wii-brstm-fields
1046>4	leshort		0xFEFF
1047>>0	use		\^nintendo-wii-brstm-fields
1048
1049# Nintendo 3DS BCSTM audio format (fields)
10500	name	nintendo-3ds-bcstm-fields
1051>(0x18.l)	string	INFO	\b:
1052# INFO block: Stream information starts at 0x20 (minus 4 for the 'INFO' magic)
1053>>&0x1C		byte	0	PCM, signed 8-bit,
1054>>&0x1C		byte	1	PCM, signed 16-bit,
1055>>&0x1C		byte	2	DSP ADPCM,
1056>>&0x1C		byte	3	IMA ADPCM,
1057>>&0x1D		byte	!0	looping,
1058>>&0x1E		byte	1	mono
1059>>&0x1E		byte	2	stereo
1060>>&0x1E		byte	3	3 channels
1061>>&0x1E		byte	4	quad
1062>>&0x1E		byte	>4	%u channels
1063>>&0x20		lelong	!0	%u Hz
1064
1065# Nintendo 3DS BCSTM audio format
1066# https://www.3dbrew.org/wiki/BCSTM
1067# Added by David Korth <gerbilsoft@gerbilsoft.com>
10680	string		CSTM	Nintendo 3DS BCSTM audio file
1069!:mime	audio/x-bcstm
1070!:ext	bcstm
1071# 3DS is little-endian, so default to LE.
1072>4	leshort		0xFEFF
1073>>0	use		nintendo-3ds-bcstm-fields
1074>4	beshort		0xFEFF
1075>>0	use		\^nintendo-3ds-bcstm-fields
1076
1077# Nintendo Wii U BFSTM audio format
1078# http://mk8.tockdom.com/wiki/BFSTM_(File_Format)
1079# NOTE: This format is very similar to BCSTM.
1080# Added by David Korth <gerbilsoft@gerbilsoft.com>
10810	string		FSTM	Nintendo Wii U BFSTM audio file
1082!:mime	audio/x-bfstm
1083!:ext	bfstm
1084# BFSTM is used on both Wii U (BE) and Switch (LE),
1085# so default to LE.
1086>4	leshort		0xFEFF
1087>>0	use		nintendo-3ds-bcstm-fields
1088>4	beshort		0xFEFF
1089>>0	use		\^nintendo-3ds-bcstm-fields
1090
1091# Nintendo 3DS BCSTM audio format (fields)
10920	name	nintendo-3ds-bcwav-fields
1093>(0x18.l)	string	INFO	\b:
1094# INFO block (minus 4 for INFO magic)
1095>>&0x4		byte	0	PCM, signed 8-bit,
1096>>&0x4		byte	1	PCM, signed 16-bit,
1097>>&0x4		byte	2	DSP ADPCM,
1098>>&0x4		byte	3	IMA ADPCM,
1099>>&0x5		byte	!0	looping,
1100>>&0x8		lelong	x	stereo
1101>>&0x8		lelong	!0	%u Hz
1102
1103# Nintendo 3DS BCWAV audio format
1104# https://www.3dbrew.org/wiki/BCWAV
1105# Added by David Korth <gerbilsoft@gerbilsoft.com>
11060	string		CWAV	Nintendo 3DS BCWAV audio file
1107!:mime	audio/x-bcwav
1108!:ext	bcwav
1109# 3DS is little-endian, so default to LE.
1110>4	leshort		0xFEFF
1111>>0	use		nintendo-3ds-bcwav-fields
1112>4	beshort		0xFEFF
1113>>0	use		\^nintendo-3ds-bcwav-fields
1114