I absolutely adore thess kind of DIY projects, where it becomes easily expandable and gets a good community empowering a feedback loop of better and better features.
You can buy premade MIDI faders for about $25 [0], there's no way that the hardware aspect of this project is worth making over that. The software is the only real issue, at a quick glance, [1] appears to be relatively equivalent for generic MIDI fader support, perhaps with a few more bells and whistles available.
[0] https://www.aliexpress.com/item/1005005589381790.html (a chinese clone of the korg nanoControl 2, the original korg aren't that great quality, but they work, the clones are 'just as good', or you can pay more for korg or another brand)
> there's no way that the hardware aspect of this project is worth making over that.
Well making it yourself would allow it to customize it to your needs. I though about creating something to hang below my monitor. That way it will not take any desk real-estate.
If you buy a chip with pins you don't even need to solder, just use female to female dupont.
Of course buying a midi controller is a valid option. I would just not say there is "no way" creating it yourself is not worth it.
It probably looks bigger in photo than it really is. The nanokontrol2 is a bit over a foot long. It feels pretty small in practice.
Worth mentioning about the NanoKontrol2, it is quite a beast to use well. To get control over the LEDs you need to send a variety of sysex midi messages. In general I found the midi control to be pretty daunting when trying to talk to mine. There was a lot more going on than I expected: https://cdn.korg.com/us/support/download/files/aeb2862daf0cb...
There are elegant ways for handling actuator/software mismatch for actuators with finite travel, like pots and faders.
Most schemes involve scaling the available fader travel to the "available" software travel.
Ex: Fader at 40%, software at 60%. Fader motion "up" between 40-100 moves software "up" between 60-100. Fader motion "down" between 40-0 moves software "down" between 60-0.
I would put a safety routine to let the software update only when the hardware is within a certain amount from the actual value, also giving visual feedback of the difference, so that the user could align hardware position to software position without any sudden changes.
They're not cheap, but not terribly expensive either. Adafruit has some[1] for $25, with 5V DC motors which is convenient. On DigiKey and Mouser there are some slightly cheaper[2] but with 10V motor.
Audio software will typically allow you to configure a soft takeover, where you must move the fader or knob until it matches the software value, and only then does it take over, to eliminate these surprises.
Rotary encoders are just not as good for controlling volume as faders.
Curious why rotary encoders aren't as good. I'm guessing because you cannot visually see the volume or the potential range based on the state of the interface? (E.g., How much is 1 tick of the rotary encoder? Who knows?)
I've been thinking about using a rotary encoder for lights to deal with this problem specifically (light state being out of sync with a fader/pot). I figure I'll just have software figure out the new state based on the user interaction.
Either not enough resolution to tweak some nuance or too many rotations needed for a wide swing. Perhaps rotaries with 256+ increments per rotation exist, but I think most are much lower. A sample I just checked seems to have 64 per turn, pleasantly surprised but still not really there yet. The 128 values of a legacy MIDI CC are typically over 270 degrees I think.
This is an ancient problem which has been around since synthesizers first got patch memory in the 1970s like the Prophet-5.
There are a number of ways to handle the knob or fader's physical position not matching the current value:
* As soon as the control is touched, it becomes "live" and the value jumps to wherever it is. This is the simplest, but most disruptive approach because a value can jump abruptly.
* When the control is moved, it has no effect on the value until it physically reaches where that value is. This avoids any disruptive jumps, but can be confusing because a control feels "dead" until you reach the right point to get it alive again.
* I think there are other approaches where moving the control starts interpolating the live value to where it is.
There's no perfect solution, but it's tractable and not a huge issue in practice. Motorized faders are nice but very expensive and have shorter life spans.
For knobs, you can more easily avoid it by using endless encoders instead of potentiometers and then interpret its current location as the current value. (For example, Elektron hardware and the Hydrasynth take this approach.) But you lose the nice tactile affordance of having the knob stop at either end of its extent.
Those tradeoffs are what I meant by nasty surprises. The solution 1 would be totally unacceptable to me.
And yes by rotary encoders I meant those that rotate indifinitely. And I miss my Elektron Model:Sample, too bad it lacked the sampling function otherwise I would have kept it.
The trick is to train yourself to always use the hardware :D
But like the others said, Soft-takeover has been a thing for many many years.
I would use the pots, you still have software vs hardware problem, but don't need to fiddle with small sliders when you just want to change the volume a tiny bit.
>What happens if you change the levels through software and your faders do not move?
Wouldn't your software changes are overwritten by the absolute values from the Deej? That wouldn't be a surprise.
I haven't dug through the code for the app, so I don't know if it monitors the levels in software and immediately corrects them with the hardware values, if it loops at a specific interval, or only triggers on significant hardware value change.
But if not monitored, I can't imagine it would be an insurmountable task to add.
Another HN project to add onto the neverending list! I am always having to tab out of Apex to adjust the mix with discord, every time I play. This is a really fun solution. Thank you for sharing.
This is neat! Is there a list of simple DIY hardware projects somewhere? I have a 3D printer and a bunch of microcontrollers laying around that don't get much use.
But https://hackaday.com/ features sometimes nice DIY project, I often also see them popping up on youtube. But you might be able to find some if you search on 3D printing websites such as https://www.printables.com/
I’ve thought about building something similar, but for an arbitrary number of sound sources, with a single flying fader, a small mono display for icons, and some buttons.
While this is certainly possible to hack together using LADSPA [1] plugins it may be easiest to use something like e.g. Easy Effects [2], configure some sound profiles - 'music', 'voice', 'video', '...' - and configure some key combinations to load these on demand using easyeffects -l <preset>. As to how to bind these keys depends on your operating environment, this is how it could look in e.g. Xmonad (which is what I use):
In this (contrived) example you'd press SHIFT-L_ALT-m to enable the 'music' profile, SHIFT-L_ALT-v for the 'video' profile.
You can also make a script which cycles through available plugins and bind that to a key, showing which plugin is activated when the key is pressed. There are many ways which lead to this version of Rome, choose the one you like best.
If you're using Gnome there is an extension which does most of the work:
(quote) It basicly adds a button to your top panel. Then you can click on it to see your available presets and click one to activate it without opening EasyEffects window. It also adds keyboard shortcuts to cycle through available input and output presets. Those can be set from extensions preferences window. Default keybindings are Ctrl + Super + o for output and Ctrl + Super + i for input presets.
Would be funny, if this is as useless as the Windows volume mixer itself, because as a person with OK hearing, you need to regulate volume between 0 and 5 out of 100, while on GNU/Linux distros you could use it just fine. Imagine that in a scene:
A: Hey, somehow it is super loud when I use this to regulate volume. How come yours is set so high?
B: Ha, that's because you are regulating volume on Windows, where it maps 1 to 1 to the software volume mixer!
A: frustrated stare at their screen showing a Windows desktop
B: Having fun with volume regulation going wuuuuiii
I normally use between 20 and up 50 when I want it loud. I've set my external amplifier to suit this.
I keep 50 "normal max" because sometimes I can be useful to be able to quickly go temporarily to 80-100 for really weak sources, without fiddling with the application or volume mixer.
That said, I have experienced what you mention when using an external headphone DAC/amp combo where there's been a mismatch between the output impedance of the DAC/amp and the headphones, and no option to adjust output impedance. But that's hardly Windows' fault.
Sounds like your hardware isn’t set right. The volume of your hardware device should be set so that it’s barely above comfortable listening volume when your device is at 100%, and then the device attenuation works from there. You probably have the hardware volume maxed out, which is also bad because it tends to run the amplifier all-out which will use much more power and generate more heat, as well as having lower dynamic range because you’re only using a subset of the amp’s range if you’re keeping it at a comfortable listening volume.
I never have my hardware "maxed out". Usually barely 50%. But anyway, all of my Windows using friends have the same problem and find it equally ridiculous. Seems like whatever Windows does by default on our machines is just a not working so well default.
I've worked with hundreds and hundreds of users over a decade and this is not a thing, no idea what you're talking abut. Learn to set your gain properly on your external amplifier, it's a you problem, not Windows.
Your experience does not invalidate my experience. I have had the same bad behavior across multiple versions of Windows, using multiple different loudspeakers, headsets and headphones, all the while it worked perfectly well in GNU/Linux distributions, where I can set volume like a sane person would, instead of like on Windows, where I need to micro management between 1 and 5 out of 100.
The fact, that this is a well known issue, that basically all my friends know about, having it right now, and in the past using various audio output devices themselves, tells me, that it is not a "me problem", but actually something that in general does not work so well in Windows. They have all accepted, that Windows volume mixer simply does this and that there is nothing that they can do. They are not regular GNU/Linux users like I am, so they are stuck with that.
Consider, that you might be in some kind of bubble, with your fortunate experiences. Consider, that maybe you did not understand the problem I am describing well. Since you are talking about "external amplifiers", makes me doubt, that you understand correctly what I am talking about. Note, that I have already stated, that I do not put volume externally to any maximum, like someone claimed earlier. So either you claim, that I am lying, or you do not understand what I wrote.
Perhaps you should rather ask questions about the issue and try to be helpful, instead of going on assuming and pretending the problem does not exist, when it very much does and you simply seem blissfully unaware of it.
I also find your tone quite in conflict with this site's rules. It is quite rude.
I think it does invalidate it. Working for MSPs and contracting I've seen more in 10 years than someone at one company sees in their entire career. I've never heard of this issue ever. 100s of users > than your one anecdote sorry.
Meh, not really. The same way I could claim that yours is also just one anecdote. Otherwise we would be in the business of comparing how grand an anecdote we each can come up with.
But how about we add more anecdotes from other people?
You will find a lot of posts online, if you search for something like: "windows volume mixer too loud". For example:
As another data point, one friend of mine bought an external audio interface, because of these and other annoyances in Windows and now regulates the volume using that.
Windows is complex, and the hardware people run Windows is also complex. Shit can be weird. For one, I had a problem with my Ryzen 5600 CPU and RX-5700XT video card combo. There is some kind of incompatibility between these two, and one that I only experienced in Windows, and only in a few specific games, and only in specific scenarios in those games. One such was looking up on the sky in Anno 1800, a strategy game. Look up the sky, and Windows reboots in one minute.
This experience is rare, evidenced by the many normal benchmarks and gameplays that exist with this, and similar combos. But other people also experienced it, such as this user:
I have since swapped my 5700 xt to a 6600 xt, and the issue went away. The new owner of the 5700 xt is also happy as a clam at high tide. I'd wager that maybe a few hundred of people experienced this at most.
LTT recently did a video about deej in their recent cheap gadgets video. https://youtu.be/8BxVi6YiicQ