lilypond-user
[Top][All Lists]
Advanced

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

An idea for a systematic development of a large score.


From: wjm
Subject: An idea for a systematic development of a large score.
Date: Fri, 17 May 2013 13:26:49 +1200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6

Greetings!
After watching Sarah K Alawami's work on a score recently on this user-list, but not having the musical and compositional skills to make constructive remarks, and after reading the thread entitled 'stylesheet structure', it occurred to me that an approach might be found which might make the whole process a little less opaque.

After a lot of fiddling around I came up with this schema:-

Write separate files for each instrument, containing only its musical elements, and name them 'instrument'.ily, signifiying that they are not to be compiled directly by Lilypond. Write separate files for each instrument, "\include"ing the relevant .ily file, and with enough information to allow Lilypond to process it correctly. (This would enable 'proofing' of each instrument for musical correctness concerning octaves, barchecks, etc., without having to deal with the complete score). Write a separate file for the version, paper, header, sections, naming it version-paper-header.ily Write a separate file for the global constants; time, beat, key, etc., -structure, naming it global.ily Write an overarching 'score' file "\include"ing all the relevant .ily files, and containg any additional information for the final processing by Lilypond, naming it 'musical-title'.ly This approach is well-facilitated in Frescobaldi, using the point-and-click correlation between the output pane and the relevant input file. (Frescobaldi calls up the relevant .ily file even if it is not loaded at the time - a very convenient feature). Whether this would work well for someone with severe visual impairment or other disability, I don't know.

Regards,
Bill

This is how a work might be structured:-
+++++++++++++++++
global.ily
version-paper-header.ily
+++++++++++++++++
bass.ily
bassoon.ily
cello.ily
clarinet.ily
drum.ily
flute.ily
horn.ily
oboe.ily
score.ily
trumpet.ily
viola.ily
violin-ii.ily
violin-i.ily
+++++++++++++++++
bass.ly
bassoon.ly
cello.ly
clarinet.ly
drum.ly
flute.ly
horn.ly
oboe.ly
trumpet.ly
viola.ly
violin-ii.ly
violin-i.ly
+++++++++++++++++
fullscore.ly
+++++++++++++++++

Example files are as follows:-
global.ily ---
==============
global=
{\time 12/8
\tempo 4. = 100
\key g \major
}
==============
version-paper.ily ---
==============
\version "2.17.15"
\header
{
%whatever is wanted from the full header definition as in the Lilypond documentation...
}

#(set-global-staff-size 17)
\paper
{
  indent = 30  % space for instrumentName
  short-indent = 15  % space for shortInstrumentName
}
==============
a music file ---
==============
\include "version-paper.ily"
\include "global.ily"
\include "bass.ily"

\score {
{ \global \bassMusic }
\layout { }
}
==============
the 'score' file ---
==============
\score {
   <<
    \new StaffGroup = "StaffGroup_woodwinds"
    <<
        \new Staff = "Staff_flute"
        {
        \set Staff.instrumentName = #"Flute"
       \global    \fluteMusic
        }
        \new Staff = "Staff_clarinet"
        {
        \set Staff.instrumentName =
        \markup { \concat { "Clarinet in B" \flat } }
           \transposition bes
        \global         \transpose bes c' \clarinetMusic
        }
        \new Staff = "Staff_bassoon"
        {
        \set Staff.instrumentName = #"Bassoon"
        \global   \bassoonMusic
        }
    >>
    \new StaffGroup = "StaffGroup_brass"
    <<
      \new Staff = "Staff_hornI"
      {
        \set Staff.instrumentName = #"Horn in F"
        \transposition f
        \transpose f c'  \global \hornMusic
      }
      \new Staff = "Staff_trumpet"
      {
        \set Staff.instrumentName = #"Trumpet in  C"
      \global   \trumpetMusic
      }
    >>
    \new RhythmicStaff = "RhythmicStaff_percussion"
    <<
      \set RhythmicStaff.instrumentName = #"Percussion"
     \global  \percussionMusic
    >>

       \new StaffGroup = "StaffGroup_strings"
       <<
      \new StaffGroup = "StaffGroup_violins"
      <<
        \new Staff = "Staff_violinI"
        {
          \set Staff.instrumentName = #"Violin I"
        \global   \violinIMusic
        }
        \new Staff = "Staff_violinII"
        {
          \set Staff.instrumentName = #"Violin II"
         \global  \violinIIMusic
        }
      >>
      \new Staff = "Staff_viola"
      {
        \set Staff.instrumentName = #"Viola"
       \global  \violaMusic
      }



reply via email to

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