001

This Manual is released under the Creative Commons Liciense, this manual may be quoted, and freely distributed as long as credit is given in written form to denemo.sourceforge.net. If it is placed on a web page a link to the denemo site should also appear.


Table of Contents

Introduction
Obtaining and Installing Denemo
Dependencies
Optional Includes
Installing Denemo from Source Code
Getting Started
File
Basic Use
Edit
View
Mode
Staff
Attributes
Bookmarks
Other
Go
Playback
Help
Toolbar
Notation Entry Overview
Editing
Expression Marks
Adding Expressions
Repeats
Score Playback
Publishing
Advanced Features
Adding Custom Key Bindings
Working With LilyPond Files
Denemo Commandline Options
Music Analysis with Denemo

Introduction

Denemo is a graphical front end to the LilyPond music notation system. Denemo exports its internal XML format to LilyPond and ABC music notation formats for publication. You can hear your score played back using either MIDI or Csound. This manual will explain in detail how to create beautiful music notation with Denemo.

Obtaining and Installing Denemo

Denemo is available from a variety of sources for different distributions. The latest stable release (tar.gz and RPM formats) is available for download from http://prdownloads.sourceforge.net/denemo. You can install Denemo from the Debian unstable repositories, using the command apt-get install denemo. Builds for Macintosh are available from the Gnu-Darwin project. The Denemo development branch can be downloaded using anonymous CVS.

Dependencies

To build Denemo from CVS or a source package, the following dependent packages should be installed first. Remember to install the development packages as well (check your distribution for the specific package name):

  • g++ 2.95 or higher

  • flex 2.5.4a or higher

  • bison 1.35 or higher

  • gtk+ 2

  • libxml2

  • LilyPond 2.4

  • autoconf 2.59 or higher

Optional Includes

Denemo relies on other applications for functions such as MIDI or audio playback and final score preparation. To get the most out of score editing with Denemo, install the following applications:

  • C Sound

  • An audio player such as play, or aplay

  • A midi player such as Timidity

  • A good text editor with plugins for LilyPond editing: Vim, Emacs or Jedit

Installing Denemo from Source Code

Denemo is available in a variety of formats. The current stable release is available either as source code or in binary format. The Development branch of Denemo is available as a CVS source tree.

Procedure 1. To install from source code:

  1. Open a terminal window.

  2. Change directories to the directory to which you downloaded the Denemo source package.

  3. Uncompress the source package using standard Linux tools (tar and gunzip).

  4. Change directories to the uncompressed directory.

Procedure 2. Generating a Configure Script

CVS does not come with a Configure script, generate one by typing and pressing Enter after each line:

  1. aclocal

  2. libtoolize --force

  3. ./autogen.sh

Configuring Denemo

Procedure 3.  To compile from source, press Enter after each line:

  1. ./configure.

  2. make.

  3. make install.

  4. If you are not logged in as root user, type su and your root password, or alternately type sudo and your user password.(sudo must be configured for this to work)

Getting Started

The Denemo Interface

Figure 1. Main Window

Main Window

The menu bar is where many features of Denemo can be accessed. For a complete list of editing functions see Keyboard Shortcuts. The menu bar contains the following menus:

  • File

  • Edit

  • View

  • History

  • Mode

  • Staff

  • Attributes

  • Bookmarks

  • Other

  • Go

  • Playback

  • Help

File

Use the File menu to perform global operations. The File menu contains the following submenus:

SubmenuDescription
NewCreate a new notation project from scratch.
New From TemplateCreate a new notation project based on a template.
New WindowOpen another instance of Denemo.
OpenOpen an existing Denemo file.
Open RecentOpen a file recently edited.
Open in New WindowOpen an existing Denemo file in a new instance of Denemo.
SaveSave the current file.
Save AsSave the current file with a new name.
Save SelectionSave the current selection to a new file.
Export PDFRun LilyPond on the current file to create a PDF.
PrintRun LilyPond on the current file to create a PDF, then print that PDF.
Score ConfigurationOpen the Score Setup Wizard.
CloseClose the current file but keep Denemo open.
QuitClose the current file and exit Denemo.

Basic Use

Introduction

The primary way to interact with Denemo is with the keyboard. Denemo is extremely keyboard-centric, this permits the user to achieve touch type control of musical editing. It is easy to assign key bindings to functions that don't already have a default one.

