Grasshopper

algorithmic modeling for Rhino

Guitar Nut conundrum: equal spaces and equal centers question

hello,

i'm playing around trying to make a nut-slot template maker for guitars. Basically there are two ways to cut the little grooves on the top end of the guitars neck (the nut):

1. equal centres:  the nut's width is divided in equal segments resulting in queal spacing from string center to string center but the spacing bewteen the top strings is smaller than between the lower strings. It's not very comfortable to play, on bass guitar it's really awkward

2. equal spaces: the nut is divided so that the spacing between the outer edges of all 6 strings is the same. Since eachstring has a different width (gauge) this requires some calculations but is much more comfortable to play

i have attached my pathetic simple attempt at creating this. It works for 'equal centres' but i can't really figure out several things:

A. how to use a table or list of values as an input for the string gauges. Ideally i would like to select from different 'sets' of strings so that i can create different nut templates for different thickness strings easily. So ideally i would like to select a preset like: 'light', 'ultra light', 'medium', 'light top heavy bottom' and then it would adjust everything according to the different string gauges defined in those sets/lists.

B. how to use metric units for the spacing of the top and bottom strings to the fretboard/neck edge. I have tried to do it by eyeballing it with the 'point on curve' element which i'm pretty sure is not the way to do it properly. I want to be able to simply input this in mm, so for example a 4mm distance from the strings to the fretboard edge.

C. how to figure out the 'equal spaces' and divide the bridge and nut curves accordingly so that the distance from the outside edge of the top and bottom strings to the fretboard is equal, and the spacing between the strings outer edges (not the centres) is equal.

would really appreciate any help or tips to point me into the right direction :)

Views: 5197

Attachments:

Replies to This Discussion

forgot the excell file, i put each set on a separate sheet thinking that maybe it would make it easier to select if GH supports the import somehow

oh and btw the pickup/magnet thing is probably something i'd always do manually, i don't always do my own pickups, sometimes it's nice to be able to drop in some vintage or modern boutique singlecoil, humbucker or p90 pickup.

Attachments:

Looks like we're posting at the same time again.  I didn't see this until after I posted and don't have time at the moment to full digest this.  Changing the angles of the Nut and Bridge is quite simple but now I see two complications I hadn't considered before:

  1. Are the strings tapered?  Different diameters at each end?
  2. For the gap calculation, string width as it crosses the angled bridge (and/or nut) is different than if the bridge and/or nut is not angled.  This could introduce some error.  Maybe we should be always use lines square to the neck for calculating the gap distance and string centers, then transpose them to the angled bridge and/or nut?

Gotta do other things right now, to be continued.

Yo.  In the end, what you do with this is up to you.  As I said earlier, it will be easier to get help (from me or anyone else) if you narrow the scope of the problem.  I realize that there are multiple issues in the big picture but honestly, this post is TLTR and TMTA (Too Long To Read and Too Much To Absorb).  I did read it and will make a few comments before showing off some new code...

  1. I don't care about Excel files in this context.  The SIMPLE solution is to just copy/paste sets of string gauges into as many panels as you need and switch between them.
  2. What are "scale length low E string" and "scale length high e string"?  Are they the actual string lengths of the bass and treble strings?
  3. Most of the nineteen items in your list are either already in code I've posted or are irrelevant to the immediate task at hand.

As to rotation of the Nut and/or Bridge and the effects of rotation on string spacing, I believe it's best to separate those two issues by using what I'm calling "virtual Nut (vNut)" and "virtual Bridge (vBridge)" lines that are perpendicular to the guitar neck's centerline.

I added this bit of code to study the issue in stringSet_2017Jun19a.gh:

Then, in stringSet_2017Jun19b.gh, I used the "Neck Lines" group as input to earlier code, with a few small changes to account for curve direction (no need to reverse the list of "String Gauges", for example).  Then I added code at the end to rotate the virtual bridge and nut, extend them, extend the neck edges and strings, intersect and trim them.

As to determining or setting which fret is square, I skipped that part, for now.  Cheers.

P.S.  I did the rotations at the points where the treble string intersects the virtual bridge and nut (blue lines), so rotation has no effect on its length.

P.P.S.  In case it isn't obvious, rotation has no effect on string spacing either.

Attachments:

Here's a different point of view...  Rather than using the longest and shortest strings, then extending the fret lines by an arbitrary value (10) at each end, to be trimmed later...

This version connects the start points and end points of the Nut and Bridge and uses those two lines instead.  The panels in the blue group are the distances from the Nut to each fret:

