denemo-devel
[Top][All Lists]
Advanced

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

Re: [Denemo-devel] Script to add transpose Clarinet staff to existing mu


From: Joe Wilkinson
Subject: Re: [Denemo-devel] Script to add transpose Clarinet staff to existing music
Date: Sun, 22 Sep 2019 14:54:59 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0

Thanks. That works.

1.... I don't get error messages because I don't have a command line interface to receive them in Windows.

On 22/09/2019 12:42, Richard Shann wrote:
On Sun, 2019-09-22 at 12:09 +0100, Joe Wilkinson wrote:
Hi Richard,

I am trying to write a scheme script to automatically add a Clarinet
line below and to copy existing music. It needs to be transposed on
print up a tone. I'd rather it did not ask me each time for the
interval
with a dialogue box.

I have played with the script from the Transpose on Print button, but
it
either gives me a dialogue box, if I leave it alone, or nothing
happens
if I change

(set! Transpose::Interval  (d-GetNoteNamesFromUser 2
Transpose::Interval
(_ "--> Transpose to -->") )))

to

(set! Transpose::Interval  ( "c  d" 2 Transpose::Interval (_ "-->
Transpose to -->") )))
without testing it looks like that should throw an error in Scheme when
you try to set! the variable Transpose::Interval to the expression
following, which is

( "c  d" 2 Transpose::Interval (_ "-->> Transpose to -->") )
I don't get error messages; I probably need a window to receive them!
That expression can't evaluate to anything because the first thing in
this list, the string "c d", is not a procedure - a list is evaluated
by executing the first element with the following elements as
parameters.
It looks like you would mean to write
(set! Transpose::Interval "c d")
where the first element set! is a procedure that sets the second
element (a variable) to the value of the third element (a string).

I assume there is more to it than a simple kludge. Apart from
anything
else when the interval is changed the system remembers. Is
Transpose::Interval some sort of Global variable?
Not sure, but it looks like it. Try evaluating


(d-InfoDialog (format #f "~s" Transpose::Interval))
this does indeed give me the current setting of the Transpose Interval
in the Scheme window to find out...

But I don't think changing that value will help - what you need to do
is create an example of this staff and then clone the staff
directive(**) as a button to be clicked to apply that transposition to
the current staff. Then you can copy(*) the Scheme script that this
button executes and use it in your script to set the transposition of
the current staff.

That now works. Thanks

Joe

Richard
(*) right click the button and choose Get Script into Scheme Window
(**) you will find the staff directives under the staff properties
editor - click on the staff number right at the start of the staff.



reply via email to

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