Added CSV support

main
Nes370 2024-07-24 17:37:44 -07:00
parent 35ffcbad33
commit ba49572ffb
4 changed files with 1019 additions and 73 deletions

View File

@ -10,5 +10,7 @@
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/javaFlacEncoder"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/javaFlacEncoder"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Apache Commons IO"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Apache Commons IO"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JColor"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JColor"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Apache Commons CSV"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Apache Commons Codec"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

View File

@ -6,7 +6,7 @@
4,0x0004,Compaq VSELP (Vector Sum Excited Linear Prediction) 4,0x0004,Compaq VSELP (Vector Sum Excited Linear Prediction)
5,0x0005,IBM CVSDM (Continuously Variable Slope Delta Modulation) 5,0x0005,IBM CVSDM (Continuously Variable Slope Delta Modulation)
6,0x0006,ITU G.711 a-law 6,0x0006,ITU G.711 a-law
7,0x0007,ITU G.711 u-law 7,0x0007,ITU G.711 µ-law
8,0x0008,Microsoft DTS 8,0x0008,Microsoft DTS
9,0x0009,DRM 9,0x0009,DRM
10,0x000A,WMA 9 Speech 10,0x000A,WMA 9 Speech
@ -131,7 +131,7 @@
355,0x0163,Windows Media Audio Lossless V9 355,0x0163,Windows Media Audio Lossless V9
356,0x0164,WMA Pro over S/PDIF 356,0x0164,WMA Pro over S/PDIF
357,0x0165,XMA (Xbox Media Audio) 357,0x0165,XMA (Xbox Media Audio)
358,0x0166,XMA2 (Xbox Media Audio V2) 358,0x0166,XMA2 (Xbox Media Audio 2)
368,0x0170,UNISYS NAP ADPCM 368,0x0170,UNISYS NAP ADPCM
369,0x0171,UNISYS NAP ULAW 369,0x0171,UNISYS NAP ULAW
370,0x0172,UNISYS NAP ALAW 370,0x0172,UNISYS NAP ALAW

1 Decimal value Hexadecimal value Description
6 4 0x0004 Compaq VSELP (Vector Sum Excited Linear Prediction)
7 5 0x0005 IBM CVSDM (Continuously Variable Slope Delta Modulation)
8 6 0x0006 ITU G.711 a-law
9 7 0x0007 ITU G.711 u-law ITU G.711 µ-law
10 8 0x0008 Microsoft DTS
11 9 0x0009 DRM
12 10 0x000A WMA 9 Speech
131 355 0x0163 Windows Media Audio Lossless V9
132 356 0x0164 WMA Pro over S/PDIF
133 357 0x0165 XMA (Xbox Media Audio)
134 358 0x0166 XMA2 (Xbox Media Audio V2) XMA2 (Xbox Media Audio 2)
135 368 0x0170 UNISYS NAP ADPCM
136 369 0x0171 UNISYS NAP ULAW
137 370 0x0172 UNISYS NAP ALAW

684
res/manufacturer.csv Normal file
View File

