summaryrefslogtreecommitdiff
path: root/usr.bin/file/magdir/audio
blob: 64f9163ea821e50a7ad2f4ac6b2ac1e50e9658fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
#	$OpenBSD: audio,v 1.8 2005/09/06 21:05:55 fgsch Exp $

#------------------------------------------------------------------------------
# audio:  file(1) magic for sound formats (see also "iff")
#
# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
# and others
#

# Sun/NeXT audio data
0	string		.snd		Sun/NeXT audio data:
>12	belong		1		8-bit ISDN u-law,
>12	belong		2		8-bit linear PCM [REF-PCM],
>12	belong		3		16-bit linear PCM,
>12	belong		4		24-bit linear PCM,
>12	belong		5		32-bit linear PCM,
>12	belong		6		32-bit IEEE floating point,
>12	belong		7		64-bit IEEE floating point,
>12	belong		23		8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding),
>12	belong		24		compressed (8-bit G.722 ADPCM)
>12	belong		25		compressed (3-bit G.723 ADPCM),
>12	belong		26		compressed (5-bit G.723 ADPCM),
>12	belong		27		8-bit A-law,
>20	belong		1		mono,
>20	belong		2		stereo,
>20	belong		4		quad,
>16	belong		>0		%d Hz

# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
# that uses little-endian encoding and has a different magic number
0	lelong		0x0064732E	DEC audio data:
>12	lelong		1		8-bit ISDN u-law,
>12	lelong		2		8-bit linear PCM [REF-PCM],
>12	lelong		3		16-bit linear PCM,
>12	lelong		4		24-bit linear PCM,
>12	lelong		5		32-bit linear PCM,
>12	lelong		6		32-bit IEEE floating point,
>12	lelong		7		64-bit IEEE floating point,
>12	lelong		23		8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding),
>20	lelong		1		mono,
>20	lelong		2		stereo,
>20	lelong		4		quad,
>16	lelong		>0		%d Hz

# Creative Labs AUDIO stuff
0	string	MThd			Standard MIDI data
>9 	byte	>0			(format %d)
>11	byte	>1			using %d channels
0	string	CTMF			Creative Music (CMF) data
0	string	SBI			SoundBlaster instrument data
0	string	Creative\ Voice\ File	Creative Labs voice data
# is this next line right?  it came this way...
>19	byte	0x1A
>23	byte	>0			- version %d
>22	byte	>0			\b.%d

# first entry is also the string "NTRK"
0	belong		0x4e54524b	MultiTrack sound data
>4	belong		x		- version %ld

# Microsoft WAVE format (*.wav)
0	string		RIFF		Microsoft RIFF
>8	string		WAVE		\b, WAVE audio data
>>34	leshort		>0		\b, %d bit
>>22	leshort		=1		\b, mono
>>22	leshort		=2		\b, stereo
>>22	leshort		>2		\b, %d channels
>>24	lelong		>0		%d Hz
# AVI == Audio Video Interleave
>8	string		AVI\		\b, AVI data

# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
0	string		EMOD		Extended MOD sound data,
>4	byte&0xf0	x		version %d
>4	byte&0x0f	x		\b.%d,
>45	byte		x		%d instruments
>83	byte		0		(module)
>83	byte		1		(song)

# Real Audio (Magic .ra\0375)
0	belong		0x2e7261fd	realaudio sound file

# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
# Oct 31, 1995
#0	string		MTM		MultiTracker Module sound file
#0	string		if		Composer 669 Module sound data
#0	string		FAR		Module sound data
#0	string		MAS_U		ULT(imate) Module sound data
#0x2c	string		SCRM		ScreamTracker III Module sound data
#0	string		Extended Module	Extended Module sound data

#------------------------
# MPEG:  file(1) magic for MPEG audio.
#
# From <ckane@best.com>
# Show MPEG level, layer, kbit/s, hz, stereo/mono for an MPG audio file.
# This section is lengthy because the kbit/s rate depends on the
# level and layer, and file(1) doesn't allow math on the values.
#

