Re: Output to single PDF and multiple MIDI files
I did just that a while ago. Here's the script I used (I had a few additional parameters, though): ``` #(define (movement title suffix music) (list #{\bookpart { \header { title = #title } \score { \removeWithTag midi $music \layout {} } }#} #{\book { \header { title = #title } \bookOutputSuffix #suffix \score { \removeWithTag midi $music \layout {} } \score { \unfoldRepeats \removeWithTag nomidi $music \midi {} } }#} )) $@(movement "Part 1" "part_1" partOne) $@(movement "Part 2" "part_2" partTwo) $@(movement "Part 3" "part_3" partThree) ``` This places each part on a new page, though, due to using \bookparts. If you don't want that, you could add each \score to a list and then insert each of them into a \book at the end. On 07/20/2017 11:40 PM, Jérôme Plût wrote: I am typesetting a multi-movement work. I want the paper output to be in a single file (say work.pdf) and the MIDI output to be in separate files (work-1.pdf, work-2.pdf). Is there a simple and local way to do this? I can do it in a not-simple-enough way: first = \relative { c'4 c c c } second = \relative { c'4 d e f } \book { \score { \new Staff << \first >> } \score { \new Staff << \second >> } % here } \book { \bookOutputSuffix "1" \score { \new Staff << \first >> \midi { } } } \book { \bookOutputSuffix "2" \score { \new Staff << \second >> \midi { } } } % and here However, this is not *local*. What I mean is that if I want to comment out, say, the second movement (for a test run), I need to comment two places at once (marked “here” “and here” in the source above). For consistency and efficiency, I want all lines relating to a single movement to be grouped together. Besides, I also have some reasons to want to group the source of the music with the \score commands; my preferred file structure would be: % first movement music = \relative { ... } \score { ... } % paper output to work.pdf \score { ... } % MIDI output to work-1.midi % second movement music = \relative { ... } \score { ... } % paper output appended to work.pdf \score { ... } % MIDI output to work-2.midi I also tried a variant, resetting the name of the book: \book { \bookOutputName "work" \score { \new Staff << \first >> } } \book { \bookOutputName "work" \score { \new Staff << \second >> } } There would be two consistent ways to act here: the second score could either overwrite the first one or add some extra pages. (Concatenation would be more useful, obviously). However lilypond chooses a bizarre third option: the code above produces two files named work.pdf and work-1.pdf . Does this problem have any solution? Thanks, -- Jérôme Plût ___ 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
Output to single PDF and multiple MIDI files
I am typesetting a multi-movement work. I want the paper output to be in a single file (say work.pdf) and the MIDI output to be in separate files (work-1.pdf, work-2.pdf). Is there a simple and local way to do this? I can do it in a not-simple-enough way: first = \relative { c'4 c c c } second = \relative { c'4 d e f } \book { \score { \new Staff << \first >> } \score { \new Staff << \second >> } % here } \book { \bookOutputSuffix "1" \score { \new Staff << \first >> \midi { } } } \book { \bookOutputSuffix "2" \score { \new Staff << \second >> \midi { } } } % and here However, this is not *local*. What I mean is that if I want to comment out, say, the second movement (for a test run), I need to comment two places at once (marked “here” “and here” in the source above). For consistency and efficiency, I want all lines relating to a single movement to be grouped together. Besides, I also have some reasons to want to group the source of the music with the \score commands; my preferred file structure would be: % first movement music = \relative { ... } \score { ... } % paper output to work.pdf \score { ... } % MIDI output to work-1.midi % second movement music = \relative { ... } \score { ... } % paper output appended to work.pdf \score { ... } % MIDI output to work-2.midi I also tried a variant, resetting the name of the book: \book { \bookOutputName "work" \score { \new Staff << \first >> } } \book { \bookOutputName "work" \score { \new Staff << \second >> } } There would be two consistent ways to act here: the second score could either overwrite the first one or add some extra pages. (Concatenation would be more useful, obviously). However lilypond chooses a bizarre third option: the code above produces two files named work.pdf and work-1.pdf . Does this problem have any solution? Thanks, -- Jérôme Plût ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: What is LilyPond's default font for titles?
Am 2017-07-20 um 20:56 schrieb Reilly Farrell: > For editing and consistency purposes, can anyone tell me what font LilyPond > uses to print title information in its pdfs by default? Based on the > documentation, I'm wondering if it might be New Century Schoolbook in the > roman (serif) font family - is this correct? Good guess. It’s the open source variant of NCS, TeX Gyre Schola, based on URW Century Schoolbook L, see http://www.gust.org.pl/projects/e-foundry/tex-gyre/schola Greetlings, Hraban --- fiëé visuëlle Henning Hraban Ramm http://www.fiee.net ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Sort-of leave notice
Hi all, I just wanted to let you know that I will substantially reduce my LilyPond-related activities for some time, I expect between a few months and half a year. This basically means I will not monitor the LilyPond lists and will not engage in any ambitious projects like the long-desired (at least for me) openLilyLib documentation generation. This is not an immediate decision (i.e. starting with hitting the "Send" button of this message) but pretty much so. I have already resubscribed to the lists with another address so list posts will go to another mailbox where the bold numbers of unread messages won't distract me. There will be some overlap for a few days, so if there's anything with regard to my recent openLilyLib changes you'd like to draw my attention to now would be the opportunity. In general if anyone wants me to see something they should get in touch with me personally (or forward things I should maybe know). I will receive notifications from Github, though, so posting anything on the openLilyLib issue trackers will probably reach me as well. However, I will still use LilyPond, so I'll most probably pop up occasionally with questions. Best Urs -- u...@openlilylib.org https://openlilylib.org http://lilypondblog.org ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Silencing chordNames
Err! I've never really sorted out the cconcept of contexts. I've just copied them when they looked OK Then fiddled. I've got the immediate problem solved thanks to you both & I am now trying to research cotenxts in a more formal way. Many thanks Steve On Wed, Jul 19, 2017 at 02:25:06PM -0700, madMuze wrote: > I seem to remember answering this on the forum before, and with information I > found on this forum, but not knowing what search terms to suggest right off, > here is the code I use in 2.18 (in blissful anticipation of the new > stability...): > > \midi { > \context{ \ChordNameVoice > \remove Note_performer > } > } > > Is that what you need? > David > > > > > -- > View this message in context: > http://lilypond.1069038.n5.nabble.com/Silencing-chordNames-tp204519p204523.html > Sent from the User mailing list archive at Nabble.com. > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: What is LilyPond's default font for titles?
Thank you both! Best, Reilly On Thu, Jul 20, 2017 at 12:30 PM, David Wrightwrote: > On Thu 20 Jul 2017 at 21:03:29 (+0200), caag...@gmail.com wrote: > > According to `strings whatever.pdf|grep FontName`, the only fonts in > > the output PDF are Emmentaler and Tex Gyre Schola. Since Emmentaler > > is for music symbols, it's probably Tex Gyre Schola (bold, in the > > case of titles). > > https://www.ctan.org/pkg/tex-gyre-schola?lang=en > > > On 07/20/2017 08:56 PM, Reilly Farrell wrote: > > >For editing and consistency purposes, can anyone tell me what font > > >LilyPond uses to print title information in its pdfs by default? > > >Based on the documentation, I'm wondering if it might be New > > >Century Schoolbook in the roman (serif) font family - is this > > >correct? > > Yes, effectively. > > Cheers, > David. > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user > -- Reilly Farrell reillycfarr...@gmail.com (650) 787-2751 ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: What is LilyPond's default font for titles?
On Thu 20 Jul 2017 at 21:03:29 (+0200), caag...@gmail.com wrote: > According to `strings whatever.pdf|grep FontName`, the only fonts in > the output PDF are Emmentaler and Tex Gyre Schola. Since Emmentaler > is for music symbols, it's probably Tex Gyre Schola (bold, in the > case of titles). https://www.ctan.org/pkg/tex-gyre-schola?lang=en > On 07/20/2017 08:56 PM, Reilly Farrell wrote: > >For editing and consistency purposes, can anyone tell me what font > >LilyPond uses to print title information in its pdfs by default? > >Based on the documentation, I'm wondering if it might be New > >Century Schoolbook in the roman (serif) font family - is this > >correct? Yes, effectively. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Fwd: Re: error with ingnoreMelismata
On Thu 20 Jul 2017 at 18:35:27 (+0200), Bernhard Kleine wrote: > I sent the answer it to Phil only, now on the list: No problem. _We_ all see it just the once. > I have found the solution. There was a missunderstanding what should be > ignored and what not. The [] are totally unnessary and if you want I > could make the full song available. > > Sorry for the noise and sorry for mine. I have some problem with your attachments (the quoted characters remain quoted when I save them) so I didn't bother to set the code. But I've now recalled that I already answered your repeat problem in the thread starting http://lists.gnu.org/archive/html/lilypond-user/2017-05/msg00487.html (But you will hit problems with \repeat lyrics as soon as you go beyond the simplest of examples like this not very MWE.) Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: What is LilyPond's default font for titles?
According to `strings whatever.pdf|grep FontName`, the only fonts in the output PDF are Emmentaler and Tex Gyre Schola. Since Emmentaler is for music symbols, it's probably Tex Gyre Schola (bold, in the case of titles). On 07/20/2017 08:56 PM, Reilly Farrell wrote: For editing and consistency purposes, can anyone tell me what font LilyPond uses to print title information in its pdfs by default? Based on the documentation, I'm wondering if it might be New Century Schoolbook in the roman (serif) font family - is this correct? Thank you! ___ 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
What is LilyPond's default font for titles?
For editing and consistency purposes, can anyone tell me what font LilyPond uses to print title information in its pdfs by default? Based on the documentation, I'm wondering if it might be New Century Schoolbook in the roman (serif) font family - is this correct? Thank you! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Fwd: re: automatic beaming behavior
On Thu 20 Jul 2017 at 11:24:25 (-0700), Reilly Farrell wrote: > We are compiling several hundred melody and rhythm examples. Each example > references the same .ily file where global settings and formatting are > handled. Is there code for setting automatic behavior of beams that we can > put in the .ily file (not within a \relative { } block) to resolve the > issue? > > (The desire is for beamed notes to reflect the beat - pairs of eighths in > 4/4, 3/4, 2/4 and groups of three eighths in 6/8, 9/8,or 12/8.) %% Beam crochets separately. %% 2.18.2 can't parse this format for beatStructure \layout { \context { \Score \overrideTimeSignatureSettings 2/2 % timeSignatureFraction 1/8 % baseMomentFraction 2,2,2,2 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 3/4 % timeSignatureFraction 1/8 % baseMomentFraction 2,2,2 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 4/4 % timeSignatureFraction 1/8 % baseMomentFraction 2,2,2,2 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 5/4 % timeSignatureFraction 1/8 % baseMomentFraction 2,2,2,2,2 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 6/4 % timeSignatureFraction 1/8 % baseMomentFraction 2,2,2,2,2,2 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 7/4 % timeSignatureFraction 1/8 % baseMomentFraction 2,2,2,2,2,2,2 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 8/4 % timeSignatureFraction 1/8 % baseMomentFraction 2,2,2,2,2,2,2,2 % beatStructure #'() % beamExceptions } } %% Beam compound dotted crochets separately. %% 2.18.2 can't parse this format for beatStructure \layout { \context { \Score \overrideTimeSignatureSettings 6/8 % timeSignatureFraction 1/8 % baseMomentFraction 3,3 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 9/8 % timeSignatureFraction 1/8 % baseMomentFraction 3,3,3 % beatStructure #'() % beamExceptions \overrideTimeSignatureSettings 12/8 % timeSignatureFraction 1/8 % baseMomentFraction 3,3,3,3 % beatStructure #'() % beamExceptions } } Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: re: automatic beaming behavior
Have you read and understood http://lilypond.org/doc/v2.19/Documentation/notation/beams#setting-automatic-beam-behavior ? If so, and you have further questions, please ask. -- Phil Holmes - Original Message - From: Reilly Farrell To: lilypond-user@gnu.org Sent: Thursday, July 20, 2017 7:24 PM Subject: Fwd: re: automatic beaming behavior We are compiling several hundred melody and rhythm examples. Each example references the same .ily file where global settings and formatting are handled. Is there code for setting automatic behavior of beams that we can put in the .ily file (not within a \relative { } block) to resolve the issue? (The desire is for beamed notes to reflect the beat - pairs of eighths in 4/4, 3/4, 2/4 and groups of three eighths in 6/8, 9/8,or 12/8.) Thank you! -- ___ 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
Fwd: re: automatic beaming behavior
We are compiling several hundred melody and rhythm examples. Each example references the same .ily file where global settings and formatting are handled. Is there code for setting automatic behavior of beams that we can put in the .ily file (not within a \relative { } block) to resolve the issue? (The desire is for beamed notes to reflect the beat - pairs of eighths in 4/4, 3/4, 2/4 and groups of three eighths in 6/8, 9/8,or 12/8.) Thank you! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Parse scheme ast
Hlöðver Sigurðssonwrites: > (sorry for spamming but I forgot to do "reply all" and post to the list > itself) > > An essay by Erik Sandberg had confused me (at closer look I was only > confused not that the thesis was confusing), > > the word I should be using is not ast but music streams. They haven't been integrated with LilyPond's code base. Music expressions are converted on the fly into stream events passed to a hierarchy of listeners. Since they are interpreted at various levels in that hierarchy with an interpretation depending on context variables also affected by stream events, there is no unique stream. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Parse scheme ast
(sorry for spamming but I forgot to do "reply all" and post to the list itself) An essay by Erik Sandberg had confused me (at closer look I was only confused not that the thesis was confusing), the word I should be using is not ast but music streams. Reading an older thread: http://lilypond.1069038.n5.nabble.com/Has-anything-been- done-about-implementing-music-streams-td108258.html and lack of documentation http://lilypond.org/doc/v2.18/Documentation/extending/ lilypond-scheme-interfaces I assume this is going to be more low level than I can play with at my low skill-level. (until docs and interfaces for scheme are more cleared up). thanks for your quick replies! 2017-07-20 17:33 GMT+02:00 David Kastrup: > Hlöðver Sigurðsson writes: > > > Yes, that's why I wanted to experiment with boycutting the > .ly->scheme-ast > > transformation step. I'm a much better lisper than c, so it's bit unclear > > to me what's going on (i've done parsers tough in the past). Are these > > public functions here maybe what I'm after > > https://github.com/lilypond/lilypond/blob/master/lily/ > include/lily-guile.hh#L52-L53 > > because, only by (maybe false) assumption, the lilypond lexer and > parser's > > job is to create the scheme ast in the pipeline that gets sent to another > > compilation step which job is to create raw typesetted output? > > I repeat: > > > 2017-07-20 16:57 GMT+02:00 David Kastrup : > >> > >> LilyPond is an interpreter, not a compiler, so it doesn't work with > >> parse trees. See lily/parser.yy for its parser (and associated actions) > >> and lily/lexer.ll for its lexer. > > There is no "scheme ast". LilyPond executes its actions as soon as it > recognizes a production. Those actions ultimately assemble "book" > expressions which are then processed with functions/hooks like > toplevel-book-handler . > > The basic control flow outside of the parser is done in ly/init.ly . > > -- > David Kastrup > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Fwd: Re: error with ingnoreMelismata
I sent the answer it to Phil only, now on the list: I have found the solution. There was a missunderstanding what should be ignored and what not. The [] are totally unnessary and if you want I could make the full song available. Sorry for the noise Thanks for understanding Bernhard Am 20.07.2017 um 12:40 schrieb Phil Holmes: > This would be much easier to look at if you followed > http://lilypond.org/tiny-examples.html > > However, in one line you have: > > d8 [(d ]) c4 [(c8]) > > Are you really intending to beam to a crochet? > > -- > Phil Holmes > > > - Original Message - From: "Bernhard Kleine" >> To: > Sent: Thursday, July 20, 2017 11:16 AM > Subject: error with ingnoreMelismata > > > I took the example from the Documentation of 2.19: 2.1.3 stanza with > different rhythm > > However, It does correctly work in the last line within the repeat. The > problem is in measure 13: the German version has three quarter note and > two bin eighth notes while the french version is correctly indicated > then the following is compiled. > > Once the distribution of times is correct in measure 13, the double > repeat alternatives should be gone, too. > > What do I wrong? > > Bernhard > > > \version "2.19.49" > \language "deutsch" > > \layout { > \context { >\Voice >\consists "Melody_engraver" >\override Stem #'neutral-direction = #'() > } > } > > global = { > \key f \major > \numericTimeSignature > \time 2/2 > \autoBeamOff > } > > soprano = \relative c'' { > \global > % Die Noten folgen hier. > a2 g8 a b c | f,2. f4 | d'2 c4 (b) | \slurDotted a (a2) \breathe f4 | > d' d c c8 b | a4 a8 g f4 f8 f| b4 a g f | f2 [( e2 ]) \breathe| > \slurSolid a2 g8 a b c | f,2. f4 | d'2 c4 (b) | \slurDotted a [(a2]) > \breathe f4 | > \repeat volta 2 { >d' d8 [(d ]) c4 [(c8]) b | a8 a a g f4. f8 | b4 (a) g4. (f8) } > \alternative {{ f2. \breathe f4 } { f1 \bar "|." } } > } > > > > verseTwo = \lyricmode { > \set stanza = "2." > % Liedtext folgt hier. > Ich sin -- ge mei -- nem Gott von gan -- zem \set ignoreMelismata = ##t > Her -- zen. > Er -- zäh -- len will ich von all sei -- ner Lie -- be und prei -- sen > sei -- ne > > Gna -- de. > \unset ignoreMelismata > Ich sin -- ge mei -- nem Gott von gan -- zem \set ignoreMelismata = ##t > Her -- zen. Ich > \repeat volta 2 { > \set ignoreMelismata = ##t > freu -- e mich und bin fröh -- lich, > \unset ignoreMelismata > Herr, in dir, Hal -- le -- lu -- } > \alternative { { ja! Ich } { ja! } } > } > > > verseFour = \lyricmode { > \set stanza = "4. (fr.)" > % Liedtext folgt hier. > Je loue -- rai l'É -- ter -- nel de tout mon coeur. > Je ra -- con -- te -- rai tou -- tes tes mer -- veil -- les. > je chan -- te -- rai ton nom. > Je loue -- rai l'É -- ter -- nel de tout mon coeur. Je > \repeat volta 2 { > \set ignoreMelismata = ##t > fe -- rai de > \unset ignoreMelismata > toi le su -- jet de ma joie. Al -- lé -- lu } > \alternative { { ia! Je } { ia! } } > } > > \score { > \new ChoirStaff << >\new Staff \with { > midiInstrument = "choir aahs" > instrumentName = \markup \center-column { "S." } >} << > \new Voice = "soprano" { \voiceOne \soprano } > >> > >\new Lyrics \with { > \override VerticalAxisGroup #'staff-affinity = #CENTER >} \lyricsto "soprano" \verseTwo > >\new Lyrics \with { > \override VerticalAxisGroup #'staff-affinity = #CENTER >} \lyricsto "soprano" \verseFour > > >> > \layout { } > \midi { >\tempo 4=100 > } > } > -- spitzhalde9 D-79853 lenzkirch bernhard.kle...@gmx.net www.b-kleine.com, www.urseetal.net - thunderbird mit enigmail GPG schlüssel: D5257409 fingerprint: 08 B7 F8 70 22 7A FC C1 15 49 CA A6 C7 6F A0 2E D5 25 74 09 signature.asc Description: OpenPGP digital signature ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: error with ingnoreMelismata
On Thu 20 Jul 2017 at 12:16:17 (+0200), Bernhard Kleine wrote: > I took the example from the Documentation of 2.19: 2.1.3 stanza with > different rhythm Please state which document. > However, It does correctly work in the last line within the repeat. The > problem is in measure 13: the German version has three quarter note and > two bin eighth notes while the french version is correctly indicated > then the following is compiled. > > Once the distribution of times is correct in measure 13, the double > repeat alternatives should be gone, too. > > What do I wrong? >\repeat volta 2 { >\set ignoreMelismata = ##t >freu -- e mich und bin fröh -- lich, >\unset ignoreMelismata >Herr, in dir, Hal -- le -- lu -- } > \alternative { { ja! Ich } { ja! } } If you want to use \repeat constructions for lyrics, then you need Explicit (Manual) Durations. Tedious, but necessary. And don't forget to set the associated voice so that the alignments are correct. Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Parse scheme ast
I have no idea what that specific AST comes from (did you invent it yourself?), but I think you're looking for (make-music) expressions, which are what is created from music expressions before being passed to the engravers. Check out \displayScheme (or (display-scheme-music) (talking about lisp inside parens is awkward)) and http://lilypond.org/doc/v2.19/Documentation/internals/music-expressions for more info. On 07/20/2017 04:40 PM, Hlöðver Sigurðsson wrote: Hi lilyponders, I'm looking to find a way to transpile code to lilypond, I know how to generate an ast like this ((context . 0) (class . CreateContext) (unique . 1) (ops) (type . Score) (id . "\\new")) ((context . 1) (class . CreateContext) (unique . 2) (ops) (type . StaffGroup) (id . "\\new")) ((context . 2) (class . CreateContext) (unique . 3) (ops) (type . Staff) (id . "\\new")) ((context . 3) (class . CreateContext) (unique . 4) (ops) (type . Voice) (id . "")) but I have no idea where in GUILE/lilypond this would get parsed to output. Some hints where to get started? ___ 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: extending extender in lyric music
Hello Michael, Does: The Lord shall bless His peo -- ple do what you’re after? JM > Le 29 juin 2017 à 08:07, Michael Dykesa écrit : > > \version "2.18.0" > \include "english.ly" > \include "gregorian.ly" > > \layout { > \context{ >\Score \override SpacingSpanner.packed-spacing = ##f \version "2.18.0" > } > \context{ >\Lyrics \override LyricHyphen.minimum-distance = #2.5 >\override LyricSpace.minimum-distance = #1.5 > } > } > > \header { > title = \markup\bold\fontsize #2.0 >{"Resurrectional Prokeimenon"} > subtitle = \markup\bold\fontsize #1.5 >{""} > subsubtitle = "" > poet = \markup\bold\fontsize #1.25 >{"Tone 7"} > composer = \markup\bold\fontsize #1.25 >{"Common Court Chant"} > tagline = "Translation - OCA Traditional English" > } > > % #(set-global-staff-size 22) > global = { > \key f \major > \override Staff.NoteHead.style = #'altdefault > \override Staff.TimeSignature.stencil = ##f > %\override Staff.BarLine.stencil = ##f > \set Score.defaultBarType = "-" > \bar "|." > } > move = { \bar "" \break } > > soprano = >\transpose f g{ > \relative c'' { > \global > % Music follows here. > a4 g2 g4 a \[bf bf bf\] a2 g2 \bar "!" > bf4 bf a \bar "" bf(c) bf(a) g1 a2 g f\breve \bar "|." > } > } > > > bass = \transpose f g{ > \relative c { > \global > % Music follows here. > f4 c2 c4 f \[e e e\] f2 c \bar "!" > c4 c c \bar "" c2 e4(f) c1 f2 a, d\breve \bar "|." > } > } > > verse = \lyricmode { > % Lyrics follow here. > The Lord shall give strength to His >peo -- ple! > The Lord shall bless __ His __ peo -- ple >with peace. > } > > psalmVerse = \markup \column {\large{Stichos:} > \large\bold{" Offer to the Lord, you sons of God! > Offer young rams to the Lord!"} > } > > \score { > \new ChoirStaff << >\new Staff \with { > midiInstrument = "string ensemble 1" > instrumentName = \markup \center-column { "Soprano" "Tenor"} >} << > \new Voice = "soprano" { \voiceOne \soprano } >>> >\new Lyrics \lyricsto "soprano" \verse >\new Staff \with { > midiInstrument = "string ensemble 1" > instrumentName = \markup \center-column { "Alto" "Bass" } >} << > \clef bass > \new Voice = "bass" { \voiceTwo \bass } >>> > >> > \layout { >ragged-last=##t >#(layout-set-staff-size 22) >\context { > \Lyrics > \override VerticalAxisGroup.staff-affinity = ##f > \override VerticalAxisGroup.staff-staff-spacing = >#'((basic-distance . 0) > (minimum-distance . 2) > (padding . 2)) >} >indent = 1.25\cm >\context { > \Staff > \override VerticalAxisGroup.staff-staff-spacing = >#'((basic-distance . 0) > (minimum-distance . 2) > (padding . 2)) >} > } > \midi { >\context { > \Score > tempoWholesPerMinute = #(ly:make-moment 150/4) > } >} > } > > \psalmVerse > > I am trying to extend the extenders in "bless" and "His" above and am not > sure how to do this. Any help is appreciated. > > > -Michael Dykes > > > ___ > 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: Parse scheme ast
Hlöðver Sigurðssonwrites: > Yes, that's why I wanted to experiment with boycutting the .ly->scheme-ast > transformation step. I'm a much better lisper than c, so it's bit unclear > to me what's going on (i've done parsers tough in the past). Are these > public functions here maybe what I'm after > https://github.com/lilypond/lilypond/blob/master/lily/include/lily-guile.hh#L52-L53 > because, only by (maybe false) assumption, the lilypond lexer and parser's > job is to create the scheme ast in the pipeline that gets sent to another > compilation step which job is to create raw typesetted output? I repeat: > 2017-07-20 16:57 GMT+02:00 David Kastrup : >> >> LilyPond is an interpreter, not a compiler, so it doesn't work with >> parse trees. See lily/parser.yy for its parser (and associated actions) >> and lily/lexer.ll for its lexer. There is no "scheme ast". LilyPond executes its actions as soon as it recognizes a production. Those actions ultimately assemble "book" expressions which are then processed with functions/hooks like toplevel-book-handler . The basic control flow outside of the parser is done in ly/init.ly . -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Parse scheme ast
Yes, that's why I wanted to experiment with boycutting the .ly->scheme-ast transformation step. I'm a much better lisper than c, so it's bit unclear to me what's going on (i've done parsers tough in the past). Are these public functions here maybe what I'm after https://github.com/lilypond/lilypond/blob/master/lily/include/lily-guile.hh#L52-L53 because, only by (maybe false) assumption, the lilypond lexer and parser's job is to create the scheme ast in the pipeline that gets sent to another compilation step which job is to create raw typesetted output? 2017-07-20 16:57 GMT+02:00 David Kastrup: > Hlöðver Sigurðsson writes: > > > Hi lilyponders, > > > > I'm looking to find a way to transpile code to lilypond, I know how to > > generate an ast like this > > > > ((context . 0) (class . CreateContext) (unique . 1) (ops) (type . Score) > > (id . "\\new")) > > ((context . 1) (class . CreateContext) (unique . 2) (ops) (type . > > StaffGroup) (id . "\\new")) > > ((context . 2) (class . CreateContext) (unique . 3) (ops) (type . Staff) > > (id . "\\new")) > > ((context . 3) (class . CreateContext) (unique . 4) (ops) (type . Voice) > > (id . "")) > > > > but I have no idea where in GUILE/lilypond this would get parsed to > > output. Some hints where to get started? > > LilyPond is an interpreter, not a compiler, so it doesn't work with > parse trees. See lily/parser.yy for its parser (and associated actions) > and lily/lexer.ll for its lexer. > > -- > David Kastrup > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Parse scheme ast
Hlöðver Sigurðssonwrites: > Hi lilyponders, > > I'm looking to find a way to transpile code to lilypond, I know how to > generate an ast like this > > ((context . 0) (class . CreateContext) (unique . 1) (ops) (type . Score) > (id . "\\new")) > ((context . 1) (class . CreateContext) (unique . 2) (ops) (type . > StaffGroup) (id . "\\new")) > ((context . 2) (class . CreateContext) (unique . 3) (ops) (type . Staff) > (id . "\\new")) > ((context . 3) (class . CreateContext) (unique . 4) (ops) (type . Voice) > (id . "")) > > but I have no idea where in GUILE/lilypond this would get parsed to > output. Some hints where to get started? LilyPond is an interpreter, not a compiler, so it doesn't work with parse trees. See lily/parser.yy for its parser (and associated actions) and lily/lexer.ll for its lexer. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Parse scheme ast
Hi lilyponders, I'm looking to find a way to transpile code to lilypond, I know how to generate an ast like this ((context . 0) (class . CreateContext) (unique . 1) (ops) (type . Score) (id . "\\new")) ((context . 1) (class . CreateContext) (unique . 2) (ops) (type . StaffGroup) (id . "\\new")) ((context . 2) (class . CreateContext) (unique . 3) (ops) (type . Staff) (id . "\\new")) ((context . 3) (class . CreateContext) (unique . 4) (ops) (type . Voice) (id . "")) but I have no idea where in GUILE/lilypond this would get parsed to output. Some hints where to get started? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: error with ingnoreMelismata
This would be much easier to look at if you followed http://lilypond.org/tiny-examples.html However, in one line you have: d8 [(d ]) c4 [(c8]) Are you really intending to beam to a crochet? -- Phil Holmes - Original Message - From: "Bernhard Kleine"To: Sent: Thursday, July 20, 2017 11:16 AM Subject: error with ingnoreMelismata I took the example from the Documentation of 2.19: 2.1.3 stanza with different rhythm However, It does correctly work in the last line within the repeat. The problem is in measure 13: the German version has three quarter note and two bin eighth notes while the french version is correctly indicated then the following is compiled. Once the distribution of times is correct in measure 13, the double repeat alternatives should be gone, too. What do I wrong? Bernhard \version "2.19.49" \language "deutsch" \layout { \context { \Voice \consists "Melody_engraver" \override Stem #'neutral-direction = #'() } } global = { \key f \major \numericTimeSignature \time 2/2 \autoBeamOff } soprano = \relative c'' { \global % Die Noten folgen hier. a2 g8 a b c | f,2. f4 | d'2 c4 (b) | \slurDotted a (a2) \breathe f4 | d' d c c8 b | a4 a8 g f4 f8 f| b4 a g f | f2 [( e2 ]) \breathe| \slurSolid a2 g8 a b c | f,2. f4 | d'2 c4 (b) | \slurDotted a [(a2]) \breathe f4 | \repeat volta 2 { d' d8 [(d ]) c4 [(c8]) b | a8 a a g f4. f8 | b4 (a) g4. (f8) } \alternative {{ f2. \breathe f4 } { f1 \bar "|." } } } verseTwo = \lyricmode { \set stanza = "2." % Liedtext folgt hier. Ich sin -- ge mei -- nem Gott von gan -- zem \set ignoreMelismata = ##t Her -- zen. Er -- zäh -- len will ich von all sei -- ner Lie -- be und prei -- sen sei -- ne Gna -- de. \unset ignoreMelismata Ich sin -- ge mei -- nem Gott von gan -- zem \set ignoreMelismata = ##t Her -- zen. Ich \repeat volta 2 { \set ignoreMelismata = ##t freu -- e mich und bin fröh -- lich, \unset ignoreMelismata Herr, in dir, Hal -- le -- lu -- } \alternative { { ja! Ich } { ja! } } } verseFour = \lyricmode { \set stanza = "4. (fr.)" % Liedtext folgt hier. Je loue -- rai l'É -- ter -- nel de tout mon coeur. Je ra -- con -- te -- rai tou -- tes tes mer -- veil -- les. je chan -- te -- rai ton nom. Je loue -- rai l'É -- ter -- nel de tout mon coeur. Je \repeat volta 2 { \set ignoreMelismata = ##t fe -- rai de \unset ignoreMelismata toi le su -- jet de ma joie. Al -- lé -- lu } \alternative { { ia! Je } { ia! } } } \score { \new ChoirStaff << \new Staff \with { midiInstrument = "choir aahs" instrumentName = \markup \center-column { "S." } } << \new Voice = "soprano" { \voiceOne \soprano } >> \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER } \lyricsto "soprano" \verseTwo \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER } \lyricsto "soprano" \verseFour >> \layout { } \midi { \tempo 4=100 } } -- spitzhalde9 D-79853 lenzkirch bernhard.kle...@gmx.net www.b-kleine.com, www.urseetal.net - thunderbird mit enigmail GPG schlüssel: D5257409 fingerprint: 08 B7 F8 70 22 7A FC C1 15 49 CA A6 C7 6F A0 2E D5 25 74 09 ___ 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: error with ingnoreMelismata
Am 20.07.2017 um 12:16 schrieb Bernhard Kleine: > However, It does correctly work in the last line within the repeat. The > problem is in measure 13: the German version has three quarter note and > two bin eighth notes while the french version is correctly indicated > then the following is compiled. It should read It does not work correctly in the last line within the repeat. -- spitzhalde9 D-79853 lenzkirch bernhard.kle...@gmx.net www.b-kleine.com, www.urseetal.net - thunderbird mit enigmail GPG schlüssel: D5257409 fingerprint: 08 B7 F8 70 22 7A FC C1 15 49 CA A6 C7 6F A0 2E D5 25 74 09 signature.asc Description: OpenPGP digital signature ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
error with ingnoreMelismata
I took the example from the Documentation of 2.19: 2.1.3 stanza with different rhythm However, It does correctly work in the last line within the repeat. The problem is in measure 13: the German version has three quarter note and two bin eighth notes while the french version is correctly indicated then the following is compiled. Once the distribution of times is correct in measure 13, the double repeat alternatives should be gone, too. What do I wrong? Bernhard \version "2.19.49" \language "deutsch" \layout { \context { \Voice \consists "Melody_engraver" \override Stem #'neutral-direction = #'() } } global = { \key f \major \numericTimeSignature \time 2/2 \autoBeamOff } soprano = \relative c'' { \global % Die Noten folgen hier. a2 g8 a b c | f,2. f4 | d'2 c4 (b) | \slurDotted a (a2) \breathe f4 | d' d c c8 b | a4 a8 g f4 f8 f| b4 a g f | f2 [( e2 ]) \breathe| \slurSolid a2 g8 a b c | f,2. f4 | d'2 c4 (b) | \slurDotted a [(a2]) \breathe f4 | \repeat volta 2 { d' d8 [(d ]) c4 [(c8]) b | a8 a a g f4. f8 | b4 (a) g4. (f8) } \alternative {{ f2. \breathe f4 } { f1 \bar "|." } } } verseTwo = \lyricmode { \set stanza = "2." % Liedtext folgt hier. Ich sin -- ge mei -- nem Gott von gan -- zem \set ignoreMelismata = ##t Her -- zen. Er -- zäh -- len will ich von all sei -- ner Lie -- be und prei -- sen sei -- ne Gna -- de. \unset ignoreMelismata Ich sin -- ge mei -- nem Gott von gan -- zem \set ignoreMelismata = ##t Her -- zen. Ich \repeat volta 2 { \set ignoreMelismata = ##t freu -- e mich und bin fröh -- lich, \unset ignoreMelismata Herr, in dir, Hal -- le -- lu -- } \alternative { { ja! Ich } { ja! } } } verseFour = \lyricmode { \set stanza = "4. (fr.)" % Liedtext folgt hier. Je loue -- rai l'É -- ter -- nel de tout mon coeur. Je ra -- con -- te -- rai tou -- tes tes mer -- veil -- les. je chan -- te -- rai ton nom. Je loue -- rai l'É -- ter -- nel de tout mon coeur. Je \repeat volta 2 { \set ignoreMelismata = ##t fe -- rai de \unset ignoreMelismata toi le su -- jet de ma joie. Al -- lé -- lu } \alternative { { ia! Je } { ia! } } } \score { \new ChoirStaff << \new Staff \with { midiInstrument = "choir aahs" instrumentName = \markup \center-column { "S." } } << \new Voice = "soprano" { \voiceOne \soprano } >> \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER } \lyricsto "soprano" \verseTwo \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER } \lyricsto "soprano" \verseFour >> \layout { } \midi { \tempo 4=100 } } -- spitzhalde9 D-79853 lenzkirch bernhard.kle...@gmx.net www.b-kleine.com, www.urseetal.net - thunderbird mit enigmail GPG schlüssel: D5257409 fingerprint: 08 B7 F8 70 22 7A FC C1 15 49 CA A6 C7 6F A0 2E D5 25 74 09 signature.asc Description: OpenPGP digital signature ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user