lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: \pushToTag and \appendToTag examples


From: Gianmaria Lari
Subject: Re: \pushToTag and \appendToTag examples
Date: Fri, 30 Apr 2021 09:53:01 +0200

> Nota bene: I didn't yet add any examples that take advantage of David new
> possibilities:

Ah, but that was sort of the point.

Sure, I'm sorry :( 
I'll help with that too when I will be able to access this new feature. 

> P.S. I would have liked to add a screenshot of the generated output
> immediately after each piece of code.
> This would make this much more interesting, easy to follow and discuss. But
> I remember that on this mailing list pictures have to be attached and not
> put inside the mail.

I use inline MIME attachments and there are few complaints, but some
mail clients do some sort of HTML contraption not working in text mode
and those will not make it through a lot of mail clients or mailing list
summarisers.

I guessed what the problem was and I hope it will change in the following years so that we will be able to write clearer posts.
For me, reading (and writing) an email with pictures attached is like reading a book with numbered photographs placed at the end of the book.
But I know that this is an old argument on which many of us are hypersensitive. My apologies.

> %%%%%%%%%%%%%%%%%%%%%%%
> \markup {"Simple \appendToTag with {}"}
> \version "2.23.2"
> music = {c'1 \tag #'here {} c''1}
> {\music}
> {\appendToTag #'here g'1 \music}
> {\pushToTag   #'here g'1 \music}

Tagging an empty {} and pushing a single element means that there is no
visible difference between \appendToTag and \pushToTag .

David, this was the point of the example!
You read this short code, you see the output, you think about these two things and because of the simplicity of the example you understand how it works *without* reading long explanations.


> {\appendToTag #'here {e'4 f' g' a'} \music}
> {\pushToTag   #'here {e'4 f' g' a'} \music}

Same here, and the example is more complex than necessary for bringing
the point across.

I'm sorry I am of exactly the opposite opinion!
In the previous example you see the simplest possible \pushToTag and \appendToTag example. It adds a single note.
And now you see an example just a bit more complex with a compound musical _expression_.

As before, because of the simplicity of the input and the output you should easily understand it and also easily compare with the previous example.

But we're probably too far in our opinions. I'm not interested in changing your mind of course. If those examples are not useful I'm sorry and that's ok.

> \markup {"Nested \appendToTag with {}"}
> \version "2.23.2"
> music = {c'1 \tag #'here {} c''1}
> {\music}
> {\appendToTag #'here d'4 \appendToTag #'here e'4 \appendToTag #'here f'4
> \appendToTag #'here g' \music}
> {\pushToTag   #'here d'4 \pushToTag   #'here e'4 \pushToTag   #'here f'4
> \pushToTag   #'here g' \music}

This at least shows a difference between \appendToTag and \pushToTag

Yes, but this in my opinion makes sense only *after* you saw and you understood the other examples. And you compare it with the previous example.

> \markup {"\appendToTag with {} and multiple different tag"}
> \version "2.23.2"
> music = {c'4 d' e' f' \tag #'firstLocation {}
>          g' a' b' c'' \tag #'secondLocation {} }
> {\music}
> {\appendToTag #'secondLocation {d''2 e''} \appendToTag #'firstLocation {g'4
> f' g' f'} \music}
>
> \markup {"\appendToTag with {} and multiple equal tag"}
> \version "2.23.2"
> music = {c'4 d' e' f' \tag #'firstLocation {}
>          g' a' b' c'' \tag #'firstLocation {}
>          b' a' g' f'  \tag #'firstLocation {} }
> {\music}
> {\appendToTag #'firstLocation {g'2 r} \music}

This just makes the example more complicated without demonstrating any
additional functionality or use.  Makes it hard to interpret either
manual entry or regtest.

This shows something different and that in my opinion you should know and it was not visible in the previous examples.

If you read it after the previous example you should very easily understand it and put it aside for when you will need it.

>
> % I don't see any good reason to use the following.
> % It mix different things making everything a bit more complex
> % to understand withouth any advantage (imho).
> % That's why I'm not sure it makes sense to show it.
> \markup {"\appendToTag with {some music}"}
> \version "2.23.2"
> music = {c'1 \tag #'here {d'2 e'} c''1}
> {\music}
> {\pushToTag #'here {f'4 g' a' b'} \music}
> {\appendToTag #'here {f'4 g' a' b'} \music}

This at least shows a difference between \pushToTag and \appendToTag .

The fact that it shows the difference between \pushToTag and \appendToTag is absolutely not my point. The difference between them is shown in the previous examples.

Playing with lilypond I personally needed a way to indicate a location inside a musical _expression_ where I could add some musical material. I have absolutely no idea if others have the same need or not. But if you have this specific need then I think the following is extra clear:

music = {c'1 \tag #'here {} c''1}  

the "{}" indicate the location.

When you start making something like this:

  music = {c'1 \tag #'here {d'2 e'} c''1}  

you're mixing things and making them more complex. And to *me* is not clear why I should use/explain this.

Actually the comment at the beginning of the example saying "I don't see any good reason etc." was to start a discussion about something that probably I didn't understand well and NOT to suggest to not use it.
 
> % {\appendToTag #'here <e' g' b'>1 \music} % Doesn't work. Adding a chord
> to a chord is not defined/allowed

Should it, though?  Should there be something else for achieving that
effect?  If so, what interface?

Ahem. This code for me doesn't make sense. And I have no idea how we could interpret it so that it could be meaningful.
But because I consider myself a beginner I mentioned it. Maybe I missed something or maybe someone more experts than me could add some nice ideas.

> % {\appendToTag #'here {e'1 g'1 b'1} \music} % Doesn't work. Adding a
> compound music _expression_ to a  chord not defined/allowed

I have no problem with _that_ not being allowed.

Same for me :) And same as my previous comment.
 

> \markup {"\appendToTag with <c' e'>"}
> \version "2.23.2"
> music = {c'1 \tag #'here <c' e'>1 c''1}
> {\music}
> {\appendToTag #'here g'1 \appendToTag #'here b'1 \music}
> % {\appendToTag #'here g'4 \music} % Doesn't work. Adding a 4 duration note
> to a 1 duration chord is not defined/allowed

In my book, there is no big point served in trying to prohibit it, and[...]
 
I have no clear idea about it and I didn't consider it very important. I mentioned it because during my "playing" activity with lilypond I tried it.

By the way, I didn't mentioned it but I made some "test" also with 

{c'1 \tag #'here <<>> c''1}

Maybe I will write about them in the future :)

Do you see why I hate writing documentation and regtests?

In my humble opinion I see why you should not write documentation. But I'm extremely fallible and this is my (actual) opinion.
I also think you have some nice communication problems (that I know and I like). I have (many) communication problems too.
I guess, but it's only a guess, you write very good regtests even if you don't like to write them.

Ciao,
Gianmaria

P.S. This is the only example of \pushToTag and \endToTag I found in the documentation.
test = { \tag #'here { \tag #'here <<c''>> } }
{
  \pushToTag #'here c'
  \pushToTag #'here e'
  \pushToTag #'here g' \test
  \appendToTag #'here c'
  \appendToTag #'here e'
  \appendToTag #'here g' \test
}
In my opinion this is a fantastic zen exercise. You read it, you appreciate the esthetic aspects (output also!), and you can meditate on it.
But I think it is also very well done to make people (people like me, of course) don't understand how \pushToTag and \appendToTag work. 
It is possible that I have already moaned about this, sorry.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]