ructure
(which is what you get without specifying the context level explicitly)
don't make it into or out of << ... \\ ... >> constructs.
--
David Kastrup
How can we better spread best programming practises and showcase the
tools that are available for them?
--
David Kastrup
How can we better spread best programming practices and showcase the
tools that are available for them?
--
David Kastrup
ssed at rare times on the
developer list where probably also the current semantics have been
finetunes in discussions. But we don't have an obvious place in our
docs for it.
--
David Kastrup
Carl Sorensen writes:
> On Wed, Nov 6, 2024 at 6:30 AM David Kastrup wrote:
>
> Which people know the best programming practices?
> You, Harm, Werner? I'm certainly not part of that group.
For the kind of user interface programming that provides reasonably
simple access t
c expression.
This has nothing to do with transpositions. You are missing an
enclosing { ... } around both of your parts in order to form a single
sequential music expression from them.
--
David Kastrup
Cameron Hall writes:
> On Wed, 30 Oct 2024 15:14:59 +0100
> David Kastrup wrote:
>
>> Cameron Hall writes:
>>
>> > Here is a short simplified excerpt of a piece I'm trying to notate.
>> > I need a slur to start on the quarter note C and end on the D
|
c2. |
}
%%%
Note that if your ongoing Voice is named Voice = "soprano" (for
example), the \voices command needs to become \voices "soprano",2 in
order to attach the first-voice-formatting to the already existing
voice.
--
David Kastrup
; \Staff
> \omit TimeSignature
> \omit BarLine
> \omit Clef
> \override VerticalAxisGroup
> .default-staff-staff-spacing
> .basic-distance = #10
> }
> }
> }
>
> I'm sure this is an easy question, but I haven't found the right search term
> for it -- TIA!
You could add
\context {
\Score
\remove System_start_delimiter_engraver
}
to your \layout block.
--
David Kastrup
Dan Eble writes:
> On 2024-10-04 17:58, David Kastrup wrote:
>> Dan Eble writes:
>>
>>> Taking all the feedback into account, I plan to prepare a patch
>>> renaming baseMoment to beatBase.
>> How about doing both rename and retyping to rational and kee
roperty m 'elements))
(t (list-tail l (if (negative? a) (+ (length l) a) a
(list-head t (if (negative? b) (+ (length t) b 1) b))
m)
scale = \relative { a b c d e f g}
\displayLilyMusic \pick 0 4 \scale
\displayLilyMusic \pick -2 -1 \scale
\displayLilyMusic \pick -3 -3 \scale
--
David Kastrup
David Kastrup writes:
> stefano franchi writes:
>
>> Is there a lilypond function that would allow me to extract a subset from a
>> pattern?
>>
>> For instance, let's say I have a simple A - natural scale and I want to get
>> the first five notes. Is th
ean "remove no element").
The music in question needs to actually be of a kind that has an
'elements field.
--
David Kastrup
I don't think so.
Werner LEMBERG writes:
> Just curious: Is the 'top-posting' restriction on the LilyPond mailing
> lists still active? If yes, where and how is this enforced?
>
>
> Werner
>
>
--
David Kastrup
looks OK now, but now I'm
> getting this warning from Lilypond:
>
> warning: articulation failed to steal 9/320 note backward at
> beginning of music; stealing forward instead
>
> and later on:
>
> warning: bar check failed at: 9/320
>
> Is this something expected?
>
> From the message, it would seem that I should be using another command
> instead of \grace at the beginning of the piece?
Maybe you should mention that you are using articulate.ly ? It would
appear that articulate.ly does something with your code that causes
followup problems.
--
David Kastrup
race notes right at
> the beginning,
Issue 34. Workaround is in the manual.
--
David Kastrup
s that it combines
multiple contexts overlayed on one another. You'd put the instrument
name on the context best matching the visuals you'd want.
--
David Kastrup
gt; Should I get used to it, or should /could this be "tweaked" somehow?
You could try
\version "2.24.3"
{
c'1\pp\tweak to-barline ##f \<\time 3/4 g'2.\ff
}
--
David Kastrup
pression rather than a single note
or rest (with possible post-events), then this will still fail. But it
does not seem like this case would make a lot of sense anyway.
--
David Kastrup
Colin Baxter writes:
> Using the latest git pull of auctex, I find that entering -- results in
> "= appearing on the screen. Is this new?
I don't think so. That will be triggered by suitable language options
when using the Babel package I think.
--
David Kastrup
Dan Eble writes:
> On 2024-10-04 19:30, David Kastrup wrote:
>> I'd probably bring them into existence with something like
>> (define-compatibility-property 'baseMoment 'beatBase
>>ly:moment? ly:moment-main ly:make-moment)
>
> My battle with conve
Dan Eble writes:
> On 2024-10-04 17:58, David Kastrup wrote:
>> Dan Eble writes:
>>
>>> Taking all the feedback into account, I plan to prepare a patch
>>> renaming baseMoment to beatBase.
>> How about doing both rename and retyping to rational and kee
ack into account, I plan to prepare a patch
> renaming baseMoment to beatBase.
How about doing both rename and retyping to rational and keeping the old
property as a Moment-typed compatibility read/write accessor?
That would be less of a compatibility nightmare.
--
David Kastrup
Dan Eble writes:
> On 2024-10-04 03:59, David Kastrup wrote:
>
>> This isn't one. What is more of an issue that a lot of properties
>> taking a ly:moment? should rather be taking an exact rational
>> (because they will never have grace parts), and the reason tha
have exact rationals.
That is also the reason for the existence of functions like
ly:moment-mul and ly:moment-div which make no sense whatsoever in terms
of their argument and result types.
--
David Kastrup
-hg83vfc9/tmpix0jvon3/document.ly:8:7
> <1>: error: syntax error, unexpected end of input
>
> }
And here is what the missing closing brace then caused.
Anyway, even if properly separated with spaces, the curly braces are
spurious. What do you hope to achieve with them?
--
David Kastrup
avor by using
anything but the latest stable version.
I cannot guarantee that 2.24.4 will be faultless but it is a quite
better bet than 2.24.2: within one stable version (2.24) subsequent
releases are almost exclusively constrained to bug fixes, and this bug
area has been of the kind that triggered several new releases.
--
David Kastrup
Public bug reported:
Thunar has become unusable for me since it frequently causes system
freezes (my guess would be file locking related) under heavy system load
whenever unrendered thumbnails scroll into view and Thunar proceeds to
update them.
I've lost so much work due to this behavior that I
Mats Bengtsson writes:
> or using the \voices command:
> \version "2.25.19"
> \new Staff \fixed c'' { \voices 2,4 << { e8( f~2.) } \\ { e8( f d2.) } >> }
LilyPond's normal order for stem-down voices top to bottom would rather
be
\voices 4,2
--
David Kastrup
, stem down with even numbers, starting
from the outside. That means another option would be
\fixed c'' { \voices 4,2 << { e8( f~2.) } \\ { e8( f d2.) } >> }
Note that \\ separates different voices here, and the \voices 4,2
indicates the deviation from the default \voices 1,
ess of the duration of the main note the duration of the
long appoggiatura is proportional to that of the main note.
Ok, it woulkd appear that my idea (and possibly that of articulate.ly's
author) corresponds with what is described here as "long appoggiatura",
namely being written in the timing of normal notes and taking from the
following note.
--
David Kastrup
entially modifying context without creating copies
will remain even in relative mode.
--
David Kastrup
work as expected.
The next thing to remember is that #music does not create a copy of
music while $music and \music do. And any music function (specifically
\transpose ) is allowed to change its arguments at will. Which means
that anything that is used more than once in a music function in a
manner that may modify it (like passing it to \transpose) _has_ to be
copied in order not to affect other uses of it.
--
David Kastrup
unprepared music.
To get the full preparation necessary, use scorify-music instead of
ly:make-music . It uses ly:make-music internally but does other
required things.
--
David Kastrup
Paolo Prete writes:
> On Thu, Sep 5, 2024 at 2:07 PM David Kastrup wrote:
>
>> Paolo Prete writes:
>>
>>
>> Still scheme? instead of markup?
>>
>> Still a scheme function instead of a markup command.
>>
>> >
at #f "~y" gr)))
> groblist))
>
> \omitt #'(TimeSignature NoteHead)
> %%% SNIPPET ENDS
>
> I’m just not sure the precise incantation to make the first snippet Do
> The Right Thing™.
You need to return music (instead of pretending that calling omit will
achieve anything by side-effect).
And of course you need a music function.
--
David Kastrup
their special settings in
parallel.
That is most definitely not what you want or need here. Remove the \\ .
--
David Kastrup
Paolo Prete writes:
>> On Wed, Sep 4, 2024 at 9:56 PM David Kastrup wrote:
>>
>>> Paolo Prete writes:
>>>
>>> > Hello,
>>> >
>>> > Given:
>>> >
>>> > floating
nt to use it (in Scheme!) for writing in markup syntax, again
you need to enter markup mode by writing
#{ \markup ... #}
in a Scheme expression. If you are in LilyPond entry mode, you can just
write \markup ... instead.
--
David Kastrup
Raphael Mankin writes:
> On 04/09/2024 11:15, David Kastrup wrote:
>> Raphael Mankin writes:
>>
>>> For reasons that not concern us I am re-typing Cole Porter's Anything
>>> Goes. I get as far as the key change after bar 20 but then the layout
>>&
in the middle of a note.
Use bar checks.
--
David Kastrup
ng implementation, it has a
good chance to end up as a documented case in the manual.
So trying to avoid a MWE may be a gamble that may lead to solutions that
actually work only in a restricted number of cases not necessarily
matching your own usage pattern well.
--
David Kastrup
Raphael Mankin writes:
> Is there a null midi device so that I can say explicitly that I do not
> want midi output for this staff, as opposed to "I have forgotten to
> specify it"?
Does something like
\new Staff \with { \remove "Staff_performer" } { ... }
do what you want?
--
David Kastrup
\Voice
\override Stem.thickness = #4
}
}
\new StaffGroup <<
\new TabStaff \with { \tabFullNotation } {
c'8 8 8 8 8 8 8 8
}
\new Staff {
\clef "violin_8"
c'8 8 8 8 8 8 8 8
}
>>
> The \\ construct automatically creates voices formatted as if
> \voiceOne, \voiceTwo etc., were present, although it seems these
> commands are not used explicitly.
>
> I can't see any method to achieve what you desire without explicitly
> creating voices and using overrides.
\\ uses make-voice-props-set and I would advise against redefining that.
--
David Kastrup
le? I would like to generate a rehearsal file for the piece. It
> should follow the rhythmic pattern, but I would like to avoid typing the
> music in twice.
Sounds like a job for swing.ly
<https://lilypond.org/doc/v2.25/Documentation/notation/the-swing-script>
--
David Kastrup
Peter Chubb writes:
>>>>>> "David" == David Kastrup writes:
>
> David> if you want a
> David> context to engrave dynamics, it needs the respective engravers.
>
> Thanks David,
>This all kind-of-works. It'll probably do for
{
<<
\new Staff \context Voice = tune {\repeat volta 2 { c c c c }}
\new Lyrics \lyricsto tune { \set stanza = "1." get\mp \cresc
lou -- der here \f }
\new Lyrics \lyricsto tune { \set stanza = "2." this\ff is very loud }
>>
}
--
David Kastrup
1
Have you tried just entering
\multitranspose << e' g' c'' >> {c''4 d'' e'' f'' g''1 }
?
It would appear like the function is already prepared for dealing with
that functionality.
--
David Kastrup
).
Most pertinent:
(append! '() ...)
cannot modify an empty list in-place because there is only one empty
list in the whole system and it is an unchangeable constant.
Indeed Guile happens to modify the given list in-place with append!
whenever it can, but it is impossible for the empty list.
--
David Kastrup
7;ve re-checked and it would appear that the Fingering_engraver is
actually only responsible for fingerings after all.
Have you tried my other suggestion of just removing it so that its work
is taken over by the New_fingering_engraver which is what you want?
--
David Kastrup
Luca Fascione writes:
> Well... touché. Your talking about right hand fingering (-p) confused
> me :-)
That was actually a typo for -\p so it is likely my own fault.
--
David Kastrup
ich is exactly the issue I predicted you'd want to have addressed
next.
--
David Kastrup
that next you will be telling me that you want to map
a-4-p
into
-p
instead of
right?
--
David Kastrup
s it so that all "single"
> notes get turned into one-note chords?
Of course that is also possible with a music transformation function.
You can try something like
toplevel-music-functions =
#(cons eventChords toplevel-music-functions)
which will then do this transformation on anything placed in a score.
--
David Kastrup
s it so that all "single"
> notes get turned into one-note chords?
Does
\layout {
\context {
\Staff
\remove "Fingering_engraver"
}
}
do what you want? Note that it has other consequences because the
Fingering_engraver does not just engrave fingerings...
--
David Kastrup
data representation syntax (specifically suited for
representing lists). And it represents programs in the form of data.
It also represents data in the form of data. The only difference is
that the former is getting evaluated after input, and quoting stops
evaluation.
--
David Kastrup
art with any kind of grace note.
--
David Kastrup
all the TabStaff settings embedded in that code.
Have you tried just writing \set Staff.minimumFret instead? TabStaff
listens to the alias Staff as well as its germane TabStaff.
--
David Kastrup
e been working on.
--
David Kastrup
adjust eis and eses to e. Note names are numbers and can
be compared with = . (make-music 'NoteEvent m) is silly and creates an
unnecessary copy. You can just use m instead.
If you do, you don't replace any music, so music-map is unnecessary.
This can be better done with for-some-music .
--
David Kastrup
pposed to be stacked
horizontally or vertically? If horizontally, adding \line does not seem
all that terrible.
And it will be hard to explain what
\markup \ornament \with-color #red { \number ♭ \number ♭ } ...
is supposed to do: is \with-color #red applied to the numbers or to the
whole list?
--
David Kastrup
umber?’, ‘boolean?’, etc.
You use a predicate other than markup? or markup-list?, so this counts
as any other scheme object.
The real question is what you actually are trying to achieve here.
--
David Kastrup
\n"
(with-output-to-string (lambda () (displayLilyMusic m
m)
music))
\mappingFunction
\new PianoStaff
<<
\new Staff \relative { c'4 d e c }
\new Staff \relative { c' g c c }
>>
--
David Kastrup
xisting one.
Music functions are allowed to modify their music arguments in place.
--
David Kastrup
ct, you replace note events with
*undefined* which appears comparatively useless.
So what are you trying to achieve here?
--
David Kastrup
#
> Pitch is: #
> Pitch is: #
> Pitch is: #
> Pitch is: #
> Pitch is: ()
> Pitch is: ()
>
> What is causing the last two output lines?
Well, what do you think should be the pitch of
{ c4 d e f g a b c' }
and of
\fixed c' { c4 d e f g a b c' }
?
If you want to only look at note events, you need to check for them
yourself. music-map is not discriminating.
--
David Kastrup
uch additions are
> not limited in scope and will persist beyond the currently processed
> file." (as you write in
> https://lists.gnu.org/archive/html/lilypond-devel/2016-09/msg00116.html)
Which is a problem. If the implementation is fixed so that this doesn't
occur, this would make sense.
But public functions should not meddle in session-transceding variables.
--
David Kastrup
#{
\markup \fontsize #bar \natural
#}))
foo =
#(define-music-function () ()
#{
\tweak parent-alignment-X #CENTER
\tweak self-alignment-X #CENTER
-\markup \foo-markup
#})
{
f'2-\foo
f'2-\tweak bar #5 \foo % This tweak (expectedly) fails.
}
--
David Kastrup
Виноградов Юрий writes:
> I'm grateful for your help. But you could not suggest the same
> solution but for the text in \lyricmode section.
\markup … can perfectly well be used for lyrics.
--
David Kastrup
dded to regular staff when the notes go down to middle C or lower?
>
> Maybe something with markup?
Have you tried adding the Ledger_line_engraver to your TabStaff ?
Do you have any example code to work with?
--
David Kastrup
y will come when this will get smited.
--
David Kastrup
All of
\new Staff \with { \override StaffSymbol.line-count = 0 }
{ r1 r2 r2 }
\markup { \rest { 1 } \hspace #1 \rest { 2 } }
shows clearly distinguishable rest glyphs with the respective stubs.
What did you try that _didn't_ show the line stubs?
--
David Kastrup
' f' }
> %%%
There actually is no reason to use `map-in-order' over just `map' here
since the loop body has no side effects.
Your Scheme inner construct does not touch the
point-and-click/error-location data. That may or may not be what is
desired. The guesses that #{ $... #} takes in that regard have a
certain chance of being what the user would prefer.
--
David Kastrup
\transpose changes the display pitch. It does not touch the relation
between display pitch and concert pitch.
So if you want to change the relation between display pitch and
instrument pitch after already having declared a \transposition, you get
into kind of a bind.
--
David Kastrup
nce
< ... > conveys the _first_ pitch in the chord as the current relative
pitch to the next note while << ... >> conveys the _last_ pitch. So
switching between the two does involve some editing.
--
David Kastrup
o better. And when someone wants to change it, I'd like them to
be aware of the rationale behind the current behavior.
--
David Kastrup
so I've left my workings out in the message, but
> that seems to be the long and short of it.
Using a tool to convert the MIDI file to format 0 (or what it was
called) might help?
--
David Kastrup
90
Time 5184:
Note off: Channel 0, A4(69)
Note on: Channel 0, D5(74)@90
Time 5472:
Note off: Channel 0, D5(74)
Note on: Channel 0, E5(76)@90
Time 5568:
Note off: Channel 0, E5(76)
Note on: Channel 0, Fis5(78)@90
Time 5664:
Note off: Channel 0, Fis5(78)
Note on: Channel 0, D5(74)@90
Time 5952:
Note off: Channel 0, D5(74)
Note on: Channel 0, D5(74)@90
Time 6144:
Note off: Channel 0, D5(74)
End of Track
As you can see, the key signature is right with the content track (track
2) and right at the start.
You really need to figure out which part of your processing then loses
it.
--
David Kastrup
ults.
A good viewer of MIDI file content is
lilymidi --pretty
followed by the MIDI file name on the command line.
--
David Kastrup
e individual fis notes.
This is when further discussion becomes pointless without an actual
example illustrating the problem.
--
David Kastrup
files, not of a live MIDI stream. If
you play music via a sequencer, the sequencer knows the signature, the
instrument doesn't.
At least that's what I remember.
--
David Kastrup
versed enough as
programmers as to be able to contribute a variable-size tick.
"it can't be done" is not a thing with Free Software. It's more like
"if you have to ask, you may be the wrong person to do this as your
first project".
--
David Kastrup
is not the one output by Lilypond.
Why? You can use MIDI processors to generate format 0 and change
resolution.
--
David Kastrup
; I can’t seem to get \wordwrap-string to work in this context (even
> after switching \markuplist to \markup). It barfs if \concat is
> inside of it (unrecognized escape string) and if it’s put inside
> \concat, then it only applies to the immediate string, not the
> resulting concatenated whole.
What is the actual problem you are trying to solve here?
--
David Kastrup
only have one.
You probably want \wordwrap-string (there is no \wordwrap-string-lines
though that would give you a markup list).
--
David Kastrup
e
word adjacent to it for typographical rather than logical wholesomeness.
That LilyPond makes it programmatically awkward to change shape without
intervening space is not intentional; rather it is a side effect from
punctuation usually being placed immediately adjacent to the preceding
word.
--
David Kastrup
") #:fontsize 5
(make-concat-markup (cond
((char=? last-char #\#) (list prefix (markup #:hspace 0.2
#:fontsize -2.5 #:raise 0.6 #:sharp)))
((char=? last-char #\b) (list prefix (markup #:hspace 0.2
#:fontsize -2.5 #:raise 0.6 #:flat)))
(else (list text))
))
)
)
)
)
\markup \page-header "Key of Bb"
--
David Kastrup
27;t found a good fix for moving the dots. Here is one
attempt at moving the parens instead:
{
\tweak Dots.extra-spacing-width #'(.2 . .2)
4.
}
Wish I could get the actual dots to move, but maybe someone else has an
idea for that.
--
David Kastrup
ormer"
>> }
>> }
>> ```
>
>
> You can do \set Score.midiChannelMapping = #'voice as an alternative to that.
We really need a plain simple way to set a fixed channel. There is
enough hardware around using dedicated channels.
--
David Kastrup
I can certify that after today's system upgrade (mainly including the
6.8.0-28-lowlatency kernel), booting into the new kernel made the
difference between Chromium-browser not working and working (I had
previously replaced my Firefox browser with a native version from
Mozilla's APT repository becau
Public bug reported:
While this sounds somewhat similar to the currently reported
showstopper, none of the workarounds in that report helps for me and all
snaps are affected.
This started about a week ago. I am currently making do with using the
natively installed Epiphany while using Firefox to
itch to Italian note names temporarily… Just kidding: the
sane solution of using quote marks has been already covered in two
replies.
--
David Kastrup
gt; the shorter name than the longer one but I don’t want to rely on
> something that might break unexpectedly.
The glossary does not document LilyPond but common language. It wrote
about "c-sharp" long before the English input language allowed the
spelling "c-sharp" (I t
Public bug reported:
Frequently (but not always, haven't figured out what makes the difference) I
cannot start modem-manager-gui, getting the following crash output on the
console:
modem-manager-gui
(modem-manager-gui:186352): Gtk-WARNING **: 12:49:10.872: Theme
directory places/128 of theme ub
#x27;d rather add 8 steps on the circle of fifths (the
difference implying that the circle isn't actually a closed circle), you
need to write something like \transpose des' a instead.
--
David Kastrup
lution guaranteed to work. Human relations are
both more flexible and more elusive. There is no guarantee anything
will work or fail other than trying and doing one's best in recovering
gracefully from failure.
--
David Kastrup
to the future of hel-arabic.ly.
--
David Kastrup
er off removing
that contribution than allowing it to contribute to a toxic work
environment driving more contributors away than it will draw in new
users.
Please try to do your part in keeping LilyPond pleasant to work with and
to work on.
Thank you
--
David Kastrup
is is sent to very many people who may or may not be interested in
> all topics on the list.
Did you really have to _quote_ all of the quoted messages of last week
_again_ to make that point?
That will make all of those nonsensically quoted messages from last week
appear _twice_ in next week
and the reason for that
is exactly because it makes it easy to make properly connected adjacent
slurs.
You should not ignore syntax warnings LilyPond gives you: they indicate
a problem with your source file.
--
David Kastrup
1 - 100 of 9541 matches
Mail list logo