Re: jeté

2023-01-27 Thread Martín Rincón Botero
Great! Thank you!

Am Do., 26. Jan. 2023 um 12:55 Uhr schrieb Jean Abou Samra :
>
> On 26/01/2023 10:24, Martín Rincón Botero wrote:
> > Dear Jean,
> >
> > thank you very much for this! I only changed the horizontal distances
> > of the dots to 0.1 as in \pattern #4 #X #0.1. If it's not too hard, is
> > there any way to make this behave like an articulation (say, like a
> > staccato) regarding direction? Right now it defaults to DOWN.
>
> Use side-relative-direction instead of direction (like the definition
> of staccato in script.scm does):
>
> \version "2.24.0"
>
> jetéMarkup = \markup \undertie \pad-x #0.3 \pattern #4 #X #0.1 \musicglyph 
> "dots.dot"
>
> \layout {
>   \context {
> \Score
> scriptDefinitions =
>   #(acons 'jeté
>   `((padding . 0.5)
> (side-relative-direction . ,DOWN)
> (stencil
>  . ,(lambda (grob)
>   (grob-interpret-markup
>grob
>(if (eqv? DOWN (ly:grob-property grob 'direction))
>jetéMarkup
>#{ \markup \scale #'(1 . -1) \jetéMarkup #})
>   default-script-alist)
>   }
> }
>
> jeté = #(make-music 'ArticulationEvent 'articulation-type 'jeté)
>
> {
>   \textMark "default"
>   c'2\jeté c''\jeté
>   \textMark "forced"
>   c'^\jeté c''_\jeté
> }
>
>
>
> Jean
>
>


-- 
www.martinrinconbotero.com



Re: jeté

2023-01-26 Thread Martín Rincón Botero
Dear Jean,

thank you very much for this! I only changed the horizontal distances
of the dots to 0.1 as in \pattern #4 #X #0.1. If it's not too hard, is
there any way to make this behave like an articulation (say, like a
staccato) regarding direction? Right now it defaults to DOWN.

—Martín.

Am Mi., 25. Jan. 2023 um 23:21 Uhr schrieb Jean Abou Samra :
>
> On 25/01/2023 22:57, Martín Rincón Botero wrote:
> > Dear list,
> >
> > is there any way to make this markup mockup of a jeté symbol into a
> > proper articulation (so that Lilypond knows how to give it an
> > appropriate direction, f. ex.)? I suspect a Scheme workaround might be
> > possible :-).
> >
> > \markup \undertie 
> > \markup \overtie 
> >
> > Or is it something that needs to be baked into the font? Btw., "jeté"
> > is part of the SMuFL standard. See
> > http://www.smufl.org/version/1.2/range/stringTechniques/. It would be
> > nice to add a symbol for this to Lilypond by default.
>
>
> Try
>
> \version "2.24.0"
>
> jetéMarkup = \markup \undertie \pad-x #0.3 \pattern #4 #X #0.2 \musicglyph 
> "dots.dot"
>
>
> \layout {
>   \context {
> \Score
> scriptDefinitions =
>   #(acons 'jeté
>   `((padding . 0.5)
> (direction . ,DOWN)
> (stencil
>  . ,(lambda (grob)
>   (grob-interpret-markup
>grob
>(if (eqv? DOWN (ly:grob-property grob 'direction))
>jetéMarkup
>#{ \markup \scale #'(1 . -1) \jetéMarkup #})
>   default-script-alist)
>   }
> }
>
> jeté = #(make-music 'ArticulationEvent 'articulation-type 'jeté)
>
> {
>   c'\jeté c'^\jeté c'_\jeté
> }
>
>
> It would be nice if you could spell that as
>
> scriptDefinitions.jeté = ...
>
>
> but infrastructure for nested context properties is not implemented yet,
> unlike grob properties where you can do
> \override Grob.property.subproperty = foo.
>
> Best,
> Jean
>


-- 
www.martinrinconbotero.com



jeté

2023-01-25 Thread Martín Rincón Botero
Dear list,

is there any way to make this markup mockup of a jeté symbol into a
proper articulation (so that Lilypond knows how to give it an
appropriate direction, f. ex.)? I suspect a Scheme workaround might be
possible :-).

\markup \undertie 
\markup \overtie 

Or is it something that needs to be baked into the font? Btw., "jeté"
is part of the SMuFL standard. See
http://www.smufl.org/version/1.2/range/stringTechniques/. It would be
nice to add a symbol for this to Lilypond by default.

—Martín.

-- 
www.martinrinconbotero.com



Re: sustain to-barline? LP 2.24.0

2023-01-12 Thread Martín Rincón Botero
  
  

 Hi Kenneth,
  

  
you can add another Dynamics context below the lower staff and use it only for 
pedalling.
  

  
Martín.
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Jan 12, 2023 at 7:07 AM,   (mailto:kennethwolc...@gmail.com)>  wrote:
>   
>   
>   
>  Hi; However, placing the sustain pedal actions in the Dynamic Context means 
> that the pedal actions show up below the treble clef rather than below the 
> bass clef. This, of course, interferes with hairpins and dynamics. I'd like 
> an RFE to have a sustainContext that pairs with the lower staff :-) Thanks, 
> Ken On Wed, Jan 11, 2023 at 9:32 PM Kenneth Wolcott  
>   wrote:  >   >  Hi;  >   >  Now that's weird :-)  
> >   >  Now the sustain pedal bracket style is working as desired.  >   >  
> Thanks,  >  Ken  >   >  On Wed, Jan 11, 2023 at 9:04 PM Kenneth Wolcott  >   
>   wrote:  >   >   >   >  Hi;  >   >   >   >  
> Placing the sustain pedal actions in the Dynamics Context results in  >   >  
> the sustain pedal bracket style being ignored, reverting to the  >   >  
> default style.  >   >   >   >  Thanks,  >   >  Ken  >   >   >   >  On Wed, 
> Jan 11, 2023 at 8:50 PM Kenneth Wolcott  >   > 
> wrote:  >   >   >   >   >   >  Hi;  >   >   >   >   >   >  I decided to place 
> my sustain pedal commands in the Dynamics  >   >   >  Context; I hope that 
> solves the problem.  >   >   >   >   >   >  Thanks,  >   >   >  Ken  >   >   
> >   >   >   >  On Wed, Jan 11, 2023 at 7:29 PM Kenneth Wolcott  >   >   >   
>   wrote:  >   >   >   >   >   >   >   >  Hi;  >   > 
>   >   >   >   >   >   >  sustain to-barline? LP 2.24.0  >   >   >   >   >   > 
>   >   >  I'd like to have the sustain pedal terminate at the bar line, not at 
>  >   >   >   >  the last note in the staff.  >   >   >   >   >   >   >   >  
> Is there a "to-barline" setting for the sustain pedal? I searched  >   >   >  
>  >  for "to-barline" and found nothing regarding the sustain pedal.  >   >   
> >   >   >   >   >   >  I looked at the mailing list archive and found 
> something in 2015 mentioning:  >   >   >   >   >   >   >   >  \override 
> Staff.PianoPedalBracket.to-barline = ##t  >   >   >   >   >   >   >   >  I 
> tried this but it seems to be ignored.  >   >   >   >   >   >   >   >  
> Thanks,  >   >   >   >  Ken Wolcott  
>
>   
  
  
 

Re: left space in front of the score

2022-12-27 Thread Martín Rincón Botero
  
  

  
  
  
  

 Hi Bernhard,
  

  
specifically for that I recommend manually increasing the indentation (\indent 
for the full name, \short-indent for the short name). I once made a very rough 
but serviceable workaround to make this a little bit more automatic. You need 
to manually give it the longest instrument name and staff size. It works with 
several if not all staff sizes:
  

  
  
  \version "2.22.1" size = 20 #(set-global-staff-size size) 
instruName = "this is a really really long instrument name"   shortInstruName = 
"tiarrlin" \score {   \new Staff \with { instrumentName = \instruName   
 shortInstrumentName = \shortInstruName   }{ c'1\breakc   }  
\layout {indent = #(* (string-length instruName) (* size 0.25) pt) 
short-indent = #(* (string-length shortInstruName) (* size 0.225) pt)   }   }   

  

  
Martín.
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Dec 26, 2022 at 3:09 PM,   (mailto:bernhard.kle...@gmx.net)>  wrote:
>   
>   
>   
>  Hello, I am working on the space frescobaldi plus Lilypond put infront of 
> the score for long instrument names. There is only a small space after the 
> first score when names are repeated, too small to match the instrument names 
> which aligned to the right reach the physical border and go over it. How is 
> it possible to have more space to the left of the score? Kind regards and 
> Happy holidays to all!  
>
>   
  
  
  
  
  

  
 

Re: Beaming question

2022-11-27 Thread Martín Rincón Botero
  
  

 Hi Molly,
  

  
you can subdivide beams. F. ex.:
  

  
  
  \score {
  
\absolute {
  
   \set subdivideBeams = ##t
  
\set baseMoment = #(ly:make-moment 1/8)
  
\set beatStructure = 2,2,2,2
  
 \tuplet 3/2 { f ''16 c''f'' } c''f''   
  
}
  
  }
  
  
  
  See   
https://lilypond.org/doc/v2.23/Documentation/notation/beams?fbclid=IwAR1Qn9DKr2gszNhQanwlIFzN0U9tHDrSBqydvvWdmT7PLP6_Lq7ocB8jwjs#setting-automatic-beam-behavior
   
(https://lilypond.org/doc/v2.23/Documentation/notation/beams?fbclid=IwAR1Qn9DKr2gszNhQanwlIFzN0U9tHDrSBqydvvWdmT7PLP6_Lq7ocB8jwjs#setting-automatic-beam-behavior)
   for more examples.
  

  
   —Martín.
  
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Nov 27, 2022 at 5:45 PM,   (mailto:mollypresto...@gmail.com)>  wrote:
>   
>   
>   
>   
> I am working with a texture of triplet 16ths that occasionally are duple 
> 16ths. I am wondering if there is a way to turn the beam into a single beam 
> between the second f'' in the triplet to the c'' in the below example. I'm 
> not sure what that's called and couldn't find it in the notation manual. It 
> is written that way in the original score. (This is an orchestration project 
> for school.)
>   
>
>   
>
>  \version "2.22.2"
>   
>  \score {
> \absolute {
> 
>  \tuplet 3/2 { f ''16 c''f'' } c''f'')| %m67
> }
>  }
>   
>
>   
>
>   
> Any help is appreciated!
>   
>
>   
> Thanks!
>   
>
>   
> Molly
>   
>   
>   
  
  
 

Re: aligning text in text spanner

2022-11-17 Thread Martín Rincón Botero
 
 

 I volunteer for opening an issue ;-). I have barely any idea of how those 
commands work, much less of how to explain them to someone else.
 
 
 
 www.martinrinconbotero.com
 
 
 

 
 
>  
> On Nov 17, 2022 at 7:58 AM,  mailto:w...@gnu.org)>  wrote:
>  
>  
>  
>   >  By the way, shouldn't \with-dimension(-from) be documented here  >  
> https://lilypond.org/doc/v2.23/Documentation/notation/dimensions.html  >  ? I 
> don't think so. However, it makes probably sense to mention related markup 
> commands in the 'See also' section. Do you volunteer for a MR? :-) Werner 
>
>  
 
 
 

Re: aligning text in text spanner

2022-11-16 Thread Martín Rincón Botero
Thank you! I would've never been able to figure that out by myself! By the
way, shouldn't \with-dimension(-from) be documented here
https://lilypond.org/doc/v2.23/Documentation/notation/dimensions.html ?
This is a good snippet for the repository, I think (I actually wonder why
this is not the default behavior...).

Am Mi., 16. Nov. 2022 um 20:52 Uhr schrieb Jean Abou Samra <
j...@abou-samra.fr>:

>
>
> Le 16/11/2022 à 16:26, Martín Rincón Botero a écrit :
> > Hello, the following code produces text on both sides of the spanner
> > that looks vertically well aligned with the upper limit of its box
> > instead of the inferior one:
> >
> > {
> >   f'1
> >   ~
> >   - \tweak style #'line
> >   - \tweak bound-details.left.stencil-align-dir-y #CENTER
> >   - \tweak bound-details.right.arrow ##t
> >   - \tweak bound-details.right.stencil-align-dir-y #CENTER
> >   - \tweak bound-details.left.text \markup \normal-text "ord."
> >   - \tweak bound-details.right.text \markup \normal-text "s.p."
> >   \startTextSpan
> >   f'1
> >   :32
> >   \stopTextSpan
> > }
> >
> > produces
> >
> > imagen.png
> >
> > where the "s.p." vertically aligns well with the upper end of the "d"
> > in "ord.". How can I achieve the opposite? Namely, that the "s.p." (or
> > the "p") aligns with the bottom of "ord." so that it looks centered?
>
>
>
> You need to adjust stencil-align-dir-y as needed:
>
>
> \version "2.23.81"
>
> {
>f'1
>~
>- \tweak style #'line
>- \tweak bound-details.left.stencil-align-dir-y #-0.3
>- \tweak bound-details.right.arrow ##t
>- \tweak bound-details.right.stencil-align-dir-y #0.2
>- \tweak bound-details.left.text \markup \normal-text "ord."
>- \tweak bound-details.right.text \markup \normal-text "s.p."
>\startTextSpan
>f'1
>:32
>\stopTextSpan
> }
>
>
> If you want to get rid of manual tweaking, consider giving
> the two texts the same vertical extents:
>
> \version "2.23.81"
>
> {
>f'1
>~
>- \tweak style #'line
>- \tweak bound-details.left.stencil-align-dir-y #CENTER
>- \tweak bound-details.right.arrow ##t
>- \tweak bound-details.right.stencil-align-dir-y #CENTER
>- \tweak bound-details.left.text \markup \normal-text
> \with-dimension-from #Y \overlay { "ord." "s.p." } "ord."
>- \tweak bound-details.right.text \markup \normal-text
> \with-dimension-from #Y \overlay { "ord." "s.p." } "s.p."
>\startTextSpan
>f'1
>:32
>\stopTextSpan
> }
>
>
> Best,
> Jean
>
>

-- 
www.martinrinconbotero.com


aligning text in text spanner

2022-11-16 Thread Martín Rincón Botero
Hello, the following code produces text on both sides of the spanner that
looks vertically well aligned with the upper limit of its box instead of
the inferior one:

{
  f'1
  ~
  - \tweak style #'line
  - \tweak bound-details.left.stencil-align-dir-y #CENTER
  - \tweak bound-details.right.arrow ##t
  - \tweak bound-details.right.stencil-align-dir-y #CENTER
  - \tweak bound-details.left.text \markup \normal-text "ord."
  - \tweak bound-details.right.text \markup \normal-text "s.p."
  \startTextSpan
  f'1
  :32
  \stopTextSpan
}

produces

[image: imagen.png]

where the "s.p." vertically aligns well with the upper end of the "d" in
"ord.". How can I achieve the opposite? Namely, that the "s.p." (or the
"p") aligns with the bottom of "ord." so that it looks centered?

—Martín.


-- 
www.martinrinconbotero.com


Re: \chordMode question

2022-10-20 Thread Martín Rincón Botero
  
  

 Hi Jacques,
  

  
it seems that you just forgot to write "1" in the first chord.
  

  
  
  Part_POne_HARMONIES_Staff_Voice_Eleven_HARMONIES = \chordmode {
  
 \language "nederlands"
  
 \key c \major
  
 \numericTimeSignature \time 4/4
  
  
  
 \clef "treble"
  
 c1:m f:m7 g:maj7 cis4:aug/gis %  <- HERE
  
  }
  
  
  
  Part_POne_Staff_One_Voice_One = \absolute {
  
 \language "nederlands"
  
 \key c \major
  
 \numericTimeSignature \time 4/4
  
  
  
 \clef "treble"
  
 f'4 e'8 [ c' ] d'4 g' | % 2
  
 \barNumberCheck #2
  
  }
  
  
  
  \book {
  
 \score {
  
  <<
  
  
  
 \new PianoStaff
  
  <<
  
 \context ChordNames = 
"Part_POne_HARMONIES_Staff_Voice_Eleven_HARMONIES"
  
 \Part_POne_HARMONIES_Staff_Voice_Eleven_HARMONIES
  
  
  
 \new Staff = "Part_POne_Staff_One"
  
  <<
  
 \context Voice = "Part_POne_Staff_One_Voice_One"  <<
  
 \Part_POne_Staff_One_Voice_One
  
  >>
  
  >>
  
  
  
  >>
  
  
  
  >>
  
  
  
 \layout {
  
 }
  
 }
  
  
  
  }
  
  
  
  
  
  Not writing any duration, also for a normal note is by default a quarter 
note. F.ex.
  
  
  
  {c'}
  
  
  
  gives
  
  
  
  

 Cheers,
  
 Martín.
  
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Oct 20, 2022 at 2:23 PM,  mailto:imj-...@bluewin.ch)>  
> wrote:
>   
>   
>   Hello folks,  
>
>   
> Strangely enough, the first three chords in   
> Part_POne_HARMONIES_Staff_Voice_Eleven_HARMONIES below are quater notes, and 
> not whole notes as I expected.
>   
>
>   
> Any hint why is welcome!
>   
>
>   
> JM
>   
>
>   
> %%%
>   
>
>   
>   
> \version "2.23.13"
>   
>
>   
> Part_POne_HARMONIES_Staff_Voice_Eleven_HARMONIES = \chordmode {
>   
>\language "nederlands"
>   
>\key c \major
>   
>\numericTimeSignature \time 4/4
>   
>
>   
>\clef "treble"
>   
>c:m f:m7 g:maj7 cis4:aug/gis %  <- HERE
>   
> }
>   
>
>   
> Part_POne_Staff_One_Voice_One = \absolute {
>   
>\language "nederlands"
>   
>\key c \major
>   
>\numericTimeSignature \time 4/4
>   
>
>   
>\clef "treble"
>   
>f'4 e'8 [ c' ] d'4 g' | % 2
>   
>\barNumberCheck #2
>   
> }
>   
>
>   
> \book {
>   
>\score {
>   
> <<
>   
>
>   
>\new PianoStaff
>   
> <<
>   
>\context ChordNames = 
> "Part_POne_HARMONIES_Staff_Voice_Eleven_HARMONIES"
>   
>\Part_POne_HARMONIES_Staff_Voice_Eleven_HARMONIES
>   
>
>   
>\new Staff = "Part_POne_Staff_One"
>   
> <<
>   
>\context Voice = "Part_POne_Staff_One_Voice_One"  <<
>   
>\Part_POne_Staff_One_Voice_One
>   
> >>
>   
> >>
>   
>
>   
> >>
>   
>
>   
> >>
>   
>
>   
>\layout {
>   
>}
>   
>}
>   
>
>   
> }
>   
>   
>
>   
>
>   
>   
> %%%
>   
>   
>
>   
>
>   
>
>   
>
>  

Re: Is the default value for Beam.details.stem-length-demerit-factor too small?

2022-09-30 Thread Martín Rincón Botero
  
  

 +1
  
  

  
  
>   
> On Sep 29, 2022 at 9:28 PM,  mailto:valen...@petzel.at)>  
> wrote:
>   
>   
> 
>
> Hello Pondmates!
>
>   
>   
>
>  Doricos old development blog features an issue about Beams:
>
>   
>
>   https://blog.dorico.com/2015/03/development-diary-part-10/
>
>   
>   
>
> Daniel Spreadbury does remark on the the shortness of certain beamed Stems in 
> Lilypond (Product C).
>
>   
>   
>
>  Increasing the Beam.details.stem-length-demerit-factor does prevent this and 
> produces an in my eyes slightly better looking Beam.
>
>   
>   
>
> Thus I hope to start a discussion on whether maybe Lilypond’s default value 
> is maybe a bit too lenient on short Stems.
>
>   
>   
>
>  Cheers,
>
>   
>
>  Valentin
>
>   
>   
  
  
   

Re: pitch-class sets in lilypond

2022-09-20 Thread Martín Rincón Botero
  
  

 Hi Stefan,
  

  
as abjad user I find this interesting, although abjad already provides some 
functionality in this regard. You can write me privately (in German if you 
wish), I'd be glad to give you feedback or simply checking out your module.
  

  
If you want to integrate this to Lilypond, like Jean says, Scheme and not 
Python (unfortunately for some of us who can barely read any Scheme) can be 
integrated into Lilypond.
  

  
Regards,
  
Martín.
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Sep 20, 2022 at 3:53 PM,   (mailto:kontrapunktste...@gmail.com)>  wrote:
>   
>   
>   
>   
> Dear community,
>   
> sorry, it's a bit an off topic: If You are not interested in pitch-class set 
> theory, You don't have to read the following.
>   
> I've worked on a python module dealing with pitch-class set theory as I've 
> read in "The structure of atonal music" by Allen Forte.
>   
> I know that there already exists some modules like that but I want to 
> integrate it in lilypond.
>   
> I'm still working on this module, but at themoment I can do:
>   
>   
> Getting the normal form and prime form of a pcs.
>   
> Transposing and inverting a pcs
>   
> Finding subsets of a pcs given in primeform.
>   
>   
> I'm working on:
>   
>   
> Finding different kinds of similarity of pcs.
>   
> Getting subcomplexes k and kh of a pcs.
>   
> Finding primeform and so on, when pitches in lilypond-style are given.
>   
> Getting pitches in lilypond-style when pitches in midinote-nums or as pcs are 
> given.
>   
>   
> Let me know it if You are interested. Maybee it's only something of interest 
> for nerdy persons like me, but maybee for others too.
>   
> Best,
>   
> Stefan
>

Re: Non-relative voice begin

2022-09-17 Thread Martín Rincón Botero
  
  

 Hi Alberto,
  

  
use a \relative block for each voice:
  

  
  <<  \new Voice \relative {}
  
 \new Voice \relative {}  >>
  

  
Cheers,
  
Martín.
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Sep 17, 2022 at 7:52 PM,  mailto:albertov...@gmail.com)>  
> wrote:
>   
>   
>   
>   
> Hello
>   
>
>   
> When using voices
>   
> <<  {} \new Voice {}  >>
>   
> the second starts relatively to the last note of the first one (because the 
> full score is inside a \relative {}
>   
>
>   
> Is there a way to specify exactly the first note pitch for the second voice?
>   
>   
> Thanks
>

Re: SillyPond

2022-09-10 Thread Martín Rincón Botero
  
  

 The ultimate regression test generator! ;-)
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Sep 10, 2022 at 10:16 AM,   (mailto:lilypon...@fiee.net)>  wrote:
>   
>   
>   
>  Hi, I don’t know if the author intended to announce it here (he just did on 
> Mastodon), but look at this: https://blinry.org/sillypond/ Hraban  
>
>   
  
  
 

Re: Conditional fermata padding

2022-09-08 Thread Martín Rincón Botero
Thank you very much, Lukas! Well, I didn't want to bother so much with more
conditions. They are namely: only sharp accidentals and only notes starting
from the fourth line and higher when the stem is down. For my use case I
would just add those extra conditions in abjad. The reason why we have now
a default fermata padding of 0.4 and not 0.5, for example, is that the
padding should ideally be intelligent enough to cater for these special
conditions. 0.4 is for now a universal compromise.

Am Do., 8. Sept. 2022 um 12:30 Uhr schrieb Lukas-Fabian Moser :

> Hi Martín,
> Am 08.09.22 um 10:52 schrieb Martín Rincón Botero:
>
> I would like to have less padding for a fermata when a note has an
> accidental. Say, if the fermata has a padding of x, I would like it be
> x-0.1 or so when the note in question has an accidental. I would be
> thankful for a snippet :-).
>
> Scripts (like a fermata) can be added to a chord (instead of a single note
> head); which note's accidentals should then be considered?
>
> Anyway, the following snippet changes the padding of a fermata if _any_ of
> the note heads in the fermata's note column has an accidental:
>
> \version "2.23.10"
>
> mus = \relative {
>   f''4 fis fis 
>
> }
>
> {
>   \override Script.before-line-breaking =
>   #(lambda (script-grob)
>  (let*
>   ((script-cause (ly:grob-property script-grob 'cause))
>(articulation-type (ly:event-property script-cause
> 'articulation-type))
>(default-padding (ly:grob-property script-grob 'padding))
>(note-column (ly:grob-parent script-grob X))
>(note-heads (ly:grob-array->list
> (ly:grob-object note-column 'note-heads)))
>(accidentals
> (map
>  (lambda (note-head) (ly:grob-object note-head 'accidental-grob))
>  note-heads)))
>   (if (and (eq? articulation-type 'fermata)
>(any ly:grob? accidentals))
>   (ly:grob-set-property! script-grob 'padding
>  (+ default-padding 2)
>
>   \time 2/4
>   << \mus \repeat unfold 6 s4\fermata >>
>   % tenuto (and staccato, ...) should not be changed
>   << \mus \repeat unfold 6 s4\tenuto >>
>
> }
>
> Note that this needs a fairly recent LilyPond version, since we changed
> the 'articulation-type from a string to a symbol at the end of 2021.
>
> Lukas
>


-- 
www.martinrinconbotero.com


Conditional fermata padding

2022-09-08 Thread Martín Rincón Botero
 
 

 Dear Scheme wizards,
 

 
I would like to have less padding for a fermata when a note has an accidental. 
Say, if the fermata has a padding of x, I would like it be x-0.1 or so when the 
note in question has an accidental. I would be thankful for a snippet :-).
 
 

 
   

Re: docs about Rest vertical position

2022-09-03 Thread Martín Rincón Botero
  
  

 Hi Eef,
  

  
>   
>  When composing; arranging it happens often that a note is skipped (read: 
> turned into a ‘rest’). Think about note patterns what repeat, with small 
> variations. Then the note/rest does the job perfectly. The pattern is kept. 
> The rest is exactly on the place the note would have been.
>   
>   
> Would you mind putting a short example of what you mean? Also in which 
> musical context? Jazz perhaps?
  
  
  
  
 —Martín.
  
  
  

  
  
>   
> On Sep 2, 2022 at 9:44 PM,  mailto:h.e.ween...@de-erve.nl)>  
> wrote:
>   
>   
>   My two cents:  
>
>   
> Tweaking the position is fine to avoid a collision or to keep a rest about 
> the same “viewing” line then the notes of a phrase   
>   
>
>   
> But, or better And:
>   
> When composing; arranging it happens often that a note is skipped (read: 
> turned into a ‘rest’). Think about note patterns what repeat, with small 
> variations. Then the note/rest does the job perfectly. The pattern is kept. 
> The rest is exactly on the place the note would have been.   
>   
> In fact a very well musical solution.   
>   
>   
>
>   
> Met vriendelijke groet, Eef
>   
>
>   
> H.E. Weenink MBA
>   
>   
>
>   
> > Op 2 sep. 2022 om 21:33 heeft Martín Rincón Botero  
> >   het volgende geschreven:
> >   
> 
> >   
> >   
> >   
> >
> >  Hi Kieren,
> >   
> >
> >   
> > how do you think that this feature is more useful than \tweaking the 
> > y-offset? If the documentation explains how to move a rest, the officially 
> > recommended way should be using \tweak in my opinion. It's unclear to me 
> > what's the use case of the option of adding a note to a \rest (which in 
> > itself sounds like a contradiction). If we follow the WSIWYM paradigm, you 
> > can't possibly mean to put a "note-rest" somewhere. Perhaps not pointing 
> > that out or removing the feature altogether is better in the long run?
> >   
> >
> >   
> > Martín.
> >   
> >   
> >
> >   
> >   
> > >   
> > > On Sep 2, 2022 at 4:27 PM,   > > (mailto:kie...@kierenmacmillan.info)>  wrote:
> > >   
> > >   
> > >   
> > >  Hi all, I was answering a user's question on the FB group, and noted 
> > > that in the docs, we suggest “To explicitly specify a rest’s vertical 
> > > position, write a note followed by \rest.” While this is a useful thing 
> > > to know about, I don't personally believe it's a best practice: it mixes 
> > > content with presentation, it doesn't play well with \transpose, etc. I'm 
> > > not necessarily suggesting that we avoid pointing out this feature. I'm 
> > > just wondering if anyone else agrees that we should point out the 
> > > downsides, and give alternative ways of accomplishing the same task? If 
> > > so, I can put together some draft verbiage for a discussion starting 
> > > point. Cheers, Kieren.  
> > >
> > >   
> >   
> >   
> >   
> >   
>   
>   
>   
  
  
   

Re: docs about Rest vertical position

2022-09-02 Thread Martín Rincón Botero
  
  

 Well, we're mostly agreeing ;-). I wouldn't support pointing out the downsides 
of note+rest as suggested by Kieren nor I'm sure that I agree it's useful to 
know about note+rest: if \tweak is the proper way to do it, let's document that 
instead.
  
  

  
  
>   
> On Sep 2, 2022 at 9:44 PM,  mailto:j...@abou-samra.fr)>  
> wrote:
>   
>   
>   
>  Le 02/09/2022 à 21:31, Martín Rincón Botero a écrit :  >  Hi Kieren,  >   >  
> how do you think that this feature is more useful than \tweaking the  >  
> y-offset? If the documentation explains how to move a rest, the  >  
> officially recommended way should be using \tweak in my opinion. It's  >  
> unclear to me what's the use case of the option of adding a note to a  >  
> \rest (which in itself sounds like a contradiction). If we follow the  >  
> WSIWYM paradigm, you can't possibly mean to put a "note-rest"  >  somewhere. 
> Perhaps not pointing that out or removing the feature  >  altogether is 
> better in the long run? Reread Kieren's original message; I think you are 
> exactly agreeing with him :-) The transposition problem can be worked around 
> using \version "2.23.12" untransposable = \withMusicProperty untransposable 
> ##t \etc \transpose c f \voices 1,2  <<  { \untransposable c''8\rest b e' d' 
> } \\ { g16^1 f^2 g a }  >>  but of course, for this sort of use case, \tweak 
> Y-offset is better in the first place. I can't think of use cases where \rest 
> is really what you want, as opposed to \tweak Y-offset. Unless someone comes 
> up with an argument for it, I'd support a patch showing \tweak Y-offset in 
> the documentation and moving \rest to a footnote or undocumenting it 
> altogether. Whether its outright removal is desirable is another question. 
> This is veering into lilypond-devel territory, maybe we should continue the 
> discussion there? Alternatively, I'll be happy to continue on a patch on 
> GitLab :-) Cheers, Jean  
>
>   
  
  
   

Re: docs about Rest vertical position

2022-09-02 Thread Martín Rincón Botero
  
  

 Hi Kieren,
  

  
how do you think that this feature is more useful than \tweaking the y-offset? 
If the documentation explains how to move a rest, the officially recommended 
way should be using \tweak in my opinion. It's unclear to me what's the use 
case of the option of adding a note to a \rest (which in itself sounds like a 
contradiction). If we follow the WSIWYM paradigm, you can't possibly mean to 
put a "note-rest" somewhere. Perhaps not pointing that out or removing the 
feature altogether is better in the long run?
  

  
Martín.
  
  

  
  
>   
> On Sep 2, 2022 at 4:27 PM,   (mailto:kie...@kierenmacmillan.info)>  wrote:
>   
>   
>   
>  Hi all, I was answering a user's question on the FB group, and noted that in 
> the docs, we suggest “To explicitly specify a rest’s vertical position, write 
> a note followed by \rest.” While this is a useful thing to know about, I 
> don't personally believe it's a best practice: it mixes content with 
> presentation, it doesn't play well with \transpose, etc. I'm not necessarily 
> suggesting that we avoid pointing out this feature. I'm just wondering if 
> anyone else agrees that we should point out the downsides, and give 
> alternative ways of accomplishing the same task? If so, I can put together 
> some draft verbiage for a discussion starting point. Cheers, Kieren.  
>
>   
  
  
   

Snippet doesn't work in unstable version

2022-07-20 Thread Martín Rincón Botero
Hello,

I grabbed this snippet a while ago from somewhere™ which puts a box around 
music (an "improvisation box"). It works perfectly in Lilypond 2.22.1, but not 
in Lilypond 2.23.3+. Does somebody know how to make it work in more recent 
versions? This is the snippet:

\version "2.19.15"
\header {
tagline = ##f
}

#(define-event-class 'music-boxer-event 'span-event)
#(define-event-class 'box-event 'music-event)
#(define (add-grob-definition grob-name grob-entry)
(let* ((meta-entry (assoc-get 'meta grob-entry))
(class (assoc-get 'class meta-entry))
(ifaces-entry (assoc-get 'interfaces meta-entry)))
;; change ly:grob-properties? to list? to work from 2.19.12 back to at least 
2.18.2
(set-object-property! grob-name 'translation-type? ly:grob-properties?)
(set-object-property! grob-name 'is-grob? #t)
(set! ifaces-entry (append (case class
((Item) '(item-interface))
((Spanner) '(spanner-interface))
((Paper_column) '((item-interface
paper-column-interface)))
((System) '((system-interface
spanner-interface)))
(else '(unknown-interface)))
ifaces-entry))
(set! ifaces-entry (uniq-list (sort ifaces-entry symbol1
\musicBoxerStart d8-4 g,-0 d' g, d'-4 g,-0 d' \musicBoxerEnd g,
}

%2
\repeat volta 2 {
\box 1\f\fermata
\musicBoxerStart g8-3 d-0 g d g8-4 d-0 g \musicBoxerEnd d\accent
}
}

\score {
\new Staff \melody
}

It should produce:

It produces instead: fatal error: meta.classes must be non-empty list, found #f
Something seems to have changed in the meanwhile. It would be nice to update 
this snippet to work in more recent versions.
Regards,
Martín.

--
www.martinrinconbotero.com 
(https://link.getmailspring.com/link/cag9pzzwc2adlw9vcaudzy2hf0rx7envupae6o4to06ykkwp...@mail.gmail.com/0?redirect=http%3A%2F%2Fwww.martinrinconbotero.com&recipient=bGlseXBvbmQtdXNlckBnbnUub3Jn)



Re: fingering of a grace note overlaps with beam

2022-05-22 Thread Martín Rincón Botero
  
  

  Hi Soo,
  

  
this seems to be caused by the fact that there's no outside-staff-priority set 
for Fingerings (see https://gitlab.com/lilypond/lilypond/-/issues/6346). 
Setting it apparently to whatever value fixes your problem for now.
  

  
  
  \relative c'' {
  
  
  
  \override Fingering.outside-staff-priority = 0
  
  
  
 g8[ \acciaccatura b-5 a g]
  
  }
  
  
  
  

  
  
 Cheers,
  
 Martín.
  
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On May 22, 2022 at 3:17 PM,  mailto:dupl...@gmail.com)>  wrote:
>   
>   
>   
>   
> Hi,
>   
>
>   
> In the example below, the fingering on the grace note B does not show well 
> because it overlaps with the beam. I do want to keep the stems up and the 
> fingering up because there will be another voice. What is the best way to 
> avoid this overlap? Thank you!
>   
>
>  \relative c'' {
>  g8[ \acciaccatura b-5 a g]
>  }  
>
>   
> Best,
>   
> Soo
>   
>   
>   
  
  
 

Re: ANN: Frescobaldi 3.2

2022-05-05 Thread Martín Rincón Botero
  
  

  "Why the name? It’s short, sounds like ‘parse’, and has the meaning of 
“friend”, “buddy”, “bro.” :-)"
  
  
  
 As a Colombian, I approve, parce ;-).
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On May 5, 2022 at 7:44 AM,  mailto:w...@xs4all.nl)>  
> wrote:
>   
>   
>   
>  Dear Friends, Lots of people contributed to this new release of Frescobaldi 
> 3.2, which actually has been in the works for quite a long time. Thanks!! 
> Recently it became urgent to fix various issues that arose in Frescobaldi 
> (and many programs that use Python-Qt bindings) with Python 3.10, where you 
> no longer can give a floating point value to a function that requires an 
> integer. Python releases are so quick :-) So hopefully this new release[1] 
> fixes those annoyances. But it brings also some nice new features; see for an 
> overview[2]: [1] https://github.com/frescobaldi/frescobaldi/releases/tag/v3.2 
> [2] https://github.com/frescobaldi/frescobaldi/blob/v3.2/ChangeLog Note that 
> there is a dependency change: the qpageview module, thus far in 
> frescobaldi_app/qpageview, is now, because of its generic nature, a separate 
> project at http://qpageview.org/ . This package needs to be installed for 
> Frescobaldi to work; it is used by the Music View and other viewers inside 
> Frescobaldi. Because of  this, be sure to remove Frescobaldi completely and 
> then install qpageview and Frescobaldi, otherwise it still finds the old 
> qpageview inside the frescobaldi_app folder. In the meantime I worked on two 
> new Python packages: parce[3] and quickly[4], which together will supersede 
> python-ly. In the future they will help Frescobaldi with an even more 
> thorough musical understanding of the LilyPond source text, making (probably) 
> more interesting music manipulations possible. [3] https://parce.info/ [4] 
> https://quick-ly.info/ Enjoy! -- Wilbert Berendsen (www.wilbertberendsen.nl)  
>
>   
  
  
 

Re: Consecutive trills

2022-04-29 Thread Martín Rincón Botero
Or with \tweak. Thank you Jean! Wow, one of those historical bugs. Ay!

On abr. 29 2022, at 4:31 pm, Jean Abou Samra  wrote:
>
>
> Le 29/04/2022 à 12:07, Martín Rincón Botero a écrit :
> > Dear list,
> >
> > consider:
> >
> > \version "2.22.1"
> >
> > {
> > d'2
> > \startTrillSpan
> > b2
> > \startTrillSpan
> > b1\stopTrillSpan
> > }
> >
> > Which produces:
> >
> > [image]
> > How can I bring both trills to be vertically aligned? (Compare the
> > example in the documentation which automatically engraves a similar
> > situation correctly:
> > https://lilypond.org/doc/v2.22/Documentation/notation/expressive-marks-as-lines#trills).
>
>
>
> This is a variant of this old issue:
> https://gitlab.com/lilypond/lilypond/-/issues/923
> Basically, the problem is that trill spanner must be printed with an
> integer number of squiggles. Depending on the exact length of the
> first trill, its last squiggle may, or may not, overlap with the
> next trill, forcing the next trill to avoid it vertically.
>
> You can circumvent the problem with
> \version "2.22.1"
> {
> d'2\tweak bound-details.right.padding 2 \startTrillSpan
> b2\startTrillSpan
> b1\stopTrillSpan
> }
>
>
> Best,
> Jean
>



Re: Consecutive trills

2022-04-29 Thread Martín Rincón Botero
Thanks Hans!

As far as I know that's not a notation rule, but I agree that it makes more 
sense to use the trill + wavy line for tied notes. Anyways, I found a solution 
with the property bound-details.right.padding of TrillSpanner.
\version "2.22.1"
{
\override Score.SpacingSpanner.spacing-increment = #3
\override TrillSpanner.bound-details.right.padding = #2
c'4 \startTrillSpan
c'4 \startTrillSpan
\revert TrillSpanner.bound-details.right.padding
c'4 \startTrillSpan
c'4 \stopTrillSpan
}

Cheers,
Martín.

On abr. 29 2022, at 3:20 pm, Hans Åberg  wrote:
>
> > On 29 Apr 2022, at 12:07, Martín Rincón Botero 
> >  wrote:
> >
> > consider:
> >
> > \version "2.22.1"
> >
> > {
> > d'2
> > \startTrillSpan
> > b2
> > \startTrillSpan
> > b1\stopTrillSpan
> > }
>
> You might use \trill in these cases, as the trill symbol "tr" by itself 
> applies to the whole note it is written above, and it only. —The trill span 
> is only needed for slurred notes.

Consecutive trills

2022-04-29 Thread Martín Rincón Botero
Dear list,

consider:
\version "2.22.1"
{
d'2
\startTrillSpan
b2
\startTrillSpan
b1\stopTrillSpan
}

Which produces:

How can I bring both trills to be vertically aligned? (Compare the example in 
the documentation which automatically engraves a similar situation correctly: 
https://lilypond.org/doc/v2.22/Documentation/notation/expressive-marks-as-lines#trills).
Regards,
Martín.



Re: tenuto + accent

2022-04-25 Thread Martín Rincón Botero
Jean, I'll send my request to the bug-list. Thank you for that workaround!

Regards,
Martín.

On abr. 25 2022, at 10:13 pm, Jean Abou Samra  wrote:
>
>
> Le 25/04/2022 à 11:30, Martín Rincón Botero a écrit :
> > Dear list,
> >
> > compare:
> >
> > {
> > c'4->-.
> > }
> >
> >
> > with:
> >
> > {
> > c'4->--
> > }
> >
> >
> >
> > This last compound articulation is wrong. In the first example the
> > staccato (even though it was typed after the accent) is correctly
> > printed first (immediately below the note-head) and then the accent.
> > With tenuto-accent, apparently Lilypond expects you to type both
> > articulations in the right order, which indeed prints a correct
> > articulation:
> >
> > {
> > c'4--->
> > }
> >
> >
> > /Enhancement request:/ tenuto-accents should be printed correctly
> > independently of the order of input, just like staccato-accents.
>
>
> Well, an enhancement request sounds like a topic that could be
> raised on the bug-lilypond mailing list.
>
> Meanwhile, you can play with script-priority:
> \version "2.22.2" % also works in 2.23.8
> #(use-modules (ice-9 match))
> #(define (nested-alist-set! alist path value)
> (match path
> (()
> value)
> ((head . rest)
> (assq-set! alist head (nested-alist-set! (assoc-get head alist '())
> rest
> value)
>
>
> overrideForScriptType =
> #(let ((script-type? (if (ly:version? >= '(2 23 6))
> symbol?
> string?)))
> (define-music-function (type property value) (script-type? symbol?
> scheme?)
> (applyContext
> (lambda (context)
> (let* ((orig (ly:context-property context 'scriptDefinitions))
> (new (nested-alist-set! orig
> (list type property)
> value)))
> (ly:context-set-property! context 'scriptDefinitions new))
>
> \new Voice {
> \overrideForScriptType tenuto script-priority 0
> \overrideForScriptType accent script-priority 100
> c'4---> 4->--
> }
>
> Best,
> Jean
>



tenuto + accent

2022-04-25 Thread Martín Rincón Botero
Dear list,

compare:
{
c'4->-.
}

with:
{
c'4->--
}

This last compound articulation is wrong. In the first example the staccato 
(even though it was typed after the accent) is correctly printed first 
(immediately below the note-head) and then the accent. With tenuto-accent, 
apparently Lilypond expects you to type both articulations in the right order, 
which indeed prints a correct articulation:
{
c'4--->
}

Enhancement request: tenuto-accents should be printed correctly independently 
of the order of input, just like staccato-accents.
Regards,
Martín.



Re: Snippet

2022-04-22 Thread Martín Rincón Botero
Thank you!

On abr. 21 2022, at 9:10 pm, Jean Abou Samra  wrote:
> Le 21/04/2022 à 19:50, Martín Rincón Botero a écrit :
> > Would it be possible to update it to work on Lilypond 2.22.1?
>
>
> The code contains spurious Unicode "zero-width space" characters, one among
> the newlines between the end of append-merge and "mergeSkips =", and another
> between the end of \mergeFullBarRests and \score. Try removing these.
> Updated
> snippet:
>
> \version "2.22.2"
> #(define (append-merge x l r)
> "Add x to the head of list l, merging skips,
> and if r is true also merging full measure rests."
> (if (and (pair? l)
> (ly:music? x)
> (ly:music? (car l))
> (or (and (music-is-of-type? x 'skip-event)
> (music-is-of-type? (car l) 'skip-event))
> (and r
> (music-is-of-type? x 'multi-measure-rest)
> (music-is-of-type? (car l) 'multi-measure-rest)))
> (not (pair? (ly:music-property (car l) 'articulations
> (let ((total
> (ly:moment-add
> (ly:music-duration-length (car l))
> (ly:music-duration-length x)
> )))
> (set! (ly:music-property x 'duration)
> (make-duration-of-length total))
> (cons x (cdr l)))
> (cons x l)))
>
> mergeSkips = #(define-music-function
> (parser location rests-also music) ((boolean?) ly:music?)
> "Merge successive skips in sequential music,
> optionally merge full-measure rests as well."
> (music-map
> (lambda (m)
> (if (music-is-of-type? m 'sequential-music)
> (ly:music-set-property! m
> 'elements
> (fold-right (lambda (x l)
> (append-merge x l rests-also))
> '()
> (ly:music-property m 'elements
> m)
> music))
>
> mergeFullBarRests = #(define-music-function
> (parser location music) (ly:music?)
> #{ \mergeSkips ##t $music #})
>
> \score {
> \mergeFullBarRests {
> \context Staff = "staff1" {
> \compressEmptyMeasures
> c1 R1 R1 R1
> }
> }
> }
>
>
> Best,
> Jean
>



Snippet

2022-04-21 Thread Martín Rincón Botero
Hello,

I have this snippet that combines subsequent multimeasure rests into a 
multiplied one that Lilypond can compress, that I grabbed from somewhere a 
while ago. It used to work without errors, if I remember well, in Lilypond 
2.20. In 2.22.1 it still "works" but throws an error for the first line of the 
snippet, namely:
syntax error, unexpected SYMBOL, expecting '.' or '='

​#(define (append-merge x l r)
It seems that something changed in 2.22 that makes the snippet misbehave. 
Here's the snippet:
#(define (append-merge x l r)
"Add x to the head of list l, merging skips,
and if r is true also merging full measure rests."
(if (and (pair? l)
(ly:music? x)
(ly:music? (car l))
(or (and (music-is-of-type? x 'skip-event)
(music-is-of-type? (car l) 'skip-event))
(and r
(music-is-of-type? x 'multi-measure-rest)
(music-is-of-type? (car l) 'multi-measure-rest)))
(not (pair? (ly:music-property (car l) 'articulations
(let ((total
(ly:moment-add
(ly:music-duration-length (car l))
(ly:music-duration-length x)
)))
(set! (ly:music-property x 'duration)
(make-duration-of-length total))
(cons x (cdr l)))
(cons x l)))

​
mergeSkips = #(define-music-function
(parser location rests-also music) ((boolean?) ly:music?)
"Merge successive skips in sequential music,
optionally merge full-measure rests as well."
(music-map
(lambda (m)
(if (music-is-of-type? m 'sequential-music)
(ly:music-set-property! m
'elements
(fold-right (lambda (x l)
(append-merge x l rests-also))
'()
(ly:music-property m 'elements
m)
music))

mergeFullBarRests = #(define-music-function
(parser location music) (ly:music?)
#{ \mergeSkips ##t $music #})
​
\score {
\mergeFullBarRests {
\context Staff = "staff1" {
\compressEmptyMeasures
c1 R1 R1 R1
}
}
}

Would it be possible to update it to work on Lilypond 2.22.1?
Regards,
Martín.


Re: Feature request: Fix cascading error messages

2022-03-29 Thread Martín Rincón Botero
  
>   
> This sounds sensible; maybe this suppression of processing `\score`
>   
> blocks can be implemented in Scheme so that LilyPond with a special
>   
> command line option acts as a syntax checker.
>   
  
  

  
  

  
That would be an improvement. It's still however not what the OP's complain 
was, but at least the overall impression of the cascade would be perceived as 
less morally detrimental by having Lilypond promoting ways of working more 
efficiently.
  
  
  

  
—Martín.
  
  
>   
> On Mar 29, 2022 at 12:48 PM,  mailto:w...@gnu.org)>  wrote:
>   
>   
>   
>   >  Why make the user wait so long to make him fix a misspelled word or  >  
> make him put a curly brace? A first pass should be done without  >  \score 
> blocks and abort (or at least ask if you want to continue!)  >  if this first 
> pass produces errors. This sounds sensible; maybe this suppression of 
> processing `\score` blocks can be implemented in Scheme so that LilyPond with 
> a special command line option acts as a syntax checker. Werner  
>
>   
  
  
   

Re: Feature request: Fix cascading error messages

2022-03-29 Thread Martín Rincón Botero
  
  

  Ah, mea culpa.
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Mar 29, 2022 at 12:58 PM,  mailto:d...@gnu.org)>  wrote:
>   
>   
>   
>  Martín Rincón Boterowrites:  >   >>  Since 
> TeX is predominantly employed for compiling LaTeX sources, that  >>  speaks 
> more about the LaTeX implementation than TeX itself.  >   >  Because I'm 
> under the impression that Lilypond is more similar to  >  LaTeX than to TeX, 
> It totally isn't, neither in concept nor in execution. In my book, it would 
> benefit from a layer trying to abstract content and design in a manner like 
> LaTeX does, but LilyPond in common use does not have any such layer or 
> architecture as it stands. It's essentially employed like plain TeX, 
> explicitly cranking out stuff with thin individual user-convenience layers on 
> top. We don't have the equivalence of document classes, and no coherent 
> system of what amounts to LaTeX's package system. -- David Kastrup  
>
>   
  
  
 

Re: Feature request: Fix cascading error messages

2022-03-29 Thread Martín Rincón Botero
  
  

  
  
  
  
  
>   
>   
>  Since TeX is predominantly employed for compiling LaTeX sources, that  
>
>   
>   
>  speaks more about the LaTeX implementation than TeX itself.  
>   
>   
>   
  

  
  

  
  
  
 Because I'm under the impression that Lilypond is more similar to LaTeX than 
to TeX, I thought Mr. Lemberg was referring to TeX in the context of LaTeX 
(through which is how I also interact with TeX).
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Mar 29, 2022 at 12:32 PM,  mailto:d...@gnu.org)>  wrote:
>   
>   
>   
>  Martín Rincón Boterowrites:  >  I'm lucky 
> to be able to work using Lilypond through Python. I never  >  compile the 
> whole score I'm working on, but only the current "segment"  >  (around 2 
> pages) and the corresponding pages get updated in the  >  PDF. Compiling the 
> whole thing is something I do only at the end of a  >  project because it's 
> so slow (I believe TeX suffers from similar  >  problems, so mentioning TeX 
> doesn't really improve the situation). TeX was written to make efficient use 
> of computers with a power that would be considered absolutely ridiculously 
> impaired by today's standards, so it tends to be amazingly blazingly fast. 
> Any differing impression most likely due is to abusing TeX as a Turing 
> machine for solving more or less generic programming purposes rather than as 
> a typesetting engine with a basic macro layer. Since TeX is predominantly 
> employed for compiling LaTeX sources, that speaks more about the LaTeX 
> implementation than TeX itself. To wit: in ancient times, using \tracingall 
> for looking at how a document got compiled tended to deliver useful 
> information; nowadays it just puts out indecipherable riffraff, like using 
> gdb for tracing the progress of a Scheme interpreter does. A Texinfo rather 
> than LaTeX compilation is probably more in line with the expected performance 
> (at least for input not transcending the ASCII input plane of Unicode) but no 
> promises: the old adage "any improvements in hardware performance will get 
> eaten up by more waste in programming" is a universal phenomenon. -- David 
> Kastrup  
>
>   
  
  
  
  
  
  

  
 

Re: Feature request: Fix cascading error messages

2022-03-29 Thread Martín Rincón Botero
*I'll implement it.

On mar. 29 2022, at 12:06 pm, Martín Rincón Botero 
 wrote:
> > Sometimes I want to see the output inspite of errors. Aborting
> > immediately if there is a syntax problem is definitely not always the
> > best solution. I fully agree with other people that it should be
> > Frescobaldi's job to jump to the first error message (in case it
> > doesn't do this already).
>
> I would tend to sympathize with that personal preference if producing PDF 
> output was fast or if time was abundant. Worse than waiting for Lilypond to 
> compile is waiting for Lilypond to produce a visually corrupted PDF.
> > Simply check LilyPond's return value. If it is non-zero you know
> > there is a problem. On the other hand, having visual output in case
> > of errors sometimes help identify where and what the problem is.
>
> I'm lucky to be able to work using Lilypond through Python. I never compile 
> the whole score I'm working on, but only the current "segment" (around 2 
> pages) and the corresponding pages get updated in the PDF. Compiling the 
> whole thing is something I do only at the end of a project because it's so 
> slow (I believe TeX suffers from similar problems, so mentioning TeX doesn't 
> really improve the situation). Now your idea is a very good one, and I'll 
> implemented in my own Python algorithms (which will essentially make Lilypond 
> work twice: once without \score blocks and once with \score blocks). I just 
> checked: a 20 pages project takes about 30 seconds to compile. Compiling 
> Lilypond without a \score block takes about 1 second. If in the same project 
> I misspell the word "\tuplet" for example, with a \score block it won't stop 
> compiling and will continue until, voilà, you get a corrupted PDF. Why make 
> the user wait so long to make him fix a misspelled word or make him put a 
> curly brace? A first pass should be done without \score blocks and abort (or 
> at least ask if you want to continue!) if this first pass produces errors.
> —Martín.
>
> On mar. 29 2022, at 11:10 am, Werner LEMBERG  wrote:
> >
> > > But shouldn't Lilypond check first if the syntax is correct instead
> > > of spending several seconds/minutes compiling a code that's doomed
> > > to visually fail?
> >
> > Sometimes I want to see the output inspite of errors. Aborting
> > immediately if there is a syntax problem is definitely not always the
> > best solution. I fully agree with other people that it should be
> > Frescobaldi's job to jump to the first error message (in case it
> > doesn't do this already).
> >
> > > In this case, the large project argument doesn't hold. Other than
> > > that, it seems we have different thresholds to what it means to have
> > > usable pdf output. The "service" of a glitchy PDF that Lilypond
> > > sometimes provides is of questionable value.
> >
> > Simply check LilyPond's return value. If it is non-zero you know
> > there is a problem. On the other hand, having visual output in case
> > of errors sometimes help identify where and what the problem is.
> >
> > TeX behaves quite similarly; IDEs for TeX also have the ability to
> > jump to errors.
> >
> >
> > Werner

Re: Feature request: Fix cascading error messages

2022-03-29 Thread Martín Rincón Botero
> Sometimes I want to see the output inspite of errors. Aborting
> immediately if there is a syntax problem is definitely not always the
> best solution. I fully agree with other people that it should be
> Frescobaldi's job to jump to the first error message (in case it
> doesn't do this already).

I would tend to sympathize with that personal preference if producing PDF 
output was fast or if time was abundant. Worse than waiting for Lilypond to 
compile is waiting for Lilypond to produce a visually corrupted PDF.
> Simply check LilyPond's return value. If it is non-zero you know
> there is a problem. On the other hand, having visual output in case
> of errors sometimes help identify where and what the problem is.

I'm lucky to be able to work using Lilypond through Python. I never compile the 
whole score I'm working on, but only the current "segment" (around 2 pages) and 
the corresponding pages get updated in the PDF. Compiling the whole thing is 
something I do only at the end of a project because it's so slow (I believe TeX 
suffers from similar problems, so mentioning TeX doesn't really improve the 
situation). Now your idea is a very good one, and I'll implemented in my own 
Python algorithms (which will essentially make Lilypond work twice: once 
without \score blocks and once with \score blocks). I just checked: a 20 pages 
project takes about 30 seconds to compile. Compiling Lilypond without a \score 
block takes about 1 second. If in the same project I misspell the word 
"\tuplet" for example, with a \score block it won't stop compiling and will 
continue until, voilà, you get a corrupted PDF. Why make the user wait so long 
to make him fix a misspelled word or make him put a curly brace? A first pass 
should be done without \score blocks and abort (or at least ask if you want to 
continue!) if this first pass produces errors.
—Martín.

On mar. 29 2022, at 11:10 am, Werner LEMBERG  wrote:
>
> > But shouldn't Lilypond check first if the syntax is correct instead
> > of spending several seconds/minutes compiling a code that's doomed
> > to visually fail?
>
> Sometimes I want to see the output inspite of errors. Aborting
> immediately if there is a syntax problem is definitely not always the
> best solution. I fully agree with other people that it should be
> Frescobaldi's job to jump to the first error message (in case it
> doesn't do this already).
>
> > In this case, the large project argument doesn't hold. Other than
> > that, it seems we have different thresholds to what it means to have
> > usable pdf output. The "service" of a glitchy PDF that Lilypond
> > sometimes provides is of questionable value.
>
> Simply check LilyPond's return value. If it is non-zero you know
> there is a problem. On the other hand, having visual output in case
> of errors sometimes help identify where and what the problem is.
>
> TeX behaves quite similarly; IDEs for TeX also have the ability to
> jump to errors.
>
>
> Werner

Re: Feature request: Fix cascading error messages

2022-03-29 Thread Martín Rincón Botero
> I strongly disagree :-)
> When there is an error, the default should be to continue as long as
> possible. For large projects where the compilation takes time, you want
> to have some viewable output even if there is a glitch somewhere. I also
> think you are overestimating the "developing effort" -- such an option
> would be absolutely trivial to add. I am not sure it is worth it though.
> As David said, hiding errors is always a heuristic process. I think this
> would be better addressed by a convenient "jump to first error" button
> in Frescobaldi.

But shouldn't Lilypond check first if the syntax is correct instead of spending 
several seconds/minutes compiling a code that's doomed to visually fail? In 
this case, the large project argument doesn't hold. Other than that, it seems 
we have different thresholds to what it means to have usable pdf output. The 
"service" of a glitchy PDF that Lilypond sometimes provides is of questionable 
value.
On mar. 29 2022, at 8:53 am, Jean Abou Samra  wrote:
> Le 29/03/2022 à 08:46, Martín Rincón Botero a écrit :
> > +1. I think making it customizable (with a --cascade-level parameter)
> > wouldn't add much value considering developing effort, though.
> > Lilypond, like Python f. ex., should simply report the first error
> > (and ideally immediately abort compilation).
>
>
> I strongly disagree :-)
> When there is an error, the default should be to continue as long as
> possible. For large projects where the compilation takes time, you want
> to have some viewable output even if there is a glitch somewhere. I also
> think you are overestimating the "developing effort" -- such an option
> would be absolutely trivial to add. I am not sure it is worth it though.
> As David said, hiding errors is always a heuristic process. I think this
> would be better addressed by a convenient "jump to first error" button
> in Frescobaldi.
>
> Jean

Re: Feature request: Fix cascading error messages

2022-03-28 Thread Martín Rincón Botero
  
  

  +1. I think making it customizable (with a --cascade-level parameter) 
wouldn't add much value considering developing effort, though. Lilypond, like 
Python f. ex., should simply report the first error (and ideally immediately 
abort compilation).   
  

  
—Martín.
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Mar 29, 2022 at 2:36 AM,   (mailto:christopher.heck...@asu.edu)>  wrote:
>   
>   
>   
>  On Mon, Mar 28, 2022 at 4:58 PM David Kastrupwrote:  >   > 
>  Christopher Heckmanwrites:  >   >   >  I 
> have a request concerning Lilypond that has bothered me for a while,  >   >  
> but which I haven't seen any one else complain about. It is the  >   >  
> cascade of error messages you get when you leave out a right-brace or  >   >  
> some other symbol.  >   >   >   >  Maybe this could be added as an option to 
> lilypond?  >   >   >   >  lilypond --cascade-level=N file.ly  >   >   >   >  
> which, for any given line, prints the first N error messages, and  >   >  
> after that a message saying that further error messages have been  >   >  
> suppressed. A default value for N might be 3 or 4.  >   >   >   >  What does 
> everyone think?  >   >  The problems from followup errors do not magically 
> disappear because  >  they are not reported. The only thing that would make 
> sense is better  >  error recovery (which is pretty hard but can partly be 
> achieved by  >  inserting "error" productions matching typical error 
> scenarios into the  >  grammar: that causes a more targeted recovery and is 
> arguably  >  underutilised in LilyPond's grammar) but not pretending to be 
> fine.  >  I'm not saying that LilyPond should say that everything is fine, 
> just that it not report every single error for a line. If you have 8 or 9 
> errors on one line, there's something wrong a basic level. For instance, 
> suppose I misspell markuplist on line 94. The next few errors look like 
> SyntacticStructuresInMusic.ly:94:1: error: unknown escaped string: 
> `\markuplst' \markuplst { SyntacticStructuresInMusic.ly:94:12: error: syntax 
> error, unexpected '{', expecting '.' or '=' \markuplst { 
> SyntacticStructuresInMusic.ly:100:1: error: unknown escaped string: 
> `\new-chapter' \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:1: error: string outside of text script or 
> \lyricmode \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:16: error: not a note name: Chapter 
> \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:27: error: not a note name: The 
> \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:31: error: not a note name: Basic 
> \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:37: error: not a note name: Syntactic 
> \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:47: error: not a note name: Structure 
> \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:102:1: error: unknown escaped string: 
> `\flushpar' \flushpar { SyntacticStructuresInMusic.ly:102:1: error: string 
> outside of text script or \lyricmode --- (If you're upset that this is looks 
> illegible in an email, then you understand my point; it doesn't look much 
> nicer in a Terminal set to 108 characters wide.) What I'm saying is that the 
> errors for line 100 should look like the following instead (when N = 4) --- 
> SyntacticStructuresInMusic.ly:100:1: error: unknown escaped string: 
> `\new-chapter' \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:1: error: string outside of text script or 
> \lyricmode \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:16: error: not a note name: Chapter 
> \new-chapter { Chapter 1. The Basic Syntactic Structure } 
> SyntacticStructuresInMusic.ly:100:27: error: not a note name: The 
> \new-chapter { Chapter 1. The Basic Syntactic Structure } Warning: Lilypond 
> has possibly suppressed further error messages for line 100. 
> SyntacticStructuresInMusic.ly:102:1: error: unknown escaped string: 
> `\flushpar' \flushpar { --- and so on.  >  The problem with the followup 
> errors is that there is no way that  >  LilyPond can actually be sure that 
> they are followup errors.  >  True, but if you have a cascade of errors on a 
> particular line, you definitely need to fix what's causing the cascade. Once 
> you've done this, and you re-run Lilypond, it will now report only the errors 
> that aren't followups. --- Christopher Heckman  >  Good heuristics for error 
> recovery productions in the grammar are tricky  >  to do, and since they are 
> only relevant for erroneous input, they tend  >  not to be assigned a high 
> priority.  >   >  On the other hand, I found excellent erro

Re: Lilypond-book

2022-03-20 Thread Martín Rincón Botero
Dear Jean,

thank you very much for your time and patience! If that's the only solution, 
I'll try installing the/this last "unstable" version in the near future.
Regards,
Martín.

On mar. 20 2022, at 9:33 pm, Jean Abou Samra  wrote:
> Le 20/03/2022 à 20:34, Martín Rincón Botero a écrit :
> > Hi Jean,
> >
> > I'm on Ubuntu 20.04. It seems the printing code that we added to
> > book_latex.py is returning an empty string. Here's the new logging
> > output of lilypond-book:
> >
> > lilypond-book (GNU LilyPond) 2.22.1
> > Reading `/home/martin/Escritorio/newfile1.tex'
> > Running `pdflatex' on file `/tmp/tmp0i00kf9b.tex' to detect default
> > page settings.
> >
> > lilypond-book: warning: Unable to auto-detect default settings:
> > pdflatex: /home/martin/lilypond/usr/lib/libstdc++.so.6: version
> > `CXXABI_1.3.9' not found (required by pdflatex)
> > pdflatex: /home/martin/lilypond/usr/lib/libz.so.1: no version
> > information available (required by /lib/x86_64-linux-gnu/libpng16.so.16)
> > pdflatex: /home/martin/lilypond/usr/lib/libz.so.1: no version
> > information available (required by /lib/x86_64-linux-gnu/libpng16.so.16)
>
>
>
> Aaah, *that* is the interesting piece of information from the
> start. But -- OMG, I can reproduce it on my own installation.
> I hadn't even imaged it would be broken for me. Is lilypond-book
> actually working for anyone on Linux??
>
> At any rate, it seems like it's an issue with the way the
> lilypond-book shell wrapper created by GUB sets LD_LIBRARY_PATH.
> I have no time to investigate what it should do, but the problem
> should go away by installing LilyPond 2.23.6 from
> https://gitlab.com/lilypond/lilypond/-/releases/release%252F2.23.6-1
> since the new infrastructure creating binaries no longer
> does that. For me, that works.
>
> Jean

Re: Lilypond-book

2022-03-20 Thread Martín Rincón Botero
Hi Jean,

I'm on Ubuntu 20.04. It seems the printing code that we added to book_latex.py 
is returning an empty string. Here's the new logging output of lilypond-book:
lilypond-book (GNU LilyPond) 2.22.1
Reading `/home/martin/Escritorio/newfile1.tex'
Running `pdflatex' on file `/tmp/tmp0i00kf9b.tex' to detect default page 
settings.

lilypond-book: warning: Unable to auto-detect default settings:
pdflatex: /home/martin/lilypond/usr/lib/libstdc++.so.6: version `CXXABI_1.3.9' 
not found (required by pdflatex)
pdflatex: /home/martin/lilypond/usr/lib/libz.so.1: no version information 
available (required by /lib/x86_64-linux-gnu/libpng16.so.16)
pdflatex: /home/martin/lilypond/usr/lib/libz.so.1: no version information 
available (required by /lib/x86_64-linux-gnu/libpng16.so.16)

lilypond-book: warning: cannot detect textwidth from LaTeX
Dissecting...
All snippets are up to date...
Linking files...
Compiling `newfile1.tex'...
Writing `/home/martin/Escritorio/out/newfile1.tex'...
''

On mar. 20 2022, at 8:18 pm, Jean Abou Samra  wrote:
> Le 20/03/2022 à 19:49, Martín Rincón Botero a écrit :
> > Hi Jean,
> >
> > thank you very much for wanting to take a look at it. Attached is the
> > .log file.
>
>
> Pheew. It looks correct, so something is wrong in the way lilypond-book
> gets it from the system. OK, can you locate the file book_latex.py in
> your LilyPond installation and apply the following diff?
>
>
> diff --git a/python/book_latex.py b/python/book_latex.py
> index ab8b2c7d3e..1c0f7bff50 100644
> --- a/python/book_latex.py
> +++ b/python/book_latex.py
> @@ -256,7 +256,9 @@ def get_latex_textwidth(source, global_options):
> os.unlink(tmpfile)
> if os.path.exists(auxfile):
> os.unlink(auxfile)
> + print(repr(parameter_string))
> if os.path.exists(logfile):
> + print(repr(parameter_string))
> parameter_string = open(logfile, encoding="utf8").read()
> os.unlink(logfile)
>
>
> Then re-run and paste the lilypond-book logging output. Also, what OS
> are you running? Is it Windows?
>



Re: Lilypond-book

2022-03-20 Thread Martín Rincón Botero
Hi Jean,

thank you very much for wanting to take a look at it. Attached is the .log file.
Regards,
Martín.

On mar. 16 2022, at 8:42 pm, Jean Abou Samra  wrote:
>
>
> Le 16/03/2022 à 11:18, Martín Rincón Botero a écrit :
> > Dear community,
> >
> > so that I have any idea on where to look and maybe give more useful
> > information, I got this warning (that should be an error, because the
> > pdf output is useless) when using lilypond-book after upgrading to
> > Lilypond 2.22.1 (it used to work perfectly before) on Ubuntu
> > 20.04: lilypond-book: warning: cannot detect textwidth from LaTeX.
> > After googling I've seen some people who run into this problem when
> > using Xetex, but I'm using PdfLatex, so their solutions obviously
> > don't work in my case. What could be causing this problem?
>
>
>
> Can you compile a file made of your LaTeX preamble to which you append
> \begin{document}
> \typeout{textwidth=\the\textwidth}
> \typeout{columnsep=\the\columnsep}
> \makeatletter\if@twocolumn\typeout{columns=2}\fi\makeatother
> \end{document}
>
>
> and attach the .log file?
> Jean

newfile1.log
Description: Binary data


Lilypond-book

2022-03-16 Thread Martín Rincón Botero
Dear community,

so that I have any idea on where to look and maybe give more useful 
information, I got this warning (that should be an error, because the pdf 
output is useless) when using lilypond-book after upgrading to Lilypond 2.22.1 
(it used to work perfectly before) on Ubuntu 20.04: lilypond-book: warning: 
cannot detect textwidth from LaTeX. After googling I've seen some people who 
run into this problem when using Xetex, but I'm using PdfLatex, so their 
solutions obviously don't work in my case. What could be causing this problem?
Regards,
Martín.


Re: Bug in articulate.ly

2022-03-13 Thread Martín Rincón Botero
  
  

  Hi Knute,
  

  
thanks for the info. Because the discussion of the links I provided took place 
in 2019 I was wondering if it was something still under consideration since 
then. It could be that no official bug report was ever made. I'll have to 
investigate and make the corresponding bug report if necessary.
  

  
Regards,
  
Martín.
  
  
  
 www.martinrinconbotero.com
  
  
  

  
  
>   
> On Mar 11, 2022 at 3:52 PM,  mailto:ksnor...@gmail.com)>  
> wrote:
>   
>   
>   
>  This is a good place to start if you have patched a bug: 
> https://lilypond.org/bug-reports.html or https://lilypond.org/help-us.html -- 
> Knute Snortum On Fri, Mar 11, 2022 at 3:29 AM Martín Rincón Botero  
>   wrote:  >   >  Hi all,  >   >  I stumbled 
> into this bug https://marc.info/?l=lilypond-user&m=142300498620076&w=2 which 
> I solved with this patch 
> https://marc.info/?l=lilypond-user&m=142477756707049&w=2 (the line numbers 
> seem to be different nowadays). I'm using Lilypond 2.22. Is there any chance 
> that this small patch gets in the standard version of articulate.ly? That 
> would save many users some time.  >   >  Regards,  >  Martín.  >   >  --  >  
> www.martinrinconbotero.com  
>
>   
  
  
 

Bug in articulate.ly

2022-03-11 Thread Martín Rincón Botero
Hi all,

I stumbled into this bug
https://marc.info/?l=lilypond-user&m=142300498620076&w=2 which I solved
with this patch https://marc.info/?l=lilypond-user&m=142477756707049&w=2
(the line numbers seem to be different nowadays). I'm using Lilypond 2.22.
Is there any chance that this small patch gets in the standard version of
articulate.ly? That would save many users some time.

Regards,
Martín.

-- 
www.martinrinconbotero.com


Re: Windows Media Player alternatives for midi playing?

2021-10-30 Thread Martín Rincón Botero
  
  

  Hola Pablo,
  

  
I assume you don't use Frescobaldi. For playing back midis I use that (even 
though I don't compose there). In all my composing projects I have a midi.ly 
file with a score block that only produces midi (only a midi block with no 
layout block), and uses also the articulate script. You just need to have 
include files for everything you do and recompile the midi.ly file in 
Frescobaldi everytime you want to hear the changes (and this recompilation 
takes a matter of miliseconds!).   
  

  
The midi.ly file can look   as simple as
  
  
  
\include "articulate.ly"
  
  
  
\score {
  
\new StaffGroup
  
\unfoldRepeats \articulate  <<
  
\include "staff1.ily"
  
\include "staff2.ily
  
>>
  
\midi {}
  
}
  

  
I hope it helps!
  

  
—Martín.
  
  
  
  www.martinrinconbotero.com (http://www.martinrinconbotero.com) 
  

  
  
>   
> On Oct 30, 2021 at 9:40 AM,  mailto:pablocor...@gmail.com)>  
> wrote:
>   
>   
>   
> Hi,  
>
>   
> Until now, I use WMP to play the midi compiled in lilypond. I have coolsoft 
> virtualmidisynth installed with a sf2 of my taste and no problem, everything 
> works fine.
>   
>
>   
> The problem: WMP blocks the midi file while (and after) it's playing, so if I 
> modify something in lilypond and I want to hear it, I have to close WMP, then 
> compile, go to the folder and reproduce again.. and I'm composing so I do it 
> a LOT of times.
>   
>
>   
> Question: anybody knows a mid player   with does not block the file, so it 
> loads the file each time for playing it?
>   
>
>   
> Best regards,
>   
> Pablo
>   
>   
>   
  
  
 

Re: Is Lilypond’s G-Clef too straight?

2021-08-17 Thread Martín Rincón Botero
Hi Valentin,

just sending my two cents, since I belong to one of those who feel that 
Lilypond has a quite characteristic G-clef (not ugly, but I wouldn't call it 
"normal" or "standard"). I just looked at your two proposals and browsed 
through random scores on IMSLP. Almost all of the IMSLP examples show a clef 
that slightly (sometimes not so slightly!) lean a bit forward with one striking 
example that does the exact opposite. I would agree with you that a small 
rotation forward looks a bit more standard and find especially the first 
rotated clef very nice. The "straightness" of Lilypond's clef becomes more 
apparent to me in the small clef for some reason. That perception goes away 
with the first rotated clef. The second rotated clef looks to me a bit too 
leaning forward. Could it be that the scores that use a more marked rotation 
use a clef with more "paunch" to compensate for the extra rotation?
Martín.
www.martinrinconbotero.com

On ago. 12 2021, at 2:59 pm, Valentin Petzel  wrote:
> Hello Silvain,
>
> That is kind of the point. In most editions the G-Clef is not balanced, but
> leans a bit forward. Lilypond’s G-Clef does so too, but very slightly, so the
> I’m asking for aesthetic opinions on whether this might be a slight bit too
> straight.
>
> Valentin

Re: Issue with repeat tremolo

2021-03-26 Thread Martín Rincón Botero
Sorry for the noise. I had taken a similar approach following a snippet in the 
documentation, that uses \voiceOne and \voiceTwo. Simply removing those two 
commands works perfectly.

On mar. 26 2021, at 12:02 pm, Martín Rincón Botero 
 wrote:
> I was trying several things with gap-count to see if it affected it in any 
> way (it doesn't) and forgot to remove the \revert command. I paste it again 
> without it.
>
>
> \version "2.20.0"
>
>
> \context PianoStaff = "pianostaff" <<
> \context Staff = "RHStaff" {
> \repeat tremolo 8 {
> \voiceOne
> 32
> \ottava 0
> {
> \change Staff = LHStaff
> \voiceTwo
> 32
> }
> }
> }
> \context Staff = "LHStaff" {
> \clef bass
> s2
> }
> >>
>
>
> On mar. 26 2021, at 11:59 am, Martín Rincón Botero 
>  wrote:
> > Hello all,
> >
> > it seems I stumbled with this bug 
> > https://gitlab.com/lilypond/lilypond/-/issues/2383. The following code 
> > produces error messages (sorry, in Spanish) and bad output:
> > \version "2.20.0"
> >
> > \context PianoStaff = "pianostaff" <<
> > \context Staff = "RHStaff" {
> > \repeat tremolo 8 {
> > \voiceOne
> > 32
> > \ottava 0
> > {
> > \change Staff = LHStaff
> > \voiceTwo
> > 32
> > }
> > \revert Beam.gap-count
> > }
> > }
> > \context Staff = "LHStaff" {
> > \clef bass
> > s2
> > }
> > >>
> >
> > Error messages/warnings:
> > /tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:6:5 (0): advertencia: no 
> > se ha encontrado ninguna configuración inicial viable; puede que no se 
> > encuentre una buena inclinación de las barras
> > \repeat tremolo 8 {
> > error de programación: No viable beam quanting found. Using unquanted y 
> > value.
> > continuamos; cruce los dedos
> > /tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:8:18 (1): advertencia: 
> > tamaño de plica extraño, compruebe que no haya barras estrechas
> > <
> > c''' b'''>32
> > /tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:13:22: advertencia: 
> > tamaño de plica extraño, compruebe que no haya barras estrechas
> > <
> > a, gis>32
> > advertencia: No se dibuja el rectángulo con dimensiones negativas, 0.13 por 
> > -0.24.
> > advertencia: No se dibuja el rectángulo con dimensiones negativas, 0.13 por 
> > -0.24.
> >
> >
> > Output:
> > Is there anything I can do to make Lilypond print if not the beam at least 
> > the missing stems so that you can read a half note instead of a whole note?
> > Regards,
> > Martín.
>



Re: Issue with repeat tremolo

2021-03-26 Thread Martín Rincón Botero
I was trying several things with gap-count to see if it affected it in any way 
(it doesn't) and forgot to remove the \revert command. I paste it again without 
it.

\version "2.20.0"

\context PianoStaff = "pianostaff" <<
\context Staff = "RHStaff" {
\repeat tremolo 8 {
\voiceOne
32
\ottava 0
{
\change Staff = LHStaff
\voiceTwo
32
}
}
}
\context Staff = "LHStaff" {
\clef bass
s2
}
>>

On mar. 26 2021, at 11:59 am, Martín Rincón Botero 
 wrote:
> Hello all,
>
> it seems I stumbled with this bug 
> https://gitlab.com/lilypond/lilypond/-/issues/2383. The following code 
> produces error messages (sorry, in Spanish) and bad output:
> \version "2.20.0"
>
> \context PianoStaff = "pianostaff" <<
> \context Staff = "RHStaff" {
> \repeat tremolo 8 {
> \voiceOne
> 32
> \ottava 0
> {
> \change Staff = LHStaff
> \voiceTwo
> 32
> }
> \revert Beam.gap-count
> }
> }
> \context Staff = "LHStaff" {
> \clef bass
> s2
> }
> >>
>
> Error messages/warnings:
> /tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:6:5 (0): advertencia: no se 
> ha encontrado ninguna configuración inicial viable; puede que no se encuentre 
> una buena inclinación de las barras
> \repeat tremolo 8 {
> error de programación: No viable beam quanting found. Using unquanted y value.
> continuamos; cruce los dedos
> /tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:8:18 (1): advertencia: 
> tamaño de plica extraño, compruebe que no haya barras estrechas
> <
> c''' b'''>32
> /tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:13:22: advertencia: tamaño 
> de plica extraño, compruebe que no haya barras estrechas
> <
> a, gis>32
> advertencia: No se dibuja el rectángulo con dimensiones negativas, 0.13 por 
> -0.24.
> advertencia: No se dibuja el rectángulo con dimensiones negativas, 0.13 por 
> -0.24.
>
>
> Output:
> Is there anything I can do to make Lilypond print if not the beam at least 
> the missing stems so that you can read a half note instead of a whole note?
> Regards,
> Martín.



Issue with repeat tremolo

2021-03-26 Thread Martín Rincón Botero
Hello all,

it seems I stumbled with this bug 
https://gitlab.com/lilypond/lilypond/-/issues/2383. The following code produces 
error messages (sorry, in Spanish) and bad output:
\version "2.20.0"

\context PianoStaff = "pianostaff" <<
\context Staff = "RHStaff" {
\repeat tremolo 8 {
\voiceOne
32
\ottava 0
{
\change Staff = LHStaff
\voiceTwo
32
}
\revert Beam.gap-count
}
}
\context Staff = "LHStaff" {
\clef bass
s2
}
>>
Error messages/warnings:
/tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:6:5 (0): advertencia: no se 
ha encontrado ninguna configuración inicial viable; puede que no se encuentre 
una buena inclinación de las barras
\repeat tremolo 8 {
error de programación: No viable beam quanting found. Using unquanted y value.
continuamos; cruce los dedos
/tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:8:18 (1): advertencia: tamaño 
de plica extraño, compruebe que no haya barras estrechas
<
c''' b'''>32
/tmp/frescobaldi-334szimt/tmp1_veurae/document.ly:13:22: advertencia: tamaño de 
plica extraño, compruebe que no haya barras estrechas
<
a, gis>32
advertencia: No se dibuja el rectángulo con dimensiones negativas, 0.13 por 
-0.24.
advertencia: No se dibuja el rectángulo con dimensiones negativas, 0.13 por 
-0.24.

Output:

Is there anything I can do to make Lilypond print if not the beam at least the 
missing stems so that you can read a half note instead of a whole note?

Regards,
Martín.


Re: Repeated durations: pitches vs rests

2021-02-22 Thread Martín Rincón Botero
> Well, I don't know what a program should or should not do, but the
> readability and convenience of this exact notation was considerable part
> of the incentive of choosing to do it in this manner: a tied note does
> not want a repeated attack when playing, and not needing to write the
> pitch again meshes nicely with that.

I agree, especially for a manually generated file. For a programmatically 
generated file, I don’t think it’s a good idea to use this kind of shorthand: 
music being music and musicians being musicians, it’s very likely that you want 
to modify whatever you wrote with your software (the case here, to make your 
software transform notes into rests). For all modifications, an explicit 
notation will only help your own program: without shorthands (and in absolute 
mode), your program can simply transform what needs to be transformed, copy or 
move what needs to be moved without losing the integrity of the musical event 
and without having to re-interpret a notation that is less explicit, i.e. 
without having to re-make the full object because it needs to be full in a 
different context (like rests in this case, but the same applies to pitches and 
durations, which can be omitted in Lilypond as well).

www.martinrinconbotero.com
On 22. Feb 2021, 23:29 +0100, David Kastrup , wrote:
>
> Well, I don't know what a program should or should not do, but the
> readability and convenience of this exact notation was considerable part
> of the incentive of choosing to do it in this manner: a tied note does
> not want a repeated attack when playing, and not needing to write the
> pitch again meshes nicely with that.


Re: Repeated durations: pitches vs rests

2021-02-22 Thread Martín Rincón Botero
Oh I see. I was also just checking your Platonic Music Engine :-). It seems to 
me that you interpret a tie the same way you interpret a dot. From that 
perspective it makes indeed sense to have c4. next to c4 ~ 16. The problem is 
that both objects are notationally different. Lilypond follows in this case not 
some invented logic that “makes sense” but the typographic/notational tradition 
(let’s not forget that you can also tie dotted notes!). The tie in Lilypond is 
not just a way to add a rhythmic value to another duration, it is an actual tie 
in the traditional sense/use.

Your program should never produce c4 ~ 16. Even if it’s an big effort to change 
that behavior, I think it is worth making in the long term (even if in the 
short term, Jean’s algorithm is saving the day :-) ).

www.martinrinconbotero.com
On 22. Feb 2021, 22:37 +0100, David Bellows , wrote:
>
> that


Re: Repeated durations: pitches vs rests

2021-02-22 Thread Martín Rincón Botero
Hi David,

perhaps by giving a minimal example of the particular situation you have, where 
you feel a “tied rest” is the best possible solution, other people could give 
you better approaches.
> My software does create rests, it's just in the particular situation
> where a voice in one staff (like in a piano) has a quarter tied to a
> 16th that I need the same voice in the other staff to create the
> appropriate rests (quarter followed by a 16th).

I still don’t understand why having one voice such as {c4 ~ c16 c8.} can’t be 
“translated” to a second voice that “creates the appropriate rests“ producing 
something like {r4 r16 r8.} with no tie, or rather, why isn’t something like 
this the first approach for your software. It seems we’re all on this list 
missing something about the way you’re working with your software to be able to 
help.

Cheers,
Martín.

www.martinrinconbotero.com
On 22. Feb 2021, 21:50 +0100, David Bellows , wrote:
>
> that


Re: Repeated durations: pitches vs rests

2021-02-22 Thread Martín Rincón Botero
Hi David,

I don’t know what software you’re using to create your Lilypond files, but what 
working with Python and abjad has taught me is that it’s best that softwares 
that produce Lilypond files don’t use any kind of shortcuts, they should write 
everything explicitly (and in absolute mode) instead. I suggest you program 
your software with that in mind: it’ll save you lots of headaches down the 
road. Leave shortcuts and relative mode only for manually generated files.

As for tied rest, I’ll just agree with Andrew that they don’t make sense. Your 
software will have to take tied groups of notes and remove the ties when 
converting notes to rests.

Cheers,
Martín.

www.martinrinconbotero.com
On 22. Feb 2021, 09:09 +0100, David Bellows , wrote:
> Hello Andrew,
>
> Right, so I'm not asking for two rests to actually be tied. I was just
> hoping that the behavior of a lone duration value would repeat the
> rest right before it and not skip back till it finds a note.
>
> For example, instead of {c4 r4 16} resulting in "C, rest, C", it would
> be "C, rest, rest" with no ties anywhere.
>
> But if that is not the expected behavior from most people then perhaps
> adding a tie to the rest could tell LilyPond to make that lone
> duration a rest instead of skipping back till it finds a note.
>
> So {c4 r4~ 16) would result in: C, rest, rest (with no ties in the
> actual sheet music). If not the tilde then perhaps some other symbol
> to signify this behavior.
>
> > Why cant you just have a rest of the appropriate
> duration? You can have dotted rests you know, and durations can be
> scaled as can note durations.
>
> My software can handle all normal durations including dotted ones. But
> a quarter tied to a 16th can only be notated with a tie. There is no
> other simple way to notate it which means I need two notes or two
> rests in my LilyPond file. I don't think scaling the duration will
> produce something that a performer would understand.
>
> I'm sure I can eventually figure out how to make LilyPond's current
> behavior work with my software, it's just that it will take a lot of
> work. If a lone duration would use a previous rest instead of going
> back to find a note, then it would be much easier for me to implement.
>
> Dave
>
> On Sun, Feb 21, 2021 at 11:23 PM Andrew Bernard
>  wrote:
> >
> > Ties rests make no musical sense, even in relation to programmatically
> > generated music. Why cant you just have a rest of the appropriate
> > duration? You can have dotted rests you know, and durations can be
> > scaled as can note durations.
> >
> > a
> >
> >
> >
>


Re: Offset from the left edge

2021-02-11 Thread Martín Rincón Botero
Hi,

you can remove indentation by having
\layout {
indent = #0
}
Cheers,
Martín.

www.martinrinconbotero.com

On feb. 11 2021, at 7:00 pm, Андрей Абраменко  wrote:
> Hello. I get an offset on the left side of the page for the first line and 
> don't know why or how to get rid of it.
>
> \version "2.20.0"
>
> #(define mydrums '(
> (bassdrum default #f -5)
> (pedalhihat cross #f -5)
> (snare default #f 1)
> (hihat cross #f 5)
> (ridecymbal diamond #f 5)
> (himidtom default #f 3)
> (lowmidtom default #f -2)
> (lowtom default #f -3)
> )
> )
>
> \header {
> % Remove default LilyPond tagline
> tagline = ##f
> }
>
> \new DrumStaff <<
> \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
> \drummode {
> \numericTimeSignature
> \time 4/4
> \stemUp
>
> \repeat percent 4 {16^> sn  sn} |
> \repeat percent 4 {16 sn^>  sn} |
> \repeat percent 4 {16 sn ^> sn} |
> \repeat percent 4 {16 sn  sn^>} |
> \break
> \repeat percent 4 {16^> sn^>  sn} |
> \repeat percent 4 {16 sn^> ^> sn} |
> \repeat percent 4 {16 sn ^> sn^>} |
> \repeat percent 4 {16^> sn  sn^>} |
> \break
> }
> >>
>
>
> Can anybody explain how do delete it?
>
>



Re: Code Max length

2021-02-03 Thread Martín Rincón Botero
Hi Ludovic,

you’ll need to post the error message you get. Since I recently typeset an even 
larger score with a somewhat larger instrumentation, I don’t believe there’s 
anything like a maximal code length.

Cheers,
Martín.

www.martinrinconbotero.com
On 3. Feb 2021, 14:32 +0100, Ludovic Teysseire , 
wrote:
> Dear lilypond community,
>
> I recently started coding a piano score on Lilypond version 2.20.0 comprised 
> of roughly 250 bars. However, I have been unable to input anything after a 
> while. It seems that I can change the code however I want as long as I do no 
> exceed 28,072 characters.
>
> Could you help me find out if there really is a limit on the number of 
> characters we can input per project ? Otherwise, could you please tell me how 
> I can input a score without dividing the piece ?
>
> I believe that variables won't help me save more space.
>
> Thank you in advance,
> Ludovic.
>
>


Re: Solution "Midi Through Port-0"?

2021-01-28 Thread Martín Rincón Botero
Hi Federico,

thank you for that link! I was always having to refresh Frescobaldi’s midi 
ports before being able to use MIDI. It’s great that that can be configured to 
always run automatically.

Cheers,
Martín.

www.martinrinconbotero.com
On 27. Jan 2021, 23:43 +0100, Federico Bruni , wrote:
> Sorry, I hit reply before finishing...
>
>
> On Wed, Jan 27 2021 at 11:33:58 PM +0100, Federico Bruni
>  wrote:
> > On Wed, Jan 27 2021 at 08:24:50 PM +0100, Silvain Dupertuis
> >  wrote:
> > > I am on Ubuntu (18.04 on my main machine) and use Frescobaldi
> > > Midi output works fine for me.
> > > I did not play with settings so far...
> > > For midi ports, I have
> > > Output reader = TiMidity port 0
> > > Entry port = Midi Through Port-0
> > >
> >
> > You did not have to play with the settings probably because you
> > already had timidity installed and running as a service in background.
> >
> > More information on MIDI playback is in the wiki:
> >
> https://github.com/frescobaldi/frescobaldi/wiki/MIDI-playback-on-Linux
>
> >
> > > The only thing : If I just press the button
> > > (whatever it is called in English, in French, it says "graver")
> > > it does not save ouput. I have to save the Lilypond file also to
> > > get �PDF and midi output.
>
> This is a common misunderstanding.
> There's an option in the Preferences to autosave the file when you
> click on Engrave button.
>
> Perhaps the default should be the opposite of what it is now.
> I think I made this suggestion on some Github issue.
>
>
>
>


Re: Rhythmic staff MIDI

2021-01-27 Thread Martín Rincón Botero
Great! Glad it helped.

www.martinrinconbotero.com
On 27. Jan 2021, 19:02 +0100, ebenezer , 
wrote:
> Thank you Martín,
> That snippet has helped enormously. I had tried to incorporate drumStyleTable 
> earlier but it didn't work the way I was using it. I tried 
> StaffSymbol.line-count = #1 and that looks good, too :)
> Cheers!
>
> On 2021-01-27 15:32, Martín Rincón Botero wrote:
> > Oops, missed a couple of curly braces:
> >
> > \context DrumStaff = "bongo"
> >             \with
> >             {
> >                 \override StaffSymbol.line-count = #2
> >                 drumStyleTable = #bongos-style
> >                 instrumentName = \markup { Bongo }
> >                 shortInstrumentName = \markup { Bng. }
> >             }
> >             {
> >             \drummode
> >                 {
> >                 boh4 bol boh bol
> >                 }
> >             }
> >
> >
> >
> > > Am Mi., 27. Jan. 2021 um 16:31 Uhr schrieb Martín Rincón Botero 
> > > :
> > > > Well, I don't use the RhythmicStaff for bongos and wouldn't recommend 
> > > > it either. What I use looks something like this:
> > > >
> > > > \context DrumStaff = "bongo"
> > > >             \with
> > > >             {
> > > >                 \override StaffSymbol.line-count = #2
> > > >                 drumStyleTable = #bongos-style
> > > >                 instrumentName = \markup { Bongo }
> > > >                 shortInstrumentName = \markup { Bng. }
> > > >             }
> > > >             \drummode
> > > >                 {
> > > >                 boh4 bol boh bol
> > > >                 }
> > > >
> > > > Perhaps you'll find this esthetically pleasing as well ;-). With this 
> > > > setup I haven't had any issues with MIDI. You don't even have to 
> > > > manually select any MIDI instrument or do any extra configuration. At 
> > > > least for me, this "just works" and is notationally correct.
> > > >
> > > > Cheers,
> > > > Martín.
> > > >
> > > >
> > > > > Am Mi., 27. Jan. 2021 um 16:21 Uhr schrieb ebenezer 
> > > > > :
> > > > > > Hello Martin,
> > > > > > No, I can use DrumStaff. I'm still experimenting with LilyPond, 
> > > > > > finding out what works easily and what doesn't.
> > > > > > Aesthetically, a RhythmicStaff looks better, so if it's something I 
> > > > > > can accomplish without too much effort (~1 day), I would delve 
> > > > > > deeper.
> > > > > > Since posting I have found that Drum_note_performer will output 
> > > > > > MIDI, but it's a soft piano sound, so I am now stuck at this point.
> > > > > > Thanks.
> > > > > >
> > > > > > On 2021-01-27 13:22, Martín Rincón Botero wrote:
> > > > > > > Hello,
> > > > > > >
> > > > > > > is there any reason for not using DrumStaff if that works fine 
> > > > > > > for MIDI?
> > > > > > >
> > > > > > > Regards,
> > > > > > > Martín.
> > > > > > >
> > > > > > > www.martinrinconbotero.com
> > > > > > > On 27. Jan 2021, 11:52 +0100, ebenezer 
> > > > > > > , wrote:
> > > > > > > > Hello everyone,
> > > > > > > > I am attempting to use a percussion staff for a bongo part in a 
> > > > > > > > score.
> > > > > > > > staffBongo = \drummode {
> > > > > > > > boh4_\markup { \sans boh } boho8 bohm8 % -- and so on...
> > > > > > > > }
> > > > > > > > partBongo = \new RhythmicStaff \with {
> > > > > > > > } \staffBongo
> > > > > > > > doesn't output any MIDI. Note that using a DrumStaff works 
> > > > > > > > fine. The contexts under \midi {} are the same for both 
> > > > > > > > DrumStaff and RhythmicStaff. What am I doing that is incorrect, 
> > > > > > > > please?
> > > > > > > > Thanks.
> > > > > > > >
> > > > > >
> > > >
> > > >
> > > > --
> > > > www.martinrinconbotero.com
> >
> >
> > --
> > www.martinrinconbotero.com
>


Re: Rhythmic staff MIDI

2021-01-27 Thread Martín Rincón Botero
Oops, missed a couple of curly braces:

\context DrumStaff = "bongo"
\with
{
\override StaffSymbol.line-count = #2
drumStyleTable = #bongos-style
instrumentName = \markup { Bongo }
shortInstrumentName = \markup { Bng. }
}
{
\drummode
{
boh4 bol boh bol
}
}



Am Mi., 27. Jan. 2021 um 16:31 Uhr schrieb Martín Rincón Botero <
martinrinconbot...@gmail.com>:

> Well, I don't use the RhythmicStaff for bongos and wouldn't recommend it
> either. What I use looks something like this:
>
> \context DrumStaff = "bongo"
> \with
> {
> \override StaffSymbol.line-count = #2
> drumStyleTable = #bongos-style
> instrumentName = \markup { Bongo }
> shortInstrumentName = \markup { Bng. }
> }
> \drummode
> {
> boh4 bol boh bol
> }
>
> Perhaps you'll find this esthetically pleasing as well ;-). With this
> setup I haven't had any issues with MIDI. You don't even have to manually
> select any MIDI instrument or do any extra configuration. At least for me,
> this "just works" and is notationally correct.
>
> Cheers,
> Martín.
>
>
> Am Mi., 27. Jan. 2021 um 16:21 Uhr schrieb ebenezer <
> ebene...@thedorsetpagdens.plus.com>:
>
>> Hello Martin,
>>
>> No, I can use DrumStaff. I'm still experimenting with LilyPond, finding
>> out what works easily and what doesn't.
>>
>> Aesthetically, a RhythmicStaff looks better, so if it's something I can
>> accomplish without too much effort (~1 day), I would delve deeper.
>>
>> Since posting I have found that Drum_note_performer will output MIDI, but
>> it's a soft piano sound, so I am now stuck at this point.
>>
>> Thanks.
>>
>> On 2021-01-27 13:22, Martín Rincón Botero wrote:
>>
>> Hello,
>>
>> is there any reason for not using DrumStaff if that works fine for MIDI?
>>
>> Regards,
>> Martín.
>>
>> www.martinrinconbotero.com
>> On 27. Jan 2021, 11:52 +0100, ebenezer
>>  ,
>> wrote:
>>
>> Hello everyone,
>>
>> I am attempting to use a percussion staff for a bongo part in a score.
>>
>> staffBongo = \drummode {
>>
>> boh4_\markup { \sans boh } boho8 bohm8 % -- and so on...
>>
>> }
>>
>> partBongo = \new RhythmicStaff \with {
>> } \staffBongo
>>
>> doesn't output any MIDI. Note that using a DrumStaff works fine. The
>> contexts under \midi {} are the same for both DrumStaff and RhythmicStaff.
>> What am I doing that is incorrect, please?
>> Thanks.
>>
>>
>>
>
> --
> www.martinrinconbotero.com
>


-- 
www.martinrinconbotero.com


Re: Rhythmic staff MIDI

2021-01-27 Thread Martín Rincón Botero
Well, I don't use the RhythmicStaff for bongos and wouldn't recommend it
either. What I use looks something like this:

\context DrumStaff = "bongo"
\with
{
\override StaffSymbol.line-count = #2
drumStyleTable = #bongos-style
instrumentName = \markup { Bongo }
shortInstrumentName = \markup { Bng. }
}
\drummode
{
boh4 bol boh bol
}

Perhaps you'll find this esthetically pleasing as well ;-). With this setup
I haven't had any issues with MIDI. You don't even have to manually select
any MIDI instrument or do any extra configuration. At least for me, this
"just works" and is notationally correct.

Cheers,
Martín.


Am Mi., 27. Jan. 2021 um 16:21 Uhr schrieb ebenezer <
ebene...@thedorsetpagdens.plus.com>:

> Hello Martin,
>
> No, I can use DrumStaff. I'm still experimenting with LilyPond, finding
> out what works easily and what doesn't.
>
> Aesthetically, a RhythmicStaff looks better, so if it's something I can
> accomplish without too much effort (~1 day), I would delve deeper.
>
> Since posting I have found that Drum_note_performer will output MIDI, but
> it's a soft piano sound, so I am now stuck at this point.
>
> Thanks.
>
> On 2021-01-27 13:22, Martín Rincón Botero wrote:
>
> Hello,
>
> is there any reason for not using DrumStaff if that works fine for MIDI?
>
> Regards,
> Martín.
>
> www.martinrinconbotero.com
> On 27. Jan 2021, 11:52 +0100, ebenezer
>  ,
> wrote:
>
> Hello everyone,
>
> I am attempting to use a percussion staff for a bongo part in a score.
>
> staffBongo = \drummode {
>
> boh4_\markup { \sans boh } boho8 bohm8 % -- and so on...
>
> }
>
> partBongo = \new RhythmicStaff \with {
> } \staffBongo
>
> doesn't output any MIDI. Note that using a DrumStaff works fine. The
> contexts under \midi {} are the same for both DrumStaff and RhythmicStaff.
> What am I doing that is incorrect, please?
> Thanks.
>
>
>

-- 
www.martinrinconbotero.com


Re: Rhythmic staff MIDI

2021-01-27 Thread Martín Rincón Botero
Hello,

is there any reason for not using DrumStaff if that works fine for MIDI?

Regards,
Martín.

www.martinrinconbotero.com
On 27. Jan 2021, 11:52 +0100, ebenezer , 
wrote:
> Hello everyone,
> I am attempting to use a percussion staff for a bongo part in a score.
> staffBongo = \drummode {
> boh4_\markup { \sans boh } boho8 bohm8 % -- and so on...
> }
> partBongo = \new RhythmicStaff \with {
> } \staffBongo
> doesn't output any MIDI. Note that using a DrumStaff works fine. The contexts 
> under \midi {} are the same for both DrumStaff and RhythmicStaff. What am I 
> doing that is incorrect, please?
> Thanks.
>


Re: ANN: Frescobaldi 3.1.3

2020-12-26 Thread Martín Rincón Botero
Awesome!

I hope you had a nice Christmas and I wish you a happy new year.

www.martinrinconbotero.com
On 26. Dec 2020, 14:09 +0100, Wilbert Berendsen , wrote:
> Dear friends,
>
> I'm happy to announce the availability of Frescobaldi 3.1.3, a bugfix
> release, with bugfixes, updated translations and a small new feature: a
> Clear button to empty the Music View.
>
> Thanks again Davide for your share of Mac OS X fixes!
>
> The source tarball is uploaded, packaged releases will probably follow
> soon. Many thanks to all the contributors!
>
> ChangeLog: https://github.com/frescobaldi/frescobaldi/blob/v3.1.3/ChangeLog
> Download: https://github.com/frescobaldi/frescobaldi/releases
>
> Merry Christmas!
>
> Wilbert and the rest of the Frescobaldi team
>
>
> --
> Wilbert Berendsen (www.wilbertberendsen.nl)
>


Re: Sending around contexts

2020-11-21 Thread Martín Rincón Botero
Nice! Perhaps in the realms of Dynamics contexts this could be the seed for
a future centered dynamics "style" —where dynamics are sent "behind the
scenes" to a Dynamics context— that's activated with a simple \override
command.

Am Sa., 21. Nov. 2020 um 21:16 Uhr schrieb Kieren MacMillan <
kieren_macmil...@sympatico.ca>:

> Hi Valentin (et al.),
>
> Oh, this is so great…!!  =)
>
> FAIRLY MINIMAL EXAMPLE:
>
> %%%
> \version "2.20"
>
> \layout {
>   \context {
> \name "Notes"
> \type "Engraver_group"
>   }
>   \context {
> \Voice
> \accepts "Notes"
>   }
>   \context {
> \name "Container"
> \type "Engraver_group"
> \accepts "Notes"
> \accepts "Voice"
>   }
>   \context {
> \Staff
> \accepts "Container"
>   }
>   \context {
> \Dynamics
> \accepts "Container"
>   }
> }
>
> toDyn =
> #(define-music-function (music1 music2) (ly:music? ly:music?)
>#{
>  << #music1 \new Container \new Notes { \change Container =
> "piano_dynamics" #music2 } >>
>#})
>
> piano_upper = {
>   c'4\p d' e' f'
>   \toDyn g'1 s1\mp
>   g'4\f f' e' d'
>   c'1
> }
>
> piano_lower = {
>   \clef bass
>   c1
>   g,1
>   g,1
>   c1
> }
>
> \score {
>   <<
> \new PianoStaff <<
>   \new Staff \piano_upper
>   \new Dynamics \new Container = "piano_dynamics" s1
>   \new Staff \piano_lower
> >>
>   >>
>   %%%  layout mod to show the centred dynamics
>   \layout {
> \context {
>   \PianoStaff
>   \override VerticalAxisGroup.staff-staff-spacing.padding = #10
> }
>   }
> }
> %%%
>
> Question: Can the interface be made into a \tweak-able function, where the
> parameters are [only] the name of the target context and the music being
> sent there?
>
> Very exciting!
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>
>

-- 
www.martinrinconbotero.com


Re: Spreadsheet - Python – Ly

2020-11-20 Thread Martín Rincón Botero
sorry, group_by_measure()

www.martinrinconbotero.com
On 20. Nov 2020, 19:22 +0100, Maximilian Marcoll , wrote:
>
> > > Wouldn’t you just put each measure in a separate cell, so that a cell in 
> > > column 227 corresponds to measure 227? Deleting the corresponding column 
> > > would delete the measure, wouldn’t it?. Or do you have a different 
> > > structure for the Excel spreadsheet in mind?
>
> That’s exactly what I had in mind.
>
> (Sorry, I thought you meant the “make”-approach as an alternative rather than 
> an extension to this idea.)
>
> I’m experimenting with the spreadsheet-python-appoach atm and it looks quite 
> promising.
>
> M
>
> __
> http://www.marcoll.de
>
> subscribe to newsletter
>
> > On 20 Nov 2020, at 19:15, Martín Rincón Botero 
> >  wrote:
> >
> > Hi Maximilian,
> >
> > after having failed at the beginning with abjad (it’s looking better now) I 
> > programmed some functions in Python to also be able to access instruments 
> > and measures. For measures, I made a function that simply looks for | and 
> > gives you back whatever is between | as a list. The Excel approach didn’t 
> > occur to me. Wouldn’t you just put each measure in a separate cell, so that 
> > a cell in column 227 corresponds to measure 227? Deleting the corresponding 
> > column would delete the measure, wouldn’t it?. Or do you have a different 
> > structure for the Excel spreadsheet in mind?
> >
> > Best regards,
> > Martín.
> >
> > www.martinrinconbotero.com
> > On 20. Nov 2020, 17:51 +0100, Maximilian Marcoll , 
> > wrote:
> > > Hi!
> > >
> > > thank you!
> > > That looks awesome. But what do you do if you want to delete measure 227 
> > > entirely?
> > >
> > > Cheers
> > > M
> > >
> > >
> > >
> > >
> > > __
> > > http://www.marcoll.de
> > >
> > > subscribe to newsletter
> > >
> > > > On 20 Nov 2020, at 17:39, J Martin Rushton 
> > > >  wrote:
> > > >
> > > > Hi Max,
> > > >
> > > > Caveat: I've not used this personally, my scores are not complex enough.
> > > >
> > > > One of the standard ways of handling this is to use make 
> > > > (https://www.gnu.org/software/make).  Basically you write a makefile 
> > > > which tells make which files to compile and use that as the input to 
> > > > Lilypond.  Make is clever though, and can select files on the basis of 
> > > > the last time they were changed, or if given parameters (for instance 
> > > > to generate part scores).
> > > >
> > > > See 
> > > > http://lilypond.org/doc/v2.21/Documentation/usage/make-and-makefiles 
> > > > for Lily's take on this.
> > > >
> > > > Regards,
> > > > Martin
> > > >
> > > > On 20/11/2020 16:03, Maximilian Marcoll wrote:
> > > > > Hi Everyone,
> > > > > Over last last couple of days I have been thinking about possible 
> > > > > ways to organize the engraving of a rather large piece (~45+ staves) 
> > > > > in Lilypond.
> > > > > My problem is that the piece in question might undergo significant 
> > > > > changes in the future, so I need access to both instrument-wise and 
> > > > > measure-wise organisation simultaneously.
> > > > > I am considering to enter the entire music in a huge excel 
> > > > > spreadsheet and to write a (python)-script to create one .ly file per 
> > > > > voice,
> > > > > storing all the music in variables that can be used both in the full 
> > > > > score and the individual parts.
> > > > > I’m having difficulties imagining that I am the first one to have 
> > > > > this idea, but couldn’t find anything online.
> > > > > Any hints?
> > > > > Thanks a lot!
> > > > > Cheers,
> > > > > Max
> > > > > __
> > > > > http://www.marcoll.de <http://www.marcoll.de>
> > > > > subscribe to newsletter <http://eepurl.com/cKUzLX>
> > > >
> > > > --
> > > > J Martin Rushton MBCS
> > > >
> > >
>


Re: Spreadsheet - Python – Ly

2020-11-20 Thread Martín Rincón Botero
I see. Abjad has group_by_measures() as well if you’d like to go down that road.

www.martinrinconbotero.com
On 20. Nov 2020, 19:22 +0100, Maximilian Marcoll , wrote:
>
> > > Wouldn’t you just put each measure in a separate cell, so that a cell in 
> > > column 227 corresponds to measure 227? Deleting the corresponding column 
> > > would delete the measure, wouldn’t it?. Or do you have a different 
> > > structure for the Excel spreadsheet in mind?
>
> That’s exactly what I had in mind.
>
> (Sorry, I thought you meant the “make”-approach as an alternative rather than 
> an extension to this idea.)
>
> I’m experimenting with the spreadsheet-python-appoach atm and it looks quite 
> promising.
>
> M
>
> __
> http://www.marcoll.de
>
> subscribe to newsletter
>
> > On 20 Nov 2020, at 19:15, Martín Rincón Botero 
> >  wrote:
> >
> > Hi Maximilian,
> >
> > after having failed at the beginning with abjad (it’s looking better now) I 
> > programmed some functions in Python to also be able to access instruments 
> > and measures. For measures, I made a function that simply looks for | and 
> > gives you back whatever is between | as a list. The Excel approach didn’t 
> > occur to me. Wouldn’t you just put each measure in a separate cell, so that 
> > a cell in column 227 corresponds to measure 227? Deleting the corresponding 
> > column would delete the measure, wouldn’t it?. Or do you have a different 
> > structure for the Excel spreadsheet in mind?
> >
> > Best regards,
> > Martín.
> >
> > www.martinrinconbotero.com
> > On 20. Nov 2020, 17:51 +0100, Maximilian Marcoll , 
> > wrote:
> > > Hi!
> > >
> > > thank you!
> > > That looks awesome. But what do you do if you want to delete measure 227 
> > > entirely?
> > >
> > > Cheers
> > > M
> > >
> > >
> > >
> > >
> > > __
> > > http://www.marcoll.de
> > >
> > > subscribe to newsletter
> > >
> > > > On 20 Nov 2020, at 17:39, J Martin Rushton 
> > > >  wrote:
> > > >
> > > > Hi Max,
> > > >
> > > > Caveat: I've not used this personally, my scores are not complex enough.
> > > >
> > > > One of the standard ways of handling this is to use make 
> > > > (https://www.gnu.org/software/make).  Basically you write a makefile 
> > > > which tells make which files to compile and use that as the input to 
> > > > Lilypond.  Make is clever though, and can select files on the basis of 
> > > > the last time they were changed, or if given parameters (for instance 
> > > > to generate part scores).
> > > >
> > > > See 
> > > > http://lilypond.org/doc/v2.21/Documentation/usage/make-and-makefiles 
> > > > for Lily's take on this.
> > > >
> > > > Regards,
> > > > Martin
> > > >
> > > > On 20/11/2020 16:03, Maximilian Marcoll wrote:
> > > > > Hi Everyone,
> > > > > Over last last couple of days I have been thinking about possible 
> > > > > ways to organize the engraving of a rather large piece (~45+ staves) 
> > > > > in Lilypond.
> > > > > My problem is that the piece in question might undergo significant 
> > > > > changes in the future, so I need access to both instrument-wise and 
> > > > > measure-wise organisation simultaneously.
> > > > > I am considering to enter the entire music in a huge excel 
> > > > > spreadsheet and to write a (python)-script to create one .ly file per 
> > > > > voice,
> > > > > storing all the music in variables that can be used both in the full 
> > > > > score and the individual parts.
> > > > > I’m having difficulties imagining that I am the first one to have 
> > > > > this idea, but couldn’t find anything online.
> > > > > Any hints?
> > > > > Thanks a lot!
> > > > > Cheers,
> > > > > Max
> > > > > __
> > > > > http://www.marcoll.de <http://www.marcoll.de>
> > > > > subscribe to newsletter <http://eepurl.com/cKUzLX>
> > > >
> > > > --
> > > > J Martin Rushton MBCS
> > > >
> > >
>


Re: Spreadsheet - Python – Ly

2020-11-20 Thread Martín Rincón Botero
Hi Maximilian,

after having failed at the beginning with abjad (it’s looking better now) I 
programmed some functions in Python to also be able to access instruments and 
measures. For measures, I made a function that simply looks for | and gives you 
back whatever is between | as a list. The Excel approach didn’t occur to me. 
Wouldn’t you just put each measure in a separate cell, so that a cell in column 
227 corresponds to measure 227? Deleting the corresponding column would delete 
the measure, wouldn’t it?. Or do you have a different structure for the Excel 
spreadsheet in mind?

Best regards,
Martín.

www.martinrinconbotero.com
On 20. Nov 2020, 17:51 +0100, Maximilian Marcoll , wrote:
> Hi!
>
> thank you!
> That looks awesome. But what do you do if you want to delete measure 227 
> entirely?
>
> Cheers
> M
>
>
>
>
> __
> http://www.marcoll.de
>
> subscribe to newsletter
>
> > On 20 Nov 2020, at 17:39, J Martin Rushton  
> > wrote:
> >
> > Hi Max,
> >
> > Caveat: I've not used this personally, my scores are not complex enough.
> >
> > One of the standard ways of handling this is to use make 
> > (https://www.gnu.org/software/make).  Basically you write a makefile which 
> > tells make which files to compile and use that as the input to Lilypond.  
> > Make is clever though, and can select files on the basis of the last time 
> > they were changed, or if given parameters (for instance to generate part 
> > scores).
> >
> > See http://lilypond.org/doc/v2.21/Documentation/usage/make-and-makefiles 
> > for Lily's take on this.
> >
> > Regards,
> > Martin
> >
> > On 20/11/2020 16:03, Maximilian Marcoll wrote:
> > > Hi Everyone,
> > > Over last last couple of days I have been thinking about possible ways to 
> > > organize the engraving of a rather large piece (~45+ staves) in Lilypond.
> > > My problem is that the piece in question might undergo significant 
> > > changes in the future, so I need access to both instrument-wise and 
> > > measure-wise organisation simultaneously.
> > > I am considering to enter the entire music in a huge excel spreadsheet 
> > > and to write a (python)-script to create one .ly file per voice,
> > > storing all the music in variables that can be used both in the full 
> > > score and the individual parts.
> > > I’m having difficulties imagining that I am the first one to have this 
> > > idea, but couldn’t find anything online.
> > > Any hints?
> > > Thanks a lot!
> > > Cheers,
> > > Max
> > > __
> > > http://www.marcoll.de 
> > > subscribe to newsletter 
> >
> > --
> > J Martin Rushton MBCS
> >
>


Re: The Guide to getting Point and Click going with Gvim under Ubuntu 18

2020-11-02 Thread Martín Rincón Botero
Hi David,
> I see the problem, but I think that solution is unwise as it leaves
> a redundant file in the user's home directory, which they may fear
> removing.

Oh, I see. I didn’t know that file could be safely removed.
> This script then has to be maintained, and it also makes it less obvious
> how to adjust the process for any differences between systems. I think
> the process is mysterious enough without hiding it any more

Right. I forgot that the steps for Fedora are slightly different. Out of 
curiosity, do Mac and Windows users have to stick to Frescobaldi for Point & 
Click? They’re not even mentioned in the Usage Manual.
> Debian 10/buster with Xpdf and emacs running on a 2000-vintage
> Pentium III at 650MHz in 512MB memory took less than a second to
> open the source at the first click, and thereafter serviced each
> click in 0.5 secs, just so long as the new target position is in
> the displayed window

Wow, that’s old hardware! In my Asus laptop from 2017, Atom takes a while to 
open the first time. After that, each click takes around 0.5 secs or less I 
would say. It’s not something of great concern to me, but it’s noticeable, 
especially after being used to Frescobaldi’s immediate reposition of the 
cursor. Perhaps it has to do with Atom (not the lightest editor around). Were 
Atom not so pleasing to the eye, I would probably try with another one to 
compare speed ;-).

www.martinrinconbotero.com
On 2. Nov 2020, 03:28 +0100, lilypond-user@gnu.org, wrote:
>
> I see the problem, but I think that solution is unwise as it leaves
> a redundant file in the user's home directory, which they may fear
> removing.


Re: Lilypond and Python

2020-11-01 Thread Martín Rincón Botero
Hi Stefan,

it seems the updating process failed before having installed a newer version of 
pip (it says “command not found”). I would stick to learning how to install 
stuff using pip (with which you can install many modules for Python, not only 
abjad). If you’re using Ubuntu, reinstalling pip is a matter of:

sudo apt update
sudo apt install python3-pip

www.martinrinconbotero.com
On 1. Nov 2020, 16:24 +0100, Stefan Thomas , wrote:
> Dear Dave,
> unfortunately I have no idea how I can install abjad. I wasn't able to do it 
> with pip, can I do it in another way?
>
> > Am So., 1. Nov. 2020 um 15:50 Uhr schrieb Dave Seidel 
> > :
> > > Hi Stefan,
> > >
> > > I suppose that the root user does not have pip in its path. I advise not 
> > > worrying about it -- the older version of pip is fully functional and 
> > > should not affect your ability to install and run what you need.
> > >
> > > - Dave
> > >
> > > > On Sun, Nov 1, 2020 at 9:38 AM Stefan Thomas 
> > > >  wrote:
> > > > > Dear Dave,
> > > > > thanks for Your soon reply.
> > > > > When I type
> > > > > > sudo pip install --upgrade pip
> > > > > I get
> > > > > > sudo: pip: command not found
> > > > > I don't know how to update pip.
> > > > > Do You have a hint?
> > > > > All the best,
> > > > > Stefan
> > > > >
> > > > >
> > > > >
> > > > > > Am So., 1. Nov. 2020 um 14:15 Uhr schrieb Dave Seidel 
> > > > > > :
> > > > > > > Try upgrading pip with sudo (i.e., "sudo pip install --upgrade 
> > > > > > > pip"), though it is not really necessary to run abjab or anything 
> > > > > > > else, which seems to have installed properly.
> > > > > > >
> > > > > > > - Dave
> > > > > > >
> > > > > > > > On Sun, Nov 1, 2020 at 8:01 AM Stefan Thomas 
> > > > > > > >  wrote:
> > > > > > > > > Dear community,
> > > > > > > > > I tried to install abjad with
> > > > > > > > > pip install abjad
> > > > > > > > > And I got:
> > > > > > > > > > Collecting abjad
> > > > > > > > > >  Using cached 
> > > > > > > > > > https://files.pythonhosted.org/packages/f7/2f/23b14c7ff2ca1a5728e81fc1b5960374ec444efad43b197dca009
> > > > > > > > > > 53d90cc/Abjad-3.1.tar.gz
> > > > > > > > > > Could not import setuptools which is required to install 
> > > > > > > > > > from a source distribution.
> > > > > > > > > > Please install setuptools.
> > > > > > > > > > You are using pip version 9.0.3, however version 20.2.4 is 
> > > > > > > > > > available.
> > > > > > > > > > You should consider upgrading via the 'pip install 
> > > > > > > > > > --upgrade pip' command.
> > > > > > > > > And after
> > > > > > > > > > pip install --upgrade pip
> > > > > > > > > I've got
> > > > > > > > > > Collecting pip
> > > > > > > > > >  Using cached 
> > > > > > > > > > https://files.pythonhosted.org/packages/cb/28/91f26bd088ce8e22169032100d4260614fc3da435025ff389ef1d
> > > > > > > > > > 396a433/pip-20.2.4-py2.py3-none-any.whl
> > > > > > > > > > Installing collected packages: pip
> > > > > > > > > >  Found existing installation: pip 9.0.3
> > > > > > > > > >    Uninstalling pip-9.0.3:
> > > > > > > > > >  Successfully uninstalled pip-9.0.3
> > > > > > > > > >  Rolling back uninstall of pip
> > > > > > > > > > Exception:
> > > > > > > > > > Traceback (most recent call last):
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/basecommand.py",
> > > > > > > > > >  line 215, in main
> > > > > > > > > >    status = self.run(options, args)
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/commands/install.py",
> > > > > > > > > >  line 342, in run
> > > > > > > > > >    prefix=options.prefix_path,
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/req/req_set.py",
> > > > > > > > > >  line 784, in install
> > > > > > > > > >    **kwargs
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/req/req_install.py",
> > > > > > > > > >  line 851, in install
> > > > > > > > > >    self.move_wheel_files(self.source_dir, root=root, 
> > > > > > > > > > prefix=prefix)
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/req/req_install.py",
> > > > > > > > > >  line 1064, in move_wheel_files
> > > > > > > > > >    isolated=self.isolated,
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/wheel.py",
> > > > > > > > > >  line 345, in move_wheel_files
> > > > > > > > > >    clobber(source, lib_dir, True)
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/wheel.py",
> > > > > > > > > >  line 316, in clobber
> > > > > > > > > >    ensure_dir(destdir)
> > > > > > > > > >  File 
> > > > > > > > > > "/home/stefan/.local/lib/python2.7/site-packages/pip/utils/__init__.py",
> > > > > > > > > >  line 83, in ensure_dir
> > > > > > > > > >    os.makedirs(path)
> > > > > > > > > >  File "/usr/lib/p

Re: Lilypond and Python

2020-11-01 Thread Martín Rincón Botero
Hi Stefan. I remember having to make my version of Python 3 (3.6 I think) the 
system default (yours is 2.7) for abjad to work. I also remember having to 
install some things as root for it to work (you have a “Permission Denied” 
somewhere...). I read somewhere it’s not recommendable to use root with pip, 
but it worked with no discernible side effects.

Cheers,
Martín.

www.martinrinconbotero.com
On 1. Nov 2020, 14:01 +0100, Stefan Thomas , wrote:
> Dear community,
> I tried to install abjad with
> pip install abjad
> And I got:
> > Collecting abjad
> >  Using cached 
> > https://files.pythonhosted.org/packages/f7/2f/23b14c7ff2ca1a5728e81fc1b5960374ec444efad43b197dca009
> > 53d90cc/Abjad-3.1.tar.gz
> > Could not import setuptools which is required to install from a source 
> > distribution.
> > Please install setuptools.
> > You are using pip version 9.0.3, however version 20.2.4 is available.
> > You should consider upgrading via the 'pip install --upgrade pip' command.
> And after
> > pip install --upgrade pip
> I've got
> > Collecting pip
> >  Using cached 
> > https://files.pythonhosted.org/packages/cb/28/91f26bd088ce8e22169032100d4260614fc3da435025ff389ef1d
> > 396a433/pip-20.2.4-py2.py3-none-any.whl
> > Installing collected packages: pip
> >  Found existing installation: pip 9.0.3
> >    Uninstalling pip-9.0.3:
> >  Successfully uninstalled pip-9.0.3
> >  Rolling back uninstall of pip
> > Exception:
> > Traceback (most recent call last):
> >  File "/home/stefan/.local/lib/python2.7/site-packages/pip/basecommand.py", 
> > line 215, in main
> >    status = self.run(options, args)
> >  File 
> > "/home/stefan/.local/lib/python2.7/site-packages/pip/commands/install.py", 
> > line 342, in run
> >    prefix=options.prefix_path,
> >  File "/home/stefan/.local/lib/python2.7/site-packages/pip/req/req_set.py", 
> > line 784, in install
> >    **kwargs
> >  File 
> > "/home/stefan/.local/lib/python2.7/site-packages/pip/req/req_install.py", 
> > line 851, in install
> >    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
> >  File 
> > "/home/stefan/.local/lib/python2.7/site-packages/pip/req/req_install.py", 
> > line 1064, in move_wheel_files
> >    isolated=self.isolated,
> >  File "/home/stefan/.local/lib/python2.7/site-packages/pip/wheel.py", line 
> > 345, in move_wheel_files
> >    clobber(source, lib_dir, True)
> >  File "/home/stefan/.local/lib/python2.7/site-packages/pip/wheel.py", line 
> > 316, in clobber
> >    ensure_dir(destdir)
> >  File 
> > "/home/stefan/.local/lib/python2.7/site-packages/pip/utils/__init__.py", 
> > line 83, in ensure_dir
> >    os.makedirs(path)
> >  File "/usr/lib/python2.7/os.py", line 157, in makedirs
> >    mkdir(name, mode)
> > OSError: [Errno 13] Permission denied: 
> > '/usr/local/lib/python2.7/dist-packages/pip-20.2.4.dist-info'
> > You are using pip version 9.0.3, however version 20.2.4 is available.
> > You should consider upgrading via the 'pip install --upgrade pip' command.
> What can I do know?
> Thanks for Your help,
> Stefan
>
> > Hey Megan,
> >
> > I use a different approach, but have you checked Abjad already? 
> > https://abjad.github.io/index.html
> >
> > Cheers
> > Martín.
> >
> > www.martinrinconbotero.com
> > On 31. Oct 2020, 18:51 +0100, Megan Aldrich , wrote:
> > > Hello,
> > >
> > > Is there a package that would allow me to output in a lilypond format 
> > > from python? I found something through google searches and it’s poorly 
> > > documented and hard to use. Is there something that you recommend using?
> > >
> > > Meg
> > > --
> > > Megan Aldrich
> > >
> > > Connecticut College
>


Re: The Guide to getting Point and Click going with Gvim under Ubuntu 18

2020-11-01 Thread Martín Rincón Botero
Thank you very much, Andrew, for this guide! It works! My pdf viewer is
Foxit Reader so after installing the gnome-open program and checking it
works, I didn't have to follow any other steps. I wish this guide can be
merged with the current guide in the Usage Manual. Just one small
suggestion to make this guide even more idiot-proof (at least for the steps
I did) would be to make this step a bit more verbose: "Create the file
'lilypond-invoke-editor.desktop' *f. ex. in your home folder*". The next
command assumes that you created the file via terminal and you moved to
that location with the terminal. In the case that you created that file
using GEdit (like I did) and followed the instructions in the Usage Manual
(where it mentions /tmp as folder), the next command won't really work
unless you're already there in the terminal (where I wasn't, since a
terminal opens by default with the home directory). This might be obvious
for people who do everything via terminal, but not for people who prefer
using graphical applications like GEdit. Is it maybe possible to create a
script that automates all this? Perhaps the Gvim and Evince parts can be
left out of it, but I have the feeling that what I just had to do can be
made into a script. I already can do some scripting in Python, but such a
script would need the user to have Python installed. So a Bash script from
someone acquainted with Bash would be very welcome.

Atom works very well even with large files, however there's a small lag
with point & click (even with small files). Since Frescobaldi doesn't have
this Point & Click problem even with large files, I assume this small lag
has more to do with the fact that there are two applications involved (Atom
and Foxit) rather than one (Frescobaldi). Am I right? This Point & Click
penalty is something that I'm willing to trade for the moment: it's less
than Frescobaldi hanging while trying to move the cursor, let alone for
trying to edit a large file. I hope this performance issue can be fixed in
Frescobaldi eventually (although Atom has other advantages like Column
Selection...).

Cheers,
Martín.

Am So., 1. Nov. 2020 um 05:13 Uhr schrieb Andrew Bernard <
andrew.bern...@gmail.com>:

> [A slightly older screed. Stil works for Ubunto 20. Using Atom is matter
> of simple substitution.]
>
>
>
> The Guide to getting Point and Click going with Gvim under Ubuntu 18
>
> --
>
> The NR leaves out some important information about how to configure a
> Ubuntu
> system to use Gvim for point and click from Lilypond PDF files. Where
> the NR is
> substantially correct, that information is copied here.
>
>
> Requirements
> 
>
> Ubuntu 18.10
> Document Viewer (evince)
> gvim version 8.0 (vim-gtk3 package)
> [assumes bash shell]
>
>
> Setting the EDITOR variable
> ---
>
> Lilypond uses the environment variable EDITOR to select which editor to
> use to
> display point and click links. For gvim, simply use the value 'gvim':
>
> export EDITOR=gvim
>
> Setting LYEDITOR is not required.
>
> You can start evince from a terminal command to view a PDF. But if you
> want to
> click on a PDF in GNOME Nautilus to view it then just exporting this
> variable
> from the various bash startup files is inadequate. Gnome is started by
> Xsession
> in X11 before terminals and shells. Therefore it is unable to see
> environment
> variables set in .bashrc (or .bash_profile, etc). To resolve this matter,
> recall that Xsession uses the startup file $HOME/.xsessionrc. For
> environment
> variables that are to be shared between GNOME applications and terminal
> shells,
> do the following. Create a file for variable declarations, of arbitrary
> name.
> Add the EDITOR setting to that file:
>
>   $ echo 'export EDITOR=gvim' > ~/.my_env_vars
>
> Then edit ~/.xsessionrc to contain:
>
> if [ -f ~/.my_env_vars ]; then
>  . ~/.my_env_vars
> fi
>
> Now also add these same lines to ~/.bashrc. Some like to use
> .bash_profile or
> other mechanisms, but the principle is the same. Manage any shared
> variables
> that Nautilus and a bash shell both need in this third file. To make
> this take
> effect, logout and login again so that a new Xsession is started.
>
>
> Installing Gvim
> ---
>
> Gvim is in the following package, not a package called gvim.
>
> # apt install vim-gtk3
>
>
> Configuring the GNOME 3 Desktop
> ---
>
> Create the file 'lilypond-invoke-editor.desktop':
>
> [Desktop Entry]
> Version=1.0
> Name=lilypond-invoke-editor
> GenericName=Textedit URI handler
> Comment=URI handler for textedit:
> Exec=lilypond-invoke-editor %u
> Terminal=false
> Type=Application
> MimeType=x-scheme-handler/textedit;
> Categories=Editor
> NoDisplay=true
>
> Run:
>
> $ xdg-desktop-menu install ./lilypond-invoke-editor.desktop
> $ xdg-mime default lilypond-invoke-editor.desktop x-scheme-handler/textedit
>
> 

Re: Point & Click with Atom

2020-11-01 Thread Martín Rincón Botero
Thank you all for your helpful answers!

@Federico: I hope, you don’t take my criticism personally! I see Andrew has 
written upon what you wrote. That’s great! I’ll have to check how I installed 
Atom. If it’s in Ubuntu’s software center, I probably installed it from there 
(so it’s a snap, I suppose). Does it make any difference in the steps? And yes, 
Lilypond 2.20.

@Andrew: I’ll try your Ubuntu guide later. Thank you! I’m using Ubuntu 18.04., 
so your instructions should work.

Best regards,
Martín.

www.martinrinconbotero.com
On 1. Nov 2020, 11:03 +0100, Wols Lists , wrote:
> On 01/11/20 02:13, David Wright wrote:
> > If one
> > deals only with graphical applications, there is almost no scope
> > for a shell to make an appearance at all, so it seems strange, to
> > some, to involve the shell at login time.
>
> AIUI, the problem is made worse by the fact that - if you log in at the
> gui - the shell doesn't get invoked AT ALL until it's needed to run the
> command, at which point it's too late.
>
> Catch 22 - the shell gets run after the command is called, but the
> command needs the shell running first so the command-line knows where to
> find the command!
>
> Cheers,
> Wol
>


Re: Lilypond and Python

2020-10-31 Thread Martín Rincón Botero
Hey Megan,

I use a different approach, but have you checked Abjad already? 
https://abjad.github.io/index.html

Cheers
Martín.

www.martinrinconbotero.com
On 31. Oct 2020, 18:51 +0100, Megan Aldrich , wrote:
> Hello,
>
> Is there a package that would allow me to output in a lilypond format from 
> python? I found something through google searches and it’s poorly documented 
> and hard to use. Is there something that you recommend using?
>
> Meg
> --
> Megan Aldrich
>
> Connecticut College


Re: Point & Click with Atom

2020-10-31 Thread Martín Rincón Botero
> Did you try to do what the docs say?

Because the very beginning of the documentation is not clear as to what to do 
with the export line, I didn’t follow the steps for Gnome3. I’ll try adding 
that line to .bashrc and follow the Gnome3 steps parallelly. If I succeed, I’ll 
try writing a small guide for Ubuntu. The documentation is so poor, I’m 
surprised anyone can make Point & Click work on any OS just by reading that. 
Perhaps I’m just dumb.

www.martinrinconbotero.com
On 31. Oct 2020, 18:39 +0100, Henning Hraban Ramm , wrote:
>
> Did you try to do what the docs say?


Re: Point & Click with Atom

2020-10-31 Thread Martín Rincón Botero
Dear Henning,

thank you for your answer. I don't think I understand correctly. I open a
terminal and type export LYEDITOR=atom, hit Enter and then write something
like lilypond myfile.ly? If it works (I just tried that and it didn't), I
add the export line to .bashrc and then follow the steps in the Manual for
Gnome 3 (I'm using Ubuntu 18.04)?

Am Sa., 31. Okt. 2020 um 18:03 Uhr schrieb Henning Hraban Ramm <
lilypon...@fiee.net>:

>
> > Am 31.10.2020 um 17:45 schrieb Martín Rincón Botero <
> martinrinconbot...@gmail.com>:
> >
> > I went over the Usage Manual for trying to configure Point & Click so
> that I can use it with Atom (as much as I like Frescobaldi, its poor
> performance with large scores makes it unusable after a certain number of
> lines of code). The usage manual
> http://lilypond.org/doc/v2.20/Documentation/usage/configuring-the-system-for-point-and-click
> says to "simply" write this line export LYEDITOR=atom, but doesn't say
> where. After that I suppose I can go to the GNOME 3 steps and follow them,
> but since those steps don't mention any particular editor, I guess I should
> first know what to do with said export line.
>
> Try if it works in your shell (e.g. bash) before you call lilypond.
>
> If it works, you should add it to the startup file of your default shell,
> e.g. .bashrc or .bash_profile
>
> Hraban
>


-- 
www.martinrinconbotero.com


Point & Click with Atom

2020-10-31 Thread Martín Rincón Botero
Hello,

I went over the Usage Manual for trying to configure Point & Click so that
I can use it with Atom (as much as I like Frescobaldi, its poor performance
with large scores makes it unusable after a certain number of lines of
code). The usage manual
http://lilypond.org/doc/v2.20/Documentation/usage/configuring-the-system-for-point-and-click
says to "simply" write this line export LYEDITOR=atom, but doesn't say
where. After that I suppose I can go to the GNOME 3 steps and follow them,
but since those steps don't mention any particular editor, I guess I should
first know what to do with said export line.

Best regards,
Martín.




-- 
www.martinrinconbotero.com


Re: \unfoldRepeats

2020-10-28 Thread Martín Rincón Botero
> I think the fact that a person is using Lilypond means they want a
> properly-printed score, and making the effort to print a nice
> score implies a planned live performance. Which (in my mind)
> allows Lilypond’s MIDI into the “mere proof of concept” category.

In my opinion, every feature that can be improved in Lilypond is worth 
improving.

www.martinrinconbotero.com
On 28. Oct 2020, 18:08 +0100, David Rogers , wrote:
>
> real


Re: LilyPond learning curve (was: feasibilty question: simple GUI for web-based Lilypond instance)

2020-10-25 Thread Martín Rincón Botero
> If I ever wil need a GUI experience I want a real GUI centered program
> like Musescore, Sibelius, Finale, or Dorico (I have not yet decided which
> one to go for.)

I have experience mostly with Sibelius and Finale, and since I switched to 
Ubuntu recently, also with MuseScore. I wouldn’t recommend Finale at all. It 
requires the most manual tweaks of all three. If you’re used to Lilypond, I 
think you would be very irritated ;-). Sibelius is in general an excellent 
choice (except for its disenchanting Opus font): the things that it gets wrong 
in terms of spacing can be easily and quickly corrected with two clicks. I read 
that even that’s been automated in the most recent version, so the layout is 
probably very good by default. More accidental rules, like Lilypond has, is 
something I really miss in Sibelius.

www.martinrinconbotero.com
On 25. Oct 2020, 20:02 +0100, Martin Tarenskeen , 
wrote:
>
>
> On Sun, 25 Oct 2020, Martín Rincón Botero wrote:
>
> > I don't know if you would call it a "GUI experience
> >
> >
> > I would. I just downloaded Denemo and tried it once again. It’s a horrible 
> > experience. Sorry.
>
> I have tried denemo in the past several times. I never managed to
> understand the workflow.
>
> If I ever wil need a GUI experience I want a real GUI centered program
> like Musescore, Sibelius, Finale, or Dorico (I have not yet decided which
> one to go for.)
>
> Everytime I keep going back to my text editor (vim) to write my LilyPond
> scores, or Frescobaldi if I need more luxury. Works best and fastest for
> me.
>
> I have a simple texteditor even in my phone - I can write scores anywhere.
>
> --
>
> MT


Re: LilyPond learning curve (was: feasibilty question: simple GUI for web-based Lilypond instance)

2020-10-25 Thread Martín Rincón Botero
> I don't know if you would call it a "GUI experience

I would. I just downloaded Denemo and tried it once again. It’s a horrible 
experience. Sorry.

www.martinrinconbotero.com
On 25. Oct 2020, 18:41 +0100, Richard Shann , wrote:
>
> the


Re: LilyPond learning curve (was: feasibilty question: simple GUI for web-based Lilypond instance)

2020-10-25 Thread Martín Rincón Botero
> I wonder if you realise that you do not have to look at "Denemo's GUI"
> - that is, you can set all of the menus, palettes etc hidden and just
> use the pc keyboard and a MIDI keyboard to enter notes, rests etc and
> then press a key to export the LilyPond syntax for the part you just
> entered.

I didn’t know that. I guess I’ll try that later, although without palettes I 
fail to imagine what the “GUI experience” would be.
> The third factor is that there’s a large class of mistakes that you simply 
> could not make in Finale or Sibelius: mismatched braces, beams or slurs that 
> you forget to close, notes entered in the wrong octave, etc.

Oh, yes. That’s a huge factor as well. GUIs really do a great job at preventing 
you from making so many mistakes.

www.martinrinconbotero.com
On 25. Oct 2020, 18:02 +0100, Richard Shann , wrote:
>
> I wonder if you realise that you do not have to look at "Denemo's GUI"
> - that is, you can set all of the menus, palettes etc hidden and just
> use the pc keyboard and a MIDI keyboard to enter notes, rests etc and
> then press a key to export the LilyPond syntax for the part you just
> entered.


Re: LilyPond learning curve (was: feasibilty question: simple GUI for web-based Lilypond instance)

2020-10-25 Thread Martín Rincón Botero
>
> I've never been sure why someone hasn't shown an interest in doing
> that...
>

I myself have to respectfully say that I can't stand looking at Denemo's
GUI. I haven't been able to keep it installed for more than 30 seconds for
this reason.

Am So., 25. Okt. 2020 um 17:04 Uhr schrieb Richard Shann <
rich...@rshann.plus.com>:

> On Sun, 2020-10-25 at 10:58 -0400, Marc Shepherd wrote:
> > LP is indeed better — in that its default decisions are almost always
> > better than Finale’s default. The price you pay is that an LP score
> > is considerably more time-consuming to enter. Although I expect to
> > get better at it over time, I don’t think that disadvantage can ever
> > go away entirely.
> There is a way to generate LilyPond syntax for music much faster than
> can be done with the MuseScore, Sib, Fin programs, by the combination
> of entering rhythms followed by MIDI keyboard to add the pitches as in
> the Denemo GUI. The only bit that is lacking in Denemo is export of the
> music in LilyPond syntax to a file - you wouldn't want Denemo's own
> export if you were going to work on the LilyPond syntax by hand - but
> that would be just a short Scheme script once you had decided on your
> work flow.
> I've never been sure why someone hasn't shown an interest in doing
> that...
>
> Richard Shann
>
>
>

-- 
www.martinrinconbotero.com


Re: LilyPond learning curve (was: feasibilty question: simple GUI for web-based Lilypond instance)

2020-10-25 Thread Martín Rincón Botero
>
> The price you pay is that an LP score is considerably more time-consuming
> to enter
>

I feel there are at least two factors that create this situation: the lack
of graphical interface limits the amount of selection tools (you can
basically select what your cursor can select). With more selection tools
that allowed the user to easily copy, paste, cut, insert, attach
articulations to all staves, etc., entering notes in Lilypond would be way
faster. Since I started using Python to help me create Lilypond files, I
can have whatever amount of lists I want (for example one called "tutti")
and use programmatic commands to affect all staves. F. ex.

for staff in tutti:
add_music(staff, "c4. d8 e4 f |")

Where "tutti" is a list, e.g. tutti = [flute, violin, cello] and add_music
is a function I programmed to add more music to the end of the staff
(amongst other I programmed, like copy_bar, insert_bar, etc.).

The other aspect that makes working with Lilypond unnecessarily slow is the
fact that invoking the Lilypond command always processes the whole score
over and over again from scratch. Telling the user that their scores are
gonna take more time to compile every time they enter more music doesn't
sound attractive nor efficient. The alternative, only working on the text
file from beginning to end with no visual feedback to then proceed to
"debug" such file after compiling is not a realistic alternative for the
majority of users. In my Python script I'm using subprocesses in
conjunction with OLL's partial compilation that let me make pdfs page by
page (using pdftk), so that I can only update the page I'm working on
without losing the rest of the pages.

These are the kinds of things I believe we could improve upon more easily
> and quickly (or at least with more obvious incentive?!) if the user base
> was larger. And — like it or not — a real critical mass like that will
> require a GUI.
>

All of this, although it has made my work with Lilypond many times more
efficient, takes the user further away from a more attractive paradigm like
a GUI.

Am So., 25. Okt. 2020 um 16:18 Uhr schrieb Kieren MacMillan <
kieren_macmil...@sympatico.ca>:

> Hi Marc,
>
> > I tried LP several years ago and quickly gave up. I decided to try it
> again because I was frustrated with all of the manual adjustments my Finale
> scores require, and wanted to see if LP could do better.
>
> I used Finale from v1 [!!] in 1988 to Finale 2000. I gave up at that point
> — too many frustrations!! — and started looking for an alternative.
>
> > The price you pay is that an LP score is considerably more
> time-consuming to enter. Although I expect to get better at it over time, I
> don’t think that disadvantage can ever go away entirely.
>
> With Frescobaldi — especially the MIDI keyboard input — I believe I can
> now enter music faster than I ever could in Finale (and I was *very* fast).
> If the music doesn’t repeat at all, I’d say I am 5%-10% faster than I was
> at my Finale peak; when I can reuse material (which is VERY often, in the
> types of music I engrave), that percentage goes up.
>
> Of course, the real savings comes (as you imply) once the data is in: my
> tweaking time is ~5% TOTAL of what I used to put in with Finale (and what I
> still see my colleagues and friends putting in with Fin/Sib/etc., though
> Dorico is much better).
>
> > I am typesetting an opera score, which is clearly not the easiest place
> to start—but that is what I do. I am guessing that whoever designed LP was
> not thinking of orchestral scores
>
> Agreed. As a composer of operas, musicals, orchestra pieces, and other
> large-forces works, I feel your pain!  =)
>
> > some things that ought to be easy (the “MarkLine” concept) are in fact
> quite difficult.
>
> These are the kinds of things I believe we could improve upon more easily
> and quickly (or at least with more obvious incentive?!) if the user base
> was larger. And — like it or not — a real critical mass like that will
> require a GUI.
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>
>

-- 
www.martinrinconbotero.com


Re: Feature request: Alternative G clef

2020-10-24 Thread Martín Rincón Botero
Hi Jean,

thank you for that font showcase! I’ll take a closer look at Profondo. However, 
its overly long bass clef looks quite unappealing to me. I wouldn’t use any of 
the others, as far as I can tell.

About what pairs with what is certainly more of a matter of taste. I find 
Emmentaler’s trill sign proportionally very big: it doesn’t fit well with the 
rest of the ensemble, something that’s more prominent with a font size of 20, 
than with smaller fonts. For the same reason I always tweak it one number 
smaller for font size 20. However, that’s not my point, we already provide an 
alternative C clef, and an alternative percussion clef. We provide four 
different ways of naming a G clef without an actual different G clef being 
used. It looks somewhat random to me.

Martín.
 -- www.martinrinconbotero.com
On 24. Oct 2020, 17:46 +0200, Jean Abou Samra , wrote:
> Le 24/10/2020 à 11:47, Martín Rincón Botero a écrit :
> > Hello all,
> >
> > a few months ago in some forum I found the following snippet of a beautiful 
> > G clef (I think by Pierre Perol-Schneider) that I've been extensively using 
> > since then. Right now in the NR we have \clef G, \clef treble, \clef "G2" 
> > and \clef violin, all producing what seems to be the exact same clef. To 
> > name the exact same clef in so many ways ("G2" strikes me as unnecessary) 
> > doesn't seem to have a reasonable explanation to me. Some clefs have 
> > variants like the C clef (\clef varC). I wish Perol-Schneider's clef could 
> > be considered for inclusion into standard Lilypond, possibly named as "G2" 
> > (which would actually produce a "second" G clef) or as \clef varG. I hope 
> > he doesn't mind that I "re-publish" his code in this mailing list:
> >
> > \version "2.20.0"
> >
> > %% New treble clef defs:
> > #(define-markup-command (G_Score layout props thk mlt) (number? number?)
> >   (interpret-markup layout props
> >    (markup
> >     (#:stencil
> >      (make-path-stencil
> >       '(M  1.117 -2.778
> >         C  0.730 -2.782  0.363 -2.364 0.484 -1.981
> >         C  0.566 -1.641  1.043 -1.540 1.285 -1.786
> >         C  1.504 -1.997  1.418 -2.395 1.141 -2.513
> >         C  0.996 -2.567  0.836 -2.583 1.090 -2.614
> >         C  1.379 -2.673  1.703 -2.559 1.828 -2.278
> >         C  1.969 -1.911  1.820 -1.395 1.766 -1.024
> >         C  1.031 -1.169  0.277 -0.903 0.031 -0.196
> >         C -0.129  0.323 -0.043  0.917 0.250  1.366
> >         C  0.492  1.737  0.832  1.999 1.152  2.300
> >         C  1.070  2.886  1.000  3.468 1.203  4.034
> >         C  1.297  4.292  1.484  4.503 1.680  4.687
> >         C  1.898  4.886  2.117  4.335 2.211  4.062
> >         C  2.398  3.601  2.227  2.839 1.934  2.323
> >         C  1.816  2.105  1.637  1.929 1.457  1.757
> >         C  1.500  1.523  1.539  1.288 1.586  1.054
> >         C  2.117  1.077  2.477  0.792 2.602  0.359
> >         C  2.766 -0.134  2.516 -0.766 1.953 -0.977
> >         C  2.004 -1.423  2.160 -1.927 2.004 -2.313
> >         C  1.902 -2.567  1.656 -2.766 1.379 -2.778
> >         C  1.293 -2.798  1.203 -2.790 1.117 -2.782
> >         M  1.734 -0.919
> >         C  1.621 -0.306  1.574  0.026 1.500  0.464
> >         C  1.164  0.433  0.973  0.066 1.090 -0.220
> >         C  1.141 -0.345  1.223 -0.407 1.359 -0.485
> >         C  1.492 -0.563  1.387 -0.657 1.297 -0.618
> >         C  1.031 -0.509  0.664 -0.188 0.758  0.269
> >         C  0.816  0.569  1.059  0.917 1.398  1.023
> >         C  1.359  1.261  1.332  1.378 1.297  1.612
> >         C  0.887  1.234  0.332  0.753 0.348  0.155
> >         C  0.363 -0.532  0.746 -1.071 1.734 -0.919
> >         M  1.688  0.480
> >         C  1.762  0.105  1.844 -0.509 1.926 -0.880
> >         C  2.656 -0.462  2.438  0.534 1.688  0.480
> >         M  2.016  3.776
> >         C  1.984  4.378  1.691  4.058 1.500  3.706
> >         C  1.313  3.366  1.273  2.894 1.352  2.468
> >         C  1.945  3.066  2.031  3.409 2.016  3.776
> >         Z)
> >        thk mlt mlt #t)
> >
> > clefGScore = \layout {
> >         \context {
> >           \Score
> >           \override Clef.stencil =
> >             #(lambda (grob)
> >                (let* ((sz (ly:grob-property grob 'font-size 0))
> >                       (mlt (magstep sz))
> >                       (glyph (ly:grob-property grob 'glyph-name)))
> >                      (cond
> >                       ((equal? glyph "clefs.G")
> >                        (gro

Re: feasibilty question: simple GUI for web-based Lilypond instance

2020-10-24 Thread Martín Rincón Botero
> This is exactly the kind of thing I’m thinking about!

That’s what I thought :-).
> If there were an open-source version of this, I think it would make huge 
> inroads in the music education field.

Maybe a bit contentious of mine, but why would an open-source license help in 
its success?

Cheers,
Martín.

www.martinrinconbotero.com
On 24. Oct 2020, 16:40 +0200, Kieren MacMillan , 
wrote:
>
> This is exactly the kind of thing I’m thinking about!


Re: Feature request: Alternative G clef

2020-10-24 Thread Martín Rincón Botero
Thank you Simon for your answer. As much as I applaud the efforts for making 
Lilypond work with other fonts, I find it a pity that more glyphs can’t be 
included in the core. It’s not rare to find alternative or “extra” glyphs in 
other fonts either (Maestro, Opus, etc.), so this wouldn’t be the first time 
that happens, nor I can’t see how doing so would discourage inclusion or 
creation of other fonts. The same can be said for all the other glyphs (in the 
percussion section f. ex.) that Emmentaler doesn’t have. Perhaps extending the 
Emmentaler font can’t be a priority right now, which is totally understandable, 
but I would still leave this request open for future consideration.

Best regards,
Martín.

www.martinrinconbotero.com
On 24. Oct 2020, 12:14 +0200, Simon Albrecht , wrote:
> Hi Martín,
>
> On 24.10.20 11:47, Martín Rincón Botero wrote:
> > I wish Perol-Schneider's clef could be considered for inclusion into
> > standard Lilypond, possibly named as "G2" (which would actually
> > produce a "second" G clef) or as \clef varG.
>
>
> two things here: there has been a lot of work to making LilyPond work
> with other music fonts. This seems like it doesn’t have to do with any
> syntactic differentiation but merely with design choices (well, \clef
> "GG" and "tenorG" at least hold some residue of suggesting another
> stylistic context/hinting at the transposing nature). Hence I wouldn’t
> think it should be added concurrently to the LilyPond core.
>
> The naming of \clef "G2" doesn’t mean ‘second G clef’ or ‘alternative’,
> but it means ‘a G clef sitting on the 2nd staff line’ (staff lines
> traditionally being counted from the bottom up). In ancient music, it’s
> customary e.g. to describe the clefs used in a piece as “G2, C2, C3,
> F3”, meaning treble, mezzosoprano, alto, and baritone clefs.
>
> Best, Simon
>


Feature request: Alternative G clef

2020-10-24 Thread Martín Rincón Botero
Hello all,

a few months ago in some forum I found the following snippet of a beautiful
G clef (I think by Pierre Perol-Schneider) that I've been extensively using
since then. Right now in the NR we have \clef G, \clef treble, \clef "G2"
and \clef violin, all producing what seems to be the exact same clef. To
name the exact same clef in so many ways ("G2" strikes me as unnecessary)
doesn't seem to have a reasonable explanation to me. Some clefs have
variants like the C clef (\clef varC). I wish Perol-Schneider's clef could
be considered for inclusion into standard Lilypond, possibly named as "G2"
(which would actually produce a "second" G clef) or as \clef varG. I hope
he doesn't mind that I "re-publish" his code in this mailing list:

\version "2.20.0"

%% New treble clef defs:
#(define-markup-command (G_Score layout props thk mlt) (number? number?)
  (interpret-markup layout props
   (markup
(#:stencil
 (make-path-stencil
  '(M  1.117 -2.778
C  0.730 -2.782  0.363 -2.364 0.484 -1.981
C  0.566 -1.641  1.043 -1.540 1.285 -1.786
C  1.504 -1.997  1.418 -2.395 1.141 -2.513
C  0.996 -2.567  0.836 -2.583 1.090 -2.614
C  1.379 -2.673  1.703 -2.559 1.828 -2.278
C  1.969 -1.911  1.820 -1.395 1.766 -1.024
C  1.031 -1.169  0.277 -0.903 0.031 -0.196
C -0.129  0.323 -0.043  0.917 0.250  1.366
C  0.492  1.737  0.832  1.999 1.152  2.300
C  1.070  2.886  1.000  3.468 1.203  4.034
C  1.297  4.292  1.484  4.503 1.680  4.687
C  1.898  4.886  2.117  4.335 2.211  4.062
C  2.398  3.601  2.227  2.839 1.934  2.323
C  1.816  2.105  1.637  1.929 1.457  1.757
C  1.500  1.523  1.539  1.288 1.586  1.054
C  2.117  1.077  2.477  0.792 2.602  0.359
C  2.766 -0.134  2.516 -0.766 1.953 -0.977
C  2.004 -1.423  2.160 -1.927 2.004 -2.313
C  1.902 -2.567  1.656 -2.766 1.379 -2.778
C  1.293 -2.798  1.203 -2.790 1.117 -2.782
M  1.734 -0.919
C  1.621 -0.306  1.574  0.026 1.500  0.464
C  1.164  0.433  0.973  0.066 1.090 -0.220
C  1.141 -0.345  1.223 -0.407 1.359 -0.485
C  1.492 -0.563  1.387 -0.657 1.297 -0.618
C  1.031 -0.509  0.664 -0.188 0.758  0.269
C  0.816  0.569  1.059  0.917 1.398  1.023
C  1.359  1.261  1.332  1.378 1.297  1.612
C  0.887  1.234  0.332  0.753 0.348  0.155
C  0.363 -0.532  0.746 -1.071 1.734 -0.919
M  1.688  0.480
C  1.762  0.105  1.844 -0.509 1.926 -0.880
C  2.656 -0.462  2.438  0.534 1.688  0.480
M  2.016  3.776
C  1.984  4.378  1.691  4.058 1.500  3.706
C  1.313  3.366  1.273  2.894 1.352  2.468
C  1.945  3.066  2.031  3.409 2.016  3.776
Z)
   thk mlt mlt #t)

clefGScore = \layout {
\context {
  \Score
  \override Clef.stencil =
#(lambda (grob)
   (let* ((sz (ly:grob-property grob 'font-size 0))
  (mlt (magstep sz))
  (glyph (ly:grob-property grob 'glyph-name)))
 (cond
  ((equal? glyph "clefs.G")
   (grob-interpret-markup grob
(markup #:scale(cons mlt mlt)#:G_Score 0 1)))
  ((equal? glyph "clefs.G_change")
   (grob-interpret-markup grob
(markup #:scale(cons mlt mlt)#:G_Score .01 .8)))
  (else (ly:clef::print grob)
   \override ClefModifier.clef-alignments = #'((G 0 . .4))
   % Optional:
   %\override ClefModifier.font-series = #'bold
}
  }
%% defs end.

%% Test:
\clefGScore

This code effectively modifies Emmentaler's G Clef instead of having its
own separate glyph, so that using \clef treble or \clef french produces the
custom clef as output. When using this clef, the following music

{ \clef G
  c'1
  \clef "G2"
  c'1
  \clef violin
  c'1
  \clef french
  c'1
}

looks like this:

[image: image.png]

Cheers,
Martín.

-- 
www.martinrinconbotero.com


Re: feasibilty question: simple GUI for web-based Lilypond instance

2020-10-23 Thread Martín Rincón Botero
Hi Kieren,

I’m haven’t investigated its collaborative capabilities if any, but 
https://www.scorio.com/web/scorio/scorio-music-notator is an online GUI for 
Lilypond. Some of its functionality is only available in the paid version, 
though. Perhaps it’s an alternative.

Cheers,
Martín.

www.martinrinconbotero.com
On 24. Oct 2020, 04:52 +0200, Kieren MacMillan , 
wrote:
> Hi Karlin,
>
> > I'm understanding this use case wants...
> > * No-code GUI music entry
> > * Runs in a web browser
> > * Allows collaborative editing
>
> Right.
>
> > I'm having trouble imagining what "collaborative editing" would look like 
> > in a "No-code GUI." Something like PDF commenting? Has anything like that 
> > ever been seen in the LilyPond ecosystem? Paolo Prete's Spontini-Editor 
> > might be the closest thing I can remember.
>
> I’m thinking of Spontini+Lilybin: there’s a basic Javascript UI to add/delete 
> elements (notes, rests, etc.), on top of a server-based Lilypond instance 
> where the code is saved in successive versions (cf. Lilybin).
>
> 1. The student works on the file for a while by themselves.
> 2. They send me a link to the current version (e.g., 
> guilily.com/wpeouryckjhg/7).
> 3. I log in and edit the file, and sent them back the "current" link (e.g., 
> guilily.com/wpeouryckjhg/9).
> 4. We can both see the current version, and one of us can edit and save a new 
> "current" version.
>
> To my mind, lilybin already solves the "collaborative editing" part 
> sufficiently for my needs (and, I’m guessing, the needs of most music 
> educators I know). The only real gap right now is the GUI. I’m trying to 
> figure out how much work would be required to make a Javascript (or something 
> better?) "app" that edits Lily code.
>
> Thanks,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>


Re: showLastLength/Score.skipTypesetting

2020-10-20 Thread Martín Rincón Botero
Hi Jean,

thank you for your idea with the paper block. Indeed having a separate
paper and header block for these pages is the way to go. I can also add
first-page-number = #myPage and that way it's virtually possible to make a
decent-looking pdf out of individual pages before applying a "refresh all"
Lilypond command if desired. However, if I remove the tempo and time
signature engravers for the page I want, I can't print any tempo or time
signature changes anymore. It would be fine for many pages in many pieces
but not for pieces with tempo and time signature changes. Perhaps it would
be good to know, when using showLastLength/Score.skipTypesetting for
measures other than the first measure, why does Lilypond have to
incorrectly make indentation, print a header, tempo and time signature?
Maybe a simple condition could be added to
showLastLength/Score.skipTypesetting for measure numbers higher than 1? If
yes, I would like to make this a feature request :-).

> PS: There is also a trick to speed up compilation for large scores:
>
> \paper {
>   page-breaking = #ly:minimal-breaking
> }
>
Thanks for the trick. I haven't used that mode yet. Good to know this
speeds up compilation!

Am Di., 20. Okt. 2020 um 14:08 Uhr schrieb Jean Abou Samra <
j...@abou-samra.fr>:

>
> Le 19/10/2020 à 22:44, Martín Rincón Botero a écrit :
>
> Hello Jean,
>
> thank you for your answer. It’s not a critical thing, but since I moved
> all my workflow to Python to be able to use its automating capabilities for
> producing Lilypond files, today I started using OLL’s partial compilation
> together with a couple of subprocesses that are run at the end of the
> Python file (the ones that actually write my Lilypond file), so that with
> the help of partial compilation and a pdf utility, it produces a separate
> partially compiled pdf of only one page (the page I’m working on), then the
> script merges that headerless, indentless pdf with a “memory pdf” (say, the
> first page), so that I can see a single merged pdf with all the music at
> all times, and I only need to compile one page at a time: whenever I need a
> new page I just tell the partial compilation the measure the next page
> begins with and write the page number I want compiled. This pdf “grows” out
> of compiling page by page. This has exponentially increased the efficiency
> of my workflow, since Lilypond’s compilation times get only larger with
> more information, whereas compiling only one page gets done quickly.
> Certainly this pdf is not gonna be the final pdf. When I’m finished, I’ll
> run a full compilation. But it seems to me that to get things done quickly,
> the actual Lilypond command should only be used as a sort of “refresh all
> layout” command. This approach works very well, except for unexisting page
> numbers (basically unimportant for a temporary pdf, although from a user
> perspective you might wonder why partial compilation doesn’t just put the
> page number I manually gave it...), and a tempo and time signature marking
> at the beginning of every page. It’s not the end of the world, because this
> is not a final pdf, but it would be nice if I didn’t have those markings at
> all (to be honest, I don’t like them either when using “plain”
> showLastLength et al. without my Python pipeline, and can’t see any reason
> why they show by default anyways unless the first measure shown has an
> explicit tempo or time signature change).
>
> Other than my way of working with Python, I can see this method as having
> potential for a sort of page by page compilation mode in Frescobaldi, but
> that would need said Lilypond commands to not give extra information to the
> user unless explicitely told to do so.
>
>
> Hello,
>
> This is an interesting workflow; I'll have to think of it.
>
> As mentioned before, you could use the header from this example:
>
> \version "2.23.0"
>
> \paper {
>   print-first-page-number = ##t
> }
>
> \layout {
>   \context {
> \Staff
> \remove Time_signature_engraver
>   }
>   \context {
> \Score
> \remove Metronome_mark_engraver
>   }
> }
>
> {
>   \tempo "Vivace"
>   \time 3/4
>   \key cis \major
>   c'2.\break
>   c'2.
> }
>
> I'd just comment out the header block, reintroducing it later when the
> work is done.
>
> Best,
> Jean
>
> PS: There is also a trick to speed up compilation for large scores:
>
> \paper {
>   page-breaking = #ly:minimal-breaking
> }
>
>
> www.martinrinconbotero.com
> On 19. Oct 2020, 22:11 +0200, Jean Abou Samra 
> , wrote:
>
> Le 19/10/2020 à 17:32, Martín Rincón Botero a écrit :
>
> Hello,
>
> I wanted to ask if there's a way t

Re: showLastLength/Score.skipTypesetting

2020-10-19 Thread Martín Rincón Botero
Hello Jean,

thank you for your answer. It’s not a critical thing, but since I moved all my 
workflow to Python to be able to use its automating capabilities for producing 
Lilypond files, today I started using OLL’s partial compilation together with a 
couple of subprocesses that are run at the end of the Python file (the ones 
that actually write my Lilypond file), so that with the help of partial 
compilation and a pdf utility, it produces a separate partially compiled pdf of 
only one page (the page I’m working on), then the script merges that 
headerless, indentless pdf with a “memory pdf” (say, the first page), so that I 
can see a single merged pdf with all the music at all times, and I only need to 
compile one page at a time: whenever I need a new page I just tell the partial 
compilation the measure the next page begins with and write the page number I 
want compiled. This pdf “grows” out of compiling page by page. This has 
exponentially increased the efficiency of my workflow, since Lilypond’s 
compilation times get only larger with more information, whereas compiling only 
one page gets done quickly. Certainly this pdf is not gonna be the final pdf. 
When I’m finished, I’ll run a full compilation. But it seems to me that to get 
things done quickly, the actual Lilypond command should only be used as a sort 
of “refresh all layout” command. This approach works very well, except for 
unexisting page numbers (basically unimportant for a temporary pdf, although 
from a user perspective you might wonder why partial compilation doesn’t just 
put the page number I manually gave it...), and a tempo and time signature 
marking at the beginning of every page. It’s not the end of the world, because 
this is not a final pdf, but it would be nice if I didn’t have those markings 
at all (to be honest, I don’t like them either when using “plain” 
showLastLength et al. without my Python pipeline, and can’t see any reason why 
they show by default anyways unless the first measure shown has an explicit 
tempo or time signature change).

Other than my way of working with Python, I can see this method as having 
potential for a sort of page by page compilation mode in Frescobaldi, but that 
would need said Lilypond commands to not give extra information to the user 
unless explicitely told to do so.

www.martinrinconbotero.com
On 19. Oct 2020, 22:11 +0200, Jean Abou Samra , wrote:
> Le 19/10/2020 à 17:32, Martín Rincón Botero a écrit :
> > Hello,
> >
> > I wanted to ask if there's a way to prevent 
> > showLastLength/Score.skipTypesetting from showing tempo and time signature 
> > (and header information if possible).
> >
> > Regards,
> > Martín.
> Hi,
> I don't know an obvious way to do this, though you could
> remove the appropriate engravers. The question is, why do you
> want this? showLastLength and Score.skipTypesetting
> are for faster development, so you usually don't much care
> about the look of the output. This sounds like there could
> be better tools to achieve your objectives.
> Best,
> Jean


showLastLength/Score.skipTypesetting

2020-10-19 Thread Martín Rincón Botero
Hello,

I wanted to ask if there's a way to prevent
showLastLength/Score.skipTypesetting from showing tempo and time signature
(and header information if possible).

Regards,
Martín.

-- 
www.martinrinconbotero.com


Re: Some wild considerations and a question

2020-10-19 Thread Martín Rincón Botero
Just my two cents to this comment:
> switch to another, easier to read and write extension language. Someone 
> suggested Lua, for example, which would be a good candidate it seems

I don’t know about Lua, but as a non-programmer, I spent many days getting in 
grips with Scheme. The result were very simple functions for Lilypond, which 
were very difficult to write in the first place (parentheses, types...). 
Whenever I try to understand the code of advanced users, I simply can’t read 
most of it. Parentheses in Scheme are not easy to write nor to read. I thought 
all this was because of the fact that I’m not a programmer, so that I lacked 
some fundamental talent and knowledge for that.

However, I explored abjad after basically giving up with Scheme. Abjad requires 
you to learn Python. I have to say I’ve had enormous progress with Python (much 
more than with abjad itself!). Every piece of code I find in the internet that 
exemplifies functions is readable (so that makes me progress even more!). After 
having found that abjad’s structures seem to get more in the way than help me, 
I now switched to plain Python to programmatically help me write Lilypond files 
more efficiently (by being able to add music to all instruments or to a list of 
instruments at once, by programming copy_bar and insert_bar functions that do 
what their name says, etc.). However, I still do have some “plug-ins” in abjad 
just in case I need them. If something like abjad could be used to write 
extensions for Lilypond, that would be an enormous improvement to the current 
Scheme situation. I could certainly contribute somewhat with “plug-ins”. I’ll 
have to read about Lua.

So Python basically showed me that being a non-programmer is not a limitation 
to use Python succesfully. I can’t say the same about Scheme.

www.martinrinconbotero.com
On 19. Oct 2020, 09:03 +0200, Andrew Bernard , wrote:
> Are you talking about reimplementing LilyPond from scratch?
>
> I'm happy with Scheme, as a programmer. It's the Guile implementation
> that causes the performance issue with Guile 2, not the Scheme
> languages. Perhaps it's just that with advanced tools one requires
> advanced knowledge. As with anything.
>
> Here's my two cents worth. For modern implementations, you could inquire
> as to how Dorico is implemented. [May be proprietary information.]
>
> Being a very heavy user of LilyPond, what I don't like is twofold, a)
> it's compiled, and the compilation takes a very long time, and b) its
> completely single threaded so having a really grunty machine makes very
> little difference to a). Whereas programs like Dorico hold in memory
> presumably and changes even to large scores are instant. They would be
> the biggest changes I would like, but of course necessitating complete
> rewrite. Seems unlikely to me. But after years of LilyPond I am at the
> point where I need to go to Dorico because I can't afford minutes of
> wait time to tweak a slur or make other micro changes (even with the
> typesetting on/off commands my scores are so complex the compiles are long).
>
>
> Andrew
>
>
>
>


Re: one system in the last page

2020-10-15 Thread Martín Rincón Botero
> \paper {
>  min-systems-per-page = #2
> }
> is another possibility

Thank you! This is exactly the rule I was looking for :-).

www.martinrinconbotero.com
On 15. Oct 2020, 18:56 +0200, Xavier Scheuer , wrote:
>
> \paper {
>   min-systems-per-page = #2
> }
> is another possibility


one system in the last page

2020-10-15 Thread Martín Rincón Botero
Hello,

not that it's something too difficult to fix with manual \pageBreaks, but
is there any way I can tell Lilypond to never put a single system on the
last page if there's more than one page, unless the last system takes up
the "whole" page (f.ex. in a piece for orchestra)? I have the feeling that
with all the intelligence of its fabulous engine, Lilypond should know
about this already. Or am I missing something?

Regards,
Martín.

-- 
www.martinrinconbotero.com


Re: centered rest sign in partial

2020-10-13 Thread Martín Rincón Botero
I don’t think centered rests for partial measures are correct. A normal rest 
should be the way to go.

www.martinrinconbotero.com
On 13. Oct 2020, 13:19 +0200, Johannes Roeßler , wrote:
> Hi Group,
>
> I've got an issue with centered rests in partials:
>
> \version "2.20.0"
> {
> \time 4/4
> \partial 2
> R2
> }
>
> gives an invisible rest. Any hints?
>
> Thx, Joei
>
>
>


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
> Sorry to hear that… I guess there’s always my hand-crafted method. =)

Nothing else seems to do the job :-).

www.martinrinconbotero.com
On 12. Oct 2020, 16:03 +0200, Kieren MacMillan , 
wrote:
>
> Sorry to hear that… I guess there’s always my hand-crafted method. =)


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
I guess a MWE doesn't always point you in the right direction. The MWE
works great. This is how Harm's solution looks in its real context:

[image: image.png]
Adding or deleting \temporary and playing with different values for
Score.SpacingSpanner.common-shortest-duration and
Score.GraceSpacing.common-shortest-duration didn't solve the problem.

Am Mo., 12. Okt. 2020 um 15:53 Uhr schrieb Kieren MacMillan <
kieren_macmil...@sympatico.ca>:

> Hi all,
>
> Here’s what looks best to me:
>
> %%%
> \version "2.21.2"
>
> foo = {
>  \newSpacingSection
>  \temporary \override Score.SpacingSpanner.strict-note-spacing = ##t
>  \temporary \override Score.SpacingSpanner.common-shortest-duration =
> #(ly:make-moment 1/20)
>  \temporary \override Score.GraceSpacing.common-shortest-duration =
> #(ly:make-moment 1/64)
> }
>
> unfoo = {
>  \revert Score.SpacingSpanner.strict-note-spacing
>  \revert Score.SpacingSpanner.common-shortest-duration
>  \revert Score.GraceSpacing.common-shortest-duration
>  \newSpacingSection
> }
>
> <<
>  {
>\relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 gis' e
> \unfoo  }
>\relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
>  }
>  \repeat unfold 2 { \relative c'' \repeat unfold 2 { gis8 b gis b } }
> >>
> %%%
>
> [Again: Well done, Harm!]
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>

-- 
www.martinrinconbotero.com


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
No matter what value I try, the accidental of the grace note collides in
the score :-(.

[image: image.png]


Am Mo., 12. Okt. 2020 um 15:44 Uhr schrieb Martín Rincón Botero <
martinrinconbot...@gmail.com>:

> ah, \newSpacingSection was missing :-).
>
> www.martinrinconbotero.com
> On 12. Oct 2020, 15:43 +0200, Thomas Morley ,
> wrote:
>
> Am Mo., 12. Okt. 2020 um 15:40 Uhr schrieb Martín Rincón Botero
> :
>
>
> Oh, because uniform-stretching can be only can only be changed for the
> whole score, I believed it’s the same for strict-note-spacing. I’ll try
> that.
>
> www.martinrinconbotero.com
> On 12. Oct 2020, 15:37 +0200, Kieren MacMillan <
> kieren_macmil...@sympatico.ca>, wrote:
>
> Hi Martín,
>
> Thanks for the idea, but strict-note-spacing causes all types of
> collisions in my score (although it works perfectly for my MWE).
>
>
> So why not just override it for that measure? ;)
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>
> foo = {
> \newSpacingSection
> \override Score.SpacingSpanner.strict-note-spacing = ##t
> \override Score.SpacingSpanner.common-shortest-duration =
> #(ly:make-moment 1/20)
> \override Score.GraceSpacing.common-shortest-duration = #(ly:make-moment
> 1/64)
> }
>
> unfoo = {
> \revert Score.SpacingSpanner.strict-note-spacing
> %\revert Score.SpacingSpanner.common-shortest-duration
> \revert Score.GraceSpacing.common-shortest-duration
> \newSpacingSection
> }
>
> <<
> \relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 \unfoo gis' e }
> \relative c'' \repeat unfold 2 { gis8 b gis b }
>
>
>
> Works here.
>
> Cheers,
> Harm
>
>

-- 
www.martinrinconbotero.com


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
yep, that doesn’t work for one measure

www.martinrinconbotero.com
On 12. Oct 2020, 15:37 +0200, Kieren MacMillan , 
wrote:
> Hi Martín,
>
> > Thanks for the idea, but strict-note-spacing causes all types of collisions 
> > in my score (although it works perfectly for my MWE).
>
> So why not just override it for that measure? ;)
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
Oh, because uniform-stretching can be only can only be changed for the whole 
score, I believed it’s the same for strict-note-spacing. I’ll try that.

www.martinrinconbotero.com
On 12. Oct 2020, 15:37 +0200, Kieren MacMillan , 
wrote:
> Hi Martín,
>
> > Thanks for the idea, but strict-note-spacing causes all types of collisions 
> > in my score (although it works perfectly for my MWE).
>
> So why not just override it for that measure? ;)
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
ah, \newSpacingSection was missing :-).

www.martinrinconbotero.com
On 12. Oct 2020, 15:43 +0200, Thomas Morley , wrote:
> Am Mo., 12. Okt. 2020 um 15:40 Uhr schrieb Martín Rincón Botero
> :
> >
> > Oh, because uniform-stretching can be only can only be changed for the 
> > whole score, I believed it’s the same for strict-note-spacing. I’ll try 
> > that.
> >
> > www.martinrinconbotero.com
> > On 12. Oct 2020, 15:37 +0200, Kieren MacMillan 
> > , wrote:
> >
> > Hi Martín,
> >
> > Thanks for the idea, but strict-note-spacing causes all types of collisions 
> > in my score (although it works perfectly for my MWE).
> >
> >
> > So why not just override it for that measure? ;)
> >
> > Cheers,
> > Kieren.
> > 
> >
> > Kieren MacMillan, composer (he/him/his)
> > ‣ website: www.kierenmacmillan.info
> > ‣ email: kie...@kierenmacmillan.info
> >
>
> foo = {
> \newSpacingSection
> \override Score.SpacingSpanner.strict-note-spacing = ##t
> \override Score.SpacingSpanner.common-shortest-duration =
> #(ly:make-moment 1/20)
> \override Score.GraceSpacing.common-shortest-duration = #(ly:make-moment 1/64)
> }
>
> unfoo = {
> \revert Score.SpacingSpanner.strict-note-spacing
> %\revert Score.SpacingSpanner.common-shortest-duration
> \revert Score.GraceSpacing.common-shortest-duration
> \newSpacingSection
> }
>
> <<
> \relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 \unfoo gis' e }
> \relative c'' \repeat unfold 2 { gis8 b gis b }
> > >
>
> Works here.
>
> Cheers,
> Harm


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
>
> How about:
>
> \layout {
>   \context {
> \Score
> \override SpacingSpanner.strict-note-spacing = ##t
> \override SpacingSpanner.common-shortest-duration = #(ly:make-moment
> 1/20)
> \override GraceSpacing.common-shortest-duration = #(ly:make-moment
> 1/64)
>   }
> }
>
> <<
>   \relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
>   \relative c'' \repeat unfold 2 { gis8 b gis b }
> >>
>
> Cheers,
>   Harm
>

Thanks for the idea, but strict-note-spacing causes all types of collisions
in my score (although it works perfectly for my MWE). The problems of
strict-note-spacing seem to be the same for strict-grace-spacing. Both
spacing modes are pretty much useless.

[image: image.png][image: image.png]  [image:
image.png]







Am Mo., 12. Okt. 2020 um 15:22 Uhr schrieb Thomas Morley <
thomasmorle...@gmail.com>:

> Am Mo., 12. Okt. 2020 um 12:13 Uhr schrieb Martín Rincón Botero
> :
> >
> > Dear Kieren,
> >
> > thank you for that suggestion. Albeit tedious having to fix each note
> manually like this, it works!
> >
> > Am So., 11. Okt. 2020 um 21:26 Uhr schrieb Kieren MacMillan <
> kieren_macmil...@sympatico.ca>:
> >>
> >> Hi Martín,
> >>
> >> > Anyways, I couldn't make use of any of your suggestions. I couldn't
> figure out how to apply the mentioned tweaks.
> >>
> >> Here’s one possibility:
> >>
> >> 
> >> \version "2.20.0"
> >>
> >> fixa = \tweak NoteColumn.X-offset #-3 \etc
> >> fixb = \tweak NoteColumn.X-offset #-2 \etc
> >> fixc = \tweak Accidental.X-extent #'(1 . -0.5) \tweak
> NoteHead.extra-spacing-width #'(-1 . -1) \etc
> >> fixd = \tweak NoteColumn.X-offset #0.875 \etc
> >>
> >> {
> >>   <<
> >> \relative c''' { r4 \appoggiatura { \fixa cis32 \fixb b \fixc ais }
> b4 gis' e }
> >> \relative c'' { gis8 \fixd b gis b gis b gis b }
> >>   >>
> >> }
> >> 
> >>
> >> Note that I had to unfold the \repeat in the lower staff, in order to
> easily apply the tweak to the correct moment. This is one of the [many!]
> reasons I use the edition-engraver: you can inject the tweak at an exact
> moment, regardless of how the musical elements in that moment were
> generated.
> >>
> >> Hope this helps!
> >> Kieren.
> >> 
> >>
> >> Kieren MacMillan, composer (he/him/his)
> >> ‣ website: www.kierenmacmillan.info
> >> ‣ email: kie...@kierenmacmillan.info
> >>
> >
> >
> > --
> > www.martinrinconbotero.com
>
> How about:
>
> \layout {
>   \context {
> \Score
> \override SpacingSpanner.strict-note-spacing = ##t
> \override SpacingSpanner.common-shortest-duration = #(ly:make-moment
> 1/20)
> \override GraceSpacing.common-shortest-duration = #(ly:make-moment
> 1/64)
>   }
> }
>
> <<
>   \relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
>   \relative c'' \repeat unfold 2 { gis8 b gis b }
> >>
>
> Cheers,
>   Harm
>


-- 
www.martinrinconbotero.com


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
Dear Kieren,

thank you for that suggestion. Albeit tedious having to fix each note
manually like this, it works!

Am So., 11. Okt. 2020 um 21:26 Uhr schrieb Kieren MacMillan <
kieren_macmil...@sympatico.ca>:

> Hi Martín,
>
> > Anyways, I couldn't make use of any of your suggestions. I couldn't
> figure out how to apply the mentioned tweaks.
>
> Here’s one possibility:
>
> 
> \version "2.20.0"
>
> fixa = \tweak NoteColumn.X-offset #-3 \etc
> fixb = \tweak NoteColumn.X-offset #-2 \etc
> fixc = \tweak Accidental.X-extent #'(1 . -0.5) \tweak
> NoteHead.extra-spacing-width #'(-1 . -1) \etc
> fixd = \tweak NoteColumn.X-offset #0.875 \etc
>
> {
>   <<
> \relative c''' { r4 \appoggiatura { \fixa cis32 \fixb b \fixc ais } b4
> gis' e }
> \relative c'' { gis8 \fixd b gis b gis b gis b }
>   >>
> }
> 
>
> Note that I had to unfold the \repeat in the lower staff, in order to
> easily apply the tweak to the correct moment. This is one of the [many!]
> reasons I use the edition-engraver: you can inject the tweak at an exact
> moment, regardless of how the musical elements in that moment were
> generated.
>
> Hope this helps!
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>

-- 
www.martinrinconbotero.com


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
FWIW, MuseScore seems to get this right. Perhaps its corresponding part of the 
code (wherever it might hide) could serve as inspiration for a fix for 
Lilypond? —Please excuse my ignorance if this is technically nonsense! :-).

www.martinrinconbotero.com
On 12. Oct 2020, 09:04 +0200, Andrew Bernard , wrote:
> I would be a happy man if the notorious Issue 34 could be resolved. I
> spend a lot of time having to put grace note spacers in complex scores
> to get the vertical alignment working. Each one I do, I wish I knew
> enough about lilypond internals to contribute a fix. It's not clear to
> me why this one is so immensely difficult to solve, but I trust the
> developers that it's a real doozy.
>
> Andrew
>
> On Mon, 12 Oct 2020 at 17:48, Martín Rincón Botero
>  wrote:
> >
> > Thanks for the link Jean. 8 years old issue? Ouch!
> >
>


Re: grace notes spacing

2020-10-11 Thread Martín Rincón Botero
Thanks for the link Jean. 8 years old issue? Ouch!

www.martinrinconbotero.com
On 11. Oct 2020, 21:59 +0200, Jean Abou Samra , wrote:
> > Using \override Score.SpacingSpanner.strict-grace-spacing = ##t seems
> > only useful when no grace notes are used immediately after the bar
> > line and no accidentals are used, which seems like a function for a
> > very limited use case
> This is a known issue:
>
> https://gitlab.com/lilypond/lilypond/-/issues/2630
>
> Best,
> Jean
>


  1   2   >