Hi all. I am new to this forum, and this is the crazy idea I’m trying to prototype… well, not THAT crazy, but nobody’s quite exactly done it yet.
A traditional Pedal Steel Guitar, or PSG, uses a completely mechanical system of pedals moving rods and levers to change the pitch of a particular string. This allows for different chords. Then a metal bar held in the left hand is used to pitch these chords to the correct key.
Virtually all PSGs have a particular variation on a pedal setup designed over the past 50 years for the singular purpose of playing country music. Changing what these pedals do requires cutting and threading rod, mounting all kinds of hardware, and maybe even welding! So PSG players very rarely stray from a few classic variations on the basic setup. However, the capability of sliding one chord to another different chord in another key is something that can’t be accomplished by any other instrument ever designed! So the potential of the instrument is serously under-utilized. If causing a particular pedal to change a string pitch a particular amount was easier to do, musicians (to start with, just myself, I guess) could experiment a lot more with the options, and develop some new approaches to this very cool, modern, and uniquely American instrument.
I’m not starting from nowhere. There’s been some experimentation. The most complete example is this one, using servos to change the pitch of the strings on an electric guitar:
And here’s a little test bed of using a stepper motor to do the same thing:
Here’s a quick mockup I did of the idea. It shows pitch changing levers driven by small linear actuators (which, depending on the gearing, are either too slow or too low on torque, and also larger than I think they need to be.)
The actuators move the bottom of the lever. The end of the string is attached to a pin or screw on the top of the lever. As the lever moves, the string changes pitch. A spring is used to balance the tension of the string, so less torque is required to move the lever.
The deflection required for a particular string to achieve the largest practical pitch change is on the order of 3mm. The lever for each string can bring that up to around 10-20 mm, depending on the geometry.
What’s needed for each string is a means of moving its lever over about 2 cm of distance under microprocessor control. It needs to respond very quickly to changes in the input, something on the order of <100 ms over the whole range. 30 ms would be nice. I don’t think I can move my foot much faster than that, although I haven’t measured… The precision needs to be on the order of 10 bits. The maximum pitch range would be about 4 or 5 semitones, and with a 1/2-cent precision (which I think is sufficient) that’s a total of 800-1000. Most pitch-changes would only use a portion of that range, 1 or 2 semitones. I think the analog inputs on arduinos are 10 bit, right? 9 bits, or 1 cent precision would probably be okay. I don’t think 8 bits will cut it, but it might barely, if that made things simpler.
The solutions above use rotary servos and stepper motors, which have built-in position sensing, but particularly because of what I’ve heard about ‘missing steps’, I’m wondering about using something like this to move the levers:
<<NEW USER CAN ONLY POST 2 LINKS, SORRY>>
Amazon: DC 6/12V N20 Metal Speed Reduction Motor Micro Electric Motor With Long Output Shaft M4 x 100mm(12V 600RPM)
Although I don’t know how much precision one could get over such a small distance. And there are questions of power, size and rpm that I’m not at all sure about. I guess I should get the fastest motor that provides enough torque. And it’s challenging to guess how much torque I’ll need.
But most importantly, this approach requires a means of detecting the position of the tuning lever, so it can be moved to the correct position to tension the string to the desired pitch. This precision needs to be similar, around 10 bits, or .2 mm. Pretty precise. But I guess that’s about where I set the layer thickness on my 3d printer…
For position sensing there are so many options, and I’m not clear how precise they might be over this distance. I’ve looked at:
rotary encoding, via either optical or hall sensing tech. This allows you to know how many rotations the motor has moved, but doesn’t give an absolute position. I’d prefer absolute position sensing if it’s practical. But given a precision of 1-2 tenths of a mm, that may not be… certainly with a high-speed motor geared down substantially, you could get a lot of precision by rotary encoding the motor.
For absolute sensing, there are hall effect, inductive, optical, LVDT, and who knows what else. Unfortunately, it’s hard to know what ranges these sensors work well at, and what accuracy they can provide.
I’m looking to create a 1-string test bed, as in the video above. Some things I think need to change from that version:
- The stepper motor seems needlessly large and cumbersome. By using a stronger return spring, you should be able to manage with a much smaller motor. (I’ll probably wire a string up before I even figure out what kind of motor to use, in order to see exactly how precise the location will need to be, and how accurately I can counter-balance the string tension with an adjustable spring.)
- There needs to be continuous control from position A->B with a continuous input, which the video above does not do. A simple pot would be fine for testing. Eventually that would be mounted in a foot pedal. In the imgur link above, the maker used a hall effect sensor. Seems like it worked well for him.
- My mechanism will pivot on a knife edge, which should eliminate the mechanical imprecision issue of the test setup in the video, which keeps the string from returning to pitch properly. If the mechanics are correct, returning the lever to the same position will always result in the same pitch, as long as the string is tuned correctly to begin with.
- Finally, if I’m going to scale this up to 8 or 10 strings, the parts need to be relatively inexpensive.
What do you think? Looking forward to any thoughts… I think my main questions boil down to:
What are the control issues around using an electric motor instead of a stepper, beyond needing to figure out position somehow?
Is there a good inexpensive way to measure position over a 2 cm range to a precision on the order of 1/5 mm?
Then later come the questions of what kind of processor to use (I have a bit of experience with the arduino platform) and how to rig up a small touchscreen or screen/encoder combo (which maybe requires another class of processor?) with an interface for controlling the levers, storing their positions, and assigning them to pedals–which is a whole other phase of the process!
Thanks in advance!
=eric