Re: Levelling hairpins
Hi, there may be some issues I do not have in this simple example. But in principle extracting dynamics from music into a dynamics context is possible (second staff below): - Do not engrave the dynamics with the staff (remove engraver) - Put the same music in a dynamics context in addition (the notes are not printed there anyway. I did not care about midi here, but that would be possible by removing performers or doing a separate midi score. Not having separate dynamics has the advantage, that it is easier for the midi output to interpret it right. \version 2.18.2 music = \relative c' { a\f b\p\ g f\! a\cresc c a c c\ff } \markup Normal staff including the dynamics \new Staff \music \markup Separate dynamics context from the same variable \new Voice \with { \remove Dynamic_engraver } \music \new Dynamics \music Cheers, Joram ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
I have a follow-up question to my own example: It seems like LilyPond does already keep the level of dynamics in a staff if they are connected via spanners (\cresc \ff in my example). Couldn’t that be extended, that there is some invisible connection? Because sometimes you want a break in the dynamics line (imagine inside a piano staff with some very low right hand notes and later some very high left hand notes). That way you could still put the dynamics close to the staff but on the same level if needed. The \level command below does it, but it should not do a crescendo, but rather some invisible spanner and I would like the command \= for it. What do you think? On the other hand: Can a dynamics context be broken and shifted vertically somehow? Joram This example shows it: \version 2.18.2 % proposed command: level = \tweak #'stencil #f \ music = \relative c' { a\f b\p\ g d\! d'\cresc c e c f\ff } level = \relative c' { a\f\level b\p\ g d\! d'\cresc c e c f\ff } left = { \clef bass a1 a a'4 } \markup Normal staff including the dynamics \new Staff \music \new Staff \left \markup { Use \typewriter \level for the first \dynamic f (breaks the dynamics where necessary) } \new Staff \level \new Staff \left \markup Separate dynamics context from the same variable (pushes the staffs apart) \new Voice \with { \remove Dynamic_engraver } \music \new Dynamics \music \new Staff \left ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
On Sat, 2015-02-14 at 00:44 -0800, Nathan Ho wrote: On Fri, Feb 13, 2015 at 12:53 PM, Peter Gentry peter.gen...@sunscales.co.uk wrote: This is very true but the dynamics context is very cumbersome for this purpose alone. Surely there must be a simpler way to align hairpins. Hmm, how about a Scheme function that extracts all the dynamic events and moves them into a Dynamics context? I think there may be a simpler way: if you have some music MyMusic = and then you put it in both the usual context *and* the a Dynamic Context then you get aligned dynamics in the dynamic context. You only then have to make all the dynamics not print in the usual context, for which I'm sure someone here can suggest the incantation. That is it would look something like this: UsualContext { \override dynamics invisible \MyMusic} DynamicsContext { \MyMusic } HTH Richard I doubt I have the skills to write that, but it would be very convenient. Regards, Nathan ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
The \= part is possible: \= = \tweak #'stencil #f \ ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
Hi David, It's a shame that Lilypond does not (so far as I know) have any way to (a) associate one mark with another for positioning purposes This association can be done quite easily as you can see in my previous mail. Have you seen it? However, I already found some drawbacks when used on the same note as other (de-)crescendi. Joram ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
It's probably a language thing... My use of the word 'shame' did not in any way imply that I think that anybody should feel shame, inadequacy or guilt for the fact that Lilypond does not always do what some of us would like. The English idiom it's a shame means the same as the similar it's a pity: they have different literal meanings, neither of which corresponds to the idiomatic meaning. I might easily say It's a shame that it's cloudy today: I am not blaming or criticising anyone for the fact that the sun is not shining: I am merely saying that it would be pleasanter if things were different from the way they are. Sorry if I offended anybody by my choice of words. The link you included is very interesting - although I won't hold my breath, because I see that the discussion has been going on for 4½ years so far. David On Sat, 2015-02-14 at 15:11 +0100, Werner LEMBERG wrote: It's a shame that Lilypond does not (so far as I know) have any way to (a) associate one mark with another for positioning purposes (b) associate dynamics with two staves, and use some sensible algorithm for vertically spacing the dynamics between the two staves and their contents. A `shame'? Definitely not! It's simply not yet implemented. Please be careful with your wording. See https://code.google.com/p/lilypond/issues/detail?id=1127 for first ideas. Werner ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
It's probably a language thing... Indeed. I should have looked up the phrase before writing. Sorry. The link you included is very interesting - although I won't hold my breath, because I see that the discussion has been going on for 4½ years so far. The very issue is that we only have tiny number of people who sufficiently understand the internals of lilypond to tackle problems of this kind, and all of them are very busy. Given that not too tedious work-arounds exist, a fix to this problem is not as urgent as, say, making lilypond work with guile2. Werner ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
On Sat, 2015-02-14 at 15:41 +0100, Werner LEMBERG wrote: It's probably a language thing... Indeed. I should have looked up the phrase before writing. Sorry. The link you included is very interesting - although I won't hold my breath, because I see that the discussion has been going on for 4½ years so far. The very issue is that we only have tiny number of people who sufficiently understand the internals of lilypond to tackle problems of this kind, and all of them are very busy. Given that not too tedious work-arounds exist, a fix to this problem is not as urgent as, say, making lilypond work with guile2. Werner Point taken - and we are all very grateful to those who do give up time (a) to develop Lilypond, and/or (b) to answer queries from those of us lower down on the learning ladder. David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
It's a shame that Lilypond does not (so far as I know) have any way to (a) associate one mark with another for positioning purposes (b) associate dynamics with two staves, and use some sensible algorithm for vertically spacing the dynamics between the two staves and their contents. A `shame'? Definitely not! It's simply not yet implemented. Please be careful with your wording. See https://code.google.com/p/lilypond/issues/detail?id=1127 for first ideas. Werner ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
On Fri, Feb 13, 2015 at 12:53 PM, Peter Gentry peter.gen...@sunscales.co.uk wrote: This is very true but the dynamics context is very cumbersome for this purpose alone. Surely there must be a simpler way to align hairpins. Hmm, how about a Scheme function that extracts all the dynamic events and moves them into a Dynamics context? I doubt I have the skills to write that, but it would be very convenient. Regards, Nathan ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
On Sat, Feb 14, 2015 at 12:44:44AM -0800, Nathan Ho wrote: On Fri, Feb 13, 2015 at 12:53 PM, Peter Gentry peter.gen...@sunscales.co.uk wrote: This is very true but the dynamics context is very cumbersome for this purpose alone. Surely there must be a simpler way to align hairpins. Hmm, how about a Scheme function that extracts all the dynamic events and moves them into a Dynamics context? I doubt I have the skills to write that, but it would be very convenient. [...] I would love to know how to write something like that too!! I've been struggling with inconsistently-applied dynamics in midi for my piano pieces, as well as the annoyance of having to use a separate, dedicated Dynamics context. It would be *very* nice if there were a Scheme function that could extract dynamics from, say, the upper staff. And perhaps with some additional modifications applied as well -- often, I find that I need to insert interpretive (or manual) dynamics into the midi score that I wouldn't want in my printed scores, because I want to leave that part up to the player's discretion, but for midi output I have to hand-hold it all the way through. T -- Your inconsistency is the only consistent thing about you! -- KD ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
On Fri, 2015-02-13 at 11:21 -0700, tisimst wrote: David, You have several options, but first would you mind providing a tiny example that shows these undesired offsets? Thanks This is too well known to need an example, indeed one is given in the documentation http://www.lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-attached-to-notes#dynamics where the solution is discussed A Dynamics context is available to engrave dynamics on their own horizontal line. Use spacer rests to indicate timing. (Notes in a Dynamics context will also take up musical time, but will not be engraved.) The Dynamics context can usefully contain some other items such as text scripts, text spanners, and piano pedal marks. Richard - Abraham On Fri, Feb 13, 2015 at 11:13 AM, David Sumbler [via Lilypond] [hidden email] wrote: One of my pieces has a lot of crescendo-decrescendo markings, using two hairpins (i.e. and ). Mostly these look fine; but just occasionally, because of the contours of the melodic line above the hairpins, the crescendo and decrescendo hairpins have different vertical placements and are not level. What is the simplest way to get them both to appear at the level required by the lower one of the two? David ___ lilypond-user mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/lilypond-user __ If you reply to this email, your message will be added to the discussion below: http://lilypond.1069038.n5.nabble.com/Levelling-hairpins-tp171841.html To start a new topic under User, email [hidden email] To unsubscribe from Lilypond, click here. NAML __ View this message in context: Re: Levelling hairpins Sent from the User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
David, You have several options, but first would you mind providing a tiny example that shows these undesired offsets? Thanks - Abraham On Fri, Feb 13, 2015 at 11:13 AM, David Sumbler [via Lilypond] ml-node+s1069038n171841...@n5.nabble.com wrote: One of my pieces has a lot of crescendo-decrescendo markings, using two hairpins (i.e. and ). Mostly these look fine; but just occasionally, because of the contours of the melodic line above the hairpins, the crescendo and decrescendo hairpins have different vertical placements and are not level. What is the simplest way to get them both to appear at the level required by the lower one of the two? David ___ lilypond-user mailing list [hidden email] http:///user/SendEmail.jtp?type=nodenode=171841i=0 https://lists.gnu.org/mailman/listinfo/lilypond-user -- If you reply to this email, your message will be added to the discussion below: http://lilypond.1069038.n5.nabble.com/Levelling-hairpins-tp171841.html To start a new topic under User, email ml-node+s1069038n...@n5.nabble.com To unsubscribe from Lilypond, click here http://lilypond.1069038.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=2code=dGlzaW1zdC5saWx5cG9uZEBnbWFpbC5jb218Mnw4MzU3Njg3MDU= . NAML http://lilypond.1069038.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml -- View this message in context: http://lilypond.1069038.n5.nabble.com/Levelling-hairpins-tp171841p171842.html Sent from the User mailing list archive at Nabble.com.___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
This is too well known to need an example, indeed one is given in the documentation http://www.lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-attached-to-notes http://www.lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-attached-to-notes#dynamics where the solution is discussed A Dynamics context is available to engrave dynamics on their own horizontal line. Use spacer rests to indicate timing. (Notes in a Dynamics context will also take up musical time, but will not be engraved.) The Dynamics context can usefully contain some other items such as text scripts, text spanners, and piano pedal marks. Richard This is very true but the dynamics context is very cumbersome for this purpose alone. Surely there must be a simpler way to align hairpins. regards Peter Gentry ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Levelling hairpins
This is how I deal with it. Not exactly automatic, but works well for me :-) \version 2.19.15 dynPadYOn = #(define-music-function (parser location padding)(number?) #{ \override DynamicLineSpanner.staff-padding = $padding #}) dynPadYOff = #(define-music-function (parser location)() #{ \revert DynamicLineSpanner.staff-padding #}) testMusic = { c'4 g c'\ a'\f | c'4\ g c' a'\p } { \testMusic | \break \dynPadYOn #4 \testMusic | \break \dynPadYOff \testMusic } On 13 February 2015 at 21:53, Peter Gentry peter.gen...@sunscales.co.uk wrote: This is too well known to need an example, indeed one is given in the documentation *http://www.lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-attached-to-notes#dynamics* http://www.lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-attached-to-notes where the solution is discussed A Dynamics context is available to engrave dynamics on their own horizontal line. Use spacer rests to indicate timing. (Notes in a Dynamics context will also take up musical time, but will not be engraved.) The Dynamics context can usefully contain some other items such as text scripts, text spanners, and piano pedal marks. Richard This is very true but the dynamics context is very cumbersome for this purpose alone. Surely there must be a simpler way to align hairpins. regards Peter Gentry ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user -- David Stephen Grant da...@davidgrant.no www.davidgrant.no Phone: (+47) 918 14 276 ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user