I wrote a new script to drill the counting of half steps. It is still a work in progress because if a note has an accidental already in a measure then the second note inserted may be inaccurate because it can't tell if the current accidental list (in that measure) contains the note to be inserted. I was wondering how to remedy this. I could create an array defining accidentals to be something like -2 0 0 0 0 0 0 meaning that "A" has a double flat. I tried making the note inserted a whole note so that the accidental list is reset with each insert because the whole note takes up the entire measure. The problem I had was that occasionally denemo tried to put two whole notes in one measure. The only happened about 30% of the time. I guess it would be possible maybe desirable to write something in c that inserts lilypond note with the prevailing duration. At the moment we have the ability to place cursor at lilypond note. This is what I am currently using followed by a (d-1) to insert a half note.
With a little modification the script can also drill half and whole step counting. This leads the student into spelling scales and chords. I hope to make some scripts for that also.