Re: video generation

2017-09-04 Thread Adam Spiers
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

2017-09-03 Thread Adam Spiers
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

2017-09-03 Thread Adam Spiers
Hi all,

On 2 September 2017 at 22:07, Paul  wrote:
> 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

2017-09-03 Thread Adam Spiers
Hi Knut,

On 21 July 2017 at 09:00, Knut Petersen  wrote:
> 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?

2017-03-16 Thread Adam Spiers
On 15 March 2017 at 18:12, David Wright  wrote:
> 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?

2017-03-15 Thread Adam Spiers
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?

2017-03-15 Thread Adam Spiers
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?

2017-03-15 Thread Adam Spiers
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?

2017-03-15 Thread Adam Spiers
On 15 March 2017 at 05:48, Robert Schmaus  wrote:
> 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?

2017-03-14 Thread Adam Spiers
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

2014-08-31 Thread Adam Spiers
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

2014-03-14 Thread Adam Spiers
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!

2014-03-14 Thread Adam Spiers
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

2013-09-29 Thread Adam Spiers
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

2013-08-24 Thread Adam Spiers
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?

2013-08-24 Thread Adam Spiers
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

2013-08-24 Thread Adam Spiers
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

2013-08-24 Thread Adam Spiers
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

2013-08-24 Thread Adam Spiers
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

2013-08-24 Thread Adam Spiers
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?

2013-08-13 Thread Adam Spiers
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

2013-03-06 Thread Adam Spiers
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

2013-03-06 Thread Adam Spiers
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

2013-03-06 Thread Adam Spiers
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?

2013-02-28 Thread Adam Spiers
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?

2013-02-28 Thread Adam Spiers
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?

2013-02-28 Thread Adam Spiers
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?

2013-02-28 Thread Adam Spiers
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?

2013-02-27 Thread Adam Spiers
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?

2013-02-25 Thread Adam Spiers
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

2013-02-08 Thread Adam Spiers
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

2013-02-07 Thread Adam Spiers
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?

2013-02-06 Thread Adam Spiers
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

2013-02-04 Thread Adam Spiers
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?

2013-01-31 Thread Adam Spiers
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?

2013-01-30 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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

2013-01-29 Thread Adam Spiers
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?

2013-01-26 Thread Adam Spiers
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?

2013-01-15 Thread Adam Spiers
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?

2013-01-14 Thread Adam Spiers
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

2013-01-12 Thread Adam Spiers
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

2013-01-08 Thread Adam Spiers
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

2013-01-07 Thread Adam Spiers
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

2013-01-07 Thread Adam Spiers
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

2013-01-06 Thread Adam Spiers
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

2012-11-17 Thread Adam Spiers
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

2012-11-17 Thread Adam Spiers
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

2012-11-14 Thread Adam Spiers
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

2011-09-09 Thread Adam Spiers
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

2011-08-03 Thread Adam Spiers
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

2011-08-03 Thread Adam Spiers
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

2011-07-31 Thread Adam Spiers
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

2011-07-30 Thread Adam Spiers
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