combining multimeasure rests

2012-12-21 Thread Shevek
I am finding that there are many situations in which it is useful for me to
insert a tagged command in the midst of a block multimeasure rest, for
example to manually set the partcombine mode. When I extract the individual
parts, though, I need to be able to consolidate multimeasure rests except
where a rehearsal mark would break them. For example:

\version "2.16.0"

clI = \relative c' {
  \tag #'score \partcombineSoloI
  f4 g a b |
  R1 |
  \tag #'score \partcombineSoloII
  R1 |
}

clII = \relative c' {
  R1*2 |
  f4 e d c |
}

\partcombine \clI \clII

% Is there a way I can make these multimeasure rests display as a single
2-bar rest?
{ \compressFullBarRests \removeWithTag #'score \clI } 
{ \compressFullBarRests \clII }





--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/combining-multimeasure-rests-tp138271.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


new snippet: combine multimeasure rests

2013-04-18 Thread Shevek
I just finished writing my first Scheme extension for Lilypond! It is a
function to take a sequential music expression and condense consecutive
multimeasure rests into a single multimeasure rest. Since this is my first
attempt at Scheme, I'd love suggestions on how to improve it. One thing I'd
like is to make this something that can be turned on with a single line in a
layout block, instead of a function that needs to be included with every
staff or voice.

% \version "2.14.2"
\version "2.16.0"

#(define (add-durations dur1 dur2) (ly:duration? ly:duration?)
 (let* ((len1 (ly:duration-length dur1))
(len2 (ly:duration-length dur2))
(mult (ly:moment-div (ly:moment-add len1 len2) len1)))
   (ly:make-duration (ly:duration-log dur1) 
 (ly:duration-dot-count dur1) 
 (* (ly:duration-scale dur1) (ly:moment-main
mult)

#(define (combinable-rest? rest)
 (and (ly:music? rest)
  (eq? 'MultiMeasureRestMusic (ly:music-property rest 'name))
  (null? (ly:music-property rest 'articulations

#(define (combine-mm-rests rest1 rest2) (combinable-rest? combinable-rest?)
 (make-music 'MultiMeasureRestMusic
   'duration (add-durations (ly:music-property rest1 'duration)
(ly:music-property rest2 'duration))
   'articulations '()))

#(define (consolidator curr rest) (ly:music? ly:music?)
 (if (null? rest)
 (cons curr rest)
 (if (combinable-rest? (car rest))
 (consolidator (combine-mm-rests curr (car rest))
   (cdr rest))
 (cons curr rest

#(define (accumulate-result output input) (list? list?)
 (if (null? input)
 output
 (let ((done output)
   (curr (car input))
   (rest (cdr input)))
  (if (null? rest)
  (append done (list curr))
  (let ((prev (if (combinable-rest? curr)
  (consolidator curr rest)
  (cons curr rest
   (accumulate-result (append done (list (car
prev))) (cdr prev)))

#(define (sequential-music? music)
 (and (ly:music? music)
  (eq? 'SequentialMusic (ly:music-property music 'name

combineMMRests = 
#(define-music-function (location parser music) (sequential-music?)
(make-music 'SequentialMusic
  'elements (accumulate-result '() 
(ly:music-property
music 'elements

test = {
  \compressFullBarRests
  R1\fermataMarkup
  R1*2
  \tag #'foo \key e \major
  R2*6
  c1
  R1
  R2.*4
}

{ \removeWithTag #'foo \test }

{  \combineMMRests \removeWithTag #'foo \test }

Thanks for looking! I hope someone finds this useful.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/new-snippet-combine-multimeasure-rests-tp144688.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: new snippet: combine multimeasure rests

2013-04-21 Thread Shevek
Oh, oops! Fixed that in the new version. Other changes:

* Added a wrapper function to recurse down nested music expressions, so it
can now be called on arbitrary music expressions.
* It now combines spacer rests as well as multimeasure rests, to help with
things like << \global \music >>
* Bar checks between combinable rests no longer prevent rests from being
combined.
* A few other minor things.

% \version "2.14.2"
\version "2.16.0"

#(define (add-durations dur1 dur2)
 (let* ((len1 (ly:duration-length dur1))
(len2 (ly:duration-length dur2))
(mult (ly:moment-div (ly:moment-add len1 len2) len1)))
   (ly:make-duration (ly:duration-log dur1) 
 (ly:duration-dot-count dur1) 
 (* (ly:duration-scale dur1) (ly:moment-main
mult)

#(define (combinable-rest? rest)
 (and (ly:music? rest)
  (or (eq? 'MultiMeasureRestMusic (ly:music-property rest
'name))
  (eq? 'SkipEvent (ly:music-property rest 'name)))
  (null? (ly:music-property rest 'articulations

#(define (combine-rests rest1 rest2)
 (make-music (ly:music-property rest1 'name)
   'duration (add-durations (ly:music-property rest1 'duration)
(ly:music-property rest2 'duration))
   'articulations '()))

#(define (consolidator curr rest)
 (if (and (combinable-rest? curr)
  (not (null? rest)))
 (if (and (combinable-rest? (car rest))
  (eq? (ly:music-property curr 'name) (ly:music-property
(car rest) 'name)))
 (consolidator (combine-rests curr (car rest))
   (cdr rest))
 (if (eq? 'BarCheck (ly:music-property (car rest) 'name))
 (consolidator curr (cdr rest))
 (cons curr rest)))
 (cons curr rest)))

#(define (accumulate-result output input)
 (if (null? input)
 output
 (let ((done output)
   (curr (car input))
   (rest (cdr input)))
  (if (null? rest)
  (append done (list curr))
  (let ((prev (consolidator curr rest)))
   (accumulate-result (append done (list (car
prev))) (cdr prev)))

#(define (condense music)
 (let* ((output music)
   (elts (ly:music-property output 'elements))
   (elt (ly:music-property output 'element)))
  (if (pair? elts)
  (ly:music-set-property! output 'elements (map condense
(accumulate-result '() elts
  (if (ly:music? elt)
  (ly:music-set-property! output 'element (condense elt)))
  output))

combineMMRests = 
#(define-music-function (parser location music) (ly:music?)
(condense music))

test = \relative c' {
\compressFullBarRests
R1\fermataMarkup
R1*2 |
\tag #'foo {
  \key e \major
}
R2*6 |
c1
<<
  {
R1 |
R2.*4 |
  }
  {
s1*2
s1*2
  }
>>
s1*2 |
R1*2
  }

{ \test }
{ \combineMMRests \removeWithTag #'foo \test }



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/new-snippet-combine-multimeasure-rests-tp144688p144830.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: An idea for a systematic development of a large score.

2013-05-17 Thread Shevek
I do all of my composing in Lilypond, and have completed numerous large
ensemble projects of significant length. I'd estimate I've written around
20,000 lines of Lilypond and Scheme code in the last two years. My preferred
file structure continues to evolve, but it is basically the following:

Project folder:
* project_score.ly
* project_parts.ly
* project.ly
* project_lib.ily

/home/me/.lily/:
* macros.ily
* orchestral_style.ily
* macros/

It's pretty self-explanatory. I include \version and \language in every
Lilypond file, without exception. I define all of my music variables in
project.ly, including global. I prefer this to having a file for each
instrument, because it makes keeping track of versions easier; I suppose if
I used a version management system, that wouldn't be a problem, but at the
moment I just put ascending numbers at the end of the file name :p. I use a
standardized naming convention for variable names, quote names, and context
names. I always define \global first, then I go in score order, say \fluteI,
\fluteII, etc. I do not use music variables for motives or themes: I
explicitly write all of my music from beginning to end, and I use \transpose
and \transposition to write all instruments in concert pitch. 

At the end of project.ly, I \addQuote for \fluteI, \fluteII, all the way
through the variables in score order. That allows me to use \cueDuring when
I make instrumental parts. I make copious use of \tag and \removeWithTag,
for example to include enharmonic key changes in transposing parts, for
overrides that are only to be used in score or in parts, and to exclude
nested contexts like chord symbols or divisi staves from \addQuote.

In larger projects, editing project.ly can get cumbersome if each variable
is 1,000 lines long; suppose I want to change a note in measure 67 in
\fluteII and \violinI? To make editing easier, I break the variables up into
\fluteIsectionA, \fluteIsectionB, etc. The project.ly file then starts with
all of the sectionA variables in score order, then all the sectionB
variables in score order, etc. In such projects, I use an additional file
called project_form.ly, which \include's project.ly, and which defines the
variables \fluteI, \fluteII, etc., using the sectional variables. I wouldn't
recommend using this kind of scheme except in very large projects, because
things get hairy when one instrument has a crescendo over the break between
sections. It is better to write all of the music for each instrument in a
single variable.

I use \bookpart to keep the \score expressions for all of my instrumental
parts in one file. This also has the advantage that I get a single PDF of
all of the parts. I begin this file with a global \layout block, which
allows me to easily apply overrides to all the parts at once.

I have a multi-layered system for reusing snippets and style information.
The most basic level is, of course, overrides in the project.ly,
project_score.ly, or project_parts.ly files. The next layer is the
project_lib.ily file, which includes the \header block for the project, the
title and front-matter markup, a \layout block of project-specific but
project-wide overrides, and any snippets or macros that I only want to use
in this project. When I use a snippet from LSR for the first time, I almost
always copy and paste it into a project_lib.ily file. Macros that I
frequently redefine for different projects, like \mute (will it be "mute" or
"senza"?) also go in project_lib.ily.

Anything that I want to reuse between projects goes in the .lily folder,
which I have added to my Lilypond path. macros.ily includes short snippets
and miscellaneous macros, such as common \once\override's and a list of
common markup expressions. It also \include's all of the files in the
.lily/macros folder. The files in the macros folder are longer snippets or
collections of snippets related to a common task, such as jazz notation. The
other files in .lily are stylesheet files like orchestral_style.ily or
chamber_style.ily, which contain \layout blocks with most of the overrides I
use, custom contexts, etc. I am fairly conservative about adding or removing
things from my stylesheets, since they each apply to many projects. Instead,
I can contradict the stylesheet with overrides in project_lib.ily, as long
as I \include "project_lib.ily" after I \include "orchestral_style.ily."



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/An-idea-for-a-systematic-development-of-a-large-score-tp146017p146032.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Does the optimal-page-breaker work?

2013-05-27 Thread Shevek
I recommend playing with system-count and systems-per-page. I have found this
to be the best way to get Lilypond's page breaking algorithms (I usually use
optimal page breaking, but this goes for any of them) to give good results.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Does-the-optimal-page-breaker-work-tp146321p146383.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: moving LilyPond blog to our website

2013-06-04 Thread Shevek
Have you considered using a Jekyll based CMS?



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/moving-LilyPond-blog-to-our-website-tp146656p146679.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


best practices for divisi string writing

2011-09-26 Thread Shevek

I'm a composer that has been using Finale for around 10 years, but recently
switched to Lilypond almost exclusively. The reasons for my switch are
numerous, including that I run Linux, Lilypond's beautiful engraving, and
the natural way Lilypond supports a variety of extended notations. I've been
incredibly impressed by the ease of my transition from Finale (it probably
helps that I am comfortable reading code), and I don't plan to go back any
time soon.

I've been able to figure out how to do most things I'd want to do
"idiomatically" in Lilypond, thanks to the wonderful documentation. One
thing that I have had trouble figuring out, though, is the best way to do
divisi string writing in Lilypond. \partcombine with custom texts seems like
a good option for simple divisi passages that alternate with unison, but
when one part has rests, the rests disappear, when really they should
display. There are a variety of techniques described in the documentation
for ossia staves that could very easily be adapted for divisi staves, but
I'm unclear as to which would be the best. Ideally, I'd like to separate
content (the music expressions) from the presentation (whether the parts are
displayed on one or multiple staves) as much as possible, so that I can
reuse the content to generate parts. Parts and score, naturally, may need to
present the divisi passages differently, with some notated in score on the
same staff, but in separate staves in the part.

I'd really appreciate any suggestions for how to do this.
-- 
View this message in context: 
http://old.nabble.com/best-practices-for-divisi-string-writing-tp32503916p32503916.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: best practices for divisi string writing

2011-10-26 Thread Shevek



Keith OHara wrote:
> 
> I find it awkward to split the music among variables, so I learned to use
> the \tag system to mark different formatting options for part or score.
> 

Aha! Tags are exactly what I wanted. I need to play around with it to figure
out a nice general method, but I think some combination of tags and
instrumentChanges will accomplish all the things I need to do.
-- 
View this message in context: 
http://old.nabble.com/best-practices-for-divisi-string-writing-tp32503916p32728162.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Divisi in separate staves

2011-10-26 Thread Shevek



Vaughan McAlley wrote:
> 
> Greetings,
> 
> I’m working on a string orchestra piece which has two cello parts,
> both independent enough to warrant separate staves, except for 24 bars
> in the middle where they are in unison. It would be nice in the score
> to mark it "unis." and leave out the second cello for the duration of
> the unison, much like RemoveEmptyStaffContext does with lines
> containing rests. It looks like it might be able to be done by using
> quotes and telling RemoveEmptyStaffContext that quoted music is
> "uninteresting".
> 
> Is this possible, or is there a better way to approach it?
> 

See 
http://old.nabble.com/best-practices-for-divisi-string-writing-to32503916.html
this thread. 

-- 
View this message in context: 
http://old.nabble.com/Divisi-in-separate-staves-tp32714998p32728168.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


bug in tremolo snippet?

2011-10-26 Thread Shevek

I've been playing around with the " http://lsr.dsi.unimi.it/LSR/Item?id=604
consecutive tremolos " snippet, but I can't seem to get it to work. My
output only ever produces single slash tremoli, and raises the error,
"warning: tremolo duration is too long" whenever there are eighth notes or
shorter. Strangely, when I apply the unfoldTremolos function from the same
snippet, the tremoli correctly unfold into sixteenth notes.

Since I am a total beginner when it comes to Scheme, I'd really appreciate
some help figuring this out.

http://old.nabble.com/file/p32728588/consecutive_tremolos.png 
-- 
View this message in context: 
http://old.nabble.com/bug-in-tremolo-snippet--tp32728588p32728588.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


help with writing scheme function for divisi

2011-10-27 Thread Shevek

I just hacked together a couple simple functions to streamline the process of
divisi writing. They basically work, but I have a couple issues. First, why
does the instrumentCueName display three times? Is there a way to get it to
only display once? Second, it's a bit annoying to have to enter \voiceOne
and \oneVoice in the non-divisi voice. Is there a way to e.g. set \oneVoice
not for the current context, but rather for a different named context?


\version "2.14.2"
\language "english"

\paper {
  left-margin = 1\in
  right-margin = 1\in
  top-margin = 1\in
  bottom-margin = 1\in
  ragged-bottom = ##t
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  bookTitleMarkup = ##f
  scoreTitleMarkup = ##f
}

divisiDown = #(define-music-function
  (parser location staff grp_name s1_name s2_name)
  (string? markup? markup? markup?)
  (make-sequential-music
(list
  #{
\set Staff.shortInstrumentName = $s1_name
  #}
  (make-music
'ContextChange
'change-to-id staff
'change-to-type 'Staff)
  #{
\set StaffGroup.shortInstrumentName = $grp_name
\set Staff.shortInstrumentName = $s2_name
\oneVoice
  #}
  )
)
  )

divisiUp = #(define-music-function
  (parser location staff grp_name s_name cue)
  (string? markup? markup? markup?)
  (make-sequential-music
(list
  (make-music
'ContextChange
'change-to-id staff
'change-to-type 'Staff)
  #{
\voiceTwo
\set StaffGroup.shortInstrumentName = $grp_name
\set Staff.shortInstrumentName = $s_name
\set Staff.instrumentCueName = $cue
  #}
  )
)
  )

obI = \relative c'' {
  \tag #'score \voiceOne
  c4 d e d |
  c4 d e d |
  c4 d e d |
  c4 d e d |
  \tag #'score \oneVoice
  c4 d e d |
  c4 d e d |
  c4 d e d |
  c4 d e d |
  \tag #'score \voiceOne
  c4 d e d |
  c4 d e d |
  c4 d e d |
  c4 d e d |
}

obII = \relative c' {
  \tag #'score \voiceTwo
  e4 f g f |
  e4 f g f |
  e4 f g f |
  e4 f g f |
  \tag #'score \divisiDown #"Ob2" "Oboe  " "1" "2"
  e4 f g f |
  e4 f g f |
  e4 f g f |
  e4 f g f |
  \tag #'score \divisiUp #"Ob1" "Oboe  " \markup \column {"1" "2"} "a2"
  c'4 d e d |
  c4 d e d |
  c4 d e d |
  c4 d e d |
}

global = {
  s1*4 | \break
  s1*4 | \break
  s1*4 |
}

\score {
  \keepWithTag #'score <<
\new StaffGroup \with {
  instrumentName = "Oboe 1-2"
  shortInstrumentName = "Ob. 1-2"
  systemStartDelimiter = #'SystemStartSquare
  %This is to keep the bracket from displaying when there is only one
staff
  \override SystemStartSquare #'collapse-height = #5
} <<
  \new Staff = "Ob1" << \global <<
  \obI
  \\
  \obII
>>
  >>
  \new Staff = "Ob2" \with {
%This is all from a snippet to have the second staff display only
when
%There are notes in it
\remove "Axis_group_engraver"
\consists "Hara_kiri_engraver"
\override Beam #'auto-knee-gap = #'()
\override VerticalAxisGroup #'remove-empty = ##t
\override VerticalAxisGroup #'remove-first = ##t 
  } \global
>>
  >>
  \layout {}
}

-- 
View this message in context: 
http://old.nabble.com/best-practices-for-divisi-string-writing-tp32503916p32736042.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


\instrumentSwitch applies instrumentCueName to Staff context instead of Voice

2011-11-13 Thread Shevek

\instrumentSwitch applies instrumentCueName to Staff context instead of
Voice. Is there a way to change this behavior so it only applies the
instrumentCueName to the Voice context? The current behavior makes multiple
instrumentCueName markings appear whenever there is simultaneous music on
the Staff.

Here's a small example that exhibits this behavior:

\version "2.14.0"
\include "english.ly"

\addInstrumentDefinition #"flute"
#`((instrumentTransposition . ,(ly:make-pitch 0 0 0))
(shortInstrumentName . "2")
(clefGlyph . "clefs.G")
(middleCPosition . -6)
(clefPosition . -2)
(instrumentCueName . ,(make-bold-markup "flute"))
(midiInstrument . "flute")
)

\new Staff \displayLilyMusic <<
  { s1*3 }
  { c'1 \instrumentSwitch "flute" d'1 e'1 }
>>
<\pre>

Here's the output from \DisplayLilyMusic. As you can see, instrumentCueName
is applied to the Staff context.

<< { s1*3 } { c'1 \context Staff << \set Staff . instrumentTransposition =
#(ly:make-pitch 0 0 0)


\set Staff . shortInstrumentName = #"2"
\set Staff . clefGlyph = #"clefs.G"
\set Staff . middleCPosition = #-6
\set Staff . clefPosition = #-2
\set Staff . instrumentCueName = \markup \bold "flute"
\set Staff . midiInstrument = #"flute"
>> d' e' } >>

-- 
View this message in context: 
http://old.nabble.com/%5CinstrumentSwitch-applies-instrumentCueName-to-Staff-context-instead-of-Voice-tp32834490p32834490.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: \instrumentSwitch applies instrumentCueName to Staff context instead of Voice

2011-11-13 Thread Shevek


Keith OHara wrote:
> 
> Shevek  saultobin.com> writes:
> 
>> \instrumentSwitch applies instrumentCueName to Staff context instead of
>> Voice. 
> Is there a way to change this behavior so it only applies the
> instrumentCueName 
> to the Voice context? The current behavior makes multiple
> instrumentCueName 
> markings appear whenever there is simultaneous music on the Staff.
>> 
> 
> I don't know how to do that, but maybe instead just ask the Staff to
> engrave
> the changes instead of each Voice :
> 
> That seems to make sense, because all the other instrumentSwitch stuff, 
> like the clef and the short-name in front of each line, belongs to the
> Staff.
> 
> If that works for your needs, then maybe the default of having an 
> "Instrument_switch_engraver" in each Voice, instead of Staff, 
> was just a bug in the default setup provided by LilyPond.
> 

Moving the Instrument_Switch_Engraver to the Staff context did indeed solve
the problem. I hadn't thought of trying that. Thanks!

According to the 
http://lilypond.org/doc/v2.14/Documentation/internals/instrument_005fswitch_005fengraver
documentation , "Instrument_switch_engraver is part of the following
context(s): CueVoice, DrumVoice, GregorianTranscriptionVoice, MensuralVoice,
TabVoice, VaticanaVoice and Voice." So it appears that the behavior I'm
observing is what is intended. I wonder if this should be changed in a
future release.

-- 
View this message in context: 
http://old.nabble.com/%5CinstrumentSwitch-applies-instrumentCueName-to-Staff-context-instead-of-Voice-tp32834490p32837401.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: bug in tremolo snippet?

2011-11-26 Thread Shevek



Jay Anderson wrote:
> 
> I think you need to add the following to the make-music section of the
> make-tremolo function:
> 
> 'tremolo-type dur
> 
> I'm not sure when this was changed, but this made it work in 2.15.19.
> I haven't looked at this in depth so there could be other issues.
> 
> For future reference, the way I debugged this was to compare the
> output of \displayMusic of the standard \repeat tremolo ...  what the
> \tremolos ... function created and noticed the missing parameter.
> 

Aha. That fixed it in 2,14 as well. Thanks! I'll remember that debugging
strategy.
-- 
View this message in context: 
http://old.nabble.com/bug-in-tremolo-snippet--tp32728588p32876697.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


ERROR: Wrong type (expecting pair): ()

2011-11-26 Thread Shevek

I've recently started getting "ERROR: Wrong type (expecting pair): ()" when I
compile the code for a rather large (5000+ lines) project, and I have no
idea how to fix it. There is no line reference, and no indication what
causes this problem. Google searches seem to indicate that it is a very
generic Scheme error, which is no help at all. Is there any way I can
identify the problem, or at least narrow down what might be causing it?
Interestingly, the layout score block is compiling fine, it's just the midi
score block that is throwing the error (I have separate \score's for midi
and layout).
-- 
View this message in context: 
http://old.nabble.com/ERROR%3A-Wrong-type-%28expecting-pair%29%3A-%28%29-tp32876698p32876698.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: ERROR: Wrong type (expecting pair): ()

2011-11-26 Thread Shevek



David Kastrup wrote:
> 
> There have been a number of changes to Scheme function syntax.  If your
> file properly contains a
> \version "x.xx.xx"
> line corresponding to the last version _that_ _actually_ _compiled_, try
> running
> 
> convert-ly -ed
> 
> on the file.
> 

Thanks for the quick reply. Unfortunately, this error popped up some time in
the last round of edits I made, so it's not a result of running code from a
previous version.

-- 
View this message in context: 
http://old.nabble.com/ERROR%3A-Wrong-type-%28expecting-pair%29%3A-%28%29-tp32876698p32876733.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: ERROR: Wrong type (expecting pair): ()

2011-11-26 Thread Shevek



Reinhold Kainhofer wrote:
> 
> Try enabling guile's debug mode. A while ago, the debug mode was turned
> off in lilypond, because it adds some performance penalty. But without
> debug mode, guile does not print out line numbers for scheme errors. We
> have recently enabled debug miode again.
> 
> For your score, you can try adding 
>#(debug-enable 'debug)
> to the top of your score. If that does not help,
> add
>(debug-enable 'debug)
> in scm/lily.scm of your lilypond installation.
> 
> That should get you line numbers for the error to track down the area of
> the problem
> 
Aha, line numbers are indeed progress. However, the line numbers for the
error are in some lilypond library file, so that's unhelpful in tracking
down the problem. Here's the relevant part of the compile messages:

/usr/local/lilypond/usr/share/lilypond/current/scm/lily-library.scm:210:5:
In procedure ly:book-process in expression (process-procedure book paper
...):
/usr/local/lilypond/usr/share/lilypond/current/scm/lily-library.scm:210:5:
Wrong type (expecting pair): ()

The error message is at the very end of the debug output. I would love to
post some relevant code, but I have no idea where to even start looking. Do
you understand these error messages?

re David, I am using 2.14, which as I understand it is the recommended
version for users. I have written the entire project using 2.14. I tried
just changing the version statement and running convert-ly anyway, just in
case, but the only changes it appeared to make were some deprecated
/cresc's, and it didn't fix the error. Should I be upgrading to 2.15?
-- 
View this message in context: 
http://old.nabble.com/ERROR%3A-Wrong-type-%28expecting-pair%29%3A-%28%29-tp32876698p32877080.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: ERROR: Wrong type (expecting pair): ()

2011-11-26 Thread Shevek



Graham Percival-3 wrote:
> 
> Construct a tiny example.
> http://lilypond.org/tiny-examples.html
> 
>> The error message is at the very end of the debug output. I would love to
>> post some relevant code, but I have no idea where to even start looking.
>> Do
>> you understand these error messages?
> 
> start commenting things out.
> http://lilypond.org/doc/v2.14/Documentation/usage/troubleshooting
> 
> 
Out of 5000+ lines of code with no idea where to start? That's looking for a
needle in a haystack. I was hoping someone might be able to suggest the sort
of thing that can cause this error, so I at least know what color the needle
is or something.
-- 
View this message in context: 
http://old.nabble.com/ERROR%3A-Wrong-type-%28expecting-pair%29%3A-%28%29-tp32876698p32877087.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Extending Lilypond's chord vocabulary PLUS Help on command definition

2011-12-17 Thread Shevek


Tim McNamara wrote:
> 
>> I'm currently preparing a macro file "jazz-chords.ily" which contains (my
>> version of) common jazz chord notation. I will share that file as soon as
>> it is in a usable state.
> 

Hi, I was just wondering what the status of the jazz-chords.ly project is.
If it's in a usable state, I'd love to get a copy of it, as I'm about to
start engraving a set of big band charts. Even if there are some bugs, I'd
be happy to help troubleshoot.

Cheers,

Saul

-- 
View this message in context: 
http://old.nabble.com/Extending-Lilypond%27s-chord-vocabulary-tp32809091p32996680.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


different instrumentDefinition's in score and parts

2011-12-19 Thread Shevek

The way I typically set up a project is to have a score file for the
conductor's score and each of the parts, all of which \include a file which
contains all the music for the piece. I also have each of these files (the
score files and the music file) \include library files with my various
snippets, as well as a file containing all the instrumentDefinition's needed
in the project. What I want to be able to do is to use different
instrumentDefinition's in the conductor's score file versus the parts
score-files. This would, for example, allow me to have a different
transposition in the conductor's score than in the part. The intuitive way
to accomplish that would seem to be putting \include "instrumentDefs.ly" in
the score file, rather than the music file, but that throws a compile error
because the instrumentSwitch occurs in the music file. I could, I suppose,
just use parallel instrumentDefinition's, and write something like:

\tag #'score \instrumentSwitch "clarinet_score"
\tag #'parts \instrumentSwitch "clarinet_parts"

I was just wondering if it might be possible to do it some other way. The
nice thing about \instrumentSwitch is that it is semantic. Given that the
differences between score and parts presentational (e.g. different
transposition), I'd prefer to just write \instrumentSwitch "clarinet" and
accomplish the score/parts difference some other way. Suggestions?
-- 
View this message in context: 
http://old.nabble.com/different-instrumentDefinition%27s-in-score-and-parts-tp33001219p33001219.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


modifying chordNameSeparator behavior

2011-12-20 Thread Shevek

I'd like to get Lilypond's chord symbols to appear more "Real Book" like.
Part of that style involves not putting a slash between the basic suffix of
a chord and its alterations. So far so good, as I can just set
chordNameSeparator to \markup\null. The trouble is that doing that removes
the slash before an alternate bass note, which I want to keep. Is there a
way to remove the slash before an alteration without removing the slash
before an alternate bass note?
-- 
View this message in context: 
http://old.nabble.com/modifying-chordNameSeparator-behavior-tp33014994p33014994.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: modifying chordNameSeparator behavior

2011-12-21 Thread Shevek



James-379 wrote:
> 
> Hello,
> 
> On 21 December 2011 07:22, Shevek  wrote:
>>
>> I'd like to get Lilypond's chord symbols to appear more "Real Book" like.
>> Part of that style involves not putting a slash between the basic suffix
>> of
>> a chord and its alterations. So far so good, as I can just set
>> chordNameSeparator to \markup\null. The trouble is that doing that
>> removes
>> the slash before an alternate bass note, which I want to keep. Is there a
>> way to remove the slash before an alteration without removing the slash
>> before an alternate bass note?
> 
> \chords {
>   c:7sus4
>   \set chordNameSeparator
> = \markup { "" }
>   c:7sus4
> }
> 
> Does that work for you?
> 

Thanks for the response, James. Unfortunately that solution has the same
issue I mentioned:

\chords {
\set chordNameSeparator = ""
c:7sus4 % this looks great now
c:7sus4/g % there is no slash between the suffix and the bass note
}


}

-- 
View this message in context: 
http://old.nabble.com/modifying-chordNameSeparator-behavior-tp33014994p33018105.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: modifying chordNameSeparator behavior

2011-12-21 Thread Shevek



Carl Sorensen-3 wrote:
> 
> This has been fixed in the development version, thanks to Adam Spiers.
> 
> Version 2.15.21 or newer has separate properties for the suffix and the
> bass note.
> 
> HTH,
> 
> Carl
> 

Aha! Would you recommend upgrading to 2.15, then?
-- 
View this message in context: 
http://old.nabble.com/modifying-chordNameSeparator-behavior-tp33014994p33018914.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Merry Christmas with Frescobaldi 2.0!

2011-12-26 Thread Shevek

Looks great! I had to install a few dependencies to compile it on Kubuntu
11.04, but then it installed without incident. The point-and-click feature
seems to work MUCH better than in 1.2. Nice work on that. The templates
feature also looks to be very useful, though I haven't played with it yet.

I have attempted to set the MIDI player to output to a FluidSynth server
running on PulseAudio, but when I press the play button, the program crashes
fatally. I get no sound when I set MIDI output to Timidity.

I notice that the text editor portion has been drastically reduced in power
from 1.2, I assume because you are no longer using the Kate KPart. Are there
plans to include such features as VI commands and code folding? I depend
heavily on the advanced text editing features available in Frescobaldi 1.2,
and I fear I will need to revert to using 1.2 until Frescobaldi 2 supports
them.
-- 
View this message in context: 
http://old.nabble.com/Merry-Christmas-with-Frescobaldi-2.0%21-tp33037595p33039132.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


strange lilypond errors in 2.15.24

2012-01-10 Thread Shevek

In another thread someone recommended that I try using the development
version of Lilypond, in order to take advantage of the improvements to chord
symbols. I finally got around to it, and the chord improvements look
fantastic, but I'm getting some enigmatic compile errors in my files,
despite having run convert-ly. In both cases, the error looks something like
the following:


Parsing...
Interpreting music... [8][16][24][32][40][48][56][64]
LilyPond [genie2.ly] exited with exit status 1.

The number of parsed measures is the same every time, but it varies between
files and even after commenting certain sections of code. Even with
#(debug-enable 'debug) I get no additional error information. Needless to
say, these files compiled fine with 2.14.


In one instance, a multifile project with 1000+ lines, I managed to trace
the error to the following situation:


\global = {
% stuff
}

\guitar = {
% stuff
<<
\context ChordNames = "chords" \with {
alignAboveContext = "Guitar" % commenting out
this line solves the error
} \chordnames {
% stuff
}
{
% stuff
}
>>
% stuff
}

\score {
<<
% stuff
\new StaffGroup = "Rhythm" <<
\new Staff = "Guitar" << \global \guitar >>
% more stuff
>>
>>
\layout {}
}

Commenting out the alignAboveContext line solves the compile error. I
constructed a tiny example along the lines of the above, however, and it
compiles just fine with 2.15.24. So the alignAboveContext line is causing
the error...but it's also not the problem?


Even weirder, I get the same error in a different project, which is a single
file less than 400 lines long, and which contains no dynamically created
contexts. I experimented with commenting out sections of music, to see which
line was causing the error. Turns out the first half compiles fine...and so
does the second half. Arbitrary subsets up to about 75% of the piece compile
fine, so it's not something about the halfway point either. As far as I can
tell, Lilypond just crashes whenever the total amount of musical material
crosses a certain threshold. Commenting out a section just in the RH of the
piano, for example, lets the LH part be a little longer before it causes an
error. This behavior is especially odd, as the first project I mentioned is
vastly more involved notationally and compiles fine with 10 times the total
musical material of the second project, as long as I comment out the
alignAboveContext lines.


Since the error message is totally non-specific, it's entirely possible
these two errors are for completely different reasons. Indeed my diagnostic
hypotheses for each project each seem to exclude the other project.


Ideas about these very strange errors?

-- 
View this message in context: 
http://old.nabble.com/strange-lilypond-errors-in-2.15.24-tp33110205p33110205.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: strange lilypond errors in 2.15.24

2012-01-11 Thread Shevek


Francisco Vila wrote:
> 
>> \global = {
>> % stuff
>> }
> should be
> global = {
> 
>> \guitar = {
> should be
> guitar = {
>> % stuff
>> <<
>> \context ChordNames = "chords" \with {
>> alignAboveContext = "Guitar" % commenting out
>> this line solves the error
>> } \chordnames {
> should be
> } \chordmode {
> 
> 
Yes indeed. I noticed those typographical errors in my post soon after
posting, and, as you can see, edited the post to fix them. I apologize for
not proofreading carefully enough. Typos aside, the errors are still
occurring as I described in the original post, and they are not caused by
typos. I'd appreciate any input on this.
-- 
View this message in context: 
http://old.nabble.com/strange-lilypond-errors-in-2.15.24-tp33110205p33119216.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: strange lilypond errors in 2.15.24

2012-01-11 Thread Shevek


Francisco Vila wrote:
> 
> With the typos corrected and some content inside braces I obtain no
> errors or warnings.
> 
The example also compiles fine for me. As I noted in my original post, that
is one of the odd things about the error I'm getting. The line I marked
causes a crash in the context of my project, but when I made a simple
example, it gives me no problems. Similarly, in the other project, I can't
trace the crash to any specific lines of code.

-- 
View this message in context: 
http://old.nabble.com/strange-lilypond-errors-in-2.15.24-tp33110205p33123081.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: strange lilypond errors in 2.15.24

2012-01-11 Thread Shevek



Francisco Vila wrote:
> 
> 
> I don't see how can we help if we can not reproduce the error.
> 
> 

The thing is that I've attempted to use process of elimination to identity
the source of the error, to little success. As far as I can tell, there is
no single line or combination of lines that causes the error. For example,
in one project, there are, in addition to a multitude of staves without
chord symbols, three staves (Guitar, Piano, and Bass) that contain
constructs like:

<<
\new ChordNames = "Guit_chords" \with {
alignAboveContext = "Guitar"
} \chordmode {
...

When I comment out all the lines containing alignAboveContext, the crash
goes away. If I comment out, for example, the Piano and Bass staves, but
leave the Guitar staff with the alignAboveContext lines uncommented, the
crash also goes away. So the problem can't simply be the lines with
alignAboveContext.

Perhaps it's something about the way I was using that construct in multiple
staves? Okay, so I comment out all the other instruments' staves, leaving
just the Guitar, Piano, and Bass, but with alignAboveContext lines
uncommented. The crash goes away. So the crash only occurs when I have at
least two out of three of Guitar, Piano, or Bass, and I also have other
instruments.

As with the other project I described in the original post, it appears that
somehow Lilypond is choking once a certain amount of musical material is
reached. For example, I tried commenting out everything but Guitar and
Piano, which compiles, and then adding additional instrument staves one by
one. Guitar + Piano + 1 additional staff compiles fine, but Guitar + Piano +
2 additional staves crashes. I notice that the more instruments I add, the
fewer measures into the piece Lilypond gets before crashing.
-- 
View this message in context: 
http://old.nabble.com/strange-lilypond-errors-in-2.15.24-tp33110205p33125221.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


MetronomeMarks and MultiMeasureRest spacing

2012-01-18 Thread Shevek

I'm working on parts for a piece at the moment, and I ran into the problem of
getting multimeasure rests to stretch to accommodate metronome markings. I
did some searching and applied the suggested solution to the problem
(http://lsr.dsi.unimi.it/LSR/Item?id=659), which is \override MetronomeMark
#'extra-spacing-width = #'(0 . 0). This solves the problem of too short
multimeasure rests, but creates a new problem, which is extra space
appearing at the beginning of bars in some parts. Here is an example of my
problem in a nutshell:

\version "2.14.2"
\language "english"

global = {
  \tempo "For example" 4=60
  s1*4
}

foo = \relative c' {
  c4 d e f |
  g f e d |
  c e g b |
  d2 c2 |
}

baz = {
  R1*4
}

\book {
  \score {
\new Staff { \compressFullBarRests << \global \foo >> }
\layout {
  \context {
\Score
\override MultiMeasureRest #'expand-limit = #2
\override MetronomeMark #'extra-spacing-width = #'(0 . 0)
  }
}
  }
  \score {
\new Staff { \compressFullBarRests << \global \baz >> }
\layout {
  \context {
\Score
\override MultiMeasureRest #'expand-limit = #2
\override MetronomeMark #'extra-spacing-width = #'(0 . 0)
  }
}
  }
}

When I compile this, the system with notes has an extraneous space between
the time signature and the first note. Is there a way to get the
multimeasure rests to space properly, while avoiding the awkward spacing in
parts containing notes? Thanks for your help!
-- 
View this message in context: 
http://old.nabble.com/MetronomeMarks-and-MultiMeasureRest-spacing-tp33165970p33165970.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MetronomeMarks and MultiMeasureRest spacing

2012-01-19 Thread Shevek



Keith OHara wrote:
> 
> For a better solution, I suggest you search the mailing list archives 
> for "MarkLine"
>  http://lists.gnu.org/archive/html/lilypond-user/2008-06/msg00159.html
> The details of this solution seem to need updating to work with the
> current 
> version of LilyPond, but the concept should continue to work forever.
> 

Thanks! I just implemented the MarkLine strategy, and it works fantastic.
Not only does it solve my spacing problem, it vertically aligns all my
marks. I'm going to make this a standard part of my score set up from now
on. Maybe the MarkLine context should be added to Lilypond?
-- 
View this message in context: 
http://old.nabble.com/MetronomeMarks-and-MultiMeasureRest-spacing-tp33165970p33166793.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MetronomeMarks and MultiMeasureRest spacing

2012-01-22 Thread Shevek


James-379 wrote:
> 
> 
> Could you add this to the LilyPond Snippet Repository?
> 
> http://lsr.dsi.unimi.it/LSR/html/whatsthis.html
> 
> or if it doesn't work for 2.12 (the current version of LSR)
> 
> Perhaps paste your code here for others to use?
> 
> Depending on the code, I don't pretend to understand what I'm looking
> at here - we could even add it as a snippet in the current Notation
> Reference.
> 
> 

Sure. Here's the code for my test file.

\version "2.14.2"
\language "english"

global = {
\tempo "For example blah blah blah"
s1*2
\mark \default
s1*2
}

foo = \relative c' {
  c4 d e f |
  g f e d |
  c e g b |
  d2 c2 |
}

baz = {
  R1*4
}

\book {

  \score {
<<
  \new MarkLine \global
  \new Staff { \compressFullBarRests << \global \foo >> }
>>
\layout {
  \context {
\name "MarkLine"
\type "Engraver_group"
\consists Output_property_engraver
\consists Axis_group_engraver
\consists Mark_engraver
\consists Metronome_mark_engraver
\override RehearsalMark #'extra-spacing-width = #'(0 . 1)
\override MetronomeMark #'extra-spacing-width = #'(0.5 . 0)
\override VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2 )
\override VerticalAxisGroup #'staff-staff-spacing =
#'((basic-distance . 1)
 
(minimum-distance . 1)
  (padding . 1)
 
(stretchability . 3))
  }
  \context {
\Score
\override MultiMeasureRest #'expand-limit = #2
\remove Mark_engraver
\remove Metronome_mark_engraver
\accepts MarkLine
  }
}
  }
  \score {
  <<
\new MarkLine \global
\new Staff { \compressFullBarRests << \global \baz >> }
  >>
  \layout {
\context {
  \name "MarkLine"
  \type "Engraver_group"
  \consists Output_property_engraver
  \consists Axis_group_engraver
  \consists Mark_engraver
  \consists Metronome_mark_engraver
  \override RehearsalMark #'extra-spacing-width = #'(0 . 1)
  \override MetronomeMark #'extra-spacing-width = #'(0.5 . 0)
  \override VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2 )
  \override VerticalAxisGroup #'staff-staff-spacing =
#'((basic-distance . 1)
   
(minimum-distance . 1)
(padding .
1)
   
(stretchability . 3))
}
  \context {
  \Score
  \remove Mark_engraver
  \remove Metronome_mark_engraver
  \accepts MarkLine
  }
}
  }
}

I don't have 2.12 installed on my system, so I couldn't say whether this is
compatible with 2.12. It would be nice not to have to duplicate so much code
between \score blocks, but I'm not sure how to accomplish that. 

You'll notice that this solution doesn't solve the problem of overlapping
marks for measures containing music. I'm open to suggestions on how to fix
that. I tried the following, according to
http://lilypond.org/doc/v2.14/Documentation/notation/aligning-objects#using-the-side_002dposition_002dinterface
:

\override RehearsalMark #'side-axis = #0
\override RehearsalMark #'direction = #1
\override RehearsalMark #'X-offset =
#ly:side-position-interface::x-aligned-side

But it doesn't solve the overlapping, and causes the staff lines to
disappear. Any idea why that's happening?

-- 
View this message in context: 
http://old.nabble.com/MetronomeMarks-and-MultiMeasureRest-spacing-tp33165970p33185232.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


force bookparts to end on even pages

2012-01-22 Thread Shevek

I'm creating instrumental parts in a single file using a separate bookpart
for each part. This entails restarting page numbering for each bookpart, and
omitting the instrument and page number from the first page of each
bookpart. I've assembled a snippet that does those things, based on
http://old.nabble.com/book-and-instrument-td31711660.html and
http://old.nabble.com/Separate-page-numbering-in-separate-book-parts--td20831772.html.
The only thing missing now is to make sure that each bookpart starts on an
odd page. I'd like to do this by automatically inserting blank pages. My
guess is the solution has something to do with
http://lilypond.org/doc/v2.14/Documentation/notation/other-_005cpaper-variables#_005cpaper-variables-for-page-breaking,
but there aren't any examples mentioned in the documentation. I'd appreciate
some guidance.

\version "2.14.0"

#(define (not-part-first-page layout props arg)
 (if (not (= (chain-assoc-get 'page:page-number props -1)
 (ly:output-def-lookup layout 'first-page-number)))
 (interpret-markup layout props arg)
   empty-stencil))
   
#(define (print-page-number-check-part-first layout props arg)
(if (or (not (= (chain-assoc-get 'page:page-number props -1)
  (ly:output-def-lookup layout 'first-page-number)))
(eq? (ly:output-def-lookup layout 'print-first-page-number)
#t))
(create-page-number-stencil layout props arg)
  empty-stencil))

#(define-markup-command (bookpart-page-number layout props) ()
(let ((first-page-number (ly:output-def-lookup
layout 'first-page-number))
(page-number (chain-assoc-get
'page:page-number props 0)))
(interpret-markup layout props (format
"~a" (1+ (- page-number  
first-page-number)) 

\paper {
  oddHeaderMarkup = \markup
  \fill-line {
\null
\on-the-fly #not-part-first-page \fromproperty #'header:instrument
\on-the-fly #not-part-first-page \on-the-fly
#print-page-number-check-first \bookpart-page-number
  }
  
  evenHeaderMarkup = \markup
  \fill-line {
\on-the-fly #not-part-first-page \on-the-fly
#print-page-number-check-first \bookpart-page-number
\on-the-fly #not-part-first-page \fromproperty #'header:instrument
\null
  }
} 

\bookpart {
  \markup { first part 1 } \pageBreak
  \markup { first part 2 } \pageBreak
  \markup { first part 3 }
}
\bookpart {
  \markup { second part 1 } \pageBreak
  \markup { second part 2 } \pageBreak
  \markup { second part 3 }
}
\bookpart {
  \markup { third part 1 } \pageBreak
  \markup { third part 2 } \pageBreak
  \markup { third part 3 }
} 
-- 
View this message in context: 
http://old.nabble.com/force-bookparts-to-end-on-even-pages-tp33185483p33185483.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


"V.S." on page turns

2012-01-22 Thread Shevek

I'm playing around with the page turn engraver, and occasionally it will opt
to have a page with only one or two systems. It would be great if I could
add a "V.S." indication in such cases, but I'm not sure how to do it without
hardcoding the page turns. Is there a way to do this?
-- 
View this message in context: 
http://old.nabble.com/%22V.S.%22-on-page-turns-tp33185644p33185644.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


enharmonic transposition of key signatures?

2012-01-24 Thread Shevek

I have a situation like the following, and I would like to have the second
key display as D flat, rather than as C sharp. I can't figure out a way to
do this without duplicating the global variable (but that would defeat the
purpose of the global variable, wouldn't it?). Has anyone else come up with
a solution to this situation?

Sorry for posting so many questions the past day or so.

\version "2.14.2"
\language "english"

global = {
  \key c \major
  s1*2
  \key b \major
  s1*2
}

music = \relative c' {
  c4 d e f |
  g f e d |
  cs e fs gs |
  as2 b |
}

\score {
  \new Staff { \transposition bf \transpose bf c' << \global \music >> }
  \layout {}
}

music = {
  \transposition bf
  \transpose bf c' {
\relative c' {
  c4 d e f |
  g f e d |
}
  } \transpose as c' {
\relative c' {
  cs e fs gs |
  as2 b |
}
  }
}

\score {
  \new Staff << \global \music >>
  \layout {}
}
-- 
View this message in context: 
http://old.nabble.com/enharmonic-transposition-of-key-signatures--tp33193937p33193937.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Bounties

2012-01-25 Thread Shevek


Marc Hohl wrote:
> 
> 
> I don't know about legal and organizational issues, but what about a 
> optional lilypond usage fee?
> I am willing to pay about 50$ per year for using lilypond and supporting 
> the development team.
> And I think there are some more users out therewho would join ...
> 

As a professional user of Lilypond who switched from Finale, I'm used to
paying a few hundred dollars a year on average for my notation software.
Lilypond in many ways far surpasses Finale for my uses, not least in the
intelligence of the design, the transparency of the notational system, and
the ease of extending its notational capabilities. I would be more than
willing to kick in something on the scale of $100 a year to support Lilypond
development, especially if there were an organizational structure in place
to make sure the money got used effectively.

Saul
-- 
View this message in context: 
http://old.nabble.com/Bounties-%28was%3A-User-vs-Developer%29-tp33197679p33199937.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: enharmonic transposition of key signatures?

2012-01-25 Thread Shevek



David Kastrup wrote:
> 
> 
> global = #(define-music-function (parser location key2) (ly:music?)
>   #{ \key c \major s1*2 $key2 s1*2 #})
> 
>> \score {
>>   \new Staff { \transposition bf \transpose bf c' << \global \music >>
>>   }
> 
> ... \global \key b \major ...
> 
>> \score {
>>   \new Staff << \global \music >>
> 
> ... \global \key ces \major ...
> 
> You can also work with \pushToTag to get your information in there.
> Except that it might not be available in 2.14.2 yet.
> 

The music function approach is quite clever and solves my problem nicely. I
think I'll probably use something similar. Thanks!

Alas, there are several features of the development version that would be
useful for me, but my files refuse to compile with 2.15. It's faster for me
to figure out workarounds in 2.14 than to figure out what's going on with
2.15. Hopefully whatever is causing my compile problems will get sorted out
in a future version of 2.15 or 2.16.

-- 
View this message in context: 
http://old.nabble.com/enharmonic-transposition-of-key-signatures--tp33193937p33199952.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Hiding the RH piano staff

2012-01-25 Thread Shevek


JanTerje wrote:
> 
> Hi,
> 
> I'm writing a piano arrangement (of Pirates of the Caribbean) which has 19
> bars of solo left hand before the right hand enters. I'd very much like to
> hide the right hand piano staff until the right hand enters.
> 
> I've tried the hide staff options I've found in the manuals, but they only
> seem to work on separate instruments, not within a piano staff system.
> I've also tried to search this mailing list without luck.
> 
> Is this at all possible to do? Any hints and clues would be very
> appreciated.
> 
> Oh, and for the record: I run the latest version (2.14.2) and must admit
> I'm relatively new to Lilypond.
> 
> Sincerely,
> Jan Terje Augestad
> 
According to
http://lilypond.org/doc/v2.14/Documentation/internals/pianostaff, the only
difference between a GrandStaff and a PianoStaff is that in a PianoStaff the
staves are only hidden together. So what you want is to use a GrandStaff.

\version "2.14.2"
\language "english"

foo = \relative c' {
  c4 d e f |
  g f e d |
  \break
  c e g b |
  d2 c |
}

baz = \relative c {
  \clef bass
  R1*2 |
  c2 e4 g |
  b2 c2 |
}

\score {
  \new GrandStaff <<
\new Staff \foo
\new Staff \with {
  \remove "Axis_group_engraver"
  \consists "Hara_kiri_engraver"
  \override Beam #'auto-knee-gap = #'()
  \override VerticalAxisGroup #'remove-empty = ##t
  \override VerticalAxisGroup #'remove-first = ##t
} \baz
  >>
  \layout {}
}
-- 
View this message in context: 
http://old.nabble.com/Hiding-the-RH-piano-staff-tp33199934p33200050.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: enharmonic transposition of key signatures?

2012-01-25 Thread Shevek


David Kastrup wrote:
> 
> Again: have you tried running convert-ly -ed on your files?  If you
> didn't, it is not likely that your compile problems will _ever_
> disappear without manual intervention.
> 
See
http://old.nabble.com/strange-lilypond-errors-in-2.15.24-td33110205.html.
I'm not terribly bereft at not being able to use 2.15 at this time, though.
I've been able to do everything I need in 2.14 thus far.

-- 
View this message in context: 
http://old.nabble.com/enharmonic-transposition-of-key-signatures--tp33193937p33200259.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: enharmonic transposition of key signatures?

2012-01-25 Thread Shevek



David Kastrup wrote:
> 
>> That does not look like a version problem, but like a regression bug.
>> It is not likely that it will go away on its own.  So if you don't
>> manage to actually get any debuggable evidence to developers, it will
>> stick around.
> 
> One additional hint: version 2.15.27, the latest development release,
> contains
> 
> * | commit e8f544af29c93145d122efa8dcfc0548d9b84f0b
> | | Author: David Kastrup 
> | | Date:   Fri Jan 20 12:01:03 2012 +0100
> | | 
> | | Make inherited stream event properties immutable.
> 
> While it is not highly likely that it helps, this change should cause a
> reduction in hard-to-track Heisenbugs of which your report seems to show
> one.
> 

Okay, so it sounds like I should try again on 2.15.27, and if it's still
there, report it to the developers. How would I go about reporting it?

-- 
View this message in context: 
http://old.nabble.com/enharmonic-transposition-of-key-signatures--tp33193937p33203224.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: polychords proof of concept

2012-01-31 Thread Shevek


Jean-Alexis Montignies-2 wrote:
> 
> Hi,
> 
> Here is a report on my attempts to display polychords in lilypond.
> Feedback and comments are welcome! As it's my beginnings in scheme,
> programming style may not be very good :).
> 
> 

I didn't have time to work my way through your code, and I must admit it's a
bit beyond my level at this point, but I did successfully run it on 2.14,
and it looks like a great start! I'm excited to see how you progress on
this.
-- 
View this message in context: 
http://old.nabble.com/polychords-proof-of-concept-tp33226432p33234435.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: "V.S." on page turns

2012-02-01 Thread Shevek


Xavier Scheuer wrote:
> 
> You could ask to add this to the tracker as a new feature request.
> http://lilypond.org/bug-reports.html
> 
> Cheers,
> Xavier
> 
I may do that. What should a feature request look like? What information do
I need to include?
-- 
View this message in context: 
http://old.nabble.com/%22V.S.%22-on-page-turns-tp33185644p33247793.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: "V.S." on page turns

2012-02-01 Thread Shevek



Pavel Roskin wrote:
> 
> I'm afraid it's not supported.  You can find the discussion here (see  
> the end of the thread):
> http://lists.gnu.org/archive/html/lilypond-user/2010-02/msg00713.html
> 
> Also see the documentation for item-interface:
> http://lilypond.org/doc/v2.15/Documentation/internals/item_002dinterface
> 
> "Whether these versions are visible and take up space is determined by  
> the outcome of the break-visibility grob property, which is a function  
> taking a direction (-1, 0 or 1) as an argument. It returns a cons of  
> booleans, signifying whether this grob should be transparent and have  
> no extent."
> 
> I don't see any indication whether the break is a page break, a page  
> turn or just a line break.
> 
> I could not find any open issue for that.
> 

Thanks for the references! I believe the break-visibility property concerns
only line breaks at the moment, unfortunately.

-- 
View this message in context: 
http://old.nabble.com/%22V.S.%22-on-page-turns-tp33185644p33247857.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


help with side-position interface?

2012-02-01 Thread Shevek

I'm experimenting with using the side-position interface to manage collisions
between RehearsalMarks and MetronomeMarks, according to
http://lilypond.org/doc/v2.14/Documentation/notation/aligning-objects#using-the-side_002dposition_002dinterface.
In my test file, setting x-offset to
#ly:side-position-interface::x-aligned-side causes the staff lines to do
funky things. What am I doing wrong?

\version "2.14.2"
\language "english"

global = {
\tempo "For example blah blah blah"
s1*2
\mark \default
s1*2
}

foo = \relative c' {
  c4 d e f |
  g f e d |
  c e g b |
  d2 c2 |
}

\score {
  \new Staff << \global \foo >>
  \layout {
\context {
  \Score
  \override RehearsalMark #'side-axis = #0
  \override RehearsalMark #'direction = #1
  \override RehearsalMark #'X-offset =
#ly:side-position-interface::x-aligned-side
  \override MetronomeMark #'side-axis = #0
  \override MetronomeMark #'direction = #-1
  \override MetronomeMark #'X-offset =
#ly:side-position-interface::x-aligned-side
}
  }
}  
-- 
View this message in context: 
http://old.nabble.com/help-with-side-position-interface--tp33248109p33248109.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Spacing issue with ledger lines and custom Marks context

2012-02-04 Thread Shevek

Hello,

I posted a thread a week or two ago about the spacing issue with
MetronomeMarks and multimeasure rests. The upshot of that thread was that I
started using a custom context to display all my MetronomeMarks and
RehearsalMarks. It works great, except that whenever there are ledger lines,
the marks still affect the horizontal spacing of the notes. What I'd like to
happen is that the notes above the staff bump the MarkLine context to a
greater vertical distance from the staff, keeping the horizontal spacing
intact. Any ideas on how to accomplish that?

\version "2.14.2"
\language "english"

\paper {
  ragged-right = ##t
}

foo = \relative c''' {
  \tempo "For example"
  c4 d e f |
  g f e d |
  \mark \default
  c e g f |
  e2 c2 | \break
  \tempo "blah blah blah"
  R1*2 |
  \mark \default
  R1*2 | \break
  \resetRelativeOctave c'''
  \tempo "For example"
  c4 d, e f |
  g f e d |
  \mark "blah"
  e e g f |
  e2 c2 |
}

\score {
  <<
\new MarkLine \foo
\new Staff { \compressFullBarRests \foo }
  >>
  \layout {
\context {
  \name "MarkLine"
  \type "Engraver_group"
  \consists Output_property_engraver
  \consists Axis_group_engraver
  \consists Mark_engraver
  \consists Metronome_mark_engraver
%   If you comment the following two lines, the notes space correctly
%   The marks then don't space correctly over the multimeasure rests,
however
  \override RehearsalMark #'extra-spacing-width = #'(0 . 0)
  \override MetronomeMark #'extra-spacing-width = #'(0 . 0)
  \override VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2 )
  \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance
. 1)
   
(minimum-distance . 1)
(padding . 1)
(stretchability
. 3))
}
\context {
  \Score
  \override MultiMeasureRest #'expand-limit = #1
  \remove Mark_engraver
  \remove Metronome_mark_engraver
  \accepts MarkLine
}
  }
}

As I remarked in the comment, the extra-spacing-width is what causes the
horizontal spacing problem. As you can see from the third system in the
example, though, the extra-spacing-width works fine with the horizontal
spacing as long as the notes are low enough in the staff. Two ledger lines
above the staff seems to be the limit for MetronomeMarks before the note
spacing is affected; the top space of the staff seems to be the limit for
RehearsalMarks before note spacing is affected.

I'd really appreciate any suggestions on how to solve this issue.


-- 
View this message in context: 
http://old.nabble.com/Spacing-issue-with-ledger-lines-and-custom-Marks-context-tp33265399p33265399.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


possible bug with tupletSpannerDuration in quoted music

2012-02-05 Thread Shevek

In 2.14, tupletSpannerDuration doesn't get properly applied to quoted music
unless tupletSpannerDuration is set in the quoted music itself. Bug, or am I
doing something wrong?

\version "2.14.2"
\language "english"


foo = \relative c' {
  \times 2/3 { c8 d e f e d } c2 |
}

baz = \relative c' {
  \set Score.tupletSpannerDuration = #(ly:make-moment 1 4)
  \times 2/3 { c8 d e f e d } c2 |
}

\addQuote "foo" \foo
\addQuote "baz" \baz

\score {
  <<
\new Staff \foo
\new Staff {
  \cueDuring #"foo" #DOWN { R1 }
}
\new Staff {
  \cueDuring #"baz" #DOWN { R1 }
}
  >>
  \layout {
\context {
  \Score
  tupletSpannerDuration = #(ly:make-moment 1 4)
}
  }
}
-- 
View this message in context: 
http://old.nabble.com/possible-bug-with-tupletSpannerDuration-in-quoted-music-tp33268238p33268238.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Spacing issue with ledger lines and custom Marks context

2012-02-05 Thread Shevek


Shevek wrote:
> 
> The upshot of that thread was that I started using a custom context to
> display all my MetronomeMarks and RehearsalMarks. It works great, except
> that whenever there are ledger lines, the marks still affect the
> horizontal spacing of the notes. What I'd like to happen is that the notes
> above the staff bump the MarkLine context to a greater vertical distance
> from the staff, keeping the horizontal spacing intact. 
I have no idea why this works, but apparently adding the following two lines
solves the horizontal spacing problem.

\override RehearsalMark #'direction = #-1
\override MetronomeMark #'direction = #-1


-- 
View this message in context: 
http://old.nabble.com/Spacing-issue-with-ledger-lines-and-custom-Marks-context-tp33265399p33268366.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Spacing issue with ledger lines and custom Marks context

2012-02-05 Thread Shevek


Shevek wrote:
> 
> I have no idea why this works, but apparently adding the following two
> lines solves the horizontal spacing problem.
> 
> \override RehearsalMark #'direction = #-1
> \override MetronomeMark #'direction = #-1
> 
Aha! Overriding #'direction causes weird problems in calculating the
vertical extent of systems. The real fix is:

\override RehearsalMark #'Y-offset = #0
\override MetronomeMark #'Y-offset = #0

What I can surmise is that this works because the default Y-offset setting
for RehearsalMark and MetronomeMark is
ly:side-position-interface::y-aligned-side. If RehearsalMarks and
MetronomeMarks are displayed in a separate context, it is no longer
necessary to use the side-position interface.
-- 
View this message in context: 
http://old.nabble.com/Spacing-issue-with-ledger-lines-and-custom-Marks-context-tp33265399p33268574.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


repeat barlines with wings?

2012-02-08 Thread Shevek

I'm used to seeing repeat barlines with "wings" (like in the picture I've
attached). Is there a way to do this in Lilypond?

http://old.nabble.com/file/p33290846/reapetbarsci9.png 
-- 
View this message in context: 
http://old.nabble.com/repeat-barlines-with-wings--tp33290846p33290846.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


vertical spacing of scripts attached to spacer rests

2012-03-12 Thread Shevek

I have a passage something like the following. I want to get the last bowing
to display vertically as if it were attached to a note at the same staff
position. Any ideas?

\new Staff \relative c''' {
  a1\downbow  % without this line, an error occurs?
  <<
{ a1 }
{ s2\upbow s2\downbow }
  >>
}
-- 
View this message in context: 
http://old.nabble.com/vertical-spacing-of-scripts-attached-to-spacer-rests-tp33484535p33484535.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


vibrato squiggle

2012-06-19 Thread Shevek

Hi all,

I'm trying to figure out how to create a squiggle above some notes to
indicate the width and frequency of vibrato. I wish I had a picture of what
I'm looking for, but I can't seem to find one (though for some reason I have
this feeling that I saw a snippet that does something like this). Basically,
I want a smooth line that curves up and down, with the height and width of
the ups and downs variable, to attach to notes (ideally) as a spanner. Is
there a way to accomplish this in Lilypond?
-- 
View this message in context: 
http://old.nabble.com/vibrato-squiggle-tp34038568p34038568.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: vibrato squiggle

2012-06-27 Thread Shevek


m...@apollinemike.com wrote:
> 
> If you google "vibster lilypond", there used to be a snippet for 2.12 that
> did something like this.  I'm not sure if it works in 2.14.
> If you file a bug report asking for this feature to be added to LilyPond,
> it'll get added to the tracker.
> 
> If you know how to write Scheme code, it'd take about a day to code a
> clean version of this.  I can give you a hand w/ design stuff if you need
> it.
> 
> Cheers,
> MS
> 

Just found this thread:
http://old.nabble.com/Re%3A-Failed-compiling-a-single-lsr-snippet%2C-which-does-not-fail-when-running-the-whole-lsr-p33621166.html.
You mentioned you have a version that works in 2.15?
-- 
View this message in context: 
http://old.nabble.com/vibrato-squiggle-tp34038568p34083674.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


midi for orchestral scores

2012-06-27 Thread Shevek

I was wondering if anyone has developed a good workflow for dealing with midi
playback for scores using more than 16 instruments. I've been playing around
with the various options for midiChannelMapping and playback programs, but I
can't seem to figure out a way to get playback of all the parts with all the
right instruments. I realize the technical hurdles of actually implementing
multiple port playback in Lilypond, so I'm not asking about that. All the
same, it doesn't seem that what I want is that complicated from a user
perspective. I don't want to be able to tweak my midi in fancy ways or use
different special soundfonts or sample libraries: I just want to be able to
check the pitches and rhythms for all the parts with the correct midi
sounds. Does anyone have a good way of doing this?

I thought maybe the simplest way would be to make, for example, a midi file
for the wind parts, and a midi file for the string parts, and then play them
simultaneously to two separate midi ports, but I can't seem to figure out
how to get the files to play in sync.

Suggestions?
-- 
View this message in context: 
http://old.nabble.com/midi-for-orchestral-scores-tp34083696p34083696.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


thinking of submitting divisi snippet to LSR; comments?

2012-06-27 Thread Shevek

Hi all,

I wrote a snippet several months ago to facilitate notating divisi staves,
but I couldn't submit it to LSR because LSR was on 2.12 until recently. Now
that LSR has been updated to 2.14, I'd love to get some comments on my
snippet before I submit it. It's a bit long, so I've attached it as a file.

My snippet relies on code from a couple other snippets already included in
LSR. What is the best way to deal with that for submission to LSR?

Right now, there are some situations, all involving partcombine, that still
cause some undesired behavior and error messages. I've included test cases
for all of these issues in the file. I'd really appreciate any suggestions
on how to solve some of these errors (though of course I'll keep working on
it in the mean time).

http://old.nabble.com/file/p34084271/divisi_test2.ly divisi_test2.ly 
-- 
View this message in context: 
http://old.nabble.com/thinking-of-submitting-divisi-snippet-to-LSR--comments--tp34084271p34084271.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: turning off partcombine

2012-06-27 Thread Shevek


m...@mikesolomon.org wrote:
> 
> Hey users,
> 
> Is there a way to turn off partcombine so that I can change staves and
> then turn it back on when the voice comes back to its original staff?
> 
> Cheers,
> MS
> 
> 

Yes, just use \partcombineApart. Are you trying to do 
http://old.nabble.com/thinking-of-submitting-divisi-snippet-to-LSR--comments--to34084271.html
this  sort of thing?
-- 
View this message in context: 
http://old.nabble.com/turning-off-partcombine-tp34035545p34084274.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: midi for orchestral scores

2012-06-28 Thread Shevek


R. Mattes wrote:
> 
>> Yes, we have at least three ways of writing midi files now.  There are
>> at least two theoretical ways of setting many more instruments than 16
>> and we support two (using ports and instrument per track, ignoring
>> channel); but as far as I know there are no midi players that handle
>> those.
> 
> Both seq24 and qtractor open such files without any problems.
> 

As I see it, the primary issue here from a user's perspective is that
lilypond presents us with a choice between playback limited to 16 channels
and going all the way to the other extreme and learning to use complicated
sequencer software just to get all the instruments to sound. I don't need
fancy software instruments or to tweak the MIDI events lists or anything
like that that the pros use sequencer software for. All I want is to be able
to route MIDI channels 17-32 to a second MIDI port so that I can get General
MIDI playback of all the instruments. If I'm not mistaken, that sort of port
routing is possible in a single MIDI file, and is readable to standard MIDI
players such as timidity, pmidi and fluidsynth.

-- 
View this message in context: 
http://old.nabble.com/midi-for-orchestral-scores-tp34083696p34088922.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: thinking of submitting divisi snippet to LSR; comments?

2012-06-29 Thread Shevek


Phil Holmes-2 wrote:
> 
> The general aim of the LSR is not to be too prescriptive about what users 
> put there for other users to find and use.  However, to be useful in this 
> way, it works best if snippets are short and easily understood.  They
> should 
> really also compile error free.  From this perspective I would see
> problems 
> with your proposed snippet - I think it's trying to demonstrate too much
> in 
> a single snippet - I would be tempted to split it into 4 snippets, each 
> illustrating a single partcombine feature.  I would also work to get rid
> of 
> the errors, if necessary by creating tiny snippets for each and raising
> bug 
> reports.
> 
> Finally, I think refererencing other snippets is fine - I would flag this
> in 
> the comment
> 
> % This idea taken from LSR 123
> 
> or similar.
> 

So I was able to fix the majority of the errors by abusing \grace s8.
Unfortunately, that affects the spacing. The essence of the problem is this:

\version "2.14.2"

foo = \relative c' {
  \partcombineApart
  c4 d e2 |
  \tag #'fix \grace s8
  \partcombineSoloI
  c4 d e d |
}

baz = \relative c' {
  c4 b a b |
  R1 |
}

\partcombine \foo \baz
\partcombine \removeWithTag #'fix \foo \baz

There is another underlying weird behavior of partcombine, but I am still
working on a tiny example for it.
-- 
View this message in context: 
http://old.nabble.com/thinking-of-submitting-divisi-snippet-to-LSR--comments--tp34084271p34094203.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


grace note/time signature spacing?

2012-07-02 Thread Shevek

Is it possible to override so that grace music has no effect on spacing? For
example, the space between the time signature and the barline in should not
be compressed:

{
  \numericTimeSignature
  \time 4/4
  s1
  \grace s8
  \time 3/4
  s2.
  \time 4/4
  s1
}

I also want to remove the extra white space in:

\relative c' {
  \numericTimeSignature
  \time 4/4
  c4 d e f 
  \grace s8
  g4 f e d 
  c4 d e f 
}
-- 
View this message in context: 
http://old.nabble.com/grace-note-time-signature-spacing--tp34104192p34104192.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: grace note/time signature spacing?

2012-07-02 Thread Shevek



-Eluze wrote:
> 
> not sure I catch it all, but does NR 4.5.3 Changing horizontal spacing
> (look for \override Score.SpacingSpanner #'strict-note-spacing = ##t) meet
> what you want?
> 

\once\override Score.SpacingSpanner #'strict-grace-spacing = ##t doesn't
seem to affect the spacing one way or the other in these situations. I've
also tried \once\override Score.GraceSpacing #'shortest-duration-space = #0
and \once\override Score.GraceSpacing #'spacing-increment = #0, both with
non-zero values as well. Those eliminate the extra white space in my second
example, even making it too cramped, but at the same time they create a
collision between the time signature and the barline in my first example.

-- 
View this message in context: 
http://old.nabble.com/grace-note-time-signature-spacing--tp34104192p34104805.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: grace note/time signature spacing?

2012-07-03 Thread Shevek


-Eluze wrote:
> 
> I've just sent a report to the bug-list:
> http://old.nabble.com/issue-with-strict-grace-spacing-ts34109767.html
> 
> there you also find a link to the issue tracker where another bug report
> about strict-grace-spacing has been opened.
> 

Great! Thanks. From the description you gave, I wasn't clear if it was
exactly the same issue as my problem, but I didn't have a chance to look
closely.

I've noticed another issue with partcombine, of which I wonder whether it's
worthy of a bug report. What do you think?

The problem is that \change Staff throws an error message when inside
partcombine, even though it works fine. For example:

global = {
  s1*2
}

foo = \relative c' {
  \partcombineUnisono
  c4 d e f |
  \partcombineApart
  g f e d |
}

baz = \relative c' {
  c4 d e f |
  \change Staff = "2"
  g2 a2 |
}

\score {
  <<
\new Staff << \global \partcombine \foo \baz >>
\new Staff = "2" \global
  >>
  \layout {}
}
-- 
View this message in context: 
http://old.nabble.com/grace-note-time-signature-spacing--tp34104192p34110406.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: grace note/time signature spacing?

2012-07-04 Thread Shevek


-Eluze wrote:
> 
> _Known issues and warnings_
> ...
> \partcombine... functions cannot be placed inside a \times or \relative
> block.
> 

The example further up the page does exactly what I did, though:

instrumentOne = \relative c' {
  \partcombineApart c2^"apart" e |
  \partcombineAutomatic e2^"auto" e |
  \partcombineChords e'2^"chord" e |
  \partcombineAutomatic c2^"auto" c |
  \partcombineApart c2^"apart" \partcombineChordsOnce e^"chord once" |
  c2 c |
}



\new Staff { \partcombine \instrumentOne \instrumentTwo }


So I'm confused as to what the documentation means.
(http://lilypond.org/doc/v2.14/Documentation/notation/multiple-voices#automatic-part-combining)
-- 
View this message in context: 
http://old.nabble.com/grace-note-time-signature-spacing--tp34104192p34115470.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Hauptstimme Brackets?

2012-07-04 Thread Shevek



me-110 wrote:
> 
> 
> Here's a solution using markup paths and text spanners:
> 
> 


Thanks so much for posting this! I had been wondering how to accomplish the
same thing. Would you consider submitting this to LSR?
-- 
View this message in context: 
http://old.nabble.com/Hauptstimme-Brackets--tp34114523p34115482.html
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


updating tremolo snippet for 2.16

2012-08-28 Thread Shevek
First off, thanks to all the people who worked on 2.16! I'm super excited
about it, and I'm already noticing drastically reduced compile times for my
large projects, compared to 2.14.

I'm looking at updating my snippet library, and the first issue I've run
into is that http://lsr.dsi.unimi.it/LSR/Snippet?id=604 stopped working in
2.16. It's pretty simple to fix using event-chord-wrap!, but I was wondering
what a real solution should look like. I'm assuming similar situations will
crop up with other snippets, so I suppose this is just an instance of a more
general question. I'm hoping that maybe updating some snippets will be a
good way for me to learn more Scheme.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/updating-tremolo-snippet-for-2-16-tp131548.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: updating tremolo snippet for 2.16

2012-09-03 Thread Shevek
Thanks a lot, David! I'm going to have to study this for a while before it
makes sense to me.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/updating-tremolo-snippet-for-2-16-tp131548p132142.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


changing part combine mode breaks spanners

2012-09-03 Thread Shevek
I use partcombine a lot because I am working on a full orchestral score and I
need to switch between writing e.g. clarinets on a single staff and
clarinets on separate staves. Because of the demands of this notational
situation, I always use the manual partcombine commands, rather than the
automatic mode. Unfortunately, the manual partcombine commands only sort of
work. One particularly annoying limitation that I am running into is that
switching manual partcombine modes in the middle of a slur or other spanner
creates unpredictable behavior, such as hairpins going off to infinity.

In a tiny example:

\version "2.16.0"

obI = \relative c''' {
  \partcombineSoloI
  g1(~\p\< |
  \partcombineApart
  a1)\f |
}

obII = \relative c' {
  R1 |
  f4 e f g |
}

\new Staff = "1" \partcombine \obI \obII

The slur and the dynamics of the first measure are lost because of
\partcombineApart. Obviously, this example is musically ridiculous. This
sort of situation comes up quite often, though, when I need to have the
second voice enter in an additional staff while the first voice continues a
phrase.

Is there a workaround to this issue? Is this a bug (I don't recall seeing it
on the list of bugs for partcombine)? 



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/changing-part-combine-mode-breaks-spanners-tp132146.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


harp gliss spacing

2012-11-29 Thread Shevek
Hi all,

I am trying to notate a harp gliss in an orchestral score, and I am having
trouble figuring out a good solution that does not mess up the horizontal
spacing of the other instruments. I am currently doing it like this:

\version "2.16.0"
\language "english"

oboe = \relative c'' {
  a4 g f8 a b ds |
  e1 |
}

harp = \relative c' {
  r4 \afterGrace d2.\glissando { ef32[ fs gf as bf cs]\glissando } |
  d'1 |
}

<<
  \new Staff \oboe
  \new Staff \harp
>>

What I would like is for the oboe part to space with normal proportions, but
loose enough that there is room for the grace notes in the harp. Messing
with afterGraceFraction isn't much help, since I don't actually want all the
grace notes to happen within a particular beat; rather I want them
distributed across several beats.

Is there a better way to do this?

Thanks!

Saul



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/harp-gliss-spacing-tp137015.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Converting a large project from 2.18 to 2.19: what to expect?

2017-04-04 Thread Shevek
Hi,

I'm currently in the process of composing a symphony in Lilypond 2.18.2.
There are a few graphical bugs that are making me consider converting the
project to the current 2.19 (parentheses/accidental collision, tempo mark
spacing with uniform-stretching), but I'm hesitant to jump immediately
because I have like 20k+ lines of code, some of which was already updated
from 2.16, and also libraries of custom snippets.

So my questions:

1) How stable is 2.19 for end users on a demanding project? It seems like
forever since 2.18, so I'm sort of surprised there hasn't been 2.20 already.
Is there some major problem I should be worried about in 2.19?

2) What should I expect to break under 2.19? Music output changes to look
out for as I proofread? Things that might make snippets or Scheme behave
differently or not be backwards compatible?

3) Are there any notable regressions in terms of graphical output? My music
already looks pretty great overall in 2.18.2, so I don't want to go through
the trouble of upgrading to fix graphical bugs if I'll just be trading them
for different graphical bugs. From experience so far, it seems my project is
expansive enough that there's a good chance I'll run into any given
graphical bug, unless it's specific to early music notation or something.

Thanks so much for your help. I realize this is a pretty broad question.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Converting-a-large-project-from-2-18-to-2-19-what-to-expect-tp201938.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Converting a large project from 2.18 to 2.19: what to expect?

2017-04-05 Thread Shevek
It appears that the glissando slope and the cross-staff dynamics bugs would
be relevant to my project. If I'm reading correctly, the glissando slopes
issue is already present in 2.18, so that behavior wouldn't change in 2.19
as it's not yet fixed (a good thing for me, since I'm pretty sure I used a
workaround for this issue in my score). The cross staff issue would be new
from 2.18, however. Is that correct?

I've certainly read the change documentation; I was hoping for some deeper
feedback on likely trouble spots with compatibility or changed graphical
behavior. For instance, the uniform-stretching spacing issue is discussed on
Lilypondblog as being fixed in 2.19, but that isn't mentioned in the change
documentation as far as I recall. If there are other significant changes in
graphical output, it would be helpful for me to know specifically what to
look for to see if it has messed anything up. It's pretty much impossible to
efficiently proofread a 100-page orchestral score for subtle graphical
issues without knowing in advance what to look for in terms of likely
trouble spots.

In terms of Scheme changes, how does this affect compatibility with snippets
written on 2.16 or 2.18?

Thanks again for your help.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Converting-a-large-project-from-2-18-to-2-19-what-to-expect-tp201938p201941.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Converting a large project from 2.18 to 2.19: what to expect?

2017-04-05 Thread Shevek
The change documentation vaguely mentions that functions defined the old way
will continue to work for some time, so I'm unclear the degree to which this
matters to me, or in what circumstances I should worry about it.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Converting-a-large-project-from-2-18-to-2-19-what-to-expect-tp201938p201943.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Converting a large project from 2.18 to 2.19: what to expect?

2017-04-05 Thread Shevek
That's pretty much the process I used from 2.16 to 2.18, and that I planned
to use here. It would still be really helpful if I had a sense of likely
situations where the graphical output could be significantly different.
Obviously ultimately, I just have to try and see how it goes, but if you can
think of any specific changes to spacing of particular types of objects, or
page breaking, or something like that, it would be really helpful for me to
know what to look out for when I compare versions.

Thanks so much!



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Converting-a-large-project-from-2-18-to-2-19-what-to-expect-tp201938p201944.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Frescobaldi input latency

2017-04-26 Thread Shevek
Does anybody else find the input in Frescobaldi to be sluggish? I find that
the cursor lags noticeably when typing, navigating by arrow keys, or
selecting with the mouse. I have auto-complete and "synchronize with cursor
position" disabled but point-and-click enabled because I use it. This is the
current version in the Ubuntu 16.04 repositories.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Frescobaldi-input-latency-tp202665.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Frescobaldi input latency

2017-04-26 Thread Shevek
Yes, this is a project with many large files. Well, I'm glad at least it's a
known issue. Unfortunately I don't have the means to contribute to solving
it. Here's hoping somebody will!



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Frescobaldi-input-latency-tp202665p202671.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


parts sharing a staff

2017-06-15 Thread Shevek
I often run into situations where two parts share a staff some of the time
and have individual staffs the rest of the time. The way I handle it is like
this (including only relevant details):

\new StaffGroup \with {
  instrumentName = "Flute  "
  shortInstrumentName = "Fl."
} <<
  \new Staff = "Fl1" \with {
instrumentName = \markup\column { "1" "2" }
shortInstrumentName = \markup\column { "1" "2" }
  } << \global \partcombine \fluteI \fluteII >>
  \new Staff = "Fl2" \with {
instrumentName = \markup\column { "1" "2" }
shortInstrumentName = \markup\column { "1" "2" }
\override VerticalAxisGroup.remove-empty = ##t
\override VerticalAxisGroup.remove-first = ##t
  } << \global >>
>>

fluteI {
  \tag #'score {
\partcombineApart
\oneVoice
  }
  % music
}

fluteII = {
  \tag #'score {
\change Staff = "Fl2"
\oneVoice
  }
  % music
}

I use \partcombineApart with the second part \change'd to the second staff
as the default setting, and use \partcombineChords or \partcombineUnisono
when appropriate, since those pull the second part into the top staff
without needing to write \change Staff.

First, I thought this might just be of interest to others who deal with a
similar scenario. Are you using a similar technique, or do you have a better
approach?

Second, this strategy leads to the necessity of manually writing \set
Staff.shortInstrumentName = "1" whenever the second staff is visible, and
back again to \column { "1" "2" } whenever the second staff is hidden. Since
that depends on system breaking, which changes as I compose, getting the
correct labels in the left margin is a continual source of tedious manual
bugfixing.

What I'd really like is to be able to write some function or engraver that
checks whether the second staff is visible or hidden on that system, and
changes the shortInstrumentName on the top staff back and forth accordingly.
How feasible would such a project be? If it is feasible, how could I begin
to approach it?



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/parts-sharing-a-staff-tp203873.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: parts sharing a staff

2017-06-15 Thread Shevek
Kieren MacMillan wrote
> That's very interesting! Right now I'm putting together a comparative
> analysis of the different methods of coding shared/split staves; this is
> not one I had previously seen or considered. As it relies on the
> partcombiner — which is both feature-poor and limited to two voices — it
> has some drawbacks; but there are also some benefits to the approach.
> Thanks for sharing it!

I'd be fascinated to have an in depth conversation about shared staves in
Lilypond. I've been giving a fair bit of thought to how I'd like it to work,
at least based on my particular use case.


Kieren MacMillan wrote
> 2. Speaking from a depth of experience, I might recommend not worrying
> about margin labels while composing… I find the mode-switching keeps me
> from harnessing really good composition focus/flow.

Agreed. It's not something I fix constantly, but it's annoying to worry
about every time I want to print a fair copy of a draft, e.g. to submit to
something.




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/parts-sharing-a-staff-tp203873p203876.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: parts sharing a staff

2017-06-15 Thread Shevek
I don't mind having to insert the occasional layout-related command — I
actually prefer the ability to switch between clearly defined behaviors,
rather than have Lilypond try to guess which to use. (IMO, the fact that the
Automatic mode exists is the biggest design philosophy problem with
partcombiner.) The biggest problem caused by inserting commands mid-music is
that it breaks up multi-measure rests for the parts, but I wrote a snippet a
few years ago that stitches the multi-measure rests back together.

Correct me if I'm misunderstanding, but it sounds like you're using the
edition engraver to do various score layouts, but in each version the staff
distribution will stay the same throughout the piece. My use case is a bit
different, as within the course of a piece I need to be able to condense
orchestral winds into shared staves and split them up again, depending on
the musical context. I don't see how it would be possible to do that without
inserting layout commands into the music code.

From my perspective, the annoyance is that there are several separate
engraving issues that depend upon one another and upon system breaking:

1) Which parts are on which staff when, and whether they are unison, chords,
or voices? In particular, when switching from unison or chords to separate
staves, if the same-staff passage continues over a system break it should
automatically split into separate staves wherever the break happens to
occur. The command to go to separate staves should appear just before the
passage to which it applies.

2) The staff naming depends on the status of the divisi and the system
breaking, as we alluded to earlier.

3) Some text markups change depending on whether staves are combined. For
instance, it should read "solo" or "1. solo" depending on whether the player
needs to be specified. Also, "a2" should automatically be reprinted after
measures of rest.

The most critical thing for me is being able to do score and parts from the
same music, so that I can revise and compose cleanly.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/parts-sharing-a-staff-tp203873p203878.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: parts sharing a staff

2017-06-16 Thread Shevek
Okay, I see what you're doing. I can see how this would be helpful if you're
an engraver doing multiple editions of a piece. From my perspective, this
type of separation of concerns is actually counterproductive, because as I
compose I may add or subtract measures many times. Having to keep the
editorial changes synced with the score would mean I'm in effect defining
the music twice, and it would be less readable, because it obscures the
musical reason for combining or separating staves.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/parts-sharing-a-staff-tp203873p203898.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: parts sharing a staff

2017-06-16 Thread Shevek
> Being able to do score and parts from the same music is yet another reason
I always want to keep the music code clear of any presentation-layer
commands. 

I just make sure to precede every partcombine instruction with a \tag for
the score it pertains to.

>> The biggest problem caused by inserting commands mid-music is 
>> that it breaks up multi-measure rests for the parts 

>That's definitely a problem.

Here's my snippet to recombine broken MultiMeasureRests:  rest-combiner.ly
  




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/parts-sharing-a-staff-tp203873p203899.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: parts sharing a staff

2017-06-16 Thread Shevek
Kieren MacMillan wrote
>> it would be less readable, because it obscures the
>> musical reason for combining or separating staves.
> 
> Not sure I understand your meaning…?
> What is an example of a musical reason, *not* part of the presentation
> layer, for combining/separating staves?

Well, it is part of the presentation layer, but the specific decision of how
to combine parts in a particular passage depends on what the music is. If I
decide one to day to change a unison passage to octaves, then the next to
make it solo, and after that to make it dovetail contrapuntally, those
musical content changes all directly affect how the parts should be combined
on a staff or not. Abstracting the decision to combine or not would mean I
need to look in two places in the code to understand what's happening there.

I see it as similar to modifying the shape of a slur. It's purely
presentational, but it depends directly on the musical content, so I would
find it rather confusing to put the override in a separate part of the code
from the notes.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/parts-sharing-a-staff-tp203873p203902.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


dynamic text spanner after breaking

2017-07-02 Thread Shevek
For some reason, TextSpanners by default repeat the text at the beginning of
a line after breaking, while DynamicTextSpanners do not. I became very
confused by this inconsistency when I wanted to make my crescendi and
diminuendi show text after line breaks, because for the life of me I
couldn't figure out where in the Lilypond source code that behavior
originates. I also couldn't understand why this wouldn't work:

test = {
  c'1\cresc
  \break
  c' <>\!
}

\new Staff \with {
  \override DynamicTextSpanner.bound-details.left-broken.text = #(lambda
(grob) (ly:grob-property grob 'text))
} \test

In the end, I succeeded in getting cresc. and dim. to be reprinted after
line breaks by writing the following:

crescCautionaryEngraver = #(make-engraver
  (acknowledgers
   ((dynamic-text-spanner-interface engraver grob source-engraver)
(ly:grob-set-nested-property! grob '(bound-details left-broken text)
(ly:grob-property grob 'text))
)
   )
  )

Boy, that feels like overkill for what should have been a simple override or
context property.

Why was this so hard to do? Am I missing something obvious?




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/dynamic-text-spanner-after-breaking-tp204237.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


snippet to properly align dynamics with expressive text

2017-07-07 Thread Shevek
Dynamics with expressive text, like "p espressivo" are meant to have the
dynamic aligned on the notehead the same as ordinary dynamics, with the
expressive text following. Here is a snippet I've written to align custom
dynamics correctly.

\version "2.18.2"

\paper {
  ragged-right = ##f
  indent = 0\cm
}

dynText = #(define-event-function (parser location dyn expr) (markup?
markup?)
 (let* (
 (mark #{ \markup { \dynamic $dyn \normal-text\italic
$expr } #})
 (offset (lambda (grob)
   (let* (
   (layout (ly:grob-layout grob))
   (props (ly:grob-alist-chain grob
(ly:output-def-lookup layout
'text-font-defaults)))
   (target-X-extent
(ly:stencil-extent

(ly:text-interface::interpret-markup layout props dyn)
 X))
   (width (abs
   (- (cdr target-X-extent) (car
target-X-extent
   )
 (display target-X-extent)
 (- 1 (/ width 2))
 )
   )
   )
 )
   #{
 \tweak DynamicText.X-offset #offset
 #(make-dynamic-script mark) 
   #}
   )
 )

%% Example

\new Staff \with {
  \omit TimeSignature
} \relative c' {
  c1\dynText "p" "sub."
  c1\dynText "fff" "espressivo"
  c1\dynText "p" "espressivo"
  c1\dynText "f" "sub."
  \break
  c1\p
  c1\fff
  c1\p
  c1\f
}



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/snippet-to-properly-align-dynamics-with-expressive-text-tp204305.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: snippet to properly align dynamics with expressive text

2017-07-07 Thread Shevek
Agreed about the optical spacing. My goal was to get the alignment to be
identical between the bare dynamics and the dynamics + text. To my eye, the
fff and fff espressivo are aligned the same, so it seems more like something
that could be improved in Lilypond's dynamic alignment in general.

I would be pleased to contribute this to openlilylib, but I have no idea
how! I've never contributed to a collaborative project like that before. How
would I go about this?

Thanks,

Saul



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/snippet-to-properly-align-dynamics-with-expressive-text-tp204305p204307.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: print rehearsal marks in multiple parts

2017-07-14 Thread Shevek
My recommendation is to use a MarkLine context, as in this snippet:
http://lsr.di.unimi.it/LSR/Item?id=1010

You might need to modify the exact definition of MarkLine depending on your
needs.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/print-rehearsal-marks-in-multiple-parts-tp204420p204423.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: improving Janek's \dynamic function (for combo dynamics)

2017-08-19 Thread Shevek
I posted a snippet to do correct custom dynamic alignment a month or so ago.
I haven't had time to integrate it into the OpenLilyLib snippet, but here's
my code:

\version "2.18.2"

dynText = #(define-event-function (parser location dyn expr) (markup?
markup?)
 (let* (
 (mark #{ \markup { \dynamic $dyn \normal-text\italic
$expr } #})
 (offset (lambda (grob)
   (let* (
   (layout (ly:grob-layout grob))
   (props (ly:grob-alist-chain grob
(ly:output-def-lookup layout
'text-font-defaults)))
   (dyn-X-extent
(ly:stencil-extent

(ly:text-interface::interpret-markup layout props dyn)
 X))
   (width (abs
   (- (cdr dyn-X-extent) (car
dyn-X-extent
   )
 (- 1 (/ width 2))
 )
   )
   )
 )
   #{
 \tweak DynamicText.X-offset #offset
 #(make-dynamic-script mark) 
   #}
   )
 )

%%  Example

\paper {
  ragged-right = ##f
  indent = 0\cm
}

\new Staff \with {
  \omit TimeSignature
} \relative c' {
  c1\dynText "p" "sub."
  c1\dynText "fff" "espressivo"
  c1\dynText "p" "espressivo"
  c1\dynText "f" "sub."
  \break
  c1\p
  c1\fff
  c1\p
  c1\f
}

I tried just copy and pasting my offset callback into Janek's snippet, but
it doesn't quite work because the callback relies on assuming the dynamic is
at the beginning, and any additional text follows it.




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/improving-Janek-s-dynamic-function-for-combo-dynamics-tp205071p205179.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Temporary independent rhythmic spacing between staves?

2017-10-21 Thread Shevek
Hi all,

In my current project, I have a situation where the piano has fast arpeggios
at the same time as the strings play a steady, slower rhythm (see
screenshot). My feeling is that the best looking solution would be to
temporarily sacrifice rhythmic alignment between the piano part and the rest
of the staves, in order to maintain visually correct rhythmic spacing within
the strings and the piano part independently. Is there are way to accomplish
such a thing in Lilypond just for a measure or two? How would you deal with
engraving this sort of passage?

Independent_Spacing.png
  



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


How to get \fromproperty to work with score headers?

2017-10-29 Thread Shevek
Does anyone know if there's an updated version of
http://lsr.di.unimi.it/LSR/Snippet?id=467 to work with score-level headers?
It's listed as "to do" in the snippet, but I believe that dates back to
several years ago. I'd like to use \fromproperty #'header:piece to put
movement titles at the top of pages. 

If there isn't a newer version that supports this, I can mess around with
trying to get it working, but I'd appreciated it if anyone can point me in
the right direction to start; what would score-level headers be called? is
the existing snippet structure adequate or is more complexity needed to cope
with bookparts consisting of multiple scores?



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Harmonics and quoted music

2017-11-12 Thread Shevek
I just noticed that the following code works fine on 2.19, but crashes on
2.18 without an error message:

\addQuote "test" { 2 }

\new Staff {
  \quoteDuring #"test" {
s2
  }
}

I don't see anything about this in the 2.20 changes documentation. What's
going on here?



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Different behavior of \partcombine + \change Staff in 2.19

2017-11-12 Thread Shevek
In order to cleanly manage wind parts sharing staves in an orchestral score,
I have been using a pattern like the following throughout my projects:

\paper {
  indent = 2.5\cm
  short-indent = 1.5\cm
}

global = {
  s1*4
  \break
  s1*4
  \break
  s1*4
}

bsnI = \relative {
  \tag #'score {
\partcombineApart
\oneVoice
\dynamicDown
  }
  R1 |
  \resetRelativeOctave c
  c4 d e f |
  g4 f e d |
  R1 |
  \tag #'score \partcombineUnisono
  \resetRelativeOctave c
  c4 d e f |
  g4 f e d |
}

bsnII = \relative {
  \tag #'score {
\change Staff = "Bsn2"
\oneVoice
  }
  \resetRelativeOctave c
  c4 d e f |
  g4 f e d |
  R1*2 |
  c4 d e f |
  g4 f e d |
}

\score {
  \new StaffGroup \with {
instrumentName = "Bassoon  "
shortInstrumentName = "Bsn.  "
  } <<
\new Staff = "Bsn1" \with {
  instrumentName = \markup\column { "1" "2" }
  shortInstrumentName = \markup\column { "1" "2" }
  \clef bass
} << \global \partcombine \bsnI \bsnII >>
\new Staff = "Bsn2" \with {
  instrumentName = "2"
  shortInstrumentName = "2"
  \clef bass
  \override VerticalAxisGroup.remove-empty = ##t
  \override VerticalAxisGroup.remove-first = ##t
} \global
  >>
  \layout {
\context {
  \StaffGroup
  \override InstrumentName.self-alignment-X = #0
}
\context {
  \Staff
  \override InstrumentName.self-alignment-X = #1
}
  }
}

If you compile this in 2.18, it works beautifully because after the
beginning, no further Staff changes are required — the partcombiner
automatically pulls the second part into the primary staff whenever it is
set to unisono, soloII, or chords mode. In 2.19, however, you'll see that
the unison passage displays on both staves, while still putting "a2" above
the primary staff. This changed behavior breaks a tremendous amount of my
code in a way that isn't easy to cleanly fix. Is this change intended? Is
there a way I can salvage the old behavior?

By the way, if you compile my example code above, you might notice "warning:
cannot find context to switch to," yet the actual output finds a context to
switch to just fine. Is there a way to get rid of this? I get hundreds of
these whenever I compile my projects, and it makes it hard to find genuine
errors.

Thanks.



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Scheme help? snippet for movement page headers

2017-11-20 Thread Shevek
Hi all,

It would be quite nice to be able to use \fromproperty #'header:piece in
oddHeaderMarkup and evenHeaderMarkup, so that the title of the current
movement will display in the page header. Unfortunately, after investigating
the Lilypond source code, I can't see how to make that work, because it
requires the markup command knowing the top system of the current page and
what score it belongs to. That information isn't included in either the
layout or props argument to a markup function.

But! Lilypond has a table of contents feature that is able to find out what
page a particular musical moment happens on, and to print it in a markup.
I've copied and hacked that code to come up with the following very rough
snippet:

\version "2.18.2"

#(define-markup-command (curent-toc-section layout props)
  ()
  (ly:stencil-add (ly:make-stencil
   `(delay-stencil-evaluation
 ,(delay (ly:stencil-expr
  (let* ((table (ly:output-def-lookup layout 'label-page-table))
  (curr (chain-assoc-get 'page:page-number props))
  (prevs (filter (lambda (item) (<= curr (cdr item)))
table))
  (winpage  (apply min (map cdr prevs)))
  (winner (filter (lambda (item) (eq? (cdr item)
winpage)) prevs))
  (wintext (cdr (assoc-get (caar winner) (toc-items
  (winmarkup (interpret-markup layout props
   (car wintext)))
 )
 (display winner)
 (interpret-markup layout props
   (car wintext))

   )))


\paper {
  evenHeaderMarkup = \markup { \curent-toc-section " " }
  oddHeaderMarkup = \markup { \curent-toc-section " " }
}

\score {
  \new Staff {
s1
\pageBreak
s1
\tocItem "Title 1"
  }
}

\score {
  \new Staff {
s1
\pageBreak
s1
\tocItem "Title 2"
  }
}

The idea here is to put a table of contents entry at the very end of the
music for each movement score, so that the page header reflects the first
system of the page. This behavior can almost certainly be improved, so that
the snippet can coexist with an actual table of context listing movement
beginning pages. Maybe the page header should just reflect if a new movement
starts on that page.

I'd much appreciate feedback on this snippet. In particular, I don't quite
understand how the delayed evaluation part of the code works — I just copied
that from the definition of page-ref in define-markup-commands.scm. It seems
silly to define a whole new stencil when in the end it's just a plain old
markup. For page numbers, it's fine to make the stencil the same size every
time using a template, but since my snippet is for movement titles, and
might be used within text flow, it really ought to have a flexible stencil
extent. Currently, the returned stencil has null extent, since I cut out the
fixed-extent code from page-ref.



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Scheme help? snippet for movement page headers

2017-11-20 Thread Shevek
Hi Timothy,

Where are you defining #'header:piece, inside or outside a \score block? To
clarify, I'm talking about using \fromproperty with score-level headers.

Saul



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Scheme help? snippet for movement page headers

2017-11-20 Thread Shevek
Here is a cleaner, updated version of the snippet. It now gives the stencil
the extent of the longest table of contents entry. Not ideal, but close
enough for practical use. Also added comments and cleaned up variable names.

\version "2.18.2"

#(define-markup-command (current-toc-section layout props)
   ()
   (ly:stencil-add (let* ((titles (map cddr (toc-items)))
  (sorted-titles (stable-sort titles (lambda (item1
item2)
   (<= (length
item1) (length item2)
  (biggest-title (interpret-markup layout props
(caar sorted-titles)))
  (x-extent (ly:stencil-extent biggest-title X))
  (y-extent (ly:stencil-extent biggest-title Y))
  )
 (ly:make-stencil
  `(delay-stencil-evaluation
,(delay (ly:stencil-expr
 (let* ((table (ly:output-def-lookup layout
'label-page-table))
(curr-page (chain-assoc-get
'page:page-number props))
;; TOC entries should be at the
beginning of sections/movements.
;; If a section starts mid-page, the
page header will show the new section.
;; To make it show the title
belonging to the first system of the page,
;; Change >= to <= and put TOC
entries at the END of sections.
;; That breaks the actual TOC,
however.
(labels-up-to-curr (filter (lambda
(item) (>= curr-page (cdr item))) table))
(most-recent-toc-page (apply max
(map cdr labels-up-to-curr)))
;; If there are multiple toc items
on the same page, behavior may be undefined.
(most-recent-label (filter (lambda
(item) (eq? (cdr item) most-recent-toc-page)) labels-up-to-curr))
(title-of-curr-label (cadr
(assoc-get (caar most-recent-label) (toc-items
(curr-markup (interpret-markup
layout props
   title-of-curr-label))
;; How do we get the true extent
outside of the delayed evaluation?
;(x-ext (ly:stencil-extent
curr-markup X))
;(y-ext (ly:stencil-extent
curr-markup Y))
)
   ;(set! x-extent x-ext)
   ;(set! y-extent y-ext)
   curr-markup
   
  ;; Currently, we just use the extent of the longest
toc entry for all of them
  x-extent
  y-extent
  ))
 ))

%% Uncomment below to test
% \paper {
%   evenHeaderMarkup = \markup \current-toc-section
%   oddHeaderMarkup = \markup { "foo" \current-toc-section "bar" }
% }
% 
% \score {
%   \new Staff {
% \tocItem "Title 1"
% s1
% \pageBreak
% s1
% 
%   }
% }
% 
% \score {
%   \new Staff {
% \tocItem "Title 2 is long"
% s1
% \pageBreak
% s1
% 
%   }
% }



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Scheme help? snippet for movement page headers

2017-11-20 Thread Shevek
Oh ugh, Nabble wrapped my lines and now it's all ugly. :(



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Auto-transposition

2017-12-12 Thread Shevek
> But as a user of Lilypond for over fifteen years, I *will* recommend that
you consider avoiding relative entry mode — using absolute mode (and, when
appropriate, \fixed) will like save you headaches (like the one you're
encountering right now) in both the short and long term. 

The alternative is to use \relative {} but to use \resetRelativeOctave
religiously before every phrase, even the first one in a block. I find that
more natural for composing, personally.



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Transposing Keyless Brass Parts

2018-03-15 Thread Shevek
For my brass parts, I use the OpenLilyLib auto-transpose snippet, and \remove
Key_engraver.



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Is lilypond suitable for big composition projects?

2018-03-23 Thread Shevek
I have been using Lilypond + Frescobaldi for all my compositions for the last
8 years or so, including jazz, chamber music, and a symphony. The symphony
is currently at 120 pages, and will probably end up around 170 pages.

I certainly don't rely on continuous engraving — for one thing, if I'm doing
an edit that breaks bar checks, I want to finish editing every staff before
I engrave. For the symphony, engraving takes so long even on a fast computer
that I usually only engrave the bookpart for the movement I'm currently
working on.

I don't use MIDI playback hardly at all. If you want to do a proper MIDI
mockup in a DAW, Lilypond does give you nice and clean MIDI output, though.

A lot of my compositional process takes place in pencil on printed out
incomplete drafts.

I use Git for version control and remote backup of my projects.

Saul



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


cleanly dealing with variables and reducing code duplication in multimovement works

2014-04-02 Thread Shevek
Hello,

I'm working on a multi-movement piece, so far using a separate file for the
score of each movement. I'm trying to add a file to the project that
compiles all the movements and frontmatter into a single pdf, using
bookparts, and I'm having trouble figuring out the best way to do that. The
nicest way would be if all I needed to do were:

\book {
  \bookpart {
\include "movement1_score.ly"
  }
  \bookpart {
\include "movement2_score.ly"
  }
}

As you might guess, that fails because each of the included files itself
includes a file (e.g. movement1_music.ly) containing variable declarations,
and variable declarations aren't allowed inside bookparts. The solution to
that problem is for me to include movement1_music.ly etc. outside the \book
block. That causes another problem, though, because I am using the same
variable naming scheme for each of the movements. Obviously, I could solve
that problem by adding a prefix to all the variable names, but that seems
really yucky to me. I find myself craving some way to reference same-named
variables in different namespaces, like movement1.flute versus
movement2.flute.

Related to that craving is the fact that the score blocks for each of the
movements are identical, which makes me feel like there ought to be some way
to get rid of that code duplication. Really, I want to define the structure
of the score block once, and then instantiate it multiple times, feeding
each instance a different namespace, so that the first score block instance
looks up "flute" in the movement1 namespace, while the second score block
instance looks up "flute" in the movement2 namespace.

I'm sure this can't be a unique use case. Any suggestions on the best way to
accomplish some or all of this? Am I thinking too much like a Python
programmer to see the natural way to approach these issues in
Lilypond/Scheme? Are some of these issues unsolvable without changes to
Lilypond?

Some similar questions:
http://lilypond.1069038.n5.nabble.com/Books-bookparts-includes-what-td52157.html
http://lilypond.1069038.n5.nabble.com/bookparts-with-paper-blocks-td145242.html
http://stackoverflow.com/questions/20858042/define-function-inside-score-in-lilypond

Thanks,

Saul



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/cleanly-dealing-with-variables-and-reducing-code-duplication-in-multimovement-works-tp161112.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: cleanly dealing with variables and reducing code duplication in multimovement works

2014-04-03 Thread Shevek
Whoa, you can use \bookpart's without an enclosing \book block? I had no
idea! This is definitely the simplest, solution, though it seems
counter-intuitive. I definitely wouldn't have stumbled upon it if you hadn't
mentioned it.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/cleanly-dealing-with-variables-and-reducing-code-duplication-in-multimovement-works-tp161112p161173.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: "Namespace" for includes

2014-05-08 Thread Shevek
Check out this recent thread on pretty much this exact topic:
http://lilypond.1069038.n5.nabble.com/cleanly-dealing-with-variables-and-reducing-code-duplication-in-multimovement-works-td161112.html#a161152

Unfortunately, the answer is basically, no, Lilypond does not support this.
The above thread details several decent ways to work around the issue. I
think this is an issue that should have an official and documented solution.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Namespace-for-includes-tp161961p162143.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Transposing instruments in orchestra score

2014-05-08 Thread Shevek
If I understand correctly, what Orm wants is to be able to write something
like this:

clarinet = \relative c' {
\transposing bf
c4 d e d |
\transposing a
c d e d
}

And get the output to show d e fs e ef f g f (using English spelling).
Currently, in order to enter music in concert pitch and have it display
transposing, one needs to do the following:

clarinet = {
\transposition bf
\transpose bf c' {
\relative c' {
c4 d e d
}
}
\transposition a
\transpose a c' {
\relative c' {
 c4 d e d
}
}
}

This is cumbersome. It becomes a particular pain if one wants to do multiple
editions with different transpositions. It would be much, much easier IMO if
this could be accomplished with a single line command, like in the first
snippet.

Saul



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Transposing-instruments-in-orchestra-score-tp162085p162144.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Ugly slur with large leap - help?

2016-12-23 Thread Shevek
I have a passage similar to the following:

\version "2.18"
\language "english"

\relative c''' {
  \grace { f8( } c,8 b c2.)
}

In context, the automatic slur ends up looking very disconnected from the
grace note, and in some instances colliding with a downward stem. Is this a
bug? Is there a way to improve how it looks without manually tweaking each
slur? This figure appears a lot throughout the piece.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Ugly-slur-with-large-leap-help-tp198395.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Is there a short way of forcing a particular octave?

2016-12-23 Thread Shevek
I compose in \relative mode, and my practice is to use \resetRelativeOctave
at the beginning of every new phrase. It is a lot of characters to type, but
I've found that creating unnecessary aliases makes code harder to read and
libraries harder to maintain.

I even use \resetRelativeOctave at the beginning of a \relative block, just
for consistency. It is much easier to deal with \relative mode when you only
have to look to the line directly above the music to see the octave setting,
rather than the beginning of a code block.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Is-there-a-short-way-of-forcing-a-particular-octave-tp198225p198396.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Ugly slur with large leap - help?

2016-12-23 Thread Shevek
Flipping the slur avoids the worst problems, but it's not really correct.
Ideally, it should bend dramatically underneath the stem then upwards
towards the grace note.



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Ugly-slur-with-large-leap-help-tp198395p198401.html
Sent from the User mailing list archive at Nabble.com.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


  1   2   >