红联Linux门户
Linux帮助

Music Notation Software for Linux: a Progress Report, Part 1

发布时间:2009-04-01 14:24:52来源:红联作者:jerry520
The following article presents a status report on the development offive of the most active notation software projects for Linux. Most ofthem are works in progress, but all are well along on their developmenttrack and in varying states of usability.

The LilyPond Connection

Before launching into my reports, I must add a few words aboutLilyPond and its special relationship to the programs profiled here.
I've written about the awesome LilyPondin previous articles for this column, and I'm happy to report that theproject is still alive and flourishing in its version 2.12 stablebranch. LilyPond's development tasks and maintenance duties are managedby a sizable community of users and programmers, and it is indeed awork in full maturity. Many users have switched to it from otherpopular music notation programs, despite its text-format interface andcommand-line operation. LilyPond's output quality really is thatattractive.
Because of its plain ASCII text interface, many users are on thelookout for an effective GUI for LilyPond. Most of the programsreviewed in this article can be considered as LilyPond front ends, butthey vary in the kind and degree of their support for LilyPond. Theyrange from specialized text-editing environments to notation-basedsequencing, but in all cases, LilyPond is the engine that drives theirnotation capabilities. In some cases, a working knowledge of LilyPondis required, while others entirely hide LilyPond's presence from theuser.

Music Notation Software: General Remarks

Music notation software poses some considerable problems forapplication developers. A full-featured notation program involvescomplex graphics mechanisms, flexible audio and MIDI I/O, and supportfor importing and exporting a variety of file formats. Additionally,developers must decide whether their software falls into the categoryof composer's helpmate or music typesetter. This distinction determinesmany important aspects of the program's basic design, especially at theuser interface level.
Many packages combine these design factors more or less successfully,but the demands of professional quality typesetting require a dedicatedprogram. Music printed from a general-purpose sequencer may be useful,but it is unlikely to compare favorably with the output from adedicated music typesetter such as LilyPond.
The essential requirements for all music notation programs includevarious score layout functions, data entry methods, music symbolpalettes, audio output support modes and options for printing thefinished score. Basic programs may include only a limited subset of thepossible features, while more professional software offers morefeatures for greater control over the details of a work. Of course,with greater control comes greater complexity. The designers of musicnotation programs work hard to balance ease of operation with theproliferation of features.
Consider the needs of the following users: desktop composers maywant only a simple notation palette, but they also might need supportfor MIDI input (file or real-time) and accurate rendition of thatinput. Composers working with advanced music (that is, not programming)languages may not need MIDI at all, but they definitely need featuressuch as an extensive symbol palette, part extraction and perhaps evensupport for score manipulation by routines in Python or anothergeneral-purpose language. The commercial music software world offersprograms that cover this range of needs. Finale and Sibeliusare two of the best-known full-service notation programs in theWindows/Mac world, and many lower-cost and lesser-featured packages areavailable (search Google for "music notation software").
Music notation also shows up in modern audio/MIDI sequencers, butthe implementation is necessarily restricted. A full-featured notationprogram needs to be a standalone application, although I must admitthat the notation tools in sequencers such as Cubase and Rosegardencertainly are adequate for purposes such as lead sheets, chord guidesand relatively short pieces. More ambitious work can be done in thoseprograms, but their notation capability is only one component of amultipurpose design. I must note, however, that Rosegarden's developershave lavished attention upon the notation page in their sequencer, andit is also worth noting that Rosegarden includes an Export To LilyPondfeature.

The Test Bed

I chose a plain-vanilla Ubuntu 8.10 (with kernel 2.6.27-9) systemfor the test platform. My decision was influenced in part by Ubuntu'sup-to-date package repositories, where I found any and all requiredbuild utilities and other dependencies. Real-time audio support is notabsolutely required, though audio output is likely to be enhanced in areal-time environment.

Denemo

