scottapotamas 1 day ago

You might enjoy https://github.com/scottbez1/smartknob

The complexity of this approach (ignoring the display and flair) unfortunately means you won’t see this used too often due to cost.

3
weinzierl 1 day ago

My dream is a piano keyboard with entirely software controlled mechanical key response. Every key individually mounted on a servostepper. As a bonus it could be used as a fake player piano. Or for practice you could make the wrong keys hard to press. Endless possibilities.

vhcr 17 hours ago

The Yamaha Disklavier has solenoids on every key, so you could disable every key but the one you want by moving them downwards.

It already has a similar feature called SmartKey: https://www.youtube.com/shorts/_Qj33POZCyA

Q6T46nT668w6i3m 1 day ago

Great idea and I’m shocked this doesn’t exist.

robotresearcher 21 hours ago

It would likely be very, very expensive.

A compromise that is affordable and does exist is programmable response curves to key velocity and aftertouch pressure. It can make sense to have different curves for eg. piano vs harpsichord even if you can’t change the mechanical key impedance.

I haven’t seen it in the wild, but using this you could make the wrong notes quieter/louder or even play a different sound. But I think we all know when we play a wrong note, so the utility might be small.

mrandish 18 hours ago

> key velocity and aftertouch pressure.

Just a tangential note to say whenever I see these terms in discussion of MIDI keyboards it reminds me how disappointed I am the vast majority of MIDI controller (and multi-thousand dollar flagship synth) keyboards still don't fully support per note velocity or polyphonic aftertouch. It's only been 40 years kids... (sigh).

otabdeveloper4 7 hours ago

Not really needed. A synthesizer is not a piano, it's essentially a wind instrument.

adamgordonbell 1 day ago

> Or for practice you could make the wrong keys hard to press.

This seems like a pretty cool idea

tarentel 23 hours ago

I'm not convinced it would work very well on making you a better player but who knows. Either way, it sounds like a good way to injure yourself. Piano is a very percussive instrument and if you're hitting the keys with any force and they don't give the way you expect them to I imagine that won't be very great for your joints.

diggan 1 day ago

That's so cool on so many levels, and I really enjoyed that indeed, now I have to fight the urge to try to build it myself, good thing it's weekend.

However, it does seem to miss the single most useful feature (for me) which is the resistance part. I understand there is a DC motor controlling the snap points and whatnot, but what I'd like is constant resistance I guess, to a configurable level, rather than snapping to specific points and such.

I don't think it would be possible to hack on top of the already made hardware, but didn't seem like it was already done in the software side of things, although I did skim through things so maybe I missed it.

pakue 1 day ago

Should be doable to add that. The BLDC needs to add a proportional (or any other function) force against the rotation direction until it reaches 0.

diggan 1 day ago

Sounds reasonable, wonder how that would actually feel in real life? As far as I understand, this would pass through digital parts, adding a little bit of (maybe noticeable) latency, but I wonder if the latency gets high enough for it to be a bit jarring that the resistance is dynamically changing as you apply torque.

camtarn 2 hours ago

In practice, when latency is small enough (on the ~1ms level, which is trivial to achieve using even pretty cheap parts) it's imperceptible.

I sometimes develop control loops for prototype systems which use a motor to emulate a combination of spring + friction damper, and even though I know that my code only runs every 1ms, it's really remarkable how much it feels like a real continuous analogue system.

Another good example is power steering, which uses a motor to remove resistance instead of add it. If I understand it correctly, it senses you applying torque to the steering column and adds proportional amounts of boost - but because it happens so fast, it just feels like the steering is magically lighter.

scottapotamas 23 hours ago

This is all fairly normal in robotics, under a subset of (slightly overloaded naming sorry) “impedance control”

adolph 1 day ago

A differently complex and smaller approach might be to combine the knob with with an axial flux PCB-BLDC, like what Carl Bugeja made [0, 1]. It might be suited to get haptics in something as small as the article's knob, although to get an in-built display you'd have to use one of those displays that fit in lego bricks [2, 3] with a slip-ring.

0. https://microbots.io/products/motorcell

1. https://www.youtube.com/watch?v=CVszJMlvZcA

2. https://github.com/AncientJames/uGrey

3. https://www.youtube.com/watch?v=0pUV_3qeHog

diggan 1 day ago

Many thanks for the links/references. I don't really care about the display itself (probably prefer without it actually), but never saw those other links before, interesting stuff.