ple shows how \vcenter does not quite align the same as the
other option. But again, it might not matter in context so it is worth
trying as it is simpler.
-- Aaron Hill
arg3
} #}))
\markup \centered-three-lines
\line { a b c }
\line { d e }
\line { f g h }
-- Aaron Hill
#(list
(cons 'listeners
(list
(cons 'key-change-event format-event
} { \key g \major g'2 b' | \key aes \major c''2 aes' }
-- Aaron Hill
t-property
(ly:translator-context engraver)
(car (filter translator-property? '(keyAlterations keySignature)))
'())
-- Aaron Hill
\vcenter \teeny \sans x
mzzz = \makeRightOrnament \markup \vcenter \huge \bold zzz
{ f8 -\tweak padding #0.8 -\mx f'4. -\mx
f''16 -\mzzz f'''4.. -\mx }
-- Aaron Hill
On 2020-09-04 11:47 am, Tom Swan wrote:
PS: Output of /usr/local/bin/lilypond is "No such file or directory"
What about "~/bin/lilypond --version"?
-- Aaron Hill
half note,is a fifth lower so there
is no collision, or shouldn't be.
Probably need to use \partcombineApart. Consider:
\version "2.20.0"
{
\time 3/4
\clef bass
\partcombine
{ r4 e2 }
{ \once \partcombineApart a,2. }
}
-- Aaron Hill
super "add4" }
1-\markup { m \super { "add"
#(alteration->text-accidental-markup FLAT) "9" } }
1-\markup { m \super "add9" }
}
addExceptions =
#(append
(sequential-music-to-chord-exceptions addExceptionsMusic #t)
ignatzekExceptions)
music = \chordmode {
\set chordNameExceptions = #addExceptions
c:add2 d:add4 e:add9 f:add11+
c:madd2 d:madd4 e:madd9 f:madd9-
}
<< \new ChordNames \music \new Staff \music >>
-- Aaron Hill
an equivalent
"stroke-dasharray" attribute to the SVG output. Looking at how
\draw-dashed-line works should provide a useful reference.
-- Aaron Hill
On 2020-09-07 1:20 pm, Aaron Hill wrote:
Given a cursory glance, it would seem doable. One would need to
copy/borrow the existing logic for \path and then add a suitable
"setdash" command to the PostScript output and an equivalent
"stroke-dasharray" attribute to the SVG out
On 2020-09-07 4:38 pm, Aaron Hill wrote:
On 2020-09-07 1:20 pm, Aaron Hill wrote:
Given a cursory glance, it would seem doable. One would need to
copy/borrow the existing logic for \path and then add a suitable
"setdash" command to the PostScript output and an equivalent
"s
we can \tweak the
extra-spacing-width of the NoteHead to ask LilyPond to reserve more
space before the note. No such \tweaking is needed for \fx to avoid
collision.
-- Aaron Hill
ruct tricky when
being reused for Dynamics.
Stripping out the VoiceSeparator *might* work:
removeVoiceSeparator =
#(define-music-function (music) (ly:music?)
(define (not-music-separator? m) (not (music-separator? m)))
(music-filter not-music-separator? music))
<< \new Voice \musicI
\new Dynamics \removeVoiceSeparator \musicI >>
Whether this brings about new issues, I could not say.
-- Aaron Hill
On 2020-09-11 3:25 pm, Claire Meyer wrote:
Hi,
I've got a problem with a tie not appearing. My problematic bar is as
follows :
upperHighB = \relative c'' {
d8 bes |
}
Try forcing the Tie downwards:
... ...
-- Aaron Hill
(apply ly:stencil-add (list lp rp
(ly:slur::print grob)
\etc
{ g'4\parenthesizeSlur (
\parenthesizeSlur \( b' c''2 ) |
g'2\parenthesizeSlur ( f'4 e' ) \) }
-- Aaron Hill
e = ##t
right-text = \markup \fontsize #-5 \bold "]"
right-X-align = #LEFT
right-rotate = ##t
}
{ g'4 \parenthesizeSlur (
\bracketSlur _\( b' c''2 ) |
b'4 \arrowSlur ( a' c''2 ) \) }
While this might need some refactoring and could be harboring bugs, it
is a bigger step towards a more generalized system; and I wanted to get
this posted sooner than later.
-- Aaron Hill
d-right = ##f }
\layout { \context { \Score \omit BarNumber } }
{ g'4 \bracketizeSlur _\(
\parenthesizeSlur ^( b' c''2 ) |
b'4 \arrowizeSlur ^( a' c''2 ) \) |
g'2 \bracketizeSlur ^\(
\arrowizeSlur _( b'4 a' ) |
g'2 \parenthesizeSlur _( a'4 c'' ) \) |
g'2 \bracketizeSlur ^\(
\parenthesizeSlur _( b'4 a' ) |
g'2 \arrowizeSlur _( a'4 c'' ) \) |
g'4 \bracketizeSlur _\(
\arrowizeSlur ^( b' c''2 ) |
b'4 \parenthesizeSlur ^( a' c''2 ) \) |
\bar "|." }
-- Aaron Hill
(text .
#f))
Tempo: ((tempo-unit . #) (metronome-count . 60) (text .
"Text"))
Tempo: ((tempo-unit . #f) (metronome-count . #f) (text . "Text"))
Success: compilation successfully completed
-- Aaron Hill
On 2020-09-16 4:13 pm, Aaron Hill wrote:
On 2020-09-16 12:09 pm, Lukas-Fabian Moser wrote:
I'm sure more knowledgeable people will be able to provide more
insightful answers, but for what it's worth: Looking at
lily/parser.yy, I see
tempo_event:
TEMPO steno_duration '
ems...
Layout output to `tempo-function.cropped.eps'...
Converting to PNG...
Deleting `tempo-function.cropped.eps'...
Success: compilation successfully completed
-- Aaron Hill
that sets a tempo but does other
things, so tightening down the interface as you suggest could be overly
restrictive.
The only addition I would recommend would be to add an informative
warning (or error) should the provided music contain more than one
\tempo command as that would be somewhat ambiguous.
-- Aaron Hill
On 2020-09-17 1:30 am, Aaron Hill wrote:
On 2020-09-17 1:14 am, Lukas-Fabian Moser wrote:
Hi Aaron,
The three forms
* \tempo 4 = 96
* \tempo Crazy 4 = 260-270
* \tempo "Sluggishly slow"
are hardcoded as variants into the parser. My guess is that this
might
be hard (or impo
\stopBend \once \hideNotes $mus}
#}
)
Something like this would allow me to type \addQuarterBend c’8 to just
decorate that note with a bend.
This seems connected to the question posted on Reddit [1] I answered.
[1]: https://www.reddit.com/r/lilypond/comments/iu06jp/
-- Aaron Hill
function should the provided
music not be appropriate.
-- Aaron Hill
tronome-count }
\line { \italic text is #text }
}
#}))
\describeTempo \tempo 4 = 50
\describeTempo \tempo "Text" 8. = 60-70
\describeTempo \tempo \markup \bold "Text"
-- Aaron Hill
'4
\once \override BalloonTextItem.annotation-balloon = ##f
\balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
d'4
}
-- Aaron Hill
st handling MIDI tempo manually, that way you can issue as
many \tempo commands as needed to properly simulate the accel, rall, and
rit instructions.
Otherwise, this whole thing really looks like a job for a custom
engraver/performer.
-- Aaron Hill
el awkward and
potentially circuitous. Initially, I had no idea what you intended to
do with the information from the \tempo command. Now, it is as if all
you need is a normal MetronomeMark aligned to the end of a TextSpanner.
After all, reusing is preferred to reinventing.
So while you could continue to develop the function above, perhaps time
would be better spent solving the underlying issues that necessitated
creating this function in the first place. Though, that discussion
would likely merit its own thread.
-- Aaron Hill
ery good, especially
since one might want to terminate a span with an invisible \tempo. (See
my example above with \startRitSpan.)
I wonder if the parser's \etc could support defining new functions that
borrow the syntax from built-in ones:
% What we can do today... %
hideTempo = \once \omit Score.MetronomeMark
{ \hideTempo \tempo 4 = 90 }
% What would be nice to do... %
hiddenTempo = {
\once \omit Score.MetronomeMark
\tempo \etc
}
{ \hiddenTempo 4 = 90 }
That might be asking too much.
-- Aaron Hill
!
It is good to have the "non-programmer" perspective. Mind you, I would
argue your use of LilyPond and interest in Scheme means you have already
begun your journey as a programmer. (:
-- Aaron Hill
4 | f'8 d' c'
\change Staff = lower
a g2
}
-- Aaron Hill
s thick scale-x scale-y closed? #f)
stroke)))
{
\override NoteHead.stencil = \tri
\override NoteHead.stem-attachment = #'(1 . 0.7)
e'4 f' g' a'
}
-- Aaron Hill
;2
\tweak non-musical ##f
\tweak X-offset #-2.5
\offset Y-offset #2
\parenthesize
\breathe
c''4 c''
c''2
\tweak ParenthesesItem.extra-offset #'(-2 . 0)
\tweak extra-offset #'(-2 . 0)
\offset Y-offset #2
\parenthesize
\breathe
c''4 c''
}
-- Aaron Hill
pattern))
(,midpoint 1 ,(car end-pattern) ,(cdr end-pattern))) #} )
{ \once \dashHelper PhrasingSlur solid #0.3 dashed g'2\( e''4 d''\)
\once \dashHelper Slur dotted #0.7 solid b'4_( a'8 e' f'2)
\once \dashHelper Tie solid none g'2.~ 4 }
-- Aaron Hill
amic pp
\override #'(width . 2.8)
\espressivo \dynamic p
\override #'(height . 1.5)
\espressivo \dynamic f
}
}
-- Aaron Hill
(m)
(let ((p (ly:music-property m 'pitch)))
(if (and (ly:pitch? p) (ly:pitch4. }
-- Aaron Hill
ere. Why
does my example go wrong, yet the LSR one doesn't?
Hmm, I wonder if the snippet author meant: #'(0.5 . -inf.0)
-- Aaron Hill
c'? Yes, because \\relative says so." b c d }
c b c2
}
Note that I went ahead and defined an OssiaStaff context so that
properties relating to it are not buried within the \ossia function.
Also a little refactoring should make the function's logic a little
easier to follow.
-- Aaron Hill
ill appear *above* them. }
music following
}
%%%%
-- Aaron Hill
/lilypond/-/issues/4375
[2]:
http://lilypond.org/doc/v2.21/Documentation/notation/writing-rests#index-length-of-multi_002dmeasure-rest
-- Aaron Hill
." between the hands. As
such, I just use TextScripts to implement them. Only in a few cases
have I bothered to instantiate a Dynamics context to vertically align
performance instructions.
I wonder if there is value in having something like \textTempo or
\dynamicTempo that work in a similar fashion to \tempo but produce
TextScripts and DynamicTexts, respectively.
-- Aaron Hill
es of tests and usage
examples.
(I had to include my UTF8 string splitting code in order to handle CJK
characters properly, so you will need to scroll down a bit to get to the
markup command itself.)
-- Aaron Hill\version "2.20.0"
#(define (utf8->utf32 lst)
"Converts
oLeft" \new Voice { \PianoLeftMusic }
% . . .
-- Aaron Hill
On 2020-10-03 5:05 am, Martín Rincón Botero wrote:
Doesn’t it work if you just \set Staff.timeSignatureFraction = 3/2
together with the new time signature?
Alternately, \unset the property when you are done with it.
-- Aaron Hill
timeStencil \markup \vcenter \huge \bold V
\time 5/4
| a'4 b'4. c''8 b' a' b'4
\time 6/8
| a'8 g' fis' gis'4. \bar "|."
}
-- Aaron Hill
'(width . 3) {
mp \hairpin #CRESC
f \override #'(circled-tip . #t)
\hairpin #DECRESC
pp
} #})
{ b'2( \"mpopp" c''16 b' a' b' a'4) }
-- Aaron Hill
ob-set-property! grob 'X-extent
(cons (- (car xext) offset)
(+ (cdr xext) offset)))
#{ \override LyricText.before-line-breaking = #proc #})
{ \time 7/8 a'8[ b' c'' a' b' g' a'] }
\addlyrics {
\enforceMinimumLyricWidth #5
la laa laaa l laaa laa la
}
-- Aaron Hill
clearly demonstrates
the pros and cons.
- Aside from the fact that lying about X-extent is perilous, I am
curious why the \override for LyricText.X-extent occurs within the
\spiritus music variable and not the \spirLyr variable that is already
within the Lyrics context.
-- Aaron Hill
le { b' } }
\addlyrics { lor -- em i -- psum }
Note that if you wanted the default behavior to be slurred, change the
type predicate from (symbol? #f) to (symbol? 'slurred). Then you can
simply specify any other symbol (such as "unslurred") to opt for the
original \melisma/
h more flexibility at the cost of no longer automatically
adding \melisma/\melisaEnd nor Slurs. In fact, the example shows a
PhrasingSlur starting in one "syllable" ending in the following.
NOTE: This function does not handle chords properly.
-- Aaron Hill
shape might even be better, but since we have
code
out there that uses \shape but is not \shapeII compliant, we can't
really
use \shape.
\reshape ?
-- Aaron Hill
s so that they would
scale properly and be consistent from measure to measure. Try changing
the "2*4" in the second note group to "2*3" or "2*5" and note how the
entire spacing of the piece is impacted.
-- Aaron Hill
On 2020-10-07 5:00 pm, Andrew Bernard wrote:
Has anybody written a script to find the highest and lowest notes in a
part or a score etc?
Seems like something the Ambitus_engraver would help with.
In what format do you need the information?
-- Aaron Hill
options. Note that each articulation has its
own preferred spacing and alignment, so you may need to play around a
bit to find one that matches your needs.
-- Aaron Hill
ent to sample it, you
will have to seek out a good existing SoundFont/SFZ and then modify the
pitch range of the extremal samples to extend them as far as you need.
-- Aaron Hill
) (#props args)> (""
xex=(+inf.0 . -inf.0)
yex=(+inf.0 . -inf.0)
arg=(# ((#line-markup (layout props args)> (" ")) (#props args)> (" "
xex=(0.0 . 0.614579527559055)
yex=(-3.0 . 0.0)
Same output for:
version=(2 19 55)
version=(2 20 0)
version=(2 21 6)
-- Aaron Hill
o use \vcenter. Consider:
\override Score.TimeSignature.stencil =
#(lambda (grob)
(grob-interpret-markup grob #{
\markup {
\musicglyph "timesig.C44"
\vcenter \number 2
} #}))
-- Aaron Hill
havior only reproduces
using the SVG backend.
This is a bug in 2.20.0 and earlier, where \line { "" } does not resolve
to an empty-stencil but rather a point-stencil, so it ends up taking up
space when it should not.
This appears to have been resolved in 2.21.x.
-- Aaron Hill
is to zero
will round the values to be exactly on the staff line. Using (* 0.5
dir) would result in a position exactly halfway between staff lines.
Finally, my rationale for (* 3 th dir) is to use the thickness of the
staff lines to help position the tie to be reasonably close to the line.
-- Aaron Hill
s in the middle of the measure. It only happens when an alternate
ending doesn't contain a full measure of notes.
Any thoughts? I really appreciate you guys.
Don't you need to \unfoldRepeats when doing MIDI output?
\score {
\new Staff \unfoldRepeats \rightHand
\midi { }
}
-- Aaron Hill
\\ { g,4 fis, f, } >>
}
Changing minimum-distance might be your best option to avoid needing to
manually adjust and/or specify the staff-position for rests.
-- Aaron Hill
x27;hufnagel \break
2. r4 \override Staff.Custos.style = #'mensural \break
2. r4^\markup \transparent \draw-line #'(9 . 0) }
The above hack does nothing more than add a fake NoteHead that overlaps
the Custos grob so that the LedgerLineSpanner does its magic.
-- Aaron Hill
he RestCollision behavior seen is a bug
and that bug is resolved at a future time, it is much easier to find and
remove usage of \split or just make \split a dummy function that does
not modify music.
-- Aaron Hill
\visualizeBounds normal
\abs-translate #(cons (ly:cm 4) 0)
\abs-override #(cons 'line-width (ly:cm 2.5))
\with-color #'(0.2 0.5 0.8)
\visualizeBounds right
}
-- Aaron Hill
ach, there is no need to mess about with "absolute"
measurements. Staff space units are generally pretty nice to work with
anyway.
-- Aaron Hill
md5 9e62046ed1eda2d79bc70b01c6b20476
sha256 4ee344b2463aa37fcd5ccb6e40e205b94a3b4c7433b0eae340e2855805f80859
Seems something is afoot with your VM. Curious if you get the same
behavior using `curl -O ...` compared to wget.
-- Aaron Hill
uot;2.18.2"
\score {
\header { piece = asdf }
{ \time 3/4 a'2 b'4 \bar "|." }
}
-- Aaron Hill
hem and then hiding
the connecting bar.
That's the SystemStartBar.
\layout {
\context {
\Score
\omit SystemStartBar
}
}
-- Aaron Hill
uot; hymnAlist "error")
\markup \hymnValue
Jean already covered the bit about quasi-quoting.
But there is no need to do this as you can store values in an alist
using dot syntax in LilyPond:
hymn.id = "643"
hymn.meter = "6 6 11 6 6 11 D"
\markup #(ly:assoc-get 'id hymn "no value")
\markup #(ly:assoc-get 'tune hymn "no value")
\hymn automatically is an alist.
-- Aaron Hill
t;treble_8"
\voices 1,4,2 <<
\classicalGuitarA \\
\classicalGuitarB \\
\classicalGuitarC
>>
}
That's the closest I can get it to match.
NOTE: I am using a newer version of LilyPond that supports the \voices
command.
-- Aaron Hill
ymbol->string name)
\score { $music }
} #}))
\book {
\bookOutputSuffix "bookparts"
\aBookPart three { c'8 d' e' fis' g' a' b' c'' }
\aBookPart four { c'8 d' e' f' g' a' bes' c'' }
}
-- Aaron Hill
them in a function. Though, without parameterization, I would wonder
why you could not just use \book or \bookpart directly.
-- Aaron Hill
get (if (pair? key) (car key) key) alist args)))
foo.one.two.three.four = "!"
\markup #(assoc-get* '(one two three four) foo "?")
\markup #(assoc-get* '(one two five six seven) foo "?")
-- Aaron Hill
ulate it is of course fine.
I'm missing something fundamental.
That's one of the features of \articulate. Absent of instruction to
keep notes legato, it shortens the length of notes to slightly detach
them.
-- Aaron Hill
ore { \music \layout {} }
\score { \articulate \music \midi {} }
You can use tags to mark things for MIDI only:
\version "2.20.0"
\include "articulate.ly"
music = { c'2\tag #'midi ( d'4 e' f'1 \tag #'midi ) }
\score { \removeWithTag #'(midi) \music \layout {} }
\score { \articulate \music \midi {} }
-- Aaron Hill
ur usage above only applies to the R1*24.
The solution is to use the function at a more top-level scope.
\version "2.20.0"
global = {
\skip 1*24
\mark \default
\skip 1*12
\mark \default
\skip 1*12
}
music = \compressMMRests {
R1*24
R1*12
R1*12
}
\new Staff << \global \music >>
-- Aaron Hill
.ly'
Parsing...
value = 123
Success: compilation successfully completed
-- Aaron Hill
rmat #f "S~d" (@ (guile-user) part)))
""))
Interesting. I don't understand the '@' syntax -- been trying to look
it
up but so far to no avail.
https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Using-Guile-Modules.html#Using-Guile-Modules
-- Aaron Hill
partName
(if (defined? 'part)
(string-append "S" (number->string part))
""))
Use formatted output instead of manual string conversion/concatenation.
(define partName
(if (defined? 'part)
(format #f "S~d" part)
""))
-- Aaron Hill
Number =
#(define-music-function
(number) (number?)
#{ \once \override Score.BarNumber.break-visibility = #all-visible
\set Score.currentBarNumber = #number
\bar "" #})
\markup {
\score { { \initialBarNumber 2 \AB.2 } }
\score { { \initialBarNumber 13 \AB.13 } }
}
-- Aaron Hill
that spacing may be just at a cusp where it could fit to three
systems but LilyPond decides to throw in a fourth system. Thus then the
notes are forced to space further apart to fill the extra system.
Just a thought.
-- Aaron Hill
e ties unsupported? It would be a
pity to redo hundreds of pages just for the MIDI version of the score.
Do you have a MWE that shows how you do things? The following works
fine:
\version "2.20.0"
\score{
{ \time 3/4 4 ~ 4 ~ 4
4 }
\layout {} \midi {}
}
-- Aaron Hill
ies?
I am wondering if your usage is confusing the Tie_performer, and we need
to get a bug filed to fix that.
-- Aaron Hill
" #'("|." ".|:" #f)
\markup \bold \typewriter "\".|:-|.\""
{ R1 \bar ".|:-|." \break R1 }
As shown in the second example, sometimes you need to define your own
custom type if LilyPond does not provide what you need already.
-- Aaron Hill
On 2020-10-25 6:25 am, Christian Masser wrote:
Aaron Hill schrieb am So., 25. Okt. 2020,
04:38
You have to use a special bar line type when it breaks across a line:
\version "2.20.0"
\paper { indent = 0 line-width = 3\cm ragged-right = ##f }
\markup \bold \typewriter "\
he "Trio" section. As to which, that is probably personal
taste.
-- Aaron Hill
veto ,(/ dx 3) 0 ,dx ,(* dy 2/3) ,dx ,dy)))
(cons (- lx sx) (- rx sx))
(cons (+ 0.5 (min 0 dy)) (+ 0.5 (max 0 dy))
bendGlissando =
\tweak thickness #2
\tweak stencil #bend-glissando-print
\glissando
{ c''2. \bendGlissando
\once \override NoteColumn.glissando-skip = ##t
e'4 gis'1 }
-- Aaron Hill
On 2020-10-26 10:54 pm, Aaron Hill wrote:
On 2020-10-26 7:37 pm, 98123981293 1293812397123 wrote:
Hi list,
I usually use the following snippet to handle glissandi across hidden
noteheads:
glissandoSkipOn = {
\override NoteColumn.glissando-skip = ##t
\hide NoteHead
\override
On 2020-10-26 10:56 pm, Aaron Hill wrote:
On 2020-10-26 10:54 pm, Aaron Hill wrote:
On 2020-10-26 7:37 pm, 98123981293 1293812397123 wrote:
Hi list,
I usually use the following snippet to handle glissandi across hidden
noteheads:
glissandoSkipOn = {
\override NoteColumn.glissando-skip
he logic to look for typed music:
% . . .
guitbarre =
#(define-music-function (barre location str music) (string? ly:music?)
(let ((elts (extract-typed-music music '(rhythmic-event
% . . .
-- Aaron Hill
"Arno Pro Regular," as the font name. Note the intentional trailing
commas there.
-- Aaron Hill
a centered LyricHyphen
between two LyricTexts. Saying "letz-te" counts as a single LyricText.
\version "2.20.0"
\relative c' {
\autoBeamOff
\set melismaBusyProperties = #'()
r8 f f[ b] b[ c c d] |
}
\addlyrics {
Der letz -- te Sum -- mer war sehr |
}
-- Aaron Hill
\unfoldRepeats, LilyPond cannot obey other
instructions to "da capo" or "dal segno al coda". Users who want the
MIDI to be accurate will have to manually rejuggle their music anyway.
-- Aaron Hill
acket instead of the
curly brace. It seems like I will have to manually "draw" the bracket
using markup functions and/or custom PostScript.
Has anyone here attempted something like this and can offer advice?
-- Aaron Hill
___
lilypond-u
and
up) so that it can quite used quite conveniently by directly stating
how far
it should reach down and up (with the baseline as a reference).
Many thanks, Torsten! That custom command is exactly what I need, as it
produces a simple, clean marking.
-- Aaron Hill
On 2018-04-21 04:49, Torsten Hämmerle wrote:
But looking into the code and seeing how these brackets are being
constructed, there is a ly:bracket command that can be used for
creating a
bracket stencil quite easily . . .
I should definitely set aside some time to dive in and get more familiar
.
P.S. It is only my intent to provide some hard details here, not to fan
any flames. The general discussion of FLOSS vs. proprietary is
obviously an important one, though I would wonder if this mailing list
is the right venue. Of course, I am new here, so feel free to
disregard.
of emphasis. A whole note would imply a steady volume throughout,
whereas the quarters could be indicating a subtle, pulsing volume change
in time with the upper voice.
-- Aaron Hill
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.g
On 2018-04-24 19:58, Mark Stephen Mrotek wrote:
Hello,
Tried to download for Windows. Get a "404 not found" error message.
Please direct me.
Thank you,
Mark
Try here: http://lilypond.org/downloads/binaries/
-- Aaron Hill
___
lil
):
http://lilypond.org/downloads/binaries/linux-64/lilypond-2.19.81-1.linux-64.sh
Mac (Intel):
http://lilypond.org/downloads/binaries/darwin-x86/lilypond-2.19.81-1.darwin-x86.tar.bz2
Windows:
http://lilypond.org/downloads/binaries/mingw/lilypond-2.19.81-1.mingw.exe
-- Aaron Hill
601 - 700 of 1042 matches
Mail list logo