diff --git a/data/bank/ns5r.tsv b/data/bank/ns5r.tsv index c2a2b200..eb40de3c 100644 --- a/data/bank/ns5r.tsv +++ b/data/bank/ns5r.tsv @@ -1,1052 +1,1052 @@ -MSB PRG LSB NME -000 000 000 GrandPno -000 001 000 BritePno -000 002 000 EGrndPno -000 003 000 HnkyTonk -000 004 000 ElPiano1 -000 005 000 ElPiano2 -000 006 000 Hrpschrd -000 007 000 Clvichrd -000 008 000 Celesta -000 009 000 Glocken -000 010 000 MusicBox -000 011 000 Vibrafon -000 012 000 Marimba -000 013 000 Xylophon -000 014 000 TubulBel -000 015 000 Dulcimer -000 016 000 DrawOrgn -000 017 000 PercOrgn -000 018 000 RockOrgn -000 019 000 ChrchOrg -000 020 000 ReedOrgn -000 021 000 Acordion -000 022 000 Harmnica -000 023 000 TangoAcd -000 024 000 NylonGtr -000 025 000 SteelGtr -000 026 000 Jazz Gtr -000 027 000 CleanGtr -000 028 000 MutedGtr -000 029 000 OvrDrvGt -000 030 000 Dist.Gtr -000 031 000 GtrHarmo -000 032 000 Aco.Bass -000 033 000 FngrBass -000 034 000 PickBass -000 035 000 Fretless -000 036 000 SlapBass -000 037 000 SlapBas2 -000 038 000 SynBass1 -000 039 000 SynBass2 -000 040 000 Violin -000 041 000 Viola -000 042 000 Cello -000 043 000 Contrbas -000 044 000 Trem.Str -000 045 000 Pizz.Str -000 046 000 Harp -000 047 000 Timpani -000 048 000 Strings1 -000 049 000 Strings2 -000 050 000 Syn.Str1 -000 051 000 Syn.Str2 -000 052 000 ChoirAah -000 053 000 VoiceOoh -000 054 000 SynVoice -000 055 000 Orch.Hit -000 056 000 Trumpet -000 057 000 Trombone -000 058 000 Tuba -000 059 000 MutedTrp -000 060 000 FrchHorn -000 061 000 BrasSect -000 062 000 SynBras1 -000 063 000 SynBras2 -000 064 000 SprnoSax -000 065 000 Alto Sax -000 066 000 TenorSax -000 067 000 Bari.Sax -000 068 000 Oboe -000 069 000 Eng.Horn -000 070 000 Bassoon -000 071 000 Clarinet -000 072 000 Piccolo -000 073 000 Flute -000 074 000 Recorder -000 075 000 PanFlute -000 076 000 BotlBlow -000 077 000 Shakhchi -000 078 000 Whistle -000 079 000 Ocarina -000 080 000 SquareLd -000 081 000 Saw Lead -000 082 000 CaliopLd -000 083 000 Chiff Ld -000 084 000 CharanLd -000 085 000 Voice Ld -000 086 000 Fifth Ld -000 087 000 Bass&Ld -000 088 000 NewAgePd -000 089 000 Warm Pad -000 090 000 PolySyPd -000 091 000 ChoirPad -000 092 000 BowedPad -000 093 000 MetalPad -000 094 000 Halo Pad -000 095 000 SweepPad -000 096 000 Ice Rain -000 097 000 SoundTrk -000 098 000 Crystal -000 099 000 Atmosphr -000 100 000 Bright -000 101 000 Goblins -000 102 000 Echoes -000 103 000 Sci-Fi -000 104 000 Sitar -000 105 000 Banjo -000 106 000 Shamisen -000 107 000 Koto -000 108 000 Kalimba -000 109 000 Bagpipe -000 110 000 Fiddle -000 111 000 Shanai -000 112 000 TnklBell -000 113 000 Agogo -000 114 000 SteelDrm -000 115 000 Woodblok -000 116 000 Taiko -000 117 000 MelodTom -000 118 000 Syn Drum -000 119 000 RevCymbl -000 120 000 FretNoiz -000 121 000 BrthNoiz -000 122 000 Seashore -000 123 000 Tweet -000 124 000 Telphone -000 125 000 Helicptr -000 126 000 Applause -000 127 000 Gunshot -056 000 000 Piano -056 001 000 BrtPiano -056 002 000 HammrPno -056 003 000 HnkyTonk -056 004 000 New Tine -056 005 000 Digi.Pno -056 006 000 Hrpschrd -056 007 000 Clvichrd -056 008 000 Celesta -056 009 000 Glocken -056 010 000 MusicBox -056 011 000 Vibrafon -056 012 000 Marimba -056 013 000 Xylophon -056 014 000 Tubular -056 015 000 Santur -056 016 000 FullOrgn -056 017 000 PercOrgn -056 018 000 BX3 Orgn -056 019 000 ChrchPpe -056 020 000 Positive -056 021 000 Musette -056 022 000 Harmnica -056 023 000 Tango -056 024 000 ClassGtr -056 025 000 Acou.Gtr -056 026 000 Jazz Gtr -056 027 000 CleanGtr -056 028 000 MuteGtr. -056 029 000 Ovrdrive -056 030 000 Dst.Gtr. -056 031 000 RockHrmo -056 032 000 Jazzy Ba -056 033 000 DeepBass -056 034 000 PickBass -056 035 000 Fretless -056 036 000 SlpBass1 -056 037 000 SlpBass2 -056 038 000 SynBass1 -056 039 000 SynBass2 -056 040 000 Violin -056 041 000 Viola -056 042 000 Cello -056 043 000 Contrbas -056 044 000 Trem.Str -056 045 000 Pizzcato -056 046 000 Harp -056 047 000 Timpani -056 048 000 Marcato -056 049 000 Slow Str -056 050 000 Anal.Pad -056 051 000 StringPd -056 052 000 Choir -056 053 000 DooVoice -056 054 000 Voices -056 055 000 Orch.Hit -056 056 000 Trumpet -056 057 000 Trombone -056 058 000 Tuba -056 059 000 MutedTrp -056 060 000 FrchHorn -056 061 000 Brass -056 062 000 SynBrass -056 063 000 SynBras2 -056 064 000 SprnoSax -056 065 000 Alto Sax -056 066 000 TenorSax -056 067 000 Bari Sax -056 068 000 Swt Oboe -056 069 000 Eng.Horn -056 070 000 BasnOboe -056 071 000 Clarinet -056 072 000 Piccolo -056 073 000 Flute -056 074 000 Recorder -056 075 000 PanFlute -056 076 000 Bottle -056 077 000 Shakhchi -056 078 000 Whistle -056 079 000 Ocarina -056 080 000 SquareWv -056 081 000 Saw Wave -056 082 000 SyCaliop -056 083 000 SynChiff -056 084 000 SyCharan -056 085 000 AirChor. -056 086 000 Rezzo4th -056 087 000 Bass&Ld -056 088 000 Fantasia -056 089 000 Warm Pad -056 090 000 Poly Pad -056 091 000 GhostPad -056 092 000 BowGlass -056 093 000 MetalPad -056 094 000 Halo Pad -056 095 000 Sweep -056 096 000 Ice Rain -056 097 000 SndTrack -056 098 000 Crystal -056 099 000 Atmosphr -056 100 000 Bright -056 101 000 Goblins -056 102 000 EchoDrop -056 103 000 StarThme -056 104 000 Sitar -056 105 000 Banjo -056 106 000 Shamisen -056 107 000 Koto -056 108 000 Kalimba -056 109 000 Scotland -056 110 000 Fiddle -056 111 000 Shanai -056 112 000 MetalBel -056 113 000 Agogo -056 114 000 SteelDrm -056 115 000 Woodblok -056 116 000 Taiko -056 117 000 Acou.Tom -056 118 000 SynthTom -056 119 000 RevCymbl -056 120 000 FretNoiz -056 121 000 NoizChif -056 122 000 Seashore -056 123 000 Birds -056 124 000 Telphone -056 125 000 Helicptr -056 126 000 Stadium! -056 127 000 Gunshot -061 000 000 Standard -061 001 000 Standrd2 -061 008 000 Room Kit -061 016 000 PowerKit -061 024 000 Electro -061 025 000 AnalogKt -061 026 000 DanceKit -061 032 000 Jazz Kit -061 040 000 BrushKit -061 048 000 Orch.Kit -061 049 000 EthnicKt -061 050 000 KikSnare -061 056 000 SFX Kit -061 127 000 MT-32 Kt -062 000 000 GM Kit -062 016 000 PowerKit -062 024 000 DanceKit -062 025 000 AnalogKt -062 026 000 DanceKit -062 032 000 Jazz Kit -062 040 000 BrushKit -062 048 000 Orch.Kit -062 056 000 GM Kit -062 064 000 Perc Kit -062 072 000 User Kit -062 073 000 UserKit2 -062 074 000 GM Kit -081 000 000 Sunrise -081 001 000 Piano16' -081 002 000 AltoBrth -081 003 000 TinyDncr -081 004 000 SpruceGt -081 005 000 VibrBell -081 006 000 CrFadeBa -081 007 000 TheStrs. -081 008 000 PowerSyn -081 009 000 TotalKit -081 010 000 MchinAge -081 011 000 Hot Keys -081 012 000 BrasBand -081 013 000 MaxiTine -081 014 000 Pwr Rock -081 015 000 TablTalk -081 016 000 FngrBass -081 017 000 Lite Vox -081 018 000 ColorPad -081 019 000 Festival -081 020 000 GlideSwp -081 021 000 LastTngo -081 022 000 MagicFlu -081 023 000 Operator -081 024 000 ElectrGt -081 025 000 Gamelan -081 026 000 Zap Bass -081 027 000 Digi.Air -081 028 000 Analgist -081 029 000 MndoTrem -081 030 000 SpaceWng -081 031 000 GospelOr -081 032 000 Trumpets -081 033 000 FreshAir -081 034 000 RockMute -081 035 000 Dustette -081 036 000 PickBass -081 037 000 ChambrEn -081 038 000 Wire Pad -081 039 000 Industry -081 040 000 Neutron -081 041 000 PnoHaven -081 042 000 ShkuBend -081 043 000 BowenWav -081 044 000 Cln Funk -081 045 000 SplitBel -081 046 000 Slap It -081 047 000 Anal.Pad -081 048 000 Residue -081 049 000 OrchPerc -081 050 000 DreamWld -081 051 000 HrpsiFnk -081 052 000 FlugelHr -081 053 000 Elec.Tap -081 054 000 Harmonic -081 055 000 Africana -081 056 000 TechnoBa -081 057 000 Airways -081 058 000 Busy Boy -081 059 000 Heart -081 060 000 Spectrum -081 061 000 FullPipe -081 062 000 Woodwind -081 063 000 Whirly -081 064 000 Lead Gtr -081 065 000 Isabelle -081 066 000 FatFrett -081 067 000 PoppinPd -081 068 000 SoftHorn -081 069 000 Prod.Kit -081 070 000 In Trees -081 071 000 SantaClv -081 072 000 Sforz
-090 011 000 Super EP -090 012 000 WindOrch -090 013 000 MaxiStab -090 014 000 12String -090 015 000 -090 016 000 Chor.Clv -090 017 000 Bass/Hrn -090 018 000 IceBells -090 019 000 WildSplt -090 020 000 Warrior -090 021 000 FatPiano -090 022 000 Sonata -090 023 000 LayerSyn -090 024 000 Wave Gtr -090 025 000 EthnOrch -090 026 000 Cathedrl -090 027 000 BrsSwell -090 028 000 JavaBell -090 029 000 PhntmSax -090 030 000 Anci.Sun -090 031 000 VeloRoad -090 032 000 Symphny -090 033 000 NeuroFnk -090 034 000 Slappin' -090 035 000 EastAfrc -090 036 000 UltrPerc -090 037 000 Sax Men -090 038 000 LunarBel -090 039 000 -090 040 000 -090 041 000 Rock Pno -090 042 000 ChmbrOrc -090 043 000 MultiRez -090 044 000 ChorusGt -090 045 000 ZenGardn -090 046 000 Acordion -090 047 000 MutedHrn -090 048 000 PizzoSyn -090 049 000 Rap T.K. -090 050 000 Megatron -090 051 000 BsEP&Str -090 052 000 Fanfare -090 053 000 BigSwell -090 054 000 StkSplit -090 055 000 IndiaJam -090 056 000 Hpsichrd -090 057 000 Bass/Brs -090 058 000 MoonSton -090 059 000 Torqmada -090 060 000 Crosfade -090 061 000 SuperKey -090 062 000 WoodWind -090 063 000 OctaveLd -090 064 000 Mlaguena -090 065 000 RythmPpe -090 066 000 F.Manual -090 067 000 Bows/Trp -090 068 000 Airiana -090 069 000 SpaceZon -090 070 000 NewWorld -090 071 000 Digi Pno -090 072 000 Full Str -090 073 000 RezzoFnk -090 074 000 Gtr. Man -090 075 000 WarmKoto -090 076 000 RockShow -090 077 000 Big Band -090 078 000 Vox Bell -090 079 000 Men@Work -090 080 000 Galaxia -090 081 000 Bass/Pno -090 082 000 Str/Oboe -090 083 000 RezSplit -090 084 000 Old West -090 085 000 LostTrbe -090 086 000 DualMan. -090 087 000 Trp&Bone -090 088 000 Belendre -090 089 000 StarLens -090 090 000 Abyss -090 091 000 Pno&Str -090 092 000 ChmbrStr -090 093 000 HardSync -090 094 000 Gt/Flute -090 095 000 RnForest -090 096 000 PipeOrgn -090 097 000 HotSalsa -090 098 000 Prism -090 099 000 Dentist -090 100 000 VbRation -090 101 000 SplitOrg -090 102 000 PizzAPie -090 103 000 TeknoPre -090 104 000 WitchHnt -090 105 000 BladeRun -090 106 000 PianoPad -090 107 000 MillTime -090 108 000 Wood Vox -090 109 000 FolkPiks -090 110 000 Stin&Wnd -090 111 000 Delicato -090 112 000 Sophism -090 113 000 PwdrSnow -090 114 000 TinyTiny -090 115 000 Emmalog -090 116 000 DreamPno -090 117 000 RockShow -090 118 000 Big Strs -090 119 000 CoolDuet -090 120 000 Mazurca -090 121 000 Polenesk -090 122 000 Bass&EP -090 123 000 Bad Scrm -090 124 000 AlienSng -090 125 000 Milagro -090 126 000 Fusion -090 127 000 WoodSect -091 000 000 1stLight -091 001 000 GrindinB -091 002 000 ShanriLa -091 003 000 MstWorld -091 004 000 World Ba -091 005 000 MxImpact -091 006 000 Rave Vox -091 007 000 OrchDiv. -091 008 000 LifeSong -091 009 000 DanceTrk -091 010 000 In Maze -091 011 000 PowerKey -091 012 000 HornStab -091 013 000 Goldmine -091 014 000 MayaDans -091 015 000 Meltronc -091 016 000 HouseMix -091 017 000 Or.Split -091 018 000 Morocco -091 019 000 Didjrido -091 020 000 XYJoystk -091 021 000 SuperJaz -091 022 000 OBAnalog -091 023 000 Str. Cue -091 024 000 RhythmGt -091 025 000 East Sun -091 026 000 GiantSpl -091 027 000 Allegro -091 028 000 PolyChrd -091 029 000 PwrHouse -091 030 000 LFO City -091 031 000 MIDIEPPd -091 032 000 Sqr. Rez -091 033 000 SkyCatLd -091 034 000 FadeAway -091 035 000 9 Incher -091 036 000 FazeTwin -091 037 000 VeloPizz -091 038 000 Gamelan -091 039 000 UndrWrld -091 040 000 Vaporizr -091 041 000 BigDraw. -091 042 000 Sax Band -091 043 000 BoyChoir -091 044 000 HeartBrk -091 045 000 Wet Land -091 046 000 SkiHouse -091 047 000 NgtMusic -091 048 000 NevrLand -091 049 000 DJToolBx -091 050 000 QuarkSpk -091 051 000 M1 LyrEP -091 052 000 PwrStack -091 053 000 Hit Dust -091 054 000 Pwr Band -091 055 000 WavJammr -091 056 000 GreenRav -091 057 000 Nutcrakr -091 058 000 NgtTrain -091 059 000 WormHole -091 060 000 VirtSplt -091 061 000 StaxOrgn -091 062 000 AnnaSplt -091 063 000 Arco Str -091 064 000 SlapStik -091 065 000 Botswana -091 066 000 AsidcSpl -091 067 000 DelayHit -091 068 000 SirRobin -091 069 000 EthScape -091 070 000 Gyroscop -091 071 000 WhirlPad -091 072 000 RezoComp -091 073 000 Voix2Men -091 074 000 FretNot! -091 075 000 RagaTrns -091 076 000 XVxSplit -091 077 000 Serenade -091 078 000 JazzDuet -091 079 000 AlienPrb -091 080 000 Alienesq -091 081 000 Legend -091 082 000 RealHorn -091 083 000 EtrnLayr -091 084 000 In Arena -091 085 000 N:Wv:Seq -091 086 000 Euroman -091 087 000 OrchWind -091 088 000 PacifiSp -091 089 000 Big Bang -091 090 000 UniVerse -091 091 000 OD Organ -091 092 000 SyncHome -091 093 000 AngelChr -091 094 000 PrgSplit -091 095 000 Trinidad -091 096 000 EnoseHrn -091 097 000 Ensemble -091 098 000 There&Bk -091 099 000 SeaStorm -091 100 000 TypeA Ln -091 101 000 BgForest -091 102 000 Appear -091 103 000 Emmabama -091 104 000 Sweeper -091 105 000 Dreaming -091 106 000 FatPluck -091 107 000 12TonBel -091 108 000 Have Fun -091 109 000 Bow&Bras -091 110 000 EchoSuit -091 111 000 Perclatr -091 112 000 Vectorin -091 113 000 Hard&Swt -091 114 000 Trombhrn -091 115 000 Synmonic -091 116 000 Mixture -091 117 000 Finale -091 118 000 AfrcMood -091 119 000 Encountr -091 120 000 LayrCake -091 121 000 Puffalog -091 122 000 Pd+Alpha -091 123 000 BrkADish -091 124 000 Randmizr -091 125 000 HrnMelod -091 126 000 AcidTool -091 127 000 TimeTunl +MSB PRG LSB NME ELC +000 000 000 GrandPno 0 +000 001 000 BritePno 0 +000 002 000 EGrndPno 0 +000 003 000 HnkyTonk 0 +000 004 000 ElPiano1 0 +000 005 000 ElPiano2 0 +000 006 000 Hrpschrd 0 +000 007 000 Clvichrd 0 +000 008 000 Celesta 0 +000 009 000 Glocken 0 +000 010 000 MusicBox 0 +000 011 000 Vibrafon 0 +000 012 000 Marimba 0 +000 013 000 Xylophon 0 +000 014 000 TubulBel 0 +000 015 000 Dulcimer 0 +000 016 000 DrawOrgn 0 +000 017 000 PercOrgn 0 +000 018 000 RockOrgn 0 +000 019 000 ChrchOrg 0 +000 020 000 ReedOrgn 0 +000 021 000 Acordion 0 +000 022 000 Harmnica 0 +000 023 000 TangoAcd 0 +000 024 000 NylonGtr 0 +000 025 000 SteelGtr 0 +000 026 000 Jazz Gtr 0 +000 027 000 CleanGtr 0 +000 028 000 MutedGtr 0 +000 029 000 OvrDrvGt 0 +000 030 000 Dist.Gtr 0 +000 031 000 GtrHarmo 0 +000 032 000 Aco.Bass 0 +000 033 000 FngrBass 0 +000 034 000 PickBass 0 +000 035 000 Fretless 0 +000 036 000 SlapBass 0 +000 037 000 SlapBas2 0 +000 038 000 SynBass1 0 +000 039 000 SynBass2 0 +000 040 000 Violin 0 +000 041 000 Viola 0 +000 042 000 Cello 0 +000 043 000 Contrbas 0 +000 044 000 Trem.Str 0 +000 045 000 Pizz.Str 0 +000 046 000 Harp 0 +000 047 000 Timpani 0 +000 048 000 Strings1 0 +000 049 000 Strings2 0 +000 050 000 Syn.Str1 0 +000 051 000 Syn.Str2 0 +000 052 000 ChoirAah 0 +000 053 000 VoiceOoh 0 +000 054 000 SynVoice 0 +000 055 000 Orch.Hit 0 +000 056 000 Trumpet 0 +000 057 000 Trombone 0 +000 058 000 Tuba 0 +000 059 000 MutedTrp 0 +000 060 000 FrchHorn 0 +000 061 000 BrasSect 0 +000 062 000 SynBras1 0 +000 063 000 SynBras2 0 +000 064 000 SprnoSax 0 +000 065 000 Alto Sax 0 +000 066 000 TenorSax 0 +000 067 000 Bari.Sax 0 +000 068 000 Oboe 0 +000 069 000 Eng.Horn 0 +000 070 000 Bassoon 0 +000 071 000 Clarinet 0 +000 072 000 Piccolo 0 +000 073 000 Flute 0 +000 074 000 Recorder 0 +000 075 000 PanFlute 0 +000 076 000 BotlBlow 0 +000 077 000 Shakhchi 0 +000 078 000 Whistle 0 +000 079 000 Ocarina 0 +000 080 000 SquareLd 0 +000 081 000 Saw Lead 0 +000 082 000 CaliopLd 0 +000 083 000 Chiff Ld 0 +000 084 000 CharanLd 0 +000 085 000 Voice Ld 0 +000 086 000 Fifth Ld 0 +000 087 000 Bass&Ld 0 +000 088 000 NewAgePd 0 +000 089 000 Warm Pad 0 +000 090 000 PolySyPd 0 +000 091 000 ChoirPad 0 +000 092 000 BowedPad 0 +000 093 000 MetalPad 0 +000 094 000 Halo Pad 0 +000 095 000 SweepPad 0 +000 096 000 Ice Rain 0 +000 097 000 SoundTrk 0 +000 098 000 Crystal 0 +000 099 000 Atmosphr 0 +000 100 000 Bright 0 +000 101 000 Goblins 0 +000 102 000 Echoes 0 +000 103 000 Sci-Fi 0 +000 104 000 Sitar 0 +000 105 000 Banjo 0 +000 106 000 Shamisen 0 +000 107 000 Koto 0 +000 108 000 Kalimba 0 +000 109 000 Bagpipe 0 +000 110 000 Fiddle 0 +000 111 000 Shanai 0 +000 112 000 TnklBell 0 +000 113 000 Agogo 0 +000 114 000 SteelDrm 0 +000 115 000 Woodblok 0 +000 116 000 Taiko 0 +000 117 000 MelodTom 0 +000 118 000 Syn Drum 0 +000 119 000 RevCymbl 0 +000 120 000 FretNoiz 0 +000 121 000 BrthNoiz 0 +000 122 000 Seashore 0 +000 123 000 Tweet 0 +000 124 000 Telphone 0 +000 125 000 Helicptr 0 +000 126 000 Applause 0 +000 127 000 Gunshot 0 +056 000 000 Piano 0 +056 001 000 BrtPiano 0 +056 002 000 HammrPno 0 +056 003 000 HnkyTonk 0 +056 004 000 New Tine 0 +056 005 000 Digi.Pno 0 +056 006 000 Hrpschrd 0 +056 007 000 Clvichrd 0 +056 008 000 Celesta 0 +056 009 000 Glocken 0 +056 010 000 MusicBox 0 +056 011 000 Vibrafon 0 +056 012 000 Marimba 0 +056 013 000 Xylophon 0 +056 014 000 Tubular 0 +056 015 000 Santur 0 +056 016 000 FullOrgn 0 +056 017 000 PercOrgn 0 +056 018 000 BX3 Orgn 0 +056 019 000 ChrchPpe 0 +056 020 000 Positive 0 +056 021 000 Musette 0 +056 022 000 Harmnica 0 +056 023 000 Tango 0 +056 024 000 ClassGtr 0 +056 025 000 Acou.Gtr 0 +056 026 000 Jazz Gtr 0 +056 027 000 CleanGtr 0 +056 028 000 MuteGtr. 0 +056 029 000 Ovrdrive 0 +056 030 000 Dst.Gtr. 0 +056 031 000 RockHrmo 0 +056 032 000 Jazzy Ba 0 +056 033 000 DeepBass 0 +056 034 000 PickBass 0 +056 035 000 Fretless 0 +056 036 000 SlpBass1 0 +056 037 000 SlpBass2 0 +056 038 000 SynBass1 0 +056 039 000 SynBass2 0 +056 040 000 Violin 0 +056 041 000 Viola 0 +056 042 000 Cello 0 +056 043 000 Contrbas 0 +056 044 000 Trem.Str 0 +056 045 000 Pizzcato 0 +056 046 000 Harp 0 +056 047 000 Timpani 0 +056 048 000 Marcato 0 +056 049 000 Slow Str 0 +056 050 000 Anal.Pad 0 +056 051 000 StringPd 0 +056 052 000 Choir 0 +056 053 000 DooVoice 0 +056 054 000 Voices 0 +056 055 000 Orch.Hit 0 +056 056 000 Trumpet 0 +056 057 000 Trombone 0 +056 058 000 Tuba 0 +056 059 000 MutedTrp 0 +056 060 000 FrchHorn 0 +056 061 000 Brass 0 +056 062 000 SynBrass 0 +056 063 000 SynBras2 0 +056 064 000 SprnoSax 0 +056 065 000 Alto Sax 0 +056 066 000 TenorSax 0 +056 067 000 Bari Sax 0 +056 068 000 Swt Oboe 0 +056 069 000 Eng.Horn 0 +056 070 000 BasnOboe 0 +056 071 000 Clarinet 0 +056 072 000 Piccolo 0 +056 073 000 Flute 0 +056 074 000 Recorder 0 +056 075 000 PanFlute 0 +056 076 000 Bottle 0 +056 077 000 Shakhchi 0 +056 078 000 Whistle 0 +056 079 000 Ocarina 0 +056 080 000 SquareWv 0 +056 081 000 Saw Wave 0 +056 082 000 SyCaliop 0 +056 083 000 SynChiff 0 +056 084 000 SyCharan 0 +056 085 000 AirChor. 0 +056 086 000 Rezzo4th 0 +056 087 000 Bass&Ld 0 +056 088 000 Fantasia 0 +056 089 000 Warm Pad 0 +056 090 000 Poly Pad 0 +056 091 000 GhostPad 0 +056 092 000 BowGlass 0 +056 093 000 MetalPad 0 +056 094 000 Halo Pad 0 +056 095 000 Sweep 0 +056 096 000 Ice Rain 0 +056 097 000 SndTrack 0 +056 098 000 Crystal 0 +056 099 000 Atmosphr 0 +056 100 000 Bright 0 +056 101 000 Goblins 0 +056 102 000 EchoDrop 0 +056 103 000 StarThme 0 +056 104 000 Sitar 0 +056 105 000 Banjo 0 +056 106 000 Shamisen 0 +056 107 000 Koto 0 +056 108 000 Kalimba 0 +056 109 000 Scotland 0 +056 110 000 Fiddle 0 +056 111 000 Shanai 0 +056 112 000 MetalBel 0 +056 113 000 Agogo 0 +056 114 000 SteelDrm 0 +056 115 000 Woodblok 0 +056 116 000 Taiko 0 +056 117 000 Acou.Tom 0 +056 118 000 SynthTom 0 +056 119 000 RevCymbl 0 +056 120 000 FretNoiz 0 +056 121 000 NoizChif 0 +056 122 000 Seashore 0 +056 123 000 Birds 0 +056 124 000 Telphone 0 +056 125 000 Helicptr 0 +056 126 000 Stadium! 16 +056 127 000 Gunshot 0 +061 000 000 Standard 16 +061 001 000 Standrd2 16 +061 008 000 Room Kit 16 +061 016 000 PowerKit 16 +061 024 000 Electro 16 +061 025 000 AnalogKt 16 +061 026 000 DanceKit 16 +061 032 000 Jazz Kit 16 +061 040 000 BrushKit 16 +061 048 000 Orch.Kit 16 +061 049 000 EthnicKt 16 +061 050 000 KikSnare 16 +061 056 000 SFX Kit 16 +061 127 000 MT-32 Kt 16 +062 000 000 GM Kit 16 +062 016 000 PowerKit 16 +062 024 000 DanceKit 16 +062 025 000 AnalogKt 16 +062 026 000 DanceKit 16 +062 032 000 Jazz Kit 16 +062 040 000 BrushKit 16 +062 048 000 Orch.Kit 16 +062 056 000 GM Kit 16 +062 064 000 Perc Kit 16 +062 072 000 User Kit 16 +062 073 000 UserKit2 16 +062 074 000 GM Kit 16 +081 000 000 Sunrise 0 +081 001 000 Piano16' 0 +081 002 000 AltoBrth 0 +081 003 000 TinyDncr 0 +081 004 000 SpruceGt 0 +081 005 000 VibrBell 0 +081 006 000 CrFadeBa 0 +081 007 000 TheStrs. 0 +081 008 000 PowerSyn 0 +081 009 000 TotalKit 16 +081 010 000 MchinAge 0 +081 011 000 Hot Keys 0 +081 012 000 BrasBand 0 +081 013 000 MaxiTine 0 +081 014 000 Pwr Rock 0 +081 015 000 TablTalk 0 +081 016 000 FngrBass 0 +081 017 000 Lite Vox 0 +081 018 000 ColorPad 0 +081 019 000 Festival 16 +081 020 000 GlideSwp 0 +081 021 000 LastTngo 0 +081 022 000 MagicFlu 0 +081 023 000 Operator 0 +081 024 000 ElectrGt 0 +081 025 000 Gamelan 0 +081 026 000 Zap Bass 0 +081 027 000 Digi.Air 0 +081 028 000 Analgist 0 +081 029 000 MndoTrem 0 +081 030 000 SpaceWng 0 +081 031 000 GospelOr 0 +081 032 000 Trumpets 0 +081 033 000 FreshAir 0 +081 034 000 RockMute 0 +081 035 000 Dustette 0 +081 036 000 PickBass 0 +081 037 000 ChambrEn 0 +081 038 000 Wire Pad 0 +081 039 000 Industry 0 +081 040 000 Neutron 0 +081 041 000 PnoHaven 0 +081 042 000 ShkuBend 0 +081 043 000 BowenWav 0 +081 044 000 Cln Funk 0 +081 045 000 SplitBel 0 +081 046 000 Slap It 0 +081 047 000 Anal.Pad 0 +081 048 000 Residue 0 +081 049 000 OrchPerc 0 +081 050 000 DreamWld 0 +081 051 000 HrpsiFnk 0 +081 052 000 FlugelHr 0 +081 053 000 Elec.Tap 0 +081 054 000 Harmonic 0 +081 055 000 Africana 0 +081 056 000 TechnoBa 0 +081 057 000 Airways 0 +081 058 000 Busy Boy 0 +081 059 000 Heart 0 +081 060 000 Spectrum 0 +081 061 000 FullPipe 0 +081 062 000 Woodwind 0 +081 063 000 Whirly 0 +081 064 000 Lead Gtr 0 +081 065 000 Isabelle 0 +081 066 000 FatFrett 0 +081 067 000 PoppinPd 0 +081 068 000 SoftHorn 0 +081 069 000 Prod.Kit 16 +081 070 000 In Trees 0 +081 071 000 SantaClv 0 +081 072 000 Sforz
0 +090 011 000 Super EP 0 +090 012 000 WindOrch 0 +090 013 000 MaxiStab 0 +090 014 000 12String 0 +090 015 000 0 +090 016 000 Chor.Clv 0 +090 017 000 Bass/Hrn 0 +090 018 000 IceBells 0 +090 019 000 WildSplt 0 +090 020 000 Warrior 0 +090 021 000 FatPiano 0 +090 022 000 Sonata 0 +090 023 000 LayerSyn 0 +090 024 000 Wave Gtr 0 +090 025 000 EthnOrch 0 +090 026 000 Cathedrl 0 +090 027 000 BrsSwell 0 +090 028 000 JavaBell 0 +090 029 000 PhntmSax 0 +090 030 000 Anci.Sun 0 +090 031 000 VeloRoad 0 +090 032 000 Symphny 0 +090 033 000 NeuroFnk 0 +090 034 000 Slappin' 0 +090 035 000 EastAfrc 0 +090 036 000 UltrPerc 0 +090 037 000 Sax Men 0 +090 038 000 LunarBel 0 +090 039 000 0 +090 040 000 0 +090 041 000 Rock Pno 0 +090 042 000 ChmbrOrc 0 +090 043 000 MultiRez 0 +090 044 000 ChorusGt 0 +090 045 000 ZenGardn 0 +090 046 000 Acordion 0 +090 047 000 MutedHrn 0 +090 048 000 PizzoSyn 0 +090 049 000 Rap T.K. 0 +090 050 000 Megatron 0 +090 051 000 BsEP&Str 0 +090 052 000 Fanfare 0 +090 053 000 BigSwell 0 +090 054 000 StkSplit 0 +090 055 000 IndiaJam 0 +090 056 000 Hpsichrd 0 +090 057 000 Bass/Brs 0 +090 058 000 MoonSton 0 +090 059 000 Torqmada 0 +090 060 000 Crosfade 0 +090 061 000 SuperKey 0 +090 062 000 WoodWind 0 +090 063 000 OctaveLd 0 +090 064 000 Mlaguena 0 +090 065 000 RythmPpe 0 +090 066 000 F.Manual 0 +090 067 000 Bows/Trp 0 +090 068 000 Airiana 0 +090 069 000 SpaceZon 0 +090 070 000 NewWorld 0 +090 071 000 Digi Pno 0 +090 072 000 Full Str 0 +090 073 000 RezzoFnk 0 +090 074 000 Gtr. Man 0 +090 075 000 WarmKoto 0 +090 076 000 RockShow 0 +090 077 000 Big Band 0 +090 078 000 Vox Bell 0 +090 079 000 Men@Work 0 +090 080 000 Galaxia 0 +090 081 000 Bass/Pno 0 +090 082 000 Str/Oboe 0 +090 083 000 RezSplit 0 +090 084 000 Old West 0 +090 085 000 LostTrbe 0 +090 086 000 DualMan. 0 +090 087 000 Trp&Bone 0 +090 088 000 Belendre 0 +090 089 000 StarLens 0 +090 090 000 Abyss 0 +090 091 000 Pno&Str 0 +090 092 000 ChmbrStr 0 +090 093 000 HardSync 0 +090 094 000 Gt/Flute 0 +090 095 000 RnForest 0 +090 096 000 PipeOrgn 0 +090 097 000 HotSalsa 0 +090 098 000 Prism 0 +090 099 000 Dentist 0 +090 100 000 VbRation 0 +090 101 000 SplitOrg 0 +090 102 000 PizzAPie 0 +090 103 000 TeknoPre 0 +090 104 000 WitchHnt 0 +090 105 000 BladeRun 0 +090 106 000 PianoPad 0 +090 107 000 MillTime 0 +090 108 000 Wood Vox 0 +090 109 000 FolkPiks 0 +090 110 000 Stin&Wnd 0 +090 111 000 Delicato 0 +090 112 000 Sophism 0 +090 113 000 PwdrSnow 0 +090 114 000 TinyTiny 0 +090 115 000 Emmalog 0 +090 116 000 DreamPno 0 +090 117 000 RockShow 0 +090 118 000 Big Strs 0 +090 119 000 CoolDuet 0 +090 120 000 Mazurca 0 +090 121 000 Polenesk 0 +090 122 000 Bass&EP 0 +090 123 000 Bad Scrm 0 +090 124 000 AlienSng 0 +090 125 000 Milagro 0 +090 126 000 Fusion 0 +090 127 000 WoodSect 0 +091 000 000 1stLight 0 +091 001 000 GrindinB 0 +091 002 000 ShanriLa 0 +091 003 000 MstWorld 0 +091 004 000 World Ba 0 +091 005 000 MxImpact 0 +091 006 000 Rave Vox 0 +091 007 000 OrchDiv. 0 +091 008 000 LifeSong 0 +091 009 000 DanceTrk 0 +091 010 000 In Maze 0 +091 011 000 PowerKey 0 +091 012 000 HornStab 0 +091 013 000 Goldmine 0 +091 014 000 MayaDans 0 +091 015 000 Meltronc 0 +091 016 000 HouseMix 0 +091 017 000 Or.Split 0 +091 018 000 Morocco 0 +091 019 000 Didjrido 0 +091 020 000 XYJoystk 0 +091 021 000 SuperJaz 0 +091 022 000 OBAnalog 0 +091 023 000 Str. Cue 0 +091 024 000 RhythmGt 0 +091 025 000 East Sun 0 +091 026 000 GiantSpl 0 +091 027 000 Allegro 0 +091 028 000 PolyChrd 0 +091 029 000 PwrHouse 0 +091 030 000 LFO City 0 +091 031 000 MIDIEPPd 0 +091 032 000 Sqr. Rez 0 +091 033 000 SkyCatLd 0 +091 034 000 FadeAway 0 +091 035 000 9 Incher 0 +091 036 000 FazeTwin 0 +091 037 000 VeloPizz 0 +091 038 000 Gamelan 0 +091 039 000 UndrWrld 0 +091 040 000 Vaporizr 0 +091 041 000 BigDraw. 0 +091 042 000 Sax Band 0 +091 043 000 BoyChoir 0 +091 044 000 HeartBrk 0 +091 045 000 Wet Land 0 +091 046 000 SkiHouse 0 +091 047 000 NgtMusic 0 +091 048 000 NevrLand 0 +091 049 000 DJToolBx 0 +091 050 000 QuarkSpk 0 +091 051 000 M1 LyrEP 0 +091 052 000 PwrStack 0 +091 053 000 Hit Dust 0 +091 054 000 Pwr Band 0 +091 055 000 WavJammr 0 +091 056 000 GreenRav 0 +091 057 000 Nutcrakr 0 +091 058 000 NgtTrain 0 +091 059 000 WormHole 0 +091 060 000 VirtSplt 0 +091 061 000 StaxOrgn 0 +091 062 000 AnnaSplt 0 +091 063 000 Arco Str 0 +091 064 000 SlapStik 0 +091 065 000 Botswana 0 +091 066 000 AsidcSpl 0 +091 067 000 DelayHit 0 +091 068 000 SirRobin 0 +091 069 000 EthScape 0 +091 070 000 Gyroscop 0 +091 071 000 WhirlPad 0 +091 072 000 RezoComp 0 +091 073 000 Voix2Men 0 +091 074 000 FretNot! 0 +091 075 000 RagaTrns 0 +091 076 000 XVxSplit 0 +091 077 000 Serenade 0 +091 078 000 JazzDuet 0 +091 079 000 AlienPrb 0 +091 080 000 Alienesq 0 +091 081 000 Legend 0 +091 082 000 RealHorn 0 +091 083 000 EtrnLayr 0 +091 084 000 In Arena 0 +091 085 000 N:Wv:Seq 0 +091 086 000 Euroman 0 +091 087 000 OrchWind 0 +091 088 000 PacifiSp 0 +091 089 000 Big Bang 0 +091 090 000 UniVerse 0 +091 091 000 OD Organ 0 +091 092 000 SyncHome 0 +091 093 000 AngelChr 0 +091 094 000 PrgSplit 0 +091 095 000 Trinidad 0 +091 096 000 EnoseHrn 0 +091 097 000 Ensemble 0 +091 098 000 There&Bk 0 +091 099 000 SeaStorm 0 +091 100 000 TypeA Ln 0 +091 101 000 BgForest 0 +091 102 000 Appear 0 +091 103 000 Emmabama 0 +091 104 000 Sweeper 0 +091 105 000 Dreaming 0 +091 106 000 FatPluck 0 +091 107 000 12TonBel 0 +091 108 000 Have Fun 0 +091 109 000 Bow&Bras 0 +091 110 000 EchoSuit 0 +091 111 000 Perclatr 0 +091 112 000 Vectorin 0 +091 113 000 Hard&Swt 0 +091 114 000 Trombhrn 0 +091 115 000 Synmonic 0 +091 116 000 Mixture 0 +091 117 000 Finale 0 +091 118 000 AfrcMood 0 +091 119 000 Encountr 0 +091 120 000 LayrCake 0 +091 121 000 Puffalog 0 +091 122 000 Pd+Alpha 0 +091 123 000 BrkADish 0 +091 124 000 Randmizr 0 +091 125 000 HrnMelod 0 +091 126 000 AcidTool 0 +091 127 000 TimeTunl 0 diff --git a/src/basic/index.mjs b/src/basic/index.mjs index b81d0ffe..cecbcf85 100644 --- a/src/basic/index.mjs +++ b/src/basic/index.mjs @@ -113,7 +113,7 @@ let RootDisplay = class extends CustomEventSource { }); }; }); - console.debug(`Map: ${allCount} total, ${loadCount} loaded.`); + console.debug(`Voice names: ${allCount} total, ${loadCount} loaded.`); upThis?.device.forceVoiceRefresh(); }; async loadEfx(text, overwrite) { diff --git a/src/state/bankReader.js b/src/state/bankReader.js index a5970ae6..8db2144c 100644 --- a/src/state/bankReader.js +++ b/src/state/bankReader.js @@ -2,7 +2,7 @@ import {ccToPos} from "../state/index.mjs"; -const sgCrit = ["MSB", "PRG", "LSB"]; +const sgCrit = ["MSB", "PRG", "LSB", "NME", "ELC", "DRM"]; let halfHex = function (n) { let segA = Math.floor(n / 10), segB = n % 10; @@ -15,6 +15,7 @@ let VoiceBank = class { get(msb = 0, prg = 0, lsb = 0, mode) { let sid = [msb, prg, lsb]; let bankName; + let bankPoly = 1, bankType = 0, bankDrum; let args = Array.from(arguments); switch (mode) { case "xg": { @@ -325,8 +326,13 @@ let VoiceBank = class { let iid = [args[0], args[1], args[2]]; // Bank read while (!(bankName?.length >= 0)) { - bankName = this.#bankInfo[args[1] || 0][(args[0] << 7) + args[2]]; - if (!bankName) { + bankName = this.#bankInfo[args[1] || 0][(args[0] << 7) + args[2]]?.name; + if (bankName) { + let bankObject = this.#bankInfo[args[1] || 0][(args[0] << 7) + args[2]]; + bankPoly = bankObject?.poly || bankPoly; + bankType = bankObject?.type || bankType; + bankDrum = bankObject?.drum; + } else { if (!this.strictMode) { /* if (mode != "gs" && mode != "ns5r") { args[2] = 0; @@ -371,9 +377,13 @@ let VoiceBank = class { } else { args[1] %= 7; }; - bankName = this.#bankInfo[args[1] || 0][(args[0] << 7) + args[2]]; + bankName = this.#bankInfo[args[1] || 0][(args[0] << 7) + args[2]]?.name; if (bankName) { ending = " "; + let bankObject = this.#bankInfo[args[1] || 0][(args[0] << 7) + args[2]]; + bankPoly = bankObject?.poly || bankPoly; + bankType = bankObject?.type || bankType; + bankDrum = bankObject?.drum; } else { bankName = ""; ending = "*"; @@ -553,6 +563,9 @@ let VoiceBank = class { }; return { name: bankName || `${halfHex(msb || 0)} ${halfHex(prg || 0)} ${halfHex(lsb || 0)}`, + poly: bankPoly, + type: bankType, + drum: bankDrum, iid, eid, sid, @@ -571,22 +584,61 @@ let VoiceBank = class { assign.forEach(function (e0, i0) { sig[sgCrit.indexOf(e0)] = i0; }); - //console.debug(`Bank map significance: ${sig}`); + console.debug(`Bank map significance: ${sig}`); } else { + let msb = 0, prg = 0, lsb = 0, name, poly = 1, type = 0, drum; assign.forEach(async function (e1, i1) { - if (i1 > 2) { - upThis.#bankInfo[to[sig[1]]] = upThis.#bankInfo[to[sig[1]]] || []; - if (!upThis.#bankInfo[to[sig[1]]][(to[sig[0]] << 7) + to[sig[2]]]?.length || allowOverwrite) { - upThis.#bankInfo[to[sig[1]]][(to[sig[0]] << 7) + to[sig[2]]] = assign[3]; - loadCount ++; - } else { - //console.debug(`Skipped overwriting ${to[sig[0]]},${to[sig[1]]},${to[sig[2]]}: [${upThis.#bankInfo[to[sig[1]]][(to[sig[0]] << 7) + to[sig[2]]]}] to [${assign[3]}]`); + switch (i1) { + case sig[0]: { + msb = parseInt(e1); + break; + }; + case sig[1]: { + prg = parseInt(e1); + break; + }; + case sig[2]: { + lsb = parseInt(e1); + break; + }; + case sig[3]: { + name = e1; + break; + }; + case sig[4]: { + e1 = parseInt(e1) + if (e1 < 16) { + poly = e1 + 1; + } else { + type = (e1 & 15) + 1; + }; + break; + }; + case sig[5]: { + drum = e1; + break; }; - allCount ++; - } else { - to.push(parseInt(assign[i1])); }; }); + upThis.#bankInfo[prg] = upThis.#bankInfo[prg] || []; + let writeArray = upThis.#bankInfo[prg]; + if (!writeArray[(msb << 7) | lsb] || allowOverwrite) { + let voiceObject = { + msb, + prg, + lsb, + name, + poly, + type, + drum + }; + //console.debug(voiceObject); + writeArray[(msb << 7) | lsb] = voiceObject; + loadCount ++; + } else { + //console.debug(`Skipped overwriting ${to[sig[0]]},${to[sig[1]]},${to[sig[2]]}: [${upThis.#bankInfo[to[sig[1]]][(to[sig[0]] << 7) + to[sig[2]]]}] to [${assign[3]}]`); + }; + allCount ++; }; }); if (!allowOverwrite) { diff --git a/src/state/index.mjs b/src/state/index.mjs index e5d4f77a..9b1c459d 100644 --- a/src/state/index.mjs +++ b/src/state/index.mjs @@ -38,6 +38,11 @@ const modeIdx = [ "mt32", "ns5r", "x5d", "05rw", "sd", "k11", "sg", "krs", "s90es", "motif" +], +voiceIdx = [ + "melodic", + "drum", + "menu" ]; const substList = [ [ @@ -158,6 +163,10 @@ let dnToPos = { useDrumNrpn.forEach((e, i) => { dnToPos[e] = i; }); +let voiceType = {}; +voiceIdx.forEach((e, i) => { + voiceType[e] = i; +}); let getDebugState = function () { return !!self.Bun || self.debugMode || false; // If run on Bun.js, output all possible logs @@ -708,12 +717,24 @@ let OctaviaDevice = class extends CustomEventSource { case modeMap.x5d: case modeMap.ns5r: { if ([61, 62, 126, 127].indexOf(det.data[1]) > -1) { - if (this.#chType[part] == 0) { + if (this.#chType[part] == this.CH_MELODIC) { this.setChType(part, this.CH_DRUM2); console.debug(`CH${part + 1} set to drums by MSB.`); }; + } else if ([80, 81, 82, 83].indexOf(det.data[1]) > -1) { + /*let voiceObject = this.getVoice( + this.getCcCh(part, 0), + this.#prg[part], + this.getCcCh(part, 32), + modeIdx[this.#mode] + ); + console.debug(voiceObject); + if (this.#chType[part] == 0) { + //this.setChType(part, this.CH_MELODIC); + console.debug(`CH${part + 1} set to ${voiceIdx[(voiceObject.type || 0) & 1]} by MSB.`); + };*/ } else { - if (this.#chType[part] > 0) { + if (this.#chType[part] != this.CH_MELODIC) { this.setChType(part, this.CH_MELODIC); console.debug(`CH${part + 1} set to melodic by MSB.`); }; @@ -3310,6 +3331,13 @@ let OctaviaDevice = class extends CustomEventSource { }; break; }; + case (p == 10): { + // 0: singular oscillator + // 1: dual oscillator + // 2: drum kit + //console.debug(`${name}: ${e}`); + break; + }; case (p == 11): { voiceMap += `\n${msb}\t${prg}\t${lsb}\t${name.trim().replace("Init Voice", "")}`; prg ++; @@ -4120,6 +4148,13 @@ let OctaviaDevice = class extends CustomEventSource { }; break; }; + case (p == 10): { + // 0: singular oscillator + // 1: dual oscillator + // 2: drum kit + //console.debug(`${name}: ${e}`); + break; + }; case (p == 11): { msb = e & 127; break;