lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: error: can't allocate region - layout block?


From: Thomas Morley
Subject: Re: error: can't allocate region - layout block?
Date: Tue, 26 Apr 2016 23:22:01 +0200

2016-04-25 9:35 GMT+02:00 address@hidden <address@hidden>:
> 3) I’ll try to understand where I made mistakes.

Skimming over your code I don't see mistakes at all. It's more that
some things are preferable opposed to others.

> Sorry but I’m using Lilypond since about 4 weeks and I have still a lot to 
> learn…

I'm using LilyPond for a plethora more than 4 weeks, I still learn ;)

> For ossia, do you mean that it should be better to create a new staff and 
> hide it when empty, rather than recalling wit \start \stop?

Right now you code your ossia-staves using one of the methods as
recommended in the NR
http://lilypond.org/doc/v2.19/Documentation/notation/modifying-single-staves#ossia-staves

I.e.:

\layout {
  \context {
    \Score
    \override VerticalAxisGroup.remove-first = ##t
  }
  \context {
    \Staff
    \RemoveEmptyStaves
  }
}


mainI = {
  c''1 d''
  \break
  e''
  <<
    f''
    \context Staff = "ossiaI" { \startStaff fis'' \stopStaff }
  >>
  g''
}

<<
  \new Staff = "ossiaI"
  \with {
    \remove "Time_signature_engraver"
    \hide Clef
    %\magnifyStaff #2/3
    \RemoveAllEmptyStaves
  }
  {
    \stopStaff
    s1*5
  }
  \new Staff = "mainI" \mainI
>>

Though, I've still the suspicion it's the cause of the memory problem:
Sending content from one Staff to another out of a simultabeous
music-expression, repeated _very_ often in your file(s)
The bug as mentioned previously may be important as well.

I hesitate to propose it, but maybe it's worth an attempt not to fill
ossia-staves from the main-staves but directly.

I.e.:
\layout {
  \context {
    \Score
    \override VerticalAxisGroup.remove-first = ##t
  }
  \context {
    \Staff
    \RemoveEmptyStaves
  }
}

main = {
  c''1 d''
  \break
  \time 2/2
  \key f \major
  e''
  f''
  g''
}

ossia = {
  \stopStaff
  s1*3
  \startStaff
  fis''1
  \stopStaff
  s1
}


<<
  \new Staff = "ossia"
    \with {
      \remove "Time_signature_engraver"
      \hide Clef
      %\magnifyStaff #2/3
      \RemoveAllEmptyStaves
    }
    \ossia
  \new Staff = "main" \main
>>


Cheers,
  Harm



reply via email to

[Prev in Thread] Current Thread [Next in Thread]