O.K., to explain a little further, the idea is that someone would use these script shortcuts *AS* they are writing the Cantus in the lower voice (To start; Later, will implement a 'writing Cantus on top, sending auto intervals to lower staff' version). So the approach is an "As you are writing approach", as anything else is too sophisticated for my needs, since one of the main purposes for this is simply as a learning tool, until being able to write the appropriate intervals will become second nature and the crutch will no longer be so necessary. So, now it is working good enough (for my current needs), as long as I am simply writing one note at a time *on the Cantus line*, then the shortcut to make interval appear on staff above, then a new note on the Cantus line, etc.
Worrying about changing note duration on the staff above the Cantus, I will be able to use my usual keypress-shortcuts for that easily. The script below does work in the manner I described and I've set it up for all other intervals but have just provided an example below (others are the same, just changed the d-AddLowestUp/Down part and number of cursor up/downs for each interval). The only one that gave a problem was the diminished 5th, which needed to be flattened when going down, because the add-diminished-5th down is not in Denemo commands. I will look into adding the part that Richard suggested about dealing with rests later, as that will come in very useful.
I'll make the menu items, then the palette buttons for shortcuts. Not sure what the best way to make that available when it is ready? Someplace I could upload?
- new, working example:
(d-AddLowestUpMinor3)
(d-CursorDown)
(d-CursorDown)
(d-CursorDown)
(d-RemoveNoteFromChord)
(d-SetMark)
(d-Cut)
(d-MoveToStaffUp)
(d-SelectionToEmptyMeasure)
(d-MoveCursorLeft)
(d-Paste)
(d-MoveCursorLeft)
(d-SetMark)
(d-Copy)
(d-MoveToStaffDown)
(d-SelectionToEmptyMeasure)
(d-MoveCursorLeft)
(d-Paste)
(d-MoveCursorLeft)
(d-AddHighestDownMinor3)
(d-CursorToLowestNote)
(d-CursorUp)
(d-CursorUp)
(d-CursorUp)
(d-RemoveNoteFromChord)