Re: Strumming rhythm for chord progression
Christian Henning wrote: I'm struggling with sus4 chords. ... unexpected STRINGsus4 This is notemode complaining. It is the default input mode: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Input-modes sus4 is meant only for chord mode. But note mode is digesting your music in the \improvisationOn part. If you stay with (the implicit) note mode in the \improvisationOn part, you need to remove all modifiers like :sus4 But maybe you are trying to keep the music exactly the same, e.g. you want to use a music variable. In that case you could specify chord mode here too. That turns out badly because \improvisationOn expects single notes. Cheers, Robin ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Strumming rhythm for chord progression
Hello Christian, everytime you want to enter chord, you have to put it in \chordmode. This version compiled in my Lilypond: -- \version "2.12.2" \header { title = " \"Creep\" by Radiohead" } << \new ChordNames { \chordmode { g1 g1:sus4 } } \new Voice \with { \consists Pitch_squash_engraver } \relative c'' { %\improvisationOn g1 %next line should work in chordmode \chordmode { g1:sus4 } } >> -- The \improvisationOn is commented out, because I am not used to it ;) and it doesn't look like it is doing the right thing in chordmode(?). The g1:sus4 looks the same as the g1. Cheers, Jan-Peter. Am 14.08.2009 um 02:02 schrieb Christian Henning: Hi there, first post ever. I'm trying to "engrave" a strumming pattern for a simple chord progression. I can see how a works for major chords but I'm struggling with sus4 chords. Here is what I have: \version "2.12.2" \header { title = " \"Creep\" by Radiohead" } << \new ChordNames { \chordmode { g g:sus4 } } \new Voice \with { \consists Pitch_squash_engraver } \relative c'' { \improvisationOn g1 %next line doesn't work g1:sus4 } This is what the log tells me: C:/Code Samples/music/songs/Radiohead/creep_1.ly:17:3: error: syntax error, unexpected STRING g1: sus4 C:/Code Samples/music/songs/Radiohead/creep_1.ly:5:0: error: errors found, ignoring music expression Can anyone help me out? Thanks, Christian ___ lilypond-user mailing list lilypond-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: Strumming rhythm for chord progression
Hi Christian, I think you just forgot one closing curly brace ("}"). This works for me: \version "2.12.2" << \new ChordNames { \chordmode { g1 g2:sus4 g } } \new Voice \with { \consists "Pitch_squash_engraver" } { \relative c'' { \improvisationOn g4 g8. g16 g8 g~g16 g g g g8. g16 g8 g r g g g } } >> You should indent your code and your braces. It's easier to read and to find errors. HTH patrick Original-Nachricht > Datum: Thu, 13 Aug 2009 20:02:20 -0400 > Von: Christian Henning > An: lilypond-user@gnu.org > Betreff: Strumming rhythm for chord progression > Hi there, first post ever. I'm trying to "engrave" a strumming pattern > for a simple chord progression. I can see how a works for major chords > but I'm struggling with sus4 chords. > > Here is what I have: > > \version "2.12.2" > \header { > title = " \"Creep\" by Radiohead" > } > << >\new ChordNames { > \chordmode { g g:sus4 } > > } > > \new Voice \with { > \consists Pitch_squash_engraver > } \relative c'' { > \improvisationOn > g1 > %next line doesn't work > g1:sus4 > } > >> > > > This is what the log tells me: > > C:/Code Samples/music/songs/Radiohead/creep_1.ly:17:3: error: syntax > error, unexpected STRING > g1: >sus4 > > C:/Code Samples/music/songs/Radiohead/creep_1.ly:5:0: error: errors > found, ignoring music expression > > Can anyone help me out? > > Thanks, > Christian > > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > http://lists.gnu.org/mailman/listinfo/lilypond-user -- Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 - sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: huge file with Japanese characters
2009/8/13 Werner LEMBERG : > This is a bug in gs. If the Japanese font contains embedded bitmaps, > they are not subsetted (as done with all outline glyphs) in the PDF > but output completely. The recent version of gs, 8.70, should simply > strip these bitmaps,[1] yielding much smaller PDF files. It does not work for me with ghostscript 8.70. The size of files are the same. -- Michel Villeneuve 43, faubourg Jean Jaurès 07700 Bourg St-Andéol tel : (+33)(0)961468658 / (+33)(0)601981018 GnuPG Key ID 0019690E ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Strumming rhythm for chord progression
Hi all, thanks a lot for your reply. I think I understand now. Inside the \improvisationOn section I don't have to reuse the real chord name. A placeholder might be sufficient? So instead of writing g1:sus I can just use g1. All I want in the end is to have the chord name to appear above the stave only. Am I on the right track? Thanks again. Lilypond is a great tool! Christian On Fri, Aug 14, 2009 at 5:12 AM, Patrick Schmidt wrote: > Hi Christian, > > I think you just forgot one closing curly brace ("}"). This works for me: > > \version "2.12.2" > << > \new ChordNames { > \chordmode { > g1 g2:sus4 g > } > } > > \new Voice \with { > \consists "Pitch_squash_engraver" > } { > \relative c'' { > \improvisationOn > g4 g8. g16 g8 g~g16 g g g > g8. g16 g8 g r g g g > } > } >>> > > You should indent your code and your braces. It's easier to read and to find > errors. > > HTH > patrick > Original-Nachricht >> Datum: Thu, 13 Aug 2009 20:02:20 -0400 >> Von: Christian Henning >> An: lilypond-user@gnu.org >> Betreff: Strumming rhythm for chord progression > >> Hi there, first post ever. I'm trying to "engrave" a strumming pattern >> for a simple chord progression. I can see how a works for major chords >> but I'm struggling with sus4 chords. >> >> Here is what I have: >> >> \version "2.12.2" >> \header { >> title = " \"Creep\" by Radiohead" >> } >> << >> \new ChordNames { >> \chordmode { g g:sus4 } >> >> } >> >> \new Voice \with { >> \consists Pitch_squash_engraver >> } \relative c'' { >> \improvisationOn >> g1 >> %next line doesn't work >> g1:sus4 >> } >> >> >> >> >> This is what the log tells me: >> >> C:/Code Samples/music/songs/Radiohead/creep_1.ly:17:3: error: syntax >> error, unexpected STRING >> g1: >> sus4 >> >> C:/Code Samples/music/songs/Radiohead/creep_1.ly:5:0: error: errors >> found, ignoring music expression >> >> Can anyone help me out? >> >> Thanks, >> Christian >> >> >> ___ >> lilypond-user mailing list >> lilypond-user@gnu.org >> http://lists.gnu.org/mailman/listinfo/lilypond-user > > -- > Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 - > sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser > ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Strumming rhythm for chord progression
On Aug 14, 2009, at 9:41 AM, Christian Henning wrote: Hi all, thanks a lot for your reply. I think I understand now. Inside the \improvisationOn section I don't have to reuse the real chord name. A placeholder might be sufficient? So instead of writing g1:sus I can just use g1. All I want in the end is to have the chord name to appear above the stave only. Am I on the right track? Much IMHO simpler would be to use following template which was sent to me by someone else on the list when I first started using LilyPond. It works by having a section for inputting the chords (the "harmonies" variable), another section for inputting notes (the "melody" variable) and then a section that puts them together on the page (the "score" variable). Substitute your LilyPond version if you are not using 2.12.2. For the melody, if you are not going to transcribe that, just put it a whole note rest for each bar. Of course, I think that you should score the melody too, learning to transcribe that kind of thing is an essential skill for any serious musician. If you've scored the melody, then you can put in the lyrics and have a complete lead sheet. The lyrics go in the / addlyrics block; if you put nothing in there, LilyPond will complain but will still render correctly, or you can delete the /addlyrics block and it's curly braces. Hope this helps! \version "2.12.2" #(ly:set-option 'delete-intermediate-files #t) % deletes the .ps file automatically \paper { indent = 0.0 ragged-last = ##t } \header { title = "" composer = "" meter = "" copyright = "" } harmonies = \chordmode { % chords go here } melody = \relative c' { \override Staff.TimeSignature #'style = #'() \time 4/4 \clef treble \key % melody notes or a lot of rests go here } \addlyrics { % you can delete \addlyrics and the two curly braces } \score { << \new ChordNames { \set chordChanges = ##t \harmonies } \new Staff \melody >> } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: markup help
On 14.08.2009, at 07:52, Mark Polesky wrote: James E. Bailey wrote: Reading the documentation, I don't understand why this doesn't work: \version "2.12.2" \markup { \musicglyph #"scripts.zero" \musicglyph #"scripts.one" ... } The glyph names for the numbers don't begin with "scripts.". Do this instead: \markup { \musicglyph #"zero" \musicglyph #"one" ... } Incidentally, you can see all the correct glyph names here: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/The-Feta- font Though I reorganized them for 2.13. Hopefully you'll find this version easier to read: http://kainhofer.com/~lilypond/Documentation/notation/index_54.html - Mark Thank you, incidentally, after some trial and error (after I sent the email) I figured that out. Although I should point out, neither documentation source says that the glyph names for the numbers don't begin with "scripts". James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: markup help
On 8/14/09 9:54 AM, "James E. Bailey" wrote: >> >> Though I reorganized them for 2.13. Hopefully you'll find this >> version easier to read: >> http://kainhofer.com/~lilypond/Documentation/notation/index_54.html >> >> - Mark >> >> > > Thank you, incidentally, after some trial and error (after I sent the email) I > figured that out. Although I should point out, neither documentation source > says that the glyph names for the numbers don't begin with "scripts". > The list of all glyphs says the numbers are "one", "two", etc. The fermatas are "scripts.ufermata", "scripts.dfermata", etc. Where does this imply that the numbers should be "scripts.one", not "one"? How could we make the documentation clearer? Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: markup help
James E. Bailey wrote: > Thank you, incidentally, after some trial and error (after I > sent the email) I figured that out. Although I should point out, > neither documentation source says that the glyph names for the > numbers don't begin with "scripts". Are you referring to the section NR 1.2.5 "Rehearsal marks"? http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Bars#Rehearsal-marks In that section, it says: See The Feta font, for a list of symbols which may be printed with \musicglyph. Okay, I guess I can imagine some confusion. If you click on the "Feta font" link, you're taken to an appendix that starts with an example which happens to also use the "script." prefix: The following symbols are available in the Emmentaler font and may be accessed directly using text markup such as g^\markup { \musicglyph #"scripts.segno" }, see Formatting text. I think a good solution might be to replace the "Feta font" link in NR 1.2.5 "Rehearsal marks" with a link to NR B.8.4 "Music", such as: For more information on using the \musicglyph command, see "Music". Clicking on "Music" would take you here: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Music#Music And that section accomplishes two things: it shows that not all glyph names start with "scripts.", and it links to "the Feta font".Would that be better? One last thing, you can always try the command index (NR appendix E) if you get stuck with a command: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/LilyPond-command-index If you look up "\musicglyph" there you'll find two references, one of which is to the NR B.8.4 "Music" section I mentioned earlier. But now, of course, I see another problem. If you look up "musicglyph" (without the backslash), you won't find it. Grrr. Work-in-progress... - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Strumming rhythm for chord progression
Tim McNamara wrote: > Much IMHO simpler would be to use following template which was > sent to me by someone else on the list when I first started > using LilyPond. An LSR search for "harmonies" yields some related snippets: http://lsr.dsi.unimi.it/LSR/Search?q=harmonies - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: markup help
On 14.08.2009, at 19:11, Carl Sorensen wrote: On 8/14/09 9:54 AM, "James E. Bailey" wrote: Though I reorganized them for 2.13. Hopefully you'll find this version easier to read: http://kainhofer.com/~lilypond/Documentation/notation/index_54.html - Mark Thank you, incidentally, after some trial and error (after I sent the email) I figured that out. Although I should point out, neither documentation source says that the glyph names for the numbers don't begin with "scripts". The list of all glyphs says the numbers are "one", "two", etc. The fermatas are "scripts.ufermata", "scripts.dfermata", etc. Where does this imply that the numbers should be "scripts.one", not "one"? How could we make the documentation clearer? Thanks, Carl No problems, in the 2.12 documentation, b.6 The Feta font. The first sentence there is: The following symbols are available in the Emmentaler font and may be accessed directly using text markup such as g^\markup { \musicglyph #"scripts.segno" }, see Formatting text. In the one on kainhofer it's section a.6 The Feta font: The following symbols are available in the Emmentaler font and may be accessed directly using text markup such as g^\markup { \musicglyph #"scripts.segno" }, see Formatting text. James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: markup help
On 8/14/09 12:27 PM, "James E. Bailey" wrote: > > On 14.08.2009, at 19:11, Carl Sorensen wrote: > >> >> >> >> On 8/14/09 9:54 AM, "James E. Bailey" wrote: >> >> Though I reorganized them for 2.13. Hopefully you'll find this version easier to read: http://kainhofer.com/~lilypond/Documentation/notation/index_54.html - Mark >>> >>> Thank you, incidentally, after some trial and error (after I sent the email) >>> >> I >>> figured that out. Although I should point out, neither documentation source >>> says that the glyph names for the numbers don't begin with "scripts". >>> >>> >> >> The list of all glyphs says the numbers are "one", "two", etc. The fermatas >> are "scripts.ufermata", "scripts.dfermata", etc. >> >> Where does this imply that the numbers should be "scripts.one", not "one"? >> How could we make the documentation clearer? >> >> Thanks, >> >> Carl >> >> > > > No problems, in the 2.12 documentation, b.6 The Feta font. The first sentence > there is: > The following symbols are available in the Emmentaler font and may be accessed > directly using text markup such as g^\markup { \musicglyph #"scripts.segno" }, > see Formatting text. > > In the one on kainhofer it's section a.6 The Feta font: > The following symbols are available in the Emmentaler font and may be accessed > directly using text markup such as g^\markup { \musicglyph #"scripts.segno" }, > see Formatting text. > OK, I've tried to be more clear by referencing the glyph names "as shown in the table below", and I've included two examples: the current segno example and one that uses five. The fix is now pushed to git. Thanks Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
horizontal/vertical text spanner alignment
Dear all, how can I align a text spanner vertically and horizontally to get something like this ➂---➁? Here is a tiny example: \version "2.13.3" scale = \relative c'' { %\once \override TextSpanner #'(bound-details left Y) = #5 %\once \override TextSpanner #'(bound-details right Y) = #5 \startTextSpan \stopTextSpan } \score { \new Staff \scale \layout {} } I fiddled with \once \override TextSpanner #'(bound-details left/right Y) = #[±0-9] but to no avail. Any hint is greatly appreciated. Thanks for your help! patrick -- Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02 ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: horizontal/vertical text spanner alignment
2009/8/14 Patrick Schmidt : > how can I align a text spanner vertically and horizontally to get something > like this ➂---➁? Here is a tiny example: You need to make the string numbers part of the text spanner using '(bound-details left text)/'(bound-details right text). Take a look at this snippet: http://lsr.dsi.unimi.it/LSR/Item?u=1&id=616 Regards, Neil ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
complex time signatures: scheme help
Look at that, even I need scheme. I wanted to have the time signature be 3+3+2 8 Apparently this is where Scheme is necessary. I've found the one that makes it 3+3+2 8 8 8 in the documentation but I don't understand how to make the change. #(define ((compound-time one two num) grob) (grob-interpret-markup grob (markup #:override '(baseline-skip . 0) #:number (#:line ( (#:column (one num)) #:vcenter "+" (#:column (two num ))) Can someone just do that for me? James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
James E. Bailey wrote: > Apparently this is where Scheme is necessary. I've found the one > that makes it > 3+3+2 > 8 8 8 > > in the documentation but I don't understand how to make the change. > > Can someone just do that for me? Umm, that's probably not the best way of asking for help... We usually prefer "can someone point me in the right direction" or something like that... The example you're referring to is called "Compound time signatures" on this page: http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Displaying-rhythms#Time-signature Anyway, look at the scheme code. The compound-time procedure takes three arguments, one two and num. In the doc example, the stencil override is: #(compound-time "2" "3" "8") That means one is "2", two is "3", and num is "8". You see where it says (#:column (one num)) in the scheme procedure? That means that those two arguments (one and num) are put in a column: 2 8 You see where it says #:vcenter "+"? That means that the "+" is put in the vertical center. You can see what happens when you remove the #:vcenter command. So, you have to make a couple of changes. 1) you need another argument in your scheme procedure (3+2+2 as compared to 2+3). * you might call this additional argument "three" * logically, you should probably put it between "two" and "num" 2) so now you need to make sure you pass four values to the procedure within your music expression, instead of the 3 values there now. (you need to change this)... #(compound-time "2" "3" "8") 3) decide if you want (#:column (one num)) ...or just... one etc. 4) decide if you want to keep the #:vcenter command 5) somehow incorporate your new argument (three) in with the rest of the arguments. Let me know if you're still having trouble after trying this. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
On 14.08.2009, at 23:59, Mark Polesky wrote: Umm, that's probably not the best way of asking for help... We usually prefer "can someone point me in the right direction" or something like that... Usually I do, except here, a point in the right direction wouldn't be sufficient for me. I kinda need templates with easy to figure out changes when it comes to Scheme hacks. Anyway, look at the scheme code. The compound-time procedure takes three arguments, one two and num. In the doc example, the stencil override is: #(compound-time "2" "3" "8") That means one is "2", two is "3", and num is "8". You see where it says (#:column (one num)) in the scheme procedure? That means that those two arguments (one and num) are put in a column: 2 8 You see where it says #:vcenter "+"? That means that the "+" is put in the vertical center. You can see what happens when you remove the #:vcenter command. So, you have to make a couple of changes. 1) you need another argument in your scheme procedure (3+2+2 as compared to 2+3). * you might call this additional argument "three" * logically, you should probably put it between "two" and "num" Got it, #(define ((compound-time one two three num) grob) 2) so now you need to make sure you pass four values to the procedure within your music expression, instead of the 3 values there now. (you need to change this)... #(compound-time "2" "3" "8") Got it, \override Staff.TimeSignature #'stencil = #(compound-time "3" "3" "2" "8") 3) decide if you want (#:column (one num)) ...or just... one etc. This bit I don't understand. (#:column (one num)) would be the equivalent of \markup \center-column { one num }, right? How would I do \markup \center-column {\line {one + two + three} num }? 4) decide if you want to keep the #:vcenter command Probably not. I'm guessing. 5) somehow incorporate your new argument (three) in with the rest of the arguments. This bit confuses me. Isn't it incorporated by adding "three" everywhere? Thank you James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
RE: horizontal/vertical text spanner alignment
See attached. I already had a music function for indicating string numbers in guitar scores, and it only took a minute or two to modify it to have a different number on each end of the spanner. Nick > -Original Message- > From: lilypond-user-bounces+nick.payne=internode.on@gnu.org > [mailto:lilypond-user-bounces+nick.payne=internode.on@gnu.org] On > Behalf Of Patrick Schmidt > Sent: Saturday, 15 August 2009 5:08 AM > To: lilypond-user@gnu.org > Subject: horizontal/vertical text spanner alignment > > Dear all, > > how can I align a text spanner vertically and horizontally to get > something like this ➂---➁? Here is a tiny example: > > > \version "2.13.3" > > scale = \relative c'' { > %\once \override TextSpanner #'(bound-details left Y) = #5 > %\once \override TextSpanner #'(bound-details right Y) = #5 > \startTextSpan \stopTextSpan > } > > \score { > \new Staff \scale > \layout {} > } > > I fiddled with \once \override TextSpanner #'(bound-details left/right > Y) = #[±0-9] but to no avail. > > Any hint is greatly appreciated. > > Thanks for your help! > > patrick > -- > Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate > für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02 > > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > http://lists.gnu.org/mailman/listinfo/lilypond-user > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.5.392 / Virus Database: 270.13.57/2303 - Release Date: > 08/14/09 18:10:00 <>\version "2.13.3" stringUp = #(define-music-function (parser location stringnuma stringnumb osp shorten adjBreak adjEnd) (string? string? number? pair? number? number?) #{ % set osp to 999 if spanner is colliding with another element % this will position the spanner outside all other elements % can be normally be set to zero \once \override TextSpanner #'outside-staff-priority = #$osp \once \override TextSpanner #'bound-details #'left #'text = \markup \bold \teeny \circle { \finger $stringnuma } \once \override TextSpanner #'font-shape = #'upright % setup dashed line and draw a bracket edge on RHS \once \override TextSpanner #'dash-period = #0.8 \once \override TextSpanner #'dash-fraction = #0.6 \once \override TextSpanner #'thickness = #0.8 \once \override TextSpanner #'bound-details #'right #'text = \markup \bold \teeny \circle { \finger $stringnumb } % set alignment of line with reference to text \once \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #CENTER \once \override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #CENTER \once \override TextSpanner #'bound-details #'left #'padding = #(car $shorten) \once \override TextSpanner #'bound-details #'right #'padding = #(cdr $shorten) % allow adjustment of line end when it wraps to following stave \once \override TextSpanner #'bound-details #'right-broken #'padding = #$adjEnd % adjust LH end of line when it wraps to following stave so that it doesn't % extend to the left of the notes on the stave \once \override TextSpanner #'bound-details #'left-broken #'X = #$adjBreak % optional override to remove text and bracket edge at line breaks % \once \override TextSpanner #'bound-details #'left-broken #'text = ##f \once \override TextSpanner #'bound-details #'right-broken #'text = ##f #}) \relative c' { \stringUp "2" "3" #0 #'(0 . -0.5) #5 #1 e\startTextSpan e e e\stopTextSpan } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
On 8/14/09 4:12 PM, "James E. Bailey" wrote: > > On 14.08.2009, at 23:59, Mark Polesky wrote: >> >> Umm, that's probably not the best way of asking for help... We >> usually prefer "can someone point me in the right direction" or >> something like that... > > Usually I do, except here, a point in the right direction wouldn't be > sufficient for me. I kinda need templates with easy to figure out changes when > it comes to Scheme hacks. > >> Anyway, look at the scheme code. The compound-time procedure takes >> three arguments, one two and num. In the doc example, the stencil >> override is: >> #(compound-time "2" "3" "8") >> That means one is "2", two is "3", and num is "8". >> >> You see where it says (#:column (one num)) in the scheme >> procedure? That means that those two arguments (one and num) are >> put in a column: >> 2 >> 8 >> >> You see where it says #:vcenter "+"? That means that the "+" is >> put in the vertical center. You can see what happens when you >> remove the #:vcenter command. >> >> So, you have to make a couple of changes. >> >> 1) you need another argument in your scheme procedure (3+2+2 as >>compared to 2+3). >>* you might call this additional argument "three" >>* logically, you should probably put it between "two" and "num" > Got it, #(define ((compound-time one two three num) grob) >> >> 2) so now you need to make sure you pass four values to the >>procedure within your music expression, instead of the 3 values >>there now. >>(you need to change this)... #(compound-time "2" "3" "8") > Got it, \override Staff.TimeSignature #'stencil = #(compound-time "3" "3" > "2" "8") >> >> 3) decide if you want >>(#:column (one num)) >>...or just... >>one >>etc. > This bit I don't understand. (#:column (one num)) would be the equivalent of > \markup \center-column { one num }, right? How would I do \markup > \center-column {\line {one + two + three} num }? See Notation Reference 6.4.1 Markup construction in Scheme (markup #:center-column ((#:line (one two three)) num)) > >> >> 4) decide if you want to keep the #:vcenter command > Probably not. I'm guessing. >> >> 5) somehow incorporate your new argument (three) in with the rest >>of the arguments. > This bit confuses me. Isn't it incorporated by adding "three" everywhere? Yep, you seem to have it right. Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
James E. Bailey wrote: > > 3) decide if you want > >(#:column (one num)) > >...or just... > >one > >etc. > This bit I don't understand. (#:column (one num)) would be the > equivalent of \markup \center-column { one num }, right? > How would I do > \markup \center-column {\line {one + two + three} num }? I think it's better to line it up this way instead: \markup { \line { one + \center-column { two num } + three} } > > 4) decide if you want to keep the #:vcenter command. > Probably not. I'm guessing. Well, the usual placement of "+" is on the middle line when all the denominators are present, but if only one denominator is there, the plus signs usually get centered between the numerators. > > 5) somehow incorporate your new argument (three) in with the rest > >of the arguments. > This bit confuses me. Isn't it incorporated by adding "three" > everywhere? I meant specifically in this part of the code: (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num I was just spelling it out. You probably just figured it out before reading that far. Let me know once you get it. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
On 15.08.2009, at 00:30, Carl Sorensen wrote: 3) decide if you want (#:column (one num)) ...or just... one etc. This bit I don't understand. (#:column (one num)) would be the equivalent of \markup \center-column { one num }, right? How would I do \markup \center-column {\line {one + two + three} num }? See Notation Reference 6.4.1 Markup construction in Scheme (markup #:center-column ((#:line (one two three)) num)) 4) decide if you want to keep the #:vcenter command Probably not. I'm guessing. 5) somehow incorporate your new argument (three) in with the rest of the arguments. This bit confuses me. Isn't it incorporated by adding "three" everywhere? Yep, you seem to have it right. Carl Okay, now I have #(define ((compound-time one two three num) grob) (grob-interpret-markup grob (markup #:override '(baseline-skip . 0) #:number (markup #:center-column ((#:line (one "+" two "+" three)) num)) ))) Which looks like just a really complicated way of doing \override Staff.TimeSignature #'stencil = #ly:text- interface::print \override Staff.TimeSignature #'text = \markup { \center-column { \line { \musicglyph #"three" \musicglyph #"plus" \musicglyph #"three" \musicglyph #"plus" \musicglyph #"two" } \line { \musicglyph #"eight" } } (my initial attempt) Neither of which moves the Time signature to adjust for the wider space of "3+3+2". So, is there a better way of achieving this? James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
James E. Bailey wrote: > > 3) decide if you want > >(#:column (one num)) > >...or just... > >one > >etc. > This bit I don't understand. (#:column (one num)) would be the > equivalent of \markup \center-column { one num }, right? > How would I do > \markup \center-column {\line {one + two + three} num }? Now I think I understand your confusion. Without columns, time-signature markups get placed in the *top* half of the staff, not the center. With columns, subsequent markups are placed below the preceding markup. You can try (#:column ("1" "2" "3")) to observe this. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Am Freitag, 14. August 2009 23:13:18 schrieb James E. Bailey: > Look at that, even I need scheme. I wanted to have the time signature be > > 3+3+2 > 8 > > Apparently this is where Scheme is necessary. I've found the one that > makes it > 3+3+2 > 8 8 8 > > in the documentation Attached is my current code for general complex time signatures (arbitrary # of fractions, arbitrary # of numerators). I have not yet tried to get it into master, because the auto-beaming does not yet follow the signature. Cheers, Reinhold - -- - -- Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/ * Financial & Actuarial Math., Vienna Univ. of Technology, Austria * http://www.fam.tuwien.ac.at/, DVR: 0005886 * LilyPond, Music typesetting, http://www.lilypond.org -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) iD8DBQFKhelCTqjEwhXvPN0RAu0NAKCrYbZ4HAD73AHH8w3eNYmYSXvQ4QCfRQAd yoTlxbPOM/e6ZJgxzuCRTk0= =rHjY -END PGP SIGNATURE- \version "2.11.65" % % Formatting of (possibly complex) compound time signatures % #(define-public (insert-markups l m) (let* ((ll (reverse l))) (let join-markups ((markups (list (car ll))) (remaining (cdr ll))) (if (pair? remaining) (join-markups (cons (car remaining) (cons m markups)) (cdr remaining)) markups % Use a centered-column inside a left-column, because the centered column % moves its reference point to the center, which the left-column undoes. % The center-column also aligns its contented centered, which is not undone... #(define-public (format-time-fraction time-sig-fraction) (let* ((revargs (reverse (map number->string time-sig-fraction))) (den (car revargs)) (nums (reverse (cdr revargs (make-override-markup '(baseline-skip . 0) (make-number-markup (make-left-column-markup (list (make-center-column-markup (list (make-line-markup (insert-markups nums "+")) den #(define-public (format-complex-compound-time time-sig) (let* ((sigs (map format-time-fraction time-sig))) (make-override-markup '(baseline-skip . 0) (make-number-markup (make-line-markup (insert-markups sigs (make-vcenter-markup "+"))) #(define-public (format-compound-time time-sig) (cond ((not (pair? time-sig)) (null-markup)) ((pair? (car time-sig)) (format-complex-compound-time time-sig)) (else (format-time-fraction time-sig % % Measure length calculation of (possibly complex) compound time signatures % #(define-public (calculate-time-fraction time-sig-fraction) (let* ((revargs (reverse time-sig-fraction)) (den (car revargs)) (nums (cdr revargs))) (ly:make-moment (apply + nums) den))) #(define-public (calculate-complex-compound-time time-sig) (let* ((sigs (map calculate-time-fraction time-sig))) (let add-moment ((moment ZERO-MOMENT) (remaining sigs)) (if (pair? remaining) (add-moment (ly:moment-add moment (car remaining)) (cdr remaining)) moment #(define-public (calculate-compound-measure-length time-sig) (cond ((not (pair? time-sig)) (ly:make-moment 4 4)) ((pair? (car time-sig)) (calculate-complex-compound-time time-sig)) (else (calculate-time-fraction time-sig % % Beat Grouping % % #(define-public (calculate-compound-base-beat-full time-sig) % (let* ((den (map last time-sig))) % (apply max den))) % #(define-public (calculate-compound-beat-grouping time-sig beat) % (cond % ((not (pair? time-sig)) 4) % ((pair? (car time-sig)) (calculate-compound-base-beat-full time-sig)) % (else (calculate-compound-base-beat-full (list time-sig)) % % Base beat lenth % #(define-public (calculate-compound-base-beat-full time-sig) (let* ((den (map last time-sig))) (apply max den))) #(define-public (calculate-compound-base-beat time-sig) (ly:make-moment 1 (cond ((not (pair? time-sig)) 4) ((pair? (car time-sig)) (calculate-compound-base-beat-full time-sig)) (else (calculate-compound-base-beat-full (list time-sig)) % % The music function to set the complex time signat
Re: complex time signatures: scheme help
On 8/14/09 4:46 PM, "Reinhold Kainhofer" wrote: > Attached is my current code for general complex time signatures (arbitrary # > of fractions, arbitrary # of numerators). I have not yet tried to get it into > master, because the auto-beaming does not yet follow the signature. How should auto-beaming respond to a compound time signature? In particular, how should ((2 3 8) (4 8)) be different from (2 3 4 8)? I think with the new autobeaming code it would not be hard to get the top-level beaming right. BeatLength, on the other hand, probably doesn't have sufficient structure built into it to handle ((1 2 3 4 8) (2 4) (2 3 8)), because for that time signature, beatLength should vary with measure position. I'm willing to take a shot at fixing the auto-beaming, if you'd like. Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
On 15.08.2009, at 00:46, Reinhold Kainhofer wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Am Freitag, 14. August 2009 23:13:18 schrieb James E. Bailey: Look at that, even I need scheme. I wanted to have the time signature be 3+3+2 8 Apparently this is where Scheme is necessary. I've found the one that makes it 3+3+2 8 8 8 in the documentation Attached is my current code for general complex time signatures (arbitrary # of fractions, arbitrary # of numerators). I have not yet tried to get it into master, because the auto-beaming does not yet follow the signature. Cheers, Reinhold - -- Wow, thank you. That's amazing! I hope that it one day makes it into the current code. James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
On Fri, Aug 14, 2009 at 11:13:18PM +0200, James E. Bailey wrote: > Look at that, even I need scheme. I wanted to have the time signature be > > 3+3+2 > 8 Great! Search the archives for this list, last Oct or Nov or maybe even Dec, to find the solution. "lilypond elegance" will help the search. And yes, getting it included in the main lilypond is Yet Another Cool Thing (tm) that isn't happening because I'm busy doing other stuff that other people could be helping with. Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Am Samstag, 15. August 2009 01:06:40 schrieb Carl Sorensen: > On 8/14/09 4:46 PM, "Reinhold Kainhofer" wrote: > > Attached is my current code for general complex time signatures > > (arbitrary # of fractions, arbitrary # of numerators). I have not yet > > tried to get it into master, because the auto-beaming does not yet follow > > the signature. > > How should auto-beaming respond to a compound time signature? > > In particular, how should ((2 3 8) (4 8)) be different from (2 3 4 8)? That's one of the reasons why I haven't attacked that problem yet ;-) > I think with the new autobeaming code it would not be hard to get the > top-level beaming right. yeah, I simply never managed to read the docs.. > BeatLength, on the other hand, probably doesn't have sufficient structure > built into it to handle ((1 2 3 4 8) (2 4) (2 3 8)), because for that time > signature, beatLength should vary with measure position. I currently simply take the largest denominator ad common beatLength, so in this case the beatLength will be 8. I also don't know enough about the beaming rules to know how 2/4 and 4/8 behave differently. > I'm willing to take a shot at fixing the auto-beaming, if you'd like. Yeah, that would be great! Currently, the code I sent (albeit not perfect yet) is already used in musicxml2ly (where it is copied verbatim to the output file), but it should become part of master sooner or later, so that lilypond also supports complex time signatures properly. Cheers, Reinhold - -- - -- Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/ * Financial & Actuarial Math., Vienna Univ. of Technology, Austria * http://www.fam.tuwien.ac.at/, DVR: 0005886 * LilyPond, Music typesetting, http://www.lilypond.org -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) iD8DBQFKhfnUTqjEwhXvPN0RAt5EAJ4ot7fHua+hmvuQ2moKNT1/Z7VZtwCgoPfb 4ZzCTmAC5WUVwIdT0q9ZLHc= =4Ocb -END PGP SIGNATURE- ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: complex time signatures: scheme help
On 8/14/09 5:57 PM, "Reinhold Kainhofer" wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Am Samstag, 15. August 2009 01:06:40 schrieb Carl Sorensen: >> On 8/14/09 4:46 PM, "Reinhold Kainhofer" wrote: >>> Attached is my current code for general complex time signatures >>> (arbitrary # of fractions, arbitrary # of numerators). I have not yet >>> tried to get it into master, because the auto-beaming does not yet follow >>> the signature. >> >> How should auto-beaming respond to a compound time signature? >> >> In particular, how should ((2 3 8) (4 8)) be different from (2 3 4 8)? > > That's one of the reasons why I haven't attacked that problem yet ;-) My intended approach for right now will be to create a default beaming rule (((9 . 8) end) . ((* . (2 3 4))) It will use the largest denominator (i.e. the smallest time value) as the beatlength, and then group according to the numerators. I would handle ((1 2 3 4 8) (2 4) (2 3 8)) as (((19 . 8) end) . ((* . (1 2 3 4 4 2 3))) I think this is a good rough start; somebody who wants it another way can tweak it as they wish. If you see problems with this, please let me know. Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Trying to Replicate a Measure with Decreasing Subdivisions
Okay, I think I solved this, thanks to the excellent Lilypond documentation. I needed a combination of stemLeftBeamCount, stemLeftBeamCount, stemUp, and cross-staff stems. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Trying to Replicate a Measure with Decreasing Subdivisions
Andrew Wiley wrote: > Okay, I think I solved this, thanks to the excellent > Lilypond documentation. I needed a combination of > stemLeftBeamCount, stemLeftBeamCount, stemUp, and > cross-staff stems. Solved what? Where is the message you're replying to? - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user