---- On Fri, 01 Feb 2019 08:05:36 -0800 Richard Shann wrote ----
One thing that would be useful for this
sort of thing is something I very recently created for the Swap
Passages command - when swapping passages it is necessary to switch to
the staff below going to the same musical moment in time - as you
observe the CursorDown command places the cursor at the start of the
bar.
HTH
Richard
Yes, the new Swap Passages command has some very useful coding style that could
be reused in different scenarios. It could help me refine what I've got so far
for the intervals to other staffs commands. Also, I want to use features from
Swap Passages to make it so I can select just a line of notes the same duration
in columns of multiple staffs (right now selecting columns selects the whole
measure, as far as I know), and will study how you used the "GetStart/EndTick"
to see if that will be the key there.
Below is what I have so far for the intervals command, working mostly, except
if I got back to add a new interval, then the note pops up at the end of
measure, so I made a "swap note right/left" for that. (I did decide to go with
having a command for each interval, up and down - not including all those
intervals in ans.scm, just the main ones; Having the transpose dialogue pop-up
is of course just as easy, perhaps easier in the sense that it only needs one
command to implement!). The d-PushCursorPosition at the beginning is so that I
can just hit 'tab' as a shortcut keypress for d-PopCursorPosition when I am
ready to go back to staff of origin.
(d-CursorToLowestNote)(d-PushCursorPosition)(d-MoveToStaffUp)
(if(UnderfullMeasure?)
(d-SelectionToEmptyMeasure))
(d-UnsetMark)
(if(FullDurationMeasure?)(GoToMeasureEnd)(d-MoveCursorLeft))
(d-UnsetMark)(d-PutNote)(d-MoveCursorLeft)
(define a6 -1) ;;; P4
(begin (ANS::ChangeChordNotes(map(lambda (x)(ANS::IntervalCalcUp x
a6))(ANS::GetChordNotes)))
(if(d-Directive-chord?"ChordName")(d-DirectivePut-chord-display"ChordName"(DenemoGetNoteAndAccidental))))
(if(EmptyMeasure?)(d-MoveCursorLeft))
(if(FullDurationMeasure?)(GoToMeasureEnd)(d-MoveCursorleft))
;;; to be used later - (while (and (not (Music?)) (d-MoveCursorRight)))
;;; to be used later - (while (and (not (Note?)) (d-MoveCursorRight)))
Thanks,
Rain Wilber
_______________________________________________
Denemo-devel mailing list
Denemo-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/denemo-devel