Little notes and dotted voltas
Hi list, I would like to transcribe the notes from Ludwig Erk’s Liederhort. Unfortunately, I don’t know how to handle these two things: * In some songs, there are dotted voltas, which – I guess – are there to indicate an optional repeatition. * Some songs also feature tiny notes, which are there to indicate a diverging rhythm in different stanzas. What would be the best way to transcribe them? Please have a look at https://commons.wikimedia.org/wiki/File:Deutscher_Liederhort_%28Erk%29_044a.jpg for an example featuring both issues. Kind regards, Thomas ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Little notes and dotted voltas
{a4 e g es-\tweak X-offset #3.8 ^\markup\tiny/ \bar ;a2-\tweak X-offset #-1.3 _\markup\tiny\\ a4 a4 }\\{s4 s \tiny g8\noBeam g8 s4} Because it is absolutely a kludge it is certain someone else can do better, but this does work though it might need a fair amount of fiddling. The lower wing needs to be placed on the note after the barline which is extra weird. Shane On Sun, Nov 23, 2014 at 1:28 PM, Thomas U. Grüttmüller sloym...@gmx.net wrote: Hi list, I would like to transcribe the notes from Ludwig Erk’s Liederhort. Unfortunately, I don’t know how to handle these two things: * In some songs, there are dotted voltas, which – I guess – are there to indicate an optional repeatition. * Some songs also feature tiny notes, which are there to indicate a diverging rhythm in different stanzas. What would be the best way to transcribe them? Please have a look at https://commons.wikimedia.org/wiki/File:Deutscher_Liederhort_%28Erk%29_044a.jpg for an example featuring both issues. Kind regards, Thomas ___ 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
Programming question
Given that NoteNames are really a type of lyrics, is it possible to have a function that just takes music and returns a text string that is a lyric. For example: music = \relative c' { c4 d e f g a b c } notenameLyric = \NoteNameToLyric \music would make notenameLyric = c d e f g a b c so that we can write \newLyric \lyricmode \notenameLyric I understand that such a function would probably map the music and extract the 'text from it and concatenate it to get the result. Not yet successful in getting it to work. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Programming question
On Nov 23, 2014, at 10:21 PM, Jay Vara j...@diljun.com wrote: Given that NoteNames are really a type of lyrics, is it possible to have a function that just takes music and returns a text string that is a lyric. For example: music = \relative c' { c4 d e f g a b c } notenameLyric = \NoteNameToLyric \music would make notenameLyric = c d e f g a b c so that we can write \newLyric \lyricmode \notenameLyric I understand that such a function would probably map the music and extract the 'text from it and concatenate it to get the result. Not yet successful in getting it to work. Cool idea! You’re thinking is exactly how I’d do it. I'd copy and paste the naturalizeMusic function from the doc and adapt it to return a list of pitch classes from the music. Then, you can flatten the returned list (if need be) and do a map on the list with a lambda function that takes a numeric pitch class and returns a markup with a note name. Cheers, MS ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: MIDI and Volta repeats in parallel music
Michael == Michael Ellis michael.f.el...@gmail.com writes: Well, in this case you don't have any conflicting music in the two Voice contexts (because the \structure isn't a printed music voice). So you can simply leave out the \voiceXXX commands and you're ready. What's more, is there a reason to have the structure in a different voice? If you have it in the *same* voice, voltas will get unfolded properly too: \score { \unfoldAllRepeats \new Staff = Music { \new Voice = Music \music \structure } ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Little notes and dotted voltas
Hi Thomas, Attached a possible code. HTH, Pierre 2014-11-23 19:28 GMT+01:00 Thomas U. Grüttmüller sloym...@gmx.net: Hi list, I would like to transcribe the notes from Ludwig Erk’s Liederhort. Unfortunately, I don’t know how to handle these two things: * In some songs, there are dotted voltas, which – I guess – are there to indicate an optional repeatition. * Some songs also feature tiny notes, which are there to indicate a diverging rhythm in different stanzas. What would be the best way to transcribe them? Please have a look at https://commons.wikimedia.org/wiki/File:Deutscher_ Liederhort_%28Erk%29_044a.jpg for an example featuring both issues. Kind regards, Thomas ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user \version 2.18.2 \pointAndClickOff %% hide warnings (optional): % { #(define (suppress message x) (let loop ((c x)) (if ( c 0) (begin (ly:expect-warning message) (loop (1- c)) #(suppress barcheck failed at: -1/8 1) #(suppress barcheck failed at: 3/8 1) %} % optional volta bars: \defineBarLine ;|] #'(; | ]) \defineBarLine [; #'([ ; ) % small notes repositioning rp = \once\override NoteColumn.force-hshift = #0.3 global = { \clef G \key f\major \time 2/4 \partial 8 } myChant = \relative f' { \autoBeamOff \stemNeutral \global % mes.0 | c8 % mes.1 | f8 f f g % mes.2 | a8 g f4 % mes.3 | a8 a a bes % mes.4 | c8 bes a f % mes.5 | f'4 f16[ e] d8 % mes.6a | c4 r8 \repeat volta 2 { %% optional bar \bar [; % mes.6b | c8^\markup\huge * % mes.7 | d8 bes g bes % mes.8 | c8 a f g % mes.9 | a8 c bes g % mes.10a | f4 r8 %% optional bar \bar ;|] } % mes.10b \override Score.BreakAlignment.break-align-orders = #( make-vector 3 '( span-bar breathing-sign staff-bar clef key-cancellation key-signature time-signature)) \once\set Staff.forceClef = ##t \once\override Staff.Clef.full-size-change = ##t \once\override Staff.Clef.space-alist.key-signature = #'(minimum-space . 4.5) \once\override Staff.Clef.X-offset = #1 \clef G \key f\major | c'8 -\tweak X-offset #-3 ^\markup { \huge * Oder: } % mes.11 | bes8 bes d16[ c] bes8 % mes.12 | a8 bes c a % mes.13 | g8 g \stemDown bes16[ a] \stemNeutral g8 % mes.14 | f8 g a f % mes.15 | a8 a bes e, % mes.16 | f4 r8 \bar |. } mySmallNotes = \relative f' { s8 s2*6 \teeny \autoBeamOff % mes.7 | s4 \stemDown g16 g \stemUp \rp bes bes % mes.8 | s4. \stemDown g16 g s2*2 % mes.11 | \stemUp \rp bes16 bes \rp bes bes s4 % mes.12 | \stemDown a16 a s4. % mes.13 | g16 g g g s4 % mes.14 | f16 f s4. } myLyrics = \lyricmode { Es freit ein wil -- der Was -- ser -- mann von dem Berg und tie -- fen Thal, wol ü -- ber die See, er freit nach könig -- lichem A -- del -- stamm, nach_der schö -- nen Han -- na -- le. er wollte Königs Töchter aus Enge -- land habn, er wollte Königs -- töchter aus Enge -- land habn, die schö -- nen Han -- na -- le. } \paper { system-system-spacing.basic-distance = #14 } \layout { system-count = 4 } \new Staff \new Voice = Chant \myChant \new Voice \mySmallNotes \new Lyrics \lyricsto Chant \myLyrics thomas.pdf Description: Adobe PDF document ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Programming question
Hi, On Sun, Nov 23, 2014 at 3:31 PM, Mike Solomon m...@mikesolomon.org wrote: On Nov 23, 2014, at 10:21 PM, Jay Vara j...@diljun.com wrote: Given that NoteNames are really a type of lyrics, is it possible to have a function that just takes music and returns a text string that is a lyric. For example: music = \relative c' { c4 d e f g a b c } notenameLyric = \NoteNameToLyric \music would make notenameLyric = c d e f g a b c so that we can write \newLyric \lyricmode \notenameLyric I understand that such a function would probably map the music and extract the 'text from it and concatenate it to get the result. Not yet successful in getting it to work. Cool idea! You’re thinking is exactly how I’d do it. I'd copy and paste the naturalizeMusic function from the doc and adapt it to return a list of pitch classes from the music. Then, you can flatten the returned list (if need be) and do a map on the list with a lambda function that takes a numeric pitch class and returns a markup with a note name. Cheers, MS Here is a file I cobbled together which attempts something like this. There's a problem which I don't know how to fix, though. The following part of the example given in the file works, with text items associated with the Staff: \new Staff \music \noteNameToLyric #'(c d e f g a b c) The following part of the example creates text out of the pitch integers (could be converted to letter names easily enough). The lyrics, however, are clearly not associated with the Staff. \new Staff \music \noteNameToLyric \extractPitches \music Does anybody have an idea why this is happening, and what to do to fix it? Anyway, hopefully this provides a start of a solution. --David \version 2.19.15 #(define (get-pitch elt) (ly:music-property elt 'pitch)) #(define (extract-pitches lst result) (cond ((null? lst) result) ((ly:pitch? (get-pitch (car lst))) (set! result (append result (list (get-pitch (car lst) (extract-pitches (cdr lst) result)) ((ly:music-property (car lst) 'elements) (append (extract-pitches (ly:music-property (car lst) 'elements) result) (extract-pitches (cdr lst) '( (else (extract-pitches (cdr lst) result extractPitches = #(define-scheme-function (parser location lst) (ly:music?) (extract-pitches (extract-named-music lst '(EventChord NoteEvent)) '()) ) #(define (t lst) (let loop ((t lst) (result )) (if (null? t) result (loop (cdr t) (string-append result \ (if (symbol? (car t)) ;; this mess is just for testing (symbol-string (car t)) (number-string (ly:pitch-notename (car t \ ) noteNameToLyric = #(define-void-function (parser location lst) (list?) (let* ((str (t lst)) (str (string-append { str }))) (display str) (newline) (ly:parser-include-string parser (string-append \\new Lyrics \\lyricmode str music = \relative c' { c4 d e f g a b c } %% This works \new Staff \music \noteNameToLyric #'(c d e f g a b c) %% Tis doesn't \new Staff \music \noteNameToLyric \extractPitches \music ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
\parallelMusic incompatible with slur marker at beginning of measure?
I've been learning lilypond this weekend, so forgive me if this is a question with an obvious answer, but I am having trouble getting slurs to work with \parallelMusic. If the slur marker is on the note at the beginning of the line, I get a fun error. This: \parallelMusic #'(va dynD vb) { % ... % 7 c2 (f,4-.) d'-4-. | s2. s4\f | f4-. f'-1-. ees-. d-. | (ees2-- c-- | s1 | (c2-- ees-- | % 9 d2.--) s4 | s1 | d2.--) s4 | } produces this: aylesford.ly:47:3: error: syntax error, unexpected EVENT_IDENTIFIER (ees2-- c-- | aylesford.ly:49:3: error: syntax error, unexpected EVENT_IDENTIFIER (c2-- ees-- | aylesford.ly:67:3: error: errors found, ignoring music expression The whole file is here: https://github.com/Abhayakara/music/blob/7f9f30aa69ce08bdcf55ced7695e3621d7f9a066/aylesford.ly If I use a phrasing slur, it works fine: % 7 c2 (f,4-.) d'-4-.\( | s2. s4\f | f4-. f'-1-. ees-. d-.\( | ees2-- c-- | s1 | c2-- ees-- | % 9 d2.--\) s4 | s1 | d2.--\) s4 | Complete file with phrasing slurs here: https://github.com/Abhayakara/music/blob/master/aylesford.ly Did I do something wrong here? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: MIDI and Volta repeats in parallel music
On Sun, Nov 23, 2014 at 4:46 PM, pe...@chubb.wattle.id.au wrote: What's more, is there a reason to have the structure in a different voice? Good question. For me, it's mostly about the DRY principle (don't repeat yourself). I'm in the process of writing a program that tries to maximize one's opportunities to exploit the repetitive aspects of most compositions when entering the notation for multiple voices. It's a work in progress, but if you're curious it lives at https://github.com/Michael-F-Ellis/TransLily As for the whole \repeat unfold business, I'd love to understand why LP can merge repeats in the PDF but can't do it MIDI. I know the developers are really smart folks, so it must be way more challenging than I'm imagining. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: MIDI and Volta repeats in parallel music
Michael == Michael Ellis michael.f.el...@gmail.com writes: Michael On Sun, Nov 23, 2014 at 4:46 PM, pe...@chubb.wattle.id.au Michael wrote: What's more, is there a reason to have the structure in a different voice? Michael Good question. For me, it's mostly about the DRY principle Michael (don't repeat yourself). I'm in the process of writing a Michael program that tries to maximize one's opportunities to exploit Michael the repetitive aspects of most compositions when entering the Michael notation for multiple voices. It's a work in progress, but Michael if you're curious it lives at Michael https://github.com/Michael-F-Ellis/TransLily My point I think is that the structure is the structure of the voice, not the structure of the staff. Which is why, BTW, the MIDI repeats don't unfold. Visibly the structure voice shows the repeats, but the repeats aren't actually in the music voice. So when you unfold you get: \music { \structure \structure \structure } I Michael As for the whole \repeat unfold business, I'd love to Michael understand why LP can merge repeats in the PDF but can't do Michael it MIDI. I know the developers are really smart folks, so it Michael must be way more challenging than I'm imagining. t can't merge them in the PDF either. But when it prints them as repeat symbols, you can't tell from the printout. Try this: --- \version 2.18.0 music= \new Staff \new Voice \relative c' { c4 c c c } \new Voice \relative c' { \repeat volta 2 { s1 }} \score { \music } \score { \unfoldRepeats \music } --- And look at the PDF. The second system shows the unfolded structure. Peter C ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: MIDI and Volta repeats in parallel music
On Sun, Nov 23, 2014 at 10:33 PM, Peter Chubb pe...@chubb.wattle.id.au wrote: My point I think is that the structure is the structure of the voice, not the structure of the staff. Which is why, BTW, the MIDI repeats don't unfold. Visibly the structure voice shows the repeats, but the repeats aren't actually in the music voice. I do understand that and it makes sense for LP to support almost any crazy thing a composer might do. As practical matter, however, having volte in one voice and not another is extremely rare. I don't think I've ever seen that in a score. I haven't looked at the LilyPond code for \repeat, so I'm just guessing here, but it seems to me that maybe \repeat unfold is wrong tool for job since it operates at the level of music expressions. Maybe what's needed is lower level code that operates at the level of midi file timing. I think it's analogous to what LP has to do to put the repeat bars and other staff-level annotations from one voice in the right spatial location to relative to another voice's. That's a non-trivial task in itself, without even getting into what LP does to avoid vertical collisions. So it if were up to me (and it certainly isn't), I'd like to see some effort put into developing a new command to designated one voice as a 'master' in the midi block, so that one might write something like \score { \structure \\ voiceA \\ voiceB ... \midi { \master \structure } } to tell LP Keep track of the repeats in the master and copy/paste as needed in the other voices to make it so. This is a good discussion and I hope we can continue it. I'm going to be traveling for the next 2 days so if my responses aren't immediate it doesn't mean I'm not interested. Cheers, Mike ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \parallelMusic incompatible with slur marker at beginning of measure?
Hi Ted, The answer is in your question : you're putting slurs at a wrong place and phrasing slurs at the right one. See attached, HTH, Pierre 2014-11-24 2:50 GMT+01:00 Ted Lemon mel...@fugue.com: I've been learning lilypond this weekend, so forgive me if this is a question with an obvious answer, but I am having trouble getting slurs to work with \parallelMusic. If the slur marker is on the note at the beginning of the line, I get a fun error. This: \parallelMusic #'(va dynD vb) { % ... % 7 c2 (f,4-.) d'-4-. | s2. s4\f | f4-. f'-1-. ees-. d-. | (ees2-- c-- | s1 | (c2-- ees-- | % 9 d2.--) s4 | s1 | d2.--) s4 | } produces this: aylesford.ly:47:3: error: syntax error, unexpected EVENT_IDENTIFIER (ees2-- c-- | aylesford.ly:49:3: error: syntax error, unexpected EVENT_IDENTIFIER (c2-- ees-- | aylesford.ly:67:3: error: errors found, ignoring music expression The whole file is here: https://github.com/Abhayakara/music/blob/7f9f30aa69ce08bdcf55ced7695e3621d7f9a066/aylesford.ly If I use a phrasing slur, it works fine: % 7 c2 (f,4-.) d'-4-.\( | s2. s4\f | f4-. f'-1-. ees-. d-.\( | ees2-- c-- | s1 | c2-- ees-- | % 9 d2.--\) s4 | s1 | d2.--\) s4 | Complete file with phrasing slurs here: https://github.com/Abhayakara/music/blob/master/aylesford.ly Did I do something wrong here? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user \version 2.18.2 #(set-global-staff-size 19) \header{ title = Aylesford Piece composer = Georg Friedrich Haendel } keyMeter = { \key g \minor \time 2/2 } \parallelMusic #'(va dynD vb) { % Measure 1 \partial 4 d4-1\staccato | \partial 4 s4\mf | \partial 4 r4 | % Measure 2 g4-2-. bes-5-. a-. g8 (fis | s1 | r2 r4 d-5-. | % Measure 3 g2-2 d4) r | s1 | g4-2-. a-1-. bes-2-. (a8-1 g | % Measure 4 a'8-2 (bes c4-.) bes-. a-. | s1 | fis2 d4) r | % 5 bes2-3 (g4) r | s1 | g4-1-. g,8-5 (a bes4-.) c-. | % 6 bes8-3 (c d4-.) c-. bes-. | s4 s-cresc. s2 | d4-1-. bes-2-. a-. g-. | % 7 c2 (f,4-.) d'-4-.( | s2. s4\f | f4-. f'-1-. ees-. d-.( | % 8 ees2-- c-- | s1 | c2-- ees-- | % 9 d2.--) s4 | s1 | d2.--) s4 | } \parallelMusic #'(ve dynF vg) { % Measure 2 g4-2-. bes-5-. a-. g8 (fis | s1 | r2 r4 d-5-. | } \score { \new PianoStaff \new Staff = trebleStaff { \keyMeter \set midiInstrument = #piano \relative c' \repeat volta 2 { \va } \relative c' \repeat volta 2 { \ve } } \new Dynamics { \repeat volta 2 { \dynD } \repeat volta 2 { \dynF } } \new Staff = bassStaff { \keyMeter \clef bass \set midiInstrument = #piano \relative c \repeat volta 2 { \vb } \relative c' \repeat volta 2 { \vg } } \layout { } \midi { } }___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \parallelMusic incompatible with slur marker at beginning of measure?
On Nov 24, 2014, at 12:35 AM, Pierre Perol-Schneider pierre.schneider.pa...@gmail.com wrote: The answer is in your question : you're putting slurs at a wrong place and phrasing slurs at the right one. Hm, okay. So a (b c d) is wrong, and a( b c d) is right? I tried putting the regular slur at the end of the measure instead of the beginning of the next, but I put a space between the note and the slur mark, and that didn't work: a ( | b c d). Anyway, if a (b c d) is wrong, and a( b c d) is right, then it should give the same error message regardless of where the mistake is in the measure, shouldn't it? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \parallelMusic incompatible with slur marker at beginning of measure?
2014-11-24 6:56 GMT+01:00 Ted Lemon mel...@fugue.com: Hm, okay. So a (b c d) is wrong, and a( b c d) is right? Here both are ok; you simply omit to put any bar check: So a | (b c d) is wrong, and a( | b c d) is right. Cheers, Pierre ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \parallelMusic incompatible with slur marker at beginning of measure?
On Nov 24, 2014, at 1:03 AM, Pierre Perol-Schneider pierre.schneider.pa...@gmail.com wrote: Here both are ok; you simply omit to put any bar check: So a | (b c d) is wrong, and a( | b c d) is right. So to be clear, I am asking whether the behavior we are seeing is intended for some reason that I haven't understood yet. It is obviously the case that the behavior is as it is. From the perspective of a user who just wants to write music, there is no reason at all for me to think that a | (b c d) is wrong and a (b c d) is okay. For instance, a | b (c d) works, and a (b | c d) works. So it doesn't make any sense that a | (b c d) doesn't work. It may be that making it work is really hard because of the way bar checks are implemented. If so, it may be that there is no way to make things consistent in the way I am suggesting they should be. I can even see how, from a data structure perspective, making a | (b c d) work consistently is difficult. But if consistency is desired, then the fact that a | (b c d) doesn't work is a bug that is hard to fix, not a feature that doesn't need to be fixed. The question I was asking is whether this is a feature that I just don't understand, but your response isn't really answering that question. If in fact a (b c d) is wrong, but just happens to work, and a( b c d) is right, then it would be helpful for users if a (b c d) threw an error, instead of working, and if a | (b c d) threw the _same_ error. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user