Re: video generation
On 4 September 2017 at 06:24, Knut Petersen <knut_peter...@t-online.de> wrote: > Am 03.09.2017 um 19:36 schrieb Adam Spiers: >> However please don't write off ly2video just because I >> haven't done much with it recently (except for today). > > The most annoying bugs should really be fixed. One example: The problem that > ly2video needs pure 7-bit ascii as input has been discussed on this list 54 > months ago. Yes, as I mentioned on GitHub this is almost certainly best fixed by updating ly2video to use python-ly instead of its ancient ly module imported from a very old Frescobaldi: https://github.com/aspiers/ly2video/issues/58#issuecomment-326819078 I don't expect this would be a big job, but unfortunately I didn't get round it yet since I rarely have free time, the issue didn't affect me at all, and noone else seemed keen to collaborate. Having said that, maybe it's worth directing our efforts in other directions anyway: >> It has some nice features, like multiple scrolling modes, and the >> ability to >> synchronise the video perfectly with live performances with variable >> tempi. In the long term it'd be great if the LilyPond community >> converged on a single best-of-breed solution. > > Yes. I've filed https://github.com/aspiers/ly2video/issues/67 to track this. Are you willing to help with it? Obviously there's no rush (I'm not free most of this month anyway), but it would be a lot harder to achieve without your support. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Video generation on linux systems: Note and rests change color
On 3 September 2017 at 16:47, David Kastrup <d...@gnu.org> wrote: > Adam Spiers <lilypond-u...@adamspiers.org> writes: >> On 21 July 2017 at 09:00, Knut Petersen <knut_peter...@t-online.de> wrote: >>> To generate score videos like Bach: Invention 1, Wolf: Resignation and >>> Peterson-Berger: I Fyrreskoven >>> that give a different color to notes and rest while they are active you >>> might use the attached files if >>> you run a unixoid system like linux. >> >> This is a very interesting approach - thanks a lot for sharing! I >> particularly like the highlighting of notes currently being played. >> >> Two questions: >> >> 1. Please can you put the source files in a git repository and publish >> it somewhere (e.g. GitLab.com), to reduce barrier to collaboration? >> 2. Would it be possible to generate video which is perfectly >> synchronised with a live performance with variable tempi? > > A patch for his changes in LilyPond is in the issue tracker at > <https://sourceforge.net/p/testlilyissues/issues/5162/> but it seems > basically abandoned after discussion. You might want to look at the > Rietveld issue to see what it would require taking it forward. Thanks for the pointer. That's just for the hooks though; there's still the mkvideo script and videohelper.ily, so I think it would help to place those in a git repo somewhere, together with a README which explains how to use them (including links to the patches and code review). ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: video generation
Hi all, On 2 September 2017 at 22:07, Paulwrote: > On 09/01/2017 05:26 PM, Flaming Hakama by Elaine wrote: >>https://github.com/aspiers/ly2video > >>I wanted to see if anyone else (besides the author of that approach) has >>been able to get this to work. I just fixed some fundamental flaws in the installation process which crept in when I accepted a pull request to switch it to use setuptools. >Hi, I got it to work, but I did it with an installation of LilyDev >(GNU/Linux Debian) in a virtual machine. (See the LilyPond contributor's >guide.) That sounds like a good idea. Please also do ask for help by stating the exact problems you encountered :-) I've been distracted away from ly2video development by other things lately, but I still try to help with reported problems. As mentioned above, I just fixed some critical breakage in the installation process, so it'd be good to know if that helps. >You could try that or use Knut's tool. I'd probably use Knut's if >I were starting today since it seems more recent / actively developed. Knut's tool certainly looks worth investigating, and it's certainly possible his approach is better than the one in ly2video in some respects. However please don't write off ly2video just because I haven't done much with it recently (except for today). It has some nice features, like multiple scrolling modes, and the ability to synchronise the video perfectly with live performances with variable tempi. In the long term it'd be great if the LilyPond community converged on a single best-of-breed solution. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Video generation on linux systems: Note and rests change color
Hi Knut, On 21 July 2017 at 09:00, Knut Petersenwrote: > Hi everybody! > > To generate score videos like Bach: Invention 1, Wolf: Resignation and > Peterson-Berger: I Fyrreskoven > that give a different color to notes and rest while they are active you > might use the attached files if > you run a unixoid system like linux. This is a very interesting approach - thanks a lot for sharing! I particularly like the highlighting of notes currently being played. Two questions: 1. Please can you put the source files in a git repository and publish it somewhere (e.g. GitLab.com), to reduce barrier to collaboration? 2. Would it be possible to generate video which is perfectly synchronised with a live performance with variable tempi? Thanks! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: proportional spacing for chords?
On 15 March 2017 at 18:12, David Wrightwrote: > I took your source and changed two things: > a4 → a0 > 64/256 → 1/32 > and it looks superficially ok to me. Thanks, that was the hint I needed! > Perhaps you just have a room problem. Yes, I guess there are some hidden constraints on spacing around ChordNames which were pushing the bar lines around. It would still be good to understand how LilyPond positions ChordNames, and which parameters could be tweaked to affect this, so that I could get away with bigger fonts ... but this is a good enough solution. > I've made limited use of > proportional notation, very useful for certain pieces, but I > would prefer the music to look like a proper score rather than > have some rigorous mathematical constraint applied to the > notes. So I've never expected the barlines in each system to > line up exactly with the others. Sure, but my use case is different. The goal is not to render a proper score, but to render something for easy comparison of the different chord sequences used in each chorus, and for this vertical alignment is essential. It's especially important in order to show when Coltrane anticipates (pushes) or postpones (pulls) any particular change of tonality, as this forms a crucial part of the tension and release he controls so masterfully. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: proportional spacing for chords?
On 15 March 2017 at 14:33, Robert Schmaus <robert.schm...@web.de> wrote: > Am 15/03/2017 um 14:54 schrieb Adam Spiers: >> On 15 March 2017 at 13:45, Robert Schmaus <robert.schm...@web.de> wrote: >>> How about this: >>> >>> \context { >>> \Score >>> proportionalNotationDuration = #(ly:make-moment 1/10) >>> \override SpacingSpanner.uniform-stretching = ##t >>> } >> >> That's what I was already trying ... > > I know - but in your file the proportionalNotationDuration was set to 64/256 > ... with 1/10, the chords are placed furher apart. Maybe it's too far apart > with 1/10 but with smaller font size, you can navigate to some value that's > better. I tried with several different values, and beyond a certain fraction, the results were always the same, i.e. roughly proportional if barlines are omitted, and hopelessly non-proportional if barlines are included :-/ ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: proportional spacing for chords?
On 15 March 2017 at 14:35, Klaus Blum <benbigno...@gmx.de> wrote: > Adam Spiers-5 wrote >> On 15 March 2017 at 12:28, Simon Albrecht wrote: >>> why not put all the music expressions in one score in >>> parallel? >> But please could you give an example of how to do that, bearing in mind that >> there are no notes or staves, only chord names? > >basically the structure would be like this: > > << > \new ChordNames { ... } > \new ChordNames { ... } > ... >>> > >But please consider that you will need more horizontal space, because the >different choruses lose their individual spacing. That's fine. Gaps are expected and desired. >Therefore I reduced the >staff size to prevent an automatic line break. That's fine too. I don't have any restrictions on page size or font size. >Nevertheless, having strictly proportional spacing would eat up even more >space. Yes, but that's really what I need, to make it clear where additional chords appear within each bar. Viewing a 12-bar chorus (or any jazz chord sheet, really) just doesn't make much sense without proportional spacing. >Different Rehearsal marks at the same time are only possible by moving the >Mark_engraver to the ChordNames context. Instead, I "abused" instrumentName. Yeah, that's slightly unfortunate but tolerable - another reason why a non-parallel solution would be nicer. >Blue-Train-chords-parallel.ly Thanks a lot! If you find a way to get this proportionally spaced then that would be good enough for me. But I suspect if you do, the parallelisation wouldn't bring any additional benefit ... ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: proportional spacing for chords?
On 15 March 2017 at 12:28, Simon Albrecht <simon.albre...@mail.de> wrote: > Am 15.03.2017 um 01:11 schrieb Adam Spiers: >> It would be very instructive to produce a clear visualisation of the >> harmonic variations he uses in each chorus, so I have dropped the >> notes of the solo from the .ly file, leaving only the chords, rendered >> in landscape, with all the choruses vertically stacked on top of each >> other, one per line. This should allow easy visual comparison of any >> part of the 12-bar progression simply by scanning vertically at that >> point within the progression. However this vertical scan only works >> effectively if all the choruses are vertically aligned, hence the need >> for proportional spacing. > > Excuse me, but why not put all the music expressions in one score in > parallel? Mainly because I already had the chords as a single continuous "stream", obtained by removing the notes and staves from the existing transcription. And semantically it's more correct to represent it this way, rather than as 8 chord sequences which all happen in parallel. For example a MIDI rendering of the latter would be hopelessly wrong. But if that's the only way to achieve it then I'm open to the idea. > That would be the more conventional/simpler approach to vertical > alignment… I'm not sure it would be more conventional bearing in mind the above, and I'm also not sure it would be simpler given that (IIUC) it would require 8 chord sequences all happening in parallel. But please could you give an example of how to do that, bearing in mind that there are no notes or staves, only chord names? Thanks! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: proportional spacing for chords?
On 15 March 2017 at 05:48, Robert Schmauswrote: > Just a thought - you apply the SpacingSpanner modifications to context > \Score ... did you already try to apply those to context \ChordNames > instead? That *does* change something, but I'm not sure if it is what you > want ... > > Cool analysis, by the way! I just tried that, but I couldn't see any difference at all. What difference do you see? Any chance you could provide the .ly from the way you tried it? Thanks! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
proportional spacing for chords?
Hi all, How can I achieve proportional spacing when I only have chord names and bar lines, and no staff or notes? Attached is a file with a very naive attempt which fails to achieve this; corrections would be most welcome. For the curious, the background and motivation behind this question is as follows: I have a transcription of a jazz solo by John Coltrane which I made several years ago.[0] It contains chord symbols which I produced via manual analysis to match the harmony of his improvisation, rather than the (much simpler) chord progression of the 12-bar blues over which he was improvising. Therefore the chords are different for each of the 8 choruses of the solo. It would be very instructive to produce a clear visualisation of the harmonic variations he uses in each chorus, so I have dropped the notes of the solo from the .ly file, leaving only the chords, rendered in landscape, with all the choruses vertically stacked on top of each other, one per line. This should allow easy visual comparison of any part of the 12-bar progression simply by scanning vertically at that point within the progression. However this vertical scan only works effectively if all the choruses are vertically aligned, hence the need for proportional spacing. Thanks a lot in advance for any hints! Adam [0] http://blog.adamspiers.org/2013/01/28/cello-lessons-from-a-dead-genius/ \include "english.ly" \header { composer = "John Coltrane" title = "Blue Train" arranger = \markup { \right-column { "transcribed for cello by Adam Spiers" \italic \small "chords represent harmonic analysis of the solo, not changes" } } } global = { \key ef \major \time 4/4 } allchords = { \new ChordNames = "chords" \with { \override BarLine.bar-extent = #'(-2 . 2) \consists "Bar_engraver" } { \chordmode { \global \set minorChordModifier = \markup { "-" } %\set additionalPitchPrefix = "" % chorus 1 \mark \markup { \box "1" } | ef1:m9 | af:7 | ef1:m9 | s | af:13| s | ef:m7 | s2 ef2:m9 | bf1:7 | af2:m7/bf bf:9+ | ef1| s \bar "||" \break % chorus 2 \mark \markup { \box "2" } | ef:7 | af2.:7 a4:dim | ef1| bf2:m7+ ef:m | af1:7.9 | s2 a:dim | ef1| s2 c:7.9- | f1:m7+ | f2:m7+ bf:7| ef1:7 | s \bar "||" \break % chorus 3 \mark \markup { \box "3" } | ef:7 | af2:7 af:7.11+ | bf1:m11/ef | e:maj7.5+/bf | af:7.11+ | s2 af:7.9- | ef1:maj7 | s2. c4:7.9- | f2:sus4 f:m7+ | bf1:7 | s2. f4:m7/bf | bf:7 f:m7/bf bf2:7 \bar "||" \break % chorus 4 \mark \markup { \box "4" } | ef1:7| bf:7.9-| ef:7 | s4 e2.:m7/ef | af1:7.9- | af4:7.11+ gf2.:maj7/af | ef2.:maj7 c4:7.9- | s8 ef:maj7 s4 bf2:7.9-.9+ | f1:m7+ | bf2.:7 bf4:9-.10-.11+.13- | ef1:maj7| s2 bf:7.9- \bar "||" \break % chorus 5 \mark \markup { \box "5" } | ef1:7| af2:7 ef:m7.6-| ef1:7| bf2:m7 ef:7 | af1:7.9 | bf:7.9-.13- | bf4 ef f:m c:m7 | bf4:7 b2.:7 | f1:m7| b2.:maj/bf bf4:m7 | bf4:m ef2.:6-.9 | bf1:7 \bar "||" \break % chorus 6 \mark \markup { \box "6" } | ef1:7| af:9| ef:m7 | bf2:m7 ef:7.9-.10-.11+.13- | af1:13 | bf4.:7.9- ef4:m7 bf4.:7 | ef4.:maj f8.:m7+ g4..:m | s4 g:m fs:m f:m7+ | f1:m7.7+ | bf:7.9-.10-.11+.13- | ef2. e4| f2:m bf:7.9-.10-.11+.13- \bar "||" \break % chorus 7 \mark \markup { \box "7" } | s4 ef2.:7 | af1:m | r4 bf2:m7 ef4 | bf2:m7 ef4:7 e/ef | af1:m7.9 | af:m7.9 | ef2.:maj f4:m | ef2.:maj/g fs4:m | f1:m7 | bf:m7 | ef:7 | f2:m7 bf:7.9-.13- \bar "||" \break % chorus 8 \mark \markup { \box "8" } | ef1 | af | ef:7 | bf4:m ef2.:7 | af1:7 | af:7 | g:m7 | fs:m7 | f:m7.11 | bf2:sus4.13- e:maj7/bf | ef1| f2:m7+ bf:7 \bar "||" } } } \paper { #(set-paper-size "a4" 'landscape) } \score { \allchords \layout { \context { \Score \remove "Bar_number_engraver" proportionalNotationDuration = #(ly:make-moment 64/256) \override SpacingSpanner.uniform-stretching = ##t \override Score.SpacingSpanner.strict-note-spacing = ##t } indent = #0 } } ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
problems with proportional spaced bar alignment
Please could someone tell me why the bar lines aren't aligned correctly in this? https://gist.github.com/aspiers/3a9fa8fc4422742cab82 I've tried all the obvious stuff from: http://lilypond.org/doc/v2.18/Documentation/notation/proportional-notation Thanks! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: minor chords
On 14 March 2014 16:19, Martin Tarenskeen m.tarensk...@gmail.com wrote: I also want to use a minus sign for minor chords. e.g. C- instead of Cm. How can I achieve that? Luckily for you, I implemented that option in LilyPond a while ago :) \chordmode { \set minorChordModifier = \markup { - } ... http://lilypond.org/doc/v2.18/Documentation/notation/displaying-chords#customizing-chord-names ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
new Bach fugue visualization with ly2video!
Hi all, ly2video, my adopted child, has grown up fast without me noticing :) Very excited to say I got a wonderful email earlier from the clever folks at algomus.fr notifying me that they have significantly improved ly2video, and providing an example of what they've taught it: https://www.youtube.com/watch?v=DrAwjJ7Fl38 Here's the pull request they've sent me, and it looks extremely good at first glance - I'm looking forward to reviewing! https://github.com/aspiers/ly2video/pull/55 You can learn more about their very cool fugue analysis project here: http://www.algomus.fr/fugues/ Enjoy! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] Scale Matcher website built with LilyPond
On Sun, Aug 25, 2013 at 02:58:16AM +0200, Thomas Morley wrote: 2013/8/25 Jim Long lilyp...@umpquanet.com: Adam: Your page is fun to play with, and a handy reference. Two comments, if I may: There's a user interface glitch, and unfortunately right now I'm forced to use Windows 7, but at least I have Firefox. The Root dropdown box behaves very nicely: when I click on it, it drops down, and when I release the click, it stays there. I can click again to make a selection, and my selection is retained, and the dropdown box collapses. The Root box also works if I click once, drag to my choice, release to select, and the box collapses to reveal my selection. The standard chord box is not as well-behaved, at least with Firefox on Win7. This loaner laptop I have makes composing messages of any length unbearable, so if you need details, I can write later from a better computer. The short form is that clicking to open the chord dropdown works once, but when I release the click, the box disappears before I can click again to select. After that, clicking on the dropdown has no effect until I click outside the beige dotted area and then come back in to click again on the chord dropdown. Same behaviour on my machine. Ubuntu 10.04, Firefox 20.0 I finally got around to fixing this, and also made several other improvements: http://scalematcher.adamspiers.org/info/news Thanks everyone for the feedback! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
[ANNOUNCE] Scale Matcher website built with LilyPond
Hi all, Thought you might be interested to hear that I built a new music harmony website which uses LilyPond to dynamically generate images of chords and scales: http://scalematcher.adamspiers.org/ Look in the FAQ for details of how to see the LilyPond source code ;-) Now I have to figure out how to install LilyPond 2.17.x on Debian 6 in order to be able to use \markLengthOn :-/ Regards, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: text to the *right* of staves?
Many thanks both, I'll try these!! On 14 August 2013 14:59, Robin Bannister r...@dataway.ch wrote: Adam Spiers-5 wrote How can I put text *after* a staff? I.e. directly to the right of the final barline? And here is another way: \version 2.16.2 { \repeat unfold 44 R1 \bar |. % after final barline: \stopStaff \once \override TextScript #'Y-offset = #-0.5 s1^text at the right } The -0.5 value centres it vertically; feel free to change this. Cheers, Robin ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] Scale Matcher website built with LilyPond
On 24 August 2013 16:55, Paul Morris p...@paulwmorris.com wrote: Very cool and well done! A nice use of LilyPond. Thanks :) Here are a couple of small suggestions: - On the results page why not include a sentence about what the red notes mean? That way the user doesn't have to leave that page to remind themselves. Great idea, I've done that. - Why not include a tiny link to the .ly source file at the bottom of the results page? Ditto. New version with these tweaks will go live soon. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] Scale Matcher website built with LilyPond
Thanks Tim. I have posted it to a couple of jazz-oriented facebook groups and hope that it will gradually percolate far and wide, but your assistance in spreading the word would be most welcome! On 24 August 2013 17:52, Tim McNamara tim...@bitstream.net wrote: I think posting announcements to some of the rec.music.makers.* Usenet groups would make sense, as well as other fora for musicians (especially jazz musicians since they are likely to be interested in the chord-scale relationship more than a lot of other musical styles). I'll scatter a few over the next couple of days. Tim On Aug 24, 2013, at 7:16 AM, Ralph Palmer palmer.r.vio...@gmail.com wrote: Wow! Great work, Adam. Is this worth some other publicity, Listers? Ralph On Sat, Aug 24, 2013 at 7:51 AM, Adam Spiers lilypond-u...@adamspiers.org wrote: Hi all, Thought you might be interested to hear that I built a new music harmony website which uses LilyPond to dynamically generate images of chords and scales: http://scalematcher.adamspiers.org/ Look in the FAQ for details of how to see the LilyPond source code ;-) Now I have to figure out how to install LilyPond 2.17.x on Debian 6 in order to be able to use \markLengthOn :-/ Regards, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user -- Ralph Palmer Brattleboro, VT USA palmer.r.vio...@gmail.com ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] Scale Matcher website built with LilyPond
On 25 August 2013 00:41, Jim Long lilyp...@umpquanet.com wrote: Adam: Your page is fun to play with, and a handy reference. Two comments, if I may: There's a user interface glitch, and unfortunately right now I'm forced to use Windows 7, but at least I have Firefox. The Root dropdown box behaves very nicely: when I click on it, it drops down, and when I release the click, it stays there. I can click again to make a selection, and my selection is retained, and the dropdown box collapses. The Root box also works if I click once, drag to my choice, release to select, and the box collapses to reveal my selection. The standard chord box is not as well-behaved, at least with Firefox on Win7. This loaner laptop I have makes composing messages of any length unbearable, so if you need details, I can write later from a better computer. The short form is that clicking to open the chord dropdown works once, but when I release the click, the box disappears before I can click again to select. After that, clicking on the dropdown has no effect until I click outside the beige dotted area and then come back in to click again on the chord dropdown. But it's still very clever, and fun to use. One really cool feature I would enjoy is to be able to download a PDF that lists the given chord and the scales it found, to create a practice sheet from the scales/modes that are identified for a given chord. Thanks for contributing this! You're welcome, and huge thanks for the precise bug report despite your loaner laptop attempting to discourage you from making it ;-) I'm slightly mystified by the bug however, and unfortunately (or fortunately ;-) I don't have a Windows 7 machine to test with. I can only imagine it's either a quirk with JQuery, or the result of my lack of experience with it. If you happen to have any JQuery experience, I could share the original CoffeeScript source in case it sheds any light. Other suggestions welcome too. Regarding PDF download - I did wonder how long it would take for someone to request this ;-) Yes, of course that is possible, and I'll add it to the TODO list. Cheers, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] Scale Matcher website built with LilyPond
Thanks. You mean like a logo icon? I'd be delighted to use one, but I'm no artist ... On 25 August 2013 02:20, Mike Blackstock blackstock.m...@gmail.com wrote: Wow, terrific. Any thoughts on adding a graphic that will grab more attention in links to the site [ie Facebook, Google+ ...] ? On Sat, Aug 24, 2013 at 7:51 AM, Adam Spiers lilypond-u...@adamspiers.org wrote: Hi all, Thought you might be interested to hear that I built a new music harmony website which uses LilyPond to dynamically generate images of chords and scales: http://scalematcher.adamspiers.org/ Look in the FAQ for details of how to see the LilyPond source code ;-) Now I have to figure out how to install LilyPond 2.17.x on Debian 6 in order to be able to use \markLengthOn :-/ Regards, Adam ___ 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
text to the *right* of staves?
On 13 August 2013 23:14, k...@kalegood.com wrote: I see that lilypond supports a cool-looking No. glyph, which is great. I'd like to get in in front of each stave in order to number a series of exercises. See attached png for an example. Funny to see this being asked, since at the same time I need to ask the opposite question: How can I put text *after* a staff? I.e. directly to the right of the final barline? I've searched high and low but can't find anything close ... Thanks! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.4.1
On Wed, Mar 6, 2013 at 8:05 AM, Knut Petersen knut_peter...@t-online.de wrote: File sources/ly2video-0.4.1/ly2video.py, line 148, in getAbsolutePitch return LySrc.get(self.filename).getAbsolutePitch(self) File sources/ly2video-0.4.1/ly2video.py, line 80, in get cls.cache[filename] = LySrc(filename) File sources/ly2video-0.4.1/ly2video.py, line 87, in __init__ self.initParser(document) File sources/ly2video-0.4.1/ly2video.py, line 95, in initParser language, keyPitch = ly.tools.languageAndKey(document) File /home/knut/sources/ly2video-0.4.1/ly/tools.py, line 322, in languageAndKey for token in tokens: File /home/knut/sources/ly2video-0.4.1/ly/tokenize.py, line 693, in tokens for token in super(LineColumnMixin, self).tokens(text, pos): File /home/knut/sources/ly2video-0.4.1/ly/tokenize.py, line 218, in tokens yield self.Unparsed(text[pos:m.start()], pos) File /home/knut/sources/ly2video-0.4.1/ly/tokenize.py, line 296, in __new__ obj = unicode.__new__(cls, value) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128) Any idea what could be broken? It sounds like your .ly input file is not 8-bit clean - is it UTF-encoded? And it seems that ly2video does not support that yet. Probably you have an accent somewhere in the text; if you could remove that it will probably work. It's also worth trying with latest git version which has many improvements. If you find the same problem there too, please file a new issue and I will try to fix. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.4.1
On Wed, Mar 6, 2013 at 2:46 PM, Knut Petersen knut_peter...@t-online.de wrote: On 06.03.2013 10:44, Adam Spiers wrote: It sounds like your .ly input file is not 8-bit clean - is it UTF-encoded? And it seems that ly2video does not support that yet. Probably you have an accent somewhere in the text; if you could remove that it will probably work. It's also worth trying with latest git version which has many improvements. If you find the same problem there too, please file a new issue and I will try to fix. Indeed, the problem is that ly2video does not understand utf8 encoded text. A fresh clone of the code at https://github.com/aspiers/ly2video still has that problem. OK, please file an issue (or even better, a pull request). A 2nd issue: title generation does work, but it is broken. Only the last characters of the subsubtitle string are used, title and subtitle strings are completely ignored. Are you referring to https://github.com/aspiers/ly2video/issues/49 ? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.4.1
On Wed, Mar 6, 2013 at 6:34 PM, Knut Petersen knut_peter...@t-online.de wrote: On 06.03.2013 15:53, Adam Spiers wrote: On Wed, Mar 6, 2013 at 2:46 PM, Knut Petersen knut_peter...@t-online.de wrote: On 06.03.2013 10:44, Adam Spiers wrote: It sounds like your .ly input file is not 8-bit clean - is it UTF-encoded? And it seems that ly2video does not support that yet. Probably you have an accent somewhere in the text; if you could remove that it will probably work. It's also worth trying with latest git version which has many improvements. If you find the same problem there too, please file a new issue and I will try to fix. Indeed, the problem is that ly2video does not understand utf8 encoded text. A fresh clone of the code at https://github.com/aspiers/ly2video still has that problem. OK, please file an issue (or even better, a pull request). I´ll have a close look at the code during the next days, then I´ll file an issue or send a patch. Great, thanks! A 2nd issue: title generation does work, but it is broken. Only the last characters of the subsubtitle string are used, title and subtitle strings are completely ignored. Are you referring to https://github.com/aspiers/ly2video/issues/49 ? My subsubtitle is a youtube address: title = This will be ignored subtitle = This also will be ignored subsubtitle = Quelle: http://www.youtube.com/watch?v=1q2r3s4t5u6; First of all, title and subtitle are ignored, the subsubtitle string is used. Probably the issue 49 problem. Worse: The string is not taken literally but interpreted, so the = has its special meaning, and only the last part of subsubtitle string (q2r3...) is used as title. Please can you add a test case to the issue, and also mention the = problem which is almost certainly due to an overly greedy regex. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Hushing up Sibelius news?
On Thu, Feb 28, 2013 at 1:07 PM, Joseph Rushton Wakeling joseph.wakel...@webdrake.net wrote: On 02/28/2013 02:30 AM, Adam Spiers wrote: I don't follow your logic here at all. Being large and complex doesn't rule it out from being a starting point. If it *wasn't* large, there wouldn't be as much to gain from starting with it vs. starting from scratch. You make two rather big assumptions -- first, that writing a big application from scratch is difficult (for a highly-skilled team, it's not necessarily). I strongly disagree, unless your definition of difficult ignores the time dimension of such a project. http://www.joelonsoftware.com/articles/fog69.html Second, that starting from scratch is necessarily a bad thing. In fact, starting afresh can be very desirable. It's not actually from scratch because this team has huge amounts of knowhow from their years of experience, Know-how and experience do not enable large, functional code-bases to be magically constructed in short time spans. They help increase velocity and quality, but any new code-base takes a long time to grow. I already mentioned this here: http://blog.steinberg.net/2013/02/welcome/#comment-207 but because they are writing a completely new codebase, they do not have to be constrained by historical mistakes or backwards compatibility. Nor would they be constrained by these if they started with LilyPond. They have a great opportunity to make new architectural and design choices. As they do if they started with LilyPond. Building on top of other people's code is a good thing only if that code really supports what you want to do -- and there's probably more than a few free software projects that have had cause to regret deriving from an existing code base which in the long run turned out to not really be suitable. Finally we can agree on something ;-) But Daniel Spreadbury already admitted that they haven't even looked at the LilyPond and MuseScore code, therefore they have dismissed the possibility even before doing a technical feasibility study. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Hushing up Sibelius news?
On Thu, Feb 28, 2013 at 6:51 AM, David Kastrup d...@gnu.org wrote: Adam Spiers lilypond-u...@adamspiers.org writes: On Tue, Feb 26, 2013 at 5:22 PM, David Kastrup d...@gnu.org wrote: Adam Spiers lilypond-u...@adamspiers.org writes: I just blogged about this: http://blog.adamspiers.org/2013/02/25/music-industry-learns-nothing-from-the-avid-sibelius-saga/ Well, I see some fatally flawed assumptions here, riding on your notion both MuseScore and GNU LilyPond would serve as excellent starting points for a world-class music notation product. Now I can't vouch for MuseScore, but GNU LilyPond is anything but a starting point for software development. It is large with an elaborate and complex architecture. And most particularly, an architecture that is not the core expertise of the former Sibelius development team. I don't follow your logic here at all. Being large and complex doesn't rule it out from being a starting point. Listen, engineering team, we have assembled to design and build the most successful family car ever. We don't have to start from scratch: I already secured a shipment of 1 trucks we can use as a starting point. That metaphor is invalid, because (a) we're not dealing with a process which involves volume production, and (b) you can't refactor a truck. Being large is of advantage if the quality is consistent. From what I've seen, LilyPond's quality is fairly consistent. You may disagree and of course you have a lot more experience with it than I do, but that will also calibrate your judgement so that your perceived range of bad to good is likely much narrower than those of us who are regularly exposed to far lower and/or higher quality code. Being complex is a legacy. The LilyPond code base is not good in confining complexity. There are plenty of prominent examples where fresh projects succeeded by inheriting a large and complex codebase. Firefox is one, and LibreOffice another; here's a great talk I attended at FOSDEM demonstrating precisely this: http://video.fosdem.org/2013/maintracks/Janson/LibreOffice__cleaning_and_re_factoring_a_giant_code_base.webm Those code-bases make LilyPond's look about as complex as two lines of BASIC ;-) You are confusing large and complex. Nope. I'm well aware of the difference, but there is an undeniable correlation between the two. I challenge you to find any pair of reasonably well-written projects over (say) 10k LoC where one is at least ten times the size of the other and yet less complex. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Hushing up Sibelius news?
On Thu, Feb 28, 2013 at 6:13 PM, Joseph Rushton Wakeling joseph.wakel...@webdrake.net wrote: On 02/28/2013 06:20 PM, Adam Spiers wrote: I strongly disagree, unless your definition of difficult ignores the time dimension of such a project. http://www.joelonsoftware.com/articles/fog69.html It can go horribly wrong, yes, but it doesn't have to. Git for example was a from-scratch attempt at DVCS -- if Linus Torvalds had started from e.g. Arch or Darcs, it's unlikely that we'd have had the innovative DVCS that we see today. That's an excellent counter-example, thanks! FWIW, git is very roughly half the LoC of LilyPond. Know-how and experience do not enable large, functional code-bases to be magically constructed in short time spans. They help increase velocity and quality, but any new code-base takes a long time to grow. Yes, but it takes even longer if you begin from the wrong starting point. Neither Lilypond nor MuseScore really does what this team seem to be aiming for Well, presumably that's speculation unless you have inside info ;-) Or did I miss some publically announced details? but because they are writing a completely new codebase, they do not have to be constrained by historical mistakes or backwards compatibility. Nor would they be constrained by these if they started with LilyPond. Lilypond's existing architecture is a constraint, its existing syntax is another constraint. And much as I admire Lilypond, I doubt its design is entirely free of mistakes ... ;-) Sure; my point was that existing architectures can be changed without a rewrite. Finally we can agree on something ;-) But Daniel Spreadbury already admitted that they haven't even looked at the LilyPond and MuseScore code, therefore they have dismissed the possibility even before doing a technical feasibility study. Well, of course not. They won't want to risk the possibility of GPL'd code influencing what they write. The simplest legal defence against accusations of copying is, I've never looked at that code. Right, he already said that in his response to me. But the bottom line is, their licensing choices and their reasons for building a project from scratch are fairly orthogonal. Maybe; we can only guess what their reasons are. Personally, I doubt that Lilypond's design choices fit well with a piece of software that's designed to provide real-time WYSIWYG engraving, Of course there's not a natural fit yet - the most obvious clash being the number of engravings per process invocation. But things like that are surmountable through refactoring, and I believe people such as Jan and the Scorio guys have already worked on solutions to this. MuseScore's data structures are likely to be far too limited compared to what the former Sibelius team are setting out to do. Probably, but again, data structures can be changed ... It's a shame that the opportunity to do so was taken away from them by a firm corporate decision to build a proprietary project, We don't know that's what happened, do we? but I suspect that even with firm backing for a free software package, they'd have chosen to start from the ground up. Sadly I think you're probably right. I think I'll retire from this thread now, since there's no use crying over spilt milk for longer than necessary ;-) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Hushing up Sibelius news?
On Thu, Feb 28, 2013 at 6:33 PM, Werner LEMBERG w...@gnu.org wrote: http://www.joelonsoftware.com/articles/fog69.html It can go horribly wrong, yes, but it doesn't have to. Git for example was a from-scratch attempt at DVCS -- if Linus Torvalds had started from e.g. Arch or Darcs, it's unlikely that we'd have had the innovative DVCS that we see today. And: git was ready-to-run within two weeks. Admittedly this is extremely fast coding :-) Depends on what you mean by ready to run ;-) Personally I didn't find it ready until at least a year later. But we are talking about a rather special programmer here too ;-) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Hushing up Sibelius news?
On Tue, Feb 26, 2013 at 5:22 PM, David Kastrup d...@gnu.org wrote: Adam Spiers lilypond-u...@adamspiers.org writes: I just blogged about this: http://blog.adamspiers.org/2013/02/25/music-industry-learns-nothing-from-the-avid-sibelius-saga/ Well, I see some fatally flawed assumptions here, riding on your notion both MuseScore and GNU LilyPond would serve as excellent starting points for a world-class music notation product. Now I can't vouch for MuseScore, but GNU LilyPond is anything but a starting point for software development. It is large with an elaborate and complex architecture. And most particularly, an architecture that is not the core expertise of the former Sibelius development team. I don't follow your logic here at all. Being large and complex doesn't rule it out from being a starting point. If it *wasn't* large, there wouldn't be as much to gain from starting with it vs. starting from scratch. Yes, of course there's a learning curve, but it's still miniscule compared to the effort of rewriting something of equal complexity from scratch. That's particularly true of LilyPond, which already has in the CG etc. way better developer documentation than most large complex projects will ever have. Some people might assert that's not saying much, but the fact is that I went from being more or less a total newbie to LilyPond internals to being able to track down and fix an obscure bug in the MIDI performer, over the course of a week or two of working on it in my spare time, with very small amounts of assistance from anywhere except the documentation - and I'm certainly not claiming that was any kind of impressive feat. A good developer who was a complete newcomer to LilyPond should already be somewhat productive at the end of their first one or two 40-hour weeks. In contrast, I very much doubt that 12 full-time developers would two weeks after starting from scratch have any useful code at all. There are plenty of prominent examples where fresh projects succeeded by inheriting a large and complex codebase. Firefox is one, and LibreOffice another; here's a great talk I attended at FOSDEM demonstrating precisely this: http://video.fosdem.org/2013/maintracks/Janson/LibreOffice__cleaning_and_re_factoring_a_giant_code_base.webm Those code-bases make LilyPond's look about as complex as two lines of BASIC ;-) As for core expertise, I doubt that many of that team were there when the code-base was first written, so architectural design and rewriting from scratch is unlikely to be the team's core expertise. In fact, for one definition of first written I can guarantee that *none* of them were there, because it was originally written by the Finn brothers for the Acorn Archimedes (the world's first computer with an ARM chip, of which I was a proud owner at the age of 13), and those two long since ceased development. The first C++ version was started (presumably significantly) prior to the first Windows release in September 1998. With software developer churn being what it is these days, I'd be really surprised if many of the original team are still around and now working at Steinberg. I expect that team's core expertise is fixing bugs and making enhancements. They are, as a group, focusing on their areas of expertise and teamwork, and that will imply similar architectural choices as the ones they are already familiar with, in order to continue working as a competitively efficient team. I don't buy that either. If they are smart, they should be aware of the strengths and weaknesses of the architecture of the Sibelius codebase, and be able to make different architectural choices this time round. In fact, if they don't, they are almost certainly doomed to failure because they'll spend x years building a complete clone of Sibelius from scratch, which has no competitive edge. In the mean time, Avid may have even found some decent replacements and got them up to speed. They also are not in a position to prescribe the business models to Steinberg Not prescribe, no - but they could certainly try to convince Steinberg it makes sense. Of course, this would not be easy and would require them to not just grok how business models can be built on Free Software (which I sense from my short dialogue with Daniel Spreadbury that they don't) but also be really motivated to fight for it. Sadly that's very unlikely to happen. and of course, starting from LilyPond implies a business required to distribute under the GPL. Sure. As an employee of a highly profitable company with a 20-year history of successful trading based on software released under the GPL and similar licenses, I don't see any problem with that. I can perfectly well understand their development choices. However, they are in the same position of dependency as they were under Avid. If Steinberg decides to pull the plug, they'll be empty-handed again, left without software they are allowed to continue working
Re: Hushing up Sibelius news?
On Thu, Feb 21, 2013 at 10:53 PM, Hilary Snaden h...@newearth.demon.co.uk wrote: On 2013-02-21 19:58, Urs Liska wrote: http://blog.steinberg.net/2013/02/welcome/ These from Daniel Spreadbury tell me most, I think, of what I need to know about the new project. Our application will use a proprietary file format... an open source file format is only any use if you also have a wide range of software that can make use of that format... the Lilypond file format itself does not describe exactly how the finished score will appear... Thanks, but no thanks. I just blogged about this: http://blog.adamspiers.org/2013/02/25/music-industry-learns-nothing-from-the-avid-sibelius-saga/ Like it or not (and I certainly don't), a large proportion of people who need to notate music will run away screaming if you explain the compilation-based design of LilyPond to them. I think http://lilypond.org/text-input.html is absolutely fantastic, but some people's aversion to anything which looks at all technical seems unsurmountable to me (although I'd love to be proven wrong; after all, I still see non-technical airport staff happily typing cryptic commands into old-school terminals in order to query flight data ...) So anything we can do as a community to address that part of the user-base is very good in my book ... ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.4.1
On Fri, Feb 8, 2013 at 8:37 AM, Martin Tarenskeen m.tarensk...@zonnet.nl wrote: On Fri, 8 Feb 2013, Adam Spiers wrote: Hi all, I'm happy to announce the release of ly2video 0.4.1. Great ! Feedback is very welcome; you can use the issue tracker: https://github.com/aspiers/ly2video/issues or mail me. Pull requests are of course even more welcome than feedback! Remember my problems with --title-at-start ? Yes I did, even though you didn't file an issue at the time ;-) I added the --title-at-start issue to the tracker. No big deal - any video editor can probably create much nicer title screens. Agreed, for sure ... But the option is there, and thus should work. I already fixed it prior to this release: https://github.com/aspiers/ly2video/commit/327558f I've closed the issues, but please file a new one immediately if you see any other problems. Thanks for raising this! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
[ANNOUNCE] ly2video 0.4.1
Hi all, I'm happy to announce the release of ly2video 0.4.1. ly2video is a Python script which converts music represented by a GNU LilyPond file into a video containing a horizontally scrolling music staff which is synchronized with a MIDI-generated audio rendering of the music. You can download it from here: https://github.com/aspiers/ly2video/tags The most significant aspect of this release is a complete redesign and rewrite of the A/V synchronization code, which should make it *far* more robust and easier to maintain: https://github.com/aspiers/ly2video/commit/c2ab06e Advantages of the new algorithm include being able to correctly handle ChordNames, transparent notes, and MIDI filtered through articulate.ly. I'm especially grateful to Jan Nieuwenhuizen, who I had the pleasure of meeting at FOSDEM last weekend, and whose help made this redesign possible. This release also fixes numerous other bugs: https://github.com/aspiers/ly2video/issues?milestone=4state=closed https://github.com/aspiers/ly2video/issues?milestone=5state=closed Feedback is very welcome; you can use the issue tracker: https://github.com/aspiers/ly2video/issues or mail me. Pull requests are of course even more welcome than feedback! Regards, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: disabling point-and-click for displayed chords?
On Sat, Jan 26, 2013 at 10:04 PM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Tue, Jan 15, 2013 at 3:05 PM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Tue, Jan 15, 2013 at 9:41 AM, David Kastrup d...@gnu.org wrote: You could use an engraver in ChordNames for wiping out the (event) cause of the last involved grob. Then the point-and-click location would no longer be available... That makes sense. Do you mean an existing engraver though, or a new one? The only existing one which looks promising is Output_property_engraver (which I had never heard of before). Does that mean I do this via \applyOutput? I got this to work for a single note via: #(define (delete-grob-cause grob origctx curctx) (let* ((cause (ly:grob-property grob 'cause)) (music-origin (if (ly:stream-event? cause) (ly:event-property cause 'origin (ly:debug removing grob origin '~a' music-origin))) (ly:grob-set-property! grob 'cause #f)) and then: \applyOutput #'ChordNames #delete-grob-cause However, this only worked for the single note following the command. I searched hard for a way to apply it to all notes, but this was the best advice I could find: http://thread.gmane.org/gmane.comp.gnu.lilypond.general/18699/focus=18700 and both options presented were behind my expertise. I eventually found a solution to this: (music-map (lambda (x) (let ((type (ly:music-property x 'name))) (if (eq? type 'NoteEvent) #{ \applyOutput #'Score #delete-grob-cause $x #} #{ $x #})) ) music)) This is possibly worth an LSR entry, although in the end, Jan helped me come up with a fundamentally superior approach to the whole problem, documented here: https://github.com/aspiers/ly2video/issues/16 I think it would be worth either extending \pointAndClickTypes to support filtering by context, or adding a new command such as \pointAndClickContexts. If there is agreement with this idea I am happy to submit an issue and drum up a patch, but I'd appreciate guidance on the best interface syntax. For instance, I'm not sure whether it's better to treat the argument as a list of contexts to include: \pointAndClickExcludedContexts #'(Voice DrumVoice) or contexts to exclude: \pointAndClickContexts #'(ChordNames) or should both inclusion and exclusion be supported, either via separate commands or a single command, e.g. \pointAndClickContexts #'(Voice DrumVoice -ChordNames) And how would any of these commands interact with the existing \pointAndClickTypes command? Presumably they'd have to be treated as an additional level of filtering. I still think this line of development is still worthwhile, but I'm unlikely to have time to drive it. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Animated SVG Percussion Music
Hi Tim, On Fri, Sep 30, 2011 at 9:20 AM, Tim Sawyer list.lilyp...@calidris.co.uk wrote: On 30/09/11 07:12, Jay Anderson wrote: On Fri, Aug 19, 2011 at 5:30 AM, Tim Sawyer list.lilyp...@calidris.co.uk wrote: http://percussion360.com/ This works by taking SVG generated from lilypond, munging it a bit (including matching it up with the .ly source), then playing it back using javascript and html5 audio. Playback doesn't work in IE but does work in other recent (proper) browsers. This is really neat. I'm thinking of doing something similar with some hymns. How did you add the id attributes to the paths to the svg source? I assume this is what you meant by matching it up with the source. I'm not seeing a good way to do this yet. It's not nice...took me quite a while to do. [snipped] I only just saw this, but it looks like there is a more than a small amount of overlap with ly2video, of which I recently announced a new version. Check it out if you haven't already :-) Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: anyone going to FOSDEM this weekend?
On Thu, Jan 31, 2013 at 6:24 AM, Jan Nieuwenhuizen jann...@gnu.org wrote: Adam Spiers writes: Would be nice to say hello to any other Lilypond hackers / users who are there! +1 Great, it will be a honour to meet you :) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
anyone going to FOSDEM this weekend?
I'm heading to FOSDEM in Brussels this weekend: https://fosdem.org/2013/ Would be nice to say hello to any other Lilypond hackers / users who are there! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
[ANNOUNCE] ly2video 0.3.0
Hi all, I'm happy to announce the release of ly2video 0.3.0. ly2video is a Python script which converts music represented by a GNU LilyPond file into a video containing a horizontally scrolling music staff which is synchronized with a MIDI-generated audio rendering of the music. You can download it from here: https://github.com/aspiers/ly2video/tags This is my first public release since taking over maintainership from Jiri FireTight Szabo, who deserves a lot of credit for creating the project in the first place. This release is a major revamp of the codebase, and the changes include: - a large number of refactorings and new docstrings/comments to improve legibility and maintainability - several bugfixes, some of which are detailed here: https://github.com/aspiers/ly2video/issues?state=closed - several new features: + a new default scrolling mode where the notation stay still and the cursor line scrolls from left to right + the ability to splice in tempo changes from a beatmap file, to enable synchronization of the video with an existing performance + controllable DPI resolution setting + controllable video encoding quality + arbitrary width / height + automatic vertical centering of the notation - a rewrite of several components of the A/V synchronization code However, the project is still relatively immature, which is why I chose the 0.3.0 version number. There was an RFP to Debian to create a 1.0 package of the initial release. However, I believe it was not packaged yet, and I think using 1.0 would be misleading, and also does not adhere to the SemVer spec - therefore I have decided to start within the 0.x.y series. Feedback is very welcome; you can use the issue tracker: https://github.com/aspiers/ly2video/issues or mail me. Would it be inappropriate to piggy-back on top of lilypond-user and/or lilypond-user when discussion is required? If not, I can set up a new mailing list. Pull requests are of course even more welcome than feedback! Regards, Adam P.S. Should this be cross-posted to info-lilypond? P.P.S. I was somewhat amused to see the following cost estimates by Ohloh :-) http://www.ohloh.net/p/ly2video/estimated_cost I've only been working on it for 2.5 months, and I doubt the initial work took Jiri 22 months ;-) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 6:37 PM, Adam Spiers lilypond-u...@adamspiers.org wrote: Hi all, I'm happy to announce the release of ly2video 0.3.0. I forgot to include a new example of the output. The desire to make this video was the main reason I ended up taking over maintainership: http://youtu.be/asQtwd3dJfs but now it's made, I still intend to carry on work on it in my spare time (although nowhere near as much as in the last two months ...) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 6:44 PM, Joseph Rushton Wakeling joseph.wakel...@webdrake.net wrote: On 01/29/2013 07:37 PM, Adam Spiers wrote: I'm happy to announce the release of ly2video 0.3.0. Nice! :-) Re the Lilypond version requirement -- is this an ... or later requirement or is it really fixed to only work with 2.14.2? Might be worth clarifying in the README. I didn't notice that - I've certainly been using with later versions. It actually uses convert-ly internally, but I'm not entirely sure why :) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 06:57:03PM +, Adam Spiers wrote: On Tue, Jan 29, 2013 at 6:44 PM, Joseph Rushton Wakeling joseph.wakel...@webdrake.net wrote: On 01/29/2013 07:37 PM, Adam Spiers wrote: I'm happy to announce the release of ly2video 0.3.0. Nice! :-) Re the Lilypond version requirement -- is this an ... or later requirement or is it really fixed to only work with 2.14.2? Might be worth clarifying in the README. I didn't notice that - I've certainly been using with later versions. It actually uses convert-ly internally, but I'm not entirely sure why :) Filed as: https://github.com/aspiers/ly2video/issues/26 Opinions on the best approach are welcome; please add them to that issue. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 09:12:27PM +0100, Joseph Rushton Wakeling wrote: On 01/29/2013 07:57 PM, Adam Spiers wrote: I didn't notice that - I've certainly been using with later versions. It actually uses convert-ly internally, but I'm not entirely sure why :) One other thing -- re the python-midi dependency -- does this correspond to a particular package in Debian/Ubuntu that you know of? python-imaging and python-pypdf were easy to find, it's not obvious what package (if any) corresponds to midi. There is no package for it. pip-requires.txt should make the reason obvious: # The upstream repository still has an unmerged pull # request fixing a significant tempo calculation bug: # https://github.com/vishnubob/python-midi/pull/6 #git+git://github.com/vishnubob/python-midi.git#egg=midi # whereas my fork has the pull request merged in: git+git://github.com/aspiers/python-midi.git#egg=midi That's why the installation instructions are based on the pip-requires.txt. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 09:35:17PM +0100, Joseph Rushton Wakeling wrote: Oh, and -- you need libasound2-dev installed to be able to do the pip install, otherwise python-midi won't build. Thanks! I've added that to the README. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 10:15:37PM +0100, Martin Tarenskeen wrote: On Tue, 29 Jan 2013, Joseph Rushton Wakeling wrote: On 01/29/2013 09:12 PM, Joseph Rushton Wakeling wrote: One other thing -- re the python-midi dependency -- does this correspond to a particular package in Debian/Ubuntu that you know of? python-imaging and python-pypdf were easy to find, it's not obvious what package (if any) corresponds to midi. Oh, and -- you need libasound2-dev installed to be able to do the pip install, otherwise python-midi won't build. And also I had to install swig before I could build using python-pip Hmm that's interesting; even though I have swig installed, I don't remember seeing any compilation of the ALSA sequencer code. Please could you paste the output of a shell session where SWIG is uninstalled and it fails to build? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 08:22:33PM +0100, David Kastrup wrote: Adam Spiers lilypond-u...@adamspiers.org writes: + a new default scrolling mode where the notation stay still and the cursor line scrolls from left to right You jump the notation leftwards. You should rather _pull_ it left. Yeah, this was my initial intention, since the video which lead to my searching for something like ly2video and subsequent discovery of it does already do this: http://www.youtube.com/watch?v=YC5mfm2C-ZI In fact, I even already have a git branch where I started the implementation. Start with a pixel per frame, increase the speed by 1 pixel/frame/frame until you are half through, then decrease by 1 pixel/frame/frame. If this is not fast enough to keep the cursor on-screen, start earlier and/or faster. Ok, the metrics are certainly debatable: you probably want everything over in 0.5 seconds or less, and want to have this in two phases (possibly more): acceleration and deceleration. Nice. I hadn't thought of doing it like that - I had only considered a simple scroll with constant speed. But a mere discontinuous jump is confusing since it can happen when blinking. Right, that's the obvious justification for the feature. I have two minor concerns: firstly, whether the scrolling can happen smoothly enough within 0.5 seconds, especially at lower frame rates, and secondly, whether there is a significant risk of the scrolling coinciding with playback of a particularly detailed / interesting bit of the music where it would be more satisfactory to keep the notation motionless. However, since you and I both had pretty much the same idea, I think that's a good enough sign that it should be implemented; filed as: https://github.com/aspiers/ly2video/issues/27 FYI, there's a related issue: https://github.com/aspiers/ly2video/issues/22 Thanks! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: [ANNOUNCE] ly2video 0.3.0
On Tue, Jan 29, 2013 at 09:26:16PM +0100, Martin Tarenskeen wrote: On Tue, 29 Jan 2013, Adam Spiers wrote: I'm happy to announce the release of ly2video 0.3.0. I have tried it and it works nicely. But something is wrong with --title-at-start. Could you check this? That doesn't surprise me; I haven't tested the title code at all, and it has been through many many refactorings. I'll take a look. It would help if you could file an issue with a test case and some debug though. Thanks, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: disabling point-and-click for displayed chords?
On Tue, Jan 15, 2013 at 3:05 PM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Tue, Jan 15, 2013 at 9:41 AM, David Kastrup d...@gnu.org wrote: Adam Spiers lilypond-u...@adamspiers.org writes: I need to generate point-and-click links for notes but not for displayed chord names. However, \pointAndClickTypes only filters by music event class, and if my understanding is correct, events in a certain music class have no notion of which context they are being applied in, and so this filter cannot distinguish between a note-event in a Voice context and a note-event in a ChordNames context. [snipped] Am I correct, and if so, is there any workaround? I naively tried: \score { \pointAndClickTypes #'() \allchords \pointAndClickTypes #'(note-event) \new Staff { \allnotes } ... } but it still created point-and-click annotations for everything. You could use an engraver in ChordNames for wiping out the (event) cause of the last involved grob. Then the point-and-click location would no longer be available... That makes sense. Do you mean an existing engraver though, or a new one? The only existing one which looks promising is Output_property_engraver (which I had never heard of before). Does that mean I do this via \applyOutput? I got this to work for a single note via: #(define (delete-grob-cause grob origctx curctx) (let* ((cause (ly:grob-property grob 'cause)) (music-origin (if (ly:stream-event? cause) (ly:event-property cause 'origin (ly:debug removing grob origin '~a' music-origin))) (ly:grob-set-property! grob 'cause #f)) and then: \applyOutput #'ChordNames #delete-grob-cause However, this only worked for the single note following the command. I searched hard for a way to apply it to all notes, but this was the best advice I could find: http://thread.gmane.org/gmane.comp.gnu.lilypond.general/18699/focus=18700 and both options presented were behind my expertise. However, I did find another solution which worked great: diff --git a/scm/output-ps.scm b/scm/output-ps.scm index dd92175..04b248f 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -142,7 +142,9 @@ (define (grob-cause offset grob) (if (ly:get-option 'point-and-click) - (let* ((cause (ly:grob-property grob 'cause)) + (let* ((name (assoc-get 'name (ly:grob-property grob 'meta))) + (class (assoc-get 'class (ly:grob-property grob 'meta))) + (cause (ly:grob-property grob 'cause)) (music-origin (if (ly:stream-event? cause) (ly:event-property cause 'origin))) (point-and-click (ly:get-option 'point-and-click))) @@ -153,7 +155,8 @@ (ly:in-event-class? cause point-and-click)) (else (any (lambda (t) (ly:in-event-class? cause t)) - point-and-click + point-and-click))) + (not (equal? name 'ChordName))) (let* ((location (ly:input-file-line-char-column music-origin)) (raw-file (car location)) (file (if (is-absolute? raw-file) Clearly this patch is not appropriate for submission as is. However, I think it would be worth either extending \pointAndClickTypes to support filtering by context, or adding a new command such as \pointAndClickContexts. If there is agreement with this idea I am happy to submit an issue and drum up a patch, but I'd appreciate guidance on the best interface syntax. For instance, I'm not sure whether it's better to treat the argument as a list of contexts to include: \pointAndClickExcludedContexts #'(Voice DrumVoice) or contexts to exclude: \pointAndClickContexts #'(ChordNames) or should both inclusion and exclusion be supported, either via separate commands or a single command, e.g. \pointAndClickContexts #'(Voice DrumVoice -ChordNames) And how would any of these commands interact with the existing \pointAndClickTypes command? Presumably they'd have to be treated as an additional level of filtering. Thanks, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: disabling point-and-click for displayed chords?
On Tue, Jan 15, 2013 at 9:41 AM, David Kastrup d...@gnu.org wrote: Adam Spiers lilypond-u...@adamspiers.org writes: Hi all, I need to generate point-and-click links for notes but not for displayed chord names. However, \pointAndClickTypes only filters by music event class, and if my understanding is correct, events in a certain music class have no notion of which context they are being applied in, and so this filter cannot distinguish between a note-event in a Voice context and a note-event in a ChordNames context. Also, this filter is global. Yeah, I spotted that, but I figured that even a global variable can change state during execution so it was worth a try ... Am I correct, and if so, is there any workaround? I naively tried: \score { \pointAndClickTypes #'() \allchords \pointAndClickTypes #'(note-event) \new Staff { \allnotes } ... } but it still created point-and-click annotations for everything. You could use an engraver in ChordNames for wiping out the (event) cause of the last involved grob. Then the point-and-click location would no longer be available... That makes sense. Do you mean an existing engraver though, or a new one? The only existing one which looks promising is Output_property_engraver (which I had never heard of before). Does that mean I do this via \applyOutput? Thanks! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
disabling point-and-click for displayed chords?
Hi all, I need to generate point-and-click links for notes but not for displayed chord names. However, \pointAndClickTypes only filters by music event class, and if my understanding is correct, events in a certain music class have no notion of which context they are being applied in, and so this filter cannot distinguish between a note-event in a Voice context and a note-event in a ChordNames context. Am I correct, and if so, is there any workaround? I naively tried: \score { \pointAndClickTypes #'() \allchords \pointAndClickTypes #'(note-event) \new Staff { \allnotes } ... } but it still created point-and-click annotations for everything. Thanks, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: grace notes break preceding ties in MIDI
Sorry, I should have moved this thread to lilypond-devel; I'll repost there ... On Sat, Jan 12, 2013 at 12:08:21PM +, Adam Spiers wrote: On Tue, Jan 8, 2013 at 5:59 PM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Tue, Jan 8, 2013 at 5:41 PM, Eluze elu...@gmail.com wrote: I've added an issue to the tracker: https://code.google.com/p/lilypond/issues/detail?id=3091thanks=3091ts=1357666391 Thanks! I'm not aware of a workaround - I could imagine using 2 voices, one without the grace the other with just the grace and a muted note - but this seems pretty awkward! Is it perhaps the fault of the if (now_mom ().grace_part_) section in Note_performer::process_music() in lily/note-performer.cc? Does it somehow reintroduce the previous note when shortening it to make room for the grace note, even though the previous note was tied to the one before? Is there a performer tutorial similar to the engraver tutorial? http://lilypond.org/doc/v2.16/Documentation/contributor/engraver-tutorial I've started trying to fix the above bug, but my knowledge of LilyPond's C++ performer code (let alone any other code) is poor, and getting to grips with the various data structures is slow work. I'm running it through gdb which helps, but any other pointers would be really useful. Thanks! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: grace notes break preceding ties in MIDI
On Tue, Jan 8, 2013 at 5:41 PM, Eluze elu...@gmail.com wrote: I've added an issue to the tracker: https://code.google.com/p/lilypond/issues/detail?id=3091thanks=3091ts=1357666391 Thanks! I'm not aware of a workaround - I could imagine using 2 voices, one without the grace the other with just the grace and a muted note - but this seems pretty awkward! Is it perhaps the fault of the if (now_mom ().grace_part_) section in Note_performer::process_music() in lily/note-performer.cc? Does it somehow reintroduce the previous note when shortening it to make room for the grace note, even though the previous note was tied to the one before? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: \hideNotes and MIDI Note_performer
On Mon, Jan 7, 2013 at 9:30 AM, Johannes Rohrer s...@johannesrohrer.de wrote: Adam Spiers lilypond-user at adamspiers.org writes: I've noticed that MIDI generation doesn't honour transparent notes, e.g. in f8( \hideNotes \grace { c16 \glissando } \unHideNotes f8) a NoteOn event is generated for the c16. Hopefully I should be able to address this if someone gives me a few pointers. My first guess was to tweak Note_performer::process_music() by adding something like: if (to_boolean(n-get_property (transparent))) break; It won't be that simple I'm afraid. transparent is not an event property that you can read here, but a grob property. \hideNotes presets it for various graphical objects (Dots, NoteHead, Stem, Beam, Accidental, Rest, TabNoteHead), using override commands like this: \override NoteHead.transparent = ##t But during MIDI generation, no such objects are ever created. Ah, of course. From a note event, Note_performer creates an AudioNote object, a type of AudioElement, and those are formally analogue to grobs. It would be nice if you could override a property again, like this: \override AudioNote.mute = ##t That would be ideal, yes! Unfortunately, the AudioElement class, which is rather primitive compared to Grob, does not currently provide any scheme property interface. (Changing this is an item on my imaginary LilyPond project list, but I am still learning myself.) For now, working around the problem with tags might be more productive? OK, but I'm not sure how tags could be used for this. Are they available to Note_performer, or did you mean something else? Thanks a lot! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
grace notes break preceding ties in MIDI
Hi all, Can anyone explain the following bug, and offer a work-around? Reproducible on latest git master: \include english.ly %\include articulate.ly \score { \new Staff { \relative c' { % BUG: This first f~ tie will not be honoured in the MIDI output % due to the \grace: f2 ef4 f~ % i.e. this f8 will be sounded: | f8 \grace c32 f4 } } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 150 4) } } } If the grace note is removed, the tie works. Thanks! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
\hideNotes and MIDI Note_performer
Hi all, I've noticed that MIDI generation doesn't honour transparent notes, e.g. in f8( \hideNotes \grace { c16 \glissando } \unHideNotes f8) a NoteOn event is generated for the c16. Hopefully I should be able to address this if someone gives me a few pointers. My first guess was to tweak Note_performer::process_music() by adding something like: if (to_boolean(n-get_property (transparent))) break; but honestly it's a wild guess and was hoping someone could spend 2 minutes to save me spending several hours trying to grok the Contributor's Guide. My other thought was that if articulation.ly can affect MIDI output then perhaps I'm better off tackling this in scheme, since some people might very well want their transparent notes appearing in the MIDI e.g. if they wanted to build listen to this and fill in the gaps in the transcription aural exercises. My LilyPond internals knowledge is rusty and pretty weak, but I'm usually pretty good at picking new stuff up - would really appreciate if someone could give me a leg up over the first hurdle though! Thanks a lot, Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ly2video - create videos from your LilyPond projects
On Thu, Nov 15, 2012 at 12:41 AM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Wed, May 23, 2012 at 7:15 PM, FireTight fireti...@gmail.com wrote: Hello, my name is Jiri FireTight Szabo and I would like to introduce program ly2video to you. This program can generate videos from your LilyPond projects that contains moving music staff, which is synchronized to music ( http://www.youtube.com/playlist?list=PL444F0513202699C4feature=view_all examples ). If you are interested, you can download it http://code.google.com/p/ly2video/downloads/detail?name=ly2video_v1.0.zip here . I hope you will enjoy it! :) This is fantastic!! Two questions: 1. Please can you make the source code available as a git repository, so that everyone can collaborate on development? Whilst waiting for Jiri to reply, I have made a friendly fork here: https://github.com/aspiers/ly2video If he has existing revision control history, we can easily rebase my commits on top of that when he gets a chance to publish his. I am hacking on Linux support in the 'linux' branch: https://github.com/aspiers/ly2video/tree/linux although this is not stable and liable to be rebased several times for the time being. If anyone else wants to collaborate on this, please let me know and I'll stop rebasing. 2. I have a video of myself performing some music for which I have a Lilypond transcription. I would like to edit this video so that it also contains a moving music staff similar to this one: https://www.youtube.com/watch?v=YC5mfm2C-ZI Can you suggest the easiest way to achieve this? If that's difficult, then it would be good enough to have the vertical line scroll rather than the staff, or even have no vertical line at all. But either way, I really want to have the bottom half of the video frame showing a dynamically updating window into an endless one-system layout. I'm currently thinking that the easiest way might be to use a NLE video editor to compose the two videos, using my sound track, and manually tweaking the tempo in Lilypond for the spots where it drifts out of sync. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ly2video - create videos from your LilyPond projects
n Sat, Nov 17, 2012 at 12:48 PM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Thu, Nov 15, 2012 at 12:41 AM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Wed, May 23, 2012 at 7:15 PM, FireTight fireti...@gmail.com wrote: Hello, my name is Jiri FireTight Szabo and I would like to introduce program ly2video to you. This program can generate videos from your LilyPond projects that contains moving music staff, which is synchronized to music ( http://www.youtube.com/playlist?list=PL444F0513202699C4feature=view_all examples ). If you are interested, you can download it http://code.google.com/p/ly2video/downloads/detail?name=ly2video_v1.0.zip here . I hope you will enjoy it! :) This is fantastic!! Two questions: 1. Please can you make the source code available as a git repository, so that everyone can collaborate on development? Whilst waiting for Jiri to reply, I have made a friendly fork here: https://github.com/aspiers/ly2video I have also filed issues in the tracker for all the problems already raised on this mailing list, and one or two others: http://code.google.com/p/ly2video/issues/list ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ly2video - create videos from your LilyPond projects
On Wed, May 23, 2012 at 7:15 PM, FireTight fireti...@gmail.com wrote: Hello, my name is Jiri FireTight Szabo and I would like to introduce program ly2video to you. This program can generate videos from your LilyPond projects that contains moving music staff, which is synchronized to music ( http://www.youtube.com/playlist?list=PL444F0513202699C4feature=view_all examples ). If you are interested, you can download it http://code.google.com/p/ly2video/downloads/detail?name=ly2video_v1.0.zip here . I hope you will enjoy it! :) This is fantastic!! Two questions: 1. Please can you make the source code available as a git repository, so that everyone can collaborate on development? 2. I have a video of myself performing some music for which I have a Lilypond transcription. I would like to edit this video so that it also contains a moving music staff similar to this one: https://www.youtube.com/watch?v=YC5mfm2C-ZI Can you suggest the easiest way to achieve this? If that's difficult, then it would be good enough to have the vertical line scroll rather than the staff, or even have no vertical line at all. But either way, I really want to have the bottom half of the video frame showing a dynamically updating window into an endless one-system layout. Thanks again for your great work so far! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Empty music sheet generator in LilyPond
On Fri, Sep 9, 2011 at 3:58 PM, Tim McNamara tim...@bitstream.net wrote: Reinhold, that is absolutely outstanding. So many options with the great preview, a couple of which are perfect for my needs. Thank you! Agreed, this is wonderful work - many thanks!! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: More vertical spacing confusion
On Wed, Aug 3, 2011 at 5:37 AM, David Kastrup d...@gnu.org wrote: David Kastrup d...@gnu.org writes: Joe Neeman joenee...@gmail.com writes: So I have several questions: - Is the behaviour I am experiencing (a system spilling over onto a second page) correct or a bug? If correct, what's the best way to avoid the spillage? \paper { ragged-last-bottom = ##f } By default, ragged-last-bottom is ##t, so lilypond has no incentive to avoid that dangling system on page 2. I don't understand this so. The following should still be penalized since they are deficiencies even on a ragged bottom: a) a page which is considerably less full than the previous page b) every page break, and most certainly inside of a system, should carry a penalty, giving Lilypond some incentive to compress systems iff it helps to avoid using more pages than necessary. Otherwise, the scoring does not care whether we have 5 pages with just a single system and lots of bottom space, one full page, and 5 pages with just a single system again. Ragged-bottom or not, this is ugly and that should get reflected in the scores. I agree 100% David! This is beginning to sound like a bug to me. I couldn't find any documentation on how to debug the vertical spacing algorithms, and by its nature it's impossible to reduce this to a test case involving only a handful of notes. Any suggestions how to proceed? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: More vertical spacing confusion
On Wed, Aug 3, 2011 at 10:34 PM, Adam Spiers lilypond-u...@adamspiers.org wrote: On Wed, Aug 3, 2011 at 5:37 AM, David Kastrup d...@gnu.org wrote: David Kastrup d...@gnu.org writes: Ragged-bottom or not, this is ugly and that should get reflected in the scores. I agree 100% David! This is beginning to sound like a bug to me. I couldn't find any documentation on how to debug the vertical spacing algorithms, and by its nature it's impossible to reduce this to a test case involving only a handful of notes. Any suggestions how to proceed? I just found lily/optimal-page-breaking.cc which led me to: #(ly:set-option 'debug-page-breaking-scoring) However that does not reveal much: Finding the ideal number of pages... Fitting music on 1 or 2 pages... trying 7 systems best score for this sys-count: 15.210169 trying 8 systems best score for this sys-count: 33.003158 trying 9 systems best score for this sys-count: 48.201796 trying 10 systems best score for this sys-count: 70.968437 trying 11 systems best score for this sys-count: 98.457262 trying 12 systems best score for this sys-count: 130.470496 trying 13 systems best score for this sys-count: inf Drawing systems... Layout output to `pagination-bug.ps'... Converting to `./pagination-bug.pdf'... success: Compilation successfully completed I guess I could try adding some more debug to optimal-page-breaking.cc, but at this point I'm really out of my depth and would need mentoring from a developer. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: More vertical spacing confusion
On Sat, Jul 30, 2011 at 11:15 PM, Keith OHara k-ohara5...@oco.net wrote: Adam Spiers lilypond-user at adamspiers.org writes: I have a piece of music which should easily fit on one page, and indeed does until I change the paper size from A4 to US Letter, at which point the final system spills over onto a second page. You can \paper { system-system-spacing #'basic-distance = 8 % default was 12 page-count = #1 The first line because the way you use the rhythmic staff as the first staff you don't want that much distance to the system above. The second line because Lilypond still doesn't break pages properly, so just help her. Thanks very much for the response, although I hope I don't sound too ungrateful by saying that that wasn't quite the answer I was hoping for :) Setting page-count to 1 does indeed get rid of the extra page, although it also causes warnings: Preprocessing graphical objects... programming error: number of pages is out of bounds continuing, cross fingers Fitting music on 1 page... programming error: number of pages is out of bounds continuing, cross fingers Drawing systems... It's a rather unpleasant brute force approach to the problem, and I would much prefer to understand the details of the vertical spacing algorithm so that I can control it better when dealing with multiple pages. To this end I'd really appreciate if anyone can answer my original questions regarding the arrow annotations, extent-estimate, mysterious vertical gaps etc., and also give more information around your assertion that Lilypond doesn't break pages properly. Do you mean there are known bugs specifically with the 2.15.x series, or just with every version? Are they likely to be fixed any time soon? Many thanks again! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
More vertical spacing confusion
Hi all, I have a piece of music which should easily fit on one page, and indeed does until I change the paper size from A4 to US Letter, at which point the final system spills over onto a second page. The source and resulting PDF are here: http://adamspiers.org/music/lilypond/ I am using a fresh build of the main git development branch. (Apologies for not being to include a concise test case, but obviously the spacing issue is a symptom of stacking chords and a RhythmicStaff on top of a normal Staff.) After enabling spacing annotation, I trawled the documentation e.g. http://lilypond.org/doc/v2.15/Documentation/notation/displaying-spacing and list archives for an explanation of the various annotated lines, but came up short. I see I am not the first to be a bit confused about how all the vertical spacing variables and algorithms work, e.g. http://article.gmane.org/gmane.comp.gnu.lilypond.devel/31049/ So I have several questions: - Is the behaviour I am experiencing (a system spilling over onto a second page) correct or a bug? If correct, what's the best way to avoid the spillage? - Why does each system in my PDF (URL above) have a double-ended grey arrow line which stretches well above the highest part of the system and sometimes below it too? What does this line mean? - Why is there a gap in between the bottom end of one of these per-system arrows and the top end of the next? - What does the extent-estimate line refer to? - How do the skylines relate to / impact vertical spacing? - Are skylines, debugging thereof, and springs documented anywhere? I could only find mentions in the mailing list archives. I see there was an effort to improve documentation in this area, e.g. http://thread.gmane.org/gmane.comp.gnu.lilypond.devel/31117/ http://codereview.appspot.com/2316042/ but I'm still struggling to find anything which explains them in a way I can understand without having to read source code. Many thanks! Adam ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user