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

Reply via email to