mungewell / zoom-zt2

Python script to install/remove effects from the Zoom G1Four pedal
MIT License
50 stars 10 forks source link

Alternative taxonomy of effect categories (B6) #57

Open nomadbyte opened 1 year ago

nomadbyte commented 1 year ago

Just stumbled upon an unexpected finding -- it appears that the ZD2 for B6 model (*88.ZD2) have a category taxonomy that differs from the usual one, as applicable to most other G Series models.

B6-xcatid B6-catid B6-catname B6-cattag G-catid G-catname G-cattag
0x01 1 DYNAMICS DYN 1 DYNAMICS DYN
0x02 2 FILTER FLT 2 FILTER FLT
0x03 3 DRIVE DRV 3 DRIVE DRV
0x04 4 PREAMP PRE 4 AMP AMP
0x05 5 BASS AMP AMP 5 CABINET CAB
0x06 6 CABINET CAB 6 MODULATION MOD
0x07 7 MODULATION MOD 7 SFX SFX
0x08 8 SFX SFX 8 DELAY DLY
0x09 9 DELAY DLY 9 REVERB REV
0x0A 10 REVERB REV - - -

As could be seen, the 4:AMP category is split into 4:PREAMP and 5:BASS AMP, shifting the following categories down in the sequence.

This somewhat breaks the established fxmodid-to-category mapping, at least makes this conditional on the device model. Alternatively, this mapping could be conditional on the fxmodid subtype, as the B6-specific ZD2 modules (*88.ZD2) all have 0x90000 in their fxmodid. That is:

is_B6 = ((fxmodid & 0x000F0000) == 0x00090000)

This would eval True for all B6-specific fxmodids similar to these:

0x04890011, "Bass DRV"
0x070900e1, "Kick FLNG"

I thought this would also be applicable to G6 model, however it appears that the *88.ZD2 modules are referenced only for B6 model.