lilypond-user
[Top][All Lists]
Advanced

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

Re: midi for orchestral scores


From: Brett McCoy
Subject: Re: midi for orchestral scores
Date: Thu, 28 Jun 2012 07:54:01 -0400

On Thu, Jun 28, 2012 at 7:36 AM, Nils <address@hidden> wrote:
>>
>> 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?
>
>
> We are dealing with midi here, that means 16 instruments max. at each given 
> time.
> If you want more you need to use several players in sync, connected to 
> several samples/synths. One for each player.
> Since that is hard to do manually this role is done by software called 
> "Sequencer".
>
> What lilypond needs to do is to export 16 instruments on 16 channels and then 
> import all to QTractor or similar, hook it up to several instances of 
> fluidsynth, timidity or Linuxsampler and play away.
>
> This is hard work and best automated. Lilypond is no sequencer and afaik 
> nobody wrote a script or program to automate the whole process.

For basic playback from Lilypond (like via Frescobaldi), I create a
separate context for MIDI, and then will do something like put all
horns on a single instrument, brass on a single instrument (brass
ensemble), all strings on a single instrument (string ensemble), and
so on, to keep it all on the single MIDI channel. Then yes, once I am
done composing I bring the MIDI into Rosegarden or similar and then
create a proper performance for it (which Lilypond is not good for,
and was never intended to be a performance app).

As an example:

For a horn, I will have this for the notes:

hornOneF = \transpose c g \relative c' {
  \global

  % Music follows here.

 ...
}

hornTwoF = \transpose c g \relative c' {
  \global
  % Music follows here.

  ...
}


% this is for the printed score
hornOneFPart = \new Staff \with {
  \override InstrumentName #'self-alignment-X = #RIGHT
  instrumentName = \markup \right-column {"1,2"}
  shortInstrumentName = \markup \right-column {"1,2"}
} \hornOneF

hornTwoFPart = \new Staff \with {
  \override InstrumentName #'self-alignment-X = #RIGHT
  instrumentName = \markup \right-column {"3,4"}
  shortInstrumentName = \markup \right-column {"3,4"}
} \hornTwoF

%score layout
\score {

...

\new StaffGroup = "StaffGroupSquare_Horns" {
    <<
      \set StaffGroup.systemStartDelimiter = #'SystemStartSquare
      \set StaffGroup.instrumentName = \markup {\left-align Horn in F}
      \set StaffGroup.shortInstrumentName = "Hn.F"
      \hornOneFPart
      \hornTwoFPar
>>}

And then the MIDI stuff:


hornFMIDI = \new Staff \with {
  midiInstrument = "french horn"
}
<<
  \new Voice = "horn 1" {
    \voiceOne
    \transpose g c
    \hornOneF
  }

  \new Voice = "horn 2" {
    \voiceOne
    \transpose g c
    \hornTwoF
  }
>>



%this score context does MIDI output
\score {
  <<
    \fluteMIDI
    \oboeMIDI
    \clarinetMIDI
    \englishHornMIDI
    \bassoonMIDI
    \contraBassoonMIDI
    \hornFMIDI
    \brassMIDI
    \timpaniMIDI
    \DrumsIMIDI
    \celesteMIDI
    \stringsMIDI
    \contraBassMIDI
  >>

  \midi {
    \context {
      \Score
    }
  }
}




-- 
Brett W. McCoy -- http://www.brettwmccoy.com
------------------------------------------------------------------------
"In the rhythm of music a secret is hidden; If I were to divulge it,
it would overturn the world."
    -- Jelaleddin Rumi



reply via email to

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