In graphical music editing there are at least two dimensions - up and down (the staff lines), right and left (forwards and backwards). With graphic note entry the adding of note values and pitches with the mouse is slow going. Using the number pad forces your hand to leave the touch typing "Home" keys.

LilyPond notation removes the up and down aspects because it is plain text (ASCII), which is linear by nature (typing letters). Denemo, a graphic editor responds to the same ASCII (text) commands, permitting you to enter notation linearly and display it graphicly. You won't need to reach for your mouse, except on rare occasions.

Denemo uses key maps to permit a flexible method of inputting notation. The default key map adopts a unique note entry system using LilyPond notes and VIM shortcuts. These keyboard shortcuts permit rapid note entry for those already familiar with LilyPond note entry. The speedy entry key map uses a more natural system of finger placement to greatly speed up notation entry. An Emacs style key map is planned for a later date for those more comfortable with Emacs. If you prefer a different keyboard shortcut scheme, Denemo permits you to easily create your own key map. (see ???). (Input via MIDI keyboard is planned for later versions of Denemo.) Denemo also provides language specific keymaps for a few langauages.

Score Setup

[Note]Note

This section is based on the speedy key map. To load the speedy key map go to the edit menu, open the key map dialog box and click the add custom key map. Navigate to ~/.Denemo/keymaps/ and select speedy.keymaprc. Save this key map as your default key map and continue.

Denemo provides different ways to set up scores:

  1. Use a Template

  2. Use shortcut keys to add staves and set attributes

  3. Use the Setup Wizard

  4. Use Menus

Using Templates to Setup Scores

Using Shortcuts to Setup Scores

Using the Setup Wizard to Setup Scores

Using menus to setup scores

Procedure 4. Creating a New Score

  1. From the Score menu Choose Headers.

  2. In the Headers dialog box fill in the Composer, Title and Subtitles and other fields as needed then click Ok

  3. Next setup your Clef, Key signature, and Time Signature as described next

  1. Click on the Attributes Menu

  2. Navigate to the Clef submenu.

  3. Click on either the Add Clef or Change Clef menu items. The Set Clef or Change Clef dialog box appears.

  4. Once the Add Clef dialog box appears choose the Clef you want from the drop down list and click OK

Figure 2. Set Clef Dialog Box

Set Clef Dialog Box

To select a Key Signature do the following:

  1. Click on the Attributes Menu

  2. Navigate to the Key Signature submenu.

  3. Click on the Add Key Signature or Change Key Signature menu items. The Add Key Signature or Change Key signature dialog box appears.

  4. Choose the key signature you want from the drop down list

  5. Select either Major or Minor key. Click OK

Figure 3. Key Signature drop down List

Key Signature drop down List

Figure 4. Key Signature Dialog box

Key Signature Dialog box

To select a Time Signature do the following:

  1. Navigate to the Preferences Menu.

  2. Click on Add Time Signature or Change Time Signature. The Add Time Signature or Change Time Signature dialog box appears.

  3. Figure 5. Time Signature Dialog

    Time Signature Dialog

  4. Type the time signature into the fractional text boxes.

  5. If you want the Time signature to change for all parts in your score, check apply to all staffs.

  6. Click OK

    [Note]Note

    Be careful to uncheck the apply to all staffs check box if you only want the time change, clef change or key change to apply to the current staff.

Figure 6. 

Note Entry

Note entry is accomplished either using the keyboard or mouse. Mouse entry is provided for those who just can't break out of mouse mode to use the touch typing power of the keyboard. Midi note entry is planned for a future stage. If midi input is a must try Rumor or Emacs midi inputin conjunction with Emacs and Lilypond.

Adding pitches

Denemo comes with a Quickreferece Card as a separate file, for our purposes part of it is included below.

Table 1. Denemo Basic Movements and Note entry

Key ComboMovementCommandAction
aMove cursor to nearest ayEnter a whole note at cursor
bMove cursor to nearest buEnter a half note at cursor
cMove cursor to nearest cspaceenter a quarter note at cursor
dMove cursor to nearest diEnter an eighth note at cursor
eMove cursor to nearest eoenter a sixteenth note at cursor
fMove cursor to nearest fpEnter a thirty-second note at cursor
gMove cursor to nearest gCtrl 7Enter a sixty-fourth note at cursor
  .Insert dot