@ -0,0 +1,684 @@
SysEx ID Number,Company Name
00H,Unspecified
01H,Sequential Circuits
02H,IDP
03H,"Voyetra Turtle Beach, Inc."
04H,Moog Music
05H,Passport Designs
06H,Lexicon Inc.
07H,Kurzweil / Young Chang
08H,Fender
09H,MIDI9
0AH,AKG Acoustics
0BH,Voyce Music
0CH,WaveFrame (Timeline)
0DH,"ADA Signal Processors, Inc."
0EH,Garfield Electronics
0FH,Ensoniq
10H,Oberheim
11H,Apple
12H,Grey Matter Response
13H,Digidesign Inc.
14H,Palmtree Instruments
15H,JLCooper Electronics
16H,Lowrey Organ Company
17H,Adams-Smith
18H,E-mu
19H,Harmony Systems
1AH,ART
1BH,Baldwin
1CH,Eventide
1DH,Inventronics
1EH,Key Concepts
1FH,Clarity
20H,Passac
21H,Proel Labs (SIEL)
22H,Synthaxe (UK)
23H,Stepp
24H,Hohner
25H,Twister
26H,Ketron s.r.l.
27H,Jellinghaus MS
28H,Southworth Music Systems
29H,PPG (Germany)
2AH,CESYG Ltd.
2BH,Solid State Logic Organ Systems
2CH,Audio Veritrieb-P. Struven
2DH,Neve
2EH,Soundtracs Ltd.
2FH,Elka
30H,Dynacord
31H,Viscount International Spa (Intercontinental Electronics)
32H,Drawmer
33H,Clavia Digital Instruments
34H,Audio Architecture
35H,Generalmusic Corp SpA
36H,Cheetah Marketing
37H,C.T.M.
38H,Simmons UK
39H,Soundcraft Electronics
3AH,Steinberg Media Technologies GmbH
3BH,Wersi Gmbh
3CH,AVAB Niethammer AB
3DH,Digigram
3EH,Waldorf Electronics GmbH
3FH,Quasimidi
40H to 5FH,[Assigned by AMEI for Japanese Manufacturers]
60H to 7FH,[Reserved for Other Uses]
00H 00H 01H,Time/Warner Interactive
00H 00H 02H,Advanced Gravis Comp. Tech Ltd.
00H 00H 03H,Media Vision
00H 00H 04H,Dornes Research Group
00H 00H 05H,K-Muse
00H 00H 06H,Stypher
00H 00H 07H,Digital Music Corp.
00H 00H 08H,IOTA Systems
00H 00H 09H,New England Digital
00H 00H 0AH,Artisyn
00H 00H 0BH,IVL Technologies Ltd.
00H 00H 0CH,Southern Music Systems
00H 00H 0DH,Lake Butler Sound Company
00H 00H 0EH,Alesis Studio Electronics
00H 00H 0FH,Sound Creation
00H 00H 01H,Time/Warner Interactive
00H 00H 10H,DOD Electronics Corp.
00H 00H 11H,Studer-Editech
00H 00H 12H,Sonus
00H 00H 13H,Temporal Acuity Products
00H 00H 14H,Perfect Fretworks
00H 00H 15H,KAT Inc.
00H 00H 16H,Opcode Systems
00H 00H 17H,Rane Corporation
00H 00H 18H,Anadi Electronique
00H 00H 19H,KMX
00H 00H 1AH,Allen & Heath Brenell
00H 00H 1BH,Peavey Electronics
00H 00H 1CH,360 Systems
00H 00H 1DH,Spectrum Design and Development
00H 00H 1EH,Marquis Music
00H 00H 1FH,Zeta Systems
00H 00H 20H,Axxes (Brian Parsonett)
00H 00H 21H,Orban
00H 00H 22H,Indian Valley Mfg.
00H 00H 23H,Triton
00H 00H 24H,KTI
00H 00H 25H,Breakaway Technologies
00H 00H 26H,Leprecon / CAE Inc.
00H 00H 27H,Harrison Systems Inc.
00H 00H 28H,Future Lab/Mark Kuo
00H 00H 29H,Rocktron Corporation
00H 00H 2AH,PianoDisc
00H 00H 2BH,Cannon Research Group
00H 00H 2CH,Reserved
00H 00H 2DH,Rodgers Instrument LLC
00H 00H 2EH,Blue Sky Logic
00H 00H 2FH,Encore Electronics
00H 00H 30H,Uptown
00H 00H 31H,Voce
00H 00H 32H,"CTI Audio, Inc. (Musically Intel. Devs.)"
00H 00H 33H,S3 Incorporated
00H 00H 34H,Broderbund / Red Orb
00H 00H 35H,Allen Organ Co.
00H 00H 36H,Reserved
00H 00H 37H,Music Quest
00H 00H 38H,Aphex
00H 00H 39H,Gallien Krueger
00H 00H 3AH,IBM
00H 00H 3BH,Mark Of The Unicorn
00H 00H 3CH,Hotz Corporation
00H 00H 3DH,ETA Lighting
00H 00H 3EH,NSI Corporation
00H 00H 3FH,"Ad Lib, Inc."
00H 00H 40H,Richmond Sound Design
00H 00H 41H,Microsoft
00H 00H 42H,Mindscape (Software Toolworks)
00H 00H 43H,Russ Jones Marketing / Niche
00H 00H 44H,Intone
00H 00H 45H,Advanced Remote Technologies
00H 00H 46H,White Instruments
00H 00H 47H,GT Electronics/Groove Tubes
00H 00H 48H,Pacific Research & Engineering
00H 00H 49H,"Timeline Vista, Inc."
00H 00H 4AH,Mesa Boogie Ltd.
00H 00H 4BH,FSLI
00H 00H 4CH,Sequoia Development Group
00H 00H 4DH,Studio Electronics
00H 00H 4EH,"Euphonix, Inc"
00H 00H 4FH,"InterMIDI, Inc."
00H 00H 50H,MIDI Solutions Inc.
00H 00H 51H,3DO Company
00H 00H 52H,Lightwave Research / High End Systems
00H 00H 53H,Micro-W Corporation
00H 00H 54H,"Spectral Synthesis, Inc."
00H 00H 55H,Lone Wolf
00H 00H 56H,Studio Technologies Inc.
00H 00H 57H,"Peterson Electro-Musical Product, Inc."
00H 00H 58H,Atari Corporation
00H 00H 59H,Marion Systems Corporation
00H 00H 5AH,Design Event
00H 00H 5BH,Winjammer Software Ltd.
00H 00H 5CH,AT&T Bell Laboratories
00H 00H 5DH,Reserved
00H 00H 5EH,Symetrix
00H 00H 5FH,MIDI the World
00H 00H 60H,Spatializer
00H 00H 61H,Micros <20>eN MIDI
00H 00H 62H,Accordians International
00H 00H 63H,EuPhonics (now 3Com)
00H 00H 64H,Musonix
00H 00H 65H,Turtle Beach Systems (Voyetra)
00H 00H 66H,Loud Technologies / Mackie
00H 00H 67H,Compuserve
00H 00H 68H,BEC Technologies
00H 00H 69H,QRS Music Inc
00H 00H 6AH,P.G. Music
00H 00H 6BH,Sierra Semiconductor
00H 00H 6CH,EpiGraf
00H 00H 6DH,Electronics Diversified Inc
00H 00H 6EH,Tune 1000
00H 00H 6FH,Advanced Micro Devices
00H 00H 70H,Mediamation
00H 00H 71H,Sabine Musical Mfg. Co. Inc.
00H 00H 72H,Woog Labs
00H 00H 73H,Micropolis Corp
00H 00H 74H,Ta Horng Musical Instrument
00H 00H 75H,e-Tek Labs (Forte Tech)
00H 00H 76H,Electro-Voice
00H 00H 77H,Midisoft Corporation
00H 00H 78H,QSound Labs
00H 00H 79H,Westrex
00H 00H 7AH,Nvidia
00H 00H 7BH,ESS Technology
00H 00H 7CH,Media Trix Peripherals
00H 00H 7DH,Brooktree Corp
00H 00H 7EH,Otari Corp
00H 00H 7FH,"Key Electronics, Inc."
00H 01H 00H,Shure Incorporated
00H 01H 01H,AuraSound
00H 01H 02H,Crystal Semiconductor
00H 01H 03H,Conexant (Rockwell)
00H 01H 04H,Silicon Graphics
00H 01H 05H,M-Audio (Midiman)
00H 01H 06H,PreSonus
00H 01H 08H,Topaz Enterprises
00H 01H 09H,Cast Lighting
00H 01H 0AH,Microsoft Consumer Division
00H 01H 0BH,Sonic Foundry
00H 01H 0CH,Line 6 (Fast Forward)?(Yamaha)
00H 01H 0DH,Beatnik Inc
00H 01H 0EH,Van Koevering Company
00H 01H 0FH,Altech Systems
00H 01H 10H,S & S Research
00H 01H 11H,VLSI Technology
00H 01H 12H,Chromatic Research
00H 01H 13H,Sapphire
00H 01H 14H,IDRC
00H 01H 15H,Justonic Tuning
00H 01H 16H,TorComp Research Inc.
00H 01H 17H,Newtek Inc.
00H 01H 18H,Sound Sculpture
00H 01H 19H,Walker Technical
00H 01H 1AH,Digital Harmony (PAVO)
00H 01H 1BH,InVision Interactive
00H 01H 1CH,T-Square Design
00H 01H 1DH,Nemesys Music Technology
00H 01H 1EH,DBX Professional (Harman Intl)
00H 01H 1FH,Syndyne Corporation
00H 01H 20H,Bitheadz
00H 01H 21H,BandLab Technologies
00H 01H 22H,Analog Devices
00H 01H 23H,National Semiconductor
00H 01H 24H,Boom Theory / Adinolfi Alternative Percussion
00H 01H 25H,Virtual DSP Corporation
00H 01H 26H,Antares Systems
00H 01H 27H,Angel Software
00H 01H 28H,St Louis Music
00H 01H 29H,Passport Music Software LLC (Gvox)
00H 01H 2AH,Ashley Audio Inc.
00H 01H 2BH,Vari-Lite Inc.
00H 01H 2CH,Summit Audio Inc.
00H 01H 2DH,Aureal Semiconductor Inc.
00H 01H 2EH,SeaSound LLC
00H 01H 2FH,U.S. Robotics
00H 01H 30H,Aurisis Research
00H 01H 31H,Nearfield Research
00H 01H 32H,FM7 Inc
00H 01H 33H,Swivel Systems
00H 01H 34H,Hyperactive Audio Systems
00H 01H 35H,MidiLite (Castle Studios Productions)
00H 01H 36H,Radikal Technologies
00H 01H 37H,Roger Linn Design
00H 01H 38H,TC-Helicon Vocal Technologies
00H 01H 39H,Event Electronics
00H 01H 3AH,Sonic Network Inc
00H 01H 3BH,Realtime Music Solutions
00H 01H 3CH,Apogee Digital
00H 01H 3DH,"Classical Organs, Inc."
00H 01H 3EH,Microtools Inc.
00H 01H 3FH,Numark Industries
00H 01H 40H,"Frontier Design Group, LLC"
00H 01H 41H,Recordare LLC
00H 01H 42H,Starr Labs
00H 01H 43H,Voyager Sound Inc.
00H 01H 44H,Manifold Labs
00H 01H 45H,Aviom Inc.
00H 01H 46H,Mixmeister Technology
00H 01H 47H,Notation Software
00H 01H 48H,Mercurial Communications
00H 01H 49H,Wave Arts
00H 01H 4AH,Logic Sequencing Devices
00H 01H 4BH,Axess Electronics
00H 01H 4CH,Muse Research
00H 01H 4DH,Open Labs
00H 01H 4EH,Guillemot Corp
00H 01H 4FH,Samson Technologies
00H 01H 50H,Electronic Theatre Controls
00H 01H 51H,Blackberry (RIM)
00H 01H 52H,Mobileer
00H 01H 53H,Synthogy
00H 01H 54H,Lynx Studio Technology Inc.
00H 01H 55H,Damage Control Engineering LLC
00H 01H 56H,"Yost Engineering, Inc."
00H 01H 57H,Brooks & Forsman Designs LLC / DrumLite
00H 01H 58H,Infinite Response
00H 01H 59H,Garritan Corp
00H 01H 5AH,"Plogue Art et Technologie, Inc"
00H 01H 5BH,RJM Music Technology
00H 01H 5CH,Custom Solutions Software
00H 01H 5DH,Sonarcana LLC / Highly Liquid
00H 01H 5EH,Centrance
00H 01H 5FH,Kesumo LLC
00H 01H 60H,Stanton (Gibson Brands)
00H 01H 61H,Livid Instruments
00H 01H 62H,First Act / 745 Media
00H 01H 63H,"Pygraphics, Inc."
00H 01H 64H,Panadigm Innovations Ltd
00H 01H 65H,Avedis Zildjian Co
00H 01H 66H,Auvital Music Corp
00H 01H 67H,You Rock Guitar (was: Inspired Instruments)
00H 01H 68H,Chris Grigg Designs
00H 01H 69H,Slate Digital LLC
00H 01H 6AH,Mixware
00H 01H 6BH,Social Entropy
00H 01H 6CH,Source Audio LLC
00H 01H 6DH,Ernie Ball / Music Man
00H 01H 6EH,Fishman
00H 01H 6FH,Custom Audio Electronics
00H 01H 70H,American Audio/DJ
00H 01H 71H,Mega Control Systems
00H 01H 72H,Kilpatrick Audio
00H 01H 73H,iConnectivity
00H 01H 74H,Fractal Audio
00H 01H 75H,NetLogic Microsystems
00H 01H 76H,Music Computing
00H 01H 77H,Nektar Technology Inc
00H 01H 78H,Zenph Sound Innovations
00H 01H 79H,DJTechTools.com
00H 01H 7AH,Rezonance Labs
00H 01H 7BH,Decibel Eleven
00H 01H 7CH,CNMAT
00H 01H 7DH,Media Overkill
00H 01H 7EH,Confusion Studios
00H 01H 7FH,moForte Inc
00H 02H 00H,Miselu Inc
00H 02H 01H,Amelia<69>fs Compass LLC
00H 02H 02H,Zivix LLC
00H 02H 03H,Artiphon
00H 02H 04H,Synclavier Digital
00H 02H 05H,Light & Sound Control Devices LLC
00H 02H 06H,Retronyms Inc
00H 02H 07H,JS Technologies
00H 02H 08H,Quicco Sound
00H 02H 09H,A-Designs Audio
00H 02H 0AH,McCarthy Music Corp
00H 02H 0BH,Denon DJ
00H 02H 0CH,Keith Robert Murray
00H 02H 0DH,Google
00H 02H 0EH,ISP Technologies
00H 02H 0FH,Abstrakt Instruments LLC
00H 02H 10H,Meris LLC
00H 02H 11H,Sensorpoint LLC
00H 02H 12H,Hi-Z Labs
00H 02H 13H,Imitone
00H 02H 14H,Intellijel Designs Inc.
00H 02H 15H,Dasz Instruments Inc.
00H 02H 16H,Remidi
00H 02H 17H,Disaster Area Designs LLC
00H 02H 18H,Universal Audio
00H 02H 19H,Carter Duncan Corp
00H 02H 1AH,Essential Technology
00H 02H 1BH,Cantux Research LLC
00H 02H 1CH,Hummel Technologies
00H 02H 1DH,Sensel Inc
00H 02H 1EH,DBML Group
00H 02H 1FH,Madrona Labs
00H 02H 20H,Mesa Boogie
00H 02H 21H,Effigy Labs
00H 02H 22H,Amenote
00H 02H 23H,Red Panda LLC
00H 02H 24H,OnSong LLC
00H 02H 25H,Jamboxx Inc.
00H 02H 26H,Electro-Harmonix?
00H 02H 27H,RnD64 Inc
00H 02H 28H?,Neunaber Technology LLC?
00H 02H 29H,Kaom Inc.
00H 02H 2AH,Hallowell EMC
00H 02H 2BH,"Sound Devices, LLC"
00H 02H 2CH,"Spectrasonics, Inc"
00H 02H 2DH,"Second Sound, LLC"
00H 02H 2EH,8eo (Horn)
00H 02H 2FH,VIDVOX LLC
00H 02H 30H,Matthews Effects
00H 02H 31H,Bright Blue Beetle
00H 02H 32H,Audio Impressions
00H 02H 33H,?Looperlative
00H 02H 34H?,Steinway
00H 02H 35H,Ingenious Arts and Technologies LLC
00H 02H 36H,DCA Audio
00H 02H 37H,Buchla USA
00H 02H 38H,Sinicon
00H 02H 39H,Isla Instruments
00H 02H 3AH,Soundiron LLC
00H 02H 3BH,"Sonoclast, LLC"
00H 02H 3CH,Copper and Cedar
00H 02H 3DH,Whirled Notes
00H 02H 3EH,"Cejetvole, LLC"
00H 02H 3FH,DAWn Audio LLC
00H 02H 40H,Space Brain Circuits
00H 02H 41H,Caedence?
00H 02H 42H,"HCN Designs, LLC (The MIDI Maker)"
00H 02H 43H,PTZOptics
00H 02H 44H,Noise Engineering
00H 02H 45H,Synthesia LLC
00H 02H 46H,Jeff Whitehead Lutherie LLC
00H 02H 47H,Wampler Pedals Inc.
00H 02H 48H,Tapis Magique
00H 02H 49H,Leaf Secrets
00H 02H 4AH,Groove Synthesis
00H 02H 4BH,Audiocipher Technologies LLC
00H 02H 4CH,Mellotron Inc.
00H 02H 4DH,Hologram Electronics LLC
00H 02H 4EH,"iCON Americas, LLC"
00H 02H 4FH,Singular Sound
00H 02H 50H,Genovation Inc
00H 02H 51H,Method Red
00H 02H 52H,Brain Inventions
00H 02H 53H,Synervoz Communications Inc.
00H 02H 54H,Hypertriangle Inc
00H 20H 00H,Dream SAS
00H 20H 01H,Strand Lighting
00H 20H 02H,Amek Div of Harman Industries
00H 20H 03H,Casa Di Risparmio Di Loreto
00H 20H 04H,B?hm electronic GmbH
00H 20H 05H,Syntec Digital Audio
00H 20H 06H,Trident Audio Developments
00H 20H 07H,Real World Studio
00H 20H 08H,"Evolution Synthesis, Ltd"
00H 20H 09H,Yes Technology
00H 20H 0AH,Audiomatica
00H 20H 0BH,Bontempi SpA (Sigma)
00H 20H 0CH,F.B.T. Elettronica SpA
00H 20H 0DH,MidiTemp GmbH
00H 20H 0EH,LA Audio (Larking Audio)
00H 20H 0FH,Zero 88 Lighting Limited
00H 20H 10H,Micon Audio Electronics GmbH
00H 20H 11H,Forefront Technology
00H 20H 12H,Studio Audio and Video Ltd.
00H 20H 13H,Kenton Electronics
00H 20H 14H,Celco/ Electrosonic
00H 20H 15H,ADB
00H 20H 16H,Marshall Products Limited
00H 20H 17H,DDA
00H 20H 18H,BSS Audio Ltd.
00H 20H 19H,MA Lighting Technology
00H 20H 1AH,Fatar SRL c/o Music Industries
00H 20H 1BH,QSC Audio Products Inc.
00H 20H 1CH,Artisan Clasic Organ Inc.
00H 20H 1DH,Orla Spa
00H 20H 1EH,Pinnacle Audio (Klark Teknik PLC)
00H 20H 1FH,TC Electronics
00H 20H 20H,Doepfer Musikelektronik GmbH
00H 20H 21H,Creative ATC / E-mu
00H 20H 22H,Seyddo/Minami
00H 20H 23H,LG Electronics (Goldstar)
00H 20H 24H,Midisoft sas di M.Cima & C
00H 20H 25H,Samick Musical Inst. Co. Ltd.
00H 20H 26H,Penny and Giles (Bowthorpe PLC)
00H 20H 27H,Acorn Computer
00H 20H 28H,LSC Electronics Pty. Ltd.
00H 20H 29H,Focusrite/Novation
00H 20H 2AH,Samkyung Mechatronics
00H 20H 2BH,Medeli Electronics Co.
00H 20H 2CH,Charlie Lab SRL
00H 20H 2DH,Blue Chip Music Technology
00H 20H 2EH,BEE OH Corp
00H 20H 2FH,LG Semicon America
00H 20H 30H,TESI
00H 20H 31H,EMAGIC
00H 20H 32H,Behringer GmbH
00H 20H 33H,Access Music Electronics
00H 20H 34H,Synoptic
00H 20H 35H,Hanmesoft
00H 20H 36H,Terratec Electronic GmbH
00H 20H 37H,Proel SpA
00H 20H 38H,IBK MIDI
00H 20H 39H,IRCAM
00H 20H 3AH,Propellerhead Software
00H 20H 3BH,Red Sound Systems Ltd
00H 20H 3CH,Elektron ESI AB
00H 20H 3DH,Sintefex Audio
00H 20H 3EH,MAM (Music and More)
00H 20H 3FH,Amsaro GmbH
00H 20H 40H,CDS Advanced Technology BV (Lanbox)
00H 20H 41H,Mode Machines (Touched By Sound GmbH)
00H 20H 42H,DSP Arts
00H 20H 43H,Phil Rees Music Tech
00H 20H 44H,Stamer Musikanlagen GmbH
00H 20H 45H,Musical Muntaner S.A. dba Soundart
00H 20H 46H,C-Mexx Software
00H 20H 47H,Klavis Technologies
00H 20H 48H,Noteheads AB
00H 20H 49H,Algorithmix
00H 20H 4AH,Skrydstrup R&D
00H 20H 4BH,Professional Audio Company
00H 20H 4CH,NewWave Labs (MadWaves)
00H 20H 4DH,Vermona
00H 20H 4EH,Nokia
00H 20H 4FH,Wave Idea
00H 20H 50H,Hartmann GmbH
00H 20H 51H,Lion<6F>fs Tracs
00H 20H 52H,Analogue Systems
00H 20H 53H,Focal-JMlab
00H 20H 54H,Ringway Electronics (Chang-Zhou) Co Ltd
00H 20H 55H,Faith Technologies (Digiplug)
00H 20H 56H,Showworks
00H 20H 57H,Manikin Electronic
00H 20H 58H,1 Come Tech
00H 20H 59H,Phonic Corp
00H 20H 5AH,Dolby Australia (Lake)
00H 20H 5BH,Silansys Technologies
00H 20H 5CH,Winbond Electronics
00H 20H 5DH,Cinetix Medien und Interface GmbH
00H 20H 5EH,A&G Soluzioni Digitali
00H 20H 5FH,Sequentix GmbH
00H 20H 60H,Oram Pro Audio
00H 20H 61H,Be4 Ltd
00H 20H 62H,Infection Music
00H 20H 63H,Central Music Co. (CME)
00H 20H 64H,genoQs Machines GmbH
00H 20H 65H,Medialon
00H 20H 66H,Waves Audio Ltd
00H 20H 67H,Jerash Labs
00H 20H 68H,Da Fact
00H 20H 69H,Elby Designs
00H 20H 6AH,Spectral Audio
00H 20H 6BH,Arturia
00H 20H 6CH,Vixid
00H 20H 6DH,C-Thru Music
00H 20H 6EH,Ya Horng Electronic Co LTD
00H 20H 6FH,SM Pro Audio
00H 20H 70H,OTO Machines
00H 20H 71H,ELZAB S.A. (G LAB)
00H 20H 72H,Blackstar Amplification Ltd
00H 20H 73H,M3i Technologies GmbH
00H 20H 74H,Gemalto (from Xiring)
00H 20H 75H,Prostage SL
00H 20H 76H,Teenage Engineering
00H 20H 77H,Tobias Erichsen Consulting
00H 20H 78H,Nixer Ltd
00H 20H 79H,Hanpin Electron Co Ltd
00H 20H 7AH,<2C>gMIDI-hardware<72>h R.Sowa
00H 20H 7BH,Beyond Music Industrial Ltd
00H 20H 7CH,Kiss Box B.V.
00H 20H 7DH,Misa Digital Technologies Ltd
00H 20H 7EH,AI Musics Technology Inc
00H 20H 7FH,Serato Inc LP
00H 21H 00H,Limex
00H 21H 01H,Kyodday (Tokai)
00H 21H 02H,Mutable Instruments
00H 21H 03H,PreSonus Software Ltd
00H 21H 04H,Ingenico (was Xiring)
00H 21H 05H,Fairlight Instruments Pty Ltd
00H 21H 06H,Musicom Lab
00H 21H 07H,Modal Electronics (Modulus/VacoLoco)
00H 21H 08H,RWA (Hong Kong) Limited
00H 21H 09H,Native Instruments
00H 21H 0AH,Naonext
00H 21H 0BH,MFB
00H 21H 0CH,Teknel Research
00H 21H 0DH,Ploytec GmbH
00H 21H 0EH,Surfin Kangaroo Studio
00H 21H 0FH,Philips Electronics HK Ltd
00H 21H 10H,ROLI Ltd
00H 21H 11H,Panda-Audio Ltd
00H 21H 12H,BauM Software
00H 21H 13H,Machinewerks Ltd.
00H 21H 14H,Xiamen Elane Electronics
00H 21H 15H,Marshall Amplification PLC
00H 21H 16H,Kiwitechnics Ltd
00H 21H 17H,Rob Papen
00H 21H 18H,Spicetone OU
00H 21H 19H,V3Sound
00H 21H 1AH,IK Multimedia
00H 21H 1BH,Novalia Ltd
00H 21H 1CH,Modor Music
00H 21H 1DH,Ableton
00H 21H 1EH,Dtronics
00H 21H 1FH,ZAQ Audio
00H 21H 20H,Muabaobao Education Technology Co Ltd
00H 21H 21H,Flux Effects
00H 21H 22H,Audiothingies (MCDA)
00H 21H 23H,Retrokits
00H 21H 24H,Morningstar FX Pte Ltd
00H 21H 25H,Changsha Hotone Audio Co Ltd
00H 21H 26H,Expressive E
00H 21H 27H,Expert Sleepers Ltd
00H 21H 28H,Timecode-Vision Technology
00H 21H 29H,Hornberg Research GbR
00H 21H 2AH,Sonic Potions
00H 21H 2BH,Audiofront
00H 21H 2CH,Fred<65>fs Lab
00H 21H 2DH,Audio Modeling
00H 21H 2EH,C. Bechstein Digital GmbH
00H 21H 2FH,Motas Electronics Ltd
00H 21H 30H,Elk Audio
00H 21H 31H,Sonic Academy Ltd
00H 21H 32H,Bome Software
00H 21H 33H,AODYO SAS
00H 21H 34H,Pianoforce S.R.O
00H 21H 35H,Dreadbox P.C.
00H 21H 36H,TouchKeys Instruments Ltd
00H 21H 37H,The Gigrig Ltd
00H 21H 38H,ALM Co
00H 21H 39H,CH Sound Design
00H 21H 3AH,Beat Bars
00H 21H 3BH,Blokas
00H 21H 3CH,GEWA Music GmbH
00H 21H 3DH,dadamachines
00H 21H 3EH,Augmented Instruments Ltd (Bela)
00H 21H 3FH,Supercritical Ltd
00H 21H 40H,Genki Instruments
00H 21H 41H,Marienberg Devices Germany
00H 21H 42H,Supperware Ltd
00H 21H 43H,Imoxplus BVBA?
00H 21H 44H,Swapp Technologies SRL
00H 21H 45H,Electra One S.R.O.
00H 21H 46H,Digital Clef Limited
00H 21H 47H,Paul Whittington Group Ltd
00H 21H 48H,Music Hackspace
00H 21H 49H,Bitwig GMBH
00H 21H 4AH,Enhancia
00H 21H 4BH,KV 331
00H 21H 4CH,Tehnicadelarte
00H 21H 4DH,Endlesss Studio
00H 21H 4EH,"Dongguan MIDIPLUS Co., LTD"
00H 21H 4FH,Gracely Pty Ltd.
00H 21H 50H,Embodme
00H 21H 51H,MuseScore
00H 21H 52H,EPFL (E-Lab)
00H 21H 53H?,Orb3 Ltd.
00H 21H 54H,Pitch Innovations
00H 21H 55H,Playces?
00H 21H 56H,UDO Audio LTD
00H 21H 57H,RSS Sound Design
00H 21H 58H,Nonlinear Labs GmbH
00H 21H 59H,"Robkoo Information & Technologies Co., Ltd."
00H 21H 5AH,Cari Electronic
00H 21H 5BH,Oxi Electronic Instruments SL
00H 21H 5CH,XMPT
00H 21H 5DH,SHANGHAI HUAXIN MUSICAL INSTRUMENT?
00H 21H 5EH,"Shenzhen Huashi Technology Co., Ltd"
00H 21H 60H,"Guangzhou Rantion Technology Co., Ltd.?"
00H 21H 61H,Ryme Music
00H 21H 62H,GS Music
00H 21H 63H,"Shenzhen Flamma Innovation Co., Ltd"
?00H 21H 64H,"Shenzhen Mooer Audio Co.,LTD.?"
?00H 21H 65H,Raw Material Software Limited (JUCE)
?00H 21H 66H,Birdkids
?00H 21H 67H,Beijing QianYinHuLian Tech. Co
?00H 21H 68H,Nimikry Music OG
00H 21H 69H,Newzik
00H 21H 6AH,Hamburg Wave
00H 21H 6BH,Grimm Audio
00H 21H 6CH,Arcana Instruments LTD.
00H 21H 6DH,GameChanger Audio
00H 21H 6EH,OakTone
00H 21H 6FH,The Digi-Gurdy: A MIDI Hurdy Gurdy
00H 21H 70H,MusiKraken
00H 21H 71H,PhotoSynth > InterFACE
00H 21H 72H,Instruments of Things
00H 21H 73H,oodi
00H 21H 74H,Komires Sp. z o.o.
00H 21H 75H,Lehle GmbH
00H 21H 76H,Jou? Music Instruments
00H 21H 77H,Guangzhou Pearl River Amason Digital Musical Instrument Co. Ltd
00H 21H 78H,Rhesus Engineering GmbH
40H,Kawai Musical Instruments MFG. CO. Ltd
41H,Roland Corporation
42H,Korg Inc.
43H,Yamaha Corporation
44H,Casio Computer Co. Ltd
46H,Kamiya Studio Co. Ltd
47H,Akai Electric Co. Ltd.
48H,"Victor Company of Japan, Ltd."
4BH,Fujitsu Limited
4CH,Sony Corporation
4EH,Teac Corporation
50H,"Matsushita Electric Industrial Co. , Ltd"
51H,Fostex Corporation
52H,Zoom Corporation
54H,"Matsushita Communication Industrial Co., Ltd."
55H,"Suzuki Musical Instruments MFG. Co., Ltd."
56H,Fuji Sound Corporation Ltd.
57H,"Acoustic Technical Laboratory, Inc."
59H,"Faith, Inc."
5AH,Internet Corporation
5CH,Seekers Co. Ltd.
5FH,SD Card Association
00H 40H 00H,Crimson Technology Inc.
00H 40H 01H,Softbank Mobile Corp
00H 40H 03H,D&M Holdings Inc.
00H 40H 04H,Xing Inc.
00H 40H 05H,AlphaTheta Corporation
00H 40H 06H,Pioneer?Corporation
00H 40H 07H,Slik?Corporation
1 SysEx ID Number Company Name
2 00H Unspecified
3 01H Sequential Circuits
4 02H IDP
5 03H Voyetra Turtle Beach, Inc.
6 04H Moog Music
7 05H Passport Designs
8 06H Lexicon Inc.
9 07H Kurzweil / Young Chang
10 08H Fender
11 09H MIDI9
12 0AH AKG Acoustics
13 0BH Voyce Music
14 0CH WaveFrame (Timeline)
15 0DH ADA Signal Processors, Inc.
16 0EH Garfield Electronics
17 0FH Ensoniq
18 10H Oberheim
19 11H Apple
20 12H Grey Matter Response
21 13H Digidesign Inc.
22 14H Palmtree Instruments
23 15H JLCooper Electronics
24 16H Lowrey Organ Company
25 17H Adams-Smith
26 18H E-mu
27 19H Harmony Systems
28 1AH ART
29 1BH Baldwin
30 1CH Eventide
31 1DH Inventronics
32 1EH Key Concepts
33 1FH Clarity
34 20H Passac
35 21H Proel Labs (SIEL)
36 22H Synthaxe (UK)
37 23H Stepp
38 24H Hohner
39 25H Twister
40 26H Ketron s.r.l.
41 27H Jellinghaus MS
42 28H Southworth Music Systems
43 29H PPG (Germany)
44 2AH CESYG Ltd.
45 2BH Solid State Logic Organ Systems
46 2CH Audio Veritrieb-P. Struven
47 2DH Neve
48 2EH Soundtracs Ltd.
49 2FH Elka
50 30H Dynacord
51 31H Viscount International Spa (Intercontinental Electronics)
52 32H Drawmer
53 33H Clavia Digital Instruments
54 34H Audio Architecture
55 35H Generalmusic Corp SpA
56 36H Cheetah Marketing
57 37H C.T.M.
58 38H Simmons UK
59 39H Soundcraft Electronics
60 3AH Steinberg Media Technologies GmbH
61 3BH Wersi Gmbh
62 3CH AVAB Niethammer AB
63 3DH Digigram
64 3EH Waldorf Electronics GmbH
65 3FH Quasimidi
66 40H to 5FH [Assigned by AMEI for Japanese Manufacturers]
67 60H to 7FH [Reserved for Other Uses]
68 00H 00H 01H Time/Warner Interactive
69 00H 00H 02H Advanced Gravis Comp. Tech Ltd.
70 00H 00H 03H Media Vision
71 00H 00H 04H Dornes Research Group
72 00H 00H 05H K-Muse
73 00H 00H 06H Stypher
74 00H 00H 07H Digital Music Corp.
75 00H 00H 08H IOTA Systems
76 00H 00H 09H New England Digital
77 00H 00H 0AH Artisyn
78 00H 00H 0BH IVL Technologies Ltd.
79 00H 00H 0CH Southern Music Systems
80 00H 00H 0DH Lake Butler Sound Company
81 00H 00H 0EH Alesis Studio Electronics
82 00H 00H 0FH Sound Creation
83 00H 00H 01H Time/Warner Interactive
84 00H 00H 10H DOD Electronics Corp.
85 00H 00H 11H Studer-Editech
86 00H 00H 12H Sonus
87 00H 00H 13H Temporal Acuity Products
88 00H 00H 14H Perfect Fretworks
89 00H 00H 15H KAT Inc.
90 00H 00H 16H Opcode Systems
91 00H 00H 17H Rane Corporation
92 00H 00H 18H Anadi Electronique
93 00H 00H 19H KMX
94 00H 00H 1AH Allen & Heath Brenell
95 00H 00H 1BH Peavey Electronics
96 00H 00H 1CH 360 Systems
97 00H 00H 1DH Spectrum Design and Development
98 00H 00H 1EH Marquis Music
99 00H 00H 1FH Zeta Systems
100 00H 00H 20H Axxes (Brian Parsonett)
101 00H 00H 21H Orban
102 00H 00H 22H Indian Valley Mfg.
103 00H 00H 23H Triton
104 00H 00H 24H KTI
105 00H 00H 25H Breakaway Technologies
106 00H 00H 26H Leprecon / CAE Inc.
107 00H 00H 27H Harrison Systems Inc.
108 00H 00H 28H Future Lab/Mark Kuo
109 00H 00H 29H Rocktron Corporation
110 00H 00H 2AH PianoDisc
111 00H 00H 2BH Cannon Research Group
112 00H 00H 2CH Reserved
113 00H 00H 2DH Rodgers Instrument LLC
114 00H 00H 2EH Blue Sky Logic
115 00H 00H 2FH Encore Electronics
116 00H 00H 30H Uptown
117 00H 00H 31H Voce
118 00H 00H 32H CTI Audio, Inc. (Musically Intel. Devs.)
119 00H 00H 33H S3 Incorporated
120 00H 00H 34H Broderbund / Red Orb
121 00H 00H 35H Allen Organ Co.
122 00H 00H 36H Reserved
123 00H 00H 37H Music Quest
124 00H 00H 38H Aphex
125 00H 00H 39H Gallien Krueger
126 00H 00H 3AH IBM
127 00H 00H 3BH Mark Of The Unicorn
128 00H 00H 3CH Hotz Corporation
129 00H 00H 3DH ETA Lighting
130 00H 00H 3EH NSI Corporation
131 00H 00H 3FH Ad Lib, Inc.
132 00H 00H 40H Richmond Sound Design
133 00H 00H 41H Microsoft
134 00H 00H 42H Mindscape (Software Toolworks)
135 00H 00H 43H Russ Jones Marketing / Niche
136 00H 00H 44H Intone
137 00H 00H 45H Advanced Remote Technologies
138 00H 00H 46H White Instruments
139 00H 00H 47H GT Electronics/Groove Tubes
140 00H 00H 48H Pacific Research & Engineering
141 00H 00H 49H Timeline Vista, Inc.
142 00H 00H 4AH Mesa Boogie Ltd.
143 00H 00H 4BH FSLI
144 00H 00H 4CH Sequoia Development Group
145 00H 00H 4DH Studio Electronics
146 00H 00H 4EH Euphonix, Inc
147 00H 00H 4FH InterMIDI, Inc.
148 00H 00H 50H MIDI Solutions Inc.
149 00H 00H 51H 3DO Company
150 00H 00H 52H Lightwave Research / High End Systems
151 00H 00H 53H Micro-W Corporation
152 00H 00H 54H Spectral Synthesis, Inc.
153 00H 00H 55H Lone Wolf
154 00H 00H 56H Studio Technologies Inc.
155 00H 00H 57H Peterson Electro-Musical Product, Inc.
156 00H 00H 58H Atari Corporation
157 00H 00H 59H Marion Systems Corporation
158 00H 00H 5AH Design Event
159 00H 00H 5BH Winjammer Software Ltd.
160 00H 00H 5CH AT&T Bell Laboratories
161 00H 00H 5DH Reserved
162 00H 00H 5EH Symetrix
163 00H 00H 5FH MIDI the World
164 00H 00H 60H Spatializer
165 00H 00H 61H Micros eN MIDI
166 00H 00H 62H Accordians International
167 00H 00H 63H EuPhonics (now 3Com)
168 00H 00H 64H Musonix
169 00H 00H 65H Turtle Beach Systems (Voyetra)
170 00H 00H 66H Loud Technologies / Mackie
171 00H 00H 67H Compuserve
172 00H 00H 68H BEC Technologies
173 00H 00H 69H QRS Music Inc
174 00H 00H 6AH P.G. Music
175 00H 00H 6BH Sierra Semiconductor
176 00H 00H 6CH EpiGraf
177 00H 00H 6DH Electronics Diversified Inc
178 00H 00H 6EH Tune 1000
179 00H 00H 6FH Advanced Micro Devices
180 00H 00H 70H Mediamation
181 00H 00H 71H Sabine Musical Mfg. Co. Inc.
182 00H 00H 72H Woog Labs
183 00H 00H 73H Micropolis Corp
184 00H 00H 74H Ta Horng Musical Instrument
185 00H 00H 75H e-Tek Labs (Forte Tech)
186 00H 00H 76H Electro-Voice
187 00H 00H 77H Midisoft Corporation
188 00H 00H 78H QSound Labs
189 00H 00H 79H Westrex
190 00H 00H 7AH Nvidia
191 00H 00H 7BH ESS Technology
192 00H 00H 7CH Media Trix Peripherals
193 00H 00H 7DH Brooktree Corp
194 00H 00H 7EH Otari Corp
195 00H 00H 7FH Key Electronics, Inc.
196 00H 01H 00H Shure Incorporated
197 00H 01H 01H AuraSound
198 00H 01H 02H Crystal Semiconductor
199 00H 01H 03H Conexant (Rockwell)
200 00H 01H 04H Silicon Graphics
201 00H 01H 05H M-Audio (Midiman)
202 00H 01H 06H PreSonus
203 00H 01H 08H Topaz Enterprises
204 00H 01H 09H Cast Lighting
205 00H 01H 0AH Microsoft Consumer Division
206 00H 01H 0BH Sonic Foundry
207 00H 01H 0CH Line 6 (Fast Forward)?(Yamaha)
208 00H 01H 0DH Beatnik Inc
209 00H 01H 0EH Van Koevering Company
210 00H 01H 0FH Altech Systems
211 00H 01H 10H S & S Research
212 00H 01H 11H VLSI Technology
213 00H 01H 12H Chromatic Research
214 00H 01H 13H Sapphire
215 00H 01H 14H IDRC
216 00H 01H 15H Justonic Tuning
217 00H 01H 16H TorComp Research Inc.
218 00H 01H 17H Newtek Inc.
219 00H 01H 18H Sound Sculpture
220 00H 01H 19H Walker Technical
221 00H 01H 1AH Digital Harmony (PAVO)
222 00H 01H 1BH InVision Interactive
223 00H 01H 1CH T-Square Design
224 00H 01H 1DH Nemesys Music Technology
225 00H 01H 1EH DBX Professional (Harman Intl)
226 00H 01H 1FH Syndyne Corporation
227 00H 01H 20H Bitheadz
228 00H 01H 21H BandLab Technologies
229 00H 01H 22H Analog Devices
230 00H 01H 23H National Semiconductor
231 00H 01H 24H Boom Theory / Adinolfi Alternative Percussion
232 00H 01H 25H Virtual DSP Corporation
233 00H 01H 26H Antares Systems
234 00H 01H 27H Angel Software
235 00H 01H 28H St Louis Music
236 00H 01H 29H Passport Music Software LLC (Gvox)
237 00H 01H 2AH Ashley Audio Inc.
238 00H 01H 2BH Vari-Lite Inc.
239 00H 01H 2CH Summit Audio Inc.
240 00H 01H 2DH Aureal Semiconductor Inc.
241 00H 01H 2EH SeaSound LLC
242 00H 01H 2FH U.S. Robotics
243 00H 01H 30H Aurisis Research
244 00H 01H 31H Nearfield Research
245 00H 01H 32H FM7 Inc
246 00H 01H 33H Swivel Systems
247 00H 01H 34H Hyperactive Audio Systems
248 00H 01H 35H MidiLite (Castle Studios Productions)
249 00H 01H 36H Radikal Technologies
250 00H 01H 37H Roger Linn Design
251 00H 01H 38H TC-Helicon Vocal Technologies
252 00H 01H 39H Event Electronics
253 00H 01H 3AH Sonic Network Inc
254 00H 01H 3BH Realtime Music Solutions
255 00H 01H 3CH Apogee Digital
256 00H 01H 3DH Classical Organs, Inc.
257 00H 01H 3EH Microtools Inc.
258 00H 01H 3FH Numark Industries
259 00H 01H 40H Frontier Design Group, LLC
260 00H 01H 41H Recordare LLC
261 00H 01H 42H Starr Labs
262 00H 01H 43H Voyager Sound Inc.
263 00H 01H 44H Manifold Labs
264 00H 01H 45H Aviom Inc.
265 00H 01H 46H Mixmeister Technology
266 00H 01H 47H Notation Software
267 00H 01H 48H Mercurial Communications
268 00H 01H 49H Wave Arts
269 00H 01H 4AH Logic Sequencing Devices
270 00H 01H 4BH Axess Electronics
271 00H 01H 4CH Muse Research
272 00H 01H 4DH Open Labs
273 00H 01H 4EH Guillemot Corp
274 00H 01H 4FH Samson Technologies
275 00H 01H 50H Electronic Theatre Controls
276 00H 01H 51H Blackberry (RIM)
277 00H 01H 52H Mobileer
278 00H 01H 53H Synthogy
279 00H 01H 54H Lynx Studio Technology Inc.
280 00H 01H 55H Damage Control Engineering LLC
281 00H 01H 56H Yost Engineering, Inc.
282 00H 01H 57H Brooks & Forsman Designs LLC / DrumLite
283 00H 01H 58H Infinite Response
284 00H 01H 59H Garritan Corp
285 00H 01H 5AH Plogue Art et Technologie, Inc
286 00H 01H 5BH RJM Music Technology
287 00H 01H 5CH Custom Solutions Software
288 00H 01H 5DH Sonarcana LLC / Highly Liquid
289 00H 01H 5EH Centrance
290 00H 01H 5FH Kesumo LLC
291 00H 01H 60H Stanton (Gibson Brands)
292 00H 01H 61H Livid Instruments
293 00H 01H 62H First Act / 745 Media
294 00H 01H 63H Pygraphics, Inc.
295 00H 01H 64H Panadigm Innovations Ltd
296 00H 01H 65H Avedis Zildjian Co
297 00H 01H 66H Auvital Music Corp
298 00H 01H 67H You Rock Guitar (was: Inspired Instruments)
299 00H 01H 68H Chris Grigg Designs
300 00H 01H 69H Slate Digital LLC
301 00H 01H 6AH Mixware
302 00H 01H 6BH Social Entropy
303 00H 01H 6CH Source Audio LLC
304 00H 01H 6DH Ernie Ball / Music Man
305 00H 01H 6EH Fishman
306 00H 01H 6FH Custom Audio Electronics
307 00H 01H 70H American Audio/DJ
308 00H 01H 71H Mega Control Systems
309 00H 01H 72H Kilpatrick Audio
310 00H 01H 73H iConnectivity
311 00H 01H 74H Fractal Audio
312 00H 01H 75H NetLogic Microsystems
313 00H 01H 76H Music Computing
314 00H 01H 77H Nektar Technology Inc
315 00H 01H 78H Zenph Sound Innovations
316 00H 01H 79H DJTechTools.com
317 00H 01H 7AH Rezonance Labs
318 00H 01H 7BH Decibel Eleven
319 00H 01H 7CH CNMAT
320 00H 01H 7DH Media Overkill
321 00H 01H 7EH Confusion Studios
322 00H 01H 7FH moForte Inc
323 00H 02H 00H Miselu Inc
324 00H 02H 01H Ameliafs Compass LLC
325 00H 02H 02H Zivix LLC
326 00H 02H 03H Artiphon
327 00H 02H 04H Synclavier Digital
328 00H 02H 05H Light & Sound Control Devices LLC
329 00H 02H 06H Retronyms Inc
330 00H 02H 07H JS Technologies
331 00H 02H 08H Quicco Sound
332 00H 02H 09H A-Designs Audio
333 00H 02H 0AH McCarthy Music Corp
334 00H 02H 0BH Denon DJ
335 00H 02H 0CH Keith Robert Murray
336 00H 02H 0DH Google
337 00H 02H 0EH ISP Technologies
338 00H 02H 0FH Abstrakt Instruments LLC
339 00H 02H 10H Meris LLC
340 00H 02H 11H Sensorpoint LLC
341 00H 02H 12H Hi-Z Labs
342 00H 02H 13H Imitone
343 00H 02H 14H Intellijel Designs Inc.
344 00H 02H 15H Dasz Instruments Inc.
345 00H 02H 16H Remidi
346 00H 02H 17H Disaster Area Designs LLC
347 00H 02H 18H Universal Audio
348 00H 02H 19H Carter Duncan Corp
349 00H 02H 1AH Essential Technology
350 00H 02H 1BH Cantux Research LLC
351 00H 02H 1CH Hummel Technologies
352 00H 02H 1DH Sensel Inc
353 00H 02H 1EH DBML Group
354 00H 02H 1FH Madrona Labs
355 00H 02H 20H Mesa Boogie
356 00H 02H 21H Effigy Labs
357 00H 02H 22H Amenote
358 00H 02H 23H Red Panda LLC
359 00H 02H 24H OnSong LLC
360 00H 02H 25H Jamboxx Inc.
361 00H 02H 26H Electro-Harmonix?
362 00H 02H 27H RnD64 Inc
363 00H 02H 28H? Neunaber Technology LLC?
364 00H 02H 29H Kaom Inc.
365 00H 02H 2AH Hallowell EMC
366 00H 02H 2BH Sound Devices, LLC
367 00H 02H 2CH Spectrasonics, Inc
368 00H 02H 2DH Second Sound, LLC
369 00H 02H 2EH 8eo (Horn)
370 00H 02H 2FH VIDVOX LLC
371 00H 02H 30H Matthews Effects
372 00H 02H 31H Bright Blue Beetle
373 00H 02H 32H Audio Impressions
374 00H 02H 33H ?Looperlative
375 00H 02H 34H? Steinway
376 00H 02H 35H Ingenious Arts and Technologies LLC
377 00H 02H 36H DCA Audio
378 00H 02H 37H Buchla USA
379 00H 02H 38H Sinicon
380 00H 02H 39H Isla Instruments
381 00H 02H 3AH Soundiron LLC
382 00H 02H 3BH Sonoclast, LLC
383 00H 02H 3CH Copper and Cedar
384 00H 02H 3DH Whirled Notes
385 00H 02H 3EH Cejetvole, LLC
386 00H 02H 3FH DAWn Audio LLC
387 00H 02H 40H Space Brain Circuits
388 00H 02H 41H Caedence?
389 00H 02H 42H HCN Designs, LLC (The MIDI Maker)
390 00H 02H 43H PTZOptics
391 00H 02H 44H Noise Engineering
392 00H 02H 45H Synthesia LLC
393 00H 02H 46H Jeff Whitehead Lutherie LLC
394 00H 02H 47H Wampler Pedals Inc.
395 00H 02H 48H Tapis Magique
396 00H 02H 49H Leaf Secrets
397 00H 02H 4AH Groove Synthesis
398 00H 02H 4BH Audiocipher Technologies LLC
399 00H 02H 4CH Mellotron Inc.
400 00H 02H 4DH Hologram Electronics LLC
401 00H 02H 4EH iCON Americas, LLC
402 00H 02H 4FH Singular Sound
403 00H 02H 50H Genovation Inc
404 00H 02H 51H Method Red
405 00H 02H 52H Brain Inventions
406 00H 02H 53H Synervoz Communications Inc.
407 00H 02H 54H Hypertriangle Inc
408 00H 20H 00H Dream SAS
409 00H 20H 01H Strand Lighting
410 00H 20H 02H Amek Div of Harman Industries
411 00H 20H 03H Casa Di Risparmio Di Loreto
412 00H 20H 04H B?hm electronic GmbH
413 00H 20H 05H Syntec Digital Audio
414 00H 20H 06H Trident Audio Developments
415 00H 20H 07H Real World Studio
416 00H 20H 08H Evolution Synthesis, Ltd
417 00H 20H 09H Yes Technology
418 00H 20H 0AH Audiomatica
419 00H 20H 0BH Bontempi SpA (Sigma)
420 00H 20H 0CH F.B.T. Elettronica SpA
421 00H 20H 0DH MidiTemp GmbH
422 00H 20H 0EH LA Audio (Larking Audio)
423 00H 20H 0FH Zero 88 Lighting Limited
424 00H 20H 10H Micon Audio Electronics GmbH
425 00H 20H 11H Forefront Technology
426 00H 20H 12H Studio Audio and Video Ltd.
427 00H 20H 13H Kenton Electronics
428 00H 20H 14H Celco/ Electrosonic
429 00H 20H 15H ADB
430 00H 20H 16H Marshall Products Limited
431 00H 20H 17H DDA
432 00H 20H 18H BSS Audio Ltd.
433 00H 20H 19H MA Lighting Technology
434 00H 20H 1AH Fatar SRL c/o Music Industries
435 00H 20H 1BH QSC Audio Products Inc.
436 00H 20H 1CH Artisan Clasic Organ Inc.
437 00H 20H 1DH Orla Spa
438 00H 20H 1EH Pinnacle Audio (Klark Teknik PLC)
439 00H 20H 1FH TC Electronics
440 00H 20H 20H Doepfer Musikelektronik GmbH
441 00H 20H 21H Creative ATC / E-mu
442 00H 20H 22H Seyddo/Minami
443 00H 20H 23H LG Electronics (Goldstar)
444 00H 20H 24H Midisoft sas di M.Cima & C
445 00H 20H 25H Samick Musical Inst. Co. Ltd.
446 00H 20H 26H Penny and Giles (Bowthorpe PLC)
447 00H 20H 27H Acorn Computer
448 00H 20H 28H LSC Electronics Pty. Ltd.
449 00H 20H 29H Focusrite/Novation
450 00H 20H 2AH Samkyung Mechatronics
451 00H 20H 2BH Medeli Electronics Co.
452 00H 20H 2CH Charlie Lab SRL
453 00H 20H 2DH Blue Chip Music Technology
454 00H 20H 2EH BEE OH Corp
455 00H 20H 2FH LG Semicon America
456 00H 20H 30H TESI
457 00H 20H 31H EMAGIC
458 00H 20H 32H Behringer GmbH
459 00H 20H 33H Access Music Electronics
460 00H 20H 34H Synoptic
461 00H 20H 35H Hanmesoft
462 00H 20H 36H Terratec Electronic GmbH
463 00H 20H 37H Proel SpA
464 00H 20H 38H IBK MIDI
465 00H 20H 39H IRCAM
466 00H 20H 3AH Propellerhead Software
467 00H 20H 3BH Red Sound Systems Ltd
468 00H 20H 3CH Elektron ESI AB
469 00H 20H 3DH Sintefex Audio
470 00H 20H 3EH MAM (Music and More)
471 00H 20H 3FH Amsaro GmbH
472 00H 20H 40H CDS Advanced Technology BV (Lanbox)
473 00H 20H 41H Mode Machines (Touched By Sound GmbH)
474 00H 20H 42H DSP Arts
475 00H 20H 43H Phil Rees Music Tech
476 00H 20H 44H Stamer Musikanlagen GmbH
477 00H 20H 45H Musical Muntaner S.A. dba Soundart
478 00H 20H 46H C-Mexx Software
479 00H 20H 47H Klavis Technologies
480 00H 20H 48H Noteheads AB
481 00H 20H 49H Algorithmix
482 00H 20H 4AH Skrydstrup R&D
483 00H 20H 4BH Professional Audio Company
484 00H 20H 4CH NewWave Labs (MadWaves)
485 00H 20H 4DH Vermona
486 00H 20H 4EH Nokia
487 00H 20H 4FH Wave Idea
488 00H 20H 50H Hartmann GmbH
489 00H 20H 51H Lionfs Tracs
490 00H 20H 52H Analogue Systems
491 00H 20H 53H Focal-JMlab
492 00H 20H 54H Ringway Electronics (Chang-Zhou) Co Ltd
493 00H 20H 55H Faith Technologies (Digiplug)
494 00H 20H 56H Showworks
495 00H 20H 57H Manikin Electronic
496 00H 20H 58H 1 Come Tech
497 00H 20H 59H Phonic Corp
498 00H 20H 5AH Dolby Australia (Lake)
499 00H 20H 5BH Silansys Technologies
500 00H 20H 5CH Winbond Electronics
501 00H 20H 5DH Cinetix Medien und Interface GmbH
502 00H 20H 5EH A&G Soluzioni Digitali
503 00H 20H 5FH Sequentix GmbH
504 00H 20H 60H Oram Pro Audio
505 00H 20H 61H Be4 Ltd
506 00H 20H 62H Infection Music
507 00H 20H 63H Central Music Co. (CME)
508 00H 20H 64H genoQs Machines GmbH
509 00H 20H 65H Medialon
510 00H 20H 66H Waves Audio Ltd
511 00H 20H 67H Jerash Labs
512 00H 20H 68H Da Fact
513 00H 20H 69H Elby Designs
514 00H 20H 6AH Spectral Audio
515 00H 20H 6BH Arturia
516 00H 20H 6CH Vixid
517 00H 20H 6DH C-Thru Music
518 00H 20H 6EH Ya Horng Electronic Co LTD
519 00H 20H 6FH SM Pro Audio
520 00H 20H 70H OTO Machines
521 00H 20H 71H ELZAB S.A. (G LAB)
522 00H 20H 72H Blackstar Amplification Ltd
523 00H 20H 73H M3i Technologies GmbH
524 00H 20H 74H Gemalto (from Xiring)
525 00H 20H 75H Prostage SL
526 00H 20H 76H Teenage Engineering
527 00H 20H 77H Tobias Erichsen Consulting
528 00H 20H 78H Nixer Ltd
529 00H 20H 79H Hanpin Electron Co Ltd
530 00H 20H 7AH gMIDI-hardwareh R.Sowa
531 00H 20H 7BH Beyond Music Industrial Ltd
532 00H 20H 7CH Kiss Box B.V.
533 00H 20H 7DH Misa Digital Technologies Ltd
534 00H 20H 7EH AI Musics Technology Inc
535 00H 20H 7FH Serato Inc LP
536 00H 21H 00H Limex
537 00H 21H 01H Kyodday (Tokai)
538 00H 21H 02H Mutable Instruments
539 00H 21H 03H PreSonus Software Ltd
540 00H 21H 04H Ingenico (was Xiring)
541 00H 21H 05H Fairlight Instruments Pty Ltd
542 00H 21H 06H Musicom Lab
543 00H 21H 07H Modal Electronics (Modulus/VacoLoco)
544 00H 21H 08H RWA (Hong Kong) Limited
545 00H 21H 09H Native Instruments
546 00H 21H 0AH Naonext
547 00H 21H 0BH MFB
548 00H 21H 0CH Teknel Research
549 00H 21H 0DH Ploytec GmbH
550 00H 21H 0EH Surfin Kangaroo Studio
551 00H 21H 0FH Philips Electronics HK Ltd
552 00H 21H 10H ROLI Ltd
553 00H 21H 11H Panda-Audio Ltd
554 00H 21H 12H BauM Software
555 00H 21H 13H Machinewerks Ltd.
556 00H 21H 14H Xiamen Elane Electronics
557 00H 21H 15H Marshall Amplification PLC
558 00H 21H 16H Kiwitechnics Ltd
559 00H 21H 17H Rob Papen
560 00H 21H 18H Spicetone OU
561 00H 21H 19H V3Sound
562 00H 21H 1AH IK Multimedia
563 00H 21H 1BH Novalia Ltd
564 00H 21H 1CH Modor Music
565 00H 21H 1DH Ableton
566 00H 21H 1EH Dtronics
567 00H 21H 1FH ZAQ Audio
568 00H 21H 20H Muabaobao Education Technology Co Ltd
569 00H 21H 21H Flux Effects
570 00H 21H 22H Audiothingies (MCDA)
571 00H 21H 23H Retrokits
572 00H 21H 24H Morningstar FX Pte Ltd
573 00H 21H 25H Changsha Hotone Audio Co Ltd
574 00H 21H 26H Expressive E
575 00H 21H 27H Expert Sleepers Ltd
576 00H 21H 28H Timecode-Vision Technology
577 00H 21H 29H Hornberg Research GbR
578 00H 21H 2AH Sonic Potions
579 00H 21H 2BH Audiofront
580 00H 21H 2CH Fredfs Lab
581 00H 21H 2DH Audio Modeling
582 00H 21H 2EH C. Bechstein Digital GmbH
583 00H 21H 2FH Motas Electronics Ltd
584 00H 21H 30H Elk Audio
585 00H 21H 31H Sonic Academy Ltd
586 00H 21H 32H Bome Software
587 00H 21H 33H AODYO SAS
588 00H 21H 34H Pianoforce S.R.O
589 00H 21H 35H Dreadbox P.C.
590 00H 21H 36H TouchKeys Instruments Ltd
591 00H 21H 37H The Gigrig Ltd
592 00H 21H 38H ALM Co
593 00H 21H 39H CH Sound Design
594 00H 21H 3AH Beat Bars
595 00H 21H 3BH Blokas
596 00H 21H 3CH GEWA Music GmbH
597 00H 21H 3DH dadamachines
598 00H 21H 3EH Augmented Instruments Ltd (Bela)
599 00H 21H 3FH Supercritical Ltd
600 00H 21H 40H Genki Instruments
601 00H 21H 41H Marienberg Devices Germany
602 00H 21H 42H Supperware Ltd
603 00H 21H 43H Imoxplus BVBA?
604 00H 21H 44H Swapp Technologies SRL
605 00H 21H 45H Electra One S.R.O.
606 00H 21H 46H Digital Clef Limited
607 00H 21H 47H Paul Whittington Group Ltd
608 00H 21H 48H Music Hackspace
609 00H 21H 49H Bitwig GMBH
610 00H 21H 4AH Enhancia
611 00H 21H 4BH KV 331
612 00H 21H 4CH Tehnicadelarte
613 00H 21H 4DH Endlesss Studio
614 00H 21H 4EH Dongguan MIDIPLUS Co., LTD
615 00H 21H 4FH Gracely Pty Ltd.
616 00H 21H 50H Embodme
617 00H 21H 51H MuseScore
618 00H 21H 52H EPFL (E-Lab)
619 00H 21H 53H? Orb3 Ltd.
620 00H 21H 54H Pitch Innovations
621 00H 21H 55H Playces?
622 00H 21H 56H UDO Audio LTD
623 00H 21H 57H RSS Sound Design
624 00H 21H 58H Nonlinear Labs GmbH
625 00H 21H 59H Robkoo Information & Technologies Co., Ltd.
626 00H 21H 5AH Cari Electronic
627 00H 21H 5BH Oxi Electronic Instruments SL
628 00H 21H 5CH XMPT
629 00H 21H 5DH SHANGHAI HUAXIN MUSICAL INSTRUMENT?
630 00H 21H 5EH Shenzhen Huashi Technology Co., Ltd
631 00H 21H 60H Guangzhou Rantion Technology Co., Ltd.?
632 00H 21H 61H Ryme Music
633 00H 21H 62H GS Music
634 00H 21H 63H Shenzhen Flamma Innovation Co., Ltd
635 ?00H 21H 64H Shenzhen Mooer Audio Co.,LTD.?
636 ?00H 21H 65H Raw Material Software Limited (JUCE)
637 ?00H 21H 66H Birdkids
638 ?00H 21H 67H Beijing QianYinHuLian Tech. Co
639 ?00H 21H 68H Nimikry Music OG
640 00H 21H 69H Newzik
641 00H 21H 6AH Hamburg Wave
642 00H 21H 6BH Grimm Audio
643 00H 21H 6CH Arcana Instruments LTD.
644 00H 21H 6DH GameChanger Audio
645 00H 21H 6EH OakTone
646 00H 21H 6FH The Digi-Gurdy: A MIDI Hurdy Gurdy
647 00H 21H 70H MusiKraken
648 00H 21H 71H PhotoSynth > InterFACE
649 00H 21H 72H Instruments of Things
650 00H 21H 73H oodi
651 00H 21H 74H Komires Sp. z o.o.
652 00H 21H 75H Lehle GmbH
653 00H 21H 76H Jou? Music Instruments
654 00H 21H 77H Guangzhou Pearl River Amason Digital Musical Instrument Co. Ltd
655 00H 21H 78H Rhesus Engineering GmbH
656 40H Kawai Musical Instruments MFG. CO. Ltd
657 41H Roland Corporation
658 42H Korg Inc.
659 43H Yamaha Corporation
660 44H Casio Computer Co. Ltd
661 46H Kamiya Studio Co. Ltd
662 47H Akai Electric Co. Ltd.
663 48H Victor Company of Japan, Ltd.
664 4BH Fujitsu Limited
665 4CH Sony Corporation
666 4EH Teac Corporation
667 50H Matsushita Electric Industrial Co. , Ltd
668 51H Fostex Corporation
669 52H Zoom Corporation
670 54H Matsushita Communication Industrial Co., Ltd.
671 55H Suzuki Musical Instruments MFG. Co., Ltd.
672 56H Fuji Sound Corporation Ltd.
673 57H Acoustic Technical Laboratory, Inc.
674 59H Faith, Inc.
675 5AH Internet Corporation
676 5CH Seekers Co. Ltd.
677 5FH SD Card Association
678 00H 40H 00H Crimson Technology Inc.
679 00H 40H 01H Softbank Mobile Corp
680 00H 40H 03H D&M Holdings Inc.
681 00H 40H 04H Xing Inc.
682 00H 40H 05H AlphaTheta Corporation
683 00H 40H 06H Pioneer?Corporation
684 00H 40H 07H Slik?Corporation

