I’m putting together a plan for a robot to play a guitar and, while I think I’ve licked the issue of pressing the frets, I’m stumped as to the best approach for plucking the strings.
I’ve got my eyes on these two products:
Continuous: FEETECH FS90R Micro Continuous Rotation Servo Australia
Actuating: Power HD Micro Servo HD-1900A Australia
Question is, which approach would be better for my project, or is there another product I should consider? I am aiming for a ceiling of 200bpm (Dick Dale’s “Misirlou” is 172bpm!), even if I have to employ more than one servo and sacrifice a fret to fit it all on a single Pico per string - this will not be a cheap project!
Servos would be a bit slow wouldn’t they? I am assuming you want to rotate a servo 1 revolution and pluck the string on the way past. That small one in that link would take about 0.5 sec at 6V. Would that be fast enough?
Do guitar strings respond to a little hammer blow like a piano. I was thinking a little spring loaded solenoid giving the string a hit may be faster.
Or like a harpsichord where when a key is struck a little gizmo goes past the string and plucks it (as different from a piano’s hammer) then the little plucking device folds away so it doesn’t touch the string on the way back to the rest position. I saw the works of one of these many years ago. Very ingenious considering this instrument preceded the piano by quite some time.
Ambitious project. I will watch with interest.
Thanks for the reply Bob.
There likely won’t be enough room for a full rotation - there’d be about 10-20 degrees of rotation before it strikes another string, so it would be moving back and forth - I chose a servo because I need a degree of certainty as to where the horn will be for reliable strikes. Could I do this without the servo chewing itself to pieces?
I think a guitar string would respond to a hammer hit, but not nearly with as much impact as a pick pluck. If a solenoid’s actuator could be somehow translated to the up/down position of a pick, that might be an option, but I’m not sure how I would accomplish that with the limited amount of space I have available - an electric guitar’s strings have about 8mm of clearance between them IIRC.
Don’t see why not. After all they are supposed to move to any desired position. Being backward and forward should not make a great difference. There may however be a maximum recommended duty cycle. You will have to keep this in mind and check I don’t remember having seen anything in print about this. Perhaps someone more conversant with servos may be able to help.
No matter what you do you are going to have to think about the return stroke. The "plucking"device will have to retract out of the way or it will contact the string twice. Something like the Harpsichord I mentioned above. This would apply to any solenoid device too. And in fact any system where the plucker (for want of a better word) goes past the string then returns to rest. The alternative may be to have the “plucker” do its thing on the way down then stay there until it is required again then “pluck” again on the way up. Programming could be a bit messy but that is another story…
If you want to know and control the position of a servo a continuous rotating one will be no use. The only position you can know or control is 90º. Anything above or below that and the servo just keeps going. The above and below just change direction.
The idea of plucking the string on the forward stroke then on the reverse when next needed could equally apply to servo or solenoid systems. This could also cut down drastically the time needed between strokes.
That’s pretty much what I had in mind - move to pluck, then move back to pluck when called upon to do so again (much like a human guitarist would), and use the program running on the controller to keep track, with an option to call for a manual adjustment if it falls out of sync.
Though I just had another thought… I could mount the servos vertically and attach a pick to the end of the armature, using the in/out motion to pluck the string on each stroke. It’d just be a matter of working out where on the tip to position the pick so it can pluck the string without getting stuck.
There will be a way I am sure. One thing, servos don’t go in and out. Solenoids do. Another thing, as I said above you won’t be able to use continuous servos. They only have 2 states, 90º or moving. You may be able to mount servos vertically and have the horn with “plucker” (that’s a good word isn’t it) attached just flipping across the string without moving very far at all which should speed things up dramatically compared to any long travel…
Yeah I meant to say solenoids. Got my terms mixed up.
Ok, so I think that should be my way forward. Solenoids will be more predictable I think - if I set it to HIGH when it’s already high, it’ll just skip that particular beat rather than potentially result in musical chaos second only to having it play when the guitar is out of tune…
The little details and exactly how you do it id your domain as is the actual programming.
As far as music is concerned I like listening but the rest may as well be written in Swahili.
I can play a Gramophone if that helps.
Am intrigued by this project. Keep us posted.
Bob’s direction on this one has been pretty flawless already! It might be worth adding a slider crank of some sort to the solenoids to get more of a rotational plucking motion than a hammering motion.
We’d love to see the project’s progress so feel free to post updates.
Yeah, will do. Might be a while though, the number of solenoids I’ll need for this is going to make this something of a pricey endeavour. To say nothing of the difficulty I might experience in getting enough RPi picos to run them…
In the meantime, here’s a video of a prototype of my drum robot, built using the guide made by the band Ponytrap:
Suggestion. Get a couple to start with and see if you can make it work mechanically first. Before you go to great expense.