1 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") 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 1861080 string M.K. 4-channel Protracker module sound data 187!:mime audio/x-mod 188#audio/x-protracker-module 189>0 string >\0 Title: "%s" 1901080 string M!K! 4-channel Protracker module sound data 191!:mime audio/x-mod 192#audio/x-protracker-module 193>0 string >\0 Title: "%s" 1941080 string FLT4 4-channel Startracker module sound data 195!:mime audio/x-mod 196#audio/x-startracker-module 197>0 string >\0 Title: "%s" 1981080 string FLT8 8-channel Startracker module sound data 199!:mime audio/x-mod 200#audio/x-startracker-module 201>0 string >\0 Title: "%s" 2021080 string 4CHN 4-channel Fasttracker module sound data 203!:mime audio/x-mod 204#audio/x-fasttracker-module 205>0 string >\0 Title: "%s" 2061080 string 6CHN 6-channel Fasttracker module sound data 207!:mime audio/x-mod 208#audio/x-fasttracker-module 209>0 string >\0 Title: "%s" 2101080 string 8CHN 8-channel Fasttracker module sound data 211!:mime audio/x-mod 212#audio/x-fasttracker-module 213>0 string >\0 Title: "%s" 2141080 string CD81 8-channel Octalyser module sound data 215!:mime audio/x-mod 216#audio/x-octalysertracker-module 217>0 string >\0 Title: "%s" 2181080 string OKTA 8-channel Octalyzer module sound data 219!:mime audio/x-mod 220#audio/x-octalysertracker-module 221>0 string >\0 Title: "%s" 222# Not good enough. 223#1082 string CH 224#>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data 2251080 string 16CN 16-channel Taketracker module sound data 226!:mime audio/x-mod 227#audio/x-taketracker-module 228>0 string >\0 Title: "%s" 2291080 string 32CN 32-channel Taketracker module sound data 230!:mime audio/x-mod 231#audio/x-taketracker-module 232>0 string >\0 Title: "%s" 233 234# TOC sound files -Trevor Johnson <trevor@jpj.net> 235# 2360 string TOC TOC sound file 237 238# sidfiles <pooka@iki.fi> 239# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24 2400 string SIDPLAY\ INFOFILE Sidplay info file 241 2420 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" 250 2510 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" 259 260# IRCAM sound files - Michael Pruett <michael@68k.org> 261# http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html 2620 belong 0x64a30100 IRCAM file (VAX little-endian) 2630 belong 0x0001a364 IRCAM file (VAX big-endian) 2640 belong 0x64a30200 IRCAM file (Sun big-endian) 2650 belong 0x0002a364 IRCAM file (Sun little-endian) 2660 belong 0x64a30300 IRCAM file (MIPS little-endian) 2670 belong 0x0003a364 IRCAM file (MIPS big-endian) 2680 belong 0x64a30400 IRCAM file (NeXT big-endian) 2690 belong 0x64a30400 IRCAM file (NeXT big-endian) 2700 belong 0x0004a364 IRCAM file (NeXT little-endian) 271 272# NIST SPHERE <mpruett@sgi.com> 2730 string NIST_1A\n\ \ \ 1024\n NIST SPHERE file 274 275# Sample Vision <mpruett@sgi.com> 2760 string SOUND\ SAMPLE\ DATA\ Sample Vision file 277 278# Audio Visual Research <tonigonenstein@users.sourceforge.net> 2790 string 2BIT Audio Visual Research file, 280>12 beshort =0 mono, 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 297 298# SGI SoundTrack <mpruett@sgi.com> 2990 string _SGI_SoundTrack SGI SoundTrack project file 300# ID3 version 2 tags <waschk@informatik.uni-rostock.de> 3010 string ID3 Audio file with ID3 version 2 302>3 byte x \b.%d 303>4 byte x \b.%d 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: 309 310# NSF (NES sound file) magic 3110 string NESM\x1a NES Sound File 312>14 string >\0 ("%s" by 313>46 string >\0 %s, copyright 314>78 string >\0 %s), 315>5 byte x version %d, 316>6 byte x %d tracks, 317>122 byte&0x2 =1 dual PAL/NTSC 318>122 byte&0x1 =1 PAL 319>122 byte&0x1 =0 NTSC 320 321# NSFE (Extended NES sound file) magic 322# http://slickproductions.org/docs/NSF/nsfespec.txt 323# From: David Pflug <david@pflug.email> 3240 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 332>18 byte&0x2 =0 333>>18 byte&0x1 =1 PAL 334>>18 byte&0x1 =0 NTSC 335 336# Type: SNES SPC700 sound files 337# From: Josh Triplett <josh@freedesktop.org> 3380 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" 344 345# Impulse tracker module (audio/x-it) 3460 string IMPM Impulse Tracker module sound data - 347!:mime audio/x-mod 348>4 string >\0 "%s" 349>40 leshort !0 compatible w/ITv%x 350>42 leshort !0 created w/ITv%x 351 352# Imago Orpheus module (audio/x-imf) 35360 string IM10 Imago Orpheus module sound data - 354>0 string >\0 "%s" 355 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. 359 3600 string IMPS Impulse Tracker Sample 361>18 byte &2 16 bit 362>18 byte ^2 8 bit 363>18 byte &4 stereo 364>18 byte ^4 mono 3650 string IMPI Impulse Tracker Instrument 366>28 leshort !0 ITv%x 367>30 byte !0 %d samples 368 369# Yamaha TX Wave: file(1) magic for Yamaha TX Wave audio files 370# From <collver1@attbi.com> 3710 string LM8953 Yamaha TX Wave 372>22 byte 0x49 looped 373>22 byte 0xC9 non-looped 374>23 byte 1 33kHz 375>23 byte 2 50kHz 376>23 byte 3 16kHz 377 378# scream tracker: file(1) magic for Scream Tracker sample files 379# 380# From <collver1@attbi.com> 38176 string SCRS Scream Tracker Sample 382>0 byte 1 sample 383>0 byte 2 adlib melody 384>0 byte >2 adlib drum 385>31 byte &2 stereo 386>31 byte ^2 mono 387>31 byte &4 16bit little endian 388>31 byte ^4 8bit 389>30 byte 0 unpacked 390>30 byte 1 packed 391 392# audio 393# From: Cory Dikkers <cdikkers@swbell.net> 3940 string MMD0 MED music file, version 0 3950 string MMD1 OctaMED Pro music file, version 1 3960 string MMD3 OctaMED Soundstudio music file, version 3 3970 string OctaMEDCmpr OctaMED Soundstudio compressed file 3980 string MED MED_Song 3990 string SymM Symphonie SymMOD music file 400# 401# Track Length (TRL), Tracks (TRK), Samples (SMP), Subsongs (SS) 402# http://lclevy.free.fr/exotica/ahx/ahxformat.txt 4030 string THX AHX version 404>3 byte =0 1 module data 405>3 byte =1 2 module data 406>11 ubyte x TRK: %u 407>10 ubyte x TRL: %u 408>12 ubyte x SMP: %u 409>13 ubyte x SS: %u 410>(4.H) string x Title: "%.128s" 411 412# header is mostly AHX format 4130 string HVL 414>3 byte <2 Hively Tracker Song 415>3 byte =0 v1 module data 416>3 byte =1 v2 module data 417>11 ubyte x TRK: %u 418>10 ubyte x TRL: %u 419>12 ubyte x SMP: %u 420>13 ubyte x SS: %u 421>8 ubyte/4 =0 CHN: 4 422>8 ubyte/4 >0 CHN: 4+%u 423#>-0 offset <0xffff 424>(4.H) string x Title: "%.128s" 425 426# 4270 string OKTASONG Oktalyzer module data 428# 4290 string DIGI\ Booster\ module\0 %s 430>20 byte >0 %c 431>>21 byte >0 \b%c 432>>>22 byte >0 \b%c 433>>>>23 byte >0 \b%c 434>610 string >\0 \b, "%s" 435# 4360 string DBM0 DIGI Booster Pro Module 437>4 byte >0 V%X. 438>>5 byte x \b%02X 439>16 string >\0 \b, "%s" 440# 4410 string FTMN FaceTheMusic module 442>16 string >\0d \b, "%s" 443 444# From: <doj@cubic.org> 2003-06-24 4450 string AMShdr\32 Velvet Studio AMS Module v2.2 4460 string Extreme Extreme Tracker AMS Module v1.3 4470 string DDMF Xtracker DMF Module 448>4 byte x v%i 449>0xD string >\0 Title: "%s" 450>0x2B string >\0 Composer: "%s" 4510 string DSM\32 Dynamic Studio Module DSM 4520 string SONG DigiTrekker DTM Module 4530 string DMDL DigiTrakker MDL Module 4540 string PSM\32 Protracker Studio PSM Module 45544 string PTMF Poly Tracker PTM Module 456>0 string >\32 Title: "%s" 4570 string MT20 MadTracker 2.0 Module MT2 4580 string RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD 4590 string RTMM RTM Module 4600x426 string MaDoKaN96 XMS Adlib Module 461>0 string >\0 Composer: "%s" 4620 string AMF AMF Module 463>4 string >\0 Title: "%s" 4640 string MODINFO1 Open Cubic Player Module Information MDZ 4650 string Extended\40Instrument: Fast Tracker II Instrument 466 467# From: Takeshi Hamasaki <hma@syd.odn.ne.jp> 468# NOA Nancy Codec file 4690 string \210NOA\015\012\032 NOA Nancy Codec Movie file 470# Yamaha SMAF format 4710 string MMMD Yamaha SMAF file 472# Sharp Jisaku Melody format for PDC 4730 string \001Sharp\040JisakuMelody SHARP Cell-Phone ringing Melody 474>20 string Ver01.00 Ver. 1.00 475>>32 byte x , %d tracks 476 477# Free lossless audio codec <http://flac.sourceforge.net> 478# From: Przemyslaw Augustyniak <silvathraec@rpg.pl> 4790 string fLaC FLAC audio bitstream data 480!:mime audio/flac 481>4 byte&0x7f >0 \b, unknown version 482>4 byte&0x7f 0 \b 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 518>>21 byte&0xf 0 \b 519>>>22 belong >0 \b, %u samples 520>>>22 belong 0 \b, length unknown 521 522# (ISDN) VBOX voice message file (Wolfram Kleff) 5230 string VBOX VBOX voice message data 524 525# ReBorn Song Files (.rbs) 526# David J. Singer <doc@deadvirgins.org.uk> 5278 string RB40 RBS Song file 528>29 string ReBorn created by ReBorn 529>37 string Propellerhead created by ReBirth 530 531# Synthesizer Generator and Kimwitu share their file format 5320 string A#S#C#S#S#L#V#3 Synthesizer Generator or Kimwitu data 533# Kimwitu++ uses a slightly different magic 5340 string A#S#C#S#S#L#HUB Kimwitu++ data 535 536# From "Simon Hosie 5370 string TFMX-SONG TFMX module sound data 538 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> 5420 string MAC\040 Monkey's Audio compressed format 543!:mime audio/x-ape 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 562 563# adlib sound files 564# From: Alex Myczko <alex@aiei.ch> 565 566# https://github.com/rerrahkr/BambooTracker 5670 string BambooTracker BambooTracker 568>13 string Mod Module 569>13 string Ist Instrument 570>13 string Bnk Bank 571>22 byte x \b, version %u 572>21 byte x \b.%u 573>20 byte x \b.%u 574 5750 string CC2x CheeseCutter 2 song 576 5770 string RAWADATA RdosPlay RAW 578 5791068 string RoR AMUSIC Adlib Tracker 580 5810 string JCH EdLib 582 5830 string mpu401tr MPU-401 Trakker 584 5850 string SAdT Surprise! Adlib Tracker 586>4 byte x Version %d 587 5880 string XAD! eXotic ADlib 589 5900 string ofTAZ! eXtra Simple Music 591 5920 string FMK! FM Kingtracker Song 593 5940 string DFM DFM Song 595 5960 string \<CUD-FM-File\> CFF Song 597 5980 string _A2module A2M Song 599 600# Spectrum 128 tunes (.ay files). 601# From: Emanuel Haupt <ehaupt@critical.ch> 6020 string ZXAYEMUL Spectrum 128 tune 603 6040 string \0BONK BONK, 605#>5 byte x version %d 606>14 byte x %d channel(s), 607>15 byte =1 lossless, 608>15 byte =0 lossy, 609>16 byte x mid-side 610 611384 string LockStream LockStream Embedded file (mostly MP3 on old Nokia phones) 612 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 6160 string TWIN97012000 VQF data 617>27 short 0 \b, Mono 618>27 short 1 \b, Stereo 619>31 short >0 \b, %d kbit/s 620>35 short >0 \b, %d kHz 621 622# Nelson A. de Oliveira (naoliv@gmail.com) 623# .eqf 6240 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 627>23 string x \b%.4s 628# .preset 6290 string [Equalizer\ preset] XMMS equalizer preset 630# .m3u 6310 search/1 #EXTM3U M3U playlist text 632# .pls 6330 search/1 [playlist] PLS playlist text 634# licq.conf 6351 string [licq] LICQ configuration file 636 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. 64112 string SNDH SNDH Atari ST music 6420 belong&0xFFDFDFFF 0x49434521 643>14 search/40 NDH SNDH Atari ST music 644>14 search/40 TITL SNDH Atari ST music 6450 string SC68\ Music-file\ /\ (c)\ (BeN)jami sc68 Atari ST music 646 647# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com> 6480 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 681 6820 string MPCK Musepack audio (MPCK) 683!:mime audio/x-musepack 684 685# IMY 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 6900 string BEGIN:IMELODY iMelody Ringtone Format 691 692# From: "Mateus Caruccio" <mateus@caruccio.com> 693# guitar pro v3,4,5 from http://filext.com/file-extension/gp3 6940 string \030FICHIER\ GUITAR\ PRO\ v3. Guitar Pro Ver. 3 Tablature 695 696# From: "Leslie P. Polzer" <leslie.polzer@gmx.net> 69760 string SONG SoundFX Module sound file 698 699# Type: Adaptive Multi-Rate Codec 700# URL: http://filext.com/detaillist.php?extdetail=AMR 701# From: Russell Coker <russell@coker.com.au> 7020 string #!AMR Adaptive Multi-Rate Codec (GSM telephony) 703!:mime audio/amr 704!:ext amr 705 706# Type: SuperCollider 3 Synth Definition File Format 707# From: Mario Lang <mlang@debian.org> 7080 string SCgf SuperCollider3 Synth Definition file, 709>4 belong x version %d 710 711# Type: True Audio Lossless Audio 712# URL: https://wiki.multimedia.cx/index.php?title=True_Audio 713# From: Mike Melanson <mike@multimedia.cx> 7140 string TTA1 True Audio Lossless Audio 715 716# Type: WavPack Lossless Audio 717# URL: https://wiki.multimedia.cx/index.php?title=WavPack 718# From: Mike Melanson <mike@multimedia.cx> 7190 string wvpk WavPack Lossless Audio 720 721# From Fabio R. Schmidlin <frs@pop.com.br> 722# VGM music file 7230 string Vgm\040 724>9 ubyte >0 VGM Video Game Music dump v 725!:mime audio/x-vgm 726!:ext vgm 727>>9 ubyte/16 >0 \b%d 728>>9 ubyte&0x0F x \b%d 729>>8 ubyte/16 x \b.%d 730>>8 ubyte&0x0F >0 \b%d 731#Get soundchips 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, 738>>0x34 ulelong >0xC 739>>>0x40 ulelong >0 RF5C68 (PCM), 740>>0x34 ulelong >0x10 741>>>0x44 ulelong >0 YM2203 (OPN), 742>>0x34 ulelong >0x14 743>>>0x48 ulelong >0 YM2608 (OPNA), 744>>0x34 ulelong >0x18 745>>>0x4C lelong >0 YM2610 (OPNB), 746>>>0x4C lelong <0 YM2610B (OPNB+2FM), 747>>0x34 ulelong >0x1C 748>>>0x50 ulelong >0 YM3812 (OPL2), 749>>0x34 ulelong >0x20 750>>>0x54 ulelong >0 YM3526 (OPL), 751>>0x34 ulelong >0x24 752>>>0x58 ulelong >0 Y8950 (MSX-Audio), 753>>0x34 ulelong >0x28 754>>>0x5C ulelong >0 YMF262 (OPL3), 755>>0x34 ulelong >0x2C 756>>>0x60 ulelong >0 YMF278B (OPL4), 757>>0x34 ulelong >0x30 758>>>0x64 ulelong >0 YMF271 (OPX), 759>>0x34 ulelong >0x34 760>>>0x68 ulelong >0 YMZ280B (PCMD8), 761>>0x34 ulelong >0x38 762>>>0x6C ulelong >0 RF5C164 (PCM), 763>>0x34 ulelong >0x3C 764>>>0x70 ulelong >0 PWM, 765>>0x34 ulelong >0x40 766>>>0x74 ulelong >0 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, 775# VGM 1.61 776>>0x34 ulelong >0x4C 777>>>0x80 ulelong >0 DMG, 778>>0x34 ulelong >0x50 779>>>0x84 lelong >0 NES APU, 780>>>0x84 lelong <0 NES APU with FDS, 781>>0x34 ulelong >0x54 782>>>0x88 ulelong >0 MultiPCM, 783>>0x34 ulelong >0x58 784>>>0x8C ulelong >0 uPD7759 (ADPCM Speech), 785>>0x34 ulelong >0x5C 786>>>0x90 ulelong >0 OKIM6258 (ADPCM Speech), 787>>0x34 ulelong >0x64 788>>>0x98 ulelong >0 OKIM6295 (ADPCM), 789>>0x34 ulelong >0x68 790>>>0x9C ulelong >0 K051649, 791>>0x34 ulelong >0x6C 792>>>0xA0 ulelong >0 K054539, 793>>0x34 ulelong >0x70 794>>>0xA4 ulelong >0 HuC6280, 795>>0x34 ulelong >0x74 796>>>0xA8 ulelong >0 C140, 797>>0x34 ulelong >0x78 798>>>0xAC ulelong >0 K053260, 799>>0x34 ulelong >0x7C 800>>>0xB0 ulelong >0 Pokey, 801>>0x34 ulelong >0x80 802>>>0xB4 ulelong >0 QSound, 803# VGM 1.71 804>>0x34 ulelong >0x84 805>>>0xB8 ulelong >0 SCSP, 806>>0x34 ulelong >0x8C 807>>>0xC0 ulelong >0 WonderSwan, 808>>0x34 ulelong >0x90 809>>>0xC4 ulelong >0 VSU, 810>>0x34 ulelong >0x94 811>>>0xC8 ulelong >0 SAA1099, 812>>0x34 ulelong >0x98 813>>>0xCC ulelong >0 ES5503 (DOC), 814>>0x34 ulelong >0x9C 815>>>0xD0 lelong >0 ES5505 (OTIS), 816>>>0xD0 lelong <0 ES5506 (OTTO), 817>>0x34 ulelong >0xA4 818>>>0xD8 ulelong >0 X1-010, 819>>0x34 ulelong >0xA8 820>>>0xDC ulelong >0 C352, 821>>0x34 ulelong >0xAC 822>>>0xE0 ulelong >0 GA20, 823 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 827# 8280 string SCOW 829>4 byte 0xc4 GVOX Encore music, version 5.0 or above 830>4 byte 0xc2 GVOX Encore music, version < 5.0 831 8320 string ZBOT 833>4 byte 0xc5 GVOX Encore music, version < 5.0 834 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 8400 string AUDIMG 841# skip text files starting with string "AUDIMG" 842>13 ubyte <13 Garmin Voice Processing Module 843!:mime audio/x-vpm-wav-garmin 844!:ext vpm 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) 850>>13 ubyte x \b.%.2d 851# year of release (like 2006, 2007, 2008) 852>>14 uleshort x \b.%.4d 853# hour of release (0-23) 854>>11 ubyte x %.2d 855# minute of release (0-59) 856>>10 ubyte x \b:%.2d 857# second of release (0-59) 858>>9 ubyte x \b:%.2d 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 867# 2nd phrase? 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 872>>16 uleshort >0 873>>>(16.s) ulelong >0 \b, at %#x 874# WAV length 875# 1 space char after "bytes" to get phrase "bytes RIFF" 876>>>>(16.s+4) ulelong >0 %u bytes 877# look for magic 878>>>>>(&-8.l) string RIFF 879# determine type by ./riff 880>>>>>>&-4 indirect x 881# 2 - ~ 131 WAV samples following same way 882# 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 8880 ubequad 0xa141190fecc8ced6 Garmin Voice Processing Module (encrypted) 889!:mime audio/x-vpm-garmin 890!:ext vpm 891 892# From Martin Mueller Skarbiniks Pedersen 8930 string GDM 894>0x3 byte 0xFE General Digital Music. 895>0x4 string >\0 title: "%s" 896>0x24 string >\0 musician: "%s" 897>>0x44 beshort 0x0D0A 898>>>0x46 byte 0x1A 899>>>>0x47 string GMFS Version 900>>>>0x4B byte x %d. 901>>>>0x4C byte x \b%02d 902>>>>0x4D beshort 0x000 (2GDM v 903>>>>0x4F byte x \b%d. 904>>>>>0x50 byte x \b%d) 905 9060 string MTM Multitracker 907>0x3 byte/16 x Version %d. 908>0x3 byte&0x0F x \b%02d 909>>0x4 string >\0 title: "%s" 910 9110 string MO3 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 918 9190 string ADRVPACK AProSys module 920 921# ftp://ftp.modland.com/pub/documents/format_documentation/\ 922# Art%20Of%20Noise%20(.aon).txt 9230 string AON 924>4 string "ArtOfNoise by Bastian Spiegel(twice/lego)" 925>0x2e string NAME Art of Noise Tracker Song 926>3 string <9 927>3 string 4 (4 voices) 928>3 string 8 (8 voices) 929>>0x36 string >\0 Title: "%s" 930 9310 string FAR 932>0x2c byte 0x0d 933>0x2d byte 0x0a 934>0x2e byte 0x1a 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" 939 940# magic for Klystrack, https://kometbomb.github.io/klystrack/ 941# from Alex Myczko <alex@aiei.ch> 9420 string cyd!song Klystrack song 943>8 byte >0 \b, version %u 944>8 byte >26 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 961 9620 string cyd!inst Klystrack instrument 963 964# magic for WOPL instrument files, https://github.com/Wohlstand/OPL3BankEditor 965# see Specifications/WOPL-and-OPLI-Specification.txt 966 9670 string WOPL3-INST\0 WOPL instrument 968>11 leshort x \b, version %u 9690 string WOPL3-BANK\0 WOPL instrument bank 970>11 leshort x \b, version %u 971 972# AdLib/OPL instrument files. Format specifications on 973# http://www.shikadi.net/moddingwiki 9740 string Junglevision\ Patch\ File Junglevision instrument data 9750 string #OPL_II# DMX OP2 instrument data 9760 string IBK\x1a IBK instrument data 9770 string 2OP\x1a IBK instrument data, 2 operators 9780 string 4OP\x1a IBK instrument data, 4 operators 9792 string ADLIB- AdLib instrument data 980>0 byte x \b, version %u 981>1 byte x \b.%u 982 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> 9880x00 beshort 0x8000 989>(2.S-2) string (c)CRI CRI ADX ADPCM audio 990!:ext adx 991!:mime audio/x-adx 992!:strength +50 993>>0x12 byte x v%u 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 1000>>0x12 byte 0x03 1001>>>0x02 beshort >0x2B 1002>>>>0x18 belong !0 \b, looping 1003>>0x12 byte 0x04 1004>>>0x02 beshort >0x37 1005>>>>0x24 belong !0 \b, looping 1006>>0x13 byte&0x08 0x08 \b, encrypted 1007 1008# Lossless audio (.la) (http://www.lossless-audio.com/) 10090 string LA 1010>2 string 03 Lossless audio version 0.3 1011>2 string 04 Lossless audio version 0.4 1012 1013# Sony PlayStation Audio (.xa) 10140 leshort 0x4158 Sony PlayStation Audio 1015 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> 10200 string PSF 1021>3 byte 0x01 1022>3 byte 0x02 1023>3 byte 0x11 1024>3 byte 0x12 1025>3 byte 0x13 1026>3 byte 0x21 1027>3 byte 0x22 1028>3 byte 0x23 1029>3 byte 0x41 1030>>0 string PSF Portable Sound Format 1031!:mime audio/x-psf 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) 1041 1042# Atari 8-bit SAP audio format 1043# http://asap.sourceforge.net/sap-format.html 1044# Added by David Korth <gerbilsoft@gerbilsoft.com> 10450 string SAP\r\n Atari 8-bit SAP audio file 1046!:mime audio/x-sap 1047!:ext sap 1048>5 search/1024 NAME 1049>>&1 string x \b: %s 1050>>5 search/1024 AUTHOR 1051>>>&1 string x by %s 1052 1053# Nintendo Wii BRSTM audio format (fields) 1054# NOTE: Assuming HEAD starts at 0x40. 1055# FIXME: Replace 0x48 with HEAD offset plus 8. 10560 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, 1064>>>>&-2 byte 1 mono 1065>>>>&-2 byte 2 stereo 1066>>>>&-2 byte 3 3 channels 1067>>>>&-2 byte 4 quad 1068>>>>&-2 byte >4 %u channels 1069>>>>&0 beshort !0 %u Hz 1070 1071# Nintendo Wii BRSTM audio format 1072# https://wiibrew.org/wiki/BRSTM_file 1073# Added by David Korth <gerbilsoft@gerbilsoft.com> 10740 string RSTM Nintendo Wii BRSTM audio file 1075!:mime audio/x-brstm 1076!:ext brstm 1077# Wii is big-endian, so default to BE. 1078>4 beshort 0xFEFF 1079>>0 use nintendo-wii-brstm-fields 1080>4 leshort 0xFEFF 1081>>0 use \^nintendo-wii-brstm-fields 1082 1083# Nintendo 3DS BCSTM audio format (fields) 10840 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, 1092>>&0x1E byte 1 mono 1093>>&0x1E byte 2 stereo 1094>>&0x1E byte 3 3 channels 1095>>&0x1E byte 4 quad 1096>>&0x1E byte >4 %u channels 1097>>&0x20 lelong !0 %u Hz 1098 1099# Nintendo 3DS BCSTM audio format 1100# https://www.3dbrew.org/wiki/BCSTM 1101# Added by David Korth <gerbilsoft@gerbilsoft.com> 11020 string CSTM Nintendo 3DS BCSTM audio file 1103!:mime audio/x-bcstm 1104!:ext bcstm 1105# 3DS is little-endian, so default to LE. 1106>4 leshort 0xFEFF 1107>>0 use nintendo-3ds-bcstm-fields 1108>4 beshort 0xFEFF 1109>>0 use \^nintendo-3ds-bcstm-fields 1110 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> 11150 string FSTM Nintendo Wii U BFSTM audio file 1116!:mime audio/x-bfstm 1117!:ext bfstm 1118# BFSTM is used on both Wii U (BE) and Switch (LE), 1119# so default to LE. 1120>4 leshort 0xFEFF 1121>>0 use nintendo-3ds-bcstm-fields 1122>4 beshort 0xFEFF 1123>>0 use \^nintendo-3ds-bcstm-fields 1124 1125# Nintendo 3DS BCSTM audio format (fields) 11260 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 1136 1137# Nintendo 3DS BCWAV audio format 1138# https://www.3dbrew.org/wiki/BCWAV 1139# Added by David Korth <gerbilsoft@gerbilsoft.com> 11400 string CWAV Nintendo 3DS BCWAV audio file 1141!:mime audio/x-bcwav 1142!:ext bcwav 1143# 3DS is little-endian, so default to LE. 1144>4 leshort 0xFEFF 1145>>0 use nintendo-3ds-bcwav-fields 1146>4 beshort 0xFEFF 1147>>0 use \^nintendo-3ds-bcwav-fields 1148 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> 11530 string FRM8 115412 string DSD\x20 DSDIFF audio bitstream data 1155!:mime audio/x-dff 1156!:ext dff 1157 1158# format version chunk 1159>&0 string FVER 1160# version 1 1161>>&8 byte 1 1162 1163# v1 / sampling resolution ( 1 bit PDM only ) 1164>>>&0 string x \b, 1 bit 1165 1166# v1 / sound property chunk 1167>>>&0 search/0xff PROP 1168>>>>&8 string SND 1169 1170# v1 / sound property chunk / channel configuration chunk 1171>>>>>&0 search/0xff CHNL 1172>>>>>>&8 ubeshort 1 \b, mono 1173>>>>>>&8 ubeshort 2 1174>>>>>>>&0 string SLFTSRGT \b, stereo 1175>>>>>>>&0 default x \b, 2 channels 1176>>>>>>&8 ubeshort 3 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 1180>>>>>>&8 ubeshort 4 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 1184>>>>>>&8 ubeshort 5 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 1188>>>>>>&8 ubeshort 6 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 1192 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 1199 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 1205 1206# v1 / quest for metadata 1207>>>&0 string x 1208 1209# v1 / quest for metadata / edited master information chunk 1210>>>>&0 search DIIN 1211>>>>>&0 ubequad >0 \b, "edited master" metadata 1212 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 1218 1219# v1 / quest for metadata / failure ( possibly due to -P bytes=... being too low ) 1220>>>>&0 default x \b, ID3 missing (or unreachable) 1221 1222# version > 1 or 0 1223>>&0 default x \b, unknown version 1224 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> 12300 string DSD\x20 DSF audio bitstream data 1231!:mime audio/x-dsf 1232!:ext dsf 1233 1234# format chunk 1235>28 string fmt\x20 1236# version 1 1237>>&8 ulelong 1 1238 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 1242 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 1251>>>>&0 default x 1252>>>>>&4 ulelong x \b, %u channels 1253 1254# v1 / sample rate chunk 1255>>>>&0 string x \b, 1256>>>>&12 ulelong%44100 0 1257>>>>>&-4 ulelong/44100 x "DSD %u" 1258>>>>&12 ulelong x %u Hz 1259 1260# v1 / compression 1261>>>>&0 string x 1262>>>>>&0 ulelong 0 \b, no compression 1263>>>>>&0 default x \b, unknown compression 1264 1265# v1 / embedded ID3v2 metadata 1266>>>0 string x \b, ID3 1267>>>>20 ulequad !0 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 1274 1275# version > 1 or 0 1276>>&0 default x \b, unknown version 1277