Log in

View Full Version : Lilypond Notation Software - Support



alpiso
March 29th, 2011, 10:31 am
Lilypond Notation Software


I open this topic to discuss and give the opportunity to help each other about the Lilypond Engraving software.
"Engraving" as said by the authors because this software focus on producing really nice and beautiful sheet music, like those produced dozen years ago.
Simpler, you can also say Notation software ^_^.

On the ichigos web site you can already find sheet music produced with this software, like this one : Lilium From Elfen Lied (Transcribed by Niu) (http://ichigos.com/res/getfile.php?id=1519&type=pdf)


Introduction - Presentation


I may introduce it a little (?).
First, this is not a WYSIWYG software. Music is not entered by the mouse neither by a nice graphical view/user interface like Finale, Sibelius or other software like them. You have to enter the music by text. Yes, text. The benefit is that you can write your music everywhere, in every Operating System: Lilypond is multi-platform: windows, linux, Mac. Thus, the source file is also very very small.
The other benefit is that you get a nice PDF file, readable everywhere too.
Of course, the main drawback is to learn the syntax, all the text commands. Because, you can not write what you want to produce your sheet music, you have to learn how to write the music, conforming to the Lilypond syntax. Maybe it's a difficulty, because you'll need to spend time in this task, but I can answer that in each new software you get, you need to learn how to use it.

But, don't think that entering music in Lilypond is very different from other softwares: music stay music, you'll find notes, rhythm, dynamics, staff notations, annotations, chords, etc... :)

Thus, Lilypond make differences in typing music. I mean, you have all that is related to the music itself (pitches, rhythm, etc...) and in other hand, you have all that is related to Staff and paper customization. Even if Lilypond compute automatically to the best performance in obtaining a beautiful sheet music, you can change these settings (eg. A5 paper instead A4...) .

The other difficulty that I would like to discuss is that you can write the source in different ways to get the same PDF. For example : if 2 persons transcribe the same music, we will have the same PDF, but the source file may be different.
So it would be very nice that in this thread we should discuss about a (the?) good way to write the music, so when someone want to modify a source file for his convenience, he will do this the faster way. I'm telling about that in keeping in minds that transcribers would use lilypond and would share their sources to offer to other persons a way to adapt and personalize the sheet music at their own convenience and personal purpose.

People who have ability in computer programming will have an advantage: Lilypond manage music as expressions.
People who don't know this, won't be disadvantaged, it's a concept that I'll explain later, just know that I'll speak about "music expression" ;)

Keep in mind that the aim of Lilypond is not to focus on how to type music but it's to produce beautiful sheet music :)

To be more precise, you can also produce a lilypond file from : MIDI file, abc file, musicXML file and music keyboard (still in development)

Oh! Did I forgot to precise that Lilypond is free ^.^ ?


Link