####### MPEG begins with three hex 'f' nibbles.
0	beshort&0xfff0	0xfff0		MPEG
####### Level 2
>1	byte&0x08	0x00		2.0
>>1	byte&0x06	0x00		Layer Unknown,
####### Level 2, Layers I, II, and III
>>1	byte&0x06	0x02		Layer III,
>>>2	byte&0xf0	0x00		0 kbit/s,
>>>2	byte&0xf0	0x10		8 kbit/s,
>>>2	byte&0xf0	0x20		16 kbit/s,
>>>2	byte&0xf0	0x30		24 kbit/s,
>>>2	byte&0xf0	0x40		32 kbit/s,
>>>2	byte&0xf0	0x50		40 kbit/s,
>>>2	byte&0xf0	0x60		48 kbit/s,
>>>2	byte&0xf0	0x70		56 kbit/s,
>>>2	byte&0xf0	0x80		64 kbit/s,
>>>2	byte&0xf0	0x90		80 kbit/s,
>>>2	byte&0xf0	0xa0		96 kbit/s,
>>>2	byte&0xf0	0xb0		112 kbit/s,
>>>2	byte&0xf0	0xc0		128 kbit/s,
>>>2	byte&0xf0	0xd0		144 kbit/s,
>>>2	byte&0xf0	0xe0		160 kbit/s,
>>>2	byte&0xf0	0xf0		? kbit/s,
>>1	byte&0x06	0x04		Layer II,
>>>2	byte&0xf0	0x00		0 kbit/s,
>>>2	byte&0xf0	0x10		8 kbit/s,
>>>2	byte&0xf0	0x20		16 kbit/s,
>>>2	byte&0xf0	0x30		24 kbit/s,
>>>2	byte&0xf0	0x40		32 kbit/s,
>>>2	byte&0xf0	0x50		40 kbit/s,
>>>2	byte&0xf0	0x60		48 kbit/s,
>>>2	byte&0xf0	0x70		56 kbit/s,
>>>2	byte&0xf0	0x80		64 kbit/s,
>>>2	byte&0xf0	0x90		80 kbit/s,
>>>2	byte&0xf0	0xa0		96 kbit/s,
>>>2	byte&0xf0	0xb0		112 kbit/s,
>>>2	byte&0xf0	0xc0		128 kbit/s,
>>>2	byte&0xf0	0xd0		144 kbit/s,
>>>2	byte&0xf0	0xe0		160 kbit/s,
>>>2	byte&0xf0	0xf0		? kbit/s,
>>1	byte&0x06	0x06		Layer I,
>>>2	byte&0xf0	0x00		0 kbit/s,
>>>2	byte&0xf0	0x10		32 kbit/s,
>>>2	byte&0xf0	0x20		48 kbit/s,
>>>2	byte&0xf0	0x30		56 kbit/s,
>>>2	byte&0xf0	0x40		64 kbit/s,
>>>2	byte&0xf0	0x50		80 kbit/s,
>>>2	byte&0xf0	0x60		96 kbit/s,
>>>2	byte&0xf0	0x70		112 kbit/s,
>>>2	byte&0xf0	0x80		128 kbit/s,
>>>2	byte&0xf0	0x90		144 kbit/s,
>>>2	byte&0xf0	0xa0		160 kbit/s,
>>>2	byte&0xf0	0xb0		176 kbit/s,
>>>2	byte&0xf0	0xc0		192 kbit/s,
>>>2	byte&0xf0	0xd0		224 kbit/s,
>>>2	byte&0xf0	0xe0		256 kbit/s,
>>>2	byte&0xf0	0xf0		? kbit/s,
####### Level 2, Hz
>>2	byte&0x0c	0x00		22050 Hz
>>2	byte&0x0c	0x04		24000 Hz
>>2	byte&0x0c	0x08		16000 Hz
>>2	byte&0x0c	0x0c		? Hz
####### Level 1 decoding
>1	byte&0x08	0x08		1.0
>>1	byte&0x06	0x00		Layer Unknown.
####### Level 1, Layers I, II, and III
>>1	byte&0x06	0x02		Layer III,
>>>2	byte&0xf0	0x00		0 kbit/s,
>>>2	byte&0xf0	0x10		32 kbit/s,
>>>2	byte&0xf0	0x20		40 kbit/s,
>>>2	byte&0xf0	0x30		48 kbit/s,
>>>2	byte&0xf0	0x40		56 kbit/s,
>>>2	byte&0xf0	0x50		64 kbit/s,
>>>2	byte&0xf0	0x60		80 kbit/s,
>>>2	byte&0xf0	0x70		96 kbit/s,
>>>2	byte&0xf0	0x80		112 kbit/s,
>>>2	byte&0xf0	0x90		128 kbit/s,
>>>2	byte&0xf0	0xa0		160 kbit/s,
>>>2	byte&0xf0	0xb0		192 kbit/s,
>>>2	byte&0xf0	0xc0		224 kbit/s,
>>>2	byte&0xf0	0xd0		256 kbit/s,
>>>2	byte&0xf0	0xe0		320 kbit/s,
>>>2	byte&0xf0	0xf0		? kbit/s,
>>1	byte&0x06	0x04		Layer II,
>>>2	byte&0xf0	0x00		0 kbit/s,
>>>2	byte&0xf0	0x10		32 kbit/s,
>>>2	byte&0xf0	0x20		48 kbit/s,
>>>2	byte&0xf0	0x30		56 kbit/s,
>>>2	byte&0xf0	0x40		64 kbit/s,
>>>2	byte&0xf0	0x50		80 kbit/s,
>>>2	byte&0xf0	0x60		96 kbit/s,
>>>2	byte&0xf0	0x70		112 kbit/s,
>>>2	byte&0xf0	0x80		128 kbit/s,
>>>2	byte&0xf0	0x90		160 kbit/s,
>>>2	byte&0xf0	0xa0		192 kbit/s,
>>>2	byte&0xf0	0xb0		224 kbit/s,
>>>2	byte&0xf0	0xc0		256 kbit/s,
>>>2	byte&0xf0	0xd0		320 kbit/s,
>>>2	byte&0xf0	0xe0		384 kbit/s,
>>>2	byte&0xf0	0xf0		? kbit/s,
>>1	byte&0x06	0x06		Layer I,
>>>2	byte&0xf0	0x00		0 kbit/s,
>>>2	byte&0xf0	0x10		32 kbit/s,
>>>2	byte&0xf0	0x20		64 kbit/s,
>>>2	byte&0xf0	0x30		96 kbit/s,
>>>2	byte&0xf0	0x40		128 kbit/s,
>>>2	byte&0xf0	0x50		160 kbit/s,
>>>2	byte&0xf0	0x60		192 kbit/s,
>>>2	byte&0xf0	0x70		224 kbit/s,
>>>2	byte&0xf0	0x80		256 kbit/s,
>>>2	byte&0xf0	0x90		288 kbit/s,
>>>2	byte&0xf0	0xa0		320 kbit/s,
>>>2	byte&0xf0	0xb0		352 kbit/s,
>>>2	byte&0xf0	0xc0		384 kbit/s,
>>>2	byte&0xf0	0xd0		416 kbit/s,
>>>2	byte&0xf0	0xe0		448 kbit/s,
>>>2	byte&0xf0	0xf0		? kbit/s,
####### Level 2, Hz
>>2	byte&0x0c	0x00		44100 Hz
>>2	byte&0x0c	0x04		48000 Hz
>>2	byte&0x0c	0x08		32000 Hz
>>2	byte&0x0c	0x0c		? Hz
####### Stereo or Mono
>3	byte&0xc0	0x00		stereo
>3	byte&0xc0	0x40		joint-stereo
>3	byte&0xc0	0x80		dual-channel
>3	byte&0xc0	0xc0		mono