Denemo leads a double life as aneditor-with-GUI for composing and editing LilyPond scores and as anotation-based MIDI composition environment. Recent work on Denemo hasgreatly improved the GUI and the program's overall stability, and manynew features have been added to the 0.8.0 public release. Currentdevelopment is intense, and the development crew is open to suggestionsfor new and even unusual features.
Denemo's UI has opted to use a menu system instead of graphicpalette displays that hold the notation symbol collections. At firstglance, this design may seem to work against a fast work flow, but thekey to productivity in Denemo is its extensive use of keyboardaccelerators. Almost every aspect of the program is available from thecomputer keyboard, and once users become familiar with the keyboardassignments, the work flow moves rapidly.
Figure 1. Denemo 0.8.2Data input also is possible via MIDI (real-time or file), anexisting Denemo file or LilyPond score and real-time audio (!).Additionally, Denemo is extensible through the use of the Schemeprogramming language. Users can define and display new menu items forthe program, giving Denemo a unique position among the LilyPond helpersreviewed in this article. Scheme is not a difficult language to learn(it's a Lisp varietal), and learning even a little can lendconsiderable power to your Denemo experience.
Denemo is filled with cool features for composers. You can switchfreely between graphic and text-editing modes, figured bass and guitarchord symbols are supported, and its Scheme interface adds thepotential for algorithmic composition. [Aside to the Denemo devs: this would be a very cool feature!]You can define your preferred playback applications for audio and MIDIoutput, including the rather remarkable ability to use Csound as itsaudio rendering engine. Thus, composers can access the incrediblesonority of Csound through a standard notation interface. TheRosegarden sequencer can be used as a notation front end to produceCsound scores, but it provides no integral connection to Csound itself.As far as I know, only Denemo provides such a connection as an optionfor audio output.
Files can be loaded and saved in Denemo's own XML format orLilyPond's native format. You also can export to PDF. Alas, at the timeof this writing, MusicXML is not supported for either import or export, but LilyPond's musicxml2ly utility can be used to translate a MusicXML file to a LilyPond file.
Past releases of Denemo have suffered from stability issues and adifficult learning curve. I'm happy to report that stability no longerappears to be a problem, and there's now plenty of useful andup-to-date reference material, example files and user-leveldocumentation.

Frescobaldi

Frescobaldi comes to us from the developers of the outstanding lilypond-kde4software. Frescobaldi is not a notation editor per se. Instead, itprovides a specialized environment for editing scores in LilyPond'snative text-based file format. The program supplies amenities such assyntax highlighting, on-line help (for LilyPond and Frescobaldi itself)and score previewing. Its user interface is polished and attractive,and the program is easily mastered.
Figure 2. Frescobaldi 0.7.7The latest Frescobaldi requires an up-to-date KDE4, so it's notlikely to be available in package repositories for older Linux systems(for example, 64 Studio 2.1 or JAD 1.0). It also is absent from myspecified repos for Ubuntu 8.10, but as I mentioned earlier, thatsystem is modern enough to accommodate a sufficient build environment.Any missing dependencies are resolved quickly via Synaptic, and I'vehad no trouble compiling and installing recent versions of the program.
I do have some suggestions for the developers. At present, the basicwork flow requires that I save my edits before I can preview them. I'dlike to see an edit mode with a one-click previewer that skips theexplicit save, if such a mode is feasible. I have another quibble withFrescobaldi's printing capabilities. At the time of this writing,Frescobaldi prints only to a PostScript or PDF file. It would be niceto print to my system printer from the program itself. Finally, givenLilyPond's ability to generate a MIDI file from its native file format,perhaps a playback utility could be added ?
Apart from that wish list, I like Frescobaldi and will follow itsdevelopment closely. If you've been looking for a dedicated LilyPondeditor (and would rather not learn how to use emacs), you should checkout Frescobaldi.

Canorus

Canorus began as a fork of the NoteEditProject described in Part 2 of this article. At that time, it appearedthat NoteEdit's programmer planned to abandon the project, so ReinhardKatzmann formed a new group of developers to carry the project forward.Canorus is the result of their efforts to provide "a free extensiblemusic score editor [that] supports note writing, import/export ofvarious file formats, MIDI input and output, scripting and more", andthe beta release of Canorus 0.7 is their latest production toward thatgoal.
Figure 3. Canorus 0.7betaThe Canorus Web site stresses that the software is beta quality.Although the development release introduces a number of features notfound in earlier releases, it may not run so steadily as the publicstable release 0.5. In short, the beta release should not be consideredfor serious work at this stage. You're welcome to check it out; thedevelopers want reports from users, but if you ride on the edge, beaware of the risks.
Stable and development releases are available through the links onthe Canorus Web site. Official installable packages are available forDebian and Windows, along with platform-neutral source packages in zipor tarball formats.
A full build requires that a few dependencies are met before you cancompile the source code: recent Qt4 and the cmake utility in yourtoolchain. LaTeX and the LyXviewer are required to build the documentation, but the versions Ifound for Ubuntu 8.10 are unusable with Canorus, and I was unable tobuild the docs. Fortunately, the documentation build is optional, sodon't worry if your build also fails with the docs--just continue withthe process steps as listed above. Alas, you won't be able to summonthe user-level documentation from the Help menu, but this lack ismitigated somewhat by the GUI's tooltips and the program's relativeease of operation.
A rantlet: I realize that I'm testing a beta version and that thedocumentation is likely to be compiled and built in to the finishedpublic release, but I think it would be wise for developers to furnishdocumentation in a compiled format even in pre-releases. I'm surprisedthat a system as recent as Ubuntu 8.10 does not supply a workingtoolchain for building the Canorus docs, and I'd be happy to downloadthe user-level documentation from the Canorus Web site. Whatever formatis included for the final package, a simple HTML version on the Website would be a happy addition to the documentation materials.
The installer did not automatically add a launch icon to my Applications menu, so I started the program by entering canorusat an xterm prompt. No command-line help is available with either -h or--help. When Canorus start, you'll see its splash screen for a fewseconds, then the program presents a canvas with a single startermeasure.
Canorus has embraced and extended the feature set originally foundin NoteEdit. Outstanding features include an excellent input system forpolyphonic notation, MIDI connectivity via the ALSA sequencer (that is,multiplexed MIDI I/O), scripting with Python and/or Ruby, a richselection of standard symbols and support for user-defined events.
Canorus operates in either Select and Edit mode. In the latter mode,music symbols are entered onto and deleted from the staves(user-definable, of course) with the mouse and common emacs keybindings(Del to remove a selected symbol, Ctrl-Z for undo, Ctrl-A to select alland so on). Projects can be divided into separate sheets (Canorus-speakfor the notation canvas), or separate sheets can hold differentprojects. Each sheet includes controls for MIDI channels and GeneralMIDI instrument assignments. Context menus have been avoided in favorof pull-down menus, which may frustrate some users, but I find that thedesign leaves the screen relatively clear of clutter.
Regarding file support: you can import MIDI files and files in theMusicXML format. You can save your work to either the Canorus projectarchive format (*.can) or its XML-based document format, or you canchoose to export it as a LilyPond or MusicXML file. You also can alsoexport your work as a MIDI file or a graphics file in PDF or SVGformat. Canorus prints your notation by filtering it through LilyPond.You can designate your LilyPond binary in the the Tools/Settings menuwhere you also can select your preferred PDF viewer (LilyPond's defaultoutput format).
Canorus is much like its excellent predecessor in its clearpresentation and its overall ease of use. As I mentioned previously,the beta release wants testers, so if you're willing to take somerisks, you can help with the development of this excellent program.
文章评论

共有 0 条评论