Hi Scott,
How you going?
I was thinking more about your WVR program and I had a brainstorm!
Recently I bought a new computer keyboard and it turns out it has a very handy volume scroll wheel.
I wasn't interested in that feature when I bought it, but it turns out it's actually fantastic!
The Logitech G110, here's a couple shots of the wheel:
http://www.brightsideofnews.com/Data/20 … 10_675.jpg
http://www.hardwareheaven.com/reviewima … 110/20.jpg
Anyways, on to my idea;
As you mentioned, the problem with windows volume is that it lacks resolution. 127 steps is really not much.
Here's the interesting part: because you can receive AND SEND data to windows' master volume, you can actually manipulate it and bend it to give infinitely fine resolution!
Example;
WVR reads the initial level from Totalmix, to provide a known starting point. (Alternatively, WVR could always initiates Totalmix volume to -inf)
Then the 'magic' happens.
The user turns up his/her endless volume control (such as G110 or common +/- pushbuttons). Once WVR has received the value 127, it sends a command to the windows mixer to set it's volume back to 0, however, WVR keeps counting from this point. Again, the windows mixers will reach it's max level of 127 and WVR will reset this level.
This is how you can get infinitely fine resolution from a fixed resolution (endless) rotary encoder.
Let's take this example:
WM = Windows Mixer
TM = TotalMix
WVR = your program, 2.0 ![wink](https://forum.rme-audio.de/img/smilies/wink.png)
Let's also say in WVR we have assigned 381 steps (3x127) of resolution to Totalmix faders. (Obviously this would be mapped to the 14-bit data, but for the sake of a simple example, we will ignore that)
WM = 0
TM = 0
<The user increases their volume control...>
WM = 1
TM = 1
WM = 2
TM = 2
...
WM = 125
TM = 125
WM = 126
TM = 126
WM = 127
<WVR sends signal to WM setting it to 0>
WM = 0
<WVR sends a signal to TM setting it to 127>
TM = 127
WM = 1
TM = 128
WM = 2
TM = 129
...
WM = 126
TM = 253
WM = 0
TM = 254
<WVR sends signal to WM setting it to 0>
WM = 0
<WVR sends a signal to TM setting it to 127>
TM = 255
etc...
If what I've said is unclear, let me know and I'll have a go at being more clear.
Bundle this feature with the user-assigned buttons feature I suggested before and I think you have a brilliant product on your hands!
So, what do you think?
Loyal RME user since 2001
[AMD 5800X, 32Gb RAM, Win10x64, NVidia GTX1080ti, UCX+UFX, REAPER x64]