View File

@ -7,16 +7,19 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.RandomAccessFile; import java.io.RandomAccessFile;
import java.io.Reader;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Set; import java.util.Set;
import javaFlacEncoder.FLAC_FileEncoder; import javaFlacEncoder.FLAC_FileEncoder;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVRecord;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import com.diogonunes.jcolor.Ansi; import com.diogonunes.jcolor.Ansi;
@ -33,7 +36,7 @@ public class AudioExtractor {
* Activate alternate behavior for command line terminal. * Activate alternate behavior for command line terminal.
* Specifically prints things in a narrower width, and overwrites previous lines to add color. * Specifically prints things in a narrower width, and overwrites previous lines to add color.
*/ */
private final static boolean CMD_MODE = false; private final static boolean CMD_MODE = true;
/** /**
* ANSI code to go up one line, followed by a carriage return. * ANSI code to go up one line, followed by a carriage return.
@ -81,6 +84,11 @@ public class AudioExtractor {
* Indicates the start of an XMA stream chunk in WAV files. * Indicates the start of an XMA stream chunk in WAV files.
*/ */
private final static int ASCII_x2st = 0x7832_7374; private final static int ASCII_x2st = 0x7832_7374;
/**
* Hex value for the ASCII sequence "seek".
* Indicates the start of an XMA stream chunk in WAV files.
*/
private final static int ASCII_seek = 0x7365_656B;
/** /**
* Hex value for the ASCII sequence "fLaC". * Hex value for the ASCII sequence "fLaC".
* Indicates the start of an FLAC file. * Indicates the start of an FLAC file.
@ -137,53 +145,60 @@ public class AudioExtractor {
System.out.println("Program:\tRidge Racer 6 Audio Extractor " + Ansi.colorize("v1.0", Attribute.BRIGHT_GREEN_TEXT()) + " by " System.out.println("Program:\tRidge Racer 6 Audio Extractor " + Ansi.colorize("v1.0", Attribute.BRIGHT_GREEN_TEXT()) + " by "
+ Ansi.colorize("Nes", Attribute.TEXT_COLOR(252, 42, 124))); + Ansi.colorize("Nes", Attribute.TEXT_COLOR(252, 42, 124)));
System.out.println("Repository:\t" + Ansi.colorize("https://gitea.goblincave.synology.me/Nes/RR6AudioExtractor", Attribute.CYAN_TEXT())); System.out.println("Repository:\t" + Ansi.colorize("https://gitea.goblincave.synology.me/Nes/RR6AudioExtractor", Attribute.CYAN_TEXT()));
System.out.println();
// Initialize user input reader // Initialize user input reader
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// determine which operation to execute while(true) {
String operationInput = null;
if(args.length > 0)
operationInput = args[0];
String operation = retrieveOperation(reader, operationInput);
if(args.length == 0) { // no arguments provided // determine which operation to execute
String operationInput = null;
switch(operation) { if(args.length > 0)
case "identify": operationInput = args[0];
File unknownFile = retrieveFile(reader, "Please enter the path of a file: " + ANSI_BEIGE); String operation = retrieveOperation(reader, operationInput);
identify(unknownFile);
break; if(args.length == 0) { // no arguments provided
case "extract": // extract
// Determine package directory switch(operation) {
File currentDir = new File(new File(AudioExtractor.class.getProtectionDomain().getCodeSource().getLocation().toURI()) case "identify":
.getParent()); File unknownFile = retrieveFile(reader, "Please enter the path of a file: " + ANSI_BEIGE);
boolean packDirFound = false; identify(unknownFile);
do { break;
System.out.println(Ansi.colorize("\nPackage Directory:", Attribute.BOLD(), Attribute.CYAN_TEXT())); case "extract": // extract
System.out.println("- " + Ansi.colorize("Current", Attribute.BRIGHT_RED_TEXT()) + " directory:\t" // Determine package directory
+ Ansi.colorize(currentDir.getPath(), Attribute.BRIGHT_CYAN_TEXT())); File currentDir = new File(new File(AudioExtractor.class.getProtectionDomain().getCodeSource().getLocation().toURI())
.getParent());
} while(!packDirFound); boolean packDirFound = false;
break; do {
case "package": // pack System.out.println(Ansi.colorize("\nPackage Directory:", Attribute.BOLD(), Attribute.CYAN_TEXT()));
break; System.out.println("- " + Ansi.colorize("Current", Attribute.BRIGHT_RED_TEXT()) + " directory:\t"
case "patch": // patch + Ansi.colorize(currentDir.getPath(), Attribute.BRIGHT_CYAN_TEXT()));
File waveFile = retrieveWave(reader);
patch(waveFile); } while(!packDirFound);
break; break;
case "print": // print case "package": // pack
Attribute color = retrieveColor(reader); break;
String message = retrieveInput(reader, "Please enter your logo message: " + ANSI_BEIGE); case "patch": // patch
System.out.println(Ansi.colorize(logoFormat(message), color)); File waveFile = retrieveWave(reader);
break; patch(waveFile);
case "exit": // exit break;
System.out.println("Program closed."); case "print": // print
System.exit(0); Attribute color = retrieveColor(reader);
break; String message = retrieveInput(reader, "Please enter your logo message: " + ANSI_BEIGE);
System.out.println(Ansi.colorize(logoFormat(message), color));
break;
case "exit": // exit
System.out.println("Program closed.");
System.exit(0);
break;
}
} }
} }
/*
System.exit(0); System.exit(0);
if(args.length > 0) { if(args.length > 0) {
@ -260,6 +275,7 @@ public class AudioExtractor {
if(packMode) if(packMode)
pack(packDirectory, extractDirectory); pack(packDirectory, extractDirectory);
else extract(packDirectory, extractDirectory, compressBGM); else extract(packDirectory, extractDirectory, compressBGM);
*/
} }
@ -284,7 +300,7 @@ public class AudioExtractor {
if(operation == null) { if(operation == null) {
String prompt = "\n" + Ansi.colorize("Operations", Attribute.BRIGHT_YELLOW_TEXT(), Attribute.BOLD()) + ":\n" String prompt = Ansi.colorize("Operations", Attribute.BRIGHT_YELLOW_TEXT(), Attribute.BOLD()) + ":\n"
+ "- " + Ansi.colorize("Identify", Attribute.BRIGHT_RED_TEXT()) + " a package or audio file\n" + "- " + Ansi.colorize("Identify", Attribute.BRIGHT_RED_TEXT()) + " a package or audio file\n"
+ "- " + Ansi.colorize("Extract", Attribute.TEXT_COLOR(0xFF, 0x68, 0x1F)) + " audio tracks from a package (BIN -> WAV/XMA)\n" + "- " + Ansi.colorize("Extract", Attribute.TEXT_COLOR(0xFF, 0x68, 0x1F)) + " audio tracks from a package (BIN -> WAV/XMA)\n"
+ "- " + Ansi.colorize("Convert", Attribute.TEXT_COLOR(0xFF, 0xEA, 0x00)) + " audio tracks to another format (XMA <-> WAV <-> FLAC)\n" + "- " + Ansi.colorize("Convert", Attribute.TEXT_COLOR(0xFF, 0xEA, 0x00)) + " audio tracks to another format (XMA <-> WAV <-> FLAC)\n"
@ -374,21 +390,25 @@ public class AudioExtractor {
break; break;
} }
case ASCII_fmt: { case ASCII_fmt: {
readFormatChunk(file, (int) i); i = readFormatChunk(file, (int) i) - 4;
break; break;
} }
case ASCII_smpl: { case ASCII_smpl: {
readSampleChunk(file, (int) i); i = readSampleChunk(file, (int) i) - 4;
break; break;
} }
case ASCII_data: { case ASCII_data: {
readDataChunk(file, (int) i); i = readDataChunk(file, (int) i) - 4;
break; break;
} }
case ASCII_ALIG: { case ASCII_ALIG: {
readAlignmentChunk(file, (int) i); readAlignmentChunk(file, (int) i);
break; break;
} }
case ASCII_seek: {
readx2stChunk(file, (int) i);
break;
}
case ASCII_x2st: { case ASCII_x2st: {
readx2stChunk(file, (int) i); readx2stChunk(file, (int) i);
break; break;
@ -406,19 +426,26 @@ public class AudioExtractor {
} }
/**
* Helper function to read RIFF header information.
*
* @param file
* @param offset
* @throws IOException
*/
public static void readRIFFChunk(RandomAccessFile file, int offset) throws IOException { public static void readRIFFChunk(RandomAccessFile file, int offset) throws IOException {
System.out.println(formatAddress(offset) + ":\tRIFF (Resource Interchange File Format) chunk"); System.out.println(formatAddress(offset, file.length()) + ":\tRIFF (Resource Interchange File Format) file");
if(offset + 8 < file.length()) { if(offset + 8 < file.length()) {
int riffSize = readChunkSize(file, offset); int riffSize = readChunkSize(file, offset);
System.out.println(formatAddress(offset + 4) + ":\t" + riffSize + " Bytes" + (riffSize > 1024 ? " (" + convertBytes(riffSize) + ")" : "")); System.out.println(formatAddress(offset + 4, file.length()) + ":\t" + riffSize + " Bytes" + (riffSize > 1024 ? " (" + convertBytes(riffSize) + ")" : ""));
} }
if(offset + 12 < file.length()) { if(offset + 12 < file.length()) {
file.seek(offset + 8); file.seek(offset + 8);
if(file.readInt() == ASCII_WAVE) if(file.readInt() == ASCII_WAVE)
System.out.println(formatAddress(offset + 8) + ":\tWAVE (Waveform Audio File Format) type"); System.out.println(formatAddress(offset + 8, file.length()) + ":\tWAVE (Waveform Audio File Format) type");
offset += 8; offset += 8;
} }
@ -426,22 +453,32 @@ public class AudioExtractor {
} }
public static void readFormatChunk(RandomAccessFile file, int offset) throws IOException {
/**
* Helper method to read format chunk information.
*
* @param file
* @param offset from start of file to start of format chunk
* @return offset from start of file to end of format chunk
* @throws IOException
*/
public static int readFormatChunk(RandomAccessFile file, int offset) throws IOException {
System.out.println(formatAddress(offset) + ":\tfmt (Format) chunk"); System.out.println(formatAddress(offset, file.length()) + ":\tfmt (Format) chunk");
int fmtSize = 8; int size = 8;
if(offset + 8 < file.length()) { if(offset + 8 < file.length()) {
fmtSize = readChunkSize(file, (int) offset); size = readChunkSize(file, (int) offset);
System.out.println(formatAddress(offset + 4) + ":\t" + fmtSize + " Bytes" + (fmtSize > 1024 ? " (" + convertBytes(fmtSize) + ")" : "")); System.out.println(formatAddress(offset + 0x04, file.length()) + ":\t" + size + " Bytes" + (size > 1024 ? " (" + convertBytes(size) + ")" : ""));
} }
if(offset + fmtSize < file.length()) { if(offset + size < file.length()) {
file.seek(offset + 8);
byte[] LEBytes = new byte[2]; byte[] LEBytes = new byte[2];
file.seek(offset + 0x08);
file.read(LEBytes); file.read(LEBytes);
int encoding = littleEndianToInt(LEBytes); int encoding = littleEndianToInt(LEBytes);
System.out.print(formatAddress(offset + 8) + "\t"); System.out.print(formatAddress(offset + 0x08, file.length()) + ":\t");
if(encoding == 0x0001) if(encoding == 0x0001)
System.out.print("PCM (Pulse-Code Modulation)"); System.out.print("PCM (Pulse-Code Modulation)");
else if(encoding == 0x0002) else if(encoding == 0x0002)
@ -450,37 +487,258 @@ public class AudioExtractor {
System.out.print("XMA (Xbox Media Audio)"); System.out.print("XMA (Xbox Media Audio)");
else if(encoding == 0x0166) else if(encoding == 0x0166)
System.out.print("XMA2 (Xbox Media Audio 2)"); System.out.print("XMA2 (Xbox Media Audio 2)");
else System.out.print("Unknown"); else {
// TODO lookup values from CSV boolean found = false;
InputStream filestream = AudioExtractor.class.getResourceAsStream("/encoding.csv");
InputStreamReader streamReader = new InputStreamReader(filestream);
Reader in = streamReader;
String[] headers = { "Decimal value", "Hexadecimal value", "Description" };
Iterable<CSVRecord> records = CSVFormat.EXCEL.builder().setHeader(headers).setSkipHeaderRecord(true).build().parse(in);
for (CSVRecord record : records) {
String dec = record.get("Decimal value");
String desc = record.get("Description");
if(encoding == Integer.parseInt(dec)) {
System.out.print(desc);
found = true;
break;
}
}
if(!found)
System.out.print("Unknown (" + encoding + ")");
}
System.out.println(" encoding"); System.out.println(" encoding");
if(encoding == 0x0165) {
LEBytes = new byte[2];
file.seek(offset + 0x10);
file.read(LEBytes);
int streams = littleEndianToInt(LEBytes);
System.out.println(formatAddress(offset + 0x10, file.length()) + ":\t" + streams + (streams == 1 ? " stream" : " streams"));
parseField(file, offset + 0x12, 1, " loop flag");
// unknown 5 bytes ?
parseField(file, offset + 0x18, 4, " Hz sampling rate");
parseField(file, offset + 0x1C, 4, " loop start");
parseField(file, offset + 0x20, 4, " loop end");
parseField(file, offset + 0x24, 1, " loop subframe");
// unknown 3 bytes ?
offset += fmtSize; // int channels = 0;
// for(int i = 0; i < streams; i++)
// channels += parseField(file, offset + 0x08 + 0x0C + 0x14 * i + 0x11, 1, " channel");
// System.out.println(channels + " channels");
} else {
parseField(file, offset + 0x0A, 2, " channels");
parseField(file, offset + 0x0C, 4, " Hz sampling rate");
parseField(file, offset + 0x10, 4, " average bytes per second");
parseField(file, offset + 0x14, 2, "-byte sample block size");
parseField(file, offset + 0x16, 2, " significant bits per sample");
LEBytes = new byte[2];
file.seek(offset + 0x18);
file.read(LEBytes);
int extra = littleEndianToInt(LEBytes);
if(extra != ASCII_smpl)
parseField(file, offset + 0x18, 2, " extra format bytes");
}
} }
System.out.println(); System.out.println();
return offset + size;
}
private static int readDataChunk(RandomAccessFile file, int offset) throws IOException {
System.out.println(formatAddress(offset, file.length()) + ":\tdata (Data) chunk");
int size = 8;
if(offset + 8 < file.length()) {
size = readChunkSize(file, (int) offset);
System.out.println(formatAddress(offset + 0x04, file.length()) + ":\t" + size + " Bytes" + (size > 1024 ? " (" + convertBytes(size) + ")" : ""));
}
System.out.println();
return offset + size;
} }
private static void readx2stChunk(RandomAccessFile file, int i) { private static int readSampleChunk(RandomAccessFile file, int offset) throws IOException {
// TODO Auto-generated method stub
System.out.println(formatAddress(offset, file.length()) + ":\tsmpl (Sample) chunk");
int size = 8;
if(offset + 8 < file.length()) {
size = readChunkSize(file, (int) offset);
System.out.println(formatAddress(offset + 0x04, file.length()) + ":\t" + size + " Bytes" + (size > 1024 ? " (" + convertBytes(size) + ")" : ""));
}
// 0x08 4B manufacturer code
// parseField(file, offset + 0x08, 4, " manufacturer code");
byte[] bytes = new byte[4];
file.seek(offset + 0x08);
file.read(bytes);
int relevantBytes = bytes[0];
String code;
if(relevantBytes == 3)
code = String.format("%02XH %02XH %02XH", bytes[1], bytes[2], bytes[3]);
else code = String.format("%02XH", bytes[3]);
System.out.print(formatAddress(offset + 0x08, file.length()) + ":\t");
boolean found = false;
InputStream filestream = AudioExtractor.class.getResourceAsStream("/manufacturer.csv");
InputStreamReader streamReader = new InputStreamReader(filestream);
Reader in = streamReader;
String[] headers = { "SysEx ID Number", "Company Name" };
Iterable<CSVRecord> records = CSVFormat.EXCEL.builder().setHeader(headers).setSkipHeaderRecord(true).build().parse(in);
for (CSVRecord record : records) {
String ID = record.get("SysEx ID Number");
String manufacturer = record.get("Company Name");
if(code.equalsIgnoreCase(ID)) {
System.out.print(manufacturer + " (" + code + ")");
found = true;
break;
}
}
if(!found)
System.out.print("Unknown (" + code + ")");
System.out.println(" manufacturer");
// 0x0C 4B product code
parseField(file, offset + 0x0C, 4, " product code");
parseField(file, offset + 0x10, 4, "-nanosecond sample period");
parseField(file, offset + 0x14, 4, " MIDI unity note");
parseField(file, offset + 0x18, 4, " MIDI pitch fraction");
parseField(file, offset + 0x1C, 4, " SMPTE format");
parseField(file, offset + 0x20, 4, " SMPTE offset");
int loops = parseField(file, offset + 0x24, 4, " sample loops");
parseField(file, offset + 0x28, 4, " sample data");
for(int i = 0; i < loops; i++) {
int loopOffset = offset + 0x2C + i * 0x18;
parseField(file, loopOffset, 4, " loop ID");
bytes = new byte[4];
file.seek(loopOffset + 0x04);
file.read(bytes);
int loopType = littleEndianToInt(bytes);
System.out.print(formatAddress(loopOffset + 0x04, file.length()) + ":\t");
String type;
switch(loopType) {
case 0:
type = "Forward";
break;
case 1:
type = "Alternating";
break;
case 2:
type = "Backward";
break;
default:
type = "Unknown (" + loopType + ")";
break;
}
type += " loop type";
System.out.println(type);
file.seek(loopOffset + 0x08);
file.read(bytes);
int loopStart = littleEndianToInt(bytes);
System.out.println(formatAddress(loopOffset + 0x08, file.length()) + ":\tSample # " + loopStart + " loop start");
file.seek(loopOffset + 0x0C);
file.read(bytes);
int loopEnd = littleEndianToInt(bytes);
System.out.println(formatAddress(loopOffset + 0x08, file.length()) + ":\tSample # " + loopEnd + " loop end");
parseField(file, loopOffset + 0x10, 4, " loop fraction");
parseField(file, loopOffset + 0x14, 4, " repeat count");
}
System.out.println();
return offset + size;
}
public static int readSeekChunk(RandomAccessFile file, int offset) throws IOException {
System.out.println(formatAddress(offset, file.length()) + ":\tseek (Seek) chunk");
int size = 8;
if(offset + 8 < file.length()) {
size = readChunkSize(file, (int) offset);
System.out.println(formatAddress(offset + 0x04, file.length()) + ":\t" + size + " Bytes" + (size > 1024 ? " (" + convertBytes(size) + ")" : ""));
}
return offset + size;
}
/**
* Helper method to read a little-endian byte field and print its contents.
*
* @param file
* @param address
* @param size
* @param message
* @return value
* @throws IOException
*/
public static int parseField(RandomAccessFile file, int address, int size, String message) throws IOException {
byte[] bytes = new byte[size];
file.seek(address);
file.read(bytes);
int value = littleEndianToInt(bytes);
System.out.println(formatAddress(address, file.length()) + ":\t" + value + message);
return value;
} }
private static void readAlignmentChunk(RandomAccessFile file, int i) { private static int readx2stChunk(RandomAccessFile file, int offset) throws IOException {
// TODO Auto-generated method stub
System.out.println(formatAddress(offset, file.length()) + ":\tx2st chunk");
int size = 8;
if(offset + 8 < file.length()) {
size = readChunkSize(file, (int) offset);
System.out.println(formatAddress(offset + 0x04, file.length()) + ":\t" + size + " Bytes" + (size > 1024 ? " (" + convertBytes(size) + ")" : ""));
}
System.out.println();
return offset + size;
} }
private static void readDataChunk(RandomAccessFile file, int i) { private static int readAlignmentChunk(RandomAccessFile file, int offset) throws IOException {
// TODO Auto-generated method stub
System.out.println(formatAddress(offset, file.length()) + ":\tALIG (Alignment) chunk");
int size = 8;
if(offset + 8 < file.length()) {
size = readChunkSize(file, (int) offset);
System.out.println(formatAddress(offset + 0x04, file.length()) + ":\t" + size + " Bytes" + (size > 1024 ? " (" + convertBytes(size) + ")" : ""));
}
System.out.println();
return offset + size;
} }
private static void readSampleChunk(RandomAccessFile file, int i) { private static String formatAddress(long address, long size) {
// TODO Auto-generated method stub
int digits = (int) Math.ceil(Math.log(size) / Math.log(16));
return String.format("%0" + digits + "X", address);
// if(size <= 0xFFFF)
// return String.format("%04X", address);
// else return String.format("%08X", address);
} }
/** /**
* Formats a file address with leading zeroes. * Formats a file address with leading zeroes.
* *
@ -489,9 +747,9 @@ public class AudioExtractor {
*/ */
private static String formatAddress(long address) { private static String formatAddress(long address) {
if(address > 0xFFFF) // if(address > 0xFFFF)
return String.format("%08X", address); return String.format("%08X", address);
else return String.format("%04X", address); // else return String.format("%04X", address);
} }
@ -834,6 +1092,8 @@ public class AudioExtractor {
System.out.print(prompt); System.out.print(prompt);
try { try {
input = reader.readLine(); input = reader.readLine();
if(input == null)
throw new IOException("Invalid file.");
file = new File(input); file = new File(input);
if(file.exists()) { if(file.exists()) {
if(file.isFile()) { if(file.isFile()) {