denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] A possible scheme script


From: rain
Subject: Re: [Denemo-devel] A possible scheme script
Date: Sun, 17 Feb 2019 17:54:00 -0800
User-agent: Zoho Mail


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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]