Horizontally aligning staves in Scribus render frames
I'm using lilypond source code in render frames in a Scribus two column layout to put short two bar single stave exercises at a dozen or more to the page. The render frames are horizontally aligned and of the same height, but the problem I haven't been able to solve is that of getting the staves in the left and right columns to align horizontally. Setting top-system-spacing #'padding to the same value in left and right column scores and turning #'stretchability off doesn't align the staves, it aligns the highest part of what is in each short score. What LP code can I use to get the staves themselves to align, rather than the highest part of the notes? Here's an example of the LP code in one of the render frames. Keeping everything the same except the notes doesn't keep the left and right staves aligned. I realise that once I have the notes in I can fiddle the top-system-spacing #'padding value for one of the staves until they're pretty much aligned, but with multiple pages with up to eight of these pairs on each page, that's something I'd rather avoid if possible. \version "2.15.16" \language "english" \include "/home/nick/lilypond/guitar.ily" \paper { ragged-last = ##f top-system-spacing #'padding = #2 top-system-spacing #'stretchability = #0 } \relative c' { \override Staff.TimeSignature #'stencil = ##f \set Score.markFormatter = #format-mark-numbers \override Staff.TupletNumber #'stencil = ##f \override Staff.TupletBracket #'stencil = ##f \clef "treble_8" \repeat volta 2 { \mark #7 \bar "|:" << { \fl \sfu \sfsst \times 2/3 { c,8 e, c, g' e' e, g c } | \times 2/3 { b, g' d, g g,, g' f' b,, d d' } | } \\ { \fl \sfd 4 c e | d b | } >> } } Nick ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Hiding or delaying new staffs
Phil & Eluze, Please accept my apologies. I have found the problem & it is down to me not being careful enough with { }. It is now working fine. I am new to lilypond & virtually new to compiled languages & struggling with the level of attention to detail required. Will try to do better. Many thanks Steve On Tue, Nov 08, 2011 at 02:28:31PM -0800, -Eluze wrote: > > hi > > steve downes wrote: > > > > > >> To get rid of all except piano staffs which only contain Whole > >> Measure Rests, use: > >> > >> \layout { > >> \context { > >>\RemoveEmptyStaffContext > >>\override VerticalAxisGroup #'remove-first = ##t > >> } > >> } > > > > Thanks for your very prompt reply. I had already done this & there are > > 2 problems with it:- > > > > 1) It leaves the clef, key sig, & time sig where the staff was at the > >beginning > > > > 2) When I start to use the staff 8 bars later it puts it at the > >beginning of the intro. If I pad the 8 bars out with R1 * 8 | or > >s1 * 8 | it puts the staff back in. > > > > So I'm back where I started. > > > for me Phil's code works - what's your code?! > -- > View this message in context: > http://old.nabble.com/Hiding-or-delaying-new-staffs-tp32805610p32805995.html > Sent from the Gnu - Lilypond - 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: ANN: Frescobaldi 1.9.1 (alpha)
Op Fri, 14 Oct 2011 11:42:54 +0200 Rodolfo Zitellini schreef: > I just have an annoying issue with the Music View: the scrollbar size > does not seem to get calculated correctly and it is possible to scroll > the doc only for circa 1/3 of it's total length, which is quite > annoying. Do you have any ideas on what might be going wrong? This is a Qt4 bug in the Mac OS X version, that occurs on Mac OS X 10.6.6, which is fixed in Qt 4.8. https://bugreports.qt.nokia.com/browse/QTBUG-17414 -- Wilbert Berendsen (http://www.wilbertberendsen.nl) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ANN: Frescobaldi 1.9.1 (alpha)
Wilbert, On Wed, Nov 9, 2011 at 11:02 AM, Wilbert Berendsen wrote: > Op Fri, 14 Oct 2011 11:42:54 +0200 > Rodolfo Zitellini schreef: > >> I just have an annoying issue with the Music View: the scrollbar size >> does not seem to get calculated correctly and it is possible to scroll >> the doc only for circa 1/3 of it's total length, which is quite >> annoying. Do you have any ideas on what might be going wrong? > > This is a Qt4 bug in the Mac OS X version, that occurs on Mac OS X > 10.6.6, which is fixed in Qt 4.8. > > https://bugreports.qt.nokia.com/browse/QTBUG-17414 > Do you think this is related to that same issue? http://code.google.com/p/lilypond/issues/detail?id=1934 -- -- James ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontally aligning staves in Scribus render frames
On 11/9/11 2:25 AM, "Nick Payne" wrote: > > > >I'm using lilypond source code in render frames in a Scribus two >column layout to put short two bar single stave exercises at a dozen >or more to the page. The render frames are horizontally aligned and >of the same height, but the problem I haven't been able to solve is >that of getting the staves in the left and right columns to align >horizontally. Setting top-system-spacing #'padding to the same value >in left and right column scores and turning #'stretchability off >doesn't align the staves, it aligns the highest part of what is in >each short score. What LP code can I use to get the staves >themselves to align, rather than the highest part of the notes? > >Here's an example of the LP code in one of the render frames. >Keeping everything the same except the notes doesn't keep the left >and right staves aligned. I realise that once I have the notes in I >can fiddle the top-system-spacing #'padding value for one of the >staves until they're pretty much aligned, but with multiple pages >with up to eight of these pairs on each page, that's something I'd >rather avoid if possible. See my notes to Neil Thornock a couple of days ago. Set top-system-spacing and system-system-spacing to have a basic-distance and minimum-distance at the same fixed value, stretchability 0, and padding of *negative* basic-distance. This will put the staves right at the basic distance, and will ignore high and low notes when placing the staves. Note -- you will need to adjust for any collisions by changing the spacing manually; LilyPond will allow collisions between staves in this mode (because you asked her to). HTH, Carl ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Cheat Sheet
Am 09.11.2011 00:59, schrieb Carl Sorensen: On 11/8/11 1:32 PM, "Tim Roberts" wrote: As I do more and more LilyPond data entry, I find the skill set development to be interesting. I've become pretty quick at data entry now, including dynamics and articulation marks. I've become pretty good at tweaking the output to get the effects I want. The skill that is NOT developing, apparently, is the skill to keep the relative octaves straight. Inevitably, my first test run ends up going diagonally straight off the page in one direction or other, with 20 or 30 ledger lines on each note. Is there a simple mnemonic aid that can help me remember which part of a given token is the one that carries forward? Individual notes are easy. Within a chord is easy. I believe that the first note of a chord then carries forward to the next token. But in polyphony (with<< >>), is it the last note that carries forward out of the polyphony? If you are parsing notes, the last note parsed serves as the basis for the next note. To make this maybe even a little more concrete: It does _not_ depend on the context the notes live in - it depends only on the order in which they appear in the input file. ( If you are parsing chords, the first note in the last chord parsed serves as the basis for the next note. I got used to always writing chords from bottom to top, even when this implies more octavations. HTH Urs At least, that's my mental model. Thanks, Carl ___ 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: Cheat Sheet
On Wed, Nov 9, 2011 at 8:41 AM, Urs Liska wrote: > It does _not_ depend on the context the notes live in - it depends only on > the order in which they appear in the input file. > Thanks, that's an easy-to-remember rule. It deserves prominent placement in the documentation. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Cheat Sheet
Michael Ellis writes: > On Wed, Nov 9, 2011 at 8:41 AM, Urs Liska wrote: > > It does _not_ depend on the context the notes live in - it depends > only on the order in which they appear in the input file. > > > Thanks, that's an easy-to-remember rule. It deserves prominent > placement in the documentation. It is also wrong. This just holds for durations. Relative octaves are not tracked in the input, but instead are generated when \relative is called. This is established at the point of time when a music list is getting iterated. If you entered the whole music list "naturally" instead of having music functions and music variables provide bits and pieces, then you get roughly input order, except that after chords, the respective octave for the next element is taken from the first element of the chord. There may be further details. Use occasional octave checks if you tend to get things wrong. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extending Lilypond's chord vocabulary PLUS Help on command definition
Hi Jim & everyone, I'm currently preparing a macro file "jazz-chords.ily" which contains (my version of) common jazz chord notation. I will share that file as soon as it is in a usable state. However, right now, I just worked out how to define the markups of each chord by defining the markup explicitly. I would like to do that more elegantly by defining markup commands. If, e.g., I would like to create a command \jcRaise such that the expression \markup{ \raise #1.5 {\tiny "Maj9"} } would just become \jcRaise{ "Maj9" } or possibly \markup\jcRaise{ "Maj9" } how do I define the markup command for this? I checked the manual here http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Markup-construction-in-Scheme#Markup-construction-in-Scheme and tried to build such a function accordingly, but didn't really get anywhere. I guess I would need to start somewhere more basic. Could anyone please point the way? Thanks a lot, Robert Am 11/9/11 8:26 AM, schrieb lilyp...@umpquanet.com: How can I add a new chord to Lilypond's "chordmode" vocabulary? A minor augmented triad is composed of a root, a minor third, and an augmented fifth. On lead sheets, I would like the markup to be something like: markup { \text "m" \super "aug" } How would I reference this chord in chordmode? Perhaps f:m.5+ or f:maug would be convenient. I have accomplished some basic chord *naming* alterations, following an example snippet in the documentation: - - - chExceptionMusic = { 1-\markup { \text "m" \super { "7" \musicglyph #"accidentals.flat" "5" } } 1-\markup { \super "maj9" } } % Convert music to list and prepend to existing exceptions. chExceptions = #( append ( sequential-music-to-chord-exceptions chExceptionMusic #t) ignatzekExceptions) - - - But adding a new chord (and a new chordmode identifier for it) appears to be a whole different ball of wax. Can someone who has done this before offer some insight on how they did it? Thank you! Jim ___ 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: Cheat Sheet
On Wed, Nov 9, 2011 at 9:38 AM, David Kastrup wrote: > Michael Ellis writes: > > > On Wed, Nov 9, 2011 at 8:41 AM, Urs Liska wrote: > > > > It does _not_ depend on the context the notes live in - it depends > > only on the order in which they appear in the input file. > > > > > > Thanks, that's an easy-to-remember rule. It deserves prominent > > placement in the documentation. > > It is also wrong. This just holds for durations. Relative octaves are > not tracked in the input, but instead are generated when \relative is > called. This is established at the point of time when a music list is > getting iterated. If you entered the whole music list "naturally" > instead of having music functions and music variables provide bits and > pieces, then you get roughly input order, except that after chords, the > respective octave for the next element is taken from the first element > of the chord. There may be further details. Use occasional octave > checks if you tend to get things wrong. > > Ah! So the simple rule about simple rules still applies :-) Back to my previous approach, then: Use point and click to select the first note with the wrong octave, change it, and re-run lilypond. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Cheat Sheet
Michael Ellis writes: > Ah! So the simple rule about simple rules still applies :-) > Back to my previous approach, then: Use point and click to select the > first note with the wrong octave, change it, and re-run lilypond. Or write octave checks. In relative mode, it is easy to forget an octave changing mark. Octave checks make such errors easier to find by displaying a warning and correcting the octave if a note is found in an unexpected octave. To check the octave of a note, specify the absolute octave after the `=' symbol. This example will generate a warning (and change the pitch) because the second note is the absolute octave `d''' instead of `d'' as indicated by the octave correction. \relative c'' { c2 d='4 d e2 f } The octave of notes may also be checked with the `\octaveCheck CONTROLPITCH' command. `CONTROLPITCH' is specified in absolute mode. This checks that the interval between the previous note and the `CONTROLPITCH' is within a fourth (i.e., the normal calculation of relative mode). If this check fails, a warning is printed, but the previous note is not changed. Future notes are relative to the `CONTROLPITCH'. \relative c'' { c2 d \octaveCheck c' e2 f } -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Cheat Sheet
David Kastrup wrote Wednesday, November 09, 2011 3:03 PM The octave of notes may also be checked with the `\octaveCheck CONTROLPITCH' command. `CONTROLPITCH' is specified in absolute mode. This checks that the interval between the previous note and the `CONTROLPITCH' is within a fourth (i.e., the normal calculation of relative mode). This is a popular misconception, but it is wrong, as you can see by introducing various accidentals. The calculation of nearest note in \relative mode is based, not on pitches, but on position on the staff. The octave is chosen so the number of staff-spaces between the two note-heads is 3 or less. For example, \relative c'' { b c % c is 1 staff space up, so is the c above b d % d is 2 up or 5 down, so is the d above b e % e is 3 up or 4 down, so is the e above b a % a is 6 up or 1 down, so is the a below b g % g is 5 up or 2 down, so is the g below b f % f is 4 up or 3 down, so is the f below } See http://www.lilypond.org/doc/v2.15/Documentation/learning/simple-notation Trevor ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extending Lilypond's chord vocabulary PLUS Help on command definition
On Nov 9, 2011, at 8:45 AM, Robert Schmaus wrote: > Hi Jim & everyone, > > I'm currently preparing a macro file "jazz-chords.ily" which contains (my > version of) common jazz chord notation. I will share that file as soon as it > is in a usable state. > > However, right now, I just worked out how to define the markups of each chord > by defining the markup explicitly. I would like to do that more elegantly by > defining markup commands. > If, e.g., I would like to create a command \jcRaise such that the expression > > \markup{ \raise #1.5 {\tiny "Maj9"} } > > would just become > \jcRaise{ "Maj9" } > > or possibly > \markup\jcRaise{ "Maj9" } > > how do I define the markup command for this? I checked the manual here > http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Markup-construction-in-Scheme#Markup-construction-in-Scheme > > and tried to build such a function accordingly, but didn't really get > anywhere. I guess I would need to start somewhere more basic. Would the #(define-music-function work for this? I am assuming that you have seen the pop-chord.ly file already and don't want to use that approach. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Cheat Sheet
"Trevor Daniels" writes: > David Kastrup wrote Wednesday, November 09, 2011 3:03 PM > >> The octave of notes may also be checked with the >> `\octaveCheck CONTROLPITCH' command. `CONTROLPITCH' is specified in >> absolute mode. This checks that the interval between the previous >> note >> and the `CONTROLPITCH' is within a fourth (i.e., the normal >> calculation >> of relative mode). > > This is a popular misconception, but it is wrong, as > you can see by introducing various accidentals. I was merely quoting the manual, so if you have something to complain, do it there. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Call for help
Dear LilyPond user community, The LilyPond development team is somewhat stressed right now, due to a variety of issues (seems like it's a different one for each developer). We *really* need to increase the size of the development pool. But we aren't ready right now to mentor inexperienced developers. So, since you're not an experienced developer, how can you help? By taking over bug-squad duties. We currently have a couple of bug-squadders who are also developers. If we could relieve them of their bug-squad responsibilities, it would make time for them to work on their other development projects. Being a bug squad member requires *no* development expertise with LilyPond. You simply need to be able to use LilyPond, a web browser, and email. And it only requires 20 minutes per day. You can volunteer for one or two days per week, so the total time per week is less than an hour. To learn more, please look at Chapter 8 of the Contributor's Guide for version 2.15. http://lilypond.org/doc/v2.15/Documentation/contributor/introduction-to-iss ues If you're interested in volunteering to help keep LilyPond moving forward, please send an email to the Bug Meister, Phil Holmes, who is copied on this email. Thanks in advance for your willingness to help with this! Carl Sorensen ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extending Lilypond's chord vocabulary PLUS Help on command definition
On 11/9/11 9:49 AM, "Tim McNamara" wrote: > >On Nov 9, 2011, at 8:45 AM, Robert Schmaus wrote: > >> Hi Jim & everyone, >> >> I'm currently preparing a macro file "jazz-chords.ily" which contains >>(my version of) common jazz chord notation. I will share that file as >>soon as it is in a usable state. >> >> However, right now, I just worked out how to define the markups of each >>chord by defining the markup explicitly. I would like to do that more >>elegantly by defining markup commands. >> If, e.g., I would like to create a command \jcRaise such that the >>expression >> >> \markup{ \raise #1.5 {\tiny "Maj9"} } >> >> would just become >> \jcRaise{ "Maj9" } >> >> or possibly >> \markup\jcRaise{ "Maj9" } >> >> how do I define the markup command for this? I checked the manual here >> >>http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Markup-construc >>tion-in-Scheme#Markup-construction-in-Scheme >> >> and tried to build such a function accordingly, but didn't really get >>anywhere. I guess I would need to start somewhere more basic. > >Would the #(define-music-function work for this? jcRaise = #(define-markup-function (props layout myMarkup) (ly:markup?) (interpret-markup layout props #{ \markup \raise #1.5 {\tiny $myMarkup} #})) I haven't tested it, but it should work. See http://lilypond.org/doc/v2.14/Documentation/extending/new-markup-command-de finition For more information. HTH, Carl ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extending Lilypond's chord vocabulary PLUS Help on command definition
Carl Sorensen writes: > jcRaise = > #(define-markup-function (props layout myMarkup) (ly:markup?) > >(interpret-markup layout props >#{ > \markup \raise #1.5 {\tiny $myMarkup} > #})) > > I haven't tested it, but it should work. See > > http://lilypond.org/doc/v2.14/Documentation/extending/new-markup-command-de > finition For some inscrutable reason, the predicate is just markup? instead of ly:markup?. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Extending Lilypond's chord vocabulary PLUS Help on command definition
Am 11/9/11 4:49 PM, schrieb Tim McNamara: On Nov 9, 2011, at 8:45 AM, Robert Schmaus wrote: Hi Jim& everyone, I'm currently preparing a macro file "jazz-chords.ily" which contains (my version of) common jazz chord notation. I will share that file as soon as it is in a usable state. However, right now, I just worked out how to define the markups of each chord by defining the markup explicitly. I would like to do that more elegantly by defining markup commands. If, e.g., I would like to create a command \jcRaise such that the expression \markup{ \raise #1.5 {\tiny "Maj9"} } would just become \jcRaise{ "Maj9" } or possibly \markup\jcRaise{ "Maj9" } how do I define the markup command for this? I checked the manual here http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Markup-construction-in-Scheme#Markup-construction-in-Scheme and tried to build such a function accordingly, but didn't really get anywhere. I guess I would need to start somewhere more basic. Would the #(define-music-function work for this? I am assuming that you have seen the pop-chord.ly file already and don't want to use that approach. Hi Tim, actually, I'm using the same approach as pop-chords. I've just modified/added loads of chord alterations and formatted them s.t. they look more like the usual jazz chords. However, right now, I defined the markup command for each individual chord explicitly - with the effect, that I would also need to change each chord definition explicitly if I would, say, like to change the size in which the of the tensions are printed. Therefore I was trying to switch to a music-function approach. But I don't yet know how to do it. In the documentation, there is a description of how functions are defined, but I don't understand a lot of what's written there. E.g. in http://lilypond.org/doc/v2.12/Documentation/user/lilypond/New-markup-command-definition#New-markup-command-definition halfway down, it reads --- (cons (list '(font-shape . caps) ) props) The variable props is a list of alists, and we prepend to it by cons’ing a list with the extra setting. --- now it seems to me that I should know what what "cons'ing" *is* - but I don't, and I haven't found it explained anywhere in section 6 so far. hence my remark that I probably need to start way more back at the basics before I can define musical functions ... I've seen that Carl and David sent me a suggestion of how the function should work - so hopefully I will soon enough see where I went wrong (my trials looked similar, but didn't work ...) Thanks for all your responses - I'll let you know how it works (preferably by producing the jazz-chords file ...) Cheers, Robert ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: grace note synchronization
On 03. aug. 2011 17:08, Xavier Scheuer wrote: On 3 August 2011 15:34, Urs Liska wrote: [...] AFAIK you need to add a corresponding skip graces to _every voice_ in _every staff_. I wish lilypond could be changed, so this wouldn't be necessary. It is a *pain* when there are lots of grace notes, and 3 or more voices. Especially when two voices have grace notes of different lengths but in the same place. And sometimes no tricks work, for example if the very first note has a grace note. Adding a silent bar first is a workaround, but not what I want. A grace note is supposed to steal some time from the note it is attached to, so it is not supposed to change the timing at all. Consider this: A piece for piano and violin. So there are 3 voices. I want to be able to print separate scores as well as a combined sheet, so timing changes and repeats goes into every voice. (Not necessary for the combined works, but needed so I can print just one voice too.) Every grace note will then need grace skips in the other voices, unless the others happens to have a grace note of the same length too. The work with grace notes is tripled. It is so easy to miss a grace skip somewhere, and then timing changes print twice, or other ugly, wrong oddities appear. It'd be so much better if this simply wasn't necessary. Helge Hafting ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: grace note synchronization
Helge Hafting writes: > On 03. aug. 2011 17:08, Xavier Scheuer wrote: >> On 3 August 2011 15:34, Urs Liska wrote: > [...] >> >> AFAIK you need to add a corresponding skip graces to _every voice_ in >> _every staff_. > > I wish lilypond could be changed, so this wouldn't be necessary. [Rant deleted] If you want to attach a bounty to your wish, the relevant issue is issue 34 http://code.google.com/p/lilypond/issues/detail?id=34>. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Horizontally aligning staves in Scribus render frames
On 10/11/11 14:35, Nick Payne wrote: On 10/11/11 00:25, Carl Sorensen wrote: On 11/9/11 2:25 AM, "Nick Payne" wrote: I'm using lilypond source code in render frames in a Scribus two column layout to put short two bar single stave exercises at a dozen or more to the page. The render frames are horizontally aligned and of the same height, but the problem I haven't been able to solve is that of getting the staves in the left and right columns to align horizontally. Setting top-system-spacing #'padding to the same value in left and right column scores and turning #'stretchability off doesn't align the staves, it aligns the highest part of what is in each short score. What LP code can I use to get the staves themselves to align, rather than the highest part of the notes? Here's an example of the LP code in one of the render frames. Keeping everything the same except the notes doesn't keep the left and right staves aligned. I realise that once I have the notes in I can fiddle the top-system-spacing #'padding value for one of the staves until they're pretty much aligned, but with multiple pages with up to eight of these pairs on each page, that's something I'd rather avoid if possible. See my notes to Neil Thornock a couple of days ago. Set top-system-spacing and system-system-spacing to have a basic-distance and minimum-distance at the same fixed value, stretchability 0, and padding of *negative* basic-distance. This will put the staves right at the basic distance, and will ignore high and low notes when placing the staves. Note -- you will need to adjust for any collisions by changing the spacing manually; LilyPond will allow collisions between staves in this mode (because you asked her to). Thanks. I added your suggestions for the spacing values to the paper blocks for the scores, and when I turn on annotate-spacing I can see that each stave is the same distance from the top margin, but for some reason they don't get positioned at the same height in the Scribus frame. So I've asked on the Scribus forum, as it looks like the problem is on their side of the fence. Well after a bit more delving around I found that the problem was due to Scribus for some reason applying an arbitrary small X and Y offset of a few points to the position of the Lilypond PDF output in the render frames. Once I zeroed out those values everything is nicely aligned. Nick ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user