“I am a slow walker, but I never walk back.”

Indeed, Mr. Lincoln.

Better to be sure-footed and slow than fast and prone to mishap! Though sometimes I’ve been known to take it too far, that is one of my core philosophies for making instruments. For life, in fact. I like to smell the flowers.

Picking up where we left off – the keys are now cut to exact dimensions. Next comes a steady stream of shaping and sanding…

As if by magic, it seems every time I reach this point in a project (where lots of fine dust is being produced) the switch fails on my harbor freight dust collector. This time, instead of cleaning/repairing the crappy switch, I made a new one.

Next is rough tuning. I often tune across 3 or 4 phases, mostly depending on the weather. I didn’t get many pictures this time, so I’ll use some older photos to illustrate.

Each key is shaped on the bottom to bring the pitches down to target (called an “undercut”; see picture below).


Tuning of the fundamental (primary pitch) and successive harmonics is accomplished in this way. For this initial tune, using a bandsaw and a drum or belt sander, I bring everything to within a quarter tone of the target pitch. This is done so that the key will only need a small amount of material removed to bring it to final pitch. Less heat will be generated sanding in the next phase; good as a heated key is more flexible and gives a falsely low pitch. That factor as well as temperature/humidity conditioning are why I tune in gradual steps.

Once the keys are near their target pitches, the nodes (points of least vibration for a given mode – we’re concerned with the fundamental) of each key can be found.  As with most things in the world, there is more than one way to tackle the nodal predicament. This is how I approach it these days.



When generating a node line (a perfectly straight line along which the frame rail will run), the idea is of course to get the line as close as possible to the actual nodes.

I find each key’s nodes and record the number, measuring from each end of the key, at the center of the width, averaging the end figures; they typically shouldn’t be skewed by much. I convert those nodal measurements to reference the centers of each key. (key_length/2 – node_from_end).

I like to look at the numbers and decide on the low/high key measurements for the candidate node line (these should be quite close to the ‘raw’ data for the corresponding keys). (nodel and nodeh below)

Keeping in mind spacer widths and any graduation in key widths, determine the slope ratio and angle of each rail (on many marimbas I build the rails are symmetrical/will have the same angle, but this is not the case for chromatic instruments).


CodeCogsEqn (5)


-Using that ratio, calculate the node line “intersection” at each key’s center (of width). This would look like:

CodeCogsEqn (4)



CodeCogsEqn (3)


This approach avoids cumulative error and works for graduated and non-graduated key widths. Keep in mind it is only measuring the line at one point per key, the center of each key’s width.

So, now we have a perfectly straight line that should intersect pretty well with the raw nodal data. If it doesn’t, adjust appropriately and generate another set of numbers. (I wrote an algorithm that does this, finding the best line based on total absolute value of the discrepancy between generated line and raw node/key data)

Once I am satisfied that the line and nodes match, it’s time to drill the line through the keys using angle from above.


My jig setup references the ends of the keys, so I convert my generated measurements from center reference to end reference, to match. I set it up and adjust with each cut so the center of the hole passes through the intersection of key width/2 and the calculated distance from the key end.

The nodal holes are drilled from both sides, then countersunk. I sand the keys to 220 and bring them indoors to acclimate while I work on the frames. Moisture content and temperature can affect pitch substantially.


Of course, you could always lay it out physically and circumvent the mathematics, but I find the calculations fun and much more accurate! 🙂


That’s all for now. Off to the workshop!

P.S. – In case you’re curious, here is the output of my script  made in Python to cover the described tasks:

Baritone 1 – units: cm

Checked to a precision of: 0.02
Raw node data (from center):
[21.1, 20.346, 19.457, 18.683, 17.924, 17.178, 16.748, 15.932, 15.251, 14.695, 14.048, 13.366, 12.633, 12.0]
Best generated line:
[20.92, 20.188, 19.463, 18.747, 18.037, 17.336, 16.642, 15.956, 15.278, 14.607, 13.944, 13.288, 12.640, 12.0]
Absolute value difference between best list and raw data: 1.113
Best angle: 3.167231237775345

Dist between centers (of width) of outer keys with spacers: 161.2

spacer: 1.3
Best list was found on try # 1795
Sum of all key widths: 155.4 Sum of all widths plus spacers: 172.3
Best line from ends of keys:
[15.33, 14.809, 14.294, 13.787, 13.286, 12.792, 12.306, 11.826, 11.354, 10.888, 10.429, 9.978, 9.533, 9.095]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s