snhirsch / katana-midi-bridge

Provides enhanced MIDI control capability to Boss Katana (tm) guitar amplifiers
GNU General Public License v2.0
76 stars 11 forks source link

Gain value dead zone? #6

Closed Beanow closed 7 years ago

Beanow commented 7 years ago

As I was writing values to [60 00 00 52] I noticed that unlike other 0x00 - 0x64 parameters such as volume and the EQ params, it's not 0x00 - 0x64 but rather 0x14 - 0x64 for me.

This effect can be seen when comparing the [60 00 00 52] value with the [00 00 04 21] read-only gain value which does range from 0x00 - 0x64.

Turning the gain knob on the amp itself also gives these skewed values.

In other words:

60 00 00 52 --> 00
60 00 00 52 <-- 00
00 00 04 21 <-- 00

60 00 00 52 --> 14
60 00 00 52 <-- 14
00 00 04 21 <-- 00

60 00 00 52 --> 15
60 00 00 52 <-- 15
00 00 04 21 <-- 01

...

60 00 00 52 --> 1E
60 00 00 52 <-- 1E
00 00 04 21 <-- 0D

...

60 00 00 52 --> 35
60 00 00 52 <-- 35
00 00 04 21 <-- 29

...

60 00 00 52 --> 64
60 00 00 52 <-- 64
00 00 04 21 <-- 64

Did I change a setting somewhere or does this happen for you as well?

snhirsch commented 7 years ago

I have no idea what is at that address. The GT-100/001 spec has that in one of the "Preamp" ranges and I have never observed it in Katana <-->BTS traffic. What control are you observing that talks to that address? That's a new one for me.

Beanow commented 7 years ago

I must have been getting sleepy. I didn't realize you hadn't documented this range. BTS does indeed do things differently. It writes to the [00 00 04 21] address to change the gain from software.

I found this address because you get responses in pairs when BTS mode is on.

After some more testing there are small differences which makes me suspect this is some sort of backward-compatibility range of addresses. It at least covers all physical knobs excluding master and power control.

Range [00 00 04 XX] [60 00 00 XX]
Can write Yes Yes
Amp response Real-time Real-time
SysEx response Real-time Buffered counterpart
Value range 0x00 - 0x64 0x00 - 0x64, except gain: 0x14 - 0x64
Beanow commented 7 years ago

Ok, it gets even more interesting. I tried out the lower values which appear dead just looking at the SysEx in [00 00 04 XX], but it actually does change gain. It allows you to set lower gain values than BTS or the amp knob would.

Tapping some metal on the pickup's magnets. Any amp type, volume 100%. I moved around in the 00 - 14 range on the [60 00 00 52] address and you can hear gain changes.

00 is completely off, effectively muting. 01 - 13 is less gain than 00 on the [00 00 04 21] address.

Beanow commented 7 years ago

Looking at further addresses, rather than backward-compatibility, it may be a convenience vs low level range. Take a look at the Boost effect. A single address [00 00 04 27] controls on/off, drive and inverse effect level. Which otherwise would be individual addresses.

Front Panel Address 1 Range 1 Address 2 Range 2
Amp Type [00 00 04 20] 00 Acoustic
01 Clean
02 Crunch
03 Lead
04 Brown
[60 00 00 51] 01 Acoustic
08 Clean
0B Crunch
18 Lead
17 Brown
Amp Gain [00 00 04 21] 00 - 64
Identical to
physical knob
[60 00 00 52] 00 Muted
01 - 13
Less gain than knob
14-64
Knob's range
Amp Volume [00 00 04 22] 00 - 64 [60 00 00 58] 00 - 64
EQ Bass [00 00 04 23] 00 - 64 [60 00 00 54] 00 - 64
EQ Middle [00 00 04 24] 00 - 64 [60 00 00 55] 00 - 64
EQ Treble [00 00 04 25] 00 - 64 [60 00 00 56] 00 - 64
FX Boost [00 00 04 27] 00 Off
01 - 34
drive(0-70) +
effect level(75-50)
[60 00 00 30]
on/off
[60 00 00 32]
drive
[60 00 00 37]
effect lvl
00 - 01
on/off
00 - 78
drive (0-120)
00 - 64
effect lvl(0-100)
... ... ... ... ...
Presence [00 00 04 26] 00 - 64 [60 00 00 57] 00 - 64
snhirsch commented 7 years ago

I believe I know what that's all about. My theory is that the Katana DSP hardware is similar or identical to the GT-100/GT-001 products. If you look at the 100/001 MIDI spec, that sysex address for volume is the preamp gain control. When you turn the panel gain control it gets remapped to that "hidden" preamp gain address. There are probably a lot of locations in the 100/001 spec that the Katana will respond to, yet which are not exposed on either the panel or in BTS. I noticed that many of the controls caused the amp to echo multiple responses when in "edit" mode, but concluded that the first message was most important.

For extra credit, take a close look at 00 00 04 10 --> 00 00 04 15. These reflect current "color" and range of the Effects knobs. They seem at first glance to be read-only, but I haven't experimented very much with them.

Beanow commented 7 years ago

You're right. And that got me WAY more interested in the weird values in the [60 00 00 51] address. Which uncovered 27 amp types. https://github.com/katana-dev/docs/blob/master/tables/amp-types.md

I'll get to the other addresses eventually as well.

snhirsch commented 7 years ago

Have you verified that those undocumented models are functional and distinct from the documented ones? If so, great news. Have you managed to get membership on VGuitar Forums yet? Let me know if you're having problems and I'll ping Steve.

Beanow commented 7 years ago

I've got a forum membership http://www.vguitarforums.com/smf/index.php?action=profile;u=22221

Using http://das.nasophon.de/mididings/ and a small Katana SysEx class, I wrote a script that lets me cycle through each of the 27 amp types and they do sound different in terms of Gain and EQ. It's hard to tell exactly if the Input-Response profile is different. Some distortion seems different at first glance.

But yes they are functional and different.

Beanow commented 7 years ago

I think we know a lot more about these parameters now so this issue is closed. Have a look at https://github.com/katana-dev/docs/blob/master/tables/patch-capabilities.md as well.