Staves based on a whole tone scale (or other interval)
staffLineLayoutFunction is used to customize the default vertical positions of notes on the staff. It can be used to create a staff based on a whole tone scale, with a whole tone interval between each adjacent note position (line or space). For staves based on other intervals simply change the number 2 in the formula to the number of semitones in the interval you want. (Staves based on whole tone scales are used in certain alternative notation systems. For a staff based on semitones you can simply set staffLineLayoutFunction to ly:pitch-semitones.)
\version "2.24.0"
%% http://lsr.di.unimi.it/LSR/Item?id=755
%LSR: Graham Breed gets the credit for this solution
scale = \relative c' {
c4 d e fis
gis4 ais c2
f,4 g a b
cis4 dis f2
c,4 cis d dis
e4 f fis g
gis4 a ais b
c1
}
\new Staff \with {
\remove "Accidental_engraver"
staffLineLayoutFunction = #(lambda (p) (floor (/ (ly:pitch-semitones p) 2)))
}
{
<<
\scale
\new NoteNames {
\set printOctaveNames = ##f
\scale
}
>>
}