2.64 -0.42
curveto 2.64 -0.54 2.54 -0.64 2.42 -0.64
curveto 2.30 -0.64 2.20 -0.54 2.20 -0.42
curveto 2.20 -0.30 2.30 -0.20 2.42 -0.20
closepath)
round round #t)
(cons -0.1 2.65)
(cons -1.3 1))
-- Aaron Hill
that is even possible), and the LSR snippet certainly is not doing
that. It is replacing the stencil for a bass clef, but you still say
\clef bass.
-- Aaron Hill
rounded.)
LSR 1090 [1] is a snippet I wrote to utilize an actual hyphen (or really
anything you want) from a font in place of simply drawing a rectangle.
[1]: https://lsr.di.unimi.it/LSR/Item?id=1090
-- Aaron Hill
uting.html
-- Aaron Hill
!"
\repeat percent 12 { c''4 }
\unset Timing.defaultBarType
r4
\bar "|."
}
}
-- Aaron Hill
amic-event) music))
asdf = { b'4\p b'4\mp b'4\ff b'4\sfz }
{ \asdf \noDynamics \asdf }
-- Aaron Hill
FELL Great Primer, Regular"
\override #'(font-name . "IM FELL Great Primer, Italic")
"IM FELL Great Primer, Italic"
\override #'(font-name . "IM FELL Great Primer SC")
"IM FELL Great Primer SC"
}
To your other question, the command-line option -dshow-available-fonts
(see the usage documentation for details) will output all of the fonts
LilyPond can see.
-- Aaron Hill
It could be that your version of the IM FELL family is named
differently. I got mine from Google's OFL collection [2].
[2]: https://github.com/google/fonts/tree/main/ofl
-- Aaron Hill
t-markup grob
#{ \markup \concat { #text "\"" } #})))
\asdf
}
{
\override Score.BarNumber.before-line-breaking =
#(lambda (grob)
(let ((text (ly:grob-property grob 'text)))
(ly:grob-set-property! grob 'text
#{ \markup \concat { #text "\"" } #})))
\asdf
}
-- Aaron Hill
would be that \voice would be itself a music function:
voice = #(define-music-function (n) (index?)
(context-spec-music (make-voice-props-set (1- n)) 'Voice))
<< { \voice1 b'4 c'' } \\ { \voice2 g'2 } >>
-- Aaron Hill
4." Lo -- rem ips --
um. }
\new Lyrics \lyricsto melody { \set stanza = "5." Lo -- rem ips --
um. }
\new Lyrics \lyricsto melody { \set stanza = "6." Lo -- rem ips --
um. } >>
The principle is simply to hack the StanzaNumber and then increase the
spacing between two Lyrics lines.
-- Aaron Hill
rts markup directly:
title = \markup \concat { "Lorem ipsum" " / " \smaller "dolor sit amet"
}
-- Aaron Hill
ra -- \closeQuote ble, said
she }
-- Aaron Hill
Note that since the -- must appear directly after the text, you will
need to apply this override before the text.
-- Aaron Hill
left-column { "Lorem ipsum" "dolor sit amet," }
\left-column { consectetur "adipiscing elit." }
-- Aaron Hill
ck
2)))
(- normal-Y-right right-padding-y current-y-coord
-- Aaron Hill
should the association get altered, you would need to manually
re-associate with the desired version.
-- Aaron Hill
3/4
\repeat volta 2 { 4.\( }
\alternative {
{ 2.\)
-\shape #'((6 . 0.5) (5 . -0.5) (2 . -1) (0 . 0)) ^\( }
{ 2.\) }
}
}
-- Aaron Hill
amed "gaps". And it turns out there is more than just padding that
will affect your calculation. Try setting a stencil in either
bound-details, as that will also shorten the effective spanner line.
Arrows, however, seem to overlay on the line without changing its
length.
Let me take a stab at converting the print routine to Scheme.
-- Aaron Hill
On 2021-10-24 8:05 am, Thomas Morley wrote:
Am So., 24. Okt. 2021 um 16:35 Uhr schrieb Aaron Hill
Let me take a stab at converting the print routine to Scheme.
Would be great !!
Sorry for the delay... took me some time to figure out why there was an
error with cross-staff right-side Y
disturbing any
preexisting association for one particular version.
Drag-and-drop should ignore file association. Instead, Windows will
simply invoke the target program or shortcut, passing the absolute path
to each source file after any arguments specified within the shortcut.
-- Aaron Hill
ed it as the eighth notes are plenty to keep the two
texts away from each other.
This seems to fix the second measure, unless I am misunderstanding what
you need:
tempos = {
s2^\atempo
s2^\rit
\once \textLengthOn s2^\atempo
s2^\rit
}
-- Aaron Hill
g = #1
s2^\atempo
s2^\rit
s2^\atempo
s2^\rit
}
notes = \relative c'{
c2. d8 b
c2. g8 b
}
othernotes = \relative c'{
e8 f g a g2 c2 b
}
\score {
<<
\new Staff << \tempos \notes >>
\new Staff {\othernotes}
>>
}
\score {
\new Staff << \tempos \notes >>
}
\score {
\new Staff << \tempos \othernotes >>
}
-- Aaron Hill
een processed by another engraver.
In the above example, you can \omit DynamicText within the two staves
and get what looks to be the desired goal, but that would mean losing
all such grobs in those contexts.
-- Aaron Hill
On 2021-10-28 12:25 pm, Aaron Hill wrote:
Not an engraver, but a dispatcher trick could be a first step:
Wait... there's no need to share a source dispatcher... also, that code
duplicates the listener...
\version "2.22.0"
#(define event-transfer-sink (ly:
t;,
"showReuseMessage": false,
"clear": true
},
"problemMatcher": "$gcc"
},
{
"label": "LilyPond (PNG, cropped)",
"type": "shell",
"command": ".vscode/build.sh",
"args": [
"--png-crop",
"${relativeFile}"
],
"group": "build",
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": "$gcc"
},
{
"label": "LilyPond (SVG)",
"type": "shell",
"command": ".vscode/build.sh",
"args": [
"--svg",
"${relativeFile}"
],
"group": "build",
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": "$gcc"
},
{
"label": "LilyPond (SVG, cropped)",
"type": "shell",
"command": ".vscode/build.sh",
"args": [
"--svg-crop",
"${relativeFile}"
],
"group": "build",
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": "$gcc"
}
]
}
-- Aaron Hill
. I am running 20H2/19042.1288 for
reference.
-- Aaron Hill
)) #}))
{ b'4 4 4 4 }
\addlyrics { \+ \foo , \+ \foo , and \+ \foo ! }
-- Aaron Hill
On 2021-11-02 2:56 pm, R. Padraic Springuel wrote:
On Nov 2, 2021, at 1:00 PM, Aaron Hill
wrote:
Not sure if this was already suggested, but could you use something
like this to concatenate arbitrary markup?
I think that what you’re suggesting is in the spirit of what David was
suggesting
verse-interval orig)))
(pos1 (interval-index iv dir))
(pos2 (- pos1 (* 0.5 dir (- cnt 1 th)
(if (> 0 grow) (cons pos1 pos2) (cons pos2 pos1)
\override Beam.grow-direction = #RIGHT
e'32[ f' g' a']
c''64[ d'' e'' f'']
\override Beam.grow-direction = #LEFT
b'128[ a' g' f']
}
-- Aaron Hill
On 2021-11-03 4:45 pm, Paolo Prete wrote:
Hello Aaron,
what if I enlarge the beam angle? (see below)
Okay, my guesswork was wrong. Here is code that was adapted from the
underlying C++ logic:
\version "2.22.0"
#(define (ly:stem::beam-multiplicity grob)
;; Adapted from no
and which are needed much
less often today:
\relative {
\alterBroken padding #'(1 7) Staff.OttavaBracket
\ottava 1 c''''1 \break
c2 2
}
Since #'(1 7) is a list of numbers, you could write it this way:
\relative {
\alterBroken padding 1,7 Staff.OttavaBracket
\ottava 1 c''''1 \break
c2 2
}
-- Aaron Hill
%%%
foo = #(define-scheme-function (arg) (key-list?)
(format #f "arg=~s" arg))
\markup $#{ \foo 1,2,3 #}
\markup $#{ \foo one.two.three #}
\markup $#{ \foo abc.123,xyz #}
-- Aaron Hill
ce could not be satisfied. Perhaps there is a subtle
bug in the layout logic.
The easy fix is to specify minimum-distance as well. If you like 5.5 as
a basic-distance, just match that value.
-- Aaron Hill
their own scheme
entirely.
If it helps to have a data point, I exclusively use the PDF manuals for
my reference (apart from searching the code base directly).
-- Aaron Hill
e Staff context instead of
\omitting the BarLine grob.
-- Aaron Hill
On 2021-11-16 11:13 am, E Appeldoorn wrote:
Thanks Aaron
My question appears to be incompleet. The piece does need a final
barline
\bar "|."
\remove the "bar_engraver" through the staff context seems to make
that impossible.
(Be sure to keep lilypond-user@gnu.org o
On 2021-11-16 11:37 am, Jean Abou Samra wrote:
Or use this:
https://lists.gnu.org/archive/html/lilypond-user/2021-01/msg00058.html
That's clever. :)
-- Aaron Hill
\box \stencil #orig #}
#{ \override $grob-path . stencil = #proc #})
\new Staff
\with {
\consists Measure_counter_engraver
\boxify MeasureCounter
}
{
\boxify Staff.Clef
\startMeasureCount
fis'4 g'8 a' \once \boxify Accidental bes'2 cis''4 d''2.
\stopMeasureCount
}
-- Aaron Hill
rg/archive/html/lilypond-user/2012-03/msg00296.html
[2]:
https://lists.gnu.org/archive/html/lilypond-user/2017-01/msg00196.html
-- Aaron Hill
for
RhythmicStaff, just be more specific:
\new Voice {
\boxify RhythmicStaff.MeasureCounter
...
}
%% ...or... %%
\new RhythmicStaff
\with { \boxify MeasureCounter }
{ ... }
%% ...or... %%
\layout {
\context {
\RhythmicStaff
\boxify MeasureCounter
}
}
-- Aaron Hill
, you could use number->string. But for
anything fancier, the formatted printing functionality is quite powerful
and worth learning:
\markup #(format #f "~{~a fish~^, ~}." '(one two red blue))
-- Aaron Hill
ample.
-- Aaron Hill
addlyrics { _ \set stanza = "1." lo -- rem }
\addlyrics { \set stanza = "2." do -- lor sit }
-- Aaron Hill
hickness = #4
\override Staff.BarLine.thick-thickness = #8
}
You have superfluous curly braces within the \context. Just say:
\layout {
\context {
\ChordNames %% No { here
majorSevenSymbol = \markup { \fontsize #-3.5 \override #'(thickness .
0.3) \triangle ##f }
%% No } here
}
}
-- Aaron Hill
ly #(page-number-on-or-after 3)
\fromproperty #'page:page-number-string
}
evenHeaderMarkup = ##f
page-count = #5
}
{ \repeat unfold 68 { b'4 4 2 } \bar "|." }
-- Aaron Hill
it, you need to use any markup command that
operates specifically on a markup list to condense it into a single
markup:
\markup \box \line { a b c }% for when you want space
\markup \box \concat { a b c } % for when you do not want space
\markup \box \overlay { a b c } % for when you REALLY do not want space
-- Aaron Hill
lt;< { \override Beam.positions = #'(2.2 . 1.8)
g'8 [ s e' s f' s d' ] } \\ { \repeat unfold 4 { s b'8 } } >>
This seems to get pretty close to what you want:
<< { g'8 -\tweak details.collision-padding 1 [ s e' s f' s d' ] } \\ {
\repeat unfold 4 { s b'8 } } >>
-- Aaron Hill
ount (ly:event-property event 'metronome-count)))
(custom-metronome-markup text dur len count hide-note)))
\layout {
\context {
\Score
metronomeMarkFormatter = #format-custom-metronome-markup
}
}
{
\once \set Score.tempoStemLength = #0.6
\tempo 4 = 60
b'2 2
}
-- Aaron Hill
On 2021-12-12 3:19 pm, David Kastrup wrote:
and one could instead define it as
make-dynamic-script =
#(define-event-function (str) (ly:markup?)
(make-music 'AbsoluteDynamicEvent 'text str))
Did you mean just markup? or is ly:markup? a special predicate?
-- Aaron Hill
On 2021-12-12 3:48 pm, David Kastrup wrote:
Aaron Hill writes:
On 2021-12-12 3:19 pm, David Kastrup wrote:
and one could instead define it as
make-dynamic-script =
#(define-event-function (str) (ly:markup?)
(make-music 'AbsoluteDynamicEvent 'text str))
Did you mean just mar
%% Tagline header field only on last page in the book.
\on-the-fly #last-page \fromproperty #'header:tagline
}
}
}
-- Aaron Hill
f you
are running an older version:
addTieStart =
#(define-music-function (parser location m) (ly:music?)
^^^
-- Aaron Hill
On 2021-12-17 4:28 pm, Paolo Prete wrote:
The example Aaron showed already added *logic* to the template [...]
To be fair, all I showed was the default setting for oddFooterMarkup
from titling-init.ly. Nothing added; that is simply how LilyPond works
out of the box.
Nearly everything, if
27; a'2 }
{ fis'1
-\tweak outside-staff-priority #599
^\markup \bold "Below!"
-\tweak outside-staff-priority #601
^\markup \bold "Above!"
} }
-- Aaron Hill
dNames \music \new Staff \music >>
-- Aaron Hill
zontal-spacing
Another option is to simply set the total number of systems for your
score. LilyPond will naturally spread out music if it is constrained to
meet a minimum system count:
\paper { system-count = 2 }
{ \notes }
-- Aaron Hill
elty, seeing as
these days terminals and editors still rely on fixed pitch.
[1]: http://www.literateprogramming.com/knuthweb.pdf
-- Aaron Hill
document.body.classList.remove('colors');
} else {
document.body.classList.add('colors');
}
}
Toggle Colors
int
main()
{
printfclass="punctuation">("Hello,
World!\n");
return
0;
}
-- Aaron Hill
https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
-- Aaron Hill
he default
behavior of the site is sound for such cases, so no one feels they have
to enable JS if they do not wish. That might mean the standard styling
needs to be black and white if that creates the least friction for
users.
-- Aaron Hill
have is whether selecting a color scheme carries an expectation
that it should persist.
-- Aaron Hill
lbook"
#:factor (/ staff-height pt 20)))
}
-- Aaron Hill
.html
-- Aaron Hill
\foo
\new Staff \with { instrumentName = "two" } \keepWithTag two \foo >>
-- Aaron Hill
own variable
anyway.) Going more granular might make sense if a section was
particularly long. At that point, the early and later notes just stop
having any practical relationship with one another, so they might be
better placed in their own blocks.
-- Aaron Hill
On 2022-01-11 12:21 pm, Flaming Hakama by Elaine wrote:
% I am not sure why this one does not work
-\markup { \super "o7(△7)" }
Wrong octave for the C flat. Use .
-- Aaron Hill
On 2022-01-14 12:13 am, Jacques Menu wrote:
What is the name of the ‘up arc’ ornament on the first note in this
score? Then I’ll look it up in the LPNR.
I think "scoop" might be the term. Did we ever get a \bendBefore as the
logical companion to \bendAfter?
-- Aaron Hill
\Windows\Fonts. Depending
on how LilyPond enumerates fonts, it might only be picking up the
system-wide ones.
-- Aaron Hill
On 2022-01-15 5:40 pm, Aaron Hill wrote:
which are located in %LocalAppData%\Local\Microsoft\Windows\Fonts.
No, stupid webmail client. That is not the path I pasted into the
message. Where did that extra \Local even come from?! (Roundcube is
getting really buggy lately.)
%LocalAppData
ext to
it.
-- Aaron Hill
/144
-- Aaron Hill
-stanza "3." {
"q This is verse three."
"q It has two lines."
}
}
\hspace #1
\override #'(baseline-skip . 7)
\column {
\my-stanza "4." {
"This is verse four."
"It has two lines."
}
\my-stanza "5." {
"This is verse five."
"It has two lines."
}
}
\hspace #1
}
}
-- Aaron Hill
rrow) . #t
2\glissando
}
-- Aaron Hill
he
spam filter, IIUC).
- eggs.gnu.org processes the mail and hands it off to lists.gnu.org.
- The email goes from "localhost" (?) to lists.gnu.org. [This is where
the delay usually happens.]
- My mail server gets the email from lists.gnu.org.
-- Aaron Hill
710 [1]
as a starting point.
[1]: https://lsr.di.unimi.it/LSR/Item?id=710
-- Aaron Hill
around the existing engraver logic and see about submitting a
patch should folks find the updated behavior desirable.
-- Aaron Hill
than
labelling the first full measure. It is interesting that all bar
numbers would be consistently aligned on the left margin, so that might
prove useful.
-- Aaron Hill
provider if they are purging emails
that quickly.
[1]:
https://lists.gnu.org/archive/html/lilypond-user/2022-02/msg00062.html
-- Aaron Hill
}
\new RhythmicStaff \with {
\improvisationOn
\override Tie.extra-offset = #'(-0.4 . -0.6)
} { \music } >>
NOTE to OP: For a single-line rhythm, consider using RhythmicStaff.
-- Aaron Hill
tweak padding #2
\tweak self-alignment-X #RIGHT
\mark \markup \italic "Repeat Rondeau I" }
}
\score { \header { piece = "Bourree I" } { \Bourree.I } }
-- Aaron Hill
n
\markup \general-align #Y #UP "Lorem"
4
\overlayText Score.NoteColumn
\markup \vcenter \whiteout \box "Ipsum"
2
}
-- Aaron Hill
c c
\glis-giu c \stemUp \glis-giu c
}
}
Since Fingerings must be inside a chord (i.e. <>) construct in order to
respect fingeringOrientations, the music functions above have to do some
manipulation of the argument. Depending on how you intend on using
these arrows in context, it might be worth the time to invent a custom
grob instead rather than cannibalize something built-in.
-- Aaron Hill
eat unfold 5{ c8 \p \cresc d e f g a b4 c8 \f b c2. }
}
-- Aaron Hill
On 2022-03-05 5:26 pm, Erika Pirnes wrote:
Thank you Aaron, it seems to work! But what does stencil mean exactly?
Sorry for the delay. Within the bound-details, the stencil refers to
the associated text or graphic that is attached to the left (or right)
end of the spanner line. In this
'Timing)
arg)
\fixed c' {
\time 3/4
\partial 4. g8 a4 %% Original syntax works.
| g2. \bar "||"
\partial { \grace { g16 } a8 b }
| a2. \bar "||"
\partial \tuplet 3/2 { g8 fis }
| g2. \bar "|."
}
-- Aaron Hill
On 2022-03-19 5:46 pm, Thomas Morley wrote:
Am So., 20. März 2022 um 00:02 Uhr schrieb Aaron Hill
:
Here would be a possible refactoring:
\version "2.22.0"
partial =
#(define-music-function (mus) (ly:music?)
(_i "Make a partial measure.")
(let* ((mom
On 2022-03-19 7:53 pm, Dan Eble wrote:
On Mar 19, 2022, at 20:53, Aaron Hill wrote:
...
A convert-ly rule would probably not be possible given the limited
power
of regular expressions. As such, \partial might need to support
both
duration and music arguments. Initially I thought this might
on, so the change to \partial usage ultimately looks
like this:
\partial 4 s4 => \partial s4
This removes the otherwise redundant specification of the duration.
-- Aaron Hill
On 2022-03-20 3:17 am, David Kastrup wrote:
Aaron Hill writes:
Fair point, though the intention here would be that backwards
compatibility would only need to exist for a time.
I strongly disagree since \partial with a duration is the natural and
proper expression when writing a separate
t the result is wrong
nevertheless.
The part combiner sometimes needs hints.
Consider adding...
\once \partCombineSoloI
...at the beginning of the second measure.
-- Aaron Hill
o use negative padding to get overlapping ink.
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
#'((minimum-distance . 4.5) (padding . -2))
-- Aaron Hill
way... but here's an option:
http://lilybin.com/1l8whf/12
Move the StaffGroup declaration outside the music. Also, you can name
contexts so you can reference an existing one to avoid creating new ones
(explicitly or implicitly).
-- Aaron Hill
state* (seed->random-state 42))
Review the Guile documentation [1]:
[1]:
https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Random.html#Random
-- Aaron Hill
(Please keep the mailing list on all replies.)
On 2022-04-05 11:06 pm, Evan Driscoll wrote:
On Wed, Apr 6, 2022 at 12:37 AM Aaron Hill
wrote:
Unsure there is a definitively "right" way... but here's an option:
http://lilybin.com/1l8whf/12
Move the StaffGroup declaration ou
On 2022-04-05 10:40 pm, Jeff Olson wrote:
Question (a):
My main question is how to write a scheme function that will invoke my
scr function N times, where N could be a number like 1000.
#(for-each add-score (map (lambda (x) #{ \scr #}) (iota 5)))
Replace 5 with whatever.
-- Aaron
iginal had the break-visibility override.
That aside, it would probably be best to use \once \omit to limit the
scope of the command's effect.
-- Aaron Hill
minate the outer call to
make-sequential-music as well:
{
$@(append-map
(lambda (x) (list
#{ $(ly:make-pitch 0 x) 4 #}
#{ \mark \markup \override #'(font-size . -3) 10 #} ))
(iota 4 1))
}
Also note the above use of #{ #} to escape music syntax within scheme,
which can often be more abbreviated.
-- Aaron Hill
alic "marc."
\relative c' {
c4
-\tweak extra-offset #'(2.1 . 1.7) _\marc
^"arco"
\f
c c c
}
\relative c' {
c4
-\tweak X-offset #2 _\marc
^"arco"
\f
c c c
}
NOTE: I think the X-offset tweak looks a little cleaner.
-- Aaron Hill
%
Hmm... maybe not. That is a lot of tweaks, and I do not think I matched
the original OttavaBracket well enough.
-- Aaron Hill
901 - 1000 of 1690 matches
Mail list logo