Re: wordwrap on argument of markup function

2024-06-01 Thread Jean Abou Samra
> (define-markup-command (freely layout props width-param text) (number?  
> markup?)
  
^^^

Make that `markup-list?`. Otherwise, your command is accepting only
a single markup. In your example, \line inside the command is working
perfectly (though not actually needed), but \freely gets applied multiple
times.

HTH
Jean



signature.asc
Description: This is a digitally signed message part


wordwrap on argument of markup function

2024-06-01 Thread Simon Albrecht

Hello kind community folk,

how do I make \wordwrap act correctly on the argument to this markup 
function?


And why does \line not make \box act on the markup as a whole, as it is 
said to do?


Best, Simon

\version "2.25.14"

#(define-markup-command (freely layout props width-param text) (number? 
markup?)

   "Format text for one bar of 'width-param' quarter notes’ length"
   (interpret-markup layout props
 #{\markup\box \line { \override #'(line-width . 
10) \wordwrap { #text }} #}))


\markup\freely #1 { test test test test test test }

document.pdf
Description: Adobe PDF document


Re: Alternating styles of TimeSignatures

2024-06-01 Thread Kieren MacMillan
Hi Federico,

> However, it seems that both solutions run along similar lines: redefining 
> contexts. In your solution you split the topmost layout objects  from the 
> staff context in two different contexts and create another -the bottom one-. 
> In my solution, I redefine the staff context to address separately the one 
> located at the top, the one(s) in the middle, and the bottom one. 

Yes, but in my solution:
1. You can simply switch any staff position without having to change its type.
2. You can include any type of context (e.g., RhythmicStaff, DrumStaff, etc.) 
without having to create associated Top*Staff and Bottom*Staff contexts.

> It is clear also that to achieve a simpler solution Lilypond would need the 
> ability (perhaps it already has the feature; I don't know) to identify if a 
> particular staff is at the top, the bottom or "in the middle" of a particular 
> group context (Staff group in this case, but also Score, Piano staff, 
> ChoirStaff, whatever) and be able to modify it's properties in an individual 
> way. 

Yes, that would certainly help!

Cheers,
Kieren.
__

My work day may look different than your work day. Please do not feel obligated 
to read or respond to this email outside of your normal working hours.




Re: Alternating styles of TimeSignatures

2024-06-01 Thread Federico Sarudiansky
Hi Kieren,

Thanks for your answer and time. It looks really nice!

However, it seems that both solutions run along similar lines: redefining
contexts. In your solution you split the topmost layout objects  from the
staff context in two different contexts and create another -the bottom
one-. In my solution, I redefine the staff context to address separately
the one located at the top, the one(s) in the middle, and the bottom one.

It is clear also that to achieve a simpler solution Lilypond would need the
ability (perhaps it already has the feature; I don't know) to identify if a
particular staff is at the top, the bottom or "in the middle" of a
particular group context (Staff group in this case, but also Score, Piano
staff, ChoirStaff, whatever) and be able to modify it's properties in an
individual way.

All the best!

F.

El sáb, 1 jun. 2024 08:33, Kieren MacMillan 
escribió:

> Hi Federico,
>
> I’ve adjusted my snippet a little, and I think it might handle all your
> spacing issues…? Let me know!
>
> Best,
> Kieren.
>
> %%%  SNIPPET BEGINS
> \version "2.25.15"
>
> \paper {
>   system-system-spacing.padding = 4
> }
>
> \layout {
>   \context {
> \type "Engraver_group"
> \name TS
> keepAliveInterfaces = #'( time-signature-interface )
> \consists "Time_signature_engraver"
> \override TimeSignature.font-size = #-1
> \override TimeSignature.extra-offset = #'(-1.75 . 1.25)
> \consists "Axis_group_engraver"
> \override VerticalAxisGroup.staff-affinity = #UP
> \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
>   #'((basic-distance . 3) (minimum-distance . 2) (padding . 1))
>   }
>   \context {
> \type "Engraver_group"
> \name ScoreMarks
> keepAliveInterfaces = #'( metronome-mark-interface
> time-signature-interface )
> rehearsalMarkFormatter = #format-mark-box-alphabet
> \consists "Axis_group_engraver"
> \override VerticalAxisGroup.staff-affinity = #DOWN
> \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
>   #'((basic-distance . 3) (minimum-distance . 2) (padding . 1))
> \consists "Metronome_mark_engraver"
> \override MetronomeMark.Y-offset = #0
> \override MetronomeMark.X-offset = #2
> \override MetronomeMark.outside-staff-priority = #50
> \override MetronomeMark.break-align-symbols =
>   #'(left-edge staff-bar clef time-signature key-signature)
> \override MetronomeMark.non-break-align-symbols =
>   #'(paper-column-interface)
> \override MetronomeMark.extra-spacing-width = #'(0.5 . 0.5)
> \consists "Mark_engraver"
> \override RehearsalMark.Y-offset = #0
> \override RehearsalMark.outside-staff-priority = #100
> \override RehearsalMark.break-align-symbols =
>   #'(left-edge staff-bar clef time-signature key-signature)
> \override RehearsalMark.self-alignment-X = #CENTER
> \override RehearsalMark.extra-spacing-width = #'(0.5 . 0.5)
> \consists "Text_spanner_engraver"
> \override TextSpanner.font-size = #2
> \consists "Time_signature_engraver"
> \override TimeSignature.font-size = #-1
> \override TimeSignature.X-extent = #empty-interval
> \override TimeSignature.X-offset = #-1.75
> \override TimeSignature.extra-offset = #'(0 . 1.5)
>   }
>   \context {
> \Score
> \remove "Bar_number_engraver"
> \remove "Metronome_mark_engraver"
> \remove "Mark_engraver"
> \accepts ScoreMarks
> \accepts TS
>   }
> }
>
> tsIn = {
>   \undo \omit Staff.TimeSignature
>   \omit ScoreMarks.TimeSignature
>   \omit TS.TimeSignature
> }
> tsOut = {
>   \omit Staff.TimeSignature
>   \undo \omit ScoreMarks.TimeSignature
>   \undo \omit TS.TimeSignature
> }
>
> global = {
>   \once \omit ScoreMarks.TimeSignature
>   \once \omit TS.TimeSignature
>   \time 4/4 s1
>   \tsOut \tempo "Allegro" \time 3/4 s2.
>   \tsIn \time 6/8 \tempo "Adagio" s2.
>   \tsOut \time 2/4 \tempo "Allegretto" s2
>   \tsIn \time 2/2 s1
>   \tsOut \time 6/4 s1.
>   \tsIn \time 4/4 s1
>   \time 3/4 s2.
> }
>
> someNotes = \repeat unfold 58 { c'8 }
>
> \score {
>   <<
> \new ScoreMarks \global
> \new StaffGroup <<
>   \new Staff = "one" \new Voice { << \global \someNotes >> }
>   \new Staff = "two" \new Voice { << \global \someNotes >> }
>   \new Staff = "thr" \new Voice { << \global \someNotes >> }
> >>
> \new TS \global
>   >>
> }
> %%%  SNIPPET ENDS
>
> __
>
> My work day may look different than your work day. Please do not feel
> obligated to read or respond to this email outside of your normal working
> hours.
>
>


Re: spontini-editor

2024-06-01 Thread Paolo Prete
I just added the feature on a new release. Please download:

https://github.com/paopre/Spontini/releases/tag/1.24_alfa

and read here:

https://github.com/paopre/Spontini/blob/master/documentation/miscellaneous.md#additional-compile-optionsflags

Please tell me if it's all OK!

Hope this helps
Cheers





On Sat, Jun 1, 2024 at 11:29 AM Stefan Thomas 
wrote:

> Yes, that's it.
>
> Paolo Prete  schrieb am Sa., 1. Juni 2024, 10:53:
>
>> Hi Stefan, do you mean the following flag?:
>>
>> -I, --include=directory
>>
>> This Is not currently supported. But given that it's a trivial addition,
>> I can add It to the editor, along with other options, right now.
>> Please let me know
>>
>>
>> Il sab 1 giu 2024, 10:23 Stefan Thomas  ha
>> scritto:
>>
>>> dear Paolo,
>>> rhanks, that helped me a lot. There is one more thing: how çan I set the
>>> default include path for lilypond?
>>>
>>> Paolo Prete  schrieb am Fr., 31. Mai 2024, 21:18:
>>>
 Check here (tell me if you have issues):


 https://github.com/paopre/Spontini/blob/master/documentation/miscellaneous.md#midi-input

 Hope it helps!


>>
>>


Re: fontconfig not using XDG directories

2024-06-01 Thread Jean Abou Samra
> I am running on Alpine Linux and I noticed that lilypond creates
> ~/.fontconfig/ with cache files every time I run it.
> 
> It seems like fontconfig is supposed to follow the XDG environment
> variables
> (https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/8c255fb),
> which I have defined on my system. Other programs on my system that
> depend on fontconfig all follow them and put cache files in
> $HOME/.cache/fontconfig.
> 
> Are there any configurations I can do to make lilypond respect the XDG
> environment variables, or to create the cache files somewhere else?



This was a bug, and has been fixed in version 2.25.5.

https://gitlab.com/lilypond/lilypond/-/issues/6591






signature.asc
Description: This is a digitally signed message part


fontconfig not using XDG directories

2024-06-01 Thread Coco Liliace

Hi!

I am running on Alpine Linux and I noticed that lilypond creates
~/.fontconfig/ with cache files every time I run it.

It seems like fontconfig is supposed to follow the XDG environment
variables
(https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/8c255fb),
which I have defined on my system. Other programs on my system that
depend on fontconfig all follow them and put cache files in
$HOME/.cache/fontconfig.

Are there any configurations I can do to make lilypond respect the XDG
environment variables, or to create the cache files somewhere else?

Regards,
Coco


signature.asc
Description: PGP signature


Re: Alternating styles of TimeSignatures

2024-06-01 Thread Kieren MacMillan
Hi Federico,

I’ve adjusted my snippet a little, and I think it might handle all your spacing 
issues…? Let me know!

Best,
Kieren.

%%%  SNIPPET BEGINS
\version "2.25.15"

\paper {
  system-system-spacing.padding = 4
}

\layout {
  \context {
\type "Engraver_group"
\name TS
keepAliveInterfaces = #'( time-signature-interface )
\consists "Time_signature_engraver"
\override TimeSignature.font-size = #-1
\override TimeSignature.extra-offset = #'(-1.75 . 1.25)
\consists "Axis_group_engraver"
\override VerticalAxisGroup.staff-affinity = #UP
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 3) (minimum-distance . 2) (padding . 1))
  }
  \context {
\type "Engraver_group"
\name ScoreMarks
keepAliveInterfaces = #'( metronome-mark-interface time-signature-interface 
)
rehearsalMarkFormatter = #format-mark-box-alphabet
\consists "Axis_group_engraver"
\override VerticalAxisGroup.staff-affinity = #DOWN
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 3) (minimum-distance . 2) (padding . 1))
\consists "Metronome_mark_engraver"
\override MetronomeMark.Y-offset = #0
\override MetronomeMark.X-offset = #2
\override MetronomeMark.outside-staff-priority = #50
\override MetronomeMark.break-align-symbols =
  #'(left-edge staff-bar clef time-signature key-signature)