Here is the link to the main Lilypond site : www.lilypond.org
(http://www.lilypond.org)

Tools and Tutorials

For typing music, some useful tools exists. Rather than write word for word the music, they allow to write music faster by clicking on a menu item.
Those who use jEdit will find LilypondTools (http://lilypondtool.blogspot.com/). It's a plugin that add a new sub-menu which contain major of music items from lilypond.
Recently, I found Lied (http://www.ypcod.com/) . This is the same concept, except that the software is independent, not linked to a specific editor. It's still in development
For my part, I'm using a "simple" text editor, Notepad++ (http://notepad-plus-plus.org/) in which I define my own language: I have the colouring syntax. I'll develop this later.
At last, to use Lilypond, a simple text editor and a PDF reader are required. Just have to know that Lilypond come with it's own text editor (lilypad) that is a very very simple text editor.
Of course, you'll need to "user guide" that explain Lilypond and how to enter music.
There are some resources on the web. A great site is the Lilypond Snipet Repository (http://lsr.dsi.unimi.it/).
This site host many short files that focus on a specific point of entering music. You can see the site like a FAQ.

An important point to keep in mind is that as Lilypond is a collaboration project, the syntax evolve and get richer. So, when a new version is released with new functions, all tools you use need to be updated.
This is a reason for why I don't use these tools. I always have my "customized" notepad++ editor and the user guide with me to work (of course, I need also to update my customization ;) ).

The user manual is well done: it's clear and explain all details to write its first sheet music as complex one. In fact you can read it as a tutorial. Of course, on the main site, you'll also find many interesting tutorials (http://www.lilypond.org/manuals.html) about points you need (pitches, Staff, specific instrument notation, etc...).

On the web, there is not plenty of tutorial. The good one I found is : http://wiki.lilynet.net/index.php/Main_Page. Click on the "Tutorials and examples" link ;)

Here, with this topic, I don't want to substitute myself from these existing tutorials or the user manual. They are really well done, and I rather prefer to point and invite you to read them instead copying them ;)


Short Example


I'll take the "Brother John" song to illustrate the use of Lilypond. With the first examples you can see these examples as an overview, then I'll focus on the use of expressions, which highlight the point I want to discuss : writing proper source files :)

Note that Lilypond is case sensitive.


First version

The very simple one, just the music :



% Frčre Jacques - Brother John

{
c'4 d' e' c'
c' d' e' c'
e' f' g'2
e'4 f' g'2
g'8 a' g' f' e'4 c'
g'8 a' g' f' e'4 c'
c'4 g c'2
c'4 g c'2
}


The PDF :13582


The first line which begin with the % symbol mean that whatever that come after this symbol is a comment, it will not be interpreted, not read and translated into sheet music. So you can give useful informations like the title of the song (here) or explain the following musical expressions.
Then we have {}. These symbols include a musical expression. Here, I write the notes of my melody (inside of them).
When they are alone, like in this file, it mean that this is the "final" musical expression. This what must be interpreted and converted into a nice sheet music. When not, it means something else we will see below.
The notes are given with pitches ( c d e f g a b ), octave (') and the duration (4 = quarter note, 8 eighteenth, etc...). When the duration is not indicated, it keep the previous given.
Be aware that here, we are giving the exact (absolute) pitch. Lilypond has 2 methods to input notes: absolute pitch or relative pitch. When the input is done with absolute pitch, the c' note correspond to the middle c, which is the one below the G Staff. The c note correspond to the c in the middle of the F clef. There is no ambiguity with this input method.

Without any precision, you can see that Lilypond consider that you're writing your music in a G staff, with a 4/4 meter key, a C major tonality and a 60 bpm tempo mark (not saw in the sheet music, but believe me :p )


Second version

In this version, I want to precise all the above default settings.



% Frčre Jacques - Brother John

{
\relative c' { % I want to input my notes with the relative method.
\clef G % I want a G Staff
\time 4/4 % I want a 4/4 meter key
\tempo 4 = 120 % I want a 120bpm tempo mark; each quarter note must be played at 120bpm ( 4 = 120 )
\key c \major % I define the tonality
c4 d e c
c d e c
e f g2
e4 f g2
g8 a g f e4 c
g'8 a g f e4 c
c4 g c2
c4 g c2
}
}


The PDF : 13585


So, we have \relative. This is a Lilypond command. All Lilypond commands are prefixed with \.
This command mean that the music entered in the following {} are "octave relative". Compared to the first version, instead giving the exact octave for each notes (the exact pitch or absolute pitch), the octave of the current note depend of the previous one (relative pitch, depending of the previous). Here the first note of my music depend from the "c'" pitch given in the relative command; this is the start point, then it's go on. Then, depending of your music, you need to specify the octave change or not. In fact, when you input a note, if this note stays upper than the below fifth diminished and lower than the upper fourth augmented, you stay into the current octave. if you want to change, you need to add ' to go to the upper octave and , to the lower one. Adding more ' or , will increase or decrease the number of octave change. I won't go further ;)
Then, we have the clef indication with \clef G. It mean to write a G staff and to write the notes into this staff.
The meter key and tempo indication follow with \time 4/4 and \tempo 4 = 120.
I think they are self explanatory to do not describe them more.


Third version

With this version I'll focus on the expressions concepts. This one of the main advantage of Lilypond.



% Frčre Jacques - Brother John

melody = \relative c' {
\clef G
\time 4/4
\tempo 4 = 120
\key c \major
c4 d e c
c d e c
e f g2
e4 f g2
g8 a g f e4 c
g'8 a g f e4 c
c4 g c2
c4 g c2
}

{ \melody }



Now, the PDF :13584


You have melody = ...

By doing this, I make a declaration. I'm telling to Lilypond : "give to "melody" all what follow after the = symbol."

It's like in mathematics when you write "x = 6", or "a = x˛+3b" : it's the same !
Instead writing "x˛+3b" everywhere you need it in your exercise, you'll write "a".

Of course, here with Lilypond, we have a musical expression ^_^.

So, I make all declarations I need, and then in the end, I write the music expression that must be interpreted in the "final" musical expression. Here, we have { \melody }. Make the comparison with the 2nd version: instead of writing my full music, I write the "variable" that contain it. Note that to use a predefined (predeclared) music expression, you have to prefix it with a \.
If I continue with my mathematics comparison, I make the declaration like "a = x˛+3b", and I re-use my declared expression by writing "\a". That's all.

In that way, I can go further; take a look...


Fourth version




% Frčre Jacques - Brother John

Indications = {
\clef G
\time 4/4
\tempo 4 = 120
\key c \major
}

MelodyA = \relative c' {
c4 d e c
}
MelodyB = \relative c' {
e f g2
}
MelodyC = \relative c' {
g'8 a g f e4 c
}
MelodyD = \relative c' {
c4 g c2
}


