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;