Re: Standalone lyrics part

2023-08-29 Thread David Wright
On Tue 29 Aug 2023 at 18:00:47 (-0400), Pierre-Luc Gauthier wrote:
> Le mar. 29 août 2023, à 17 h 33, Carl Sorensen a écrit :
> > On Tue, Aug 29, 2023 at 3:12 PM Pierre-Luc Gauthier wrote:
> >>
> >> I need some standalone rhythmically correct lyrics that I place around
> >> scores. Devnull seems perfect since it does not create a Staff. Yet,
> >> ties and slurs are not taken into account when placing otherwise
> >> correct lyrics. Why?

Internals Reference says:

 "2.1.6 Devnull
  Silently discards all musical information given to this context."

so I'm guessing all that's left is the note columns.

> >> Take the following MnWE.
> >>
> >> music = { c'4(~ 2) d'4 }
> >>
> >> words = \lyricmode { a b c }
> >>
> >> <<
> >>   \new Staff \new Voice = "1" \music
> >>   \new Lyrics \lyricsto "1" \words
> >>   \new Devnull = "2" \music
> >>   \new Lyrics \lyricsto "2" \words
> >> >>
> >>
> > Use NullVoice instead of Devnull.
> 
> But, doesn't NullVoice create a Staff ?
> I am trying to set the lyrics to float in between some random parts.
> 
> music = { c'4(~ 2) d'4 }
> 
> words = \lyricmode { a b c }
> 
> <<
>   \new Staff <<
> \new Voice = "1" \music
> \new Lyrics \lyricsto "1" \words
>   >>
>   << % said null part
> \new NullVoice = "2" \music
> \new Lyrics \lyricsto "2" \words
>   >>
> >>

I assume that "standalone" and "float" mean that the position on the
x-axis is constrained by the staff above, but not on the y-axis.
So you could try:

music = { c'4(~ 2) d'4 }
words = \lyricmode { a b c }

<<
  \new Staff <<