{
\Indications \MelodyA \MelodyA \MelodyB \MelodyB \MelodyC \MelodyC \MelodyD \MelodyD
}


The PDF: 13583




What are the differences ?
I splitted what is note and what is Staff indications.
And, I also splitted the notes into parts. As this song is a canon in which each melodic phrase is repeated twice, I just need to write once this melodic phrase and recall it when I need.
Believe me, it's very powerful : you don't need to write several time the same music (typing text could be very long), you just re-use it !That let you organize your music in multiple parts, as you wish.
The best example I can take is an orchestral sheet music. Take the Clarinet in Bb. Maybe (for sure!) the clarinettist want his part in Bb, but the chief ant it in C. So you write once the clarinet part in Bb, then for the clarinettist, you create the Bb part by recalling the clarinet part. Then you recall the same part by transposing it with a simple command to get the Chief part !
Shorter : write once, use everywhere :lol:

Be aware : you can not use digits in your variable. This is why I wrote MelodyB instead of Melody2.

Also, pay attention about the "final" music expression: You have \Indications part first, then follow \MelodyA and \MelodyA, then \MelodyB and \MelodyB, and go on. They are "chained" one after the other.



Well !!

Still here with me ? Not lost by this long introduction @_@ ??


OK! So let me give you a last version.



Fifth version


This version of the song is with lyrics and other nice stuff. Don't hesitate to read the user manual and ask for help if one point is not clear ;)
As I'm French, I'll write the lyrics in French :P.




% Frčre Jacques - Brother John

Indications = {
\clef G
\time 4/4
\tempo 4 = 120
\key c \major
}

MelodyA = \relative c' { c4 d e c }
MelodyB = \relative c' { e f g2 }
MelodyC = \relative c' { g'8 a g f e4 c }
MelodyD = \relative c' { c4 g c2 }


MyMelody = {
\Indications
\MelodyA \MelodyA
\MelodyB \MelodyB
\MelodyC \MelodyC
\MelodyD \MelodyD
}

TheLyrics = \lyricmode {
Frč -- re Ja -- cques
Frč -- re Ja -- cques
Dor -- mez- vous?
Dor -- mez- vous?
Son -- nez les ma -- ti -- nes
Son -- nez les ma -- ti -- nes
Ding ding dong
Ding ding dong
}

TheChords = \chordmode {
c1
}

\header {
title = "Frčre Jacques"
composer = "Populaire"
}

\score {
<<
\new ChordNames { \TheChords }
\new Staff {
\new Voice = VoixMelodie { \MyMelody }
}
\new Lyrics \lyricsto VoixMelodie { \TheLyrics }
>>
}


The PDF: 13581


