2 #------------------------------------------------------------------------------
3 # $File: audio,v 1.124 2022/08/28 08:58:20 christos Exp $
4 # audio: file(1) magic for sound formats (see also "iff")
6 # Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
11 0 string .snd Sun/NeXT audio data:
12 >12 belong 1 8-bit ISDN mu-law,
14 >12 belong 2 8-bit linear PCM [REF-PCM],
16 >12 belong 3 16-bit linear PCM,
18 >12 belong 4 24-bit linear PCM,
20 >12 belong 5 32-bit linear PCM,
22 >12 belong 6 32-bit IEEE floating point,
24 >12 belong 7 64-bit IEEE floating point,
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.),
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),
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
49 0 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),
85 # Creative Labs AUDIO stuff
86 0 string MThd Standard MIDI data
88 >8 beshort x (format %d)
89 >10 beshort x using %d track
91 >12 beshort&0x7fff x at 1/%d
92 >12 beshort&0x8000 >0 SMPTE
94 0 string CTMF Creative Music (CMF) data
95 !:mime audio/x-unknown
96 0 string SBI SoundBlaster instrument data
97 !:mime audio/x-unknown
98 0 string Creative\ Voice\ File Creative Labs voice data
99 !:mime audio/x-unknown
100 # is this next line right? it came this way...
102 >23 byte >0 - version %d
105 # first entry is also the string "NTRK"
106 0 belong 0x4e54524b MultiTrack sound data
107 >4 belong x - version %d
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]
111 0 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
118 # Real Audio (Magic .ra\0375)
119 0 belong 0x2e7261fd RealAudio sound file
120 !:mime audio/x-pn-realaudio
121 0 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.
128 # MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
130 # fixed by <doj@cubic.org> 2003-06-24
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)
135 0 string MAS_U ULT(imate) Module sound data
137 #0 string FAR Module sound data
138 #>4 string >\15 Title: "%s"
140 0x2c string SCRM ScreamTracker III Module sound data
141 >0 string >\0 Title: "%s"
144 # .stm before it got above .s3m extension
145 0x16 string \!Scream\! ScreamTracker Module sound data
146 >0 string >\0 Title: "%s"
148 # Gravis UltraSound patches
149 # From <ache@nagual.ru>
151 0 string GF1PATCH110\0ID#000002\0 GUS patch
152 0 string GF1PATCH100\0ID#000002\0 Old GUS patch
154 # mime types according to http://www.geocities.com/nevilo/mod.htm:
156 # audio/x-zipped-it .itz
157 # audio/xm fasttracker modules
158 # audio/x-s3m screamtracker modules
159 # audio/s3m screamtracker modules
160 # audio/x-zipped-mod mdz
162 # audio/x-mod All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
165 # Taken from loader code from mikmod version 2.14
166 # by Steve McIntyre (stevem@chiark.greenend.org.uk)
167 # <doj@cubic.org> added title printing on 2003-06-24
168 0 string MAS_UTrack_V00
169 >14 string >/0 ultratracker V1.%.1s module sound data
171 #audio/x-tracker-module
173 0 string UN05 MikMod UNI format module sound data
175 0 string Extended\ Module: Fasttracker II module sound data
177 #audio/x-tracker-module
178 >17 string >\0 Title: "%s"
180 21 string/c =!SCREAM! Screamtracker 2 module sound data
182 #audio/x-screamtracker-module
183 21 string BMOD2STM Screamtracker 2 module sound data
185 #audio/x-screamtracker-module
186 1080 string M.K. 4-channel Protracker module sound data
188 #audio/x-protracker-module
189 >0 string >\0 Title: "%s"
190 1080 string M!K! 4-channel Protracker module sound data
192 #audio/x-protracker-module
193 >0 string >\0 Title: "%s"
194 1080 string FLT4 4-channel Startracker module sound data
196 #audio/x-startracker-module
197 >0 string >\0 Title: "%s"
198 1080 string FLT8 8-channel Startracker module sound data
200 #audio/x-startracker-module
201 >0 string >\0 Title: "%s"
202 1080 string 4CHN 4-channel Fasttracker module sound data
204 #audio/x-fasttracker-module
205 >0 string >\0 Title: "%s"
206 1080 string 6CHN 6-channel Fasttracker module sound data
208 #audio/x-fasttracker-module
209 >0 string >\0 Title: "%s"
210 1080 string 8CHN 8-channel Fasttracker module sound data
212 #audio/x-fasttracker-module
213 >0 string >\0 Title: "%s"
214 1080 string CD81 8-channel Octalyser module sound data
216 #audio/x-octalysertracker-module
217 >0 string >\0 Title: "%s"
218 1080 string OKTA 8-channel Octalyzer module sound data
220 #audio/x-octalysertracker-module
221 >0 string >\0 Title: "%s"
224 #>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data
225 1080 string 16CN 16-channel Taketracker module sound data
227 #audio/x-taketracker-module
228 >0 string >\0 Title: "%s"
229 1080 string 32CN 32-channel Taketracker module sound data
231 #audio/x-taketracker-module
232 >0 string >\0 Title: "%s"
234 # TOC sound files -Trevor Johnson <trevor@jpj.net>
236 0 string TOC TOC sound file
238 # sidfiles <pooka@iki.fi>
239 # added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
240 0 string SIDPLAY\ INFOFILE Sidplay info file
242 0 string PSID PlaySID v2.2+ (AMIGA) sidtune
243 >4 beshort >0 w/ header v%d,
244 >14 beshort =1 single song,
245 >14 beshort >1 %d songs,
246 >16 beshort >0 default song: %d
247 >0x16 string >\0 name: "%s"
248 >0x36 string >\0 author: "%s"
249 >0x56 string >\0 copyright: "%s"
251 0 string RSID RSID sidtune PlaySID compatible
252 >4 beshort >0 w/ header v%d,
253 >14 beshort =1 single song,
254 >14 beshort >1 %d songs,
255 >16 beshort >0 default song: %d
256 >0x16 string >\0 name: "%s"
257 >0x36 string >\0 author: "%s"
258 >0x56 string >\0 copyright: "%s"
260 # IRCAM sound files - Michael Pruett <michael@68k.org>
261 # http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html
262 0 belong 0x64a30100 IRCAM file (VAX little-endian)
263 0 belong 0x0001a364 IRCAM file (VAX big-endian)
264 0 belong 0x64a30200 IRCAM file (Sun big-endian)
265 0 belong 0x0002a364 IRCAM file (Sun little-endian)
266 0 belong 0x64a30300 IRCAM file (MIPS little-endian)
267 0 belong 0x0003a364 IRCAM file (MIPS big-endian)
268 0 belong 0x64a30400 IRCAM file (NeXT big-endian)
269 0 belong 0x64a30400 IRCAM file (NeXT big-endian)
270 0 belong 0x0004a364 IRCAM file (NeXT little-endian)
272 # NIST SPHERE <mpruett@sgi.com>
273 0 string NIST_1A\n\ \ \ 1024\n NIST SPHERE file
275 # Sample Vision <mpruett@sgi.com>
276 0 string SOUND\ SAMPLE\ DATA\ Sample Vision file
278 # Audio Visual Research <tonigonenstein@users.sourceforge.net>
279 0 string 2BIT Audio Visual Research file,
281 >12 beshort =-1 stereo,
282 >14 beshort x %d bits
283 >16 beshort =0 unsigned,
284 >16 beshort =-1 signed,
285 >22 belong&0x00ffffff x %d Hz,
286 >18 beshort =0 no loop,
287 >18 beshort =-1 loop,
288 >21 ubyte <128 note %d,
289 >22 byte =0 replay 5.485 KHz
290 >22 byte =1 replay 8.084 KHz
291 >22 byte =2 replay 10.971 KHz
292 >22 byte =3 replay 16.168 KHz
293 >22 byte =4 replay 21.942 KHz
294 >22 byte =5 replay 32.336 KHz
295 >22 byte =6 replay 43.885 KHz
296 >22 byte =7 replay 47.261 KHz
298 # SGI SoundTrack <mpruett@sgi.com>
299 0 string _SGI_SoundTrack SGI SoundTrack project file
300 # ID3 version 2 tags <waschk@informatik.uni-rostock.de>
301 0 string ID3 Audio file with ID3 version 2
304 >>5 byte &0x80 \b, unsynchronized frames
305 >>5 byte &0x40 \b, extended header
306 >>5 byte &0x20 \b, experimental
307 >>5 byte &0x10 \b, footer present
308 >(6.I+10) indirect x \b, contains:
310 # NSF (NES sound file) magic
311 0 string NESM\x1a NES Sound File
312 >14 string >\0 ("%s" by
313 >46 string >\0 %s, copyright
315 >5 byte x version %d,
317 >122 byte&0x2 =1 dual PAL/NTSC
319 >122 byte&0x1 =0 NTSC
321 # NSFE (Extended NES sound file) magic
322 # http://slickproductions.org/docs/NSF/nsfespec.txt
323 # From: David Pflug <david@pflug.email>
324 0 string NSFE Extended NES Sound File
325 >48 search/0x1000 auth
326 >>&0 string >\0 ("%s"
327 >>>&1 string >\0 by %s
328 >>>>&1 string >\0 \b, copyright %s
329 >>>>>&1 string >\0 \b, ripped by %s
330 >20 byte x \b), %d tracks,
331 >18 byte&0x2 =1 dual PAL/NTSC
334 >>18 byte&0x1 =0 NTSC
336 # Type: SNES SPC700 sound files
337 # From: Josh Triplett <josh@freedesktop.org>
338 0 string SNES-SPC700\ Sound\ File\ Data\ v SNES SPC700 sound file
339 >&0 string 0.30 \b, version %s
340 >>0x23 byte 0x1B \b, without ID666 tag
341 >>0x23 byte 0x1A \b, with ID666 tag
342 >>>0x2E string >\0 \b, song "%.32s"
343 >>>0x4E string >\0 \b, game "%.32s"
345 # Impulse tracker module (audio/x-it)
346 0 string IMPM Impulse Tracker module sound data -
349 >40 leshort !0 compatible w/ITv%x
350 >42 leshort !0 created w/ITv%x
352 # Imago Orpheus module (audio/x-imf)
353 60 string IM10 Imago Orpheus module sound data -
356 # From <collver1@attbi.com>
357 # These are the /etc/magic entries to decode modules, instruments, and
358 # samples in Impulse Tracker's native format.
360 0 string IMPS Impulse Tracker Sample
365 0 string IMPI Impulse Tracker Instrument
367 >30 byte !0 %d samples
369 # Yamaha TX Wave: file(1) magic for Yamaha TX Wave audio files
370 # From <collver1@attbi.com>
371 0 string LM8953 Yamaha TX Wave
373 >22 byte 0xC9 non-looped
378 # scream tracker: file(1) magic for Scream Tracker sample files
380 # From <collver1@attbi.com>
381 76 string SCRS Scream Tracker Sample
383 >0 byte 2 adlib melody
384 >0 byte >2 adlib drum
387 >31 byte &4 16bit little endian
393 # From: Cory Dikkers <cdikkers@swbell.net>
394 0 string MMD0 MED music file, version 0
395 0 string MMD1 OctaMED Pro music file, version 1
396 0 string MMD3 OctaMED Soundstudio music file, version 3
397 0 string OctaMEDCmpr OctaMED Soundstudio compressed file
398 0 string MED MED_Song
399 0 string SymM Symphonie SymMOD music file
401 # Track Length (TRL), Tracks (TRK), Samples (SMP), Subsongs (SS)
402 # http://lclevy.free.fr/exotica/ahx/ahxformat.txt
403 0 string THX AHX version
404 >3 byte =0 1 module data
405 >3 byte =1 2 module data
410 >(4.H) string x Title: "%.128s"
412 # header is mostly AHX format
414 >3 byte <2 Hively Tracker Song
415 >3 byte =0 v1 module data
416 >3 byte =1 v2 module data
422 >8 ubyte/4 >0 CHN: 4+%u
424 >(4.H) string x Title: "%.128s"
427 0 string OKTASONG Oktalyzer module data
429 0 string DIGI\ Booster\ module\0 %s
434 >610 string >\0 \b, "%s"
436 0 string DBM0 DIGI Booster Pro Module
439 >16 string >\0 \b, "%s"
441 0 string FTMN FaceTheMusic module
442 >16 string >\0d \b, "%s"
444 # From: <doj@cubic.org> 2003-06-24
445 0 string AMShdr\32 Velvet Studio AMS Module v2.2
446 0 string Extreme Extreme Tracker AMS Module v1.3
447 0 string DDMF Xtracker DMF Module
449 >0xD string >\0 Title: "%s"
450 >0x2B string >\0 Composer: "%s"
451 0 string DSM\32 Dynamic Studio Module DSM
452 0 string SONG DigiTrekker DTM Module
453 0 string DMDL DigiTrakker MDL Module
454 0 string PSM\32 Protracker Studio PSM Module
455 44 string PTMF Poly Tracker PTM Module
456 >0 string >\32 Title: "%s"
457 0 string MT20 MadTracker 2.0 Module MT2
458 0 string RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
459 0 string RTMM RTM Module
460 0x426 string MaDoKaN96 XMS Adlib Module
461 >0 string >\0 Composer: "%s"
462 0 string AMF AMF Module
463 >4 string >\0 Title: "%s"
464 0 string MODINFO1 Open Cubic Player Module Information MDZ
465 0 string Extended\40Instrument: Fast Tracker II Instrument
467 # From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
468 # NOA Nancy Codec file
469 0 string \210NOA\015\012\032 NOA Nancy Codec Movie file
471 0 string MMMD Yamaha SMAF file
472 # Sharp Jisaku Melody format for PDC
473 0 string \001Sharp\040JisakuMelody SHARP Cell-Phone ringing Melody
474 >20 string Ver01.00 Ver. 1.00
475 >>32 byte x , %d tracks
477 # Free lossless audio codec <http://flac.sourceforge.net>
478 # From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
479 0 string fLaC FLAC audio bitstream data
481 >4 byte&0x7f >0 \b, unknown version
483 # some common bits/sample values
484 >>20 beshort&0x1f0 0x030 \b, 4 bit
485 >>20 beshort&0x1f0 0x050 \b, 6 bit
486 >>20 beshort&0x1f0 0x070 \b, 8 bit
487 >>20 beshort&0x1f0 0x0b0 \b, 12 bit
488 >>20 beshort&0x1f0 0x0f0 \b, 16 bit
489 >>20 beshort&0x1f0 0x170 \b, 24 bit
490 >>20 byte&0xe 0x0 \b, mono
491 >>20 byte&0xe 0x2 \b, stereo
492 >>20 byte&0xe 0x4 \b, 3 channels
493 >>20 byte&0xe 0x6 \b, 4 channels
494 >>20 byte&0xe 0x8 \b, 5 channels
495 >>20 byte&0xe 0xa \b, 6 channels
496 >>20 byte&0xe 0xc \b, 7 channels
497 >>20 byte&0xe 0xe \b, 8 channels
498 # sample rates derived from known oscillator frequencies;
499 # 24.576 MHz (video/fs=48kHz), 22.5792 (audio/fs=44.1kHz) and
500 # 16.384 (other/fs=32kHz).
501 >>17 belong&0xfffff0 0x02b110 \b, 11.025 kHz
502 >>17 belong&0xfffff0 0x03e800 \b, 16 kHz
503 >>17 belong&0xfffff0 0x056220 \b, 22.05 kHz
504 >>17 belong&0xfffff0 0x05dc00 \b, 24 kHz
505 >>17 belong&0xfffff0 0x07d000 \b, 32 kHz
506 >>17 belong&0xfffff0 0x0ac440 \b, 44.1 kHz
507 >>17 belong&0xfffff0 0x0bb800 \b, 48 kHz
508 >>17 belong&0xfffff0 0x0fa000 \b, 64 kHz
509 >>17 belong&0xfffff0 0x158880 \b, 88.2 kHz
510 >>17 belong&0xfffff0 0x177000 \b, 96 kHz
511 >>17 belong&0xfffff0 0x1f4000 \b, 128 kHz
512 >>17 belong&0xfffff0 0x2b1100 \b, 176.4 kHz
513 >>17 belong&0xfffff0 0x2ee000 \b, 192 kHz
514 >>17 belong&0xfffff0 0x3e8000 \b, 256 kHz
515 >>17 belong&0xfffff0 0x562200 \b, 352.8 kHz
516 >>17 belong&0xfffff0 0x5dc000 \b, 384 kHz
517 >>21 byte&0xf >0 \b, >4G samples
519 >>>22 belong >0 \b, %u samples
520 >>>22 belong 0 \b, length unknown
522 # (ISDN) VBOX voice message file (Wolfram Kleff)
523 0 string VBOX VBOX voice message data
525 # ReBorn Song Files (.rbs)
526 # David J. Singer <doc@deadvirgins.org.uk>
527 8 string RB40 RBS Song file
528 >29 string ReBorn created by ReBorn
529 >37 string Propellerhead created by ReBirth
531 # Synthesizer Generator and Kimwitu share their file format
532 0 string A#S#C#S#S#L#V#3 Synthesizer Generator or Kimwitu data
533 # Kimwitu++ uses a slightly different magic
534 0 string A#S#C#S#S#L#HUB Kimwitu++ data
537 0 string TFMX-SONG TFMX module sound data
539 # Monkey's Audio compressed audio format (.ape)
540 # From danny.milo@gmx.net (Danny Milosavljevic)
541 # New version from Abel Cheung <abel (@) oaka.org>
542 0 string MAC\040 Monkey's Audio compressed format
544 >4 uleshort >0x0F8B version %d
545 >>(0x08.l) uleshort =1000 with fast compression
546 >>(0x08.l) uleshort =2000 with normal compression
547 >>(0x08.l) uleshort =3000 with high compression
548 >>(0x08.l) uleshort =4000 with extra high compression
549 >>(0x08.l) uleshort =5000 with insane compression
550 >>(0x08.l+18) uleshort =1 \b, mono
551 >>(0x08.l+18) uleshort =2 \b, stereo
552 >>(0x08.l+20) ulelong x \b, sample rate %d
553 >4 uleshort <0x0F8C version %d
554 >>6 uleshort =1000 with fast compression
555 >>6 uleshort =2000 with normal compression
556 >>6 uleshort =3000 with high compression
557 >>6 uleshort =4000 with extra high compression
558 >>6 uleshort =5000 with insane compression
559 >>10 uleshort =1 \b, mono
560 >>10 uleshort =2 \b, stereo
561 >>12 ulelong x \b, sample rate %d
564 # From: Alex Myczko <alex@aiei.ch>
566 # https://github.com/rerrahkr/BambooTracker
567 0 string BambooTracker BambooTracker
568 >13 string Mod Module
569 >13 string Ist Instrument
571 >22 byte x \b, version %u
575 0 string CC2x CheeseCutter 2 song
577 0 string RAWADATA RdosPlay RAW
579 1068 string RoR AMUSIC Adlib Tracker
583 0 string mpu401tr MPU-401 Trakker
585 0 string SAdT Surprise! Adlib Tracker
588 0 string XAD! eXotic ADlib
590 0 string ofTAZ! eXtra Simple Music
592 0 string FMK! FM Kingtracker Song
594 0 string DFM DFM Song
596 0 string \<CUD-FM-File\> CFF Song
598 0 string _A2module A2M Song
600 # Spectrum 128 tunes (.ay files).
601 # From: Emanuel Haupt <ehaupt@critical.ch>
602 0 string ZXAYEMUL Spectrum 128 tune
604 0 string \0BONK BONK,
605 #>5 byte x version %d
606 >14 byte x %d channel(s),
607 >15 byte =1 lossless,
611 384 string LockStream LockStream Embedded file (mostly MP3 on old Nokia phones)
613 # format VQF (proprietary codec for sound)
614 # some infos on the header file available at :
615 # http://www.twinvq.org/english/technology_format.html
616 0 string TWIN97012000 VQF data
618 >27 short 1 \b, Stereo
619 >31 short >0 \b, %d kbit/s
620 >35 short >0 \b, %d kHz
622 # Nelson A. de Oliveira (naoliv@gmail.com)
624 0 string Winamp\ EQ\ library\ file %s
625 # it will match only versions like v<digit>.<digit>
626 # Since I saw only eqf files with version v1.1 I think that it's OK
629 0 string [Equalizer\ preset] XMMS equalizer preset
631 0 search/1 #EXTM3U M3U playlist text
633 0 search/1 [playlist] PLS playlist text
635 1 string [licq] LICQ configuration file
637 # Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
638 # NOTE: Most SNDH music is packed using ICE, which has
639 # magic numbers "ICE!" and "Ice!". Some SNDH music is
640 # not packed, so we check for both packed and unpacked.
641 12 string SNDH SNDH Atari ST music
642 0 belong&0xFFDFDFFF 0x49434521
643 >14 search/40 NDH SNDH Atari ST music
644 >14 search/40 TITL SNDH Atari ST music
645 0 string SC68\ Music-file\ /\ (c)\ (BeN)jami sc68 Atari ST music
647 # musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
648 0 string MP+ Musepack audio (MP+)
649 !:mime audio/x-musepack
650 >3 byte 255 \b, SV pre8
651 >3 byte&0xF 0x6 \b, SV 6
652 >3 byte&0xF 0x8 \b, SV 8
653 >3 byte&0xF 0x7 \b, SV 7
654 >>3 byte&0xF0 0x0 \b.0
655 >>3 byte&0xF0 0x10 \b.1
656 >>3 byte&0xF0 240 \b.15
657 >>10 byte&0xF0 0x0 \b, no profile
658 >>10 byte&0xF0 0x10 \b, profile 'Unstable/Experimental'
659 >>10 byte&0xF0 0x50 \b, quality 0
660 >>10 byte&0xF0 0x60 \b, quality 1
661 >>10 byte&0xF0 0x70 \b, quality 2 (Telephone)
662 >>10 byte&0xF0 0x80 \b, quality 3 (Thumb)
663 >>10 byte&0xF0 0x90 \b, quality 4 (Radio)
664 >>10 byte&0xF0 0xA0 \b, quality 5 (Standard)
665 >>10 byte&0xF0 0xB0 \b, quality 6 (Xtreme)
666 >>10 byte&0xF0 0xC0 \b, quality 7 (Insane)
667 >>10 byte&0xF0 0xD0 \b, quality 8 (BrainDead)
668 >>10 byte&0xF0 0xE0 \b, quality 9
669 >>10 byte&0xF0 0xF0 \b, quality 10
670 >>27 byte 0x0 \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
671 >>27 byte 102 \b, Beta 1.02
672 >>27 byte 104 \b, Beta 1.04
673 >>27 byte 105 \b, Alpha 1.05
674 >>27 byte 106 \b, Beta 1.06
675 >>27 byte 110 \b, Release 1.1
676 >>27 byte 111 \b, Alpha 1.11
677 >>27 byte 112 \b, Beta 1.12
678 >>27 byte 113 \b, Alpha 1.13
679 >>27 byte 114 \b, Beta 1.14
680 >>27 byte 115 \b, Alpha 1.15
682 0 string MPCK Musepack audio (MPCK)
683 !:mime audio/x-musepack
686 # from http://filext.com/detaillist.php?extdetail=IMY
687 # https://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
688 # http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
689 # http://www.wx800.com/msg/download/irda/iMelody.pdf
690 0 string BEGIN:IMELODY iMelody Ringtone Format
692 # From: "Mateus Caruccio" <mateus@caruccio.com>
693 # guitar pro v3,4,5 from http://filext.com/file-extension/gp3
694 0 string \030FICHIER\ GUITAR\ PRO\ v3. Guitar Pro Ver. 3 Tablature
696 # From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
697 60 string SONG SoundFX Module sound file
699 # Type: Adaptive Multi-Rate Codec
700 # URL: http://filext.com/detaillist.php?extdetail=AMR
701 # From: Russell Coker <russell@coker.com.au>
702 0 string #!AMR Adaptive Multi-Rate Codec (GSM telephony)
706 # Type: SuperCollider 3 Synth Definition File Format
707 # From: Mario Lang <mlang@debian.org>
708 0 string SCgf SuperCollider3 Synth Definition file,
709 >4 belong x version %d
711 # Type: True Audio Lossless Audio
712 # URL: https://wiki.multimedia.cx/index.php?title=True_Audio
713 # From: Mike Melanson <mike@multimedia.cx>
714 0 string TTA1 True Audio Lossless Audio
716 # Type: WavPack Lossless Audio
717 # URL: https://wiki.multimedia.cx/index.php?title=WavPack
718 # From: Mike Melanson <mike@multimedia.cx>
719 0 string wvpk WavPack Lossless Audio
721 # From Fabio R. Schmidlin <frs@pop.com.br>
724 >9 ubyte >0 VGM Video Game Music dump v
728 >>9 ubyte&0x0F x \b%d
730 >>8 ubyte&0x0F >0 \b%d
732 >>8 ubyte x \b, soundchip(s)=
733 >>0x0C ulelong >0 SN76489 (PSG),
734 >>0x10 ulelong >0 YM2413 (OPLL),
735 >>0x2C ulelong >0 YM2612 (OPN2),
736 >>0x30 ulelong >0 YM2151 (OPM),
737 >>0x38 ulelong >0 Sega PCM,
739 >>>0x40 ulelong >0 RF5C68 (PCM),
741 >>>0x44 ulelong >0 YM2203 (OPN),
743 >>>0x48 ulelong >0 YM2608 (OPNA),
745 >>>0x4C lelong >0 YM2610 (OPNB),
746 >>>0x4C lelong <0 YM2610B (OPNB+2FM),
748 >>>0x50 ulelong >0 YM3812 (OPL2),
750 >>>0x54 ulelong >0 YM3526 (OPL),
752 >>>0x58 ulelong >0 Y8950 (MSX-Audio),
754 >>>0x5C ulelong >0 YMF262 (OPL3),
756 >>>0x60 ulelong >0 YMF278B (OPL4),
758 >>>0x64 ulelong >0 YMF271 (OPX),
760 >>>0x68 ulelong >0 YMZ280B (PCMD8),
762 >>>0x6C ulelong >0 RF5C164 (PCM),
764 >>>0x70 ulelong >0 PWM,
767 >>>>0x78 ubyte 0x00 AY-3-8910,
768 >>>>0x78 ubyte 0x01 AY-3-8912,
769 >>>>0x78 ubyte 0x02 AY-3-8913,
770 >>>>0x78 ubyte 0x03 AY-3-8930,
771 >>>>0x78 ubyte 0x10 YM2149,
772 >>>>0x78 ubyte 0x11 YM3439,
773 >>>>0x78 ubyte 0x12 YMZ284,
774 >>>>0x78 ubyte 0x13 YMZ294,
777 >>>0x80 ulelong >0 DMG,
779 >>>0x84 lelong >0 NES APU,
780 >>>0x84 lelong <0 NES APU with FDS,
782 >>>0x88 ulelong >0 MultiPCM,
784 >>>0x8C ulelong >0 uPD7759 (ADPCM Speech),
786 >>>0x90 ulelong >0 OKIM6258 (ADPCM Speech),
788 >>>0x98 ulelong >0 OKIM6295 (ADPCM),
790 >>>0x9C ulelong >0 K051649,
792 >>>0xA0 ulelong >0 K054539,
794 >>>0xA4 ulelong >0 HuC6280,
796 >>>0xA8 ulelong >0 C140,
798 >>>0xAC ulelong >0 K053260,
800 >>>0xB0 ulelong >0 Pokey,
802 >>>0xB4 ulelong >0 QSound,
805 >>>0xB8 ulelong >0 SCSP,
807 >>>0xC0 ulelong >0 WonderSwan,
809 >>>0xC4 ulelong >0 VSU,
811 >>>0xC8 ulelong >0 SAA1099,
813 >>>0xCC ulelong >0 ES5503 (DOC),
815 >>>0xD0 lelong >0 ES5505 (OTIS),
816 >>>0xD0 lelong <0 ES5506 (OTTO),
818 >>>0xD8 ulelong >0 X1-010,
820 >>>0xDC ulelong >0 C352,
822 >>>0xE0 ulelong >0 GA20,
824 # GVOX Encore file format
825 # Since this is a proprietary file format and there is no publicly available
826 # format specification, this is just based on induction
829 >4 byte 0xc4 GVOX Encore music, version 5.0 or above
830 >4 byte 0xc2 GVOX Encore music, version < 5.0
833 >4 byte 0xc5 GVOX Encore music, version < 5.0
835 # Summary: Garmin Voice Processing Module (WAVE audios)
836 # From: Joerg Jenderek
837 # URL: https://www.garmin.com/
838 # Reference: http://www.poi-factory.com/node/19580
839 # NOTE: there exist 2 other Garmin VPM formats
841 # skip text files starting with string "AUDIMG"
842 >13 ubyte <13 Garmin Voice Processing Module
843 !:mime audio/x-vpm-wav-garmin
845 # 3 bytes indicating the voice version (200,220)
846 >>6 string x \b, version %3.3s
847 # day of release (01-31)
848 >>12 ubyte x \b, %.2d
849 # month of release (01-12)
851 # year of release (like 2006, 2007, 2008)
852 >>14 uleshort x \b.%.4d
853 # hour of release (0-23)
855 # minute of release (0-59)
857 # second of release (0-59)
859 # if you select a language like german on your garmin device
860 # you can only select voice modules with corresponding language byte ID like 1
861 >>18 ubyte x \b, language ID %d
862 # structure for phrases/sentences?
863 # number of voice sample in the 1st phrase?
864 #>>19 uleshort x \b, %#x samples
865 #>>>21 uleshort >0 \b, at %#4.4x
866 #>>>(21.s) ubequad x %#llx
868 #>>23 uleshort x \b, %#x samples
869 #>>>25 uleshort >0 \b, at %#4.4x
870 #>>>(25.s) ubequad x %#llx
871 # pointer to 1st audio WAV sample
873 >>>(16.s) ulelong >0 \b, at %#x
875 # 1 space char after "bytes" to get phrase "bytes RIFF"
876 >>>>(16.s+4) ulelong >0 %u bytes
878 >>>>>(&-8.l) string RIFF
879 # determine type by ./riff
881 # 2 - ~ 131 WAV samples following same way
883 # Summary: encrypted Garmin Voice Processing Module
884 # From: Joerg Jenderek
885 # URL: https://www.garmin.com/us/products/ontheroad/voicestudio
886 # NOTE: Encrypted variant used in voices like DrNightmare, Elfred, Yeti.
887 # There exist 2 other Garmin VPM formats
888 0 ubequad 0xa141190fecc8ced6 Garmin Voice Processing Module (encrypted)
889 !:mime audio/x-vpm-garmin
892 # From Martin Mueller Skarbiniks Pedersen
894 >0x3 byte 0xFE General Digital Music.
895 >0x4 string >\0 title: "%s"
896 >0x24 string >\0 musician: "%s"
897 >>0x44 beshort 0x0D0A
899 >>>>0x47 string GMFS Version
901 >>>>0x4C byte x \b%02d
902 >>>>0x4D beshort 0x000 (2GDM v
903 >>>>0x4F byte x \b%d.
904 >>>>>0x50 byte x \b%d)
906 0 string MTM Multitracker
907 >0x3 byte/16 x Version %d.
908 >0x3 byte&0x0F x \b%02d
909 >>0x4 string >\0 title: "%s"
912 >3 ubyte <6 MOdule with MP3
913 >>3 byte 0 Version 0 (With MP3 and lossless)
914 >>3 byte 1 Version 1 (With ogg and lossless)
915 >>3 byte 3 Version 2.2
916 >>3 byte 4 (With no LAME header)
917 >>3 byte 5 Version 2.4
919 0 string ADRVPACK AProSys module
921 # ftp://ftp.modland.com/pub/documents/format_documentation/\
922 # Art%20Of%20Noise%20(.aon).txt
924 >4 string "ArtOfNoise by Bastian Spiegel(twice/lego)"
925 >0x2e string NAME Art of Noise Tracker Song
927 >3 string 4 (4 voices)
928 >3 string 8 (8 voices)
929 >>0x36 string >\0 Title: "%s"
935 >>0x3 byte 0xFE Farandole Tracker Song
936 >>>0x31 byte/16 x Version %d.
937 >>>0x31 byte&0x0F x \b%02d
938 >>>>0x4 string >\0 \b, title: "%s"
940 # magic for Klystrack, https://kometbomb.github.io/klystrack/
941 # from Alex Myczko <alex@aiei.ch>
942 0 string cyd!song Klystrack song
943 >8 byte >0 \b, version %u
945 #>>9 byte x \b, channels %u
946 #>>10 leshort x \b, time signature %u
947 #>>12 leshort x \b, sequence step %u
948 #>>14 byte x \b, instruments %u
949 #>>15 leshort x \b, patterns %u
950 #>>17 leshort x \b, sequences %u
951 #>>19 leshort x \b, length %u
952 #>>21 leshort x \b, loop point %u
953 #>>23 byte x \b, master volume %u
954 #>>24 byte x \b, song speed %u
955 #>>25 byte x \b, song speed2 %u
956 #>>26 byte x \b, song rate %u
957 #>>27 belong x \b, flags %#x
958 #>>31 byte x \b, multiplex period %u
959 #>>32 byte x \b, pitch inaccuracy %u
960 >>149 pstring x \b, title %s
962 0 string cyd!inst Klystrack instrument
964 # magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor
965 # see Specifications/WOPL-and-OPLI-Specification.txt
967 0 string WOPL3-INST\0 WOPL instrument
968 >11 leshort x \b, version %u
969 0 string WOPL3-BANK\0 WOPL instrument bank
970 >11 leshort x \b, version %u
972 # AdLib/OPL instrument files. Format specifications on
973 # http://www.shikadi.net/moddingwiki
974 0 string Junglevision\ Patch\ File Junglevision instrument data
975 0 string #OPL_II# DMX OP2 instrument data
976 0 string IBK\x1a IBK instrument data
977 0 string 2OP\x1a IBK instrument data, 2 operators
978 0 string 4OP\x1a IBK instrument data, 4 operators
979 2 string ADLIB- AdLib instrument data
980 >0 byte x \b, version %u
983 # CRI ADX ADPCM audio
984 # Used by various Sega games.
985 # https://en.wikipedia.org/wiki/ADX_(file_format)
986 # https://wiki.multimedia.cx/index.php/CRI_ADX_file
987 # Added by David Korth <gerbilsoft@gerbilsoft.com>
989 >(2.S-2) string (c)CRI CRI ADX ADPCM audio
994 >>0x04 byte 0x02 \b, pre-set prediction coefficients
995 >>0x04 byte 0x03 \b, standard ADX
996 >>0x04 byte 0x04 \b, exponential scale
997 >>0x04 byte 0x10 \b, AHX (Dreamcast)
998 >>0x04 byte 0x11 \b, AHX
999 >>0x08 belong x \b, %u Hz
1001 >>>0x02 beshort >0x2B
1002 >>>>0x18 belong !0 \b, looping
1004 >>>0x02 beshort >0x37
1005 >>>>0x24 belong !0 \b, looping
1006 >>0x13 byte&0x08 0x08 \b, encrypted
1008 # Lossless audio (.la) (http://www.lossless-audio.com/)
1010 >2 string 03 Lossless audio version 0.3
1011 >2 string 04 Lossless audio version 0.4
1013 # Sony PlayStation Audio (.xa)
1014 0 leshort 0x4158 Sony PlayStation Audio
1016 # Portable Sound Format
1017 # Used for audio rips for various consoles.
1018 # http://fileformats.archiveteam.org/wiki/Portable_Sound_Format
1019 # Added by David Korth <gerbilsoft@gerbilsoft.com>
1030 >>0 string PSF Portable Sound Format
1032 >>>3 byte 0x01 (Sony PlayStation)
1033 >>>3 byte 0x02 (Sony PlayStation 2)
1034 >>>3 byte 0x11 (Sega Saturn)
1035 >>>3 byte 0x12 (Sega Dreamcast)
1036 >>>3 byte 0x13 (Sega Mega Drive)
1037 >>>3 byte 0x21 (Nintendo 64)
1038 >>>3 byte 0x22 (Game Boy Advance)
1039 >>>3 byte 0x23 (Super NES)
1040 >>>3 byte 0x41 (Capcom QSound)
1042 # Atari 8-bit SAP audio format
1043 # http://asap.sourceforge.net/sap-format.html
1044 # Added by David Korth <gerbilsoft@gerbilsoft.com>
1045 0 string SAP\r\n Atari 8-bit SAP audio file
1049 >>&1 string x \b: %s
1050 >>5 search/1024 AUTHOR
1051 >>>&1 string x by %s
1053 # Nintendo Wii BRSTM audio format (fields)
1054 # NOTE: Assuming HEAD starts at 0x40.
1055 # FIXME: Replace 0x48 with HEAD offset plus 8.
1056 0 name nintendo-wii-brstm-fields
1057 >(0x10.L) string HEAD \b:
1058 >>(0x10.L+0x0C) belong x
1059 >>>(&-4.L+0x48) belong x
1060 >>>>&-4 byte 0 PCM, signed 8-bit,
1061 >>>>&-4 byte 1 PCM, signed 16-bit,
1062 >>>>&-4 byte 2 THP ADPCM,
1063 >>>>&-3 byte !0 looping,
1065 >>>>&-2 byte 2 stereo
1066 >>>>&-2 byte 3 3 channels
1068 >>>>&-2 byte >4 %u channels
1069 >>>>&0 beshort !0 %u Hz
1071 # Nintendo Wii BRSTM audio format
1072 # https://wiibrew.org/wiki/BRSTM_file
1073 # Added by David Korth <gerbilsoft@gerbilsoft.com>
1074 0 string RSTM Nintendo Wii BRSTM audio file
1075 !:mime audio/x-brstm
1077 # Wii is big-endian, so default to BE.
1079 >>0 use nintendo-wii-brstm-fields
1081 >>0 use \^nintendo-wii-brstm-fields
1083 # Nintendo 3DS BCSTM audio format (fields)
1084 0 name nintendo-3ds-bcstm-fields
1085 >(0x18.l) string INFO \b:
1086 # INFO block: Stream information starts at 0x20 (minus 4 for the 'INFO' magic)
1087 >>&0x1C byte 0 PCM, signed 8-bit,
1088 >>&0x1C byte 1 PCM, signed 16-bit,
1089 >>&0x1C byte 2 DSP ADPCM,
1090 >>&0x1C byte 3 IMA ADPCM,
1091 >>&0x1D byte !0 looping,
1093 >>&0x1E byte 2 stereo
1094 >>&0x1E byte 3 3 channels
1096 >>&0x1E byte >4 %u channels
1097 >>&0x20 lelong !0 %u Hz
1099 # Nintendo 3DS BCSTM audio format
1100 # https://www.3dbrew.org/wiki/BCSTM
1101 # Added by David Korth <gerbilsoft@gerbilsoft.com>
1102 0 string CSTM Nintendo 3DS BCSTM audio file
1103 !:mime audio/x-bcstm
1105 # 3DS is little-endian, so default to LE.
1107 >>0 use nintendo-3ds-bcstm-fields
1109 >>0 use \^nintendo-3ds-bcstm-fields
1111 # Nintendo Wii U BFSTM audio format
1112 # http://mk8.tockdom.com/wiki/BFSTM_(File_Format)
1113 # NOTE: This format is very similar to BCSTM.
1114 # Added by David Korth <gerbilsoft@gerbilsoft.com>
1115 0 string FSTM Nintendo Wii U BFSTM audio file
1116 !:mime audio/x-bfstm
1118 # BFSTM is used on both Wii U (BE) and Switch (LE),
1121 >>0 use nintendo-3ds-bcstm-fields
1123 >>0 use \^nintendo-3ds-bcstm-fields
1125 # Nintendo 3DS BCSTM audio format (fields)
1126 0 name nintendo-3ds-bcwav-fields
1127 >(0x18.l) string INFO \b:
1128 # INFO block (minus 4 for INFO magic)
1129 >>&0x4 byte 0 PCM, signed 8-bit,
1130 >>&0x4 byte 1 PCM, signed 16-bit,
1131 >>&0x4 byte 2 DSP ADPCM,
1132 >>&0x4 byte 3 IMA ADPCM,
1133 >>&0x5 byte !0 looping,
1134 >>&0x8 lelong x stereo
1135 >>&0x8 lelong !0 %u Hz
1137 # Nintendo 3DS BCWAV audio format
1138 # https://www.3dbrew.org/wiki/BCWAV
1139 # Added by David Korth <gerbilsoft@gerbilsoft.com>
1140 0 string CWAV Nintendo 3DS BCWAV audio file
1141 !:mime audio/x-bcwav
1143 # 3DS is little-endian, so default to LE.
1145 >>0 use nintendo-3ds-bcwav-fields
1147 >>0 use \^nintendo-3ds-bcwav-fields
1149 # Philips DSDIFF audio format (Direct Stream Digital Interchange File Format)
1150 # Used for DSD audio recordings and Super Audio CD (SACD) mastering annotations
1151 # https://dsd-guide.com/sites/default/files/white-papers/DSDIFF_1.5_Spec.pdf
1152 # From: Toni Ruottu <toni.ruottu@iki.fi>
1154 12 string DSD\x20 DSDIFF audio bitstream data
1158 # format version chunk
1163 # v1 / sampling resolution ( 1 bit PDM only )
1164 >>>&0 string x \b, 1 bit
1166 # v1 / sound property chunk
1167 >>>&0 search/0xff PROP
1170 # v1 / sound property chunk / channel configuration chunk
1171 >>>>>&0 search/0xff CHNL
1172 >>>>>>&8 ubeshort 1 \b, mono
1174 >>>>>>>&0 string SLFTSRGT \b, stereo
1175 >>>>>>>&0 default x \b, 2 channels
1177 >>>>>>>&0 string SLFTSRGTLFE\x20 \b, 2.1 stereo
1178 >>>>>>>&0 string SLFTSRGTC\x20\x20\x20 \b, 3.0 stereo
1179 >>>>>>>&0 default x \b, 3 channels
1181 >>>>>>>&0 string MLFTMRGTLS\x20\x20RS\x20\x20 \b, 4.0 surround
1182 >>>>>>>&0 string SLFTSRGTC\x20\x20\x20LFE\x20 \b, 3.1 stereo
1183 >>>>>>>&0 default x \b, 4 channels
1185 >>>>>>>&0 string MLFTMRGTC\x20\x20\x20LS\x20\x20RS\x20\x20 \b, 5.0 surround
1186 >>>>>>>&0 string MLFTMRGTLFE\x20LS\x20\x20RS\x20\x20 \b, 4.1 surround
1187 >>>>>>>&0 default x \b, 5 channels
1189 >>>>>>>&0 string MLFTMRGTC\x20\x20\x20LFE\x20LS\x20\x20RS\x20\x20 \b, 5.1 surround
1190 >>>>>>>&0 default x \b, 6 channels
1191 >>>>>>&8 ubeshort >6 \b, %u channels
1193 # v1 / sound property chunk / sample rate chunk
1194 >>>>>&0 search/0xff FS\x20\x20
1195 >>>>>>&0 string x \b,
1196 >>>>>>&8 ubelong%44100 0
1197 >>>>>>>&-4 ubelong/44100 x "DSD %u"
1198 >>>>>>>&-4 ubelong x %u Hz
1200 # v1 / sound property chunk / compression type chunk
1201 >>>>>&0 search/0xff CMPR
1202 >>>>>>&8 string DSD\x20 \b, no compression
1203 >>>>>>&8 string DST\x20 \b, DST compression
1204 >>>>>>&8 default x \b, unknown compression
1206 # v1 / quest for metadata
1209 # v1 / quest for metadata / edited master information chunk
1211 >>>>>&0 ubequad >0 \b, "edited master" metadata
1213 # v1 / quest for metadata / ID3 chunk ( defacto standard )
1214 >>>>&0 search ID3\x20
1215 >>>>>&8 string ID3 \b, ID3 version 2
1216 >>>>>&0 byte x \b.%u
1217 >>>>>&1 byte x \b.%u
1219 # v1 / quest for metadata / failure ( possibly due to -P bytes=... being too low )
1220 >>>>&0 default x \b, ID3 missing (or unreachable)
1223 >>&0 default x \b, unknown version
1225 # Sony DSF audio format (Direct Stream Digital Stream File)
1226 # Used for lossless digital storage of songs produced as DSD audio
1227 # Portable analog of a track stored on a Super Audio CD (SACD)
1228 # https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf
1229 # From: Toni Ruottu <toni.ruottu@iki.fi>
1230 0 string DSD\x20 DSF audio bitstream data
1239 # v1 / sampling resolution ( 1 bit PDM only )
1240 # NOTE: the spec incorrectly uses "bits per sample" instead of "bits per byte"
1241 >>>&0 string x \b, 1 bit
1243 # v1 / channel configuration
1244 >>>>&4 ulelong 1 \b, mono
1245 >>>>&4 ulelong 2 \b, stereo
1246 >>>>&4 ulelong 3 \b, 3.0 stereo
1247 >>>>&4 ulelong 4 \b, 4.0 surround
1248 >>>>&4 ulelong 5 \b, 3.1 stereo
1249 >>>>&4 ulelong 6 \b, 5.0 surround
1250 >>>>&4 ulelong 7 \b, 5.1 surround
1252 >>>>>&4 ulelong x \b, %u channels
1254 # v1 / sample rate chunk
1256 >>>>&12 ulelong%44100 0
1257 >>>>>&-4 ulelong/44100 x "DSD %u"
1258 >>>>&12 ulelong x %u Hz
1262 >>>>>&0 ulelong 0 \b, no compression
1263 >>>>>&0 default x \b, unknown compression
1265 # v1 / embedded ID3v2 metadata
1266 >>>0 string x \b, ID3
1268 >>>>>(20.q) string ID3 version 2
1269 >>>>>>&0 byte x \b.%u
1270 >>>>>>&1 byte x \b.%u
1271 # unable to verify ID3 ( possibly due to -P bytes=... being too low )
1272 >>>>>&0 default x unreachable
1273 >>>>&0 default x missing
1276 >>&0 default x \b, unknown version