Skip to content

How to create a score with a scale staff

Bruno Sciolla edited this page May 22, 2021 · 12 revisions

Lilypond

Some of the pictures shown here are generated with LilyPond, a fantastic free(dom) sheet music editing tool.

To be fair, using Lilypond amounts to "coding" music, but visual editors for LilyPond may help.

To recreate the demos of this project :

To create your own scores, see "Diving deeper" below.

Custom drawing

Some other sheets like the Chopin sheet are just standard sheets manually edited with Inkscape. This approach is not viable in the long run of course.

Diving deeper in Lilypond

Look for example at onescale.ly

\context PianoStaff << 
    \context Staff = "one" <<
       \override Staff.StaffSymbol.line-positions = #'(-5.85 -6 -6.15 -2  0.85 1 1.15)
       \voiceone
    >>
  >>

The command PianoStaff defines the presence of one staff, and a variable \voiceone that defines the actual notes played (not shown).

The command :

       \override Staff.StaffSymbol.line-positions = #'(-5.85 -6 -6.15 -2  0.85 1 1.15)

actually draws the lines of the scale staff. Since I don't know how to make thin/thick lines yet, I just followed the suggestion in Lilypond docs for hacking staff lines to stack 3 lines together to mimick a thick line. So you can understand the above as meaning :

       \override Staff.StaffSymbol.line-positions = #'(-6(thick) -2  1(thick))

Future projects

I believe that it is vital for the success of this idea to go further into automating the process of creating scores with scale staffs. Some features that are needed :

  • Get the ledger lines to stick to the new staff lines convention, instead of the 2-lines spacing convention (a ledger line is always on a C or a G, and is thick or thin)
  • Have the number of C/G lines automatically adapt to the range of notes played in the bar or on the current line in the page of the sheet. (see the varying number of lines between Haendel and Chopin score).

Your help is needed !