Jump to content

Fingerboard design tool


Polymaker

Recommended Posts

Hi folk!image.thumb.png.082eef710ad58701a1f0ab7ce2ca2169.png

I just wanted to let people know that I released a software to generate stringed instrument layouts (aka fingerboard).

It is called SiGen and stands for Stringed Instrument layout Generator.

I started this project a long time ago and I finally have something that is complete enough to be used by everyone.

The software allows a lot of customization through simple inputs/parameters and can export layouts in DXF or SVG.

I started this project originally only to have a tool that could handle both metric and imperial values at the same time, a frustration I had with a free tool on the web. But after building the base engine to generate a fretboard layout, I realized that I had an open playground to experiment and that there was a lot that could be added. 

Then I used this project to try to understand something that was fascinating me since I first saw it: fret compensation (aka true temperament). 
After many research and experiments, I managed to develop something that could produce close enough results to the pictures I found on the web. Sadly, since calculating frets compensation requires a lot of values and physical properties, the app does not allow yet a way to input all those values but the core functionality is implemented. For the moment it is required to manually edit a layout file to be able to generate a layout with fret compensation. Fully integrating this functionality is in my to-do list.

You can get the latest release on GitHub here SiGen latest release

If you encounter any issue with the software or have any suggestion you can open an issue on my GitHub project page (if you have an account) or PM me on project guitar.

Here is a couple images showing what it can do:

5 string banjo layout
image.thumb.png.07a6c87c92ba6e86400fa3e7d5b74e80.png
Dual scale layout (aka multiscale)
image.thumb.png.8c32976b8857d9f87161f6159211ab12.png
Fret compensation
image.thumb.png.8d6a970c6b90b2fe55b9a0e121a7fd23.png

On-screen measuring
On-screen measuring

Edited by Polymaker
Spelling
  • Like 3
Link to comment
Share on other sites

Interesting work you've started here.

So the fret compensation (TT) layout component is only based off a visual representation of the real deal, ie it's not a measured/calculated intonation correction at this stage?

My understanding of the TT system is that it makes the fretted notes more aligned with 12-tone equal temperament (12TET), and accounts for particular string gauges and specific actions to correct the inherent inaccuracies of fretted notes in a more predictable way. That's why the recommendation from the makers of TT is that drop tuning and string gauges can only be changed so much before the benefits of a TT fretboard are lost - the compensation they've designed into the fretting system will have been based upon a limited range of tunings and string gauges.

Theoretically the math behind TT should be easy to replicate - take a well made neck of known scale length, string it with a nominal set of strings and tune to pitch. Take measurements of the pitch of each string at every fretted position and record the pitch deviation. Each fretting 'node' should then be moved to correct for that pitch deviation, which should yield the 'squiggly frets' that TT is known for.

The bigger problem will be manufacturing the frets to go in the slots.

Link to comment
Share on other sites

@curtisa Sorry if it was not clear, but it is based on the actual calculation. What I meant is since there is many variables (string action, modulus of elasticity, core wire diameter, desired frequency, etc) the results I get at the moment is not quite like the pictures I see (I supperpose my result over a picture of TT).

I found an interesting paper that explain how to calculate the fret compensation.
* I can no longer find it on the website but I managed to find it again with internetarchive and if you want to look I've put it on my google drive.

I'm mostly sure that the differences I get are caused by the values I'm using because for most I've used what I could find on the internet but the paper suggest calculating them with actual strings. But since I cannot validate my result I am not able to determine if the differences comes from the inputs of if my calculation is flawed.

About TT (the brand), it is actually a combination of fret compensation and compensated temperament. The fretted notes are based on the "equal" temperament but some notes are offsetted by a few cents according to the Thidell formula.

The fret compensation in itself is only to compensate the string displacement when fretting a note. Like you said, it is used to get closer to equal temperament because it is what TT uses but it can be applied to any temperament.

6 hours ago, curtisa said:

The bigger problem will be manufacturing the frets to go in the slots.

I had this in the back of my mind for a long time and made me doubt if it would be useful at all to be able to generate compensated layouts 😂. But one way I see is to CNC a mold and cast the frets yourself. It is not easy work but should be doable and it is probably what TT does.

