New frog in an empty pond?

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

New frog in an empty pond?

Pavel Roskin
Hello!

I subscribed to the frogs list, but I don't see any activity here.

The archives end August 03, 2011:
http://lilypond-frogs.2124236.n2.nabble.com/

Maybe the list is archived elsewhere?

There is another sign of bitrot on http://frogs.lilynet.net/
"If you are the owner of this website, please update the Nabble
embedding javascript code"

I'm a long time software developer, who is also taking singing
lessons.  LilyPond helps me make nice looking scores (as opposed to
photocopies of old books) and MIDI files that I can adjust in different
ways.

I want all non-trivial tweaks to be useful for others.  I also put the
scores on Mutopia if the copyright permits.

So far, I contributed two scores to Mutopia and one snippet to LSR.

At this point, I'm trying to do two things:

Give reasonable durations to grace notes in Giovanni Paisiello's "Nel
cor più non mi sento".

Implement reliable and nice looking cross-staff stems for Franz
Schubert's "Die Forelle".

Both requires a good understanding of Lilypond internals.  The later
also needs a good deal of Scheme knowledge.

As part of learning LilyPond, I read its documentation and report
whatever problems I find.

It's hard for me to promise a long time commitment to LilyPond
development.  However, I do spend some time on it.  I think it would be
great for me to have a mentor.  I understand this list is the place to
look for mentors, or at least it used to be.  Any takers?

--
Regards,
Pavel Roskin

--
----
Join the Frogs!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Janek Warchol
Hi Pavel,

unfortunately this list is quite dead right now (time for a change?).

It's great to see you working on LilyPond!

Cross-staff stems would indeed be a valuable addition.  I would begin by reading code that creates brackets and cross-system barlines (and perhaps grid lines).

It would be good indeed if you have a mentor; unfortunately, i don't think you'll find one here, on frogs.  It's hard to find a mentor in general...
I'm not much Lily-knowledgeable, so i don't think i would be a good mentor for you, but if you have any problems with git, our development cycle or other general issues, feel free to ask me privately.

cheers,
Janek
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Graham Percival
On Wed, Feb 22, 2012 at 04:52:00PM -0800, Janek Warchol wrote:
> It would be good indeed if you have a mentor; unfortunately, i don't think
> you'll find one here, on frogs.  It's hard to find a mentor in general...
> I'm not much Lily-knowledgeable, so i don't think i would be a good mentor
> for you,

Really?  Which responsibility are you unable to fulfill?  There
are 7 responsibilities.  Tell me the EXACT number that you cannot
do.
http://lilypond.org/doc/v2.15/Documentation/contributor/mentors
(note that points 4 and 5 should be rewritten for the new patch
handling and staging)

Pavel Roskin is doing everything right.  He's clearly read the CG,
he's submitted stuff to rietveld, he's actively trying to get help
in the manner that we want people to ask for help.  But once his
patches get through the countdown, nobody wants to bother taking
responsibility for getting the final git patch and pushing it.
He's one of the easiest people to mentor.


Last summer, you were very vocal about wanting mentors for new
contributors.  If you can't handle Pavel, then I think I'll just
remove all mention of "mentors" from the docs.  It was a cute
idea, but it hasn't worked yet, and there's no reason to think
that it will work in the future.  Right now it just gives false
hope to new contributors.

- Graham

--
----
Join the Frogs!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Pavel Roskin
In reply to this post by Janek Warchol
Hi, Janek!

Quoting Janek Warchol <[hidden email]>:

> Hi Pavel,
>
> unfortunately this list is quite dead right now (time for a change?).

It's the second reply, I got, so maybe the list is not as dead as I feared.

> It's great to see you working on LilyPond!
>
> Cross-staff stems would indeed be a valuable addition.  I would begin by
> reading code that creates brackets and cross-system barlines (and perhaps
> grid lines).

I actually wanted to make a stopgap solution in Scheme.  I wrote some  
code that looks for other stems and sets the stem length so it would  
touch the stem above (attached).  But the code is unreliable.  Some  
stems are not calculated yet.  So I need a different approach to do my  
calculations at a later time.  That's where an advice of an  
experienced developer could save a lot of time.

I'm going to see the C++ code, that's for sure.  It may help me to  
understand some missing details.  But the main missing detail at this  
point is using the appropriate interface in Scheme.

I don't think I can write C++ code for cross-staff stems at this  
point.  The may reason is that I won't be able to meet the quality  
standards of the Lilypond core code.

> It would be good indeed if you have a mentor; unfortunately, i don't think
> you'll find one here, on frogs.  It's hard to find a mentor in general...
> I'm not much Lily-knowledgeable, so i don't think i would be a good mentor
> for you, but if you have any problems with git, our development cycle or
> other general issues, feel free to ask me privately.

Mike has agreed to be my mentor.