Now about that "Fretboard/Fingerboard"...  Looks more complex than it needs to be, but again, you know guitars, I don't.  I found a bit of explanation here about "the height of the un-fretted strings above the frets" at the 1st and 12th frets - it is complex!

http://thehub.musiciansfriend.com/tech-tips/tech-tip-how-to-get-the...

By the way, it's considered bad practice in GH to run values through a panel, as I see you have done in various places.  Better to connect directly to the next component and also to a panel where you want one.

Attachments:

hey Joseph, i'm sorry if this has goot to long to digest, i just wanted to provide more background on my thought process. I did not expect of you to implement all the features i listed, this was just to explain the ultimate goal in case it helps to clarify. I have all the elements i need now to pull this together thanks to your help, as you say most critical things are already implemented or not relevant to this particular thread. With your fret generator and equal spacing generator and my primitive convoluted solution for compound radius fretboard i have everything i need but need some time to cleanly implement and pull it together now.

as to your questions/coments:

1/ I don't care about Excel files in this context.  The SIMPLE solution is to just copy/paste sets of string gauges into as many panels as you need and switch between them.

this was just to explain that ultimately there are a lot of different input patterns but all the data for them does already exist. for sure it is not necessary but in the end it's a feature i would like to implement since it will make the patch much more practical.

2/ What are "scale length low E string" and "scale length high e string"?  Are they the actual string lengths of the bass and treble strings?

This is the initial decision taken by the luthier: which scale lengths to use for the multiscale build. While anything that makes sense goes here luthiers will probably want to choose some common values, say 24.75" (like most Gibson guitars) or 25.5" (like a Fender Stratocaster)

P.S.  I did the rotations at the points where the treble string intersects the virtual bridge and nut (blue lines), so rotation has no effect on its length.

P.P.S.  In case it isn't obvious, rotation has no effect on string spacing either.

This is the kind of things i don't know cause i'm zero in maths and i usually have to try out and measure to know for sure :-) as i said my initial instinct would have been to rotate around the 'zero frets' center point simply because everything is built aroun d the X axis. If you rotate around the treble string (the high e string) would the distance of the upper fretboard edge to the x-axis be the same than from the lower fretboard edge to the x-axis ?

for running data through panels, thanks for the tip, i do this mainly to visualize the values without having to hover over the outputs, good to know i shouldn't patch them onward from the panel.

PS: For the height of the strings above the fretboard (the 'action'), it's not as complicated as it sounds and most of the time an experienced luthier or guitar tech will have no problem achieving whatever low action desired if the neck is straight and built properly and the frets level and dressed properly. there's a german company who's built a machine to do the 'perfect setup': the PLEK machine

i'm sorry it takes me much longer to digest and implement all this, i will post back when i've merged everything together but i think i have evrything so far

Hi,

Look, I really do appreciate learning about all the details and considerations that go into building a guitar and didn't mean to imply otherwise.  From what you've said, however, some of these things are irrelevant to the geometry of string and fret spacing, which is where my attention is focused, like a laser beam.  I don't think we have solved that problem yet.

Excel files - Wrap a "black box" around that problem and move on!  Rapid prototyping in software (my background) works best if one doesn't get bogged down in extraneous details that can be revisited later without affecting the outcome.  Like this:

I did that by copy/pasting nine sets of string gauges from your Excel file (in inches since you said earlier that string gauges are typically specified that way).  I connected the nine panels (I got tired after nine, you can add more) to a 'Stream Filter' and used a 'Value List' to choose which set I want to work with.  I wrapped the whole thing into a cluster, including the conversion from inches to millimeters (hence the two outputs); here is the cluster code:And here is how to use that cluster:

Note that the panels are for display only and not wired inline.  Nothing wrong with scattering panels throughout your code to assist coding (I do that extensively myself) but their use is often temporary.  They can corrupt data due to round-off and impact performance when lists are large.

From what you've said earlier, string tension and height above the fretboard are also irrelevant to the geometry of string and fret spacing so I'd rather ignore them too.

There is definitely more to say, and code to write, regarding this fanned fret problem but I'll save that for a separate post.

Attachments:

I didn't get a clear answer to this question, and it's an important one:

2. What are "scale length low E string" and "scale length high e string"? Are they the actual string lengths of the bass and treble strings?

If these two numbers are primary inputs to defining a fanned fret guitar(?), then we need to organize the code accordingly.  Likewise for this statement you made:

there is one input parameter that's still missing for the multiscale frets to be fully parametric, it's the angle of the nut [and/or bridge?] or which fret should be straight

