Re: Help with Scheme engraver please
Thomas Morley wrote Friday, September 02, 2016 8:22 PM > 2016-09-02 13:05 GMT+02:00 Trevor Daniels: >> >> There already is a helpful working example in the code base. See >> >> input/regression/scheme-engraver.ly >> >> This doesn't go as far as creating new grobs, so I've attached a >> simple example that does. This is a bit of a hack, used as part of >> a learning process, and a bit messy as it evolved from an earlier >> attempt, but it illustrates one way. >> >> Actually, comments from the experts on this would be very helpful. > > I stumbled across you're printing a rest-glyph for a quarter-note. > > Eventually I might have some ideas, but there are a plethora of > variants for historic tablaures. Which glyphs do you want to be > printed above the TabStaff for the code below. Only flags, flags with > stems, stems only for quarters, what to do for notes longer than a > quarter? > > m = { \compressFullBarRests c'\maxima \longa \breve 1 2 4 8 16 32 } > > << > \new MensuralVoice \m > \new TabStaff \with { \revert TextScript.stencil } > \new TabVoice >\with { > \consists \Lute_tab_duration_engraver >} \m I really know very little about lute tablature, but I believe there are many different styles. Should this ever get close to operational we'd need to discuss which styles to support and what glyphs would be needed. But I fear that's some way in the future. The mensural (and rest) glyphs I used in this little example are just markers really, while I explore how to deal with other aspects - fingering, bass courses, articulations, etc. Trevor ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Help with Scheme engraver please
2016-09-02 13:05 GMT+02:00 Trevor Daniels: > > Simon, you wrote Friday, September 02, 2016 1:34 AM >> I just caught up with all the mailing lists, being back from holiday, >> and I’d be interested in a working example for this solution. Would you >> mind sharing it? > > There already is a helpful working example in the code base. See > > input/regression/scheme-engraver.ly > > This doesn't go as far as creating new grobs, so I've attached a > simple example that does. This is a bit of a hack, used as part of > a learning process, and a bit messy as it evolved from an earlier > attempt, but it illustrates one way. > > Actually, comments from the experts on this would be very helpful. Hi Trevor, I stumbled across you're printing a rest-glyph for a quarter-note. Eventually I might have some ideas, but there are a plethora of variants for historic tablaures. Which glyphs do you want to be printed above the TabStaff for the code below. Only flags, flags with stems, stems only for quarters, what to do for notes longer than a quarter? m = { \compressFullBarRests c'\maxima \longa \breve 1 2 4 8 16 32 } << \new MensuralVoice \m \new TabStaff \with { \revert TextScript.stencil } \new TabVoice \with { \consists \Lute_tab_duration_engraver } \m >> Cheers, Harm ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Mail to tranlati...@lilynet.net failing
* Jean-Charles Malahieude, lily...@orange.fr [02/09/16 17:38]: > Le 27/08/2016 à 10:05, Walter Garcia-Fontes a écrit : > > In any case, my message said that I've prepared a new set of Catalan > > translations: > > > > http://puna.upf.edu/catalan_august_26_2016.zip > > Back from vacation, I applied your patches on my local copy, but there are > so many errors… Thanks a lot Jean-Charles. I must have messed up before committing because it seems to me I build my patches cleanly, and some of the errors you found I seem to remember to have corrected. In any case I will try again and send a new set of patches, Walter -- Walter Garcia-Fontes L'Hospitalet de Llobregat -- Walter Garcia-Fontes mailto: walter.gar...@upf.edu - http://puna.upf.edu Departament d'Economia i Empresa - http://www.econ.upf.edu Universitat Pompeu Fabra Ramon Trias Fargas 25-27, 08005 Barcelona, Spain Tel. +34 93 542 2722 - Fax. +34 93 542 1746 ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Mail to tranlati...@lilynet.net failing
Le 27/08/2016 à 10:05, Walter Garcia-Fontes a écrit : Mail to lilynet.net is failing with the following error: Delivery to the following recipient failed permanently: translati...@lilynet.net Technical details of permanent failure: DNS Error: 21251920 DNS type 'mx' lookup of lilynet.net responded with code NXDOMAIN Domain name not found: lilynet.net In any case, my message said that I've prepared a new set of Catalan translations: http://puna.upf.edu/catalan_august_26_2016.zip Back from vacation, I applied your patches on my local copy, but there are so many errors… Please keep in mind that, notwithstanding the spelling, 1- what is in the @menu MUST be equal to what comes after @node: @menu *hotdog:: For snacking @end menu @node hotdog @section Bred and sausage and mustard 2- what is in @ref{…} MUST be equal to what comes after @node: …foo @ref{hotdog} or …foo @rXXnamed{hotdog, Hotdogs} Another help is to check the MANUAL.log file: except for those cross-references dealing with manuals that are not translated (mainly snippets and internals), you should not get any line like WARNING: Unable to find node 'Escriptura de les notes' in book notation. I had first to amend ca/notation/rhythms.itely (see ca-notation-rhythms-TODO) before being able to fully build the docs. What I usually do is - translate or upgrade - check the docs fully build - check the log-files for potential bad cross-references - make doc-clean - make doc and then only commit. Cheers, Jean-Charles WARNING: Unable to find node 'Escriptura de les notes' in book notation. WARNING: Unable to find node 'Lligadures d'unió' in book notation. WARNING: Unable to find node 'Lligadures d'expressió' in book notation. WARNING: Unable to find node 'Lligadures de fraseig' in book notation. WARNING: Unable to find node 'Matisos dinà mics' in book notation. WARNING: Unable to find node 'Explicació dels contextos' in book notation. WARNING: Unable to find node 'LilyPond Scheme-Syntax' in book extending. WARNING: Unable to find node 'L'ordre tweak' in book notation. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Costum tablatures' in book notation. WARNING: Unable to find node 'Costum tablatures' in book notation. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Clau' in book internals. WARNING: Unable to find node 'Altures y armadures' in book learning. WARNING: Unable to find node 'Altures i armadures' in book learning. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Tessitura' in book internals. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'slurs' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Groupig staves' in book notation. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Duracions' in book snippets. WARNING: Unable to find node 'Altures' in book snippets. @@
PATCHES: Countdown for September 2nd
Hello, Here is the current patch countdown list. The next countdown will be on September 5th A quick synopsis of all patches currently in the review process can be found here: http://philholmes.net/lilypond/allura/ __ Push: 4960 Fix micro-tones assigned to strings in TabStaff - Thomas Morley https://sourceforge.net/p/testlilyissues/issues/4960 http://codereview.appspot.com/308230043 4958 Expand description of the engraver hooks - Trevor Daniels https://sourceforge.net/p/testlilyissues/issues/4958 http://codereview.appspot.com/310070043 Countdown: 4961 Convert a bunch of C++ internals to degrees rather than radians - David Kastrup https://sourceforge.net/p/testlilyissues/issues/4961 http://codereview.appspot.com/305380043 Review: 4937 [GSoC] Implement cross-voice dynamic spanners - starrynte https://sourceforge.net/p/testlilyissues/issues/4937 http://codereview.appspot.com/304160043 New: No new Patches at this time. Waiting 4600 Let notes/rests suppress multi-measure rest grobs - Dan Eble https://sourceforge.net/p/testlilyissues/issues/4600 http://codereview.appspot.com/265160043 Regards James ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Minor website typo
I know. I first tried to release it on 13 August, but problems meant it didn't actually get released until quite a bit later. I manually changed the entries in the web manuals, but missed the front page. Don't think it's a big enough problem to worry about. -- Phil Holmes - Original Message - From: "Jon Ciesla"To: Sent: Friday, September 02, 2016 2:58 PM Subject: Minor website typo Hey, just so someone knows, the website says 2.9.47 came out 8/13. It came out 8/31. -j -- http://cecinestpasunefromage.wordpress.com/ in your fear, seek only peace in your fear, seek only love -d. bowie ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Minor website typo
Hey, just so someone knows, the website says 2.9.47 came out 8/13. It came out 8/31. -j -- http://cecinestpasunefromage.wordpress.com/ in your fear, seek only peace in your fear, seek only love -d. bowie ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Help with Scheme engraver please
Simon, you wrote Friday, September 02, 2016 1:34 AM Hi Simon, >On 24.08.2016 11:51, Trevor Daniels wrote: >> David Kastrup wrote Wednesday, August 24, 2016 7:48 AM >>> "Trevor Daniels"writes: Prompted by the recent discussion on lute tablature, I tried coding a Scheme engraver to create the duration grobs but quickly ran into a problem. I need to collect information from both a Listener and an Acknowledger so the obvious place to build the grob is in stop-translator-timestep, >>> No, no, no. stop-translator-timestep really is only for cleanup work. >>> Stuff is no longer in working order then. You want process-acknowledged >>> here I think. >>> >>> There will always be a call to process-acknowledged whenever grobs have >>> been created, and_reading_ stuff from grobs should be delayed until >>> then since other acknowledgers might_write_ stuff into a grob even >>> after your personal acknowledger has been called. So the basic workflow >>> is to use the various acknowledgers to_record_ the grobs you are >>> interested in and_write_ stuff into them (or do read/write stuff that >>> more or less is accumulative and/or really unrelated to other >>> engravers), and then use the process-acknowledged hook for processing >>> (including_reading_) the grobs you had recorded. >>> >>> You can create new grobs in process-acknowledged. That will lead to a >>> new cycle of acknowledger calls followed by process-acknowledged. Only >>> when all those cycles are over is stop-translator-timestep called, and >>> then creating grobs is no longer an option. >> >> Thanks David. That's beautifully clear. > > I just caught up with all the mailing lists, being back from holiday, > and I’d be interested in a working example for this solution. Would you > mind sharing it? There already is a helpful working example in the code base. See input/regression/scheme-engraver.ly This doesn't go as far as creating new grobs, so I've attached a simple example that does. This is a bit of a hack, used as part of a learning process, and a bit messy as it evolved from an earlier attempt, but it illustrates one way. Actually, comments from the experts on this would be very helpful. Trevor \version "2.19.40" % Example of using Scheme engraver to add markup based on note duration % Avoids repeated durations on both chords and consecutive notes %{ TODO Handle notes with different durations at one musical moment better Add dots Add bass courses %} #(define (t->m t) "Return the current moment of translator object @var{t}." (ly:context-current-moment (ly:translator-context t))) % persistent variables for Lute_tab_duration_engraver #(define previous-duration-log #f) % to supress repeated durations #(define ev #f) % event #(define en #f) % engraver Lute_tab_duration_engraver = #(make-engraver ((initialize translator) (format 1 "\n\n~16a: (initialize)\n" (t->m translator))) ((start-translation-timestep translator) (set! ev #f) (set! en #f) (format 1 "~16a: (start-translation-timestep)\n" (t->m translator))) (listeners ((note-event engraver event) ; Save just the last event at each timestep ;TODO save shortest duration event? (set! ev event) (set! en engraver) (format 1 "~16a: detected this note event: ~a\n " (t->m engraver) event))) (acknowledgers ((note-head-interface engraver grob source-engraver) (format 1 "~16a: saw ~a coming from ~a\n" (t->m engraver) grob source-engraver))) (end-acknowledgers ((beam-interface engraver grob source-engraver) (format 1 "~16a: saw end of ~a coming from ~a\n" (t->m engraver) grob source-engraver))) ((process-music translator) (format 1 "~16a: (process-music)\n" (t->m translator)) (if ev (let ((duration-log (ly:duration-log (ly:event-property ev 'duration (display duration-log) (if (not (equal? duration-log previous-duration-log)) (let ((grob (ly:engraver-make-grob en 'TextScript ev))) (set! previous-duration-log duration-log) (ly:grob-set-property! grob 'direction UP) (ly:grob-set-property! grob 'text (case duration-log ((2) (markup (#:musicglyph "rests.M2mensural"))) ((3) (markup (#:musicglyph "flags.mensuralu03"))) ((4) (markup (#:musicglyph "flags.mensuralu04"))) ((5) (markup (#:musicglyph "flags.mensuralu05"))) ((6) (markup (#:musicglyph "flags.mensuralu06"))) (else (markup " ") ((process-acknowledged translator) (format 1 "~16a: (process-acknowledged)\n" (t->m translator))) ((stop-translation-timestep translator) (format 1 "~16a: (stop-translation-timestep)\n" (t->m translator))) ((finalize translator) (format 1 "~16a: (finalize)\n" (t->m