Hello James,

not sure what you want to see exactly, but maybe using something like this 
could do the trick:

%%%
#(define-markup-command (box-outline layout props arg)
  (markup?)
  #:properties ((thickness 1)
                (font-size 0)
                (box-padding 0.2))
  (let* ((th (* (ly:output-def-lookup layout 'line-thickness)
                thickness))
         (pad (* (magstep font-size) box-padding))
         (m (interpret-markup layout props arg))
         (b (box-stencil m th pad)))
    (ly:make-stencil (ly:stencil-expr b)
                     (ly:stencil-extent m X)
                     (ly:stencil-extent m Y))))

\new StaffGroup <<
  \new Staff {
    \key c\minor
    1 1 1 1
    \break
    \stopStaff
    \once\omit Staff.Clef
    \once\omit Staff.KeySignature
    \once\omit Score.BarNumber
    s1-\tweak self-alignment-X #RIGHT
      -\tweak outside-staff-priority ##f
      -\tweak Y-offset #0
      -\markup\vcenter\override #'(thickness . 3) \box-outline \score {
      \layout { indent = 0 ragged-last = ##f }
      { \key c\minor c4 e' g' a' f' e' d' }
    }
    \break
    \once\omit Score.BarLine
    \startStaff
    1 1 1 1
  }
  \new Staff {
    1 1 1 1
    \break
    \stopStaff
    \once\omit Staff.Clef
    \once\omit Staff.KeySignature
    s1-\tweak self-alignment-X #RIGHT
      -\tweak outside-staff-priority ##f
      -\tweak Y-offset #0
      -\markup\vcenter\override #'(thickness . 3) \box-outline\score {
      \layout { indent = 0 ragged-last = ##f }
      { c'2 e'2 }
    }
    \break
    \once\omit Score.BarLine
    \startStaff
    1 1 1 1
  }
>>
%%%

Here we use markup scores to get independent typesetting.

Cheers,
Valentin

Am Sonntag, 13. April 2025, 05:27:19 Mitteleuropäische Sommerzeit schrieb 
James Harkins:
> Hi,
> 
> I'm stuck again.
> 
> I've got a passage that's meant to be aleatoric: each player has 4 phrases 
and 4
> held notes to be played in any order.
> 
> Barlines should not be synchronized. Vertical alignment is irrelevant. I've 
done
> some searching this morning but I can't find anything about how to convince 
LP
> to suspend rhythmic relationships and typeset several simultaneous staves 
with
> completely independent horizontal spacing (but for only part of a score). -- 
If
> one part has a whole note with fermata, and at the same "score time," 
another
> part has running 16ths, the whole note doesn't need that much space, but LP
> will align it with the fast notes. \cadenzaOn / \cadenzaOff won't help with
> that.
> 
> Gould recommends frames for each unit. I tried David Nalesnik's (excellent)
> frameEngraver, but ran into a little snag because some of the frames will 
cross
> system breaks, and as currently written, the frames will be automatically
> closed at the beginning and end of a system, so it's difficult to distinguish
> between a frame that terminates at the end of the system and one that 
continues
> into the next system. But I'm not sure if I'll really continue with that,
> because of the rhythmic alignment problem.
> 
> Polymeter with more careful attention to beat count doesn't produce errors, 
but
> it also doesn't produce reasonable system breaks. I can *almost* get that to
> work by forcing system breaks and scaling durations of the long notes -- 
ugly
> hack but might almost work.
> 
> Or do I need to break this into multiple scores? E.g.,
> 
> \score { ... conventionally notated ... }
> 
> \score { ... flute part aleatoric bit, suppressing first-system indentation 
...
> }
> 
> \score { ... oboe part aleatoric bit, suppressing first-system indentation 
... }
> 
> ... etc.
> 
> \score { ... more conventional notation ... }
> 
> That would certainly suspend horizontal alignment. Instrument staves would 
not
> be interleaved, but interleaving them might be misleading anyway since it 
would
> imply temporal relationships that don't exist.
> 
> Suggestions...? Been banging at this for an evening and a morning.
> 
> hjh

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to