A few people have asked me about my workflow for composing so I thought I would collect some of my technical notes and share them. Having spent 2 years taking classes with Berklee Music Online, I was able to get a workflow fairly streamlined for my purposes. I am breaking this up into multiple articles else it would be way too long....
This is part 2 -- Developing an Idea.
Ok, I've gotten an idea for a piece of music... what do I do to bring it to life? A lot depends on what kind of music I am writing -- if I am doing an electronic ambient piece or a crunching metal tune, I typically start with the sequencer (Rosegarden) and start working out the rhythm section parts and will work out notation (if needed) after the fact. A film score, however, while usually a symphonic piece and ultimately following the ideas outlined below, requires some additional pre-production work which is a separate topic altogether.
If I am working on a symphonic piece, however, I will typically start with the notation first. For this, I use an application called Lilypond. It's renowned for producing fantastic looking scores, but unlike other applications like Sibelius or Finale, Lilypond is not a graphical application. Instead, you produce a source file using a text editor and then generate the score from that. This lets you focus on the content of your music without getting bogged down in the layout (much the way that HTML works). I actually kind of compromise here and use a graphical front end for Lilypond called Frescobaldi. Frescobaldi is kind of a hybrid way of producing the source code as well as having the generated score in front of you. It's not fully interactive like Sibelius, but more along the lines of an integrated development environment (IDE) used by programmers for software projects.
Since Lilypond is text based, it allows you to "include" files in other files, just like with programming languages. This is a very nice way to organize your music, so you can have your individual instrument's notation in separate files, and then create a master document that pulls the data in from the other files. There are many things you can do with Lilypond, which I won't go into here, but it is a very flexible scoring system once you learn how to use it. Lilypond is available for all platforms -- Linux, Windows and OS X. Frescobaldi is only available for Linux but a new version is due out in December 2011 that will run on all platforms. There are other frontends for Lilypond, too, see the Lilypond website for more details.
For larger orchestral scores, I will usually start with a "sketch", which is a simplified score with staves for woodwinds, brass and percussion, split into treble and bass parts, as shown in this snippet:
Here I can work out ideas and harmonic arrangements quickly, indicate ideas for percussion, make notes to myself, and so on, and develop the overall structure of a piece, without getting too wrapped up in the orchestration, although some basic orchestration will be done here. From this basic sketch, I can move on to creating a fully developed orchestration of the music. I won't get into orchestration techniques here, as it is a pretty deep and complex musical topic -- maybe a topic for a separate thread of posts!
Lilypond will also generate a MIDI version of the score, which you can play back with a sequencer (Frescobaldi has an embedded MIDI player, you can see it in the lower left corner in the screenshot above). This MIDI playback is used only as a reference, so I can hear how the harmonies work and if the melody is what I want it to be. Lilypond is not good for producing performance data, nor is it intended to be. One drawback with Lilypond -- a fairly major one, in my opinion, which I hope is addressed at some point in the future -- is that it can only use a single MIDI output device (16 channels total), so the way I work around this is to create each section of the orchestra as multiple voices of a single channel, so all of the brass instruments will use the "brass section" General MIDI (GM) patch, all of the strings will use the "string section" GM patch, and so on.
One the MIDI is generated, I can pull it into the sequencer for getting a good performance, which is the subject for the next post.