tuntorius / mightier_amp

An alternative app for controlling NUX Mighty amps.
MIT License
187 stars 18 forks source link

UI update when using the tone knob #15

Closed TullyMore closed 2 years ago

TullyMore commented 3 years ago

Hi Tuntorius,

as mentioned in the other issue, here are my findings regarding the tone knob. Apart from when used with the Jazz Clean amp, where it changes the on/off button in the app, it has no effect at all.

Using your MIDI console I found, that the tone knob for amp models tend to have different values.

Tone: 128,128,176,80,X Jazz Clean (Offers brightness setting) Tone: 128,128,176,15,X Deluxe Rvb (Offers only bass, middle, treble) Tone: 128,128,176,80,X Twin Rvb (Offers brightness setting) Tone: 128,128,176,15,X Class A30 (Offers only bass, middle, treble) Tone: 128,128,176,80,X Brit 800 (Offers presence) Tone: 128,128,176,80,X 1987x50 (Offers presence) Tone: 128,128,176,80,X Fireman HBE (Offers presence) Tone: 128,128,176,80,X Dual Rect (Offers presence) Tone: 128,128,176,80,X DIE VH4 (Offers presence) Tone: 128,128,176,80,X AGL (Offers presence) Tone: 128,128,176,14,X Starlift (Offers vintage,off,modern setting, plus contour setting) Tone: 128,128,176,80,X MLD (Offers additional mid freq setting) Tone: 128,128,176,15,X Stageman (Offers only bass, middle, treble)

It appears that the different numbers stand for: 14 bass, middle, treble, contour, level 15 bass, middle, treble 80 bass, middle, treble, brightness with the exception that the MLD additionally offers mid freq

MIDI commands go from off to full: 128,128,176,80,1 to 128,128,176,80,127 and from full to off: 128,128,176,80,125 to 128,128,176,80,0

Hope that input helps.

TullyMore commented 3 years ago

Followup:

Out of curiosity, I checked how the NUX app handles the tone knob. Here's how it behaves:

Jazz Clean - Toggles brightness switch on/off Deluxe Rvb - Changes treble Twin Rvb - Toggles brightness switch on/off Class A30 - Changes treble Brit 800 - Changes presence 1987x50 - Changes presence Fireman HBE - Changes presence Dual Rect - Changes presence Die VH4 - Changes presence AGL - Changes mid freq Starlift - Changes middle. MLD - Changes mid freq Stageman - Changes presence

I also checked the volume and gain knob function and it works as expected with the exception to the Starlift. Here the gain knob toggles the contour value vintage/off/modern where going from off to around 12 o'clock is vintage, +/- 12 o'clock is off and 12 o'clock to full is modern.

regards

tuntorius commented 3 years ago

As I wrote in the other issue, I found what the problem is. But I'm surprised that a knob controls the Bright on/off switch and not a slider. It defeats a purpose of a knob which should be a variable control.

Note that I'm not writing some specific code that handles each midi command value individually. When the app receives a message, it scans through all the parameters of all the effects until it finds a match that has the same midi command value and changes that one. So it kind of works automatically.

These are all the midi CC commands (the 4th number) I've extracted from the official app if you are interested: https://github.com/tuntorius/mightier_amp/blob/f99e8c8187d4d4f11c3e644e62a0450fdc771009/lib/bluetooth/devices/NuxConstants.dart#L198 Note that there are some really interesting ones like bCC_AmpEnable = 102; bCC_CabEnable = 101; which suggest that the amp and cab section could be turned off. However I have tested that multiple times and it doesn't do any change in the sound, which is true for like 1/3 of the commands in this list. Maybe they are shared with many other amp models.

TullyMore commented 3 years ago

I was curious to learn how a tone knob works in the first place, as I have no experience with how it would work in a "real" amp. I guess I was expecting something like, changes bass and treble a little and mids a lot?

As I was gathering the information anyway, I thought it might be useful to you, hence posted it here. But thanks to your explanation, I now understand how the programming is working.

Pitty to see, that the Amp/CabEnable feature isn't working. Would be interesting to hear the plain speakers, as I find the amps and reverbs that came with the latest firmware update all sound kind of hollow, thin and unnatural.

Anyway. I'm happy for these two issues to be closed, as you seem to have found the solution and I'm looking forward to your next version.

tuntorius commented 2 years ago

Hi, I just updated the app with the fix. It took a while because I also wanted to add midi controller support. You can check it out in the releases section.

TullyMore commented 2 years ago

Hi tuntorius,

thanks for the new release. I was looking forward to it. And no need to apologize. You‘re doing a great job! Already tested the hid/midi support and possibly found an issue, which I will open a separate issue for.

Just tested the fix for the tone knob. It works fine, so the issue is solved.

I only wonder about two things:

  1. On the guitar amps it changes either the Treble, Presence, or Brightness switch.

  2. On the bass amps, it changes either the Middle, or Mid Freq, depending on the amp.

I checked with the NUX Mighty Amp app, and it shows the same behavior.

I‘m by far no expert regarding amplifiers, but wouldn‘t it make more sense to change more EQ parameters with a tone switch? I‘m thinking of e.g. scooping the mids, while also slightly lowering the bass and treble, and vice versa.

I understand that this would exceed the functionality of the NUX app (what Mightier Amp already does ;-) ) and one would probably have to have the ratio by which the changes have to be done, etc, etc. So I‘m just asking.

tuntorius commented 2 years ago

I think NUX messed this up a bit with the update because they rearranged the amps and their parameters. Each node of the fx chain has a specific number of parameters - EFX has 3, amps have 6, and so on. The knob you are talking about is wired to always control parameter 6. As you can see, parameter 6 is different in each amp. Note that deluxe reverb and ac30 have 5 parameters, however, the 5th slider is actually parameter 6. They skipped the 5th one so that the knob still works in these amps. Still, this creates discrepancies with the physical controls. I had the same problem when implementing the key bindings for the new remote control module. If you want to associate a midi control for the amp volume, it will work with all amps except stairlift, where it would control the mids. I don't see how this can be fixed by the app. Although I can detect that knob, the amp already changed the "wrong" parameter inside it, even before it sent the command. I would have to fight with it by undoing that setting and changing the "right" one which I believe won't work reliably at all.

TullyMore commented 2 years ago

Thanks for your explanation. I was afraid, that it would be like this, as the NUX app behaves the same way. Pity to see, that they put so little effort in this setting, as this robs the knob a lot of value and the space it takes on the amp could have put to better use. Maybe one day in a new firmware update...