hMove left Raise note a half step
lMove right-Lower note a half step
kMove up=Toggle tie
jMove downrToggle rest mode
'Move up an octaveCtrl tSet initial time signature
,Move down an octaveCtrl shift tChange time signature
cntrl jJump to next staffalt kSet initial key signature
cntrl kJump to previous staffshift kChange key signature

[Tip]Tip

Speedy entry uses the note names, apostrophe and comma to navigate to the staff. (left hand) Rhythmic values are entered using the keys above the right hands 'home' keys. ( right hand). Once learned this touch typing method is both quick and easy.

Figure 7. First Steps

First Steps
In the Drivers Seat

Now that we know the basic movement and note entry keys, a short tutorial is in order .

Lets look at Figure 7, “First Steps”. We see a c major scale and an arpeggio spread over two octaves. Type the letter 'c', the cursor jumps to the nearest c, (if it is in the wrong octave, type a comma [to go down] , or an apostrophe [to go up]) . We have reached middle c, we could start moving the cursor up note by note using the k key and then down note by note using the k key. A faster method however is to type the letter name of each note and moves the cursor to the exact pitch. This holds true for the notes of a chord or arpeggio, we jump to the note by typing the note name and adjust the octave with the command and apostrophe. This works if within an octave.

[Note]Note

Often you will want to enter notes that jump a large interval. To speed up note entry in such circumstances help Denemo determine the direction by moving one step in that direction using the j or k keys. If you have entered a note on middle c and want to enter a b one octave higher, hit the k key before entering the note. Another solution to big leaps would be to first type an apostrophe or comma to get into the intended octave and only then type the note name.

Rhythm Entry

Now that we have an idea how to move around the staff we are ready to add note values. Note values are entered using the right hand. Table 1, “Denemo Basic Movements and Note entry” shows the rhythm entry keys as YUIOP . This yields the following: Y= a whole note, U equals a half note, I equals an eighth note,O equals a sixteenth note, P equals a 32nd note and the space bar equals a quarter note. The following acrostic makes it easy to memorize the basic rhythm entry keys. You Use It On Purpose,(space for quarter note)

Entering Rests

Denemo provides two methods of adding rests:

  1. Using Rest Mode

  2. Entering Rests while in insert mode.

One way uses the Alt key to with the YUIOP note values to create a few rests quickly. Rest mode is for entering large quantities of rests quickly using the speedy keyboard shortcut r.

Figure 8. Rests

Rests

Example 1. Inserting Rests

Figure 8, “Rests” contains a whole rest, a half rest, a quarter rest, an eighth rest and a sixteenth rest. To enter single rests follow do the following:

  1. Move the cursor to the measure you want to add the rest.

  2. Type alt y, a whole rest appears

  3. Type Alt u, a half rest appears

  4. Type Alt space, a quarter rest appears

  5. Type Alt i, an eighth rest appears

  6. Type Alt o, a sixteenths rest appears

  7. Type Alt p, a thirty second rest appears

To enter the same rests using rest mode do the following:

  1. Move the cursor to the measure you want to add the rest.

  2. Type r to enter rest mode

  3. Type y, a whole rest appears

  4. Type u, a half rest appears

  5. Type space, a quarter rest appears

  6. Type i, an eighth rest appears

  7. Type o, a sixteenths rest appears

  8. Type p, a thirty second rest appears

Accidentals

Accidentals

Figure 9. Accidentals

Accidentals

Accidentals are added using the plus and minus keys on the keyboard. Double sharps and flats are added with additional pluses and minuses as needed in any particular key signature.

Figure 9, “Accidentals” shows a chromatic scale starting on middle C and ending on middle C. To add accidentals while typing new notes do the following:

  1. Enter a middle C eighth note (type c and then i, if you need to adjust the octave use the command and apostrophe)

  2. Enter another middle C eighth note, this time type the plus sign (+) immediately afterwards, a C sharp appears

  3. Enter a D eighth note (type d and then i)

  4. Enter a D sharp eighth note (type d and then i and then +)

  5. Continue adding notes until you have an exact copy of the first two measures of Figure 9, “Accidentals”.

  6. To add flats enter the b eighth note in measure 3 then type a dash (-) a b flat appears.

  7. Continue adding flats until you have and exact copy of measures three and four.

