I'm interested in modifying my harpsichord to give it dynamic (loud/quiet) capacity. I intend to attach speed sensors to the keys and then have the computer turn a small gear different amounts based on sensed speed. The gear will slide a tab varying distances (very fine-tuned) under the plectra (string plucking tabs) to reinforce them to different extents and so determine how hard the strings are plucked. I was told about arduino but I haven't learned about it yet and I don't know how doable this idea is/how many microcontolers I would need. Can one micro controller attach to many speedometers? Or to many little gears? I assume the speedometer would be electric-eye based. I'd appreciate any help/advice people can give me.
Thanks a lot,
That sounds ambitious!
I'm not sure the speed at which the adjustment will be made will be sufficient to alter the plectra before the note is struck.
Have you seen something similar before?
How many keys does a harpsichord have? If you were to assign addresses to each key, and corresponding addresses to each plectra, I daresay in theory it would be possible with an arduino? But I don't have anything like enough knowledge of arduino programming or harpsichords to even begin to address the problem!
I would imagine there are about 5 to 10 milliseconds between when a key is pressed, and the pick hits the string. A separate microcontroller for each key would be fastest, and the program would need to be small and efficient. Hopefully, you've designed something clever that changes the elasticity of the pick that can react very fast!
If the key was mechanically separated from the plec, which in turn was operated by an actuator... THAT would work...
You might have 61 keys on a harpsichord, right? Here's a technical drawing for those of you not knowing the instrument:
I'd say you're taking the wrong approach, if you want to electronically measure the speed of the key and electronically produce a tilt of the plectra holder. But if you want to go along that path, do it on one key first. Get it working (or figure out it won't work) and after that extend to the 60 keys. No microcontroller can do 61 inputs (or you need probably 122) and 61 outputs just by connecting data pins to sensors or actuators. You need a lot of multiplexing inbetween.
I'd keep it mechanical. I'd try to attach a weight on the tilting plectra holder. A slow key press would lift the weight, but a faster key press would have the weight pull the plectra holder and hence the plectra towards the string.
This shows the idea. The pink thing normally tilts to the right after the key release, letting the plektra slide over the string. But allowing it to tilt to the right, too, could add tension on the string when plucking. The extended arm to the left holds a weight, which will add the tilt to the left depending on the speed of the key. A spring under the pink plektra holder works against the weight.
Spare your Arduino for recording the key strokes instead and have it play back through 61 solenoids