Rather involved TextSpanner edge-text Scheme markup question
Hi, I'm trying to get the edge text of a series of consecutive TextSpanners to vertically align according to baseline. I've pasted in a sequence of ever-closer steps but beware that the post is long. If you're not interested in markup, skip to the next thread. Here's what I'm starting out with, in snippet 1: three different TextSpanner layers. %%% EDGE TEXT SNIPPET 1 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter a ) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter b ) (markup #:hcenter c)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup (#:hcenter d)) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter e ) (markup #:hcenter f)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #8 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter g ) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter h ) (markup #:hcenter i)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } %%% END EDGE TEXT SNIPPET 1 %%% This snippet 1 shows Lily's default behavior; it's less than optimal because all the edge text *top aligns* rather than aligning by baseline, which results not only in non-ideally aligned text but also in uneven spanners, which is bad. I asked a similar question about baseline alignment about TextScript in this thread ... http://lists.gnu.org/archive/html/lilypond-user/2006-09/msg00037.html ... and Kieren helpfully pointed to the workaround of using a fake character to force alignment. Here's an example with a fake l following edge bit of edge text. I've left the character visible so that it's easier to see what's going on. Notice that the results are better, but now there's the problem that some pieces of edge text *descend* too far. %%% EDGE TEXT ALIGNMENT SNIPPET 2 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter al) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter bl) (markup #:hcenter cl)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup (#:hcenter dl)) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter el) (markup #:hcenter fl)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #8 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter gl) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter hl) (markup #:hcenter il)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } %%% END EDGE TEXT ALIGNMENT SNIPPET 2 %%% So, since descenders are the problem (like in the g), we can carry the fake-character workaround a step further and add not only the fake l but also a fake g in snippet 3. %%% BEGIN EDGE TEXT ALIGNMENT SNIPPET 3 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter gal) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter gbl) (markup #:hcenter gcl)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup (#:hcenter gdl)) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter gel) (markup #:hcenter gfl)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #8 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter ggl) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons
Re: How to break timing coordination between my ossia and main staffs?
I hope you have read the section on Polymetric notation. It shows several methods to modify the synchronization between staves. Yet another alternative is to use ^\markup{\score{...}} /Mats Rick Hansen (aka RickH) wrote: I'm using a user-created staff context to accepts ossia notes mid-stream (see OssiaUnsynchronized below). I have a piece where my ossia length will have a different number of measures than the main staff (more or fewer). So for example if the ossia passage has 2 measures to the main staffs 1 measure I would like the ossia and main staffs to be oblivious to each others timing but each staff still know its own timing. Below is an example where I would want to see a 2 measure ossia spread under the main score freely (IOW I dont want it to add the blank measure to the main staff): How can I make my ossia context totally oblivious to the timing that is going on in the main score? So that the ossia does it's own thing and the main staff does it's own thing measure-wise. I tried some hacking but still could not get what I wanted. Eventually I want my template to have 2 different kind of ossia contexts (see OssiaUnsynchronized and OssiaSynchronized below), one with coordinated timing (OssiaSynchronized) and one that is free form and ignores the main staff timing (OssiaUnsynchronized the object of my question). The latter should simply render a chunk of music without affecting the main staff at all (my how-to question). Thanks for any help, the example below will run as-is:. %EXAMPLE BEGIN \version 2.9.17 \include english.ly % Music file myMusic = \relative c'' { | e4 e e e %\set timing = ##f { a b c d } \context OssiaUnsynchronized { a b c d d c b a } %\set timing = ##t | b b b b } % Template file \score { \myMusic \layout { \context { \Score \remove Span_bar_engraver \override SpanBar #'break-visibility = #center-invisible \remove System_start_delimiter_engraver \accepts OssiaUnsynchronized \accepts OssiaSynchronized } \context { \Staff \name OssiaUnsynchronized \remove Clef_engraver \remove Time_signature_engraver \remove Key_engraver \remove Timing_translator } \context { \Staff \name OssiaSynchronized \remove Clef_engraver \remove Time_signature_engraver \remove Key_engraver } } } % EXAMPLE END -- = Mats Bengtsson Signal Processing Signals, Sensors and Systems Royal Institute of Technology SE-100 44 STOCKHOLM Sweden Phone: (+46) 8 790 8463 Fax: (+46) 8 790 7260 Email: [EMAIL PROTECTED] WWW: http://www.s3.kth.se/~mabe = ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Rather involved TextSpanner edge-text Scheme markup question
I expected something like (markup #:pad-to-box '(0 . 0) '(-2 . 2) f) to solve the problem, but apparently it doesn't. If you want to pursue your current approach, try the \combine markup command (and try it first without your current #:hcenter commands, they caused me some confusing results). /Mats Trevor Bača wrote: Hi, I'm trying to get the edge text of a series of consecutive TextSpanners to vertically align according to baseline. I've pasted in a sequence of ever-closer steps but beware that the post is long. If you're not interested in markup, skip to the next thread. Here's what I'm starting out with, in snippet 1: three different TextSpanner layers. %%% EDGE TEXT SNIPPET 1 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter a ) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter b ) (markup #:hcenter c)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup (#:hcenter d)) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter e ) (markup #:hcenter f)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #8 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter g ) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter h ) (markup #:hcenter i)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } %%% END EDGE TEXT SNIPPET 1 %%% This snippet 1 shows Lily's default behavior; it's less than optimal because all the edge text *top aligns* rather than aligning by baseline, which results not only in non-ideally aligned text but also in uneven spanners, which is bad. I asked a similar question about baseline alignment about TextScript in this thread ... http://lists.gnu.org/archive/html/lilypond-user/2006-09/msg00037.html ... and Kieren helpfully pointed to the workaround of using a fake character to force alignment. Here's an example with a fake l following edge bit of edge text. I've left the character visible so that it's easier to see what's going on. Notice that the results are better, but now there's the problem that some pieces of edge text *descend* too far. %%% EDGE TEXT ALIGNMENT SNIPPET 2 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter al) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter bl) (markup #:hcenter cl)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup (#:hcenter dl)) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter el) (markup #:hcenter fl)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #8 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter gl) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter hl) (markup #:hcenter il)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } %%% END EDGE TEXT ALIGNMENT SNIPPET 2 %%% So, since descenders are the problem (like in the g), we can carry the fake-character workaround a step further and add not only the fake l but also a fake g in snippet 3. %%% BEGIN EDGE TEXT ALIGNMENT SNIPPET 3 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:hcenter gal) ) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:hcenter gbl) (markup #:hcenter gcl)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup (#:hcenter gdl)) ) s8 \startTextSpan \override TextSpanner #'edge-text
Re: Rather involved TextSpanner edge-text Scheme markup question
Hi Trevor, you may try to use the fake letter f. It has all the necessary ascenders and descenders to fake the basline. I use this with dynamics. pX = #(make-dynamic-script (markup #:combine #:transparent #:dynamic f #:line(#:hspace 0 #:dynamic p #:hspace 0))) HTH Markus ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Rather involved TextSpanner edge-text Scheme markup question
I forgot: more importantly, use \combine to print the markups on top of each other. That may take care of your horizontal space problem. Markus Markus Schneider [EMAIL PROTECTED] schrieb im Newsbeitrag news:[EMAIL PROTECTED] Hi Trevor, you may try to use the fake letter f. It has all the necessary ascenders and descenders to fake the basline. I use this with dynamics. pX = #(make-dynamic-script (markup #:combine #:transparent #:dynamic f #:line(#:hspace 0 #:dynamic p #:hspace 0))) HTH Markus ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond + LaTex (on Mac)
In article [EMAIL PROTECTED], Walter Hofmeister [EMAIL PROTECTED] wrote: On 9/17/06 4:18 AM, nicola [EMAIL PROTECTED] wrote: Hi, I have written a very simple Lilypond engine for TeXShop, which you may find here: http://www.dimi.uniud.it/vitacolo/freesoftware.html Maybe this can help. Regards Nicola In article [EMAIL PROTECTED], Michael J Millett [EMAIL PROTECTED] wrote: Thanks for this Nicola. I have gotten the engine to work here but everytime it runs, it wants to rebuild the font cache. Is there a way to prevent this as it adds considerable time to each compile. Walter Hofmeister I am not much confident about that topic, so others may help you better... Anyway, have you tried to typeset a file with the Lilypond application itself? I remember that the first compilation takes longer because the app does some stuff with fonts. If, instead, you refer to the many warnings about fonts, e.g. dvips: Font CenturySchL-Ital used in file lily-777315663-1.eps is not in the mapping file, that should be normal behaviour (as explained in Ch. 13 of the Lilypond 2.9.7 documentation). Otherwise, can you post the troubling messages? Regards Nicola ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problem with line breaking with polyrhythm
Hi again! From my point of view there is little chance for a workaround. :-( Okay... I admit it was a little late... Try this workaround \score { \new Staff { \time 4/4 a4 a4 \bar \break a4 a4 } \new Staff { \times 4/5 { a4 a4 a4*1/2 s4*1/2 a4 a4 } } } Kind regards, Thies -- Feel free - 10 GB Mailbox, 100 FreeSMS/Monat ... Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: hyphens and spacing lyrics
Hi, is there any way to make sure that lyrics do avoid bar lines BUT the hyphens won't disappear? Jan Janovcik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Fw: hyphens and spacing lyrics
- Forwarded Message From: Jan Janovcik [EMAIL PROTECTED] To: lilypond-user@gnu.org Sent: Monday, September 18, 2006 2:01:09 PM Subject: Re: hyphens and spacing lyrics Hi, is there any way to make sure that lyrics do avoid bar lines BUT the hyphens won't disappear? Jan Janovcik Stupid me, sorry for the error. What I had in mind was: is there any way to make sure that lyrics do avoid bar lines AND the hyphens do disappear? :-) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Rather involved TextSpanner edge-text Scheme markup question
Mats Bengtsson wrote: I expected something like (markup #:pad-to-box '(0 . 0) '(-2 . 2) f) to solve the problem, but apparently it doesn't. If you want to pursue your current approach, try the \combine markup command (and try it first without your current #:hcenter commands, they caused me some confusing results). You're looking for \with-dimensions -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen LilyPond Software Design -- Code for Music Notation http://www.lilypond-design.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: advanced \tag -ing
Hi, thank for the suggestion with \partcombine, it does indeed part of the job, it merges the noteheads, but it also changes the directions of the stems at the same time and that is undesirable. What I would need is something that would merge the noteheads and keep the stems down ( the result of merging is supposed to be voiceTwo ) Is this even possible, any ideas? Jan Janovcik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problem with line breaking with polyrhythm
On 9/18/06, Thies Albrecht [EMAIL PROTECTED] wrote: Hi Libero! and I have to split a measure in the middle...Line breaks only work at proper bar lines. (see http://lilypond.org/doc/v2.9/Documentation/user/lilypond/Line-breaking.html#index-g_t_005cbreak-1560)In your example the third 4:5 in the second staff overlaps the invisible bar. Hi Thies,you are right, but if you take from my example only the voice with the quintuplet (see below), you can see that I can actually split the measure. But this nice feature is not so useful, if you cannot use it inside a polyphonic music. Of course it's clear to me why the constraint cannot be satisfied, in fact I'd like to put the line break in the middle of the duration of a note, that is, in fact, the common situation if you start to have complex music. Maybe a sponsored feature?Libero%%% SNIPPET FOLLOWS %%%\version 2.8.6 \score { % \new Staff { % \time 4/4 % a4 a4 a4 a4 % } \new Staff { \times 4/5 { a4 a4 \bar \break a4 a4 a4 } } } \layout { ragged-right = ##t } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: advanced \tag -ing
it seems you would need the \chordcombine that I've been requesting/thinking about trying to implement, but never gotten to..On 9/18/06, Jan Janovcik [EMAIL PROTECTED] wrote:Hi,thank for the suggestion with \partcombine, it does indeed part of the job, it merges the noteheads, but it also changes the directions of the stems at the same time and that is undesirable. What I would need is something that would merge the noteheads and keep the stems down ( the result of merging is supposed to be voiceTwo ) Is this even possible, any ideas? Jan Janovcik___lilypond-user mailing listlilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Rather involved TextSpanner edge-text Scheme markup question
On 9/18/06, Markus Schneider [EMAIL PROTECTED] wrote: I forgot: more importantly, use \combine to print the markups on top of each other. That may take care of your horizontal space problem. Markus Markus Schneider [EMAIL PROTECTED] schrieb im Newsbeitrag news:[EMAIL PROTECTED] Hi Trevor, you may try to use the fake letter f. It has all the necessary ascenders and descenders to fake the basline. I use this with dynamics. pX = #(make-dynamic-script (markup #:combine #:transparent #:dynamic f #:line(#:hspace 0 #:dynamic p #:hspace 0))) HTH Markus Hi Markus, Thank you so much. The \combine command was precisely what I needed, and the fake f trick works, as well, resulting in cleaner input. Here're the results. %%% BEGIN EDGE TEXT ALIGNMENT SNIPPET 5 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:combine #:transparent f a) (markup #:combine #:transparent f )) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:combine #:transparent f b) (markup #:combine #:transparent f c)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup #:combine #:transparent f d) (markup #:combine #:transparent f )) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:combine #:transparent f d) (markup #:combine #:transparent f f)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #8 } { \override TextSpanner #'edge-text = #(cons (markup #:combine #:transparent f g) (markup #:combine #:transparent f )) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:combine #:transparent f h) (markup #:combine #:transparent f i)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } %%% END EDGE TEXT ALIGNMENT SNIPPET 5 %%% There's a pic attached (baseline-aligned.png) with perfectly aligned spanners and a gamut of lowercase letters all magically baseline-aligned (thanks again, to the ascender- and descender-properties of the f glyph). Mats's and Han-Wen's suggestion to set the dimensions of each bit of edge text explicitly with the \with-dimensions command also works and, out of the box, gives *bottom-aligned* rather than *baseline-aligned* results. %%% BEGIN EDGE TEXT ALIGNMENT SNIPPET 6 %%% \version 2.9.17 \new Staff \with { \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'direction = #down \override TextSpanner #'bound-padding = #1 } \time 3/8 \new Voice { c'8 c'8 c'8 } \new Voice \with { \override TextSpanner #'staff-padding = #3 } { \override TextSpanner #'edge-text = #(cons (markup #:with-dimensions '(0 . 0) '(-2 . 2) a) (markup #:with-dimensions '(0 . 0) '(-2 . 2) )) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:with-dimensions '(0 . 0) '(-2 . 2) b) (markup #:with-dimensions '(0 . 0) '(-2 . 2) c)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #5.5 } { \override TextSpanner #'edge-text = #(cons (markup #:with-dimensions '(0 . 0) '(-2 . 2) d) (markup #:with-dimensions '(0 . 0) '(-2 . 2) )) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:with-dimensions '(0 . 0) '(-2 . 2) e) (markup #:with-dimensions '(0 . 0) '(-2 . 2) f)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } \new Voice \with { \override TextSpanner #'staff-padding = #8 } { \override TextSpanner #'edge-text = #(cons (markup #:with-dimensions '(0 . 0) '(-2 . 2) g) (markup #:with-dimensions '(0 . 0) '(-2 . 2) )) s8 \startTextSpan \override TextSpanner #'edge-text = #(cons (markup #:with-dimensions '(0 . 0) '(-2 . 2) h) (markup #:with-dimensions '(0 . 0) '(-2 . 2) i)) s8 \stopTextSpan \startTextSpan s8 \stopTextSpan } %%% END EDGE TEXT ALIGNMENT SNIPPET 6 %%% See bottom-aligned.png. Playing with the arguments passed into \with-dimensions will probably enable all sorts of interesting results (though I suspect that getting the appearance of baseline alignment will almost certainly be easier with the combined, transparent f). Thank you, everybody. This helps tremendously. -- Trevor Bača [EMAIL PROTECTED] baseline-alignment.png Description: PNG image
Re: Lilypond + LaTex (on Mac)
On 9/18/06 3:07 AM, nicola [EMAIL PROTECTED] wrote: In article [EMAIL PROTECTED], Walter Hofmeister [EMAIL PROTECTED] wrote: On 9/17/06 4:18 AM, nicola [EMAIL PROTECTED] wrote: Hi, I have written a very simple Lilypond engine for TeXShop, which you may find here: http://www.dimi.uniud.it/vitacolo/freesoftware.html Maybe this can help. Regards Nicola In article [EMAIL PROTECTED], Michael J Millett [EMAIL PROTECTED] wrote: Thanks for this Nicola. I have gotten the engine to work here but everytime it runs, it wants to rebuild the font cache. Is there a way to prevent this as it adds considerable time to each compile. Walter Hofmeister I am not much confident about that topic, so others may help you better... Anyway, have you tried to typeset a file with the Lilypond application itself? I remember that the first compilation takes longer because the app does some stuff with fonts. If, instead, you refer to the many warnings about fonts, e.g. dvips: Font CenturySchL-Ital used in file lily-777315663-1.eps is not in the mapping file, that should be normal behaviour (as explained in Ch. 13 of the Lilypond 2.9.7 documentation). Otherwise, can you post the troubling messages? Regards Nicola Hi Nicola, I have found that if you typeset a file with Lilypond itself, the first time it will rebuild the font caches but then after that it will run normally. If you switch to Lilypad for example, it will want to rebuild the caches again, and if you switch back to the Lilypond it will want to rebuild them yet again. The lesson seems to be pick one and stick with it. The problem that I noticed is that TexShop seems to want to rebuild the font caches every time. If there was a way around this it would be great as I really like using TexShop as an editor, even if point and click is not an option. Walter Hofmeister ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Swing Midi
On Friday 15 September 2006 00:47, Han-Wen Nienhuys wrote: David Greene wrote: Hi everyone, I searched the archives and found a few discussions about generating swing-feel MIDI from straight eighths Lily source but the most recent was from 2004. I was thinking about writing a Scheme function to carve up all of the durations into units of eighths, inserting the proper ties to maintain longer notes. Then I could imagine altering the durations as appropriate to implement the swing feel. If you want to make the programming easy, and if it's OK to sacrifice note entry speed, then I'd recommend that you mark all swing notes somehow, e.g. by putting them inside braces, two by two: { c c } { c c } Then it's easy to write a music function that finds all SequentialMusics with two elements, and which manipulates the durations of those elements. If you want to do something more generic (something you can apply on any existing ly score), then you may want to consider using music streams. Music streams are a new concept in 2.9, and nobody has used them yet AFAIK. However, I can try to guide you if you're interested. (I would guess htat this solution can be coded entirely in Scheme) -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to break timing coordination between my ossia and main staffs?
Matt, I'll read that again. I tried using a \markup { \score } and that method would be ideal, but the markup score never rendered past it's first measure. I tested the \score separately and it would render 3 measures, no problem, but when I cutandpaste that same score into a \markup and applied it to a hosting note it only rendered one measure. Is there something that would cause \markup { \score } technique to stop rendering pre-maturely (maybe a bug)? Maybe I needed to set a hard and short line-width and ragged? (My \markup { \score } did not specify a line width and ragged), and the hosting note the markup was applied to was 2/3rds the way across the page already. So maybe \markup thought it was out of room because the score was not ragged? Is this possible? I'll try that technique again too with a hard and short ragged line-width, markup seems like the better way to go for an un-coordinated ossia. Whereas a separate context is better for a timed/substitute-measure ossia because it will line up the notes and bars vertically. thanks Rick Mats Bengtsson-4 wrote: I hope you have read the section on Polymetric notation. It shows several methods to modify the synchronization between staves. Yet another alternative is to use ^\markup{\score{...}} /Mats Rick Hansen (aka RickH) wrote: I'm using a user-created staff context to accepts ossia notes mid-stream (see OssiaUnsynchronized below). I have a piece where my ossia length will have a different number of measures than the main staff (more or fewer). So for example if the ossia passage has 2 measures to the main staffs 1 measure I would like the ossia and main staffs to be oblivious to each others timing but each staff still know its own timing. Below is an example where I would want to see a 2 measure ossia spread under the main score freely (IOW I dont want it to add the blank measure to the main staff): How can I make my ossia context totally oblivious to the timing that is going on in the main score? So that the ossia does it's own thing and the main staff does it's own thing measure-wise. I tried some hacking but still could not get what I wanted. Eventually I want my template to have 2 different kind of ossia contexts (see OssiaUnsynchronized and OssiaSynchronized below), one with coordinated timing (OssiaSynchronized) and one that is free form and ignores the main staff timing (OssiaUnsynchronized the object of my question). The latter should simply render a chunk of music without affecting the main staff at all (my how-to question). Thanks for any help, the example below will run as-is:. %EXAMPLE BEGIN \version 2.9.17 \include english.ly % Music file myMusic = \relative c'' { | e4 e e e %\set timing = ##f { a b c d } \context OssiaUnsynchronized { a b c d d c b a } %\set timing = ##t | b b b b } % Template file \score { \myMusic \layout { \context { \Score \remove Span_bar_engraver \override SpanBar #'break-visibility = #center-invisible \remove System_start_delimiter_engraver \accepts OssiaUnsynchronized \accepts OssiaSynchronized } \context { \Staff \name OssiaUnsynchronized \remove Clef_engraver \remove Time_signature_engraver \remove Key_engraver \remove Timing_translator } \context { \Staff \name OssiaSynchronized \remove Clef_engraver \remove Time_signature_engraver \remove Key_engraver } } } % EXAMPLE END -- = Mats Bengtsson Signal Processing Signals, Sensors and Systems Royal Institute of Technology SE-100 44 STOCKHOLM Sweden Phone: (+46) 8 790 8463 Fax: (+46) 8 790 7260 Email: [EMAIL PROTECTED] WWW: http://www.s3.kth.se/~mabe = ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user -- View this message in context: http://www.nabble.com/How-to-break-timing-coordination-between-my-ossia-and-main-staffs--tf2288777.html#a6366057 Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Orchestral score file organization
Glad to help. Are you using the Nabble mirror for your posts? Because I dont think your posts are reaching the actual gnu lilypond list. I'm getting a big yellow warning message on all your posts as viewed through the Nabble mirror. You may want to re-subscribe and confirm your email address with the actual gnu lilypond users list. (just for your information) OnionRingOfDoom wrote: Rick Hansen (aka RickH) wrote: Here is a simple example of separating music from structure, just make sure all the music goes into variables, then the templates only reference variables, not any particular songs music: Then after that, there's the actual music. Each file has that part up there in common, with only the file name and the instrument name changed. If I need to transpose anything or use a different clef, I put that below the \set Score.skipBars line usually. So, which part of all that goes in which files you talked about? O now it makes sense! I didn't know I could assign things like time signiture, key, and other global items to variables and use them throughout a piece. This helps a lot, thanks! -- View this message in context: http://www.nabble.com/Orchestral-score-file-organization-tf2288589.html#a6368078 Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problem with line breaking with polyrhythm
Hi,I've also found this quite interesting: lily can accept something like this (see below), that is quite amazing compared the amount of tweaks that are necessary to obtain the same in other software (if my memory is good!), but still it cannot make a line break. But what I would like to have is a line break based not necessarely on barlines but on specific moments in time.Regards,Liberoibook g4 mac os 10.4.7lily 2.9.17%%% SNIPPET %%% \version 2.9.17 \score { \set Score.proportionalNotationDuration = #(ly:make-moment 1 16) \new Staff {\time 4/4 a4 a4 a4 a4 \break a4 a4 a4 a4 } \new Staff { c4 c4 c4 \times 2/3 { a4 a4 a4 } c4 c4 c4 } }\layout {ragged-right = ##t } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problem with line breaking with polyrhythm
Libero Mureddu wrote: Hi, I've also found this quite interesting: lily can accept something like this (see below), that is quite amazing compared the amount of tweaks that are necessary to obtain the same in other software (if my memory is good!), but still it cannot make a line break. But what I would like to have is a line break based not necessarely on barlines but on specific moments in time. Is it really good typesetting practice to have a line break in the middle of the duration of a note? To me it seems like a very good method to confuse the poor musicians. ;-) Since the main goal of LilyPond is to support typesetting of music from 19th century, the current limitation does make sense. On the other hand, you don't have to consider modern music to find examples where such practice was used. In the baroque period, it was fairly common to have dotted notes that crossed bar lines and the dot was then often typeset to the right of the bar line. I can promise you that it's extremely confusing the first time you see it, but anyway not so hard to get used to. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problem with line breaking with polyrhythm
Libero Mureddu wrote: you are right, but if you take from my example only the voice with the quintuplet (see below), you can see that I can actually split the measure. But this nice feature is not so useful, if you cannot use it inside a polyphonic music. Of course it's clear to me why the constraint cannot be satisfied, in fact I'd like to put the line break in the middle of the duration of a note, that is, in fact, the common situation if you start to have complex music. I think you're looking for Forbid_line_break_engraver. Try removing it. -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen LilyPond Software Design -- Code for Music Notation http://www.lilypond-design.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problem with line breaking with polyrhythm
On 9/18/06, Han-Wen Nienhuys [EMAIL PROTECTED] wrote: I think you're looking for Forbid_line_break_engraver. Try removing it.Thanks, I'll try with it.Libero --Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwenLilyPond Software Design-- Code for Music Notation http://www.lilypond-design.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Lyrics ties
Hi, I'm typesetting a voice/piano composition. Sometimes, the end of a word and the start of the next word are song in a single note. Lily just insert both below that note. Is it possible to connect those words using something similar to a tie between notes, to emphasize the fact that both belong to the same note? Thanks, Maurício ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lyrics ties
Maurício [EMAIL PROTECTED] writes: Hi, I'm typesetting a voice/piano composition. Sometimes, the end of a word and the start of the next word are song in a single note. Lily just insert both below that note. Is it possible to connect those words using something similar to a tie between notes, to emphasize the fact that both belong to the same note? If you have a Unicode compliant editor, you can try using the undertie character ‿ (U+203F). -- Michael Welsh Duggan ([EMAIL PROTECTED]) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user