Fretboard Diagrams palette: Display chord names for ease of use

• May 6, 2016 - 16:32
S5 - Suggestion

One problem with the fretboard diagrams palette is that there are no chord names on the diagrams.

The obvious solution is to allow the cells to be annotated with a chord name: C, Cm, C7 etc. That way any guitarists, from beginner to expert, or even a non-guitarist, will easily be able to find the chord they are looking for.


For now, the chord names are in the tooltip. There is currently no way to attach a chord symbol to a fretboard. So this needs to be solved first.

The annotation wouldn't have to be permanently appended to the chord diagram. Just something that would show up as a label in the palette— perhaps in the top of each cell. The label would be created by the user.

The user needs to be able to see the names of all chords at a glance—just like in a chordbook.

Another possibility might be a "Fretboard Diagrams" section in the Master Palette. Not only could it house a library of chord diagrams, but it would also allow the user to catalogue the diagrams, just like a chord dictionary. Scrolling would be allowed (just like the symbols section).

The "Fretboard Diagrams" section could also allow users to create and edit fretboard diagrams, and apply them to the score.

See: Picture chord encyclopedia (Internet Archive).

replying to geetar regarding a master palette change: This is reasonable and would help in the more trivial (but also more common) cases, i.e. "cowboy chords." It doesn't help with more sophisticated users, who would need a truly huge set of chord diagrams to cover the range of normal professional usage. (See e.g. Ted Greene's Chord Chemistry, with thousands of chords.) We need both a) a set of common chord diagrams for convenience, particularly for beginners, b) a set of tools appropriate for constructing professional-use diagrams within a given context, diagrams that are generally engraved on a case by case basis just like other notation elements, and c) a set of tools for constructing and managing these pro-level diagrams in contextual palettes, that can serve as a "bag of tricks" for a particular composer/arranger but that will vary significantly from user to user (and thus can be shared and built upon but can't be standardized). In my own case, I have a number of palettes with chord families that I draw on depending on the context. For example, a beginner's study may use familiar chords plus some additional diagrams that help illustrate concepts such as voice leading or bass lines. A solo arrangement may use bespoke diagrams to show unusual voicings, movement, and chord relationships.

Replying to lasconic: I see two issues here. 1) Allowing a palette to show its tooltip names within cells (or rows), not just as tooltips, to simplify use/reference. (Has this been discussed elsewhere?) Optional visibility for palette cell names seems potentially useful in other contexts as well (cf. lines? clefs?), but it seems especially helpful with chord diagrams. With custom palettes, this ability seems highly desirable. My custom palettes, e.g. for fingering issues, always include minor variations on normal elements, and these are often very similar (e.g. different sizes or positions). It would be helpful if these entries could be viewed in a "details mode" with descriptive text, separating groups of cells for "left of note," "right of note," "small," "bold," etc. That capability would directly address the need for naming and grouping chord diagrams. 2) Showing a chord name as a visual part of the fretboard diagram image, not just as a tooltip or palette element. Normal published chord diagram usage does include chord names, displayed as part of the grid rather than as floating chord name text. Therefore, this does seem a logical feature to provide at some point. It really serves a different purpose from the existing chord name mechanism.

in the code there is infra structure in place to link a fretboard diagram (FretDiagram) to a chord symbol (Harmony): the former has a (private) member `Harmony * _harmony;` and a (public) method to access it, `harmony()`, but I don't see a method to set it.
Hmm, there is `FretDiagram::add(Element* e)`, which does set `_harmony` if `e->type()` is `Element::Type::HARMONY`, but I still don't see how to call that method