What is the best free or cheap music editing software available? I am looking for something to write and edit scores with. I know that Finale and Sibelius are the best on the market, but I wouldn't use them enough to justify the price.

I don't need many features, though here are a few that I could really use:

  • Audio play back
  • Ability to write without a time signature
  • Able to draw non-conventional notation (i.e. Schenker graphs)

Here's an example of what I'd like to draw:

example notation

  • I'm not sure if it supports free-form notation, but Finale Notepad used to be free. Not sure when it stopped but I believe 2007 was what I used, I'm sure you could find it with a web search. – user28 Nov 28 '11 at 21:45

Check out Lilypond: http://lilypond.org/ It's free and powerful, and although it won't do audio playback, I believe it can do the rest of what you ask. It's text-based, and if you are at all familiar with TeX or LaTeX, Lilypond will feel similar. It has a somewhat steep learning curve, but there are some GUIs in active development that make things easier, and there's also some software that allows for input via MIDI keyboard.

Edit: Seems Lilypond can output MIDI files, so presumably you could get audio playback that way.

  • 1
    Thanks Alex. After asking this question, I did a google search and came upon lilypond. Seems like it will be the perfect combination of ease of use and control of output. I like the text-based input too. Gets to my nerdy side :) – Reina Abolofia Nov 27 '11 at 20:27
  • 4
    Ease is.....relative. While lilypond does give you a great amount of control over the output, it is fairly time-consuming to make the source file that gets interpreted. – Babu Nov 27 '11 at 21:08
  • 2
    It's a matter of preference. Some people prefer the source code / compiled output model. – slim Nov 28 '11 at 18:16
  • 1
    @Babu, I spent about 2 hours last night trying to draw a simple Schenker graph. I love the complete control over the output, but I agree it is very time consuming. I had to give up and just do it by hand. – Reina Abolofia Nov 28 '11 at 21:22


is getting some attention. It's free, cross-platform, and imports and exports MusicXML. I have not tried it.


With Lilypond, the example of the OP could be drawn like follows:

\score {
  \relative c {
    \time 2/4
    \clef bass
    \key f \major
    << { \override NoteColumn.ignore-collision = ##t \stemDown
         \phrasingSlurDown \phrasingSlurDashed 
         \once \override NoteHead.duration-log = #1
         \once \override Beam.positions = #'(-6.47 . -6.47)
         \once \override PhrasingSlur.control-points = #'((1 . -.5) (3 . -5) (22 . -5) (24 . -3))
         f8*4[\( ~ \hide Stem f8*4] ~ f4*2( 
         \newSpacingSection g4 a)( 
         \phrasingSlurSolid \undo \hide Stem f,\)\()(
         \once \hide Stem c') d\)\(( \once \hide Stem a') 
         \once \override Stem.length = #9.27 
         \newSpacingSection \time 4/4
         bes8*8/3\)\( \once \hide Stem e,4*4/3( f) 
         \newSpacingSection \time 8/2
         \once \hide Stem d4*2
         \once \override Beam.positions = #'(-5.97 . -5.97)
         \once \override Beam.transparent = ##f
         \once \hide Stem e8*4[\) 
         \once \override NoteHead.duration-log = #1 
         f8*16] } \\ 
       { \hide NoteHead \hide Stem \slurUp s2*6 
         \once \override Slur.control-points = #'((1 . 3.5) (3 . 5) (11 . 4) (13.5 . 1))
         bes2( bes,4*4) 
         \undo \hide Stem e4*2 } \\ 
       { \hide NoteHead \hide Stem s2*6 
         \once \override Slur.control-points = #'((1 . -7) (10 . -10) (17 . 7.5) (20 . -.5))
         bes'2( s4 e,4) } >> \bar "|."

  \layout {
    \omit Score.TimeSignature

enter image description here

  • This is impressive. Maybe add a brief introduction paragraph about lilypond to make the answer perfect. – Alice Oualouest Apr 2 '20 at 18:29

rosegarden is another option. It's mostly meant to be used as a MIDI sequencer/DAW, but has a score facility which I believe will let you edit scores directly. It's only available for linux.

  • 1
    Rosegarden uses lilypond as a backend for generating scores, which is nice. I'm unsure as to whether or not it supports everything that lilypond supports in terms of that......uh.....whatever you're doing in that picture is called! :P – Babu Nov 28 '11 at 5:30

I agree with everyone else that is suggesting Lilypond. Here is a Linux Journal article on creating Schenker Graphs with Lilypond.


As little addon to the Lillypond suggestion:

Check out this snippet from the Lilypond Snippet Repository

enter image description here

I also found the channel #lilypond on Freenode being quite a good resource when getting stuck with something.


Denemo is an open source tool for writing scores. It appears to be quite powerful (and has a lilypond interface as well as playback), but the documentation is weak. I couldn't even figure out how to do score writing with bass-line and melody in the same staff, although I know it's possible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.