Related links


Visitors since 18st Feb 2009:
free counters
Free Visitor Maps at VisitorMap.org

LilyEditor

LilyEditor is an application which lets you edit lilypond files in a friendlier manner without losing its power.

Edit in measures : The Lilypond language is a very powerful language, but it is build in such a manner, that as soon as a music score gets "medium sized" the code distribution forces you to spend most of the time jumping and searching for the right spot in the code. Lilyeditor addresses this problem by keeping all measures together at one sight. The main view has as many code editors as voices and you see the information related only to ONE measure.

Comfortable navigation: You can move back or forward one measure by hitting PageUp and PageDown, LilyEditor will save the current measure and load the next for you.

Fast Lilypond output : When you want to see your changes in Lilypond you just hit F5 and LilyEditor will "compile" a configurable region of measures shown having the current measure at its center. The preview PDF will show right afterwards, since having compiled just a couple of measures allows you to get a preview really fast.

Clickable error messages: If lilypond threw any error messages at the output, you can just click on them and get directly to the offending source.

Clickable results : You can click on to the elements in the pdf to jump back to the right spot in the source, in case anything has to be changed.

Colored voices: Furthermore the preview will color each voice in a special color, which matches the background color of each source editor, so you can have a fast overview, which voice is contributing to which notes.

Measure duration check: For each measure on each voice the actual duration is calculated and compared to the current time signature. Ummatching values are shown in red.

Integrated preview: LilyEditor has even an integrated preview window, which will show you - as you type in - which notes / rests / clef, Lilypond would output. This happens as you write, so you can recognize errors very fast. This preview is clickable too, so you can go to the spot in the source originating any element by clicking on it.

MusicXML import: which imports SharpEye (Music-score scanner) files.

Of course you have many other modern editor standards:

Syntax highlighting: Lilypond keywords can be easily recognized.

Undo. If you made a mistake. You can hit Ctrl-Z to undo the changes.

Lookup tables: The editor assists you in writing code.

Code Snippets: Is there some code you are typing over and over? You can save up to ten snippets which will be pasted by pressing Alt-0,1,2,3,...

Customizable: Templates used to build up lilypond files reside in a subdirectory, you can add, modify or delete as many as you want, if you want to use any special code, lilypond macros or include customized files.

 

Screenshot

LilyEditor_SS1

 

LilyEditor_SS2

Some trade-offs

As said before, the lilypond language is very powerful, so using Lilyeditor comes at some cost, since trying to support all lilypond features would make the LilyEditor parser too complex. The trade offs are :

 

Format

The format used by LilyEditor is a subset of the format which Lilypond supports. This means : you can't edit existing lilypond files with the LilyEditor without adapting them to make them compatible. Basically the format supported by LilyEditor matches the recommended format in the Lilypond documentation :

First comes a header
 
#(ly:set-option 'point-and-click #t)
\version "2.11.66"

Then the voice definitions
\voiceOne = { ... }
\voiceTwo = { ... }
...

And then the score which references the voices
\score {
<<
\context PianoStaff
<<
<<
\context Staff="1"
<<
\context Voice = "voiceOne" \voiceOne
>>
\context Staff="2"
<<
\context Voice = "voiceTwo" \voiceTwo
>>
>>
>>
>>
\midi { }
\layout { }
}

 

The blue code are comments, red code are the parts handled by the LilyEditor, the black part can be customized in the templates directory.

 

Voices and Staves must be defined by means of the \context keyword and must follow exactly the pattern shown in the example. This structure is necessary in order for LilyEditor to know how many staves and voices the score has. This allows the parser to recognize easily in which staff each voice starts.

 

No relative notes

As LilyEditor prepares a preview for each measure independently from the other ones, it does not support notes whose pitch is relative to previously notes. Though this limitation could be overcome using the same approach as for clefs and staves information, where LilyEditor keeps a record of what happened in previous measures, this isn't done yet.

No nested tuplets

Following construction is not allowed:

times 3/2 
{

times 2/3 {c8 d8}
}

 

This problem could be also fixed, but until now I found no music score needing this feature, so I didn't bother with it.

Preview in Leszer notation

Though I don't find this as a limitation, I guess most people will, hence I mention it here too: the preview is in Leszer Notation. If you don't know what it is you can click on the menu at the left side of the page and learn about it. It is basically a simplified version of the standard notation which avoids accidentals and key signatures.

 

Tutorials

Check back often for new Lilypond+LilyEditor tutorials.

Lilypond crash course
Tutorial 0 : Setting the environment up
Tutorial 1: Creating your first music score
NEW! Tutorial 2: Staves and voices
Coming soon Tutorial 3: Voices across different staves
Coming soon Tutorial 4: Some hacks

 

Forum: Ask your questions about lilyEditor & Lilypond here.

Download

You can download it at the download page.

 

 

 

Add your comment

Your name:
Subject:
Comment: