LilyPond: Espresso Rag hand crossing, by gpt-6.1-sol
gpt-6.1-sol · round 4 of 4 · seed 3$0.05SVGMP3MIDIrag.ly
rag.ly · 82 lines
\version "2.24.1"

\header {
  title = "Espresso Rag"
  subtitle = "A little café two-step"
  composer = "For solo piano"
  tagline = ##f
}

\paper {
  #(set-paper-size "a4")
  top-margin = 12\mm
  bottom-margin = 12\mm
  system-system-spacing.basic-distance = #19
}

rightHand = {
  \clef treble \key c \major \time 2/4
  \tempo "Lightly, with a wink" 4 = 112
  \override Score.RehearsalMark.self-alignment-X = #LEFT
  % 1–4: a jaunty, syncopated opening.
  e''8\mf-.( g''8~ g''8 e''8) |
  cis''8-.( e''8~ e''8 a''8) |
  f''8-.( a''8~ a''8 f''8) |
  d''8-. b'16( c''16) d''8-. g'8-. | \break
  % 5–8: answer, with a chromatic coffee-house turn.
  e''8-.( g''8~ g''8 c'''8) |
  b''8-. gis''16( a''16) b''8-. e''8-. |
  c''8( e''8) fis''8( a''8) |
  g''8-. f''16( e''16) d''8-. b'8-. | \break
  % 9–12: right hand stays low; left hand plays ABOVE it.
  \voiceTwo
  <e' g'>8\mp-. <e' g'>4-> <e' g'>8-. |
  <cis' g'>8-. <cis' g'>4-> <cis' g'>8-. |
  <d' f'>8-. <d' f'>4-> <d' f'>8-. |
  <d' f'>8-. <b f'>4-> <b f'>8-. | \break
  % 13–16: return to the opening texture and close.
  \oneVoice
  e''8\mf-.( g''8~ g''8 e''8) |
  cis''8-.( e''8~ e''8 a''8) |
  f''8( a''8) g''8( b''8) |
  <e'' g'' c'''>8-> r8 <e' g' c''>4-.\fermata \bar "|."
}

leftHand = {
  \clef bass \key c \major \time 2/4
  c8-. <e g>8-. g,8-. <e g>8-. |
  a,8-. <g cis' e'>8-. e8-. <g cis' e'>8-. |
  d8-. <f a>8-. a,8-. <f a>8-. |
  g,8-. <f b>8-. d8-. <f b>8-. |
  c8-. <e g>8-. g,8-. <e g>8-. |
  e,8-. <gis b d'>8-. b,8-. <gis b d'>8-. |
  a,8-. <c' e'>8-. d8-. <fis c'>8-. |
  g,8-. <f b>8-. g8-. <f b>8-. |
  \change Staff = "upper" \voiceOne \dynamicUp
  e''8\p-.[^\markup { \bold "L.H. over R.H. — bars 9–12" } g''8-.] c'''8-.[ g''8-.] |
  e''8-.[ g''8-.] a''8-.[ cis'''8-.] |
  f''8-.[ a''8-.] d'''8-.[ a''8-.] |
  g''8-.[ b''8-.] d'''8-.[ b''8-.] |
  \change Staff = "lower" \oneVoice \dynamicNeutral
  c8-._\markup { \italic "Hands return" } <e g>8-. g,8-. <e g>8-. |
  a,8-. <g cis' e'>8-. e8-. <g cis' e'>8-. |
  d8-. <f a>8-. g,8-. <f b>8-. |
  <c g>8-> r8 <c, c>4-.\fermata
}

\score {
  \new PianoStaff \with { instrumentName = "Piano" } <<
    \new Staff = "upper" \new Voice = "right" { \rightHand }
    \new Staff = "lower" \new Voice = "left" { \leftHand }
  >>
  \layout {
    indent = 12\mm
    \context {
      \Score
      barNumberVisibility = #all-bar-numbers-visible
      \override BarNumber.break-visibility = #begin-of-line-visible
    }
  }
  \midi { }
}
round 1 of 4
Espresso Rag, with the left hand crossing over, by GPT-6.1 Sol, the render after round 1
1234What the model saw after each round. The picture above is the round that was scored, round 4.

Espresso Rag, with the left hand crossing over: GPT-6.1 Sol

modelopenai/gpt-6.1-soltasklilypond-espresso-rag@v1, checks c1, harness h1date2026-10-04rounds4 of 8 allowed, 12 minutes on the clockcost$0.0483thinkingmediumtokens51,897 in, 2,611 out, of which 813 reasoningtime1 min 25 s
Piano staffdecided by a number, from the filepass
Sixteen barsdecided by a number, from the filepass
Left hand crossesdecided by a number, from the filepass
Right hand keeps goingdecided by a number, from the filepass
Crossing markeddecided by a number, from the filepass
Stems apartdecided by a number, from the filepass

There is no post about this one, since only some results need one, so the picture, the source and the scoring are here instead.

its other runs
the prompt it was given
Write, in LilyPond, 16 bars of café piano music called "Espresso Rag" in which the left hand crosses over the right hand for bars 9 to 12.
Frozen at v1. This model got this and nothing else.
ground truth

LilyPond's own record of every note: its hand, staff, bar, pitch and stem, read while the file is engraved. A voice belongs to the hand whose staff it starts on, unless its notes are labelled with a hand's name. The script was written after hearing Sol's and Pareto's runs, so Luna was its first fair test. How good the music sounds is rated by ear. How it is scored, and this run's files on GitHub.