Re: overhead projection of lilypond scores
2008/10/13 Gerry Prosser [EMAIL PROTECTED]: when teaching a congregation a new worship song, it would be rather nice to project the melody line onto the screen as well as the words. But black-on-white is a projection disaster. It really needs to be yellow staff/text on a blue background. And probably a thicker text font than times new roman. Is this achievable, please ? A bit a joke. I'd say it's quite easy to get dark (colored) text on light (colored) screen -- just paint a screen with some (light) color and then pick up an appropriate color for text. This will work :-) Won't work for dark screen and light text, though :-) -- Dmytro O. Redchuk ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: square note heads for cluster
Am Mon, 13 Oct 2008 20:24:37 +0200 schrieb [EMAIL PROTECTED]: I need to notate some clusters using squared rhythmic note-heads, something along the lines of this figure: I was recently looking for that kind of clusters too. It is really standard in some contemporary music. If someone knows how to do it, you could make two ppl happy :-) Seb. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Accidental besides trill
2008/10/13 Gilles Sadowski [EMAIL PROTECTED]: How to put an accidental besides trill? Try this: e^\markup{\musicglyph #scripts.trill {\raise #1 \sharp}} It works :-) Thank you, Gilles. Cheers, -- Marcos di Silva http://www.marcosdisilva.net/ ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: square note heads for cluster
Anders, I recently started working on a keyboard-cluster function, but it's a big project and I haven't gotten very far yet. I've attached a png generated by the file included below to share some basic ideas about my initial approach. Perhaps this will help you. I'm finding myself able to make the clusters look however I want them to look, but I want one all-encompassing function to apply arbitrary cluster-styles on the fly. It's not necessarily difficult, but I want to support a wide variety of cluster-styles, which will take me some time. In the end, I'd have my function generate embedded-ps paths and fill in the missing notes dynamically, but for the moment I'm applying my cluster-styles manually (see below). Regarding your question: ...is there a good list of various 'ly:' info-grabbing functions...? Try this: http://lilypond.org/doc/v2.11/Documentation/user/lilypond-internals/Scheme-functions#Scheme-functions Hope this helps. - Mark -- \version 2.11.61-1 squareA = #(ly:make-stencil (list 'embedded-ps gsave currentpoint translate newpath 0 0.51 moveto 1 0.51 lineto 1 -0.51 lineto 0 -0.51 lineto closepath fill grestore) (cons 0 1) (cons 0 0)) squareB = #(ly:make-stencil (list 'embedded-ps gsave currentpoint translate newpath 0.3 0.51 moveto 1.0125 0.51 lineto 1.0125 -0.51 lineto 0.3 -0.51 lineto closepath fill grestore) (cons 0 1.3125) (cons 0 0)) \relative { \once \override Voice.NoteHead #'X-offset = #0 \once \override Voice.NoteHead #'stencil = \squareA c d e f g a b c4 \once \override Voice.NoteHead #'X-offset = #0 \once \override NoteHead #'stem-attachment = #'(1 . 7) c \tweak #'stencil \squareB d \tweak #'stencil \squareB e \tweak #'stencil \squareB f \tweak #'stencil \squareB g \tweak #'stencil \squareB a \tweak #'stencil \squareB b c4 } attachment: clusters_1.png___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: insertion of UTF-8 characters
Tom It has to be within a \markup and not in quotes. And xc2a9 should be 00a9. Try c'4^\markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) } or just \markup { Copyright 2008 #(ly:export (ly:wide-char-utf-8 #x00a9)) } outside the score block to place it in text, or for the copyright line, try copyright = \markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) 2008 } . Trevor - Original Message - From: Tom Cloyd [EMAIL PROTECTED] To: Lilypond lilypond-user@gnu.org Sent: Tuesday, October 14, 2008 2:08 AM Subject: insertion of UTF-8 characters The documentation [/Lilypond notation reference.pdf/, “3.3.3 Text encoding”, pdf p. 318.] states that UTF-8 coding is used in Ly and that UTF-8 hex codes can be inserted into text. An example is given, and I show it here using the code of interest to me - that for the Copyright sign: #(ly:export (ly:wide-char-utf-8 #xc2a9))| |This example has no context, and when I put it in one I cannot get it to work. I suggest that the documentation be modified to give one. Meanwhile, I need a solution to the problem of how to insert a Copyright sign into the copyright line. Here's what I tried: \header {... copyright = #(ly:export (ly:wide-char-utf-8 #xc2a9)) 2008 ... It produced this in the PDF output: #(ly:export (ly:wide-char-utf-8 #xc2a9)) 2008 Placing the UTF code export line outside of the quotes wouldn't even compile. Can anyone suggest how to do this? Thanks! Tom || -- ~ Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist Bellingham, Washington, U.S.A: (360) 920-1226 [EMAIL PROTECTED] (email) TomCloyd.com (website) sleightmind.wordpress.com (mental health weblog) ~ ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: square note heads for cluster
Heres a start on a cluster-chord function. A question someone might help answer: When using the music-function on a chord - ie \clusterKord e g2 - it only 'eats' the first note of the chord, and appends the second one as a separate note if i dont 'kill it' inside the music-function. The code below just deletes it and handles stem-lengths explicitly, however this breaks explicit beaming and possibly other things. Any hints? If some lilypond-guru would bother to hint on ways to improve this it would of course help me a lot further on. Im just starting to work with lilypond, and everything seems chaotic atm. Thanks. Anders. attachment: cluster-shot.png \version 2.11.57 #(define (sort-chord chord pred) (define (note-y music) (let* ((n (ly:music-property music 'element)) (p (ly:music-property music 'pitch))) (cond ((ly:music? n) (note-y n)) ((ly:pitch? p) (let* ((o (ly:pitch-octave p)) (n (ly:pitch-notename p))) (+ (* 7 o) n)) (sort chord (lambda (n1 n2) (pred (note-y n1) (note-y n2) #(define (chord-y-extent music) (define (note-y music) (let* ((n (ly:music-property music 'element)) (p (ly:music-property music 'pitch))) (cond ((ly:music? n) (note-y n)) ((ly:pitch? p) (let* ((o (ly:pitch-octave p)) (n (ly:pitch-notename p))) (+ (* 7 o) n)) (let ((alle-ys (map note-y (ly:music-property music 'elements ;;(display alle-ys) (cons (apply min alle-ys) (apply max alle-ys #(define (leggtilbokshue akkord) (let* ((bunn-topp (chord-y-extent akkord)) (bunn (car bunn-topp)) (topp (cdr bunn-topp)) (filled? (let ((dur (ly:music-property (car (ly:music-property akkord 'elements)) 'duration))) (and (ly:duration? dur) ( (ly:duration-log dur) 1) (make-music 'SequentialMusic 'elements (cons (make-music 'ContextSpeccedMusic 'context-type 'Bottom 'element (make-music 'OverrideProperty 'pop-first #t 'grob-property-path (list (quote stencil)) 'grob-value ly:text-interface::print 'once #t 'symbol 'NoteHead)) (cons (make-music 'ContextSpeccedMusic 'context-type 'Bottom 'element (make-music 'OverrideProperty 'pop-first #t 'grob-property-path (list (quote length)) ;; whats the default stem-length? ;; how to find whether a stem is up or down? 'grob-value (+ (- topp bunn) 7) 'once #t 'symbol 'Stem)) (cons (make-music 'ContextSpeccedMusic 'context-type 'Bottom 'element (make-music 'OverrideProperty 'pop-first #t 'grob-property-path (list (quote text)) ;; adjust to non-filled with 'unfilled durs: 'grob-value (let ((xs (cons 0 1)) (ys (cons -0.5 (+ (/ (- topp bunn) 2) 0.5) ))) (if filled? ;; cludge, replace with graphics-code (markup #:line (#:line (#:filled-box xs ys 0))) (markup #:line (#:box (#:pad-to-box xs ys (#:null)) 'once #t 'symbol 'NoteHead)) ;; this breaks explicit beamings (list (car (sort-chord (ly:music-property akkord 'elements) ) clusterKord = #(define-music-function (parser location music) (ly:music?) (leggtilbokshue music)) % TODO: handle stem-direction, nice drawing-func ('stencil'), get rid of grid-lines?, user-choices, %{ headFirkant = { \once \override NoteHead #'stencil = #ly:text-interface::print \once \override NoteHead #'text = #(markup #:line (#:filled-box '(0.0 . 1.0) '(-0.5 . 2.0) 0)) } %} \layout { ragged-right = ##t } { \clusterKord d' g'1 \clusterKord a, g''2 \clusterKord a' g'8 \clusterKord a' d'8 a' g'8[ a' d'8] } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond midi to stdout?
I think LilyPond must have the full score to create the MIDI, it doesn't happen measure by measure. John O'Hagan wrote: Why is it important to play the midi file during generation? I'm glad you asked! The program is intended to have a performance mode: you enter a set of requirements and restrictions on the command-line (this is the creative part!) and then see what it produces. The program then does some combinatorial number-crunching, which can take a long time to complete - in some cases unrealistically long. However, it uses Python generators, so that each small unit of output (i.e., bar) is yielded immediately and then forgotten about, and we begin to see output straight away. Without this feature, some of the larger operations would simply fill the memory and never complete. This way, it can begin to perform immediately. Of course, it is possible to play midi files (or scores) produced by Lilypond at the end of the process, but that may be much later, or never. To date, I've been using the sox synth to play the results, but that's pretty limited; and then by triggering some piano samples, but I realized I was re-inventing midi; and since my program already includes a function to convert my numerical representation of music into Lilypond-friendly strings, the midi data is already being produced. If only I could get my hands on it! John O'Hagan wrote: Hi, I'm using Lilypond to print the results of an algorithmic music program written in Python. I'm looking for a way to play the results as they are produced (i.e bar by bar), and it occurred to me that simply playing Lilypond midi files with a midi player would do the trick. However, I can't figure out how to get Lilypond's midi data sent to stdout, where it could then be read from stdin by a player. Whatever I try (including python pipes and even plain shell pipes) it just writes the file to my home directory. Is there any way around this? Regards, John O'Hagan ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: insertion of current date in text string
2008/10/14 Tom Cloyd [EMAIL PROTECTED]: Nowagain: I'm being misunderstood, and, strangely, it appears that no one is reading either the subject line of this thread or what I'm writing in the message body. Let me say it again: This thread is 6 hours old by now, please be patient. I want to combine current date (which I now have) with the text string version to output the version date OF THE BLOODY SCORE, not of the Lilypond version I'm running. All over the documentation, the authors are relentlessly single minded, as you both have been (ha!) in seeing version as referring IN THIS CONTEXT to Lilypond versions. It does not. Other things have versions, too, I assure you. In this case, it's my score(s). What is the version date? The version number freely chosen and set by yourself? The date of the input file? The time of compilation of the PDF? So...hopefully with that cleared up, let me assure you that I've searched all through all the documentation I can find/understand, and I don't see how to do this thing I'm trying to do... It is not very clear yet, but you already have got several responses. -- Francisco Vila. Badajoz (Spain) http://www.paconet.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Keeping annotations when extracting parts from a score
Hi. I've got a song where several annotations like Refrain or Verse are set in the Vocals (because that's the voice at the top of the system). Now I'm starting to extract parts, and of course the annotations are only shown in the vocal part. is there any other way to have the annotations in each other part than to write it down for any voice but using tags to prevent them getting printed in the score? It would be nice if I could define for e.g. bar 3 independently of the instrument the part is for that the annotation Refrain has to be set at the upper right of the bar. You can save the annotations in a variable and create one staff with them and one staff without; then you use the appropriate one in the \score block. [See attached example.] Best, Gilles \version 2.10.10 annotationsForParts = { s1*3 | s1^Refrain | % etc. } partNotes = \relative c' { c1 | d2 e | f1 | g4 a g f | % etc. } partStaffWithAnnotations = \context Staff = AnnotatedPart { \annotationsForParts \partNotes } partStaff = \context Staff = Part { \partNotes } \score { \partStaff % \partStaffWithAnnotations \layout {} } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Right-margin aligning of Composer-field
The subjoined code results (both in versions 2.11.58 and 2.11.62) in a Composer-field without a right margin. Is this a known issue, or am I missing a mistake? \version 2.11.62 \paper { #(set-paper-size a4) left-margin = 20 right-margin = 20 top-margin = 20 between-system-space = 20 systemSeparatorMarkup = \slashSeparator } \header { title = Centered title subsubtitle = from \'Titles, from left to right\' poet = Poet composer = Composer, not OK. } melody = \relative c { a b c } \score { \new Staff = mel \melody } -- http://hemiola.eu/rightmargin.pdf Best regards, Jethro. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Right-margin aligning of Composer-field
At 14:03 on 14 Oct 2008, J.Van Thuyne wrote: The subjoined code results (both in versions 2.11.58 and 2.11.62) in a Composer-field without a right margin. Is this a known issue, or am I missing a mistake? \version 2.11.62 \paper { #(set-paper-size a4) left-margin = 20 right-margin = 20 I don't think right-margin exists - there's just left-margin and line-width. Since left and right margins are by default 10mm, setting left margin to 20mm means that the right-margin becomes 0mm. See: Documentation/user/lilypond/Page-formatting.html#Horizontal-dimensions top-margin = 20 between-system-space = 20 systemSeparatorMarkup = \slashSeparator } \header { title = Centered title subsubtitle = from \'Titles, from left to right\' poet = Poet composer = Composer, not OK. } melody = \relative c { a b c } \score { \new Staff = mel \melody } -- http://hemiola.eu/rightmargin.pdf -- Mark Knoop ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: rolled chords in mulivoice classical guitar score
I think I have it, Tom. Took me a long time, too. Try the code below: % This shows how to use arpeggios that cross % from one voice to another. \version 2.11.62 melody = \relative c'' { \voiceOne \set Staff.connectArpeggios = ##t e4\arpeggio d f d f2 } bass = \relative c' { \voiceTwo \set Staff.connectArpeggios = ##t d2\arpeggio g b2 } \score { \context Staff = guitar \with { \consists Span_arpeggio_engraver } \context Voice = melody { \melody } \context Voice = bass { \bass } \layout { } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 160 4) } } } Tom Cloyd wrote: Maybe. Probably. If I could get it to work. The problem is that it start a new staff. I need arpeggios across voices in arbitrary locations - of course. Here's the structure of my file: \header stuff staffClassicalGuitar = { my music, in 2 3 part voicing} \score { \new Staff { (staff definitions stuff) \staffClassicalGuitar } \layout... \midi... } \paper I got this structure right from the Lilypond 2.11.60 documentation. But I cannot find a place to put this stuff - \new Staff \with { \consists Span_arpeggio_engraver } where it will be accepted. Starting a new staff in the middle of a measure makes no sense. OR in the middle of a line. So, I assume the \with... thing needs to go into the existing \new Staff... I already have. But nothing I try works - it all causes prodigious errors. For example, this is NOT accepted... \score { \new Staff \with { \consists Span_arpeggio_engraver \clef treble \key e \minor \time 3/4 \tempo 4 = 90 [...] I've tried all the variations I can imagine, and I cannot find any real-world examples that show me the solution, and I cannot make sense of things logically. Why do I have to create a new staff to get a single arpeggio? If I want to do this arbitrarily, why is the setup for it so arcane? I must not be understanding something, but can't see what. Any help would be appreciated (!). t. Can you suggest what I need to do? Jonathan Kulp wrote: This snippet appears to do what you're asking: http://lilypond.org/doc/v2.11/input/lsr/lilypond-snippets/Expressive-marks Go down to where it says Creating arpeggios across notes in different voices. Jon % % Start cut--pastable-section % \paper { #(define dump-extents #t) indent = 0\mm line-width = 160\mm force-assignment = # line-width = #(- line-width (* mm 3.00)) } \layout { } % % ly snippet: % \sourcefilename creating-arpeggios-across-notes-in-different-voices.ly \sourcefileline 0 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it %% This file is in the public domain. \version 2.11.62 \header { lsrtags = expressive-marks texidoces = Se puede trazar un símbolo de arpegio entre notas de distintas voces que están sobre el mismo pentagrama si el grabador @code{Span_arpeggio_engraver} se traslada al contexto de @code{Staff} context: doctitlees = Crear arpegios entre notas de voces distintas texidoc = An arpeggio can be drawn across notes in different voices on the same staff if the @code{Span_arpeggio_engraver} is moved to the @code{Staff} context: doctitle = Creating arpeggios across notes in different voices } % begin verbatim \new Staff \with { \consists Span_arpeggio_engraver } \relative c' { \set Staff.connectArpeggios = ##t { e' g4\arpeggio d f d f2 } \\ { d, f2\arpeggio g b2 } } % % end ly snippet % Tom Cloyd wrote: Greetings! After digging around considerably in the excellent Lilypond documentation (am running 2.11.60 on Kubuntu Linux 8.04.1), and running a number of experiments, I'm defeated on this problem. A simple test case: I have two voices in a single staff. Periodically, I want to indicate that the notea co-occuring at a given point are to be played as a rolled arpeggio. There is NO chord notated - just two voices with single notes. Please don't suggest I merge the voices. That's not the solution I'm looking for. P. 90 of Lilypond Notation reference illustrates a rolled arpeggio across different notes in the same staff, but it involves notes in chord clusters. Besides, my Lilypond doesn't at all like this stuff (from the reference): \new Staff \with { \consists Span_arpeggio_engraver } \relative c' {... I get this error - warning: cannot find file: `consists' So, even if I HAD chord clusters, I'd still have a problem. This rolled arpeggio business is very common in
Re: rolled chords in mulivoice classical guitar score
Ok this is better. I put the \set Staff.connectArpeggios in the score block instead. This is more elegant: % This shows how to use arpeggios that cross % from one voice to another. \version 2.11.62 melody = \relative c'' { \voiceOne e4\arpeggio d f d f2 } bass = \relative c' { \voiceTwo d2\arpeggio g b2 } \score { \context Staff = guitar \with { \consists Span_arpeggio_engraver } \set Staff.connectArpeggios = ##t \context Voice = melody { \melody } \context Voice = bass { \bass } \layout { } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 160 4) } } } Tom Cloyd wrote: Maybe. Probably. If I could get it to work. The problem is that it start a new staff. I need arpeggios across voices in arbitrary locations - of course. Here's the structure of my file: \header stuff staffClassicalGuitar = { my music, in 2 3 part voicing} \score { \new Staff { (staff definitions stuff) \staffClassicalGuitar } \layout... \midi... } \paper I got this structure right from the Lilypond 2.11.60 documentation. But I cannot find a place to put this stuff - \new Staff \with { \consists Span_arpeggio_engraver } where it will be accepted. Starting a new staff in the middle of a measure makes no sense. OR in the middle of a line. So, I assume the \with... thing needs to go into the existing \new Staff... I already have. But nothing I try works - it all causes prodigious errors. For example, this is NOT accepted... \score { \new Staff \with { \consists Span_arpeggio_engraver \clef treble \key e \minor \time 3/4 \tempo 4 = 90 [...] I've tried all the variations I can imagine, and I cannot find any real-world examples that show me the solution, and I cannot make sense of things logically. Why do I have to create a new staff to get a single arpeggio? If I want to do this arbitrarily, why is the setup for it so arcane? I must not be understanding something, but can't see what. Any help would be appreciated (!). t. Can you suggest what I need to do? Jonathan Kulp wrote: This snippet appears to do what you're asking: http://lilypond.org/doc/v2.11/input/lsr/lilypond-snippets/Expressive-marks Go down to where it says Creating arpeggios across notes in different voices. Jon % % Start cut--pastable-section % \paper { #(define dump-extents #t) indent = 0\mm line-width = 160\mm force-assignment = # line-width = #(- line-width (* mm 3.00)) } \layout { } % % ly snippet: % \sourcefilename creating-arpeggios-across-notes-in-different-voices.ly \sourcefileline 0 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it %% This file is in the public domain. \version 2.11.62 \header { lsrtags = expressive-marks texidoces = Se puede trazar un símbolo de arpegio entre notas de distintas voces que están sobre el mismo pentagrama si el grabador @code{Span_arpeggio_engraver} se traslada al contexto de @code{Staff} context: doctitlees = Crear arpegios entre notas de voces distintas texidoc = An arpeggio can be drawn across notes in different voices on the same staff if the @code{Span_arpeggio_engraver} is moved to the @code{Staff} context: doctitle = Creating arpeggios across notes in different voices } % begin verbatim \new Staff \with { \consists Span_arpeggio_engraver } \relative c' { \set Staff.connectArpeggios = ##t { e' g4\arpeggio d f d f2 } \\ { d, f2\arpeggio g b2 } } % % end ly snippet % Tom Cloyd wrote: Greetings! After digging around considerably in the excellent Lilypond documentation (am running 2.11.60 on Kubuntu Linux 8.04.1), and running a number of experiments, I'm defeated on this problem. A simple test case: I have two voices in a single staff. Periodically, I want to indicate that the notea co-occuring at a given point are to be played as a rolled arpeggio. There is NO chord notated - just two voices with single notes. Please don't suggest I merge the voices. That's not the solution I'm looking for. P. 90 of Lilypond Notation reference illustrates a rolled arpeggio across different notes in the same staff, but it involves notes in chord clusters. Besides, my Lilypond doesn't at all like this stuff (from the reference): \new Staff \with { \consists Span_arpeggio_engraver } \relative c' {... I get this error - warning: cannot find file: `consists' So, even if I HAD chord clusters, I'd still have a problem. This rolled arpeggio business is very common in
Re: Right-margin aligning of
I don't think right-margin exists - there's just left-margin and line-width. Since left and right margins are by default 10mm, setting left margin to 20mm means that the right-margin becomes 0mm. Mark, Setting the line-width indeed solved my problem. Thank you! Jethro. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: scheme music function going backwards in time (or better mp dolce) [solved]
2008/10/4 Graham Percival [EMAIL PROTECTED]: This version of the files now do the following: - commands are placed after the note they belong to -- ie \pdolce behaves just like \p. Except for the dolce part. :) Hi graham, these functions are quite interesting, but would it be possible to have a single function that takes two strings as arguments and makes the appropriate composite dynamic mark? e.g. instead of having to predefine plegato = #(make-dynamic-extra p legato) and then use \relative { c\plegato } you could directly type \relative { c\compDyn #p #legato } So far, the only way I've found to do this is by using a music function -- and that brings us back to the not-backwards-in-time problem. Cheers, Valentin ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond midi to stdout?
I'm glad you asked! The program is intended to have a performance mode: you enter a set of requirements and restrictions on the command-line (this is the creative part!) and then see what it produces. The program then does some combinatorial number-crunching, which can take a long time to complete - in some cases unrealistically long. However, it uses Python generators, so that each small unit of output (i.e., bar) is yielded immediately and then forgotten about, and we begin to see output straight away. Without this feature, some of the larger operations would simply fill the memory and never complete. This way, it can begin to perform immediately. Of course, it is possible to play midi files (or scores) produced by Lilypond at the end of the process, but that may be much later, or never. To date, I've been using the sox synth to play the results, but that's pretty limited; and then by triggering some piano samples, but I realized I was re-inventing midi; and since my program already includes a function to convert my numerical representation of music into Lilypond-friendly strings, the midi data is already being produced. If only I could get my hands on it! Did you try to pipe the MIDI file through tail -f ? That part seems to work, even if I don't know if the engraving during input can work. Greetlings from Lake Constance --- fiëé visuëlle Henning Hraban Ramm http://www.fiee.net http://angerweit.tikon.ch/lieder/ https://www.cacert.org (I'm an assurer) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: insertion of UTF-8 characters
Hi Trevor, 2008/10/14 Trevor Daniels [EMAIL PROTECTED]: Tom It has to be within a \markup and not in quotes. And xc2a9 should be 00a9. Try c'4^\markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) } or just \markup { Copyright 2008 #(ly:export (ly:wide-char-utf-8 #x00a9)) } outside the score block to place it in text, or for the copyright line, try copyright = \markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) 2008 } For the docs examples, I think it would be better to replace the Scheme hack with \char, which uses ly:wide-char-utf-8 internally. c'4^\markup { \char ##xa9 } Regards, Neil ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
unfoldRepeats
Okay, so I think I understand now. I think this may be a bug. Or at least, not documented. I don't know how to say this in proper lilypond terms, but the repeats don't unfold. \score { \new Staff { \time 1/4 \repeat volta 2 {s4} \alternative { {s4} {s4} } } { c'4 g a \bar |. } } \score { \unfoldRepeats { \new Staff { \time 1/4 \repeat volta 2 {s4} \alternative { {s4} {s4} } } { c'4 g a \bar |. } } } Does work. Is this correct? Can this be changed? ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: unfoldRepeats
Your mistake is that you believe that the repeats can be separated from the notes. Please always keep in mind that the input should describe the musical meaning, not only the resulting layout. In this case, the music that should be played is c g c a, right. In notation, you can use repeats as a shorthand and similarly LilyPond input syntax allows to use \repeat. However, this should be done together with the music and not separated, as you have done. I would rather call it a bug that your first example produces the result it does. Just replace c'4 g a in your examples by \repeat volta 2 {c'4} \alternative{{ g}{ a}} /Mats Quoting James E. Bailey [EMAIL PROTECTED]: Okay, so I think I understand now. I think this may be a bug. Or at least, not documented. I don't know how to say this in proper lilypond terms, but the repeats don't unfold. \score { \new Staff { \time 1/4 \repeat volta 2 {s4} \alternative { {s4} {s4} } } { c'4 g a \bar |. } } \score { \unfoldRepeats { \new Staff { \time 1/4 \repeat volta 2 {s4} \alternative { {s4} {s4} } } { c'4 g a \bar |. } } } Does work. Is this correct? Can this be changed? ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: square note heads for cluster
M == Mark Polesky [EMAIL PROTECTED] writes: M I'm finding myself able to make the clusters look however I want M them to look, but I want one all-encompassing function to apply M arbitrary cluster-styles on the fly. M It's not necessarily difficult, but I want to support a wide M variety of cluster-styles, which will take me some time. M In the end, I'd have my function generate embedded-ps paths and M fill in the missing notes dynamically, but for the moment I'm M applying my cluster-styles manually (see below). Thanks. I guess an approach could be to set up a music-function which takes as input a chord and adds a markup to it: - finds the positions of the top and lower notehead - draws or fills (depending on duration) a box with some note-head-size width (or thinner if note-heads are to be included) and y0 and y1 = extent of chord. Preferably doing some graphical tweaks such as thicker lines on top/bottom than sides etc. - optionally gets rid of default noteheads, or replacing with some manually prescribed heads (pr. note/pr. chord) Ill send something which could be a start in the next post. -anders ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: insertion of current date in text string
Yes, this is the solution. Put this right below the \version 2.11.60 in my file... date = #(strftime %Y.%m.%d (localtime (current-time))) % define a variable to hold the formatted date Then \header { [...] subsubtitle = \markup { score version of \date } [...]} This automatically datestamps my score each time I make a change and print a new version. That was all I was after. Thanks to the several folks who sent me the solution. t. Paul Scott wrote: Tom Cloyd wrote: OK, I've exhausted myself trying to solve another problem I understand that I can put a current date into a \header{... field (or whatever they're called), by doing something like date = #(strftime %Y.%m.%d (localtime (current-time))) \header{ . . . subsubtitle = \date BUT, how do I do this: subsubtitle = { version + \date} I cannot find an example, and haven't been able to figure it out empirically. Just add \markup. subsubtitle = \markup{ version \date } Paul Scott -- ~ Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist Bellingham, Washington, U.S.A: (360) 920-1226 [EMAIL PROTECTED] (email) TomCloyd.com (website) sleightmind.wordpress.com (mental health weblog) ~ ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: rolled chords in mulivoice classical guitar score
Maybe. Probably. If I could get it to work. The problem is that it start a new staff. I need arpeggios across voices in arbitrary locations - of course. Here's the structure of my file: \header stuff staffClassicalGuitar = { my music, in 2 3 part voicing} \score { \new Staff { (staff definitions stuff) \staffClassicalGuitar } \layout... \midi... } \paper I got this structure right from the Lilypond 2.11.60 documentation. But I cannot find a place to put this stuff - \new Staff \with { \consists Span_arpeggio_engraver } where it will be accepted. Starting a new staff in the middle of a measure makes no sense. OR in the middle of a line. So, I assume the \with... thing needs to go into the existing \new Staff... I already have. But nothing I try works - it all causes prodigious errors. For example, this is NOT accepted... \score { \new Staff \with { \consists Span_arpeggio_engraver \clef treble \key e \minor \time 3/4 \tempo 4 = 90 [...] I've tried all the variations I can imagine, and I cannot find any real-world examples that show me the solution, and I cannot make sense of things logically. Why do I have to create a new staff to get a single arpeggio? If I want to do this arbitrarily, why is the setup for it so arcane? I must not be understanding something, but can't see what. Any help would be appreciated (!). t. Can you suggest what I need to do? Jonathan Kulp wrote: This snippet appears to do what you're asking: http://lilypond.org/doc/v2.11/input/lsr/lilypond-snippets/Expressive-marks Go down to where it says Creating arpeggios across notes in different voices. Jon % % Start cut--pastable-section % \paper { #(define dump-extents #t) indent = 0\mm line-width = 160\mm force-assignment = # line-width = #(- line-width (* mm 3.00)) } \layout { } % % ly snippet: % \sourcefilename creating-arpeggios-across-notes-in-different-voices.ly \sourcefileline 0 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it %% This file is in the public domain. \version 2.11.62 \header { lsrtags = expressive-marks texidoces = Se puede trazar un símbolo de arpegio entre notas de distintas voces que están sobre el mismo pentagrama si el grabador @code{Span_arpeggio_engraver} se traslada al contexto de @code{Staff} context: doctitlees = Crear arpegios entre notas de voces distintas texidoc = An arpeggio can be drawn across notes in different voices on the same staff if the @code{Span_arpeggio_engraver} is moved to the @code{Staff} context: doctitle = Creating arpeggios across notes in different voices } % begin verbatim \new Staff \with { \consists Span_arpeggio_engraver } \relative c' { \set Staff.connectArpeggios = ##t { e' g4\arpeggio d f d f2 } \\ { d, f2\arpeggio g b2 } } % % end ly snippet % Tom Cloyd wrote: Greetings! After digging around considerably in the excellent Lilypond documentation (am running 2.11.60 on Kubuntu Linux 8.04.1), and running a number of experiments, I'm defeated on this problem. A simple test case: I have two voices in a single staff. Periodically, I want to indicate that the notea co-occuring at a given point are to be played as a rolled arpeggio. There is NO chord notated - just two voices with single notes. Please don't suggest I merge the voices. That's not the solution I'm looking for. P. 90 of Lilypond Notation reference illustrates a rolled arpeggio across different notes in the same staff, but it involves notes in chord clusters. Besides, my Lilypond doesn't at all like this stuff (from the reference): \new Staff \with { \consists Span_arpeggio_engraver } \relative c' {... I get this error - warning: cannot find file: `consists' So, even if I HAD chord clusters, I'd still have a problem. This rolled arpeggio business is very common in classical guitar music. I'm a little surprised there isn't some simple way to indicate it, but...maybe I'm missing something. Any help would be much appreciated! Tom -- ~ Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist Bellingham, Washington, U.S.A: (360) 920-1226 [EMAIL PROTECTED] (email) TomCloyd.com (website) sleightmind.wordpress.com (mental health weblog) ~ ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: insertion of UTF-8 characters
Neil Puttock wrote Tuesday, October 14, 2008 9:33 PM Hi Trevor, 2008/10/14 Trevor Daniels [EMAIL PROTECTED]: Tom It has to be within a \markup and not in quotes. And xc2a9 should be 00a9. Try c'4^\markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) } or just \markup { Copyright 2008 #(ly:export (ly:wide-char-utf-8 #x00a9)) } outside the score block to place it in text, or for the copyright line, try copyright = \markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) 2008 } For the docs examples, I think it would be better to replace the Scheme hack with \char, which uses ly:wide-char-utf-8 internally. c'4^\markup { \char ##xa9 } Absolutely! This -was- documented, I now realise, in App B.8.6, but I hadn't met it before. I'll change the new examples I added today to use it, as you suggest. And remove the Scheme hack. Thanks. Regards, Neil Trevor ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: scheme music function going backwards in time (or better mp dolce) [solved]
On Tue, 14 Oct 2008 11:10:10 +0200 Valentin Villenave [EMAIL PROTECTED] wrote: these functions are quite interesting, but would it be possible to have a single function that takes two strings as arguments and makes the appropriate composite dynamic mark? Not that I know of. \relative { c\compDyn #p #legato } Looks *way* uglier than \plegato, but I suppose it has the advantage of not needing a predef. Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: insertion of UTF-8 characters
Good lord above, yes! THIS is immediately understandable if one has experience with a multitude of other programming languages, whereas that other approach is exasperating nonsense. Thanks, fellows, for chasing this one to ground. t. Trevor Daniels wrote: Neil Puttock wrote Tuesday, October 14, 2008 9:33 PM Hi Trevor, 2008/10/14 Trevor Daniels [EMAIL PROTECTED]: Tom It has to be within a \markup and not in quotes. And xc2a9 should be 00a9. Try c'4^\markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) } or just \markup { Copyright 2008 #(ly:export (ly:wide-char-utf-8 #x00a9)) } outside the score block to place it in text, or for the copyright line, try copyright = \markup { #(ly:export (ly:wide-char-utf-8 #x00a9)) 2008 } For the docs examples, I think it would be better to replace the Scheme hack with \char, which uses ly:wide-char-utf-8 internally. c'4^\markup { \char ##xa9 } Absolutely! This -was- documented, I now realise, in App B.8.6, but I hadn't met it before. I'll change the new examples I added today to use it, as you suggest. And remove the Scheme hack. Thanks. Regards, Neil Trevor ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user -- ~ Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist Bellingham, Washington, U.S.A: (360) 920-1226 [EMAIL PROTECTED] (email) TomCloyd.com (website) sleightmind.wordpress.com (mental health weblog) ~ ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
ragged-last-bottom in multiple scores
I have a collection of scores that I'd like to print in one book. Is there any way of getting the non-last-scores to use ragged-last-bottom=##t ? Currently the only way I can think of doing this is by using lilypond-book: \documentclass{article} \begin{document} \lilypondfile{peice1.ly} \lilypondfile{piece2.ly} \end{document} but it seems silly to use LaTeX just to put two scores together and have consecutive page numbers. I guess that another option would be to use ghostscript or some pdf program to combine the independently-created pdfs and number them... but again, that seems like overkill. Cheers, - Graham \version 2.11.62 \paper { ragged-last-bottom = ##t } \layout { ragged-last-bottom = ##t } \book{ \score { { \repeat unfold 200 { c'1 } \bar |. } \layout { ragged-last-bottom = ##t } } % ideally reset everything \pageBreak \score { { \repeat unfold 200 { d'1 } \bar |. } \layout { ragged-last-bottom = ##t } } } ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
new page-spacing area
As an addendum to my question about ragged-last-bottom, I wonder if it would be possible to define new page areas. This idea is inspired by the \newSpacingSection for horizontal spacing -- it would be nice if we could say \newPageArea (or whatever) and have the page-breaking algorithm (and related page stuff) reset. Even laying aside my problems, this could reduce the time complexity of spacing scores -- dealing with k problems of size n is easier than dealing with 1 problem of size n*k. (assuming the spacing algorithm isn't less than O(n) :) Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ragged-last-bottom in multiple scores
On Tue, 2008-10-14 at 14:54 -0700, Graham Percival wrote: I have a collection of scores that I'd like to print in one book. Is there any way of getting the non-last-scores to use ragged-last-bottom=##t ? Check out Nicolas' new \bookparts. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ragged-last-bottom in multiple scores
On Tue, 14 Oct 2008 17:07:13 -0700 Joe Neeman [EMAIL PROTECTED] wrote: On Tue, 2008-10-14 at 14:54 -0700, Graham Percival wrote: I have a collection of scores that I'd like to print in one book. Is there any way of getting the non-last-scores to use ragged-last-bottom=##t ? Check out Nicolas' new \bookparts. Looks awesome; I had a feeling that I'd seen something recently. Any chance of this getting merged for 2.11.63? Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ragged-last-bottom in multiple scores
On Tue, 2008-10-14 at 17:26 -0700, Graham Percival wrote: On Tue, 14 Oct 2008 17:07:13 -0700 Joe Neeman [EMAIL PROTECTED] wrote: On Tue, 2008-10-14 at 14:54 -0700, Graham Percival wrote: I have a collection of scores that I'd like to print in one book. Is there any way of getting the non-last-scores to use ragged-last-bottom=##t ? Check out Nicolas' new \bookparts. Looks awesome; I had a feeling that I'd seen something recently. Any chance of this getting merged for 2.11.63? Aargh, I thought I had already reviewed this, but I see now that I've left Nicolas waiting for almost 2 months :( Anyway, now I've done some comments. Joe ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: rolled chords in mulivoice classical guitar score
Jonathan, This looks interesting, and its structure is not hard to discern (for me), but it requires me to split my guitar scores into voices and write them separately from beginning to end. This is possible, but not exactly what one expects to do, except with true multi-voice scores (vocal, orchestral, etc.). Further, I find that splitting a score into voices is at times a formalistic strategy but at other times a practical one. I have several scores which are simply quicker to notate in two voices, except for a few measures which make more sense in three voices. Your approach blows this way of working out of the water. It forces me to split things into a fixed number of voices from beginning to end. I remain puzzled about how hard this is all is. It just seems awfully strained, and I don't yet see a graceful solution - although the formalistic elegance of your suggestion is appealing for certain types of scores. But...is this the best approach available for a guitarist? If so, then I must, in effect, dissect my scores into horizontal layers, and their complexity instantly increases dramatically. I dread this. t. Jonathan Kulp wrote: Ok this is better. I put the \set Staff.connectArpeggios in the score block instead. This is more elegant: % This shows how to use arpeggios that cross % from one voice to another. \version 2.11.62 melody = \relative c'' { \voiceOne e4\arpeggio d f d f2 } bass = \relative c' { \voiceTwo d2\arpeggio g b2 } \score { \context Staff = guitar \with { \consists Span_arpeggio_engraver } \set Staff.connectArpeggios = ##t \context Voice = melody { \melody } \context Voice = bass { \bass } \layout { } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 160 4) } } } Tom Cloyd wrote: Maybe. Probably. If I could get it to work. The problem is that it start a new staff. I need arpeggios across voices in arbitrary locations - of course. Here's the structure of my file: \header stuff staffClassicalGuitar = { my music, in 2 3 part voicing} \score { \new Staff { (staff definitions stuff) \staffClassicalGuitar } \layout... \midi... } \paper I got this structure right from the Lilypond 2.11.60 documentation. But I cannot find a place to put this stuff - \new Staff \with { \consists Span_arpeggio_engraver } where it will be accepted. Starting a new staff in the middle of a measure makes no sense. OR in the middle of a line. So, I assume the \with... thing needs to go into the existing \new Staff... I already have. But nothing I try works - it all causes prodigious errors. For example, this is NOT accepted... \score { \new Staff \with { \consists Span_arpeggio_engraver \clef treble \key e \minor \time 3/4 \tempo 4 = 90 [...] I've tried all the variations I can imagine, and I cannot find any real-world examples that show me the solution, and I cannot make sense of things logically. Why do I have to create a new staff to get a single arpeggio? If I want to do this arbitrarily, why is the setup for it so arcane? I must not be understanding something, but can't see what. Any help would be appreciated (!). t. Can you suggest what I need to do? Jonathan Kulp wrote: This snippet appears to do what you're asking: http://lilypond.org/doc/v2.11/input/lsr/lilypond-snippets/Expressive-marks Go down to where it says Creating arpeggios across notes in different voices. Jon % % Start cut--pastable-section % \paper { #(define dump-extents #t) indent = 0\mm line-width = 160\mm force-assignment = # line-width = #(- line-width (* mm 3.00)) } \layout { } % % ly snippet: % \sourcefilename creating-arpeggios-across-notes-in-different-voices.ly \sourcefileline 0 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it %% This file is in the public domain. \version 2.11.62 \header { lsrtags = expressive-marks texidoces = Se puede trazar un símbolo de arpegio entre notas de distintas voces que están sobre el mismo pentagrama si el grabador @code{Span_arpeggio_engraver} se traslada al contexto de @code{Staff} context: doctitlees = Crear arpegios entre notas de voces distintas texidoc = An arpeggio can be drawn across notes in different voices on the same staff if the @code{Span_arpeggio_engraver} is moved to the @code{Staff} context: doctitle = Creating arpeggios across notes in different voices } % begin verbatim \new Staff \with { \consists Span_arpeggio_engraver } \relative c' { \set Staff.connectArpeggios = ##t { e' g4\arpeggio d f d f2 } \\ { d, f2\arpeggio g b2 } } %
Re: rolled chords in mulivoice classical guitar score
Adjunct to my previous post - I'll admit that my Ruby programming experience biases me in the direction of seeking simple, direct, comprehensible, heuristic solutions. I think I may have found one - Building on my notion of using this construct to manage polyphonically structured scores - {} \\ {} it should be possible to restructure voicing so as to force structuring of chords into expressions which allow use of the simple |\arpeggio construct. This won't make sense formally, but THAT will not affect the output score, which, after all IS the point of this exercise. I can employ this tactic with my score immediately, and it doesn't require me to completely restructure my scores, or insert all manner of (to me) incomprehensible code or hacks or whatever. I can just get on with notating my scores, which really is my objective. I still hope for a more high level elegant solution, as, I believe, is your inclination as well. I will continue to watch this thread carefully, hoping to see something develop. In truth, if it comes from anyone, I think it's likely to be from you, so...I want to encourage you to keep thinking about it. Thanks for your care and effort on this matter, t. | Jonathan Kulp wrote: Ok this is better. I put the \set Staff.connectArpeggios in the score block instead. This is more elegant: % This shows how to use arpeggios that cross % from one voice to another. \version 2.11.62 melody = \relative c'' { \voiceOne e4\arpeggio d f d f2 } bass = \relative c' { \voiceTwo d2\arpeggio g b2 } \score { \context Staff = guitar \with { \consists Span_arpeggio_engraver } \set Staff.connectArpeggios = ##t \context Voice = melody { \melody } \context Voice = bass { \bass } \layout { } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 160 4) } } } Tom Cloyd wrote: Maybe. Probably. If I could get it to work. The problem is that it start a new staff. I need arpeggios across voices in arbitrary locations - of course. Here's the structure of my file: \header stuff staffClassicalGuitar = { my music, in 2 3 part voicing} \score { \new Staff { (staff definitions stuff) \staffClassicalGuitar } \layout... \midi... } \paper I got this structure right from the Lilypond 2.11.60 documentation. But I cannot find a place to put this stuff - \new Staff \with { \consists Span_arpeggio_engraver } where it will be accepted. Starting a new staff in the middle of a measure makes no sense. OR in the middle of a line. So, I assume the \with... thing needs to go into the existing \new Staff... I already have. But nothing I try works - it all causes prodigious errors. For example, this is NOT accepted... \score { \new Staff \with { \consists Span_arpeggio_engraver \clef treble \key e \minor \time 3/4 \tempo 4 = 90 [...] I've tried all the variations I can imagine, and I cannot find any real-world examples that show me the solution, and I cannot make sense of things logically. Why do I have to create a new staff to get a single arpeggio? If I want to do this arbitrarily, why is the setup for it so arcane? I must not be understanding something, but can't see what. Any help would be appreciated (!). t. Can you suggest what I need to do? Jonathan Kulp wrote: This snippet appears to do what you're asking: http://lilypond.org/doc/v2.11/input/lsr/lilypond-snippets/Expressive-marks Go down to where it says Creating arpeggios across notes in different voices. Jon % % Start cut--pastable-section % \paper { #(define dump-extents #t) indent = 0\mm line-width = 160\mm force-assignment = # line-width = #(- line-width (* mm 3.00)) } \layout { } % % ly snippet: % \sourcefilename creating-arpeggios-across-notes-in-different-voices.ly \sourcefileline 0 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it %% This file is in the public domain. \version 2.11.62 \header { lsrtags = expressive-marks texidoces = Se puede trazar un símbolo de arpegio entre notas de distintas voces que están sobre el mismo pentagrama si el grabador @code{Span_arpeggio_engraver} se traslada al contexto de @code{Staff} context: doctitlees = Crear arpegios entre notas de voces distintas texidoc = An arpeggio can be drawn across notes in different voices on the same staff if the @code{Span_arpeggio_engraver} is moved to the @code{Staff} context: doctitle = Creating arpeggios across notes in different voices } % begin verbatim \new Staff \with { \consists Span_arpeggio_engraver } \relative c' { \set Staff.connectArpeggios = ##t
Re: rolled chords in mulivoice classical guitar score
Sorry. I spoke too soon. This is no solution. It messes up the VISIBLE voicing in the score - the direction of stems. It also cannot be used to arpeggiate across chords where different voices have different durations - unless one breaks notes up into tied groups. This a bad solution. Sigh. I still have no accessible solution. t. Tom Cloyd wrote: Adjunct to my previous post - I'll admit that my Ruby programming experience biases me in the direction of seeking simple, direct, comprehensible, heuristic solutions. I think I may have found one - Building on my notion of using this construct to manage polyphonically structured scores - {} \\ {} it should be possible to restructure voicing so as to force structuring of chords into expressions which allow use of the simple |\arpeggio construct. This won't make sense formally, but THAT will not affect the output score, which, after all IS the point of this exercise. I can employ this tactic with my score immediately, and it doesn't require me to completely restructure my scores, or insert all manner of (to me) incomprehensible code or hacks or whatever. I can just get on with notating my scores, which really is my objective. I still hope for a more high level elegant solution, as, I believe, is your inclination as well. I will continue to watch this thread carefully, hoping to see something develop. In truth, if it comes from anyone, I think it's likely to be from you, so...I want to encourage you to keep thinking about it. Thanks for your care and effort on this matter, t. | Jonathan Kulp wrote: Ok this is better. I put the \set Staff.connectArpeggios in the score block instead. This is more elegant: % This shows how to use arpeggios that cross % from one voice to another. \version 2.11.62 melody = \relative c'' { \voiceOne e4\arpeggio d f d f2 } bass = \relative c' { \voiceTwo d2\arpeggio g b2 } \score { \context Staff = guitar \with { \consists Span_arpeggio_engraver } \set Staff.connectArpeggios = ##t \context Voice = melody { \melody } \context Voice = bass { \bass } \layout { } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 160 4) } } } Tom Cloyd wrote: Maybe. Probably. If I could get it to work. The problem is that it start a new staff. I need arpeggios across voices in arbitrary locations - of course. Here's the structure of my file: \header stuff staffClassicalGuitar = { my music, in 2 3 part voicing} \score { \new Staff { (staff definitions stuff) \staffClassicalGuitar } \layout... \midi... } \paper I got this structure right from the Lilypond 2.11.60 documentation. But I cannot find a place to put this stuff - \new Staff \with { \consists Span_arpeggio_engraver } where it will be accepted. Starting a new staff in the middle of a measure makes no sense. OR in the middle of a line. So, I assume the \with... thing needs to go into the existing \new Staff... I already have. But nothing I try works - it all causes prodigious errors. For example, this is NOT accepted... \score { \new Staff \with { \consists Span_arpeggio_engraver \clef treble \key e \minor \time 3/4 \tempo 4 = 90 [...] I've tried all the variations I can imagine, and I cannot find any real-world examples that show me the solution, and I cannot make sense of things logically. Why do I have to create a new staff to get a single arpeggio? If I want to do this arbitrarily, why is the setup for it so arcane? I must not be understanding something, but can't see what. Any help would be appreciated (!). t. Can you suggest what I need to do? Jonathan Kulp wrote: This snippet appears to do what you're asking: http://lilypond.org/doc/v2.11/input/lsr/lilypond-snippets/Expressive-marks Go down to where it says Creating arpeggios across notes in different voices. Jon % % Start cut--pastable-section % \paper { #(define dump-extents #t) indent = 0\mm line-width = 160\mm force-assignment = # line-width = #(- line-width (* mm 3.00)) } \layout { } % % ly snippet: % \sourcefilename creating-arpeggios-across-notes-in-different-voices.ly \sourcefileline 0 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it %% This file is in the public domain. \version 2.11.62 \header { lsrtags = expressive-marks texidoces = Se puede trazar un símbolo de arpegio entre notas de distintas voces que están sobre el mismo pentagrama si el grabador @code{Span_arpeggio_engraver} se traslada al contexto de @code{Staff} context: doctitlees = Crear arpegios entre notas de voces distintas
Re: rolled chords in mulivoice classical guitar score
Hmm. These organizational things are a matter of preference, of course. Still, I don't see why you'd have to rewrite things so dramatically. I thought I saw in one of your posts here that you had all the notes in one variable. It seems like this \score block ought to work even when all the notes are held in one variable that has mostly one voice and only occasionally another. Could you attach the actual code of one of your scores (not abbreviated, but the whole score) so I can really see what you're working with? I bet this score block can be modified to work just how you want. The reason I spent so much time figuring out this problem of arpeggiation across voices is because I know that I'll want to do it myself at some point, and in fact have already added one to an existing score where I had just been too lazy to figure out how before (!). Personally, I do break my guitar pieces into separate voices, each held in a different variable, then assemble them onto the staff in the \score block. I didn't do it this way originally but came to the conclusion eventually that it was the way to go, so as to avoid having to do lots of { } \\ {} all over the place. In the orchestral piece I'm engraving right now, I have different variables for the voices of, say, flutes 1-2. Now, a lot of the time, the fluteOneNotes variable holds the music for *both* flutes 1 and 2 since they move together with the same rhythms often, so in those places the fluteTwoNotes just has full-measure skips (s1*35 or something) while fluteOneNotes has lots of chords. At this moment I can't recall precisely why I decided to do it this way instead of just putting the occasional {}\\{} in there, but I think it had to do with the length of the multivoice passages. If they were any longer than about two or three bars, then I broke them up into different variables for each voice because I don't like having this construct {}\\{} spread over multiple lines in my text file--too hard to keep track of it. Anyway please do send me a file, even off-list if you want, because I think the problem of making an arpeggio span different voices is solved now and it's gotten into matters of organization instead of technical problems. Best, Jon Tom Cloyd wrote: Jonathan, This looks interesting, and its structure is not hard to discern (for me), but it requires me to split my guitar scores into voices and write them separately from beginning to end. This is possible, but not exactly what one expects to do, except with true multi-voice scores (vocal, orchestral, etc.). Further, I find that splitting a score into voices is at times a formalistic strategy but at other times a practical one. I have several scores which are simply quicker to notate in two voices, except for a few measures which make more sense in three voices. Your approach blows this way of working out of the water. It forces me to split things into a fixed number of voices from beginning to end. I remain puzzled about how hard this is all is. It just seems awfully strained, and I don't yet see a graceful solution - although the formalistic elegance of your suggestion is appealing for certain types of scores. But...is this the best approach available for a guitarist? If so, then I must, in effect, dissect my scores into horizontal layers, and their complexity instantly increases dramatically. I dread this. t. Jonathan Kulp wrote: Ok this is better. I put the \set Staff.connectArpeggios in the score block instead. This is more elegant: % This shows how to use arpeggios that cross % from one voice to another. \version 2.11.62 melody = \relative c'' { \voiceOne e4\arpeggio d f d f2 } bass = \relative c' { \voiceTwo d2\arpeggio g b2 } \score { \context Staff = guitar \with { \consists Span_arpeggio_engraver } \set Staff.connectArpeggios = ##t \context Voice = melody { \melody } \context Voice = bass { \bass } \layout { } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 160 4) } } } Tom Cloyd wrote: Maybe. Probably. If I could get it to work. The problem is that it start a new staff. I need arpeggios across voices in arbitrary locations - of course. Here's the structure of my file: \header stuff staffClassicalGuitar = { my music, in 2 3 part voicing} \score { \new Staff { (staff definitions stuff) \staffClassicalGuitar } \layout... \midi... } \paper I got this structure right from the Lilypond 2.11.60 documentation. But I cannot find a place to put this stuff - \new Staff \with { \consists Span_arpeggio_engraver } where it will be accepted. Starting a new staff in the middle of a measure makes no sense. OR in the middle of a line. So, I assume the \with... thing needs to go into the existing \new Staff... I already have. But nothing I try works - it all causes prodigious errors.
Re: Lilypond midi to stdout?
On Mon, 13 Oct 2008, Bertalan Fodor (LilyPondTool) wrote: Why is it important to play the midi file during generation? I'm glad you aked! The program is intended to have a performance mode: you enter a set of requirements and restrictions on the command-line (this is the creative part!) and then see what it produces. The program then does some combinatorial number-crunching, which can take a long time to complete - in some cases unrealistically long. However, it uses Python generators, so that each small unit of output (i.e., bar) is yielded immediately and then forgotton about, and we begin to see output straight away. Without this feature, some of the larger operations would simply fill the memory and never complete. This way, it can begin to perform immediately. Of course, it is possible to play midi files (or scores) produced by Lilypond at the end of the process, but that may be much later, or never. To date, I've been using the sox synth to play the results, but that's pretty limited; and then by triggering some piano samples, but I realized I was re-inventing midi; and since my program already includes a function to convert my numerical representation of music into Lilypond-friendly strings, the midi data is already being produced. If only I could get my hands on it! John O'Hagan wrote: Hi, I'm using Lilypond to print the results of an algorithmic music program written in Python. I'm looking for a way to play the results as they are produced (i.e bar by bar), and it occurred to me that simply playing Lilypond midi files with a midi player would do the trick. However, I can't figure out how to get Lilypond's midi data sent to stdout, where it could then be read from stdin by a player. Whatever I try (including python pipes and even plain shell pipes) it just writes the file to my home directory. Is there any way around this? Regards, John O'Hagan ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: rolled chords in mulivoice classical guitar score
Jonathan, First, thank you for your continued interest. Attached is my engraving of the 5th section of a Variations and Theme piece I have written - the theme comes last. The F# added to the final chord is my addition, and is there to remind listeners of the harmonic flavor of the variations they've heard previously. I have indicated with arp. below the staff where I seek to place arpeggiation indicators. I have added some comments below. I'm very interested in how you handle this whole problem of setting multipart guitar scores, as I'm much in the learning phase, still, at this point (obviously), so I'm grateful for your comments. Jonathan Kulp wrote: Hmm. These organizational things are a matter of preference, of course. Still, I don't see why you'd have to rewrite things so dramatically. I thought I saw in one of your posts here that you had all the notes in one variable. Yes - an idea taken from some of the Lilypond documentation. Could be useful where one adds, say, a second guitar or a flute or whatever, I'm thinking. It seems like this \score block ought to work even when all the notes are held in one variable that has mostly one voice and only occasionally another. Well, it's mostly 2 and sometimes 3, actually. Could you attach the actual code of one of your scores (not abbreviated, but the whole score) so I can really see what you're working with? I bet this score block can be modified to work just how you want. I'd be fascinated to see yourideas on this. The reason I spent so much time figuring out this problem of arpeggiation across voices is because I know that I'll want to do it myself at some point, and in fact have already added one to an existing score where I had just been too lazy to figure out how before (!). Ah...good - I like it when my problems lead to solutions for others as well. Personally, I do break my guitar pieces into separate voices, each held in a different variable, then assemble them onto the staff in the \score block. I didn't do it this way originally but came to the conclusion eventually that it was the way to go, so as to avoid having to do lots of { } \\ {} all over the place. In the orchestral piece I'm engraving right now, I have different variables for the voices of, say, flutes 1-2. Now, a lot of the time, the fluteOneNotes variable holds the music for *both* flutes 1 and 2 since they move together with the same rhythms often, so in those places the fluteTwoNotes just has full-measure skips (s1*35 or something) while fluteOneNotes has lots of chords. At this moment I can't recall precisely why I decided to do it this way instead of just putting the occasional {}\\{} in there, but I think it had to do with the length of the multivoice passages. If they were any longer than about two or three bars, then I broke them up into different variables for each voice because I don't like having this construct {}\\{} spread over multiple lines in my text file--too hard to keep track of it. OK, I CAN see some advantages with this approach. For one, it forces a kind of formalism which probably isn't a bad idea - a relentless part analysis. Especially could be useful for a composer, as opposed to someone merely setting down a piece from a score or whatever. Clearly a more orchestral approach, and also one that well fits one such as I who is much inclined to muck around a lot with Rennaisance and Baroque score that may be played or transcribed for classical guitar. Dowland comes readily to mind. Anyway please do send me a file, even off-list if you want, because I think the problem of making an arpeggio span different voices is solved now and it's gotten into matters of organization instead of technical problems. Well, it you think so, it's surely the case. We (I) are near to a practical solution. A cheery thought! t. ~ Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist Bellingham, Washington, U.S.A: (360) 920-1226 [EMAIL PROTECTED] (email) TomCloyd.com (website) sleightmind.wordpress.com (mental health weblog) ~ \version 2.11.60 #(set-global-staff-size 20) % 20 this is said to be standard for most scores date = #(strftime %Y.%m.%d (localtime (current-time))) % define a variable to hold the formatted date #(define RH rightHandFinger) %assigns value to RH \header { % * centered top * %dedication={dedication} %centered above title, top of page one title = Variations on a de Visee Minuet %centered below dedication subtitle = 5 - theme - Minuet in E Minor %centered below title subsubtitle = \markup { (2008.10.04-11) - version \date } %centered below subtitle %piece = (piece) %{ useful only with multi-piece set given Opus number; set flus left below meter %} instrument = For Classical Guitar %{ centered below the subsubtitle, and
Re: rolled chords in mulivoice classical guitar score
Ok I've given this a tiny tweak that I think will work the way you want. I just removed the two separate voices I had used before in the score block for the melody and bass, and replaced those with a single voice called music that will hold all voices, instantiated on-the-fly with {}\\{}. The arpeggio still works beautifully. I think with this score block you should be able to move freely between a single voice and two or more voices and simply add the \arpeggio command whenever you want one. Is this the behavior you were looking for? Jon \version 2.11.62 music = \relative c'' { c,8 e g c e c g c { e4 f g, b g'2\arpeggio } \\ { d2 g,\arpeggio } } \score { \context Staff = guitar \with { \consists Span_arpeggio_engraver } \set Staff.connectArpeggios = ##t \context Voice = music { \music } \layout { } \midi { \context { \Score } } } Tom Cloyd wrote: Jonathan, This looks interesting, and its structure is not hard to discern (for me), but it requires me to split my guitar scores into voices and write them separately from beginning to end. This is possible, but not exactly what one expects to do, except with true multi-voice scores (vocal, orchestral, etc.). -- Jonathan Kulp http://www.jonathankulp.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: WANTED: Design for documentation (Photoshop power users!)
Patrick McCarty wrote: I'm still experimenting with this. :-) I've created another design with a color palette that passes the W3C Web Content Accessibility guidelines for color contrast: This is great for me! Patrick ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: unusual Alto Clef
Jonathan Kulp wrote: Cool!! I've attached the infamous Ravel quartet snippet that prompted me to post the query about this clef in the first place. Your C clef looks nice in there, almost like the original. Of course in this passage there's a switch to treble clef, and when it returns to alto, the clef is a teency bit too big (the original is almost the same size vertically but less inky), but still this is much closer to the appearance of the original score than a standard alto clef. Thanks for creating that, Valentin! I'm adding it to my snippet definitions file. :) I notice the cool alto clef doesn't have any space in front (to the left) like the other clefs. Is this normal for this clef, or does it need to be tweaked? Patrick ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user