To add accidentals to existing notation do the following:

  1. Navigate to the note you want to alter using the h,j,k,l motion keys.

    [Note]Note

    You don't have to be on the exact pitch to add an accidental but make sure to be on the note you want to alter.

  2. Type a + to alter the pitch up a half step and a - to alter the pitch down a half step.

    [Note]Note

    This will produce alterations based on the pitch of the original note. So that a f sharp will become a f double sharp and an e flat will become an e.

[Note]Note

For those familiar with LilyPond, Denemo handles accidentals in a more intuitive fashion. LilyPond requires you to explicitly name each note with an accidental even if it is part of the key signature, Denemo only requires an alteration if the accidental is part of the key signature, and it keeps the alteration for the entire measure.

Chord Entry

To enter a chord choose a pitch and a rhythm for your base note. Next move the cursor to the next chord tone using the letter name for each note or the j and k keys, hit enter to add the note. To make chord entry easier there is a key binding also for the left hand (Ctrl t)as well. Type Enter to toggle chord tones on and off. This add tones or converts rests to a chord tones. Shift Enter removes tones and switches them to rests.

Figure 10. Chords

Chords

Figure 10, “Chords” three contains a series of chords. To enter chords:

  1. Create a new file and save it to a convient location.

  2. Navigate to the E above middle C. (type the alphabetical note names or the hjkl movement keys).

  3. Type an aand u, a half note g appears.

  4. Move the cursor to the g one line above and type Enter or Ctrl t. Use Enter when you are adding chord tones with the alphabetic note names, and use Ctrl t when using the h,j,k,l, navigation keys.

  5. Experiment moving the cursor to each additional chord tone in the first chord with the h,j,k,l, navigation keys.

  6. Type Ctrl t to add chord tones. Shift Control will delete chord tones if a wrong note is added accidently.

  7. Continue creating chords until Figure 10, “Chords” has been copied.

[Note]Note

To alter chord tones chromatically, type the plus sign to sharpen the note at the cursor by one half-step and the minus sign to flatten the current note by a half step in the same manner you sharpen or flatten any pitch in Denemo

[Note]Note

Entering a chord when you are already at the end of the measure (the cursor turns red when this happens) may cause your next note to be added to the beginning of the next measure, or even create a next measure if one didn't already exist.

Edit

Use the Edit menu to access common editing commands.

SubmenuDescription
UndoUndo the pitch and rhythm just added.
RedoRedo the pitch and rhythm just added.
CutCopy the selected notation to the clipboard and delete the selection.
CopyCopy the selected notation to the clipboard.
PastePaste the copied notation at the cursor point.
Score PropertiesAdd header information.
PreferencesSet audio and midi playback applications
Old Keyboard DialogView, Search and modify keyboard shortcuts.

View

Use the View menu to toggle toolbars and palettes used for entering notation with the mouse.

SubmenuDescription
Notation ToolbarToggle Articulation Palette
Articulation PaletteToggle Notation Palette.

Mode

Use the Mode menu to switch modes. Denemo is a modal editor, with different modes for different editing tasks. To learn more about modes see Modes.

SubmenuDescription
InsertSwitch to insert mode.
ReplaceSwitch to Replace mode.
BlankSwitch to Blank mode.
RestSwitch to Rest mode.

Staff

Use the Staff menu to add and delete staves. The Staff menu contains the following submenus:

SubmenuDescription
Add Before Current StaffAdd a new staff to the score before the current one.
Add After Current StaffAdd a new staff to the score before the current one.
Add in Initial PositionAdd a new staff at the beginning of the score.
Add in Last PositionAdd a new staff at the end of the score.
Delete Staff BeforeRemove the staff before the current one.
Delete StaffRemove selected staff.
Delete Staff AfterRemove staff after the current one.
Add Voice to Current StaffAdd single staff polyphony.
Add Lyric StaffAdd a lyrics textbox.
Add Figured Bass StaffAdd a figured bass textbox.
Staff PropertiesAdd General Midi (GM) settings for this staff.

Attributes

Use the Attribute menu to set the Clef, Key signature and time signature.

SubmenuDescription
ClefSet and initial clef or a clef change.
KeySet an initial key signature or a key signature change.
Time SignatureSet an initial time signature or a time signature change.

Bookmarks

Use the Bookmarksmenu to make navigating large scores easier.

SubmenuDescription
Add BookmarkSet and name a bookmark.
Go To BookmarkJump to a named bookmark.

Other

