Re: [frogs] bend implementation

[ Thread Index | Date Index | More lilynet.net/frogs Archives ]


Carl Sorensen schrieb:

On 1/11/10 3:41 AM, "Marc Hohl" <marc@xxxxxxxxxx> wrote:

I am planning to implement bends.

The more I think about it, Carls proposal to handle bends with some kind of
"auto beam" mechanism is a brilliant idea.

Wow, I haven't had a "brilliant" idea for years!  Thanks for the compliment.
My approach was to use the left and right note and try to compute everything
correctly while somehow take care of everything happening before or after
the spanner, while you propose a more global structure which should be able to
take care of everything more elegantly.

Moreover, I finally have some kind of starting point: I can try to understand how engravers
work, especially the auto beam mechanism.
As I can see it now, there will be two new engravers necessary:
1) a pointed slur engraver which handles the normal staves
2) a bend arrow engraver for the tab staves

My initial thought was to have one engraver that would change its output
depending on the context in which it was placed.  That would avoid code
duplication.

But I could see doing it the other way as well.
When we can handle the whole story with one engraver, even better!
(for a more detailed description, please visit

http://lists.lilynet.net/tablatures/

and have a look at

tablature Feature Request Examples - Part 2)

As bends are somewhat "fundamental" actions which interact with e.g. the
TabNoteHead, I think that besides the possibility do create engravers in
scheme,
this should be done in c++, right?

I'm not sure, because I've not really understood the capabilities of the
Scheme engravers.

If I were doing it, I'd do it in c++, because I want to have some static
variables in the engraver, and I don't know if I can do that in scheme.
Ok, so I concentrate on this.
I am not a very fast and skilled programmer, so I appreciate any kind
of help in this task. I am looking at the engraver sources, and while I
think
I begin to understand, I am still struggling with the fundamental concepts.


Me too, but I think I just learned something over the weekend when comparing
the fretboards engraver with the tab-note-head engraver.

An engraver needs to listen to events, and then it needs to process music.
When process music is called, all of the events at that time step should
have already been received.

This doesn't sound like much, but it was a key piece I was missing.

If you can ask some more specific questions, maybe we can get answers.

Look at some simple engravers (fretboards, chord-name) as well as some more
complicated engravers.  This might help you get a feel.
Ok, I'll do.

Thank you

Marc


---
----
Join the Frogs!


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/