\new Voice = "1" \music
\new Lyrics \lyricsto "1" \words
  >>
  \new Lyrics \lyricsto "1" { \once \override LyricText.font-size = #-19 ‧ }
  \new Lyrics \lyricsto "1" { \once \override LyricText.font-size = #-19 ‧ }
  \new Lyrics \lyricsto "1" { this floats }
  \new Lyrics \lyricsto "1" { \once \override LyricText.font-size = #-19 ‧ }
  \new Lyrics \lyricsto "1" { \once \override LyricText.font-size = #-19 ‧ }
>>

\new Staff <<
  \new Voice { c'2 d' e' f' }
  \addlyrics { next score comes here }
>>

I've cheated with the y-axis spacing; there are better ways I'm sure.
But I'm not really sure what you're after exactly.

Cheers,
David.



Re: Automatic annotation of slide positions/fingerings for brass instruments.

2023-08-29 Thread Wol

On 28/08/2023 13:42, samarutuk wrote:
The final hurdle with your code now is that it doesn't really take pitch 
into account. C3 (c) has a different default slide position on the 
trombone than C4 (c'). So no matter if you notate notes absolute or 
relative in Lilypond, you would always have to use the absolute pitch 
(also for transposing instruments) as basis, so that the assigned slide 
positions or fingerings are correct.


Yup. Just remember that defaults aren't always right ... 1+3 doesn't 
always equal 4 ...


I was looking at doing something like this, but I don't seem to "get" 
scheme programming to be able to do it. And as a trombonist, I often 
don't use default positions - given that a lot of brass music is fast 
chromatics, scales or arpeggios, the most appropriate position often 
depends on the neighbouring notes.


And I remember my trumpet/cornet friends - usually when squeaking up 
high - actively avoiding default positions because they're dreadfully 
out-of-tune ...


Doing this well is a lot harder than it looks.

Cheers,
Wol



Re: Standalone lyrics part

2023-08-29 Thread Pierre-Luc Gauthier
But, doesn't NullVoice create a Staff ?
I am trying to set the lyrics to float in between some random parts.

music = { c'4(~ 2) d'4 }

words = \lyricmode { a b c }

<<
  \new Staff <<
\new Voice = "1" \music
\new Lyrics \lyricsto "1" \words
  >>
  << % said null part
\new NullVoice = "2" \music
\new Lyrics \lyricsto "2" \words
  >>
>>

Le mar. 29 août 2023, à 17 h 33, Carl Sorensen
 a écrit :
>
>
>
> On Tue, Aug 29, 2023 at 3:12 PM Pierre-Luc Gauthier 
>  wrote:
>>
>> Hi there,
>>
>> I need some standalone rhythmically correct lyrics that I place around
>> scores. Devnull seems perfect since it does not create a Staff. Yet,
>> ties and slurs are not taken into account when placing otherwise
>> correct lyrics. Why? Take the following MnWE.
>>
>> music = { c'4(~ 2) d'4 }
>>
>> words = \lyricmode { a b c }
>>
>> <<
>>   \new Staff \new Voice = "1" \music
>>   \new Lyrics \lyricsto "1" \words
>>   \new Devnull = "2" \music
>>   \new Lyrics \lyricsto "2" \words
>> >>
>>
> Use NullVoice instead of Devnull.
>
> HTH,
>
> Carl
>



-- 
Pierre-Luc Gauthier



Re: Standalone lyrics part

2023-08-29 Thread Carl Sorensen
On Tue, Aug 29, 2023 at 3:12 PM Pierre-Luc Gauthier <
p.luc.gauth...@gmail.com> wrote:

> Hi there,
>
> I need some standalone rhythmically correct lyrics that I place around
> scores. Devnull seems perfect since it does not create a Staff. Yet,
> ties and slurs are not taken into account when placing otherwise
> correct lyrics. Why? Take the following MnWE.
>
> music = { c'4(~ 2) d'4 }
>
> words = \lyricmode { a b c }
>
> <<
>   \new Staff \new Voice = "1" \music
>   \new Lyrics \lyricsto "1" \words
>   \new Devnull = "2" \music
>   \new Lyrics \lyricsto "2" \words
> >>
>
> Use NullVoice instead of Devnull.

HTH,

Carl


Standalone lyrics part

2023-08-29 Thread Pierre-Luc Gauthier
Hi there,

I need some standalone rhythmically correct lyrics that I place around
scores. Devnull seems perfect since it does not create a Staff. Yet,
ties and slurs are not taken into account when placing otherwise
correct lyrics. Why? Take the following MnWE.

music = { c'4(~ 2) d'4 }

words = \lyricmode { a b c }

<<
  \new Staff \new Voice = "1" \music
  \new Lyrics \lyricsto "1" \words
  \new Devnull = "2" \music
  \new Lyrics \lyricsto "2" \words
>>

Am-I using it correctly ?

Thanks for any pointers
-- 
Pierre-Luc Gauthier



Re: Automatic annotation of slide positions/fingerings for brass instruments.

2023-08-29 Thread Carl Sorensen
On Tue, Aug 29, 2023 at 2:27 AM samarutuk  wrote:


> Surely some people could benefit from a solution like that. As noted, it
> would be very handy for educational purposes in general. Of course, you can
> do it manually, but for more extensive scores it is very tedious, typos can
> creep in and there is a lot of extra text which makes the Lilypond code
> more confusing. The manual fingering function is also single digit as far
> as I know. For brass instruments with valves, you usually need one to three
> or four digits (see screenshot in attachment) and sometimes also other
> characters or brackets for alternate fingerings/slide positions.
>
> Kind regards
> Andreas
>

You may not be aware of this, but LilyPond is developed and maintained by
volunteers.

If you wish to have fingering information for brass instruments
automatically calculated by LilyPond, you have a few choices:

1. Post a feature request on bug-lilyp...@gnu.org.  This probably won't get
the feature implemented, but it will be documented as a desired feature.
And then perhaps it could be implemented as a GSoC project.

2. Offer to pay a developer to create the feature.  It would probably cost
more than you are willing to pay, however.

3. Learn how to do it yourself, and contribute a merge request that
implements the feature.  Nearly all features in LilyPond have been added
this way.  I created fret diagrams and the fret_diagram_engraver and
FretBoards context because I was interested in them.  Mike Solomon
developed the woodwind fingering diagrams because he was interested in
them, etc.  It's more work for you, but it's the only sure way to have the
features added.

Please don't think I'm mocking you or making fun of you.  I'm not.  I'm
just trying to help you understand the realities of getting features added
to LilyPond.

Thanks,

Carl


>


Re: Font problem on Mac

2023-08-29 Thread David F.


> On Aug 27, 2023, at 11:55 PM, Werner LEMBERG  wrote:
>
>
 I do not think that my Times New Roman font is corrupted.
>>
>> Actually, I think it is: Most likely the font's 'post' table is
>> broken (i.e., it has a wrong PostScript name for glyph 'N').
>> Normally, you won't see the problem at all because most applications
>> access a font's 'cmap' table (i.e., a Unicode input value gets
>> mapped to a glyph index), which seems to be OK for this font.
>
> And indeed, I've found this thread
>
>  https://discussions.apple.com/thread/254519584
>
> which explains nicely the exact cause of your problem.
>
>
>Werner

Thanks! That explains it.

David F.



Re: Automatic annotation of slide positions/fingerings for brass instruments.

2023-08-29 Thread Adam M. Griggs
Here's a little self-help reference I made a little while back. Maybe it
will illustrate your point about different positions for different octaves
more clearly than words can.

Perhaps something in the tablature code can be adapted to this end.

On Mon, 28 Aug 2023, 21:44 samarutuk,  wrote:

> Sorry, I didn't really specify what exactly I was asking.
> But your answer was right, thanks!
> The final hurdle with your code now is that it doesn't really take pitch
> into account. C3 (c) has a different default slide position on the trombone
> than C4 (c'). So no matter if you notate notes absolute or relative in
> Lilypond, you would always have to use the absolute pitch (also for
> transposing instruments) as basis, so that the assigned slide positions or
> fingerings are correct.
> Here is my slightly modified code to better illustrate what I mean
> regarding pitch and different slide positions. Can Lilypond always use the
> exact pitch to assign slide positions/fingerings to a note?
>
> \version "2.24.2"
>
> #(use-modules (srfi srfi-2))
>
> autoFingerings =
> #(define-music-function (spec music) (ly:music? ly:music?)
>(define (get-fingering ev)
>  (find (music-type-predicate 'fingering-event)
>(ly:music-property ev 'articulations)))
>(define (pitch-key p)
>  (cons (ly:pitch-notename p)
>(ly:pitch-alteration p)))
>(let ((spec-alist
>   (filter-map
>(lambda (ev)
>  (and-let* ((pitch (ly:music-property ev 'pitch #f))
> (fingering (get-fingering ev)))
>(cons (pitch-key pitch)
>  fingering)))
>(extract-typed-music spec 'note-event
>  (for-each
>   (lambda (ev)
> (and-let* ((pitch (ly:music-property ev 'pitch #f))
>((not (get-fingering ev)))
>(fingering (assoc-ref spec-alist (pitch-key pitch
>   (set! (ly:music-property ev 'articulations)
> (cons (music-clone fingering)
>   (ly:music-property ev 'articulations)
>   (extract-typed-music music 'note-event))
>  music))
>
> spec = { bes-1 f-1 fis-5 c,-"q6" e-2 c-6 d-4 c'-3 eis'-\finger \markup
> \normal-text "foo" }
>
> \autoFingerings \spec {\clef "bass" bes,, c, e fis d c c' eis'' }
>
> Thanks in advance
> Andreas
>
> Am 28.08.2023 um 11:59 schrieb Jean Abou Samra:
>
> Hi,
>
> I'm not sure I understand your problem. If I infer your goal from the
> ChatGPT output, you're trying to add a fingering to each note based on its
> pitch. Is that right?
>
> \version "2.24.2"
>
> #(use-modules (srfi srfi-2))
>
> autoFingerings =
> #(define-music-function (spec music) (ly:music? ly:music?)
>(define (get-fingering ev)
>  (find (music-type-predicate 'fingering-event)
>(ly:music-property ev 'articulations)))
>(define (pitch-key p)
>  (cons (ly:pitch-notename p)
>(ly:pitch-alteration p)))
>(let ((spec-alist
>   (filter-map
>(lambda (ev)
>  (and-let* ((pitch (ly:music-property ev 'pitch #f))
> (fingering (get-fingering ev)))
>(cons (pitch-key pitch)
>  fingering)))
>(extract-typed-music spec 'note-event
>  (for-each
>   (lambda (ev)
> (and-let* ((pitch (ly:music-property ev 'pitch #f))
>((not (get-fingering ev)))
>(fingering (assoc-ref spec-alist (pitch-key pitch
>   (set! (ly:music-property ev 'articulations)
> (cons (music-clone fingering)
>   (ly:music-property ev 'articulations)
>   (extract-typed-music music 'note-event))
>  music))
>
>
>
> spec = { c'-1 d'-2 eis'-\finger \markup \normal-text "foo" }
>
> \autoFingerings \spec { d c eis'' }
>
> I can't program and have now tried to put together a suitable function
> with ChatGPT. Unfortunately this does not work. Here is the code ChatGPT
> came up with, maybe it is complete nonsense:
>
> As with typical ChatGPT output, it looks interesting on the surface but
> none of the details makes any sense.
>
> Best,
>
> Jean
>
>
>


trombone_positions.pdf
Description: Adobe PDF document


Re: Automatic annotation of slide positions/fingerings for brass instruments.

2023-08-29 Thread David Kastrup
samarutuk via LilyPond user discussion  writes:

> Hi,
> I am not sure if I understand "iterated music" correctly? Is it about
> the internal order of processing to get to the PDF score?

"Iteration" is the main processing pass of music in musical time order.

There are several processing stages for music: out of my head:

Entry, scorification, iteration (several different internal phases for
that as well), page breaking and output.

Iteration is done separately for typesetting and MIDI and of course page
breaking is just done for typesetting.

-- 
David Kastrup