Accordion notation with Lilypond

For beginners

I implemented the following notation, used (mainly/only?) in accordion music:

For lack of a better name, I call it x/ ("x-slash") notation. The left-hand staff consists of a single line. The bass is shown by a diagonal cross (such as noteheads.s2cross), the chord by a diagonal line (such as noteheads.s2slash), bass and chord together by a cross with one double line (from bottom left to top right; noteheads.s2cross and noteheads.s2slash could be used on top of one another, but don't fit together optically), quint (fifth) bass by diagonal cross in a circle (such as noteheads.s2xcircle; for C, quint bass is G, for G it's D and so on).
Beams and stems are omitted if notes are all the same duration (usually 1/4), but are show if durations vary, as in the following snippet:

The following snippet explains quint bass (Quintwechselbass in German):

The following table contains accordion pieces I typeset with Lilypond, except for the first one. You can download the Lilypond source file (click on the title), a PDF and PostScript file, and a MIDI file.

Greensleeves PDF MIDI Piano-like notation by Ralf Axel Gehlert
Greensleeves PDF MIDI x/ notation by me with material from the above piece
Oh Susanna PDF MIDI  
Old folks at home PDF MIDI  

I could not find direct support of this notation by Lilypond. I developed a template with which I can implement it, but it neither elegant ("lilypondic"?) nor particularly practical. But it works. Here is how I achieved it.

The template is in the files and To create an accordion piece from these, save them as e.g. and

Another file,, can be included. It remains constant, defines e.g. accTremolo.

In, define melody and chords (and lyrics if needed).

Also, include "" which should be constant, but make sure it's complete. In you define the lower voice in terms of the variables defined in, which essentially makes sure that bass notes are layouted as "x" and chords as "/". The pitch is set to the d on the middle bass line (the single visible line).

After these preparations, the layout score is called. It modifies the lower staff so the staff contains only one line:

	override Staff.StaffSymbol #'line-count = 1

For many pieces the notes have all the same duration, usually 1/4 note. In this case stems and beams can be omitted:

	override Staff.Stem #'transparent = ##t  % tell Stem_engraver not to print stems
	override Staff.Beam #'transparent = ##t 

If you also want MIDI output, include "" and again include "" so the lower voice is defined in terms of real notes and chords. The MIDI score contains no layout but only a midi. You can also output a layout from the MIDI score to see what really happens if you listen to the MIDI and think it sounds awkward.

Often it sounds better if the lower voice is more silent than the upper voice. To achieve this, set Staff.midiMinimumVolume = #0.3 % set bass volume but to work properly, this needs a p after the first lower voice note. This p should not appear in the layout, so the first note is defined as e.g. first = { qxc } for the layout (qxc in turn is defined in rest. first = { c4p } for the MIDI.

The and files have been generated by Python scripts resp., which are free to use, adapt and copy. However, in the future I'd like to replace these definitions by Scheme functions which generate the variables when needed instead of storing them in lengthy but still incomplete files. (But for that, I need to learn a little bit more of Lilypond Scheme.)

To summarize, here are the files involved:

So far the description of the accordion "x/" notation and my template for it. Now for my questions:
  • How widely is this notation used? Is it only for beginners? Which notation is used for advanced players? AAA notation?
  • So, does it make sense to further develop a template for this notation?
  • If so, is this template described here a good start? Are there different, better approaches?
  • If we go on with this, what bothers me most with its look, is that the chord names line is too distant from the bass staff and too close to the next upper staff. How can I fix this?