Edited by Polymaker
Spelling
Link to comment
Share on other sites

9 minutes ago, ADFinlayson said:

Really interesting stuff, I'd like to try it out. What platform is it designed for? I don't see any dmg or executable in the rep,

It is designed for Windows. On the release page you can find 32-bit (x86) and 64-bit (x64) installers (.MSI). Just download the setup and install like any other windows program. The only issue is that Windows 10 security will popup when installing, warning you that it came from internet. Just click advanced and check install anyway (or something like that I don't remember exactly).

In the beginning I wanted to make this software cross-platform (for Linux and OSX) but I had trouble finding a cross-platform UI library that could do what I wanted.

19 minutes ago, ADFinlayson said:

installation docs would be useful for the less tech-savvy users.

Documentation is also on my to-do list. There is a bunch of features and functions that are not obvious (like the preview can be zoomed and dragged with the scroll-wheel and double-clicking the scroll-wheel resets the view). 

I plan to make a basic wiki on the project page in the near future, but I'm currently planning my wedding so I'm a bit busy to say the least 😋 This is also parts of why I rushed to complete this project because I did not want for it to get in the pile of unfinished side projects that I have 😂 

Link to comment
Share on other sites

Had a quick poke around your program. Overall I like it a lot and can see it having a place on my PC as a handy alternative to that certain other online program you mention.

The addition of having better control over some of the other parameters is nice - adjustable fretboard overhang beyond the 24th fret is handy, as is the string spacing and fretboard edge overhang functions. Direct typing of inches or metric is a nice feature too, without having to switch between the two measurement systems globally.

I couldn't see an easy way to generate your compensated fret placement graphs as you show in your screenshots, but I'm assuming that that's a feature due for implementation at a later date.

I haven't tried the DXF export function yet to see how it behaves. One thing that I'd be keen to see is in the DXF is an adjustable length of fret slot. This would allow the user to specify the cutting of blind fret slots on a CNC, where the fret slot doesn't cut the full width of the fretboard. Admittedly this is a minor tweak, as the trimming of the fret slot geometry on the exported DXF within CAD is a pretty minor operation, but is one less step that would have to be undertaken when making a 3D model of a fretboard for later machining operations on a CNC. 

 

Link to comment
Share on other sites

46 minutes ago, curtisa said:

One thing that I'd be keen to see is in the DXF is an adjustable length of fret slot

You're in luck!

 image.png.3fbe1840a7c9404dce301797711347d6.png

47 minutes ago, curtisa said:

I couldn't see an easy way to generate your compensated fret placement graphs as you show in your screenshots, but I'm assuming that that's a feature due for implementation at a later date.

Like I mentioned, the calculation requires a lot of variables and I haven't found yet a proper way to input them.

To achieve such result at the moment you need to manually edit a saved ".sil" file (with notepad).

Here is a quick how-to:

  1. Create a new blank file and save-it. The default file template has actually most of the values needed for TT.
  2. Open the created file in notepad.
  3. You will see a tag named "Temperament", set "ThidellFormula" as the value
  4. Now set the "FretCompensation" tag value to "true"
  5. The next step is required for accuracy but opening the file now will produce good enough result.
  • For the string index "0" in the Tuning tag. add CentsOffset="-1"
  • For the string index "1" in the Tuning tag. add CentsOffset="-1"
  • For the string index "2" in the Tuning tag. add CentsOffset="4"
  • For the string index "3" in the Tuning tag. add CentsOffset="2"
  • For the string index "5" in the Tuning tag. add CentsOffset="-2"

Now if you want to play around you can change the values contained inside the "Properties" tags under each strings.

If you have no idea of what I'm talking about I've attached a demo file True Temperament Example.zip

Link to comment
Share on other sites

2 hours ago, Polymaker said:

You're in luck!

Nice! Guess I missed that then :)

 

2 hours ago, Polymaker said:

Like I mentioned, the calculation requires a lot of variables and I haven't found yet a proper way to input them.

To achieve such result at the moment you need to manually edit a saved ".sil" file (with notepad).

So when I enable the True Temperament variables within the SIL file, is the SiGen program displaying a calculated fretboard upon loading, or is the displayed fretboard just a graphical approximation of what the TT system should look like? 

Link to comment
Share on other sites

