Hi Richard,
The ideal approach would have been to have a timing information directly inserted in the svg output by LilyPond itself but I tried everything I could to obtain such a result with no luck. I posted here about that topic but I didn't get any clue.
So I figured out I'd do it myself.
I was able to set a grob's ID dynamically and put its "origin" (point and click information) in it : that was a way to later reference a unique notehead or rest.
On the other side, the event listener (based on the event-listener.ly file bundled with LilyPond) allowed me to get an approximate timing information and another "origin" which I could then couple to the first one.
I say "approximate" because the event listener itself seems imperfect to me (even though I'm glad it exist, of course). The "moment" value is always computed on a 4/4 time signature basis, even if specified otherwise. Time signatures events themselves are not reported even though there's a listener for that. Anyway, I got rid of those little things by calculating timing data myself.
In the python script, I'm basically keeping track of a current tempo and use delta-time computations over note and rest events to calculate their real timing.
The script then injects extra HTML5 attributes to the svg code.
The _javascript_ part gather all noteheads and rests <g> tags and creates an array of objects which is then sorted chronologically (svg objects are laid out in a way which is not chronological at all).
Hope this answers even partially to your curiosity :)
I really appreciate your feedback and I'm happy to have reasons to keep working on that tool other than myself only :)
Cheers,
Mathieu
On Sun, 2015-11-29 at 19:08 +0100, Mathieu Demange wrote:
> Hello all,
>
> I've been developing a tool which is at a very early stage now, but I
> humbly guess you should like the idea. Check this very simple page and
> click the "play" button (or you can click any note or rest).
I wonder could you give a brief over-view of how you are finding
locations in the LilyPond typeset score that correspond with times?
I ask because by strange coincidence I have just spent the last few days
exploring this topic: I resorted to specifying the number of bars per
line and systems per page and setting the
Score.proportionalNotationDuration = #(ly:make-moment ...
so as to arrive at a score where I could calculate the location by
dead-reckoning.
Could you say, very roughly, what you are doing?
And, if there has been any further progress in LilyPond to generate a
set of timings for locations in a LilyPond svg or pdf output score which
I may have missed, can anyone else on the list enlighten me.
Richard
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
- Re: Introducing "LilyPond HTML Live Score" David Bellows
- Re: Introducing "LilyPond HTML Live Score" Mathieu Demange
- Re: Introducing "LilyPond HTML Live Score&qu... David Bellows
- Re: Introducing "LilyPond HTML Live Scor... Mathieu Demange
- Re: Introducing "LilyPond HTML Live ... David Bellows
- Re: Introducing "LilyPond HTML ... Mathieu Demange
- Re: Introducing "LilyPond H... David Bellows
- Re: Introducing "LilyPond H... Mathieu Demange
- Re: Introducing "LilyPond HTML Live Score" Peter Crighton
- Re: Introducing "LilyPond HTML Live Score" Richard Shann
- Re: Introducing "LilyPond HTML Live Score" Mathieu Demange
- Re: Introducing "LilyPond HTML Live Score&qu... David Kastrup
- Re: Introducing "LilyPond HTML Live Scor... Urs Liska
- Re: Introducing "LilyPond HTML Live ... David Kastrup
- Re: Introducing "LilyPond HTML Live ... David Nalesnik
- Re: Introducing "LilyPond HTML ... Mathieu Demange
- Re: Introducing "LilyPond H... David Kastrup
- Re: Introducing "LilyPond HTML Live Score&qu... Richard Shann
- Re: Introducing "LilyPond HTML Live Score" Paul Morris
- Re: Introducing "LilyPond HTML Live Score" MarcM
- Re: Introducing "LilyPond HTML Live Score" Colin Campbell