Anchor chord symbols to nearest note (and automatically hide if empty)?

Has anyone figured out an efficient workflow for aligning chord symbols with notes when different instruments have different harmonic rhythms (i.e. guitar and piano have syncopated rhythms while bass is chugging away on quarter notes. Having to manually shift every single chord symbol is an awful lot of work… and doubling up the chord symbols and hiding half on each part is just as much if not more work).


1 Like

I’m not sure I follow: are you saying that you want to show chord symbols at different rhythmic positions in the different instruments, maybe an eighth note earlier or later in certain instruments because they have syncopated or anticipatory rhythms? I’m not an expert in such matters but I think it might be a little unusual to show the chord symbols in different rhythmic positions for different players like this; if I am understanding you correctly, this is to my knowledge the first time we’ve been asked for such a thing.

Here’s a couple of examples I just found:

From Dear Evan Hansen

From Bring It On

From Legally Blonde

Clearly there are some alternate chord symbols for each player sometimes but the chord placement is following the rhythm.

It feels like using local chord symbols might be the most appropriate way to handle this, i.e. create chord symbols specifically for each player where they differ in this way.

1 Like

In lieu of an automatic solution, perhaps there could be a way to convert a global chord symbol into a local chord symbol? I just tried creating a macro with the following steps:

  1. Hide selected chord symbol
  2. Invoke popover
  3. Set popover to local mode
  4. Enter
  5. Un-hide selected chord symbol

But it seems to fail on the final un-hide step?
Convert global chord symbol to local chord symbol.lua (572 Bytes)

EDIT: It actually seems to fail on both the hide and un-hide steps, as once I nudge the chord symbol to the right the global symbol re-appears.

FWIW, I am currently arranging Bring it On and we are exclusively using local chord symbols from the beginning. It seemed to be the only reasonable solution.

1 Like

Yeah looking through the score that checks out. Would be nice though to have the global chords as a baseline and make overrides when needed but I think currently it may be about the same amount of work either way.

I think a good workflow solution would be (if it could be implemented) to create a “Start offset by beat” option in the properties tool bar. You could “nudge” the chord symbol over an 8th note without duplicating and hiding superfluous chord symbols, or without using extra sets of local chord symbols, and you could easily deselect the option to snap the chord back to the original beat later if necessary. It would be simple (to use… maybe not to implement), and elegant.

In the meantime I will try working with local chord symbols.

1 Like

There are already several good examples by @sidebysidebyside in this thread, but just to reiterate - I’d actually say this is more common than not in all music with clear notation (either slash voices or through-composed parts) in rhythmically diverging parts. The chord symbols usually align with the indicated rhythm in each instrumental parts. The only times I use “global” placements exclusively are in Lead sheets, slash regions and music where the parts are equal enough for it to be sufficiently clear.

Using local chords is fine, and perfectly in line with Sibelius and Finale, but an automatic solution (although I doubt it’s even possible) or better tools for conversion etc. as suggested above would be very helpful.

And a related request which I’ve been thinking about for a long time:
A “Hide chords” property for Chord symbol regions to invert their behavior. This would be extremely useful in situations where you mostly need global chords, but with a few bars exception here and there (either for diverging rhythms or rests) . I usually approach this with “Hidden” property on individual chords, but this is prone to errors whenever I add something in the global chords.

In addition to sidebysidebyside’s examples, it’s really common between a chordal instrument like Piano and a walking Bass part like this:

Perhaps a shortcut to move by a grid value and automatically convert to local could be helpful in a situation like the above.


@dspreadbury I thought I had the script figured out finally but I’ve realised the chord symbol popover requires a “definition”. Is there any way to get the current text as a variable, or is there a way to bypass needing a definition? I’m aware that scripting isn’t fully supported so I won’t get my hopes up just yet.

Also, peculiarly you can left and right arrow from a local chord symbol to another local symbol, or from a local symbol to a global symbol, but once you get to a global you’re stuck, even though the correct instrument’s global chord symbol is selected.

Unfortunately I don’t think you can easily capture the definition of a chord symbol for this kind of scripting approach at present.

I’ll certainly discuss these requirements with the team and we’ll think about how we might be able to address them in future. Thanks for the additional feedback.

1 Like

Thanks for the consideration :slight_smile: