1 2#------------------------------------------------------------------------------ 3# $File: audio,v 1.127 2023/03/05 20:15:49 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!:mime audio/x-s3m 143 144# .stm before it got above .s3m extension 1450x16 string \!Scream\! ScreamTracker Module sound data 146>0 string >\0 Title: "%s" 147 148# Gravis UltraSound patches 149# From <ache@nagual.ru> 150 1510 string GF1PATCH110\0ID#000002\0 GUS patch 1520 string GF1PATCH100\0ID#000002\0 Old GUS patch 153 154# mime types according to http://www.geocities.com/nevilo/mod.htm: 155# audio/it .it 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 161# audio/mod mod 162# audio/x-mod All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z) 163 164# 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 1680 string MAS_UTrack_V00 169>14 string >/0 ultratracker V1.%.1s module sound data 170!:mime audio/x-mod 171#audio/x-tracker-module 172 1730 string UN05 MikMod UNI format module sound data 174 1750 string Extended\ Module: Fasttracker II module sound data 176!:mime audio/x-mod 177#audio/x-tracker-module 178>17 string >\0 Title: "%s" 179 18021 string/c =!SCREAM! Screamtracker 2 module sound data 181!:mime audio/x-mod 182#audio/x-screamtracker-module 18321 string BMOD2STM Screamtracker 2 module sound data 184!:mime audio/x-mod 185#audio/x-screamtracker-module 186 1871080 string \!PM! 4-channel Protracker module sound data 188!:mime audio/x-mod 189#audio/x-protracker-module 190>0 string >\0 Title: "%s" 191 1921080 string M.K. 4-channel Protracker module sound data 193!:mime audio/x-mod 194#audio/x-protracker-module 195>0 string >\0 Title: "%s" 196 1971080 string M!K! 4-channel Protracker module sound data 198!:mime audio/x-mod 199#audio/x-protracker-module 200>0 string >\0 Title: "%s" 201 2021080 string FLT4 4-channel Startracker module sound data 203!:mime audio/x-mod 204#audio/x-startracker-module 205>0 string >\0 Title: "%s" 206 2071080 string FLT8 8-channel Startracker module sound data 208!:mime audio/x-mod 209#audio/x-startracker-module 210>0 string >\0 Title: "%s" 211 2121080 string 4CHN 4-channel Fasttracker module sound data 213!:mime audio/x-mod 214#audio/x-fasttracker-module 215>0 string >\0 Title: "%s" 216 2171080 string 6CHN 6-channel Fasttracker module sound data 218!:mime audio/x-mod 219#audio/x-fasttracker-module 220>0 string >\0 Title: "%s" 221 2221080 string 8CHN 8-channel Fasttracker module sound data 223!:mime audio/x-mod 224#audio/x-fasttracker-module 225>0 string >\0 Title: "%s" 226 2271080 string CD81 8-channel Octalyser module sound data 228!:mime audio/x-mod 229#audio/x-octalysertracker-module 230>0 string >\0 Title: "%s" 231 2321080 string OKTA 8-channel Octalyzer module sound data 233!:mime audio/x-mod 234#audio/x-octalysertracker-module 235>0 string >\0 Title: "%s" 236 237# Not good enough. 238#1082 string CH 239#>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data 2401080 string 16CN 16-channel Taketracker module sound data 241!:mime audio/x-mod 242#audio/x-taketracker-module 243>0 string >\0 Title: "%s" 2441080 string 32CN 32-channel Taketracker module sound data 245!:mime audio/x-mod 246#audio/x-taketracker-module 247>0 string >\0 Title: "%s" 248 249# TOC sound files -Trevor Johnson <trevor@jpj.net> 250# 2510 string TOC TOC sound file 252 253# sidfiles <pooka@iki.fi> 254# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24 2550 string SIDPLAY\ INFOFILE Sidplay info file 256 2570 string PSID PlaySID v2.2+ (AMIGA) sidtune 258>4 beshort >0 w/ header v%d, 259>14 beshort =1 single song, 260>14 beshort >1 %d songs, 261>16 beshort >0 default song: %d 262>0x16 string >\0 name: "%s" 263>0x36 string >\0 author: "%s" 264>0x56 string >\0 copyright: "%s" 265 2660 string RSID RSID sidtune PlaySID compatible 267>4 beshort >0 w/ header v%d, 268>14 beshort =1 single song, 269>14 beshort >1 %d songs, 270>16 beshort >0 default song: %d 271>0x16 string >\0 name: "%s" 272>0x36 string >\0 author: "%s" 273>0x56 string >\0 copyright: "%s" 274 275# IRCAM sound files - Michael Pruett <michael@68k.org> 276# http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html 2770 belong 0x64a30100 IRCAM file (VAX little-endian) 2780 belong 0x0001a364 IRCAM file (VAX big-endian) 2790 belong 0x64a30200 IRCAM file (Sun big-endian) 2800 belong 0x0002a364 IRCAM file (Sun little-endian) 2810 belong 0x64a30300 IRCAM file (MIPS little-endian) 2820 belong 0x0003a364 IRCAM file (MIPS big-endian) 2830 belong 0x64a30400 IRCAM file (NeXT big-endian) 2840 belong 0x64a30400 IRCAM file (NeXT big-endian) 2850 belong 0x0004a364 IRCAM file (NeXT little-endian) 286 287# NIST SPHERE <mpruett@sgi.com> 2880 string NIST_1A\n\ \ \ 1024\n NIST SPHERE file 289 290# Sample Vision <mpruett@sgi.com> 2910 string SOUND\ SAMPLE\ DATA\ Sample Vision file 292 293# Audio Visual Research <tonigonenstein@users.sourceforge.net> 2940 string 2BIT Audio Visual Research file, 295>12 beshort =0 mono, 296>12 beshort =-1 stereo, 297>14 beshort x %d bits 298>16 beshort =0 unsigned, 299>16 beshort =-1 signed, 300>22 belong&0x00ffffff x %d Hz, 301>18 beshort =0 no loop, 302>18 beshort =-1 loop, 303>21 ubyte <128 note %d, 304>22 byte =0 replay 5.485 KHz 305>22 byte =1 replay 8.084 KHz 306>22 byte =2 replay 10.971 KHz 307>22 byte =3 replay 16.168 KHz 308>22 byte =4 replay 21.942 KHz 309>22 byte =5 replay 32.336 KHz 310>22 byte =6 replay 43.885 KHz 311>22 byte =7 replay 47.261 KHz 312 313# SGI SoundTrack <mpruett@sgi.com> 3140 string _SGI_SoundTrack SGI SoundTrack project file 315# ID3 version 2 tags <waschk@informatik.uni-rostock.de> 3160 string ID3 Audio file with ID3 version 2 317>3 byte x \b.%d 318>4 byte x \b.%d 319>>5 byte &0x80 \b, unsynchronized frames 320>>5 byte &0x40 \b, extended header 321>>5 byte &0x20 \b, experimental 322>>5 byte &0x10 \b, footer present 323>(6.I+10) indirect x \b, contains: 324 325# NSF (NES sound file) magic 3260 string NESM\x1a NES Sound File 327>14 string >\0 ("%s" by 328>46 string >\0 %s, copyright 329>78 string >\0 %s), 330>5 byte x version %d, 331>6 byte x %d tracks, 332>122 byte&0x2 =1 dual PAL/NTSC 333>122 byte&0x1 =1 PAL 334>122 byte&0x1 =0 NTSC 335 336# NSFE (Extended NES sound file) magic 337# http://slickproductions.org/docs/NSF/nsfespec.txt 338# From: David Pflug <david@pflug.email> 3390 string NSFE Extended NES Sound File 340>48 search/0x1000 auth 341>>&0 string >\0 ("%s" 342>>>&1 string >\0 by %s 343>>>>&1 string >\0 \b, copyright %s 344>>>>>&1 string >\0 \b, ripped by %s 345>20 byte x \b), %d tracks, 346>18 byte&0x2 =1 dual PAL/NTSC 347>18 byte&0x2 =0 348>>18 byte&0x1 =1 PAL 349>>18 byte&0x1 =0 NTSC 350 351# Type: SNES SPC700 sound files 352# From: Josh Triplett <josh@freedesktop.org> 3530 string SNES-SPC700\ Sound\ File\ Data\ v SNES SPC700 sound file 354>&0 string 0.30 \b, version %s 355>>0x23 byte 0x1B \b, without ID666 tag 356>>0x23 byte 0x1A \b, with ID666 tag 357>>>0x2E string >\0 \b, song "%.32s" 358>>>0x4E string >\0 \b, game "%.32s" 359 360# Impulse tracker module (audio/x-it) 3610 string IMPM Impulse Tracker module sound data - 362!:mime audio/x-mod 363>4 string >\0 "%s" 364>40 leshort !0 compatible w/ITv%x 365>42 leshort !0 created w/ITv%x 366 367# Imago Orpheus module (audio/x-imf) 36860 string IM10 Imago Orpheus module sound data - 369>0 string >\0 "%s" 370 371# From <collver1@attbi.com> 372# These are the /etc/magic entries to decode modules, instruments, and 373# samples in Impulse Tracker's native format. 374 3750 string IMPS Impulse Tracker Sample 376>18 byte &2 16 bit 377>18 byte ^2 8 bit 378>18 byte &4 stereo 379>18 byte ^4 mono 3800 string IMPI Impulse Tracker Instrument 381>28 leshort !0 ITv%x 382>30 byte !0 %d samples 383 384# Yamaha TX Wave: file(1) magic for Yamaha TX Wave audio files 385# From <collver1@attbi.com> 3860 string LM8953 Yamaha TX Wave 387>22 byte 0x49 looped 388>22 byte 0xC9 non-looped 389>23 byte 1 33kHz 390>23 byte 2 50kHz 391>23 byte 3 16kHz 392 393# scream tracker: file(1) magic for Scream Tracker sample files 394# 395# From <collver1@attbi.com> 39676 string SCRS Scream Tracker Sample 397>0 byte 1 sample 398>0 byte 2 adlib melody 399>0 byte >2 adlib drum 400>31 byte &2 stereo 401>31 byte ^2 mono 402>31 byte &4 16bit little endian 403>31 byte ^4 8bit 404>30 byte 0 unpacked 405>30 byte 1 packed 406 407# audio 408# From: Cory Dikkers <cdikkers@swbell.net> 4090 string MMD0 MED music file, version 0 4100 string MMD1 OctaMED Pro music file, version 1 4110 string MMD3 OctaMED Soundstudio music file, version 3 4120 string OctaMEDCmpr OctaMED Soundstudio compressed file 4130 string MED MED_Song 4140 string SymM Symphonie SymMOD music file 415# 416# Track Length (TRL), Tracks (TRK), Samples (SMP), Subsongs (SS) 417# http://lclevy.free.fr/exotica/ahx/ahxformat.txt 4180 string THX AHX version 419>3 byte =0 1 module data 420>3 byte =1 2 module data 421>11 ubyte x TRK: %u 422>10 ubyte x TRL: %u 423>12 ubyte x SMP: %u 424>13 ubyte x SS: %u 425>(4.H) string x Title: "%.128s" 426 427# header is mostly AHX format 4280 string HVL 429>3 byte <2 Hively Tracker Song 430>3 byte =0 v1 module data 431>3 byte =1 v2 module data 432>11 ubyte x TRK: %u 433>10 ubyte x TRL: %u 434>12 ubyte x SMP: %u 435>13 ubyte x SS: %u 436>8 ubyte/4 =0 CHN: 4 437>8 ubyte/4 >0 CHN: 4+%u 438#>-0 offset <0xffff 439>(4.H) string x Title: "%.128s" 440 441# 4420 string OKTASONG Oktalyzer module data 443# 4440 string DIGI\ Booster\ module\0 %s 445>20 byte >0 %c 446>>21 byte >0 \b%c 447>>>22 byte >0 \b%c 448>>>>23 byte >0 \b%c 449>610 string >\0 \b, "%s" 450# 4510 string DBM0 DIGI Booster Pro Module 452>4 byte >0 V%X. 453>>5 byte x \b%02X 454>16 string >\0 \b, "%s" 455# 4560 string FTMN FaceTheMusic module 457>16 string >\0d \b, "%s" 458 459# From: <doj@cubic.org> 2003-06-24 4600 string AMShdr\32 Velvet Studio AMS Module v2.2 4610 string Extreme Extreme Tracker AMS Module v1.3 4620 string DDMF Xtracker DMF Module 463>4 byte x v%i 464>0xD string >\0 Title: "%s" 465>0x2B string >\0 Composer: "%s" 4660 string DSM\32 Dynamic Studio Module DSM 4670 string SONG DigiTrekker DTM Module 4680 string DMDL DigiTrakker MDL Module 4690 string PSM\32 Protracker Studio PSM Module 47044 string PTMF Poly Tracker PTM Module 471>0 string >\32 Title: "%s" 4720 string MT20 MadTracker 2.0 Module MT2 4730 string RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD 4740 string RTMM RTM Module 4750x426 string MaDoKaN96 XMS Adlib Module 476>0 string >\0 Composer: "%s" 4770 string AMF AMF Module 478>4 string >\0 Title: "%s" 4790 string MODINFO1 Open Cubic Player Module Information MDZ 4800 string Extended\40Instrument: Fast Tracker II Instrument 481 482# From: Takeshi Hamasaki <hma@syd.odn.ne.jp> 483# NOA Nancy Codec file 4840 string \210NOA\015\012\032 NOA Nancy Codec Movie file 485# Yamaha SMAF format 4860 string MMMD Yamaha SMAF file 487# Sharp Jisaku Melody format for PDC 4880 string \001Sharp\040JisakuMelody SHARP Cell-Phone ringing Melody 489>20 string Ver01.00 Ver. 1.00 490>>32 byte x , %d tracks 491 492# Free lossless audio codec <http://flac.sourceforge.net> 493# From: Przemyslaw Augustyniak <silvathraec@rpg.pl> 4940 string fLaC FLAC audio bitstream data 495!:mime audio/flac 496>4 byte&0x7f >0 \b, unknown version 497>4 byte&0x7f 0 \b 498# some common bits/sample values 499>>20 beshort&0x1f0 0x030 \b, 4 bit 500>>20 beshort&0x1f0 0x050 \b, 6 bit 501>>20 beshort&0x1f0 0x070 \b, 8 bit 502>>20 beshort&0x1f0 0x0b0 \b, 12 bit 503>>20 beshort&0x1f0 0x0f0 \b, 16 bit 504>>20 beshort&0x1f0 0x170 \b, 24 bit 505>>20 byte&0xe 0x0 \b, mono 506>>20 byte&0xe 0x2 \b, stereo 507>>20 byte&0xe 0x4 \b, 3 channels 508>>20 byte&0xe 0x6 \b, 4 channels 509>>20 byte&0xe 0x8 \b, 5 channels 510>>20 byte&0xe 0xa \b, 6 channels 511>>20 byte&0xe 0xc \b, 7 channels 512>>20 byte&0xe 0xe \b, 8 channels 513# sample rates derived from known oscillator frequencies; 514# 24.576 MHz (video/fs=48kHz), 22.5792 (audio/fs=44.1kHz) and 515# 16.384 (other/fs=32kHz). 516>>17 belong&0xfffff0 0x02b110 \b, 11.025 kHz 517>>17 belong&0xfffff0 0x03e800 \b, 16 kHz 518>>17 belong&0xfffff0 0x056220 \b, 22.05 kHz 519>>17 belong&0xfffff0 0x05dc00 \b, 24 kHz 520>>17 belong&0xfffff0 0x07d000 \b, 32 kHz 521>>17 belong&0xfffff0 0x0ac440 \b, 44.1 kHz 522>>17 belong&0xfffff0 0x0bb800 \b, 48 kHz 523>>17 belong&0xfffff0 0x0fa000 \b, 64 kHz 524>>17 belong&0xfffff0 0x158880 \b, 88.2 kHz 525>>17 belong&0xfffff0 0x177000 \b, 96 kHz 526>>17 belong&0xfffff0 0x1f4000 \b, 128 kHz 527>>17 belong&0xfffff0 0x2b1100 \b, 176.4 kHz 528>>17 belong&0xfffff0 0x2ee000 \b, 192 kHz 529>>17 belong&0xfffff0 0x3e8000 \b, 256 kHz 530>>17 belong&0xfffff0 0x562200 \b, 352.8 kHz 531>>17 belong&0xfffff0 0x5dc000 \b, 384 kHz 532>>21 byte&0xf >0 \b, >4G samples 533>>21 byte&0xf 0 \b 534>>>22 belong >0 \b, %u samples 535>>>22 belong 0 \b, length unknown 536 537# (ISDN) VBOX voice message file (Wolfram Kleff) 5380 string VBOX VBOX voice message data 539 540# ReBorn Song Files (.rbs) 541# David J. Singer <doc@deadvirgins.org.uk> 5428 string RB40 RBS Song file 543>29 string ReBorn created by ReBorn 544>37 string Propellerhead created by ReBirth 545 546# Synthesizer Generator and Kimwitu share their file format 5470 string A#S#C#S#S#L#V#3 Synthesizer Generator or Kimwitu data 548# Kimwitu++ uses a slightly different magic 5490 string A#S#C#S#S#L#HUB Kimwitu++ data 550 551# From "Simon Hosie 5520 string TFMX-SONG TFMX module sound data 553 554# Monkey's Audio compressed audio format (.ape) 555# From danny.milo@gmx.net (Danny Milosavljevic) 556# New version from Abel Cheung <abel (@) oaka.org> 5570 string MAC\040 Monkey's Audio compressed format 558!:mime audio/x-ape 559>4 uleshort >0x0F8B version %d 560>>(0x08.l) uleshort =1000 with fast compression 561>>(0x08.l) uleshort =2000 with normal compression 562>>(0x08.l) uleshort =3000 with high compression 563>>(0x08.l) uleshort =4000 with extra high compression 564>>(0x08.l) uleshort =5000 with insane compression 565>>(0x08.l+18) uleshort =1 \b, mono 566>>(0x08.l+18) uleshort =2 \b, stereo 567>>(0x08.l+20) ulelong x \b, sample rate %d 568>4 uleshort <0x0F8C version %d 569>>6 uleshort =1000 with fast compression 570>>6 uleshort =2000 with normal compression 571>>6 uleshort =3000 with high compression 572>>6 uleshort =4000 with extra high compression 573>>6 uleshort =5000 with insane compression 574>>10 uleshort =1 \b, mono 575>>10 uleshort =2 \b, stereo 576>>12 ulelong x \b, sample rate %d 577 578# adlib sound files 579# From: Alex Myczko <alex@aiei.ch> 580 581# https://github.com/rerrahkr/BambooTracker 5820 string BambooTracker BambooTracker 583>13 string Mod Module 584>13 string Ist Instrument 585>13 string Bnk Bank 586>22 byte x \b, version %u 587>21 byte x \b.%u 588>20 byte x \b.%u 589 5900 string CC2x CheeseCutter 2 song 591 5920 string RAWADATA RdosPlay RAW 593 5941068 string RoR AMUSIC Adlib Tracker 595 5960 string JCH EdLib 597 5980 string mpu401tr MPU-401 Trakker 599 6000 string SAdT Surprise! Adlib Tracker 601>4 byte x Version %d 602 6030 string XAD! eXotic ADlib 604 6050 string ofTAZ! eXtra Simple Music 606 6070 string FMK! FM Kingtracker Song 608 6090 string DFM DFM Song 610 6110 string \<CUD-FM-File\> CFF Song 612 6130 string _A2module A2M Song 614 615# Spectrum 128 tunes (.ay files). 616# From: Emanuel Haupt <ehaupt@critical.ch> 6170 string ZXAYEMUL Spectrum 128 tune 618 6190 string \0BONK BONK, 620#>5 byte x version %d 621>14 byte x %d channel(s), 622>15 byte =1 lossless, 623>15 byte =0 lossy, 624>16 byte x mid-side 625 626384 string LockStream LockStream Embedded file (mostly MP3 on old Nokia phones) 627 628# format VQF (proprietary codec for sound) 629# some infos on the header file available at : 630# http://www.twinvq.org/english/technology_format.html 6310 string TWIN97012000 VQF data 632>27 short 0 \b, Mono 633>27 short 1 \b, Stereo 634>31 short >0 \b, %d kbit/s 635>35 short >0 \b, %d kHz 636 637# Nelson A. de Oliveira (naoliv@gmail.com) 638# .eqf 6390 string Winamp\ EQ\ library\ file %s 640# it will match only versions like v<digit>.<digit> 641# Since I saw only eqf files with version v1.1 I think that it's OK 642>23 string x \b%.4s 643# .preset 6440 string [Equalizer\ preset] XMMS equalizer preset 645# .m3u 6460 search/1 #EXTM3U M3U playlist text 647# .pls 6480 search/1 [playlist] PLS playlist text 649# licq.conf 6501 string [licq] LICQ configuration file 651 652# Atari ST audio files by Dirk Jagdmann <doj@cubic.org> 653# NOTE: Most SNDH music is packed using ICE, which has 654# magic numbers "ICE!" and "Ice!". Some SNDH music is 655# not packed, so we check for both packed and unpacked. 65612 string SNDH SNDH Atari ST music 6570 belong&0xFFDFDFFF 0x49434521 658>14 search/40 NDH SNDH Atari ST music 659>14 search/40 TITL SNDH Atari ST music 6600 string SC68\ Music-file\ /\ (c)\ (BeN)jami sc68 Atari ST music 661 662# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com> 6630 string MP+ Musepack audio (MP+) 664!:mime audio/x-musepack 665>3 byte 255 \b, SV pre8 666>3 byte&0xF 0x6 \b, SV 6 667>3 byte&0xF 0x8 \b, SV 8 668>3 byte&0xF 0x7 \b, SV 7 669>>3 byte&0xF0 0x0 \b.0 670>>3 byte&0xF0 0x10 \b.1 671>>3 byte&0xF0 240 \b.15 672>>10 byte&0xF0 0x0 \b, no profile 673>>10 byte&0xF0 0x10 \b, profile 'Unstable/Experimental' 674>>10 byte&0xF0 0x50 \b, quality 0 675>>10 byte&0xF0 0x60 \b, quality 1 676>>10 byte&0xF0 0x70 \b, quality 2 (Telephone) 677>>10 byte&0xF0 0x80 \b, quality 3 (Thumb) 678>>10 byte&0xF0 0x90 \b, quality 4 (Radio) 679>>10 byte&0xF0 0xA0 \b, quality 5 (Standard) 680>>10 byte&0xF0 0xB0 \b, quality 6 (Xtreme) 681>>10 byte&0xF0 0xC0 \b, quality 7 (Insane) 682>>10 byte&0xF0 0xD0 \b, quality 8 (BrainDead) 683>>10 byte&0xF0 0xE0 \b, quality 9 684>>10 byte&0xF0 0xF0 \b, quality 10 685>>27 byte 0x0 \b, Buschmann 1.7.0-9, Klemm 0.90-1.05 686>>27 byte 102 \b, Beta 1.02 687>>27 byte 104 \b, Beta 1.04 688>>27 byte 105 \b, Alpha 1.05 689>>27 byte 106 \b, Beta 1.06 690>>27 byte 110 \b, Release 1.1 691>>27 byte 111 \b, Alpha 1.11 692>>27 byte 112 \b, Beta 1.12 693>>27 byte 113 \b, Alpha 1.13 694>>27 byte 114 \b, Beta 1.14 695>>27 byte 115 \b, Alpha 1.15 696 6970 string MPCK Musepack audio (MPCK) 698!:mime audio/x-musepack 699 700# IMY 701# from http://filext.com/detaillist.php?extdetail=IMY 702# https://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm 703# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html 704# http://www.wx800.com/msg/download/irda/iMelody.pdf 7050 string BEGIN:IMELODY iMelody Ringtone Format 706 707# From: "Mateus Caruccio" <mateus@caruccio.com> 708# guitar pro v3,4,5 from http://filext.com/file-extension/gp3 7090 string \030FICHIER\ GUITAR\ PRO\ v3. Guitar Pro Ver. 3 Tablature 710 711# From: "Leslie P. Polzer" <leslie.polzer@gmx.net> 71260 string SONG SoundFX Module sound file 713 714# Type: Adaptive Multi-Rate Codec 715# URL: http://filext.com/detaillist.php?extdetail=AMR 716# From: Russell Coker <russell@coker.com.au> 7170 string #!AMR Adaptive Multi-Rate Codec (GSM telephony) 718!:mime audio/amr 719!:ext amr 720 721# Type: SuperCollider 3 Synth Definition File Format 722# From: Mario Lang <mlang@debian.org> 7230 string SCgf SuperCollider3 Synth Definition file, 724>4 belong x version %d 725 726# Type: True Audio Lossless Audio 727# URL: https://wiki.multimedia.cx/index.php?title=True_Audio 728# From: Mike Melanson <mike@multimedia.cx> 7290 string TTA1 True Audio Lossless Audio 730 731# Type: WavPack Lossless Audio 732# URL: https://wiki.multimedia.cx/index.php?title=WavPack 733# From: Mike Melanson <mike@multimedia.cx> 7340 string wvpk WavPack Lossless Audio 735 736# From Fabio R. Schmidlin <frs@pop.com.br> 737# VGM music file 7380 string Vgm\040 739>9 ubyte >0 VGM Video Game Music dump v 740!:mime audio/x-vgm 741!:ext vgm 742>>9 ubyte/16 >0 \b%d 743>>9 ubyte&0x0F x \b%d 744>>8 ubyte/16 x \b.%d 745>>8 ubyte&0x0F >0 \b%d 746#Get soundchips 747>>8 ubyte x \b, soundchip(s)= 748>>0x0C ulelong >0 SN76489 (PSG), 749>>0x10 ulelong >0 YM2413 (OPLL), 750>>0x2C ulelong >0 YM2612 (OPN2), 751>>0x30 ulelong >0 YM2151 (OPM), 752>>0x38 ulelong >0 Sega PCM, 753>>0x34 ulelong >0xC 754>>>0x40 ulelong >0 RF5C68 (PCM), 755>>0x34 ulelong >0x10 756>>>0x44 ulelong >0 YM2203 (OPN), 757>>0x34 ulelong >0x14 758>>>0x48 ulelong >0 YM2608 (OPNA), 759>>0x34 ulelong >0x18 760>>>0x4C lelong >0 YM2610 (OPNB), 761>>>0x4C lelong <0 YM2610B (OPNB+2FM), 762>>0x34 ulelong >0x1C 763>>>0x50 ulelong >0 YM3812 (OPL2), 764>>0x34 ulelong >0x20 765>>>0x54 ulelong >0 YM3526 (OPL), 766>>0x34 ulelong >0x24 767>>>0x58 ulelong >0 Y8950 (MSX-Audio), 768>>0x34 ulelong >0x28 769>>>0x5C ulelong >0 YMF262 (OPL3), 770>>0x34 ulelong >0x2C 771>>>0x60 ulelong >0 YMF278B (OPL4), 772>>0x34 ulelong >0x30 773>>>0x64 ulelong >0 YMF271 (OPX), 774>>0x34 ulelong >0x34 775>>>0x68 ulelong >0 YMZ280B (PCMD8), 776>>0x34 ulelong >0x38 777>>>0x6C ulelong >0 RF5C164 (PCM), 778>>0x34 ulelong >0x3C 779>>>0x70 ulelong >0 PWM, 780>>0x34 ulelong >0x40 781>>>0x74 ulelong >0 782>>>>0x78 ubyte 0x00 AY-3-8910, 783>>>>0x78 ubyte 0x01 AY-3-8912, 784>>>>0x78 ubyte 0x02 AY-3-8913, 785>>>>0x78 ubyte 0x03 AY-3-8930, 786>>>>0x78 ubyte 0x10 YM2149, 787>>>>0x78 ubyte 0x11 YM3439, 788>>>>0x78 ubyte 0x12 YMZ284, 789>>>>0x78 ubyte 0x13 YMZ294, 790# VGM 1.61 791>>0x34 ulelong >0x4C 792>>>0x80 ulelong >0 DMG, 793>>0x34 ulelong >0x50 794>>>0x84 lelong >0 NES APU, 795>>>0x84 lelong <0 NES APU with FDS, 796>>0x34 ulelong >0x54 797>>>0x88 ulelong >0 MultiPCM, 798>>0x34 ulelong >0x58 799>>>0x8C ulelong >0 uPD7759 (ADPCM Speech), 800>>0x34 ulelong >0x5C 801>>>0x90 ulelong >0 OKIM6258 (ADPCM Speech), 802>>0x34 ulelong >0x64 803>>>0x98 ulelong >0 OKIM6295 (ADPCM), 804>>0x34 ulelong >0x68 805>>>0x9C ulelong >0 K051649, 806>>0x34 ulelong >0x6C 807>>>0xA0 ulelong >0 K054539, 808>>0x34 ulelong >0x70 809>>>0xA4 ulelong >0 HuC6280, 810>>0x34 ulelong >0x74 811>>>0xA8 ulelong >0 C140, 812>>0x34 ulelong >0x78 813>>>0xAC ulelong >0 K053260, 814>>0x34 ulelong >0x7C 815>>>0xB0 ulelong >0 Pokey, 816>>0x34 ulelong >0x80 817>>>0xB4 ulelong >0 QSound, 818# VGM 1.71 819>>0x34 ulelong >0x84 820>>>0xB8 ulelong >0 SCSP, 821>>0x34 ulelong >0x8C 822>>>0xC0 ulelong >0 WonderSwan, 823>>0x34 ulelong >0x90 824>>>0xC4 ulelong >0 VSU, 825>>0x34 ulelong >0x94 826>>>0xC8 ulelong >0 SAA1099, 827>>0x34 ulelong >0x98 828>>>0xCC ulelong >0 ES5503 (DOC), 829>>0x34 ulelong >0x9C 830>>>0xD0 lelong >0 ES5505 (OTIS), 831>>>0xD0 lelong <0 ES5506 (OTTO), 832>>0x34 ulelong >0xA4 833>>>0xD8 ulelong >0 X1-010, 834>>0x34 ulelong >0xA8 835>>>0xDC ulelong >0 C352, 836>>0x34 ulelong >0xAC 837>>>0xE0 ulelong >0 GA20, 838 839# GVOX Encore file format 840# Since this is a proprietary file format and there is no publicly available 841# format specification, this is just based on induction 842# 8430 string SCOW 844>4 byte 0xc4 GVOX Encore music, version 5.0 or above 845>4 byte 0xc2 GVOX Encore music, version < 5.0 846 8470 string ZBOT 848>4 byte 0xc5 GVOX Encore music, version < 5.0 849 850# Summary: Garmin Voice Processing Module (WAVE audios) 851# From: Joerg Jenderek 852# URL: https://www.garmin.com/ 853# Reference: http://www.poi-factory.com/node/19580 854# NOTE: there exist 2 other Garmin VPM formats 8550 string AUDIMG 856# skip text files starting with string "AUDIMG" 857>13 ubyte <13 Garmin Voice Processing Module 858!:mime audio/x-vpm-wav-garmin 859!:ext vpm 860# 3 bytes indicating the voice version (200,220) 861>>6 string x \b, version %3.3s 862# day of release (01-31) 863>>12 ubyte x \b, %.2d 864# month of release (01-12) 865>>13 ubyte x \b.%.2d 866# year of release (like 2006, 2007, 2008) 867>>14 uleshort x \b.%.4d 868# hour of release (0-23) 869>>11 ubyte x %.2d 870# minute of release (0-59) 871>>10 ubyte x \b:%.2d 872# second of release (0-59) 873>>9 ubyte x \b:%.2d 874# if you select a language like german on your garmin device 875# you can only select voice modules with corresponding language byte ID like 1 876>>18 ubyte x \b, language ID %d 877# structure for phrases/sentences? 878# number of voice sample in the 1st phrase? 879#>>19 uleshort x \b, %#x samples 880#>>>21 uleshort >0 \b, at %#4.4x 881#>>>(21.s) ubequad x %#llx 882# 2nd phrase? 883#>>23 uleshort x \b, %#x samples 884#>>>25 uleshort >0 \b, at %#4.4x 885#>>>(25.s) ubequad x %#llx 886# pointer to 1st audio WAV sample 887>>16 uleshort >0 888>>>(16.s) ulelong >0 \b, at %#x 889# WAV length 890# 1 space char after "bytes" to get phrase "bytes RIFF" 891>>>>(16.s+4) ulelong >0 %u bytes 892# look for magic 893>>>>>(&-8.l) string RIFF 894# determine type by ./riff 895>>>>>>&-4 indirect x 896# 2 - ~ 131 WAV samples following same way 897# 898# Summary: encrypted Garmin Voice Processing Module 899# From: Joerg Jenderek 900# URL: https://www.garmin.com/us/products/ontheroad/voicestudio 901# NOTE: Encrypted variant used in voices like DrNightmare, Elfred, Yeti. 902# There exist 2 other Garmin VPM formats 9030 ubequad 0xa141190fecc8ced6 Garmin Voice Processing Module (encrypted) 904!:mime audio/x-vpm-garmin 905!:ext vpm 906 907# From Martin Mueller Skarbiniks Pedersen 9080 string GDM 909>0x3 byte 0xFE General Digital Music. 910>0x4 string >\0 title: "%s" 911>0x24 string >\0 musician: "%s" 912>>0x44 beshort 0x0D0A 913>>>0x46 byte 0x1A 914>>>>0x47 string GMFS Version 915>>>>0x4B byte x %d. 916>>>>0x4C byte x \b%02d 917>>>>0x4D beshort 0x000 (2GDM v 918>>>>0x4F byte x \b%d. 919>>>>>0x50 byte x \b%d) 920 9210 string MTM Multitracker 922>0x3 byte/16 x Version %d. 923>0x3 byte&0x0F x \b%02d 924>>0x4 string >\0 title: "%s" 925 9260 string MO3 927>3 ubyte <6 MOdule with MP3 928>>3 byte 0 Version 0 (With MP3 and lossless) 929>>3 byte 1 Version 1 (With ogg and lossless) 930>>3 byte 3 Version 2.2 931>>3 byte 4 (With no LAME header) 932>>3 byte 5 Version 2.4 933 9340 string ADRVPACK AProSys module 935 936# ftp://ftp.modland.com/pub/documents/format_documentation/\ 937# Art%20Of%20Noise%20(.aon).txt 9380 string AON 939>4 string "ArtOfNoise by Bastian Spiegel(twice/lego)" 940>0x2e string NAME Art of Noise Tracker Song 941>3 string <9 942>3 string 4 (4 voices) 943>3 string 8 (8 voices) 944>>0x36 string >\0 Title: "%s" 945 9460 string FAR 947>0x2c byte 0x0d 948>0x2d byte 0x0a 949>0x2e byte 0x1a 950>>0x3 byte 0xFE Farandole Tracker Song 951>>>0x31 byte/16 x Version %d. 952>>>0x31 byte&0x0F x \b%02d 953>>>>0x4 string >\0 \b, title: "%s" 954 955# magic for Klystrack, https://kometbomb.github.io/klystrack/ 956# from Alex Myczko <alex@aiei.ch> 9570 string cyd!song Klystrack song 958>8 byte >0 \b, version %u 959>8 byte >26 960#>>9 byte x \b, channels %u 961#>>10 leshort x \b, time signature %u 962#>>12 leshort x \b, sequence step %u 963#>>14 byte x \b, instruments %u 964#>>15 leshort x \b, patterns %u 965#>>17 leshort x \b, sequences %u 966#>>19 leshort x \b, length %u 967#>>21 leshort x \b, loop point %u 968#>>23 byte x \b, master volume %u 969#>>24 byte x \b, song speed %u 970#>>25 byte x \b, song speed2 %u 971#>>26 byte x \b, song rate %u 972#>>27 belong x \b, flags %#x 973#>>31 byte x \b, multiplex period %u 974#>>32 byte x \b, pitch inaccuracy %u 975>>149 pstring x \b, title %s 976 9770 string cyd!inst Klystrack instrument 978 979# magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor 980# see Specifications/WOPL-and-OPLI-Specification.txt 981 9820 string WOPL3-INST\0 WOPL instrument 983>11 leshort x \b, version %u 9840 string WOPL3-BANK\0 WOPL instrument bank 985>11 leshort x \b, version %u 986 987# AdLib/OPL instrument files. Format specifications on 988# http://www.shikadi.net/moddingwiki 9890 string Junglevision\ Patch\ File Junglevision instrument data 9900 string #OPL_II# DMX OP2 instrument data 9910 string IBK\x1a IBK instrument data 9920 string 2OP\x1a IBK instrument data, 2 operators 9930 string 4OP\x1a IBK instrument data, 4 operators 9942 string ADLIB- AdLib instrument data 995>0 byte x \b, version %u 996>1 byte x \b.%u 997 998# CRI ADX ADPCM audio 999# Used by various Sega games. 1000# https://en.wikipedia.org/wiki/ADX_(file_format) 1001# https://wiki.multimedia.cx/index.php/CRI_ADX_file 1002# Added by David Korth <gerbilsoft@gerbilsoft.com> 10030x00 beshort 0x8000 1004>(2.S-2) string (c)CRI CRI ADX ADPCM audio 1005!:ext adx 1006!:mime audio/x-adx 1007!:strength +50 1008>>0x12 byte x v%u 1009>>0x04 byte 0x02 \b, pre-set prediction coefficients 1010>>0x04 byte 0x03 \b, standard ADX 1011>>0x04 byte 0x04 \b, exponential scale 1012>>0x04 byte 0x10 \b, AHX (Dreamcast) 1013>>0x04 byte 0x11 \b, AHX 1014>>0x08 belong x \b, %u Hz 1015>>0x12 byte 0x03 1016>>>0x02 beshort >0x2B 1017>>>>0x18 belong !0 \b, looping 1018>>0x12 byte 0x04 1019>>>0x02 beshort >0x37 1020>>>>0x24 belong !0 \b, looping 1021>>0x13 byte&0x08 0x08 \b, encrypted 1022 1023# Lossless audio (.la) (http://www.lossless-audio.com/) 10240 string LA 1025>2 string 03 Lossless audio version 0.3 1026>2 string 04 Lossless audio version 0.4 1027 1028# Sony PlayStation Audio (.xa) 10290 leshort 0x4158 Sony PlayStation Audio 1030 1031# Portable Sound Format 1032# Used for audio rips for various consoles. 1033# http://fileformats.archiveteam.org/wiki/Portable_Sound_Format 1034# Added by David Korth <gerbilsoft@gerbilsoft.com> 10350 string PSF 1036>3 byte 0x01 1037>3 byte 0x02 1038>3 byte 0x11 1039>3 byte 0x12 1040>3 byte 0x13 1041>3 byte 0x21 1042>3 byte 0x22 1043>3 byte 0x23 1044>3 byte 0x41 1045>>0 string PSF Portable Sound Format 1046!:mime audio/x-psf 1047>>>3 byte 0x01 (Sony PlayStation) 1048>>>3 byte 0x02 (Sony PlayStation 2) 1049>>>3 byte 0x11 (Sega Saturn) 1050>>>3 byte 0x12 (Sega Dreamcast) 1051>>>3 byte 0x13 (Sega Mega Drive) 1052>>>3 byte 0x21 (Nintendo 64) 1053>>>3 byte 0x22 (Game Boy Advance) 1054>>>3 byte 0x23 (Super NES) 1055>>>3 byte 0x41 (Capcom QSound) 1056 1057# Atari 8-bit SAP audio format 1058# http://asap.sourceforge.net/sap-format.html 1059# Added by David Korth <gerbilsoft@gerbilsoft.com> 10600 string SAP\r\n Atari 8-bit SAP audio file 1061!:mime audio/x-sap 1062!:ext sap 1063>5 search/1024 NAME 1064>>&1 string x \b: %s 1065>>5 search/1024 AUTHOR 1066>>>&1 string x by %s 1067 1068# Nintendo Wii BRSTM audio format (fields) 1069# NOTE: Assuming HEAD starts at 0x40. 1070# FIXME: Replace 0x48 with HEAD offset plus 8. 10710 name nintendo-wii-brstm-fields 1072>(0x10.L) string HEAD \b: 1073>>(0x10.L+0x0C) belong x 1074>>>(&-4.L+0x48) belong x 1075>>>>&-4 byte 0 PCM, signed 8-bit, 1076>>>>&-4 byte 1 PCM, signed 16-bit, 1077>>>>&-4 byte 2 THP ADPCM, 1078>>>>&-3 byte !0 looping, 1079>>>>&-2 byte 1 mono 1080>>>>&-2 byte 2 stereo 1081>>>>&-2 byte 3 3 channels 1082>>>>&-2 byte 4 quad 1083>>>>&-2 byte >4 %u channels 1084>>>>&0 beshort !0 %u Hz 1085 1086# Nintendo Wii BRSTM audio format 1087# https://wiibrew.org/wiki/BRSTM_file 1088# Added by David Korth <gerbilsoft@gerbilsoft.com> 10890 string RSTM Nintendo Wii BRSTM audio file 1090!:mime audio/x-brstm 1091!:ext brstm 1092# Wii is big-endian, so default to BE. 1093>4 beshort 0xFEFF 1094>>0 use nintendo-wii-brstm-fields 1095>4 leshort 0xFEFF 1096>>0 use \^nintendo-wii-brstm-fields 1097 1098# Nintendo 3DS BCSTM audio format (fields) 10990 name nintendo-3ds-bcstm-fields 1100>(0x18.l) string INFO \b: 1101# INFO block: Stream information starts at 0x20 (minus 4 for the 'INFO' magic) 1102>>&0x1C byte 0 PCM, signed 8-bit, 1103>>&0x1C byte 1 PCM, signed 16-bit, 1104>>&0x1C byte 2 DSP ADPCM, 1105>>&0x1C byte 3 IMA ADPCM, 1106>>&0x1D byte !0 looping, 1107>>&0x1E byte 1 mono 1108>>&0x1E byte 2 stereo 1109>>&0x1E byte 3 3 channels 1110>>&0x1E byte 4 quad 1111>>&0x1E byte >4 %u channels 1112>>&0x20 lelong !0 %u Hz 1113 1114# Nintendo 3DS BCSTM audio format 1115# https://www.3dbrew.org/wiki/BCSTM 1116# Added by David Korth <gerbilsoft@gerbilsoft.com> 11170 string CSTM Nintendo 3DS BCSTM audio file 1118!:mime audio/x-bcstm 1119!:ext bcstm 1120# 3DS is little-endian, so default to LE. 1121>4 leshort 0xFEFF 1122>>0 use nintendo-3ds-bcstm-fields 1123>4 beshort 0xFEFF 1124>>0 use \^nintendo-3ds-bcstm-fields 1125 1126# Nintendo Wii U BFSTM audio format 1127# http://mk8.tockdom.com/wiki/BFSTM_(File_Format) 1128# NOTE: This format is very similar to BCSTM. 1129# Added by David Korth <gerbilsoft@gerbilsoft.com> 11300 string FSTM Nintendo Wii U BFSTM audio file 1131!:mime audio/x-bfstm 1132!:ext bfstm 1133# BFSTM is used on both Wii U (BE) and Switch (LE), 1134# so default to LE. 1135>4 leshort 0xFEFF 1136>>0 use nintendo-3ds-bcstm-fields 1137>4 beshort 0xFEFF 1138>>0 use \^nintendo-3ds-bcstm-fields 1139 1140# Nintendo 3DS BCSTM audio format (fields) 11410 name nintendo-3ds-bcwav-fields 1142>(0x18.l) string INFO \b: 1143# INFO block (minus 4 for INFO magic) 1144>>&0x4 byte 0 PCM, signed 8-bit, 1145>>&0x4 byte 1 PCM, signed 16-bit, 1146>>&0x4 byte 2 DSP ADPCM, 1147>>&0x4 byte 3 IMA ADPCM, 1148>>&0x5 byte !0 looping, 1149>>&0x8 lelong x stereo 1150>>&0x8 lelong !0 %u Hz 1151 1152# Nintendo 3DS BCWAV audio format 1153# https://www.3dbrew.org/wiki/BCWAV 1154# Added by David Korth <gerbilsoft@gerbilsoft.com> 11550 string CWAV Nintendo 3DS BCWAV audio file 1156!:mime audio/x-bcwav 1157!:ext bcwav 1158# 3DS is little-endian, so default to LE. 1159>4 leshort 0xFEFF 1160>>0 use nintendo-3ds-bcwav-fields 1161>4 beshort 0xFEFF 1162>>0 use \^nintendo-3ds-bcwav-fields 1163 1164# Philips DSDIFF audio format (Direct Stream Digital Interchange File Format) 1165# Used for DSD audio recordings and Super Audio CD (SACD) mastering annotations 1166# https://dsd-guide.com/sites/default/files/white-papers/DSDIFF_1.5_Spec.pdf 1167# From: Toni Ruottu <toni.ruottu@iki.fi> 11680 string FRM8 116912 string DSD\x20 DSDIFF audio bitstream data 1170!:mime audio/x-dff 1171!:ext dff 1172 1173# format version chunk 1174>&0 string FVER 1175# version 1 1176>>&8 byte 1 1177 1178# v1 / sampling resolution ( 1 bit PDM only ) 1179>>>&0 string x \b, 1 bit 1180 1181# v1 / sound property chunk 1182>>>&0 search/0xff PROP 1183>>>>&8 string SND 1184 1185# v1 / sound property chunk / channel configuration chunk 1186>>>>>&0 search/0xff CHNL 1187>>>>>>&8 ubeshort 1 \b, mono 1188>>>>>>&8 ubeshort 2 1189>>>>>>>&0 string SLFTSRGT \b, stereo 1190>>>>>>>&0 default x \b, 2 channels 1191>>>>>>&8 ubeshort 3 1192>>>>>>>&0 string SLFTSRGTLFE\x20 \b, 2.1 stereo 1193>>>>>>>&0 string SLFTSRGTC\x20\x20\x20 \b, 3.0 stereo 1194>>>>>>>&0 default x \b, 3 channels 1195>>>>>>&8 ubeshort 4 1196>>>>>>>&0 string MLFTMRGTLS\x20\x20RS\x20\x20 \b, 4.0 surround 1197>>>>>>>&0 string SLFTSRGTC\x20\x20\x20LFE\x20 \b, 3.1 stereo 1198>>>>>>>&0 default x \b, 4 channels 1199>>>>>>&8 ubeshort 5 1200>>>>>>>&0 string MLFTMRGTC\x20\x20\x20LS\x20\x20RS\x20\x20 \b, 5.0 surround 1201>>>>>>>&0 string MLFTMRGTLFE\x20LS\x20\x20RS\x20\x20 \b, 4.1 surround 1202>>>>>>>&0 default x \b, 5 channels 1203>>>>>>&8 ubeshort 6 1204>>>>>>>&0 string MLFTMRGTC\x20\x20\x20LFE\x20LS\x20\x20RS\x20\x20 \b, 5.1 surround 1205>>>>>>>&0 default x \b, 6 channels 1206>>>>>>&8 ubeshort >6 \b, %u channels 1207 1208# v1 / sound property chunk / sample rate chunk 1209>>>>>&0 search/0xff FS\x20\x20 1210>>>>>>&0 string x \b, 1211>>>>>>&8 ubelong%44100 0 1212>>>>>>>&-4 ubelong/44100 x "DSD %u" 1213>>>>>>>&-4 ubelong x %u Hz 1214 1215# v1 / sound property chunk / compression type chunk 1216>>>>>&0 search/0xff CMPR 1217>>>>>>&8 string DSD\x20 \b, no compression 1218>>>>>>&8 string DST\x20 \b, DST compression 1219>>>>>>&8 default x \b, unknown compression 1220 1221# v1 / quest for metadata 1222>>>&0 string x 1223 1224# v1 / quest for metadata / edited master information chunk 1225>>>>&0 search DIIN 1226>>>>>&0 ubequad >0 \b, "edited master" metadata 1227 1228# v1 / quest for metadata / ID3 chunk ( defacto standard ) 1229>>>>&0 search ID3\x20 1230>>>>>&8 string ID3 \b, ID3 version 2 1231>>>>>&0 byte x \b.%u 1232>>>>>&1 byte x \b.%u 1233 1234# v1 / quest for metadata / failure ( possibly due to -P bytes=... being too low ) 1235>>>>&0 default x \b, ID3 missing (or unreachable) 1236 1237# version > 1 or 0 1238>>&0 default x \b, unknown version 1239 1240# Sony DSF audio format (Direct Stream Digital Stream File) 1241# Used for lossless digital storage of songs produced as DSD audio 1242# Portable analog of a track stored on a Super Audio CD (SACD) 1243# https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf 1244# From: Toni Ruottu <toni.ruottu@iki.fi> 12450 string DSD\x20 DSF audio bitstream data 1246!:mime audio/x-dsf 1247!:ext dsf 1248 1249# format chunk 1250>28 string fmt\x20 1251# version 1 1252>>&8 ulelong 1 1253 1254# v1 / sampling resolution ( 1 bit PDM only ) 1255# NOTE: the spec incorrectly uses "bits per sample" instead of "bits per byte" 1256>>>&0 string x \b, 1 bit 1257 1258# v1 / channel configuration 1259>>>>&4 ulelong 1 \b, mono 1260>>>>&4 ulelong 2 \b, stereo 1261>>>>&4 ulelong 3 \b, 3.0 stereo 1262>>>>&4 ulelong 4 \b, 4.0 surround 1263>>>>&4 ulelong 5 \b, 3.1 stereo 1264>>>>&4 ulelong 6 \b, 5.0 surround 1265>>>>&4 ulelong 7 \b, 5.1 surround 1266>>>>&0 default x 1267>>>>>&4 ulelong x \b, %u channels 1268 1269# v1 / sample rate chunk 1270>>>>&0 string x \b, 1271>>>>&12 ulelong%44100 0 1272>>>>>&-4 ulelong/44100 x "DSD %u" 1273>>>>&12 ulelong x %u Hz 1274 1275# v1 / compression 1276>>>>&0 string x 1277>>>>>&0 ulelong 0 \b, no compression 1278>>>>>&0 default x \b, unknown compression 1279 1280# v1 / embedded ID3v2 metadata 1281>>>0 string x \b, ID3 1282>>>>20 ulequad !0 1283>>>>>(20.q) string ID3 version 2 1284>>>>>>&0 byte x \b.%u 1285>>>>>>&1 byte x \b.%u 1286# unable to verify ID3 ( possibly due to -P bytes=... being too low ) 1287>>>>>&0 default x unreachable 1288>>>>&0 default x missing 1289 1290# version > 1 or 0 1291>>&0 default x \b, unknown version 1292