Note that here, I also splitted the music. This is nice (oops, I didn't splitted the lyrics :p), but not really necessary : the song is short.
Of course, you can copy and past the text but, keep in minds that it's really useful for big pieces.


I won't explain each point of this version, this is not the purpose. I just need to precise that your source files must be wrote by using the UTF-8 encoding charset. Very important for pieces with lyrics containing accents... like the french :)


So, I let you here for now. Big thanks to you who read all this (very) long (introduction?) post :D
(hope moderators won't blame me :P)

Don't hesitate to discuss about the software, the way to write source, asking for some help, etc...
Next time, I will describe how I write my .ly files and how I work/organize my Lilypond projects.

M
March 30th, 2011, 12:48 am
For those that want something that's more tangible, I have transcribed the sheet music for .hack//G.U piano title theme from our main site (http://ichigos.com). You can see the source and the resulting image below:


1 \version "2.12.3"
2
3 %%%%%%%%
4 %%% Piano Solo
5 %%% .hack//G.U (Website Background Music)
6 %%%
7 %%% Composed by: Chikayo Fukuda
8 %%% Arranged by: Sarah Pobjoy
9 %%% Transcoded by: M.T. Rutile
10 %%% Prepared for: Ichigos Sheet Music (http://ichigos.com)
11 %%%
12 %%%
13
14
15 %Common signatures
16 point = {
17 \key aes \major
18 \time 3/4
19 \tempo "Moderato" 4 = 112
20 }
21
22 % Upper melody line (Treble clef)
23 upper = \relative c' {
24 \clef treble \point
25 r8 c f g aes c ees c as f es des
26 r4. g,8 aes c ees c g' aes bes c
27 <f g,>8 ees <bes' d,>4 g
28
29 <c g c,>8\arpeggio g <f d>2
30 < g d g,>8\arpeggio c, <d a>4 bes
31 <f d g,>8\arpeggio c <d a> bes <c g> d
32
33 r4. g,8 aes c ees c g' aes bes c
34 <f g,>4\arpeggio <f' c>8 ees <c' des,>4
35 <f,, g, bes>4 <aes' c,>8 <g bes,>8 <ees g,>4
36 r8 <g g,> <f aes, f> <g bes, g> <c, g c,>
37 <des des,> <g, g,> <aes aes,> <bes bes,>
38 <c c,> <ees g, ees>4 <g c, g>2.
39 r8 aes,,, ees' c f4
40 r2. r8 ^ \markup {Repeat and Fade}
41 aes, ees' c g' 4 \bar ":|"
42 }
43
44 % Lower counter melody (Bass clef)
45 lower = \relative c {
46 \clef bass \point
47
48 f2. des8 aes ees''4 des
49 f,,8 aes des2 des,8 aes' f'2
50 c,8 g' des' ees bes' c
51
52 <ees aes,>4\arpeggio <f bes,>2
53 <c f,>4\arpeggio <d g,>2
54 <f, bes,>4\arpeggio <d g,>2
55
56 f,8 c' f4 ees,
57 <<{des8 aes' f'4 d8 ees}
58 \\
59 {s2 c,4}
60 >>
61 <aes'' des,>2.\arpeggio
62 <bes ees,>2.\arpeggio f8 c' f4 des des,8 c' f4 des f,,8 c' f g aes c
63 des,2. f,8 c' f g aes c des,2. \bar ":|"
64 }
65
66 \header {
67 title = "Piano Solo"
68 subtitle = ".hack//G.U. (Website Background Music)"
69 composer = "Composer: Chikayo Fukuda"
70 arranger = "Arranger: Sarah Pobjoy"
71 tagline = \markup {Transcribed for Ichigo's Sheet Music \with-url #"http://www.ichigos.com" {http://www.ichigos.com} }
72 copyright = \markup {Copyright \char ##x00A9 2005-2011}
73 }
74
75 \score {
76 \new PianoStaff <<
77 \set PianoStaff . instrumentName = "Piano "
78 \new Staff = "upper" \upper
79 \new Staff = "lower" \lower
80 >>
81 \layout {
82 }
83 \midi {
84 }
85 }
86

Lelangir
March 30th, 2011, 02:18 am
Here's the template I use when engraving lead sheets. It took me a long time to figure how to (1) get the tempo marker further up and further left; (2) get the website and lilypond plug in the bottom left on every page and (3) get page numbers on bottom right on every page. It's easy to customize. The fields in the \header section are pretty self-explanatory, e.g., title, subtitle, composer. What you enter in the copyright field will be produced in the bottom left side of every page. To indicate a tempo on the sheet music, enter your BPM (when in 4/4) in the \markup section below \header. If your time signature is in 3/4 or something else and you want to indicate something other than a quarter note as your base note, change the note-by-number values. The default is #2 #0 #UP. The first value changes the note duration, and the 2nd value is boolean (I think?) - if you want to indicate a dotted note as the base, change it to #1. If not, keep it at #0. Of course, in the \paper section you can change the fonts and stuff too.



\version "2.13.3"

\paper {
myStaffSize = #20
#(define fonts
(make-pango-font-tree "Garamond"
"Times"
"Luxi Mono"
(/ myStaffSize 20)))

oddHeaderMarkup = \markup \fill-line { " " }
evenHeaderMarkup = \markup \fill-line { " " }

oddFooterMarkup = \markup
\column {
\on-the-fly #first-page \fill-line {
\fromproperty #'header:copyright
\on-the-fly #print-page-number-check-first
\fromproperty #'page:page-number-string
}
\on-the-fly #not-first-page \fill-line {
\fromproperty #'header:copyright
\on-the-fly #print-page-number-check-first
\fromproperty #'page:page-number-string
}
}
print-first-page-number = ##t
print-page-number = ##t

}
\header {
title = \markup \center-column { " " }
subtitle = \markup { " " }
composer = \markup { "composer: " }
copyright = " | music engraving by LilyPond 2.13.3—www.lilypond.org"

}
\markup {
\column {
\wordwrap {
\note-by-number #2 #0 #UP
= n
%tempo goes here
}
}
}

\score
{
<<

\chords {



%chords go here
}


\new Staff \with {\consists "Volta_engraver"}
\relative c' {\key


%music goes here

}

>>

\midi {
\context {
\Score
tempoWholesPerMinute = #(ly:make-moment 153 4)
}
}
\layout {
\context {
\Score
\remove "Volta_engraver"
}
}
}