\override MetronomeMark.non-break-align-symbols =
  #'(paper-column-interface)
\override MetronomeMark.extra-spacing-width = #'(0.5 . 0.5)
\consists "Mark_engraver"
\override RehearsalMark.Y-offset = #0
\override RehearsalMark.outside-staff-priority = #100
\override RehearsalMark.break-align-symbols =
  #'(left-edge staff-bar clef time-signature key-signature)
\override RehearsalMark.self-alignment-X = #CENTER
\override RehearsalMark.extra-spacing-width = #'(0.5 . 0.5)
\consists "Text_spanner_engraver"
\override TextSpanner.font-size = #2
\consists "Time_signature_engraver"
\override TimeSignature.font-size = #-1
\override TimeSignature.X-extent = #empty-interval
\override TimeSignature.X-offset = #-1.75
\override TimeSignature.extra-offset = #'(0 . 1.5)
  }
  \context {
\Score
\remove "Bar_number_engraver"
\remove "Metronome_mark_engraver"
\remove "Mark_engraver"
\accepts ScoreMarks
\accepts TS
  }
}

tsIn = {
  \undo \omit Staff.TimeSignature
  \omit ScoreMarks.TimeSignature
  \omit TS.TimeSignature
}
tsOut = {
  \omit Staff.TimeSignature
  \undo \omit ScoreMarks.TimeSignature
  \undo \omit TS.TimeSignature
}

global = {
  \once \omit ScoreMarks.TimeSignature
  \once \omit TS.TimeSignature
  \time 4/4 s1
  \tsOut \tempo "Allegro" \time 3/4 s2.
  \tsIn \time 6/8 \tempo "Adagio" s2.
  \tsOut \time 2/4 \tempo "Allegretto" s2
  \tsIn \time 2/2 s1
  \tsOut \time 6/4 s1.
  \tsIn \time 4/4 s1
  \time 3/4 s2.
}

someNotes = \repeat unfold 58 { c'8 }

\score {
  <<
\new ScoreMarks \global
\new StaffGroup <<
  \new Staff = "one" \new Voice { << \global \someNotes >> }
  \new Staff = "two" \new Voice { << \global \someNotes >> }
  \new Staff = "thr" \new Voice { << \global \someNotes >> }
>>
\new TS \global
  >>
}
%%%  SNIPPET ENDS

__

My work day may look different than your work day. Please do not feel obligated 
to read or respond to this email outside of your normal working hours.




Re: spontini-editor

2024-06-01 Thread Paolo Prete
Hi Stefan, do you mean the following flag?:

-I, --include=directory

This Is not currently supported. But given that it's a trivial addition, I
can add It to the editor, along with other options, right now.
Please let me know


Il sab 1 giu 2024, 10:23 Stefan Thomas  ha
scritto:

> dear Paolo,
> rhanks, that helped me a lot. There is one more thing: how çan I set the
> default include path for lilypond?
>
> Paolo Prete  schrieb am Fr., 31. Mai 2024, 21:18:
>
>> Check here (tell me if you have issues):
>>
>>
>> https://github.com/paopre/Spontini/blob/master/documentation/miscellaneous.md#midi-input
>>
>> Hope it helps!
>>
>>


Re: spontini-editor

2024-06-01 Thread Stefan Thomas
dear Paolo,
rhanks, that helped me a lot. There is one more thing: how çan I set the
default include path for lilypond?

Paolo Prete  schrieb am Fr., 31. Mai 2024, 21:18:

> Check here (tell me if you have issues):
>
>
> https://github.com/paopre/Spontini/blob/master/documentation/miscellaneous.md#midi-input
>
> Hope it helps!
>
>
>
> On Fri, May 31, 2024 at 8:38 PM Stefan Thomas 
> wrote:
>
>> Dear Paolo,
>> thank for Your help. I've installed chrome and I changed the workspace. I
>> can also see, that webmidi works with this browser.
>> But I don't know how I could activate midi input with Spontini. A hint
>> would be great.
>> Thanks,
>> Stefan
>>
>> Am Fr., 31. Mai 2024 um 00:43 Uhr schrieb Paolo Prete <
>> paolopr...@gmail.com>:
>>
>>>
>>>
>>> On Thu, May 30, 2024 at 7:14 PM Stefan Thomas <
>>> kontrapunktste...@gmail.com> wrote:
>>>
 Dear Paolo,
 I could install Spontini. When I open it in chromium browser I get the
 message "InvalidStateError: Platform dependent initialization failed."

>>>
>>> Hi Stefan, this is a Chromium bug (you don't have it in Chrome) on MIDI
>>> input. See for example, https://versioduo.com/webmidi-test/ (but it
>>> affects many other programs and websites)
>>> you can avoid the annoying popup by removing line 129 in
>>> lib/webgui/main.js:
>>>
>>> turnOnMidiInputAndListenOnChannel(-1)
>>>
>>> Just remove this line and reload the editor clearing the cache (hold
>>> down the Ctrl key and click the Reload button)
>>> But given that I don't think chromium people will fix it in the near
>>> future, IF you need MIDI input (which is IMHO useful) I suggest you to
>>> switch to Chrome
>>>
>>>
>>>
 What does that mean? I can also open files, but Spontini doesn't find
 the root directory of my scores, which is ~/partituren/


>>> Just set the workspace to ~/partituren/ in the SpontiniServer window.
>>> See:
>>> https://github.com/paopre/Spontini/blob/master/documentation/spontini-server.md
>>>
>>> Hope this helps!
>>>
>>>
>>>
>>