9 hours ago, curtisa said:

So when I enable the True Temperament variables within the SIL file, is the SiGen program displaying a calculated fretboard upon loading, or is the displayed fretboard just a graphical approximation of what the TT system should look like? 

Yes it is calculated. You may have missed my previous post where I explained it.

Changing the tuning and physical properties in the SIL file will have effect on the generated layout.

Here are the values that are used to calculate the fret compensation:

  • The unit weights (named UW in lbs./ inch). The default values are from d'Addario data.
  • The modulus of elasticity (named MOE in GPa). The default values are based on what I found on the internet.
  • The core wire diameter (named CoreWireDiameter). The values are the same as the gauge for unwound strings but for wound strings I estimated the values.
  • The action at the first and twelfth fret (both values are in a tag named Action).
  • The tuning (tag named Tuning).
Link to comment
Share on other sites

  • 2 weeks later...
On 3/9/2020 at 11:08 AM, Polymaker said:

In the beginning I wanted to make this software cross-platform (for Linux and OSX) but I had trouble finding a cross-platform UI library that could do what I 

I'm going to take a wild leap and say this program is written in C# based on the file extensions? If so I think you'll be hard pressed to find a PIGUI, as most programs and utilities (at least in linux) are written in C or C++. That said, this is a neat tool! I'll definitely be using it for a future build

Link to comment
Share on other sites

  • 2 months later...

I can't believe that I missed this thread - absolutely fantastic tool, @Polymaker!

@curtisa mentioned this elsewhere and I decided that I had to take a look. One function which I manually do within my CAD designs is to extend out fret lines to an imaginary rectangle, whether that's the extent of an untrimmed blank or whatever. This is a reflexive habit of mine to increase working precision since lining up points separated over a longer distance increases precision for a small length within that. Whilst more of a working aid that one of design, I thought it worth broaching.

I'll have a play around with this later. I'd certainly be interested to see if it can handle multiscale designs for equal spacing vs. equal centres for given string gauges. Certainly something useful for basses, that's for sure!

Link to comment
Share on other sites

4 hours ago, Prostheta said:

One function which I manually do within my CAD designs is to extend out fret lines to an imaginary rectangle, whether that's the extent of an untrimmed blank or whatever.

I do something similar to you. When extruding thin line to the actual fret thickness, the sides of the frets don't match the taper of the fretboard. So I used to extend all the line manually, extrude them, then trim them to the fingerboard.

This is the main reason why I made the option when exporting, but while at it I made it so you can trim them shorter for those who want to do "blind" frets with a CNC.

4 hours ago, Prostheta said:

I'd certainly be interested to see if it can handle multiscale designs for equal spacing vs. equal centres for given string gauges

This is a thing I discovered while developing my software. In theory, straight frets are not accurate, not because of the true temperament stuff but just due to the fact that since the fretboard has a taper the strings are not perpendicular to the frets. 

Now in practice this is not very noticeable and can be adjusted at the bridge, but when combined with equal spacing and large gauges it displace the strings enough to make a good difference in length and it is more an issue with multiscale layouts.

This made me realize that the direction you bend a string on a multiscale fretboard will drastically change the sound. Since the fret is at an angle with the string, the fretted length will change considerably when bending up or down the string.

For multiscale layouts, my software tries to adjust the bridge position of each strings so all their centers are aligned at the 12th fret. This does help but do not solve all the issues.

I made an option to see the accurate fret positions. It is not available by the UI but you can set it in the config file.
Open the file located at "%AppData%\SiGen\AppConfig.json", find the entry named "DisplayAccuratePositions" and set it to true.
It will show a red line over the frets where their correct position should be.

Also in extreme cases the frets will be splines (curves) instead of straight. This is an artefact of the support for true temperament fret.

Edited by Polymaker
Link to comment
Share on other sites

Thanks for the input! The fact that string centres are rarely parallel is the basis behind why the Fanned Fret does not work. The Fanned Fret system of fret lines converging on a point in 2D space only works for parallel strings. The courses of multiscale boards derive nicely when interpolating outer string scales equally as with equal centres. I draw these out in CAD as a simple quadrilateral, dividing the mostly-vertical sides by the number of string courses then overlaying the typical 12th root of 2 derived scale on the outer strings....the points where these all intersect when joined shows each string has the correct scale division with straight frets. 