alpiso
March 30th, 2011, 09:41 am
Thanks M ! Indeed, it's more concrete ^.^


The page customization was one point I planned to study for my works. I saw on the manual that it was possible, more simpler than previous version of lilypond. So, thanks for sharing lelangir :D

About the placment of the metronome indication, usually, I use this :


\override Score.MetronomeMark #'padding = #'4.0 % Vertical spacing
More the value (#'4.0) is high, more you'll get space between the metronome indication and the first staff. Be aware that it will also calculate all the spaces between other staff's objects. In fact the first staff will start as lower as the value is high.

If you use this :


\override Score.MetronomeMark #'extra-offset = #'(-4 . 0) % free location
You're able to place the metronome indication where you want, from the standard location, without any incidence to other objects (it's independant :) ). The value is understand like this :


( x-axis . y-axis)
A positive value into the x axis will shift the position to the right (and negative to the left)
A positive value into the y axis will shift the position to the up (and negative to the down)

alphamai1300
May 29th, 2011, 03:05 am
Oh, sweet! Lilypond help thread =)

Do you have any tips on making arpeggios in the MIDI output? I can get it out just fine for the sheets, but it doesn't come up in the midi file. The Documentation neither says expressive marks are rendered or not for the output.

alpiso
May 30th, 2011, 11:07 am
Hello!

I'm using the version 2.12.3.
With this version, the standard expressive marks (mf, pp, <, >) are transcribed in the midi file with the "volume" control. Well, it's not perfect, but they exist and you can ear them ^_^

About arpeggio, I did a quick try, and no, they are not "implemented". So you can't have them in the midi file.

