Music to Feed Your Soul...
Would you be so kind as to turn up the volume un petit peu, François? Ah, merci. Monsieur Debussy was in fine form when he wrote that, eh, mon ami? Wonderful. C'est de la tres belle musique, François? Ah, it is like that Englishman, Shakespeare, who despite being English, certainly got it right when he said, “If music be the food of love, play on.” Of course, food requires the right wine and with Pelléas et Mélisande playing in the background, I sense a Medoc may well be in order, say a Cos-d'Estournel.
Aller, François. Please bring some up from the cellar.
Ah, mes amis. Come in. Please, sit down. François has prepared your usual tables. He will be along shortly to take your orders when he returns with the wine. We were listening to a little opera when I realized that a nice bottle of wine would wonderfully enhance such delightful music.
Music, like food and cooking, is not a destination but a lifelong journey. With Linux and a few recipes from open-source kitchens around the world, everyone can now explore the world of music from the sheer enjoyment of it to learning and performing. Mais oui, can you not see it? Today, a simple programmer. Tomorrow, a star upon the world's musical stage. They say that you must first walk before the running, non? So it is with music. The lessons come first, a little practice, practice, practice and suddenly you are at Carnegie Hall, non?
To get you started on this road, we must start with the basics, with some note recognition and ear-training exercises. For this part of our training, we will use GNU Solfege.
GNU Solfege comes from the Linux kitchen of Tom Cato Amundsen. This is a wonderful little program designed to help with “ear training.” Essentially, ear training is a set of exercises designed to help young musicians learn and identify musical intervals, pitch, rhythm and so on. Another part of ear training is sight-singing (or sight-reading). A student is provided with a small tune (or chord) written out on a musical staff that they must then sing. Learning to sight-read a tune can be done alone, but certain things require an instructor or partner who can play intervals and chords for you. This is where Solfege comes into play. By definition, the meaning of the word “Solfége” is a set of vocal exercises sung to vowel (a, o, u) or to the classic syllables, do, re, mi and so on. Solfége requires that a student learn to identify (and sing) correct notes and intervals.
If you follow the SourceForge download link from the Solfege page, you can get RPM and DEB packages, making installation a breeze. But of course, the latest source tar ball is available in gzipped format. Some prerequisites are required for Solfege to install and work properly. These include Python 1.5.2, the GNOME libraries (at greater than or equal to release 1.0.50) and a little something called PyGNOME (at greater than or equal to release 1.0.50). Odds are pretty good that you already have Python installed on your system. The same may be true for the GNOME libraries (especially if you run GNOME as your desktop). The PyGNOME package (aka gnome-python) is often included with later Linux distros, but that is not a guarantee. On my system, I needed to install it from its source tar ball (available from the Solfege web site):
tar -xzvf gnome-python-1.0.53.tar.gz<\n> cd gnome-python-1.0.53 make make install
Once you have this in place, you are ready to install Solfege. As I mentioned, the easiest thing to do is pull down either the RPM or Debian DEB package from SourceForge. If you need (or want) to do the build yourself, that also is quite simple:
tar -xzvf solfege-0.7-24.tar.gz<\n> cd solfege-0.7.24 make make installTo run the program, simply type solfege at the command prompt (see Figure 1 for Solfege in action).
Now, mes amis, there is a small possibility that you may encounter some problems here. By default, Solfege tries to talk to your /dev/music device. On my system, the default MIDI device was /dev/sequencer, which required that François open a 1987 Musigny while I reread the INSTALL document. Not to worry though, the default device can be changed by clicking on File followed by Preferences in the Solfege interface. The next menu has a tab labeled Sound Setup where you can specify your sound device or an external player such as Timidity.
Ear training is a lifelong process for musicians; even seasoned professionals may find “Solfege” useful.
Those of you who are already musicians, or who aspire to be so, know the importance of rhythm and keeping time. A good metronome is one of the musician's essential tools. Alex Roberts knows this and to that end, has created gtick, a small GTK program that ticks off its beats in 1 (or none), 2/4, 3/4 and 4/4 time. You can set your timing from 30 to 250 beats per minute.
You'll have no trouble building and using gtick. Just extract the source (tar -xzvf gtick-0.1.3.tar.gz), cd to the distribution directory and type make. The resulting binary, called gtick, can then be copied to a place where you keep executables. For instance, I copied mine into /usr/local/bin with:
cp gtick /usr/local/bin
Another candidate for a nice metronome is David Lee Ludwig's gMetronome, another GTK program. This one uses a visual, moving-beat display; eight lights bounce the beat back and forth from one side to the other. The beat itself is adjustable from 0 to 250 beats per minute. At this time, this is strictly a visual metronome rather than an audible one. Perhaps notre ami David would like to talk to Alex, non?
Like gtick, gMetronome is a breeze to compile and run. After extracting the source (tar -xzvf gMetronome-0.1.0.tar.gz), change directory to the newly created directory, then type make followed by make install. Type gmetronome and you are off.
In time, inspiration will demand that you capture the tunes you fashion in your mind so that others may share in your musical vision. With your Linux system and some great open-source tools, you can begin to set that vision in a crisp, professional format, either as distributed MIDI files, or paper scores. For your convenience, I have already visited many of the Linux notation kitchens, and I am happy to report that we can surely find something to tempt your palate.
Forgive me, mes amis, but I must admit at this time that while he can sing a respectable chanson, your humble Chef is light years away from being a musician. Consequently, a simple point-and-click music notation system was the first thing I looked for. This brought me to NoteEdit written by Jörg Anders. NoteEdit is a nice-looking application with notes and rests conveniently placed on a toolbar. With NoteEdit, you can select different clefs, time and key signatures; choose between a variety of note values with a mouse click; transpose; and more. When you are convinced of your masterpiece, you can even export the final product to a MIDI file or format it for printing using MusixTex. For a snapshot of NoteEdit in action, have a look at Figure 4.
NoteEdit is a QT application based on the 2.x development libraries from TrollTech. If you are running the new KDE version 2 desktop, you will already have these on your system. To build NoteEdit, download the latest source and follow these steps:
tar -xzvf noteedit-1.9.2.tgz<\n> cd noteedit-1.9.2 ./configure -without-libs make
Notice that I ran the configure script -without-libs. NoteEdit lets you build three different varieties of the program. The most powerful build of NoteEdit makes use of the TSE3 libraries. Using the libraries gives you the added capabilities of importing from a MIDI file or attached MIDI keyboard. For tonight's menu, I will concentrate on the basic recipe only. Adventurous diners should visit the NoteEdit web site for further details.
With our software built, we must first set an environment variable before we can start the program:
export NOTE_EDIT_HOME=/path_to/noteedit_dir<\n> noteedit
That is all. Get creative. Have fun. Pour yourself a glass of wine and let yourself go. Use the “play” button from time to time to see how you are coming along. You can also save your current masterpiece whenever you want and get back to it at a later time. Before I talk to you about printing your work, let me introduce you to one more music notation package.
Rosegarden, written by Chris Cannam, Andy Green, Richard Bown and others, is certainly worth taking a look at, though somewhat more complex than NoteEdit. As a notation editor, the package offers multiple staffs, chords, beaming, triplets, slurs and a notes palette so that you can point and click your way to fame and fortune. This is also a MIDI sequencer with piano roll display. Like NoteEdit, you can also export your creation to MusixTex format for later printing.
Rosegarden can be compiled and built on Linux and a large number of other UNIX systems. You can make the installation quite easy by visiting the site and choosing one of the precompiled binaries; these are available for many platforms including Linux ELF. In order to try out Rosegarden, I downloaded the program source and built it from scratch. Once again, a straightforward build:
tar -xzvf rosegarden-2.1-sources.tar.gz<\n> cd rosegarden-2.1 ./configure make make install
After you have built and installed the program, you start Rosegarden by typing rosegarden. I used Rosegarden to import the same magnum opus that I was working on with NoteEdit (I know it is terrible, but I did mention that your humble chef does not usually write music). If you are feeling quite brave, you can see my work in progress in Figure 5.
Now, about printing.
Both NoteEdit and Rosegarden output their music in MusixTex format. MusixTex is essentially a set of extensions (fonts, programs, etc.) to the Linux TeX package, making it possible to print out high quality music scores. Sadly, there is no simple “Press here to print” button on any of these packages so you will have to dip into the MusixTex waters if you want to publish your music. It's not all that bad, but exploring this fully would require an article on its own. The NoteEdit web site has a nice, quick primer on working with MusixTex, and I would suggest you start there. The payoff for your hard work will be superb, high-quality printed music.
Alas, music notation for Linux is a field that is still maturing with developers heading off in many different directions. We have visual notation systems (like NoteEdit and Rosegarden) as well as text-only language software that converts your typed input to postscript pages. Some are simple, others much more complex. The beginner and the professional alike will surely find something to satisfy their needs. As François starts to clean up your plates, allow me to suggest a visit to Dave Phillips' web site where Dave is the keeper and maintainer of the “Sound and Midi Software for Linux” page. This is a great place to start looking as your musical needs grow.
Mon Dieu! It is already late, non? I fear mes amis, that we must send you all home and close Chez Marcel until next time. Since you are all within walking distance of your homes, my faithful waiter François, will top up your glasses once again. François, pour yourself a glass as well. Let us all sit quietly as we finish up and just listen to Monsieur Debussy.
Until next time, your table will be waiting here at Chez Marcel.
À votre santé! Bon appétit!
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- The Ubuntu Conspiracy
- A First Look at IBM's New Linux Servers
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Libreboot on an X60, Part I: the Setup
- Vagrant Simplified
- System Status as SMS Text Messages
- Bluetooth Hacks
- Dealing with Boundary Issues
- Non-Linux FOSS: Code Your Way To Victory!