Does enjoyment of music detract from our geekiness? I think not thanks to Frescobaldi. It is a script-ish file format that allows you to create music on a staff. Here is the web site: http://frescobaldi.org/index.html
It is really easy to use but it took me just a bit to set up. So I am going to show you my little pattern that will get you going quickly on melody and bar charts which is pretty common for communicating music with many musicians (of which I am not one – but have some music theory and knowledge).
You can create variables and change octaves and write some pretty sophisticated chords like F, 2:m11 (an F minor with an 11th half note an octave below middle C) and easily add dotted notes and rests and match it all to lyrics. It has MIDI integration so you can play it to hear your work of art.
Notes are relative to the last one so going from E to A, it will move up 4 steps instead of down 5 steps. To move down, you would type “E A,”. The comma moves it down an octave from where it would go normally. An apostrophe moves it up. an “r” indicates a rest.
About timing, a 1 like in F1 means a whole note, in this case, an F-chord for a whole note. A4 means a quarter note.
For lyrics to a single word across notes, add a hyphen and a space in the word.
Look at the help. It will guide you.
I have it set up that when I make a change, it compiles. There are two outputs in this case, a PDF of the staff and a MIDI file with the song. Songs compile reasonably quickly. You can play the MIDI file in the tool or of course start it up with any player.
Here is an example of Mary had a little lamb. I threw an F/G in the second phrase for fun.
Here is what the UI looks like.
And the awesome source for the song.
\version "2.18.2" \header { title = "Mary Had a Little Lamb" } verseChordOne = \relative c' { \chordmode { c,1 c,1 g,,1 c,1 } } verseChordTwo = \relative c' { \chordmode { c,1 c,1 f,,2/g g,,2 c,1 } } VerseOne = { \absolute e'4 d,4 c4 d4 e4 e4 e2 d4 d4 d2 e4 g4 g2 } VerseTwo = { \absolute e'4 d4 c4 d4 e4 e4 e4 e4 d4 d4 e4 d4 c1 } \score { << \new ChordNames { \verseChordOne \verseChordTwo } \new Staff { \new Voice \relative c'' { \time 4/4 \VerseOne \break \VerseTwo \break } \addlyrics { Mar- y had a lit- tle lamb, lit- tle lamb, lit- tle lamb. Mar- y had a lit- tle lamb, its fleece was white as snow. } } >> \layout { } \midi { \context { \Staff \remove "Staff_performer" } \context { \Voice \consists "Staff_performer" } \tempo 2 = 54 } }
I don’t deviate too much from this script as this gets me what I need and I can create staff music very quickly.