lilypond-user
[Top][All Lists]
Advanced

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

Re: MIDI output of multiple scores into a single MIDI file?


From: Thomas Morley
Subject: Re: MIDI output of multiple scores into a single MIDI file?
Date: Mon, 30 Sep 2013 02:34:31 +0200

2013/9/30 David Kastrup <address@hidden>:
> Dossy Shiobara <address@hidden> writes:
>
>> On 9/29/13 5:29 PM, Federico Bruni wrote:
>>> are you  sure you need to organize it in \score blocks?
>>> can you use variables instead (and one \score block)?
>> One \score is a 4-bar PianoStaff intro only, then the second \score is
>> the rest of the arrangement, that contains ChordNames, FretBoards, a
>> Voice with Lyrics, and a PianoStaff for the accompaniment.
>>
>> When I tried to do this as a single score, I put skips in all the parts
>> other than the PianoStaff for the intro 4-bar section, and used
>> \RemoveEmptyStaffContext to try and "hide" all the other parts, but
>> while they didn't visibly engrave anything, they created a lot of
>> padding between the header and the first system which I just couldn't
>> figure out how to get rid of.
>
> Stop right here.  You seem to labor under the illusion that a score has
> to look like
>
> \score {
>   << ...
>   >>
> }
>
> but there is nothing keeping a score from being
>
> \score {
>   {
>     << ...
>     >>
>   }
>   {
>     << ...
>     >>
>   }
> }
>
> namely containing a _sequence_ of StaffGroups or similar.
>
> --
> David Kastrup


Hi Dossy,

what David wrote may be illustrated by this example

\version "2.17.27"

\header {
    title = "TITLE"
    subtitle = "SUBTITLE"
    piece = "PIECE"
    composer = "COMPOSER"
}

introMusic =
    \new PianoStaff <<
    \new Staff \relative c' { \repeat unfold 8 c1 \bar "||" }
    \new Staff \relative c { \clef F \repeat unfold 8 c,1 }
    >>

restMusic =
    <<
    \new Staff {
      \new Voice = "mel" \relative c' { \repeat unfold 8 e'1 \bar "|." }
    }
    \new Lyrics \lyricsto "mel" \lyricmode { \repeat unfold 8 bla }
    \new FretBoards \chordmode { \repeat unfold 8 c:m }
    \new ChordNames \chordmode { \repeat unfold 8 c:m }

    \new PianoStaff <<
    \new Staff \relative c' { \repeat unfold 8 c1 }
    \new Staff \relative c { \clef F \repeat unfold 8 c,1 }
    >>
    >>

\score {
  {
    \introMusic
    \restMusic
  }
  \layout { }
  \midi { }
}


Though there is an spacing-issue with removing empty staves and the header.
Looking at the output of the following example the gap between header
and first system is too large.
It's a nuisance perhaps a bug, though one could work around it.
Comment in the \paper -section.

\version "2.17.27"

\header {
    title = "TITLE"
    subtitle = "SUBTITLE"
    piece = "PIECE"
    composer = "COMPOSER"
}
%
%\paper {
%    markup-system-spacing =
%          #'((basic-distance . 0)
%             (minimum-distance . 0)
%             (padding . -10)
%             (stretchability . 12))
%}

piano =
\new PianoStaff <<
\new Staff \relative c' {
    \mark "Intro"
    \repeat unfold 8 c'1 \bar "||" \break
    \mark "rest"
    \repeat unfold 8 c1 \break
    \repeat unfold 8 c1
}
\new Staff \relative c, {
    \clef F
    \repeat unfold 8 c1
    \repeat unfold 8 c1
    \repeat unfold 8 c1
}
>>

voice =
\new Staff \new Voice = "lyr"\relative c' {
    \repeat unfold 8 s1
    \repeat unfold 16 e'
}

lyr =
\new Lyrics \lyricsto "lyr"
\lyricmode {
    \repeat unfold 16 bla
}

chrds =
\new ChordNames
\chordmode {
    \repeat unfold 8 s1
    \repeat unfold 16 c:m
}

fretboards =
\new FretBoards
\chordmode {
    \repeat unfold 8 s1
    \repeat unfold 16 c:m
}

\score {
   <<
   \voice
   \lyr
   \fretboards
   \chrds
   \piano
   >>
   \layout {
     \context {
       \Staff \RemoveEmptyStaves
       \override VerticalAxisGroup.remove-first = ##t
     }
   }
   \midi { }
}

HTH,
  Harm



reply via email to

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