The Hornbostel-Sachs classification system allows users to quickly identify models based on visual criteria focussed around their construction form.
The odd pragmatic tweak aside, this is broadly reflected in this blog's 'Instrument Models' drop-down menu.
Instrument Model Construction Process
Lutes
As an example, we now look at the process underlying creation of a Lute-like instrument model.This will be created from a generic base for use with the various temperament and intonation systems in use worldwide, starting with the underlying fingerboard. It is initially drawn (no dimensions --> no image) based on default values for height and width.
To this are added frets based on a default number of notes or tones per octave, a default number of courses, and a default temperament/intonation.
Each of these is modelled as a discrete programming entity, allowing it's reuse elsewhere.

Clearly, the user needs to be provided with the means either to
- load a preconfigured set of preferences, or
- interactively reconfigure this default
These are simply two different processes, but with the same final on-screen result. Keeping in mind that all configuration decisions are stored in text files in a simple, human-readable JSON format, we focus on the latter.
Assuming our GUI dialog will at some point allow it, we need to start building our model from the ground up.

Let's forget the GUI interaction for the meantime, and focus on the instrument.
Dimensioning
Our first issue is the correct fingerboard dimensioning, based on the number of courses and instrument scale length.
A little trickier? The responsive, auto-scaling and and flexible underlying placement grid.. ;-)
Temperament or Intonation
Following on this, we need to model the temperament or intonation, the proportioning of which ultimately determines fret (or, indeed, for fiddle or oud, fretless fingering) positions.
To be clear, our encapsulation of temperament or intonation must be able -given a scale length- to return fret positions for not only any of the equal tempered systems (which can stretch -for microtonal instruments- through to over 50 tones per octave), but also just intoned, meantone, syntonic, well tempered, pythagorean, tempered timbres, or more recent 'true-toned' instruments, each of which is governed by it's own, simple mathematical rules.
This is not an area for corner-cutting, as these properties have potential impact across a variety of instruments.
Fret positions are generally independent of the number of courses. This, however, breaks down for some of the more exotic lute family members:
![]() |
Truetone Fretting |
![]() |
Fanned (Variable Scale Length) Fretting |
In such cases, fret placement would to be determined on an individual, per-course (scale-length) basis..
Courses and Tuning
Tunings depend on the number of courses, but this too needs to be carefully thought through. Each additional course adds complexity only to the tunings that went before.That is to say the tunings associated with (say) a three-stringed instrument will be (mathematically if not culturally) valid for a six-stringed instrument.
Microtonal systems based on a given temperament or intonation will simply add interstitial notes along the fretboard (ie longitudinally). Arabic music, for example, augments the western 12-tone equal temperament system with interstitial notes at the halfway positions. Had the middle eastern 'Oud' frets, for example, it's fretboard would resemble that of a 24-TET guitar:
Comments, questions and (especially) critique welcome.