Sorry, I remembered that wrong. VRC6's volume channel 0-15 actually maps to register values 0-30. V01 adds 32 to the value. So... your test still shows what happens. Note that with V01 on, the volume tops out when you put 5 in the volume column (32 + (5*2) = 42). After that you get overflow.
(Also I should have said V00/V01/V02/V03, I was thinking in binary instead of hex, but that would have still been wrong anyway.)
You can still make macro envelopes, even though it's slightly inconvenient because you have to use a pulse width macro as well. If you do this, though, you have to use volume F (or no volume) because the volume column only adjusts the volume part of the macro.
I dunno, I think it's nice and loud as is; I've never wanted to use the higher volume.
This is part of what I love about this forum... Mention something in passing, and sometimes it explodes into a technical conversation where you end up learning things.
So here's a question.... can you combine volume envelopes and the volume column to access the in-between values, or does it just get handled like any other channel?
No, I don't think so. It will probably pretend to be a 4-bit volume value like every other channel, and be converted (*2) and combined with the V bit only when the register is updated.
On a side note, you might be surprised to know that the NES does not have a multiply instruction, so the volume column vs volume macro is actually done by a lookup from a 16 x 16 table (this is also convenient, since it makes sure that only a real 0 gets an output volume of 0).
The VRC6 saw could have its own lookup table that could do this, I suppose, but it currently doesn't.
I dunno, the FDS and VRC6 could have expanded volume columns and macros that allow the full range, maybe... multiplication tables for 32x32 or 64x64 would get prohibitively large though (probably you would do it with code instead, if you can spare the performance).
I don't really feel like we're missing a whole lot here, but it would probably smooth out volume ramps at low volumes a little.
I kind of liked the Exx idea retrotails brought up. Either that or just disable/ignore the volume column when envelopes are used.
Or what about a volume macro that covers the range of 64 and simple formula like Env * (Vol / 15) that just gets rounded up?
It just seems a shame that the hardware could do things we can't take advantage of, even if it's something this small. I'm currently working on a cover and an in-between would be very helpful. Otherwise I have to mess with the volumes of everything else.
Clock rate is a different issue though. Clock rates are on the order of megahertz, pitch updates are on the order of tens of hertz. Whatever the clock rate it's still possible to update pitch at fairly arbitrary rates.