Automated Grand-Piano Tuner

Details

Project Start: January 2018

Special Thanks: Vesa Välimäki, Kari Kääriäinen, Sneha Shah, Joonas Tuovinen

Status: Testing

Why

Hiring a piano tuner to tune a piano costs 100 euros and takes them an hour. At a music institute, tens, even hundreds of pianos must each be tuned every few months. The idea behind this project was to develop a system that can tune any grand piano to an accuracy higher than an average piano tuner, in half the amount of time.

Tuning a piano usually involves these steps:

  1. Find the tuning pin for its corresponding string (Computer Vision)
  2. Measure the current pitch of the string (Pitch Measurement)
  3. Determine the desired frequency of the string (Target Pitch Calculation)
  4. Tune the string to that target frequency by physically rotating its pin (Pin Tuning)

The Approach

Each of the steps above actually provide a significant enough challenge on their own, so to start off, I decided to make a machine that would at the very least, help an average non-trained human to tune their piano.

Semi-Automated Grand Piano Tuner

Two of the biggest differences between a trained piano tuner and your average non-trained Joe are the following:

  • Pin Tuning: Having the skill to control the piano tuning pin to a high enough accuracy
  • Target Pitch Calculation: Being able to know what frequency any given pin should be tuned to.

A piano tuning pin requires around 25Nm of torque to turn and a change in 0.1 degrees is enough to make the piano sound completely off. So to make sure that any average person could work at this level of force and accuracy, I made a tuning contraption out of a rotary encoder, stepper motor and a custom rail system that attaches onto the piano being tuned. This rail would allow a high torque stepper motor to be moved by a human to any pin, the rotary encoder could be rotated to control the stepper motor tuning the pin up to 0.018degrees of accuracy, and the entire system would be stiff enough to handle the 25Nm of tuning torque.

The rig was design and built at Aalto Design Factory with the help of Kari Kääriäinen, the model maker there at that time.

Target Pitch Calculation

The most straightforward way of determining what frequencies to tune piano strings to is to look it up from online. Normally, if you set A4 to equal 440, it’s easy to calculate all the other frequencies based on the equal temperament system. And a table with a list of these calculated frequencies can be found easily with an easy online search.

In short, this equal temperament system assumes that strings behave as theoretically perfect strings. In such a situation, a piano is perfectly in tune when the ratio between a any given note and the note directly below it is the 12th root of 2. And this would be true throughout the entire range of pitches on the piano.

A real piano, however, does not have strings behaves differently than theoretical strings. In fact, each string on a piano and across pianos behaves slightly differently resulting in a non-constant ratio between notes in order to tune the piano so it would sound well. Typically, real pianos have slightly higher note-to-note ratios at the higher frequencies, and lower ratios at the lower frequencies. Determining what the ratio is exactly is the second skill that professional piano tuners have spent years perfecting, and that would severely handicap an average Joe tuning their piano.

While working on this challenge, I came across professor Vesa Välimäki from Aalto University’s Acoustics and Signal Processing Department who had done prior work in this field. With him and his master’s student at the time, we went forwards with this challenge and wrote it into a thesis and published a paper on it. And later with another bachelor’s student as well.

Summary

As of now, the two most challenging aspects of piano tuning have mainly been solved and the whole system is awaiting testing on a real piano where the rig, stepper motor and software would handle the pitch calculation and physical tuning whereas the human would simply move the stepper motor around and instruct the stepper motor how much to turn.

Thoughts

This seems very much like someone with cnc or 3D printer experience would be good at

It should be possible to do this without an entire rig