Use the Othermenu to access less used functions, which are quicker to add in LilyPond directly then in Denemo.

SubmenuDescription
NoteheadChange the note head shape.
Insert Stem DirectiveChange stem direction.
Insert LyricOpen the Lyrics dialog box.
Edit LyricEdit the current lyric.
Edit Figured BassOpen the Figured Bass dialog box.
Insert DynamicInsert a dynamic mark at the cursor.
Insert BarlineInsert special barlines.

Go

Use the Go menu; to quickly jump to predefined places in your score.

SubmenuDescription
Go To MeasureJump to a specific measure number.
Go To BeginningJump to the first measure.
Go To EndJump to the last measure.
Go To Next ScoreJump to the next staff in the score.

Playback

Use the Playback menu to start playback of your score. Denemo lets you hear your score, using an external MIDI player, or Csound.

SubmenuDescription
Play Using AlsaCurrently not implemented
Play Using CsoundPlay this score (Csound) using .orc file specified in Playback Properties.
Playback PropertiesSet playback tempo, select an .orc file for Csound playback

Help

Use the Help menu to get help using Denemo.

SubmenuDescription
HelpLaunch a browser to view this manual.
AboutView Denemo version information.

Toolbar

Use the Toolbar to quickly access common Denemo commands. The Tool Bar contains the following icons:

IconDescription
Opens the Open File dialog box.
Saves the current file
Runs LilyPond to convert the current file to PDF and sends it to the printer for printing
Undoes the last action. (Currently Undo only works for adding notes)
Redoes the previous undo action. (Currently Redo only works for adding notes).
Cuts the current selection to the clipboard.
Copies the selected notation to the clipboard.
Pastes the current clipboard item at the cursor position.
Jumps to the first measure of the piece.
Jumps to the last measure of the piece.
Plays the current piece using MIDI

Notation Entry Overview

Editing