--
Regards,
Pavel Roskin


stemconnect.ly (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Neil Puttock
On 23 February 2012 15:18, Pavel Roskin <[hidden email]> wrote:

> I actually wanted to make a stopgap solution in Scheme.  I wrote some code
> that looks for other stems and sets the stem length so it would touch the
> stem above (attached).  But the code is unreliable.  Some stems are not
> calculated yet.

I'd love to be proven wrong, but I don't think you'll have much
success with this approach.  At the very least, you'll need a Scheme
engraver at the correct context level to collect the stems at the
right time.  If a simple length override were possible with the
current infrastructure, we wouldn't need a Span_arpeggio_engraver to
typeset cross-staff arpeggios.

Cheers,
Neil

--
----
Join the Frogs!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Pavel Roskin
Quoting Neil Puttock <[hidden email]>:

> On 23 February 2012 15:18, Pavel Roskin <[hidden email]> wrote:
>
>> I actually wanted to make a stopgap solution in Scheme.  I wrote some code
>> that looks for other stems and sets the stem length so it would touch the
>> stem above (attached).  But the code is unreliable.  Some stems are not
>> calculated yet.
>
> I'd love to be proven wrong, but I don't think you'll have much
> success with this approach.  At the very least, you'll need a Scheme
> engraver at the correct context level to collect the stems at the
> right time.  If a simple length override were possible with the
> current infrastructure, we wouldn't need a Span_arpeggio_engraver to
> typeset cross-staff arpeggios.

Thank you for this valuable advise!  I was considering that approach.  
I guess I'll need to learn how to write an engraver in Scheme.

--
Regards,
Pavel Roskin

--
----
Join the Frogs!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Janek Warchol
In reply to this post by Graham Percival
On Thu, Feb 23, 2012 at 1:18 PM, Graham Percival
<[hidden email]> wrote:

> On Wed, Feb 22, 2012 at 04:52:00PM -0800, Janek Warchol wrote:
>> It would be good indeed if you have a mentor; unfortunately, i don't think
>> you'll find one here, on frogs.  It's hard to find a mentor in general...
>> I'm not much Lily-knowledgeable, so i don't think i would be a good mentor
>> for you,
>
> Really?  Which responsibility are you unable to fulfill?  There
> are 7 responsibilities.  Tell me the EXACT number that you cannot
> do.
> http://lilypond.org/doc/v2.15/Documentation/contributor/mentors
> (note that points 4 and 5 should be rewritten for the new patch
> handling and staging)
>
> Pavel Roskin is doing everything right.  He's clearly read the CG,
> he's submitted stuff to rietveld, he's actively trying to get help
> in the manner that we want people to ask for help.  But once his
> patches get through the countdown, nobody wants to bother taking
> responsibility for getting the final git patch and pushing it.
> He's one of the easiest people to mentor.

Of course i can do it.  (Pavel, if you have problems with getting the
patch pushed, or you have trouble getting reviews, or it seems that
your patch is being overlooked - let me know and i'll try to help!)
My concern was that Pavel's a skilled contributor whose primary need
is advice on coding - for example cross-staff stems thing.  All advice
i can provide (without digging through the code myself, which i'd love
to do but don't have time to because of Google Summer of Code and
other organizational stuff) was what i wrote: "try looking at grid
lines code".  That's definitely not enough for efficient mentoring :(
What i can do is provide advice on development-related things like
git.  If you know someone who know how to write his stuff but has
trouble getting it into system, let me know.
Actually, since a month i do want to do something about patchy, git-cl
and CG to make this process more straightforward.  But i got so busy
with GSoC (that's urgent) and other things that drop in occasionally
(and someone has to take care about them, or they are important and
need testing (i'm good at testing) like Mike's skylines) that i can't
(i even stopped thinking about Kickstarter project).  I'm already
quite often not sleeping because of Lily and it's going to be worse.

> Last summer, you were very vocal about wanting mentors for new
> contributors.  If you can't handle Pavel, then I think I'll just
> remove all mention of "mentors" from the docs.  It was a cute
> idea, but it hasn't worked yet, and there's no reason to think
> that it will work in the future.  Right now it just gives false
> hope to new contributors.

Do whatever you want.  But since Mike is Pavel's mentor, i don't think
it's that bad.


On Thu, Feb 23, 2012 at 4:46 PM, Łukasz Czerwiński <[hidden email]> wrote:
> Janek,
>
> From my experience of work with you, I think you are a great mentor :D
> Of course you don't know the whole Lilypond, but it's not so important - in
> such case you know who you could ask (Graham, Mike etc.).
> The most important is that thanks to your tips and guidance new contributors
> would get help needed to start contributing.

wow, thanks!
I should definitely find some new "apprentices". but i better finish
what i do now first.

cheers,
JAenk

--
----
Join the Frogs!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Janek Warchol
On Sat, Feb 25, 2012 at 10:09 AM, David Kastrup <[hidden email]> wrote:
> Janek Warchoł <[hidden email]> writes:
>> i wrote: "try looking at grid
>> lines code".  That's definitely not enough for efficient mentoring :(
>
> "Try asking on the developer list."  "Find an angle that makes this
> problem interesting for Mike."
>
> The job of a mentor is not the same as the job of a teacher.  You need
> not provide answers, just offer advice on how or where to find them.

Hmm.  I may have been looking at mentoring from wrong perspective.

>> I'm already quite often not sleeping because of Lily and it's going to
>> be worse.
>
> Don't give more than you can sustain.  Ever.  You are not doing anybody
> a favor, even though it may seem so to some.  But those will be the
> first to complain when you are drained.

Fortunately it's mostly me whom i'm doing this for :)
(is the above proper English, anyway?)

cheers,
Janek

--
----
Join the Frogs!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Janek Warchol
In reply to this post by Pavel Roskin
On Sun, Feb 26, 2012 at 10:58 AM, [hidden email]
<[hidden email]> wrote:

> Hey Pavel,
>
> Thanks for your patience - I'm a bit short on time these days so I can only give feedback in chunks, but I'll try to make it as comprehensive as I can.
>
> The ideal UI for something like this is to be able to do:
>
> a8 [ <\change Staff = "foo" a \change Staff = "bar" a \change Staff = "other" a > a8 ]
>
> There are five main issues that will present themselves:
>
> 1) Implementing the iterator that will handle the change events.
> 2) Finding out how to get information to the correct staff contexts.
> 3) Either expanding NoteColumn to be able to cross staves or create NoteColumnColumn that works like SpanBar in collecting NoteColumns that belong to the same chord.  The former is undoubtedly more difficult but likely a better approach.
> 4) Expand the algorithms in note-collision.cc to work across staves.

