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: 5064

Attachments:

Replies to This Discussion

Hide the V2 preview ("edge space" group) to see the segments of 'eNut' and 'eBridge':

ok i have to be honest and admit that i am a bit lost for the moment, i really want to learn from your patch but it's going to take me time, when i finished school in the final math exam i got 1 out of 15 points and my teacher said to  me afterwards: "Chris, you know that the one point was a sympathy point don't you ?" ... so baby steps but i'm catchin up ..

to help me follow the breadcrumbs through the patch could you maybe dumb it down extremely for me and just list a couple of steps how the system functions, sth like. 1) define string gauge- 2) draw neck liine 3) calculate spacing or sth like that, like a super high level overview. it's great that you have grouped, named and colored everything (many many thx for that !) this helps a lot for my understanding but you are using so many components i have never used that it's a bit difficult at the moment to follow the logical flow.

BUT: everything pans out now and spacing is perfect and all is centered ... with this one can build guitars :-)

BUT: everything pans out now and spacing is perfect and all is centered ... with this one can build guitars :-)

Thank you, sir, that is high praise indeed!

The model evolved from your original question about keeping the same gap between six strings of different diameters (gauges).  Then different length bass and treble scales were added, to be aligned by fret number, without affecting string lengths or spacing.

The "virtual loom" defines important aspects of the guitar's neck geometry, with its 'vNut', 'vBridge' and 'vStrings'.  It is the basis for all that follows.

I created clusters here and there, simple, reusable components like 'NeckL' and 'Frets'.  Open them!  See how they work.

Alignment of the bass string/scale by fret happens by plane intersection from the treble string fret points.  The difference between that point and it's own fret point is the vector used to slide the base scale (string, line, curve) along the 'vBass' string ('bass cntr').

After that, lines are adjusted and trimmed accordingly.  Cheers.

Attachments:

Added another pair of offset tables for the intersection points along the edges ('eBass' and 'eTreble') of the extended frets.  I added a 'Frets' cluster to get fret points along the same edge, to see if they are different - and they are!  Slightly... and easily fixed.

Slight adjustment of the 'Edge_Bridge' slider, from 4.5 to 4.5487 yields "perfect" alignment!

Attachments:

I'll just add this update to the end.  Mostly cosmetic puttering, trying to make the code clearer.  Added some tables for X and Y offsets.

Attachments:

Hello again Joseph, happy new year :-)

i just came across an oddity while building a new guitar with your patch. I noticed that towards the bridge the alignement is a bit off compared to the absolute centerline. The two boxes represent the pickups which are centered on the absolute centeline (dashed red line) you can see that the alignement top and bottom is off a bit. The box outline height represents the pole spacing for these pickups, 53mm for the bridge pickup and 50mm for the neck pickup. it£s minimal so no problem to build like this but just wanted to let you know sth is off.

I attached the gh file with the settings for this build, its a single scale build this time.

PS: heres one i built last year using your patch as a reference:

Attachments:

Hello and Happy New Year.  Sorry I never replied...  Not sure I want to open this can of worms again but just a couple of comments.

  1. The pickups appear to be rectangular ("square") so I'm not surprised the edges are not parallel to the strings.
  2. I'm not surprised either if pickups on the neck centerline don't align to the strings because as I recall, string thickness and spacing ruled the layout without regard for a centerline?

Many fine details...  Did we miss something?  I can't bear to look again.  ;)

Hi Joseph, hhehe i know what you mean with looking at this again :-) no worries thou, i was just posting again to keep a mental note of it and let you know. The system is usable and stable i think and eventually i'll get around completely understanding it and integrating fretboard and pickup position and pole spacing into it.

Wow. This is just staggering. Now that Grasshopper is available in Beta form on macOS, I'm starting to dip my toes into it, and this was actually one of the first things on my list of things that it would be useful for.

I've been using FretFind3D for years to do my fret spacing calculations, but I'm always concerned that if it disappears for whatever reason, it would be nice to have another solution. The process of laying out all the numbers in FretFind, exporting a DXF, then doing all the cleanup necessary in Rhino is cumbersome, to say the least.

This is an impressive piece of work. Thank you!

i also used Fretfind2d before but the reason i went after a grasshopper solution was that the DXF files the fretfind site spits out are a mess. If you zoom in really close you will see that the points don't line up and also the poly lines are broken up and duplicated in places.

it's of course also much nicer to do this visually direcly in rhino ..

i'm glad i managed to lure someone like Joseph into this quest .. all the credit goes to him :-)

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service