001
Copyright © 2006 Denemo Project
Table of Contents
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.
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.
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
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
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:
Open a terminal window.
Change directories to the directory to which you downloaded the Denemo source package.
Uncompress the source package using standard Linux tools (tar and gunzip).
Change directories to the uncompressed directory.
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
Use the
menu to perform global operations. The File menu contains the following submenus:Submenu | Description |
---|---|
New | Create a new notation project from scratch. |
New From Template | Create a new notation project based on a template. |
New Window | Open another instance of Denemo. |
Open | Open an existing Denemo file. |
Open Recent | Open a file recently edited. |
Open in New Window | Open an existing Denemo file in a new instance of Denemo. |
Save | Save the current file. |
Save As | Save the current file with a new name. |
Save Selection | Save the current selection to a new file. |
Export PDF | Run LilyPond on the current file to create a PDF. |
Run LilyPond on the current file to create a PDF, then print that PDF. | |
Score Configuration | Open the Score Setup Wizard. |
Close | Close the current file but keep Denemo open. |
Quit | Close the current file and exit Denemo. |
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.
![]() | 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:
Use a Template
Use shortcut keys to add staves and set attributes
Use the Setup Wizard
Use Menus
Procedure 4. Creating a New Score
From the Score menu Choose Headers.
In the Headers dialog box fill in the Composer, Title and Subtitles and other fields as needed then click Ok
Next setup your Clef, Key signature, and Time Signature as described next
Click on the
Navigate to the
submenu.Click on either the Set Clef or Change Clef dialog box appears.
or menu items. TheOnce the
dialog box appears choose the Clef you want from the drop down list and click OK
To select a Key Signature do the following:
Click on the
Navigate to the Key Signature submenu.
Click on the Add Key Signature or Change Key Signature menu items. The Add Key Signature or Change Key signature dialog box appears.
Choose the key signature you want from the drop down list
Select either Major or Minor key. Click
To select a Time Signature do the following:
Navigate to the
Menu.Click on Add Time Signature or Change Time Signature. The Add Time Signature or Change Time Signature dialog box appears.
Type the time signature into the fractional text boxes.
If you want the Time signature to change for all parts in your score, check apply to all staffs.
Click OK
![]() | 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. |
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.
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 Combo | Movement | Command | Action |
---|---|---|---|
a | Move cursor to nearest a | y | Enter a whole note at cursor |
b | Move cursor to nearest b | u | Enter a half note at cursor |
c | Move cursor to nearest c | space | enter a quarter note at cursor |
d | Move cursor to nearest d | i | Enter an eighth note at cursor |
e | Move cursor to nearest e | o | enter a sixteenth note at cursor |
f | Move cursor to nearest f | p | Enter a thirty-second note at cursor |
g | Move cursor to nearest g | Ctrl 7 | Enter a sixty-fourth note at cursor |
. | Insert dot | ||
h | Move left | Raise note a half step | |
l | Move right | - | Lower note a half step |
k | Move up | = | Toggle tie |
j | Move down | r | Toggle rest mode |
' | Move up an octave | Ctrl t | Set initial time signature |
, | Move down an octave | Ctrl shift t | Change time signature |
cntrl j | Jump to next staff | alt k | Set initial key signature |
cntrl k | Jump to previous staff | shift k | Change key signature |
![]() | 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. |
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 |
---|---|
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. |
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)
Denemo provides two methods of adding rests:
Using Rest Mode
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.
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:
Move the cursor to the measure you want to add the rest.
Type alt y, a whole rest appears
Type Alt u, a half rest appears
Type Alt space, a quarter rest appears
Type Alt i, an eighth rest appears
Type Alt o, a sixteenths rest appears
Type Alt p, a thirty second rest appears
To enter the same rests using rest mode do the following:
Move the cursor to the measure you want to add the rest.
Type r to enter rest mode
Type y, a whole rest appears
Type u, a half rest appears
Type space, a quarter rest appears
Type i, an eighth rest appears
Type o, a sixteenths rest appears
Type p, a thirty second rest appears
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:
Enter a middle C eighth note (type c and then i, if you need to adjust the octave use the command and apostrophe)
Enter another middle C eighth note, this time type the plus sign (+) immediately afterwards, a C sharp appears
Enter a D eighth note (type d and then i)
Enter a D sharp eighth note (type d and then i and then +)
Continue adding notes until you have an exact copy of the first two measures of Figure 9, “Accidentals”.
To add flats enter the b eighth note in measure 3 then type a dash (-) a b flat appears.
Continue adding flats until you have and exact copy of measures three and four.
To add accidentals to existing notation do the following:
Navigate to the note you want to alter using the h,j,k,l motion keys.
![]() | 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. |
Type a + to alter the pitch up a half step and a - to alter the pitch down a half step.
![]() | 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 |
---|---|
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. |
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” three contains a series of chords. To enter chords:
Create a new file and save it to a convient location.
Navigate to the E above middle C. (type the alphabetical note names or the hjkl movement keys).
Type an aand u, a half note g appears.
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.
Experiment moving the cursor to each additional chord tone in the first chord with the h,j,k,l, navigation keys.
Type Ctrl t to add chord tones. Shift Control will delete chord tones if a wrong note is added accidently.
Continue creating chords until Figure 10, “Chords” has been copied.
![]() | 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 |
---|---|
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. |
Use the
menu to access common editing commands.Submenu | Description |
---|---|
Undo | Undo the pitch and rhythm just added. |
Redo | Redo the pitch and rhythm just added. |
Cut | Copy the selected notation to the clipboard and delete the selection. |
Copy | Copy the selected notation to the clipboard. |
Paste | Paste the copied notation at the cursor point. |
Score Properties | Add header information. |
Preferences | Set audio and midi playback applications |
Old Keyboard Dialog | View, Search and modify keyboard shortcuts. |
Use the
menu to toggle toolbars and palettes used for entering notation with the mouse.Submenu | Description |
---|---|
Notation Toolbar | Toggle Articulation Palette |
Articulation Palette | Toggle Notation Palette. |
Use the
menu to switch modes. Denemo is a modal editor, with different modes for different editing tasks. To learn more about modes see Modes.Submenu | Description |
---|---|
Insert | Switch to insert mode. |
Replace | Switch to Replace mode. |
Blank | Switch to Blank mode. |
Rest | Switch to Rest mode. |
Use the
menu to add and delete staves. The Staff menu contains the following submenus:Submenu | Description |
---|---|
Add Before Current Staff | Add a new staff to the score before the current one. |
Add After Current Staff | Add a new staff to the score before the current one. |
Add in Initial Position | Add a new staff at the beginning of the score. |
Add in Last Position | Add a new staff at the end of the score. |
Delete Staff Before | Remove the staff before the current one. |
Delete Staff | Remove selected staff. |
Delete Staff After | Remove staff after the current one. |
Add Voice to Current Staff | Add single staff polyphony. |
Add Lyric Staff | Add a lyrics textbox. |
Add Figured Bass Staff | Add a figured bass textbox. |
Staff Properties | Add General Midi (GM) settings for this staff. |
Use the
menu to set the Clef, Key signature and time signature.Submenu | Description |
---|---|
Clef | Set and initial clef or a clef change. |
Key | Set an initial key signature or a key signature change. |
Time Signature | Set an initial time signature or a time signature change. |
Use the
menu to make navigating large scores easier.Submenu | Description |
---|---|
Add Bookmark | Set and name a bookmark. |
Go To Bookmark | Jump to a named bookmark. |
Use the
menu to access less used functions, which are quicker to add in LilyPond directly then in Denemo.Submenu | Description |
---|---|
Notehead | Change the note head shape. |
Insert Stem Directive | Change stem direction. |
Insert Lyric | Open the Lyrics dialog box. |
Edit Lyric | Edit the current lyric. |
Edit Figured Bass | Open the Figured Bass dialog box. |
Insert Dynamic | Insert a dynamic mark at the cursor. |
Insert Barline | Insert special barlines. |
Use the
menu; to quickly jump to predefined places in your score.Submenu | Description |
---|---|
Go To Measure | Jump to a specific measure number. |
Go To Beginning | Jump to the first measure. |
Go To End | Jump to the last measure. |
Go To Next Score | Jump to the next staff in the score. |
Use the Playback menu to start playback of your score. Denemo lets you hear your score, using an external MIDI player, or Csound.
Submenu | Description |
---|---|
Play Using Alsa | Currently not implemented |
Play Using Csound | Play this score (Csound) using .orc file specified in | .
Playback Properties | Set playback tempo, select an .orc file for Csound playback |
Use the Help menu to get help using Denemo.
Submenu | Description |
---|---|
Help | Launch a browser to view this manual. |
About | View Denemo version information. |
Use the Toolbar to quickly access common Denemo commands. The Tool Bar contains the following icons:
Icon | Description |
---|---|
![]() | 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 |
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 :( )
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
Mark | Name | Shortcut | Marks | Name | Shortcut |
---|---|---|---|---|---|
p | Piano | na | ![]() | accent | Alt Shift greater than |
pp | Pianissimo | na | ![]() | acciaccatura | Currently only in LilyPond |
ppp | Pianissanissimo | na | ![]() | appoggiatura | Currently only in LilyPond |
mf | Mezzo Forte | na | ![]() | arpeggio | Currently only in LilyPond |
f | Forte | na | ![]() | downbow | Currently only in LilyPond |
ff | Fortissimo | na | ![]() | downmordent | Currently only in LilyPond |
fff | Fortissatissimo | na | ![]() | downprall | Currently only in LilyPond |
sfz | Sfortzando | na | ![]() | fermata | Shift Asterisk * |
![]() | flageolet | Currently only in LilyPond | ![]() | glissando | Currently only in LilyPond |
![]() | lheel | Currently only in LilyPond | ![]() | lineprall | Currently only in LilyPond |
![]() | longfermata | Currently only in LilyPond | ![]() | ltoe | Currently only in LilyPond |
![]() | rheel | Currently only in LilyPond | ![]() | marcato | Currently only in LilyPond |
![]() | rtoe | Currently only in LilyPond | ![]() | mordent | w |
![]() | shortfermata | Currently only in LilyPond | ![]() | open | Currently only in LilyPond |
![]() | signumcongruentime | Currently only in LilyPond | ![]() | portato | Currently only in LilyPond |
![]() | staccato | Alt . period | ![]() | prall | Currently only in LilyPond |
![]() | stacctissiimo | Ctrl Alt . period | ![]() | pralldown | Currently only in LilyPond |
![]() | stopped | Currently only in LilyPond | ![]() | prallmordent | Currently only in LilyPond |
![]() | tenuto | Shift _underscore | ![]() | prallprall | Currently only in LilyPond |
![]() | thumb | Currently only in LilyPond | ![]() | prallup | Currently only in LilyPond |
![]() | trill | Ctrl Shift R | ![]() | reverseturn | Currently only in LilyPond |
![]() | turn | Tilde | ![]() | upprall | Currently only in LilyPond |
![]() | upbow | Currently only in LilyPond | ![]() | verylongfermata | Currently only in LilyPond |
![]() | upmordent | Currently only in LilyPond | Start Slur | Currently 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.
Look at Example 2, “”, we see a short musical expression. Lets add the expressions:
Using the keyboard shortcuts enter the low b. (the b on the keyboard and a space)
Type the g (the g on the keyboard and a space)
Type an a, then type a w, a mordent above the g.
![]() | Note |
---|---|
Denemo won't place expressions optimally, don't worry it will display correctly in the final published output. |
Type the second g the same way you did in the previous step.
Type the a and g eighth notes (using the a and g keys with the i key)
Type two a quarter notes (the a key and a space)
Type Ctrl Shift R, a trill appears above the a.
Type an a quarter note.
Type a tilde ~, a turn appears above the final a quarter note.
Type the final b and c eighth notes.
To add Repeats to scores using Denemo:
Currently Denemo doesn't reliably support added repeats. Repeats such be added to the generated LilyPond file before
Type Ctrl \, the Add Barline dialog box appears
Choose the OK.
menu item and clickNavigate to the measure which ends the repeat
Type Ctrl \, the Add Barline dialog box appears
Choose the OK.
menu item and clickFor a first ending Repeat Choose the OK.
menu item and clickCreating 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:
Convert to an ascii format (LilyPond or abc)
Run your score through convert(for LilyPond files)
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)
Reparse your file and continue touch ups until the output is how you want it
Output your final product according to your needs
These steps will be detailed below.
Figure 11, “Score prepared in Denemo” a screen shot of the first few measures of a score prepared in Denemo.
is the LilyPond output of the above score opened in Emacs.And is the abc notation of the same file:
Next Figure 14, “LilyPond file with added articulation and dynamics” is the LilyPond file with slurs and dynamics and additional header information added:
Finally Figure 15, “Final output of LilyPond file” is the output from LilyPond as a .png image
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
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.
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 |
---|---|
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.
![]() | |
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 permits the batch conversion of .denemo files into .ly files. The syntax is as follows "denemo -s denemofilename.