Thu 31 Dec 2009 03:42:11 PM UTC, comment #8:
I'm glad you tweaked it--I'm far from fluent in scheme. Glad too to be of help. There was a sort of half-hearted attempt to make the script its own editscript (thus the replace variable)--but I didn't follow through completely and maybe a separate editscript would be best.
-Dan W.
|
Thu 31 Dec 2009 08:51:28 AM UTC, comment #7:
Great - I have tweaked it slightly: most controversially I have put \bold \italic when the text is entered by the user. This could be wrong if the intention is to allow for other LilyPond defined dynamics, rather than to allow for arbitrary text. (Oh, and the {} need to enclose the text, at least in the case of spaces within).
But these tweaks can be tweaked - the whole thing unpacked and installed with the greatest of ease.
Eventually we could have an edit script - actually just a delete would do, as it is easy to replace a wrong dynamic.
Thank you. Now in git.
|
Thu 31 Dec 2009 03:44:11 AM UTC, comment #6:
This version I think is pretty complete. It has midi volume levels for ppp through fff, but not for sf and such. It uses graphics instead of the regular font for the denemo display, and a little unicode diamond to show the location of the directive so that you can edit it. The png's are attached and need to go into actions/bitmaps. The script is attached and for what it's worth, pasted here as well.
I hope this is useful.
-Dan W.
;;;; Standalone Dynamics -by Dan Wilckens
(let ((choice #f)(X 0) (replace #f) (level "63")(LilyString "")(Graphic "") (DynamicList "") )
(if (equal? (d-GetType) "LILYDIRECTIVE" )
(if (equal? (d-DirectiveGetTag-standalone) "Dynamic" )
(set! replace #t )
)
)
; format: dynamics, midi volume, image filename
(set! DynamicList '(("fff" "127" "Fortississimo")("ff" "111" "Fortissimo") ("f" "95" "Forte") ("mf" "79" "MezzoForte")("mp" "63" "MezzoPiano") ("p" "47" "Piano") ("pp" "31" "Pianissimo") ("ppp" "15" "Pianississimo") ("Other" "60" "") ("ppppp" "5" "ppppp")("pppp" "7" "pppp")("ffff" "127" "ffff") ("fp" "" "fp")
("sf" "" "sf") ("sff" "" "sff") ("sp" "" "sp" ) ("spp" "" "spp") ("sfz" "" "sfz") ("rfz" "" "rfz") ("Custom" "" "")))
(set! choice (d-GetOption (string-append "fff" stop "ff" stop "f" stop "mf" stop "mp" stop "p" stop "pp" stop "ppp" stop "Other" stop )))
(if (equal? choice "Other")
(set! choice (d-GetOption (string-append "ppppp" stop "pppp" stop "ffff" stop "fp" stop "sf" stop "sff" stop "sp" stop "spp" stop "sfz" stop "rfz" stop "Custom" stop ) )) )
(set! LilyString (string-append "s8*0 \\" choice ))
(set! X (assoc choice DynamicList) )
(set! level (car (cdr X)) )
(set! Graphic (car (cdr (cdr X) ) ) )
(if (equal? choice "Custom" ) (begin
(set! choice (d-GetUserInput "Custom dynamic" "Enter dynamic text:" "" ) )
(set! LilyString (string-append "s8*0_\\markup { \\dynamic " choice " } " ))
)
)
(if (equal? level "")
(begin
(set! level (d-GetUserInput "Dynamic setting" "Enter loudness level (0-127):" "63" ) )
(let ( (a 0))
(set! a (string->number level) )
(if (or (boolean? a) (> a 127) (< a 0) )(set! level #f) )
)
)
)
( if (not (boolean? choice) )
(begin
( if (equal? replace #f ) (d-DirectivePut-standalone "Dynamic" ) )
(d-DirectivePut-standalone-postfix "Dynamic" LilyString)
(if (equal? Graphic "")
(begin
(d-DirectivePut-standalone-display "Dynamic" choice)
(d-DirectivePut-standalone-ty "Dynamic" 70 )
(d-DirectivePut-standalone-graphic "Dynamic" "")
)
(begin
(d-DirectivePut-standalone-graphic "Dynamic" Graphic)
(d-DirectivePut-standalone-gy "Dynamic" 70 )
(d-DirectivePut-standalone-gx "Dynamic" 5 )
(d-DirectivePut-standalone-display "Dynamic" "◆")
(d-DirectivePut-standalone-ty "Dynamic" 60 )
)
)
(if (not (boolean? level) )
(begin (d-DirectivePut-standalone-override "Dynamic" (logior DENEMO_OVERRIDE_STEP DENEMO_OVERRIDE_VOLUME))
(d-DirectivePut-standalone-midibytes "Dynamic" level ) )
)
(d-DirectivePut-standalone-minpixels "Dynamic" 10 )
(d-RefreshDisplay)
(d-CursorRight)
)
)
)
(file #19399, file #19400)
|
Wed 30 Dec 2009 09:22:35 PM UTC, comment #5:
If you were going to add this script, don't do it yet. I have a version which uses graphics for the dynamics--I'll submit it pretty soon along with a few png files that seem to be lacking.
-Dan W.
|
Tue 29 Dec 2009 03:41:13 PM UTC, comment #4:
I have a script that allows insertion of standalone dynamics commands, including all the obscure ones from lilypond such as /ffff, with midi volume changes for the common ones, and the possibility to insert custom dynamics as mentioned in the lilypond 2.12.xx documentation. I don't have access to current denemo on linux. Is there a way to manually upload commands? For the moment I'm including the script as an attachment, which includes the xml stuff. You might want to change the name, etc.
-Dan W.
(file #19389)
|
Tue 22 Dec 2009 08:16:09 PM UTC, comment #3:
Those ones under Insert Dynamics are old built-ins. We are just waiting for someone to write a complete set of standalones, with MIDI volume changes etc.
|
Sun 20 Dec 2009 12:23:14 AM UTC, comment #2:
Lastly, one further benefit to standalone directives, as before, is that you can insert a dynamic level before you start to enter notes on a blank score (trying to enter chord-attached directives won't do anything to a blank score)
-Dan W.
|
Sun 20 Dec 2009 12:21:39 AM UTC, comment #1:
Another reason to go to standalone or regular chord-attached directives is that I don't know of any way to change the dynamics once they're there, other than by deleting the note/chord entirely.
|
Sun 20 Dec 2009 12:18:38 AM UTC, original submission:
It looks like that using insert dynamics to put a dynamic marking onto a chord doesn't work. To see this,
From a blank score, insert a 2-note chord, e.g. C E.
Use Insert Dynamics to insert a p dynamic marking.
Print preview it- and there's no dynamic mark at all.
Perhaps dynamics could be a standalone directive like tempo marks, etc.?
|