# Free lossless audio codec <http://flac.sourceforge.net>
# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
0	string			fLaC		FLAC audio bitstream data
>4	byte&0x7f		>0		\b, unknown version
>4	byte&0x7f		0		\b
# some common bits/sample values
>>20	beshort&0x1f0		0x030		\b, 4 bit
>>20	beshort&0x1f0		0x050		\b, 6 bit
>>20	beshort&0x1f0		0x070		\b, 8 bit
>>20	beshort&0x1f0		0x0b0		\b, 12 bit
>>20	beshort&0x1f0		0x0f0		\b, 16 bit
>>20	beshort&0x1f0		0x170		\b, 24 bit
>>20	byte&0xe		0x0		\b, mono
>>20	byte&0xe		0x2		\b, stereo
>>20	byte&0xe		0x4		\b, 3 channels
>>20	byte&0xe		0x6		\b, 4 channels
>>20	byte&0xe		0x8		\b, 5 channels
>>20	byte&0xe		0xa		\b, 6 channels
>>20	byte&0xe		0xc		\b, 7 channels
>>20	byte&0xe		0xe		\b, 8 channels
# some common sample rates
>>17	belong&0xfffff0		0x0ac440	\b, 44.1 kHz
>>17	belong&0xfffff0		0x0bb800	\b, 48 kHz
>>17	belong&0xfffff0		0x07d000	\b, 32 kHz
>>17	belong&0xfffff0		0x056220	\b, 22.05 kHz
>>17	belong&0xfffff0		0x05dc00	\b, 24 kHz
>>17	belong&0xfffff0		0x03e800	\b, 16 kHz
>>17	belong&0xfffff0		0x02b110	\b, 11.025 kHz
>>17	belong&0xfffff0		0x02ee00	\b, 12 kHz
>>17	belong&0xfffff0		0x01f400	\b, 8 kHz
>>17	belong&0xfffff0		0x177000	\b, 96 kHz
>>17	belong&0xfffff0		0x0fa000	\b, 64 kHz
>>21	byte&0xf		>0		\b, >4G samples
>>21	byte&0xf		0		\b
>>>22	belong			>0		\b, %u samples
>>>22	belong			0		\b, length unknown