Do you think that equal-spaced strings over a (typical, not extreme) equal-centre board fretwork would generate errors in the same magnitude as that of variations in string pressure from fingers or deflection from fretting? That is to say, "something that can be viewed as an acceptable cost of doing business" rather than being a flaw in the magnitude of the 2D Fanned Fret system? Practicality versus on-paper precision. Without putting more than a mental beermat's worth of thought into this, my initial suspicion is that an equal-spacing board might require very mild curvature in the fretwork. This in fact may not be entirely dissimilar to how one might offset the effects of biased vibrato by perpendicular string deflection in a multiscale....?

Fretted instruments are fundamentally-flawed are an absolute case of "designing a better can of worms trap"!

Link to comment
Share on other sites

@Prostheta I'm not entirely sure I understand what you ask but I also had the impression that the errors induced by equal spacing could be compared to the variation induced by fretting, but my current view is that equal-spacing won't make you fret more precisely... So in theory you are inducing more error when using equal-spacing. It may be possible in some case that they cancel-out but I'm not sure.

Using (slightly) curved fret on mild multiscale layout would greatly help intonation. But I think that even normal multiscale and up (e.g. 25"-27") are greatly affected by the variation induced by deflection from fretting whether using equal-spacing or not.

Back to the difference between equal and center spacing, here is an example of a mild-extreme bass layout:

1479137692_spacingexample.png.e8b8216b4f4c28a0eb1f268b87c770f2.png

The top layout uses equal-spacing at the nut, the bottom one use equal center-to-center.

As you can see, the last three frets in the top layout are curved because the points are not straight enough for the tolerance used in the software.

You can also see the red lines I was talking about (the lines are made up from the points generated by the 12th root of 2)
In the bottom layout (equal-center) they all are centered with the frets, but in the equal-spacing you can see that there is a considerable offset.

 

Link to comment
Share on other sites

That's very true. I'll clarify. My estimation of errors by laying strings out with equal spacing over a fretboard configured for equal centres is that they would not be too significant unless the taper and/or extremeness of the compound scaling were large. For example, a 26,25" over 25,5" compound scale would introduce errors that are likely less than those caused by playing. Perhaps a few cents at the most. I suppose this could be calculated, however it is a bit of a wild goose chase on the basis that it is like calculating how bad errors are if the instruments was deliverately built with errors in the first place 😉 

Equal spacing doesn't help one fret more accurately by any means, it's simply a way of altering string to string feel for the player. I have personally never really felt enough benefit from this, but I imagine it would become very apparent on neck spacings like narrow Jazz basses or tight spacings at the bridge end for fingerstyle players.

As a secondary can of worms, one could have equal centres at the nut and equal spacing at the bridge. I'll put that out there very tentatively, as I understand fully how tightly one can wind the clockspring when producing usable calculators and layout tools. Sometimes having a short ticklist helps with straight line solutions, especially when it risks triggering my pseudo-autistic monomania tendencies!

Link to comment
Share on other sites

I'm wondering how one might reliably curve frets. I'm fascinated in how straight die rolled wire can be shaped into True Temperament shapes for example. As a fretting system, its just not something I have a lot of interest in however as an exercise in problem solving....wow. I imagine that one would need to produce matching metal press cauls to deform straight wire into the desired form.

Link to comment
Share on other sites

1 hour ago, Prostheta said:

one could have equal centres at the nut and equal spacing at the bridge

I've just tested it and having equal spacing at the bridge has less effect than at the nut. Since the spacing is larger at the bridge, the offset is proportionally smaller (moving a string by 1mm at the bridge is less apparent than moving by 1mm at the nut).

1 hour ago, Prostheta said:

Equal spacing doesn't help one fret more accurately by any means

I didn't mean to imply this, I was just saying that even if the error caused by equal-spacing is not considerable, it is still added on top of the variation produced by playing.

One way of fixing the deflection when fretting a note on multiscale layouts would be to use "à la"  true temperament frets:

1747542093_CompensatedEqualSpacing.png.1183021b66d38a1c7aa3f689eccecbae.png

Link to comment
Share on other sites

  • 3 months later...
  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...