These are really key reference points that determine the usability of the model and the point of view from which we solve the geometry.  Given bass and treble string lengths and which fret is "straight" (square to the neck), the angles of the nut and bridge are results, not input parameters!

The reason I'm using "virtual" Nut and Bridge lines ('vNut', 'vBridge') and rotating them around the point where they intersect the treble curve is two-fold:

  1. I don't want nut/bridge angles to affect string spacing or have to change their lengths manually to compensate for the angles.  So when they are rotated, they now get longer as necessary to preserve the neck/string geometry defined by 'vNut' and 'vBridge'.
  2. I don't want the treble string length to change as they rotate.  As a primary input parameter, this needs to remain fixed.

At present, treble string length is set indirectly as the hypotenuse of a triangle; the other two sides are set by 1) the 'midLen' slider (distance along centerline between 'vNut' and 'vBridge') and 2) the difference in lengths between 'vNut' and 'vBridge'.  It doesn't need to be this way.  Instead, the treble string length could be an input and the 'midLen' distance could be computed.  Which method do you prefer?

As to "which fret should be straight?", this is a cool way to look at the problem and not that difficult to implement.  If "fret 0" (the nut), then the nut remains square and the bridge angle is determined by the bass string length and the neck taper angle, which in turn has been defined by 'vNut' and 'vBridge'.  If any other fret is specified, the bass string and all of its "fret points" can be moved to the right, along the bass string line, to align them accordingly.  Then nut and bridge angles and lengths are resolved by simply connecting the ends of bass and treble strings.

This all might be a little simpler and clearer if we ignore the edge spacing and assume that 'vNut' and 'vBridge' end points define the outer edges of the bass and treble strings, then add edge spacing back later.  Just a hunch.

Does this make any sense?  Can you please supply a bass string length to match one of the treble string lengths you mentioned?  (24.75" or 25.5")

To be continued, as spare time allows.

yes absolutely, nut and bridge angles are RESULTS derived from both scale lengths of high and low string as well as 'which fret is straight' .. these are CHOICES of the luthier.

For your last question: you can take the two values as high low scale lengths, that's what i did for the guitar build i posted pictures of, it's a bastard child of a Fender Strat (longer bass strings) and a Gibson Les Paul. As i said this is really a matter of preference. There's a pretty good liste here: https://en.wikipedia.org/wiki/Scale_length_(string_instruments)#Electric_guitar but the values that were decided by the various manufacturers are mostly historic, the Gibson scale length as well as the Strats have changed over time, there is no rigth or wrong, justa matter of taste.

sorry, somehow my edits are not getting saved, just wanted to clarify what i mean by CHOICES:

the luthier for a multiscale build will decide what he wants to use as a scale length for low and high string, the other 4 strings scale length is derived from that by connecting the end points of the low and high strings and either 'equal centers' or equal spaces' nut slots.

then you decide which fret is straight, usually it will be somewhere between the 'zero fret' (the nut in other words) and the 12th fret (which btw is exactly half the scale length). Having a straight bridge would result in fret angles very awkward to play.

yes absolutely, nut and bridge angles are RESULTS derived from both scale lengths of high and low string as well as 'which fret is straight'

Makes sense to me.  That being so, what makes you think we are there yet?

Re: scale length vs. string length - Since I wasn't counting string length beyond the nut or bridge, it sounds like they mean the same thing for this geometry.  So are you saying that 24.75" is the treble scale length and that 25.5" is the bass scale length?  That's not much difference between the two.

"That being so, what makes you think we are there yet?"

i have no idea, at this point it's really no more than just a hunch :-) to be honest i have been struggling to keep up with you, i'm barely through understanding one of your patches and you have already created two new ones .. give me a couple of days to catch up, have a bizzy week and won't get time to take this up properly until friday.

and yes, the scale lengths on my multiscale build (she's called Ashley btw, we guitarists tend to think of guitars as girls and because she's made out of Ash wood the name came naturally to her) is a Strat on the low string and a Les Paul on the high string, barely 2 cm's in difference but enough to make a difference :-)

there are however more extreme examples like this: but i find them rather difficult to play, my personal interest is in more 'modest' multiscale where i think the sweet spot lies.

and sorry forgot: YES the scale length is the string length between the nut and the bridge. the 10cm extensions i added in my patch to the strings on both sides is just so i can plan how the strings will be attached on the headstock (nut side) and the body (bridge side), these extensions do not faqctor into the equations, they are just 'props' for the build simulation and helpers to figure out the optimal attachement on either side.

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service