In fact, there are some stuffs that are not rendered in the midi file by Lilypond (it doesn't really focus on this output for now). But with new versions it might come (moreover if users ask for them :lol:).

I see 2 ways to obtain the arpeggio in the midifile:

1) With an external midi sequencer, you need to edit your midi file produced by lilypond.
2) With Lilypond itself. It's not really nice, but if you don't own a sequencer, it's a good tip:

You need to have 2 versions of your music expression. The first is the nicest which be engraved.
The second is the one in which you transform manually all your arpeggio chords. Then this version will be alone in a midi{} expression.

I mean you'll get this :


...
\score {
...
{ my original music expression }
...
% no midi {} expression here
}

\score {
{ my alternate music expression for the midi }
\midi {} % Only this expression, no "layout{}" or others.
}
...


The modifications of the chords are like this:


<c e g c'>2 \arpeggio

will become


<<
{ c2 } \\
{ r64 e64~ e32~ e8.~ e4 } \\
{ r32 g32~ g8.~ g4 } \\
{ r32. c'64~ c8.~ c4 }
>>


Of course, you need to do some modifications regarding your chords, and the tempo of the song.

M
May 30th, 2011, 09:26 pm
Slight of writing some scheme code and extending the MIDI .scm file that comes from Lilypond, arpeggios marks are ignored in midi output.

To get it to work is painful if you're not familiar with a LISP-I language.

alphamai1300
May 31st, 2011, 12:25 am
I am using version 2.12.13 as well.
I haven't personally used expressive marks as a significant part, I probably should :hey:

Thank you very much! The coding for the arpeggio definitely is workable towards my efforts. The fruits of this labor hopefully will show up in my next submission. :lol:

For the code itself, what kind of tie is that? I don't think I saw that in the documentation.

Eddit/Add: Looking at a song that may require using the \parallelMusic function. Any tips on that? :)

alpiso
June 22nd, 2011, 10:35 am
Looking at a song that may require using the \parallelMusic function. Any tips on that

I never used this function; I'm doing "parallel music" by my own means (with <<, \\, >>).
The advantages of this function is that it declares all variables automatically and that it need a standard format in writing of the musical expression.
It is very useful if you need to "see" in your editor all the voices together one below the other. It's more readable and easier to edit.

alpiso
June 22nd, 2011, 10:59 am
In this post I would like to discuss about the organisation of the workspace for lilypond projects.


More and more software are developed for the edition of lilypond source files. The most important of them is a plug-in for Jedit. Unfortunately, I never success in using it : I had some troubles at the installation and I never spend time to fix it...

So, for the edition, I use Notepad++ (http://notepad-plus-plus.org/).
It's a very compact useful text/code editor. Take a look at the site to get more info.
As this software allow language personalization, I did my own for lilypond : I defined a colour syntax, keywords, etc. and build a file for the auto-completion function. If you're interested in these file, I can attach them !
Like other code editors, you can collapse/expand code bloc, to quickly access a particular point in your document.


Thanks to this I organize my projects in two ways. I mean, I do a distinction for my projects : small & big. I'll write my source files with some subtleties regardless the size of the project.
Mainly, this is the number of the instruments, the type of the song (eg. only melody?) and the size of the file (and song) that will determine this.

When I only have the melody with (or not) lyrics and/or chords, I usually work with a single file.
When I want to write for multiple instruments, I create as many file as needed by each instrument and another file to manage the files and get the sheet.

However, in each case my way of working remains the same, I separate things:
In one hand all that remain to notes and annotations induced by the instrument (Clef, dynamics, finger notation, etc.) will go into an expression, in the other hand all that remain to Staff notation or is common to all instruments (tempo, bars, repeats, parts description, etc.), will go into an other expression which I call "MT" (that stands for "Master Track", like sequencer software).

Then in the \score part, I merge & combine all these expressions.

So, for a small project, I should obtain a thing like this :


\version "2.12"

MT = {
\tempo 4 = 120
...
}

MyMelody = \relative c' { ... }

MyChords = \chordmode { ... }

MyLyrics = \lyricmode { ... }

\paper { ... }
\header { ... }
\score { % this is here where I recall all the parts
<<
\new ChordNames { \MyChords }
\new Voice = MyVoice { << \MT \MyMelody >> % I merge the parts (the notes & the annotations)
}
\new Lyrics \lyricsto \MyVoice { \MyLyrics }
>>
}

Of course, when the song need it, I can split melody, lyrics and chords expressions into multiple parts : MyMelodyVerse, MyMelodyChrous, etc.
I try to keep compact expressions too. For example, instead writing this :


\score {
...
\new Voice = MyVoice { << \MT { \MyMelodieVerseI \MyMelodieVerseII \MyMelodieChorus \MyMelodieVerseIII \MyMelodieVerseIV \MyMelodieChorus >> }
}
..
}

I rather prefer to introduce a new expression for merging the Melody parts and write something like this:



...

TheMelody = { \MyMelodieVerseI \MyMelodieVerseII \MyMelodieChorus \MyMelodieVerseIII \MyMelodieVerseIV \MyMelodieChorus }

...

\score {
...
\new Voice = MyVoice { << \MT \TheMelody >> }
}
...
}


