Re: New information (success report) for Frescobaldi 3 and the Ubuntu 16.04 repositories
Am 11.01.2018 07:40, schrieb Urs Liska: Am 11.01.2018 um 05:38 schrieb Vaughan McAlley: On 8 Jan 2018 12:35 p.m., "Andrew Bernard" wrote: Hi Urs and All, A totally successful install on a new Ubuntu 17.10 pristine image. All works fine as per the source installations now updated. A large vote of thanks to all who untangled this ball of wool. Despite a lifetime of software development experience, I kept going round in circles and never got it working. A big achievement and well done to you all. Andrew On 7 January 2018 at 20:38, Urs Liska wrote: I've done a new iteration on the Wiki page. I've also added a concise walkthrough at the end that leaves out all the explanations and ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user [1] It's good to know it's possible. Does anyone know whether a failed installation of Frescobaldi 3 endangers a working 2.20 installation? I have installed frescobaldi3 successful on 16.04.2-Ubuntu.On this and some other computers (16.04, 17.04, 17.10) i previously installed frescobaldi2 following installing python-ly version 0.9.5. (As was pointed out repeatedly the ubuntu repository version is 0.9.3 - to old for both frescobaldi 2 and 3!)You can check the version ~/frescobaldi-2.20.0 $ ly -v ly 0.9.5 Python-ly 0.9.5 is one importand precondition for the installation of both frescobaldi versions. Due to this mail I tried to start frescobaldi2 ~/frescobaldi-2.20.0 $ python frescobaldi and get the message that python ly is mising or to to old In German "Das Paket python-ly ist nicht verfügbar oder zu alt. Frescobaldi benötigt mindestens Version 0.9.4." I reported this message to github in the past. I installed python-ly 0.95 from source and as shown above it is available on the system. I reported a problem in installing both frescobaldi versions in the past as well. Because of the lot of troubles with installing frescobaldi3 that quirk went missing. It is not clear for me if frescobaldi2 installs with python.ly 0.9.4 and dislikes 0.9.5? In the moment I am on another computer without access to the others and cannot check the ly version of the running frecobaldi2. May be the frescobaldi versions are antagonistic. (THere had been such a case in the past, wasnt it Kain and Abel?) It *should* not, but of course that's a risky statement in the context of this thread ;-) The packages don't affect each other, the point is to cleanly invoke the right Python version with the right entry file and the right python-ly in the pythonpath. How did you install 2.20 and what OS distribution are you on? Urs Vaughan ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user [1] Links: -- [1] https://lists.gnu.org/mailman/listinfo/lilypond-user ___ 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: Non-standard ledger lines and articulations collisions
Paul Morris writes: > On 01/10/2018 10:57 AM, David Kastrup wrote: > >> You are missing the difference between >> ly:side-position-interface::y-aligned-side and >> side-position-interface::y-aligned-side . >> >> The latter is defined in scm/output-lib.scm as >> >> (define-public side-position-interface::y-aligned-side >>(ly:make-unpure-pure-container >> ly:side-position-interface::y-aligned-side >> ly:side-position-interface::pure-y-aligned-side)) >> >>> So am I missing something or are the docs off for Script.Y-offset? >> The docs are autogenerated and cannot be off with regard to listed >> default values. >> >>> Is a call to "(ly:side-position-interface::y-aligned-side grob)" >>> actually the default call to use? >> You are better off with >> (ly:pure-call side-position-interface::y-aligned-side grob start end) >> or >> (ly:unpure-call side-position-interface::y-aligned-side grob) >> depending on what you need. >> >> Or of course calling ly:side-position-interface::y-aligned-side and >> ly:side-position-interface::pure-y-aligned-side directly. > > Thank you David! That clears up most of my confusion. Should have > realized there was a difference between those two procedures. I'd > still like to look further into what's going on with the > unpure-pure-container stuff, as I currently only have a vague sense of > it. Then maybe I'll have a better handle on whether to use the pure > or unpure call for this case. (Or, I wonder, if it would make sense to > do wrapped/custom versions of both and then combine them with > ly:make-unpure-pure-container , so it more closely parallels the > default situation?) Or let grob-transformer do all of the work. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
OpenLilyLib with Windows
Hi, anybody here who was able to use OpenLilyLib successfully under windows 10? I struggle with the paths I included the OLL-Directory in the Settings of Frescobaldi, I also removed the "master" from the folder name generated by Git - still not working. There was an interesting discussion regarding such an issue on http://lilypond.1069038.n5.nabble.com/openLilyLib-on-Windows-10-td204416.html - but no conclusion. Cheers Joei ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OpenLilyLib with Windows
Am 11.01.2018 um 10:21 schrieb Johannes Roeßler: Hi, anybody here who was able to use OpenLilyLib successfully under windows 10? I struggle with the paths I included the OLL-Directory in the Settings of Frescobaldi, I also removed the "master" from the folder name generated by Git - still not working. There was an interesting discussion regarding such an issue on http://lilypond.1069038.n5.nabble.com/openLilyLib-on-Windows-10-td204416.html - but no conclusion. Cheers Joei Please post: * The full path to the oll-core/package.ily file * The exact path given in Frescobaldi * The log of compiling a file that only contains \include "oll-core/package.ily" Urs ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
OpenLilyLib with Windows
Hi Urs, PATH to oll-core/package.ily: C:\OLL\oll-core\ Path given in Frescobaldi: C:/OLL Log: -8<--- Starte lilypond-windows.exe 2.19.22 [Ohne Titel]... »C:/Users/Johannes/AppData/Local/Temp/frescobaldi-n0yqeelr/tmpd46l6ljs/document.ly« wird verarbeitet Analysieren... C:/Users/Johannes/AppData/Local/Temp/frescobaldi-n0yqeelr/tmpd46l6ljs/document.ly:2:10: Fehler: Datei »oll-core/package.ily« kann nicht gefunden werden (Suchpfad: »C:/Users/Johannes/AppData/Local/Temp/frescobaldi-n0yqeelr/tmpd46l6ljs;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/fonts/svg/;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/fonts/type1/;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/fonts/otf/;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/scm;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/ps;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/ly;C:/OLL;«) \include "oll-core/package.ily" schwerer Fehler: gescheiterte Dateien: "C:\\Users\\Johannes\\AppData\\Local\\Temp\\frescobaldi-n0yqeelr\\tmpd46l6ljs\\document.ly" Wurde mit dem Return-Code 1 beendet. ->8- Cheers, Joei ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OpenLilyLib with Windows
Am 11.01.2018 um 11:10 schrieb Johannes Roeßler: Hi Urs, PATH to oll-core/package.ily: C:\OLL\oll-core\ Path given in Frescobaldi: C:/OLL Log: -8<--- Starte lilypond-windows.exe 2.19.22 [Ohne Titel]... »C:/Users/Johannes/AppData/Local/Temp/frescobaldi-n0yqeelr/tmpd46l6ljs/document.ly« wird verarbeitet Analysieren... C:/Users/Johannes/AppData/Local/Temp/frescobaldi-n0yqeelr/tmpd46l6ljs/document.ly:2:10: Fehler: Datei »oll-core/package.ily« kann nicht gefunden werden (Suchpfad: »C:/Users/Johannes/AppData/Local/Temp/frescobaldi-n0yqeelr/tmpd46l6ljs;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/fonts/svg/;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/fonts/type1/;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/fonts/otf/;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/scm;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/ps;C:/Program Files (x86)/LilyPond-2.19.22/usr/share/lilypond/current/ly;C:/OLL;«) \include "oll-core/package.ily" schwerer Fehler: gescheiterte Dateien: "C:\\Users\\Johannes\\AppData\\Local\\Temp\\frescobaldi-n0yqeelr\\tmpd46l6ljs\\document.ly" Wurde mit dem Return-Code 1 beendet. ->8- Hm, looks all correct. Could you please a) try to enter C:/OLL/ to Frescobaldi's path (just a guess) b) try if you can access *any* file that is relative to a path given to Frescobaldi's include path? Urs ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OpenLilyLib with Windows
Hm, looks all correct. Could you please a) try to enter C:/OLL/ to Frescobaldi's path (just a guess) b) try if you can access *any* file that is relative to a path given toFrescobaldi's include path?Urs Hi Urs, unfortunately you have to "pick" a folder - I can't enter the path manually. But for I actually couldn't access *any* file - your question pointed me to the solution: - I have to put it into my Users-Directory - just on root does'nt work (as long you're not logged in as admin, I assume) - now its working. So like c:\users\Joei\OLL BTW - are you the one maintaining Openlilylib.org? It looks very promising - alas there is no real content :) Cheers Joei ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OpenLilyLib with Windows
Hi Joey, Am 11.01.2018 um 12:00 schrieb Johannes Roeßler: Hm, looks all correct. Could you please a) try to enter C:/OLL/ to Frescobaldi's path (just a guess) b) try if you can access *any* file that is relative to a path given toFrescobaldi's include path?Urs Hi Urs, unfortunately you have to "pick" a folder - I can't enter the path manually. But for I actually couldn't access *any* file - your question pointed me to the solution: - I have to put it into my Users-Directory - just on root does'nt work (as long you're not logged in as admin, I assume) - now its working. So like c:\users\Joei\OLL Great. I didn't look forward to fixing yet another Windows related issue (last time was a few days ago ...) BTW - are you the one maintaining Openlilylib.org? It looks very promising - alas there is no real content :) Well, I'm the one *not* maintaing it ;-) I also found it promising, but got stuck with something and didn't get over it (basically it's the result of an online course I did). IIRC it was about feeding content to the web app. All the content stubs you can see are hardcoded as JSON objects :-o which is obviously not scalable at all. So if anyone out there would be willing to help with that Node/Angular site we may finally get at least some global information online (what it is, how it can be used, what is available - my mid-term wish of having a proper auto-generated documentation from the packages themselves is another matter). Best Urs Cheers Joei ___ 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: fret-diagram for button accordion and/or free bass accordion
On 11 January 2018 at 11:25, Sebastian Menge wrote: > Thanks Gianmaria, thanks for this. VerY interesting! The output looks > good, but I would to change it a bit. I have to learn a little scheme for > this as it seems. > > Btw: I have frequent challenges when writing for accordion and wonder if I > am the only one. Examples are: > > - Registers (current module can be improved) > - Stradella bass > - Specific signs for bellows related stuff like signs for changing > pull/push (like breathing), Vibrato, Bellowsshake > > Are there instrument specific sub communities ?? > > Thanks, Sebastian! > Ciao Sebastian, I have very modest competence in lilypond. I have rewritten many pieces for accordion with lilypond but just for my personal use (well, not really for me, for my daughter). My first interest is about midi output and this is surely not the first lilypond goal. Anyway, regarding your questions: I wrote something to make easier writing using "standard" bass accordion notation for stradella bass system. It is in the attached file AccordionStandardBass.ly. The file test2.ly is an example. The basic idea was write just one command to generate the "standard" bass accordion notation for chords and also generate the corresponding midi output. For example this code: \xco \xcM \removeWithTag #'chordLetter {\xcM \xcM } will render this: [image: Inline images 1] and at the same time generate this midi output [image: Inline images 2] My solution has a lot of limitations but it works for what I need. And today I could probably improve it. Sorry also for the naming (xco, xcM etc. etc.). These should also be refactored. Try it, if you're interested I will be happy to explain more and better, how to use it. Best regards, g. P.S. Sorry if I put the image "in the email" and I didn't attached them. Let me know if this is always a bad netiquette. I found it much more practical for the readers having text and related image near each other. \version "2.19.49" % Accordion Standard Bass library % Last change: 2016 Nov 9 \tagGroup #'(screenOut midiOut) % These definitions are to use when need "chord type letter" on chord % majorChordLetter = -\tag#'chordLetter _\tweak #'direction #UP _\markup {M} % minorChordLetter = -\tag#'chordLetter _\tweak #'direction #UP _\markup {m} % dominantSeventhChordLetter = -\tag#'chordLetter _\tweak #'direction #UP _\markup {7} % diminishedSeventhChordLetter = -\tag#'chordLetter _\tweak #'direction #UP _\markup {d} % These definitions are to use when need "chord type letter" on note majorChordLetter = -\tag#'chordLetter ^\markup {M} minorChordLetter = -\tag#'chordLetter ^\markup {m} dominantSeventhChordLetter = -\tag#'chordLetter ^\markup {7} diminishedSeventhChordLetter = -\tag#'chordLetter ^\markup {d} majorChord = \chordmode {a} minorChord = \chordmode {a:m} dominantSeventhChord = \chordmode {a:7^5} diminishedSeventhChord = \chordmode {a:m7^5} %%% *** %%% *** %%% *** %%% *** %%% *** %%% *** %%% rootNote = bes, rootNoteExp = { \rootNote} rootNoteDouble = {<\rootNote' \rootNote>} midiMajorChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \majorChord} midiMinorChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \minorChord} midiDominantSeventhChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \dominantSeventhChord} midiDiminishedSeventhChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \diminishedSeventhChord} screenMajorChord = {\rootNote' \majorChordLetter} screenMinorChord = {\rootNote' \minorChordLetter} screenDominantSeventhChord = {\rootNote' \dominantSeventhChordLetter} screenDiminishedSeventhChord = {\rootNote' \diminishedSeventhChordLetter} xbeso = {\tag #'midiOut \rootNoteDouble \tag #'screenOut \rootNoteExp } xbesM = {\tag #'midiOut \midiMajorChord \tag #'screenOut \screenMajorChord } xbesm = {\tag #'midiOut \midiMinorChord \tag #'screenOut \screenMinorChord} xbess = {\tag #'midiOut \midiDominantSeventhChord \tag #'screenOut \screenDominantSeventhChord} xbesd = {\tag #'midiOut \midiDiminishedSeventhChord \tag #'screenOut \screenDiminishedSeventhChord} xbesr = {<<\xbeso \xbesM>>} %%% *** %%% *** %%% *** %%% *** %%% *** %%% *** %%% rootNote = b, rootNoteExp = { \rootNote} rootNoteDouble = {<\rootNote' \rootNote>} midiMajorChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \majorChord} midiMinorChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \minorChord} midiDominantSeventhChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \dominantSeventhChord} midiDiminishedSeventhChord = \chordmode {\transpose a #(car (event-chord-pitches rootNoteExp)) \diminishedSeventhChord} screenMajorChord = {\rootNote' \majorChordLetter} screenMinorChord = {\rootNote' \minorChordLetter} screenDominantSeventhChord = {\rootNote' \dominantSeventhChordLetter} screenDiminishedSeventhChord = {\
Re: fret-diagram for button accordion and/or free bass accordion
Ach!! I entered a small mistake in test2.ly. Here it is the correct one. On 11 January 2018 at 12:53, Gianmaria Lari wrote: > On 11 January 2018 at 11:25, Sebastian Menge wrote: > >> Thanks Gianmaria, thanks for this. VerY interesting! The output looks >> good, but I would to change it a bit. I have to learn a little scheme for >> this as it seems. >> >> Btw: I have frequent challenges when writing for accordion and wonder if >> I am the only one. Examples are: >> >> - Registers (current module can be improved) >> - Stradella bass >> - Specific signs for bellows related stuff like signs for changing >> pull/push (like breathing), Vibrato, Bellowsshake >> >> Are there instrument specific sub communities ?? >> >> Thanks, Sebastian! >> > > Ciao Sebastian, > > I have very modest competence in lilypond. I have rewritten many pieces > for accordion with lilypond but just for my personal use (well, not really > for me, for my daughter). My first interest is about midi output and this > is surely not the first lilypond goal. Anyway, regarding your questions: I > wrote something to make easier writing using "standard" bass accordion > notation for stradella bass system. It is in the attached file > AccordionStandardBass.ly. > > The file test2.ly is an example. > > The basic idea was write just one command to generate the "standard" bass > accordion notation for chords and also generate the corresponding midi > output. > For example this code: > > \xco \xcM \removeWithTag #'chordLetter {\xcM \xcM } > > will render this: > > [image: Inline images 1] > > and at the same time generate this midi output > > [image: Inline images 2] > > My solution has a lot of limitations but it works for what I need. And > today I could probably improve it. Sorry also for the naming (xco, xcM etc. > etc.). These should also be refactored. > > Try it, if you're interested I will be happy to explain more and better, > how to use it. > > Best regards, g. > P.S. Sorry if I put the image "in the email" and I didn't attached them. > Let me know if this is always a bad netiquette. I found it much more > practical for the readers having text and related image near each other. > > > \version "2.19.80" \include "AccordionStandardBass.ly" rh = \fixed c' { \time 3/4 \tempo 4=150 \repeat unfold 10 r2. } lh = \fixed c { \clef bass <>4_4 \xco <>4_3 \xcM \removeWithTag #'chordLetter \xcM <>4 \cf 4 \xeo <>4_3 \xcM \removeWithTag #'chordLetter \xcM <>4 \cf 4 \xeo <>4_3 \xcM \removeWithTag #'chordLetter \xcM <>4_4 \xco <>4_3 \xcM \removeWithTag #'chordLetter \xcM <>4_3 \xdo <>4_2 \xgs \removeWithTag #'chordLetter \xgs <>4_4 \xgo <>4_2 \xgs \removeWithTag #'chordLetter \xgs <>4 \cf 4 \xbo <>4_2 \xgs \removeWithTag #'chordLetter \xgs <>4_4 \xgo <>4_2 \xgs \removeWithTag #'chordLetter \xgs <>4_4 \xco <>4_3 \xcM \removeWithTag #'chordLetter \xcM <>4_2 \xgo <>4_3 \xcM \removeWithTag #'chordLetter \xcM } \score { \new PianoStaff << \new Staff = "right" {\rh} \new Staff = "left" {\keepWithTag #'screenOut \lh} >> \layout { } } \score { \new PianoStaff << \new Staff = "right" \with { midiInstrument = "accordion"} {\rh} \new Staff = "left" \with { midiInstrument = "accordion"} {\keepWithTag #'midiOut \lh} >> \midi { } }___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OpenLilyLib with Windows
Am 11.01.2018 um 14:37 schrieb Johannes Roeßler: what a pity.. unfortunately I'm not experienced in Angular and node... by the way - there also seems to be a mailing issue ;) - got this reply: : delta.ursliska.de [85.25.3.15]: >>> RCPT TO: <<< 450 4.1.1: Recipient address rejected: unverified address: host 127.0.0.1[127.0.0.1] said: 550 5.1.1 User doesn't exist:i...@openlilylib.org (in reply to RCPT TO command) Thanks for the report, fixed. Cheers Joei ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Non-standard ledger lines and articulations collisions
On 01/11/2018 04:20 AM, David Kastrup wrote: Or let grob-transformer do all of the work. Thanks for the tip! That's the perfect tool for the job. And I can also use it for other cases where I have been using before-line-breaking. For the archives, below is the example expanded to show ly:unpure-call and grob-transformer. Paul %% \version "2.19.63" m = { c''' c'''\fermata c'''\trill c'''-^ c'''-. c'''\segno } % collisions ahead! { \override Staff.StaffSymbol.ledger-extra = 2 \m } % using ly:unpure-call { \override Staff.StaffSymbol.ledger-extra = 2 \override Staff.Script.Y-offset = #(lambda (grob) (+ 1 (ly:unpure-call side-position-interface::y-aligned-side grob))) \m } % using grob-transformer from scm/music-functions.scm { \override Staff.StaffSymbol.ledger-extra = 2 \override Staff.Script.Y-offset = #(grob-transformer 'Y-offset (lambda (grob default-value) (+ 1 default-value))) \m } %% ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: OpenLilyLib with Windows
what a pity.. unfortunately I'm not experienced in Angular and node... by the way - there also seems to be a mailing issue ;) - got this reply: : delta.ursliska.de [85.25.3.15]: >>> RCPT TO: <<< 450 4.1.1: Recipient address rejected: unverified address: host 127.0.0.1[127.0.0.1] said: 550 5.1.1 User doesn't exist:i...@openlilylib.org (in reply to RCPT TO command) Cheers Joei ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: SVG output - Group multiple grobs together
Hi James, I'm cc'ing the user list, as per the usual custom. On 01/11/2018 08:13 AM, James Opstad wrote: Thanks. I will work through David's example. It seems it isn't possible to embed more than one item within a group and one group per grob is the only approach for the time being. If this is the case then why use groups rather than adding the attributes to the grob itself? Good question. I think it's because some grobs produce more than one glyph, path, or shape in the SVG, so the groups group these together as one thing. Might be interesting to explore feasibility of conditionally adding groups only when needed (for grobs with multiple shapes) and otherwise adding properties to the (single) SVG shapes themselves. Cheers, Paul ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: SVG output - Group multiple grobs together
Thanks. I will work through the example. It seems it isn't possible to embed more than one item within a group and one group per grob is the only approach for the time being. If this is the case then why use groups rather than adding the attributes to the grob itself? James From: David Nalesnik Sent: 10 January 2018 15:21 To: James Opstad Cc: lilypond-user@gnu.org Subject: Re: SVG output - Group multiple grobs together Hi James, On Wed, Jan 10, 2018 at 5:51 AM, James Opstad wrote: > Hello, > > > I have been experimenting with the new output-attributes grob property for > SVG output. For example, the following code creates a group with id="noteC" > around the C notehead. > > > \version "2.19.80" > \pointAndClickOff > \relative c' { > \once \override NoteHead.output-attributes = #'((id . noteC)) > c4 d e f | > } > > How would I include multiple grobs within the same group e.g. all the grobs > associated with a single note (NoteHead, Stem, Accidental etc.)? > All grobs have pointers to other single grobs or arrays of other grobs. You gain access to these through such functions as ly:grob-parent, ly:grob-object, ly:grob-array, ly:item-get-column. The idea of "multiple grobs within the same group e.g. all the grobs associated with a single note" can prove to be complex since your idea of a grouping is not necesarily LilyPond's. You may have to follow chains of pointers--as I did below to arrive at the Stem grob from NoteHead: i.e, through NoteColumn, the Y-parent of the NoteHead. So here is something quickly hacked together from your code example: \version "2.19.65" \pointAndClickOff \relative c' { \once \override NoteHead.output-attributes = #(lambda (grob) (let* ((acc (ly:grob-object grob 'accidental-grob)) (acc-name (if (ly:grob? acc) (grob::name acc) "none")) ; we need a NoteColumn object for access to other grobs (nc (ly:grob-parent grob Y)) (stem (ly:grob-object nc 'stem)) (stem-name (if (ly:grob? stem) (grob::name stem) "none")) (pc (ly:item-get-column grob)) (pc-name (if (ly:grob? pc) (grob::name pc) "none")) (elts (ly:grob-object pc 'elements))) (display elts) ; just so you see a grob array (list (cons 'id 'noteC) (cons 'accidental acc-name) (cons 'stem stem-name) (cons 'column pc-name c4 d e f | } %%% Here is a link to something you might find useful. It stores data about every grob encountered. https://www.mail-archive.com/lilypond-user@gnu.org/msg117645.html HTH, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Changing the ossia staff distance to another staff
Hello folks, In the example below, how can the ossia be brought closer to the upper staff while keeping the same distance between the two regular staves? Thanks for your help! JM \version "2.19.80" \new PianoStaff << \new Staff = "up" \relative { c''4 b d c << { c4 b d c } \new Staff \with { % the ossia \remove "Time_signature_engraver" alignAboveContext = #"up" \magnifyStaff #2/3 firstClef = ##f } { e4 d f e } >> c4 b c2 } \new Staff = "down" \relative { c''4 b d c | c4 b d c | c4 b d c | } >> ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user