Denemo has a variety of features to speed editing. To ease correction of notes Replace mode limits the amount of keystrokes needed to change pitches. To enter Replace mode use the Speedy keycombo Ctrl+R. Position the cursor over the note to change and type the new pitch or the new duration value to change the pitch. (this feature is currently broken :( )

Expression Marks

Denemo is meant to be a front end to LilyPond and the recommended way to add dynamics and expressions is to convert the Denemo score to LilyPond notation and then add them. It is possible, however to add both dynamics and phrasing marks from within Denemo itself.

Table 2. Dynamics and Phrasing

MarkNameShortcutMarksNameShortcut
pPianona
accentAlt Shift greater than
ppPianissimona
acciaccaturaCurrently only in LilyPond
pppPianissanissimona
appoggiaturaCurrently only in LilyPond
mfMezzo Fortena
arpeggioCurrently only in LilyPond
fFortena
downbowCurrently only in LilyPond
ffFortissimona
downmordentCurrently only in LilyPond
fffFortissatissimona
downprallCurrently only in LilyPond
sfzSfortzandona
fermataShift Asterisk *
flageoletCurrently only in LilyPond
glissandoCurrently only in LilyPond
lheelCurrently only in LilyPond
lineprallCurrently only in LilyPond
longfermataCurrently only in LilyPond
ltoeCurrently only in LilyPond
rheelCurrently only in LilyPond
marcatoCurrently only in LilyPond
rtoeCurrently only in LilyPond
mordentw
shortfermataCurrently only in LilyPond
openCurrently only in LilyPond
signumcongruentimeCurrently only in LilyPond
portatoCurrently only in LilyPond
staccatoAlt . period
prallCurrently only in LilyPond
stacctissiimoCtrl Alt . period
pralldownCurrently only in LilyPond
stoppedCurrently only in LilyPond
prallmordentCurrently only in LilyPond
tenutoShift _underscore
prallprallCurrently only in LilyPond
thumbCurrently only in LilyPond
prallupCurrently only in LilyPond
trillCtrl Shift R
reverseturnCurrently only in LilyPond
turnTilde
upprallCurrently only in LilyPond
upbowCurrently only in LilyPond
verylongfermataCurrently only in LilyPond
upmordentCurrently only in LilyPond
Start SlurCurrently only in LilyPond

To add an expression to notation as you type, just enter the note pitch and duration you want and immediately afterwards type the keyboard shortcut corresponding to the expression you want. To add expressions after you have already added notes, use the h,j,k,l keys to position the cursor at the note you want to add an expression to. You won't need to be exactly on the note to add expressions especially at the end of a bar.

Example 2. 

Adding Expressions

Look at Example 2, “”, we see a short musical expression. Lets add the expressions:

  1. Using the keyboard shortcuts enter the low b. (the b on the keyboard and a space)

  2. Type the g (the g on the keyboard and a space)

  3. Type an a, then type a w, a mordent above the g.

    [Note]Note

    Denemo won't place expressions optimally, don't worry it will display correctly in the final published output.

  4. Type the second g the same way you did in the previous step.

  5. Type the a and g eighth notes (using the a and g keys with the i key)

  6. Type two a quarter notes (the a key and a space)

  7. Type Ctrl Shift R, a trill appears above the a.

  8. Type an a quarter note.

  9. Type a tilde ~, a turn appears above the final a quarter note.

  10. Type the final b and c eighth notes.

Repeats

To add Repeats to scores using Denemo:

  1. Currently Denemo doesn't reliably support added repeats. Repeats such be added to the generated LilyPond file before

  2. Type Ctrl \, the Add Barline dialog box appears

  3. Choose the Open Repeat menu item and click OK.

  4. Navigate to the measure which ends the repeat

  5. Type Ctrl \, the Add Barline dialog box appears

  6. Choose the Close Repeat menu item and click OK.

  7. For a first ending Repeat Choose the Open/Close Repeat menu item and click OK.

Score Playback

Publishing

Creating scores with Denemo is quick and easy. Once your masterpiece is done, don't rush to the file menu and click print, if you do you will be disappointed. The reason for this is that Denemo is a score preparation application. Once your score is ready it must be then forwarded to a utility to publish your score in its final intended format. This could be a PDF for printing hard copy, a png for inclusion in a web page, a dvi for sending to press, to name a few. The publishing act is handled by backends which currently are LilyPond and ABC. To prepare a score for publication do the following:

  1. Convert to an ascii format (LilyPond or abc)

  2. Run your score through convert(for LilyPond files)

  3. Run your file through a parser, check for errors and correct them touch up your file (you will need to read the documentation on LilyPond and ABC)

  4. Reparse your file and continue touch ups until the output is how you want it

  5. Output your final product according to your needs

These steps will be detailed below.

Figure 11. Score prepared in Denemo

Score prepared in Denemo

Figure 11, “Score prepared in Denemo a screen shot of the first few measures of a score prepared in Denemo.

Figure 12. 

is the LilyPond output of the above score opened in Emacs.And is the abc notation of the same file:

Figure 13. ABC Notation

ABC Notation

Next Figure 14, “LilyPond file with added articulation and dynamics” is the LilyPond file with slurs and dynamics and additional header information added:

Figure 14. LilyPond file with added articulation and dynamics

LilyPond file with added articulation and dynamics

Figure 15. Final output of LilyPond file

Final output of LilyPond file

Finally Figure 15, “Final output of LilyPond file” is the output from LilyPond as a .png image

Advanced Features

This section will explain how to enter advanced rhthms, chords polyphony etc

Display Command. Control-Shift-left: Decrease the minimum display width of all measures by 10 pixels Control-Shift-right: Increase the same by 10 pixels Control-Shift-up: Decrease vertical space alloted to each staff by 10 pixels Control-Shift-down: Increase vertical space alloted to each staff by 10 pixels

Adding Custom Key Bindings

Denemo comes with a number of premade keyboard shortcut maps.These include shortcuts for languages besides English as well alternate key maps made by developers and users of Denemo. It is easy to make your own key map or tweak the key binding of a particular shortcut. This section will detail how to create custom keyboard shortcuts, or an entire custom key binding map.

Working With LilyPond Files

Denemo lets you edit LilyPond files. Currently there are two ways you can interact with LilyPond files using Denemo:

  • Create your score and then generate LilyPond output

  • Open a LilyPond format file and edit it both graphically and as text.(This option is currently unavailable in the latest Denemo release.)

These two methods of permit a great deal of flexibility. If you desire to do all your notation within Denemo's graphical environment but still use LilyPond's parser and conversion engine to create PostScript for printing, just do all your work in Denemo and save it as a LilyPond file. You can then run the resulting file through LilyPond as you would any other LilyPond file. If you want to combine the ease of graphic entry with the power of text entry.(in many cases text entry is actually faster). The process of editing a lily pond file within Denemo is as follows:

Open a LilyPond file the same way you would open up a file created in Denemo.

[Note]Note

Currently not all LilyPond files will be editable within Denemo. This is dependent on which version of LilyPond you file was created with. Denemo however will open files created within LilyPond and exported to LilyPond format.

The normal way to use Denemo to write a LilyPond file is to start with a template (though it could be some previous, similar piece). The simplest thing you can have is \score { \notes { c'' }} which gives you a score with one staff with a single note, middle c. This is only useful for the simplest of purposes.

A more extensible example is the file in examples/simple.ly Clef = \clef treble Key = \notes \key c \major TimeSig = \notes \time 4/4 MyViolin = \context Voice = MyVln \notes { \Clef \Key \TimeSig c''4 } MyViolinStaff = \context Staff = MyStaff \MyViolin > \score { \MyViolinStaff \paper {} }

The names starting My... are just any made up names you like. In this case MyVln is the name of the voice while MyViolin is the name of the music that has been given to that voice. The music found in the score block at the end is what Denemo displays. You can load up this file, edit the Key and TimeSig definitions, hit reload and start putting in notes Denemo style, saving to a file of your choice at the end.Another template examples/header.ly gives you access to all the titling features of LilyPond and so on.One of the benefits of editing LilyPond is better handling of voices. The examples/twovoices.ly file shows how two voices can be put on one stave. It looks like this:

Key = \notes \key c \minor TimeSig = \notes \time 3/4 ViolinI = \context Voice = VlnI \notes { \Key \TimeSig c''4 d'' e'' } ViolinII = \context Voice = VlnII \notes { \Key \TimeSig a''4 b'' c'' } Violini = \context Staff = Vlns \ViolinI \ViolinII > \score { \Violini \paper {} }

However, Denemo doesn't give an easy way of editing the second voice. One way you can do this is to "comment out" the first voice by putting a % sign at the start of the line that puts it on the staff, thus Violini = \context Staff = Vlns %\ViolinI \ViolinII

when you reload, the first voice is temporarily hidden. However you only see one voice at a time this way. A bolder way is shown in examples/editTwovoices.ly where a temporary staff is created with the same second violin part as appears in the real staff. Now you can edit either voice and see them both on the top staff. When finished you comment out the extra staff thus \score { \Violini % \tempStaff > \paper {} }

and you are ready to print. I should say that Denemo was not written expecting the same music in two staffs, so there may be bugs lurking for the adventurous.

A third way is to create a new score block in the file with just the voice you wish to edit - under the Navigate menu is the option to cycle through the score blocks in the file. If the score block has no \paper block then it will not print out and can just be used for editing. These multiple score blocks are how you include several movements of a piece in a single file - you can then print them all at once getting the page numbering correct.

[Note]

This version of Denemo for LilyPond editing is just a proof-of-concept exercise really. Before fleshing out the (large) parser with actions for all the rules that LilyPond has I wanted to see that this would work. There is a lot of LilyPond which this version will not read; note especially that include files are not opened, and only the default Dutch note names are understood and the \relative type of notes are not handled, nor lyrics,etc etc. On the plus side, there is the full set of dynamics (Denemo had only a subset), tuplets fancy \bars, \partial, \grace, \repeat volta 2, \alternative and much more. Some bugs: the ties do not show in Denemo when read back in - this is a bit structural and needs a design decision to fix - and if you edit the duration of the last note in a measure the first note of the next measure may need to have its duration set. The handling of the barline '|' is not nice - again we should decide where we are going with this sort of thing. And watch out for deleting the key signature etc if you delete the first measure - on reload you will have to add them back in. Also beware that this version leaks memory - Adam's Brandeburg score gobbles up 2% of my RAM everytime I hit reload. Several of the Denemo menu items are redundant when you have a lily file loaded - for example you set headers just by typing in the text (see examples/headers.ly for a complete set of possibilities) - these menus just refuse to respond - they should be hidden really. The LilyPond editing stuff is only enabled when you build with gtk version 2 ie ./configure --enable-gtk2 it could all be done in gtk 1.0 no doubt, but I hope people will have moved on before we get round to it

Denemo Commandline Options

Denemo permits the batch conversion of .denemo files into .ly files. The syntax is as follows "denemo -s denemofilename.

Music Analysis with Denemo

This section will explain Denemo's musical analysis abilities