It's also more readable :)


For a bigger project in which I use several instruments, I organize my files like this:

http://img62.imageshack.us/img62/4687/diagrammeorganisationfi.png
Nota Bene : To illustrate my speech, I use the "Main Theme" song from "Vampire Night Guilty" which is a contribution I made. Don't hesitate to download the sources files to get the whole project (Don't worry it's under the "mus" link ;) ).

I have a file per instrument in which I wrote the notes (and all things which go with them) and lyrics when it occurs. All these files are in a sub-folder named "Instruments". The "main" file which is on the top folder use the \include keywords to link all the files, like this :

http://img5.imageshack.us/img5/8457/diagrammeinclude.png

As the Notepad++ editor can edit multiple documents at once, the navigation into the whole project is very easy and give quick access to each point.

http://img638.imageshack.us/img638/9853/notepadeditionmulitpled.png

As you see here, chords and "Master Track" events are wroten in a independant file. Working like this is very useful : I can reuse these files to obtain multiple versions (understand different combination of instruments) of a song. If I write a piece for a string quartet, I can get the conductor book or the violin part with the same files! I just need a new source file which recall all the needed ones.

For example, with my contribution I can create a violin sheet and an organ sheet from all the sources written with few modifications :

http://img651.imageshack.us/img651/4559/instrumentsmultiple.png

For each files, here is the the modification. First, in the "include" statement, then in the \score block.

For the violin:


% Vampire Knight Guilty - Main theme
% Haketa Takefumi

% Version Violons

\version "2.12"

\include ".\Instruments\Cordes.ly"
\include ".\Instruments\MT.ly"

...

\score {
\new StaffGroup {
<<
\new Staff {

\set Staff.instrumentName = "Violon 1"
\set Staff.shortInstrumentName = "V1"
\set Staff.midiInstrument = # "string ensemble 1"
\new Voice = VoixViolon { << \MT \PisteViolonI >> }
}
\new Staff {
\set Staff.instrumentName = "Violon 2"
\set Staff.shortInstrumentName = "V2"
\set Staff.midiInstrument = # "string ensemble 1"
\new Voice = VoixViolon { << \MT \PisteViolonII >> }
}
>>
}
\layout { \context { \RemoveEmptyStaffContext } }
\midi { }
}


For the organ :


% Vampire Knight Guilty - Main theme
% Haketa Takefumi

% Version Orgue

\version "2.12"

\include ".\Instruments\Orgue.ly"
\include ".\Instruments\Accords.ly"
\include ".\Instruments\MT.ly"

...

\score {
\new StaffGroup {
<<
\new ChordNames { \PisteAccords }
\new Staff {
\set Staff.instrumentName = "Orgue"
\set Staff.shortInstrumentName = \markup \smaller { Org }
\set Staff.midiInstrument = # "acoustic grand"
\new Voice = VoixOrgue { << \MT \PisteOrgue >> }
}
>>
}
\layout { \context { \RemoveEmptyStaffContext } }
\midi { }
}



Voilŕ !

This is how I work with my LilyPond projects. I tried to make it short and accessible, don't hesitate to ask for precisions and to criticize the way I work (I'm still learning ;) ), thanks !