I don't know if this can be a source of problems, but together with
Łukasz we were looking at note-collision.cc trying to solve issue 1546
and we noticed many hard-coded values that should be removed.
Unfortunately Łukasz is busy now and i don't have any idea when we'll
finish our work on 1546...
But if you run into problems reading note-collision, we may be able to
help you a bit.

cheers,
Janek

--
----
Join the Frogs!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New frog in an empty pond?

Pavel Roskin
In reply to this post by Pavel Roskin
Quoting "[hidden email]" <[hidden email]>:

> Hey Pavel,
>
> Thanks for your patience - I'm a bit short on time these days so I  
> can only give feedback in chunks, but I'll try to make it as  
> comprehensive as I can.
>
> The ideal UI for something like this is to be able to do:
>
> a8 [ <\change Staff = "foo" a \change Staff = "bar" a \change Staff  
> = "other" a > a8 ]

Yes, that the best solution, as it would make Lilypond know that the  
notes belong to one chord.

> There are five main issues that will present themselves:
>
> 1) Implementing the iterator that will handle the change events.
> 2) Finding out how to get information to the correct staff contexts.
> 3) Either expanding NoteColumn to be able to cross staves or create  
> NoteColumnColumn that works like SpanBar in collecting NoteColumns  
> that belong to the same chord.  The former is undoubtedly more  
> difficult but likely a better approach.
> 4) Expand the algorithms in note-collision.cc to work across staves.
> 5) Allow a beam to fall in the middle of a cross-staff chord.
>
> I'd work on them in this order.  1-4 seem necessary in order to  
> integrate this into LilyPond whereas 5 can be done in a subsequent  
> patch.
>
> Some hints for how to proceed:
>
> 1)  Copy logic from change-iterator.cc into event-chord-iterator.cc.
> 2)  Look at auto-beam-engraver,cc and span-bar-stub-engraver.cc to  
> see how information can be passed around different contexts.
> 3)  Look at span-bar.cc to see how grobs can group together objects  
> that fall on different staves and see how this can be applied to  
> note-column.cc.
>
> 4) and 5) will come after 1,2, and 3.  You'll already have your work  
>  cut out for you with 1, 2, & 3.  E-mail me with any questions for  
> what things mean in these files!

I think I'll try it soon.

However, I would prefer to spend some time on the current approach  
(extending the stems).  If I succeed, I'll be able to provide a  
stopgap solution for everybody that would work with Lilypond 2.16 and  
maybe even 2.14.  Even if I don't succeed, I'll expand my knowledge of  
Scheme and Lilypond internals.

As I understand, I need to make a grob that is typeset after stems.  
It could be a separate grob, such as an arpeggio.  Alternatively, I'll  
try to make one stem a parent of the other one.

Let me play with it a little bit.  Then I'll be more confident with  
the C++ code.

--
Regards,
Pavel Roskin

--
----
Join the Frogs!

Loading...