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.)