Denemo-style MIDI input

• Feb 12, 2017 - 23:06

I have been evaluating several methods for entering music into to Notation Programs and I have found the musical 'two-pass' MIDI method used by Denemo to be both intuitive and rapid.

Essentially, one taps-in the rhythm on the numeric keyboard, using the appropriate duration keys. This results in a series of 'crosshead' notes on a single line of the staff. Rests are entered by pressing the Alt key at the same time as the note duration.

The first note of the staff is then selected and the pitches are 'filled-in' using the MIDI keyboard. This works in a similar manner to the Musescore 'replace notes' function.

I believe this method has been discussed at various times in the Forum. It would seem to be a logical and fairly straightforward system to implement. Has any progress been made recently?


Not sure how what you are seeing this differing significantly from what you can already do, then - as you say, there is already a "replace pitches" function. I guess the only difference I can see is that in the method you describe, you *just* press the duration key, whereas in MuseScore, you type than *and* a pitch, even if just a dummy pitch. It's six of one, half dozen of the other if the piece is mostly the same rhythmic value (eg, lots of eighth notes), but if the rhythms are more complex, your method is somewhat more efficient because you don't need to type the dummy pitch. Is that the difference you mean?

I don't know that I've seen people arguing for this type of input method, and also it seems that even with the improvement you describe, it's still guaranteed to be twice as slow as the usual method in which you can get the pitch and duration simultaneously. So between those two facts, I'd say that's why it hasn't been implemented. But it's certainly not out of the question if enough people voice support for this and some motivated programmer decides to tackle it.

In reply to by Isaac Weiss

Huh, I had tried the rhythm mode and couldn't figure it out before so I assumed it was something other than what is described. I tried again just now and it didn't work at first, but then suddenly it did. So I guess it is implemented but maybe is buggy at the moment? Looks like it doesn't work the first time you switch to it, but does if you exit then re-enter note input mode? Or move the cursor.

Anyhow, indeed, it does look like this is implemented, so forget what I wrote above :-)

In reply to by Marc Sabatella

I probably didn't explain the Denemo approach very well. Their website has a video demonstrating the rhythmic entry of a complex musical line using the numeric keyboard. Essentially you 'play' the rhythm as a 'musician'. Different audio tones are emitted for the note-lengths, and the Alt key allows rests to be entered without losing the momentum of the music. These features explain why the method feels so natural.

I will try the nightly build and look forward to the Musescore 3.0 release which, no doubt, will be full of many other goodies!

In reply to by Wyvern

The Demeno-style input method (aka "Rhythm mode") is fully implemented in the development builds, except for the sound effects. There is currently a bug where you can't enter notes until you have clicked once with the mouse. If this is fixed soon then Rhythm mode might be included in MuseScore 2.1.

In reply to by shoogle

I have tried the latest nightly build and the Rhythm Mode is pretty-close to the basic Denemo approach. However, there is one basic difference which spoils the smooth entry of the rhythm while trying to 'play' the numeric keypad.

In the Denemo system, the change from a Note to a Rest is accomplished 'on the fly' by pressing the Alt key with the duration key - that is, a key combination. This allows one to 'sing along' (metaphorically, of course!) as one plays the melody line from the score.

The Musescore main keyboard zero key can be used to switch between Note and Rest entry, leaving the other hand to 'play' the numeric keyboard. However, this introduces an additional step into the process upsetting the musical flow. The transition between Note/Rest should be seamless for the Rhythm Mode to be truly effective.

In reply to by Isaac Weiss

So you're suggesting entering the rest as if if it were note during pass 1, then changing it to a rest during pass 2? That is indeed fewer keystrokes over all, so objectively it *is* indeed slightly better than the Denemo system. Of course, since it's different, it's still going to seem less natural to someone already accustomed to the other. But that's pretty much unavoidable - any improvement is a change, and that might be take a minute to adjust to at first.

Still, it seems likely it would be easy to add the Denemo-style rest shortcut modifier to the existing system.

In reply to by Isaac Weiss

I meant suggesting that user's work this way: first enter a note, then change to a rest later. As i said, it would indeed produce the desired results somewhat more efficiently, but I also would find it pretty unnatural to have to enter a note first then turn it into a rest. Of course, I find the whole two-pass approach very unnatural, so maybe I'm not the best judge in this case.

In reply to by Marc Sabatella

We are not entering a note and changing to a rest later. We are entering durations with the numeric keyboard and using the state of the main keyboard zero key to specify whether the currently-pressed numeric key (duration) is a note or a rest.

In the second pass, all the notes are assigned a pitch by the MIDI keyboard and the rests are left untouched, that is, skipped.

In reply to by Wyvern

Yes, I get that with Denemo, you don't enter a note then change it into a rest. But what I Isaac is saying, I think, is that this would be the best way to do it in MuseScore's upcoming new input method. You'd enter the rests as notes, and then on the second pass you'd change them to rests the same time you enter the pitches (by pressing the MIDI key assigned to the rest shortcut, if you use MIDI to enter pitches).

In reply to by Marc Sabatella

I am now confused! If I understand you correctly; the first pass (using the numeric keyboard) would result in a line of, say, middle-C notes of varying durations without any rest symbols displayed. Some of the notes would, indeed, be rests and would need to be identified and changed on the second pass from the MIDI keyboard.

My standpoint is that of a musician 'playing' the numeric keypad. The focus of the first pass is to enter the rhythm correctly. By playing the keypad using the right hand with, for example, the Alt key UP, notes would be entered. With the Alt key DOWN rests would be entered. This simple method would produce a musical line of readable music, albeit of a single pitch. All the rhythmical information, however, will have been captured during that scan.

On the second pass, the musician would use the MIDI keyboard to enter the pitches but would not have to worry about identifying which of the displayed notes were actually rests and needed to be changed. I must admit I prefer this scenario! It seems clumsy to use a MIDI key for controlling rests when dealing with pitch entry. The additional Note/Rest key-presses would be identical in either case.

In reply to by Wyvern

You don't *have* to use the MIDI keyboard to enter rests; I just got the impression you preferred it. You are welcome to use the regular computer keyboard shortcut "0" instead if that is what you actually prefer.

But I agree, even if it is slightly more efficient the way you'd have to do it in MuseScore, I would say that if a program forced me to do it in two passes, I'd subjectively prefer the first pass to include the rests. So as long as we're providing the new input mode, I think a shortcut to enter rests instead of notes - like the Alt method from Denemo - does *appear* to make sense. I don't have a ton of insight into this, though, because at a fundamental level I don't understand the appeal of using two passes to accomplish what can be done in only one in the first place. So it's hard for me to judge.

In reply to by Marc Sabatella

Hi Marc,
Thank you for spending so much time considering my topic. At the end of the day, the method used for note entry is one of personal preference. If transcribing a draft score, my approach would be as follows:

1. Enter the rhythm by playing the numeric keypad as a musical instrument. The Alt key would act as a dynamic selector to choose notes or rests. As there are likely to be far more notes than rests, I would only hold down the Alt key while playing the rests. Ideally, the keypad would be played at the tempo of the original score, wearing my musician's hat. The result of 'pass one' would be a transcription of the score as a single line of notes and rests. This would be fully-readable and could be easily checked or, if very complicated, saved and printed for off-line examination. The Rhythm Entry stage is then complete. As a simple example; assume 16 measures of 4/4 time comprising only crotchets. Let 10 of these be rests. There would be 64 numeric key-presses, ten of which would have the Alt key pressed simultaneously.

2. For a more complicated piece, having entered the all the rhythm, I would check the transcription against the original score, have a cup of coffee, and then use my MIDI keyboard to enter the note pitches only. This would behave exactly as the current Musescore pitch rewrite method. I would not use a MIDI key for rests. There is no need, as this has already been done in pass one. With the simple example quoted previously, we would only need 54 notes to be played, so the pass is very efficient.

As I said earlier, the method used for note entry is down to personal preference. Assuming that Rhythm Entry mode is likely to be implemented in a future release of Musescore, why not have customisable options in the Preference Settings which users can choose?

In reply to by Wyvern

None of these methods are mutually exclusive. Currently you have to *press* (and immediately release) the zero key to *toggle* between notes and rests during rhythm entry, but there is nothing preventing a second shortcut key (such as Alt) from being set up which you have to *hold* to enter rests. Also, there is nothing stopping people from choosing to enter only notes and then assigning the rests in the second pass along with the pitches.

Now, my question for Wyvern is: how do you enter dotted notes in Denemo? In MuseScore you have to press the period key "." to toggle dots on and off, but perhaps a second shortcut could be used here as well, such as if you hold shift?

In reply to by shoogle

Hi Shoogle,

Thank you for your continued interest in the Denemo approach. The best way of answering your question is the attached PDF file which is a screenshot from their help manual.

The main thing that I like about Denemo is their data-entry method. The tight link to LilyPond typesetting I find less convincing. The Musescore interface is much easier to use.

This is why I consider a marriage of the two programs to be a fruitful union!

Attachment Size
Keypad.pdf 214.54 KB

In reply to by Wyvern

So if I understand it correctly, in Denemo you enter a note and *then* press the period key to make it dotted? And you do this for every dotted note, it doesn't last until you press it again?

BTW, we won't be changing MuseScore's existing shortcuts to match Denemo, but we might be able to create new ones with the same functionality as Denemo's. You could then swap them to make them the same as Denemo's in Preferences.

In reply to by shoogle

If you enter a note, and then press the period key, the note becomes dotted. Like all the Denemo key-pad 'modifiers' they do not persist.

Key 9 (the 'dottify' symbol) is interesting: If you enter an 1/8th note, for example, and then press the key, it not only applies the 'dot' but also adds the following 1/16th note. I also like the triplet feature.

As Denemo is open-source and free, why not download a copy and play with it. You will then be able to form your own impression of its features.

In reply to by Isaac Weiss

I agree. I'm looking forward to using the Rhythm Mode, and the sooner the better!

I am also playing around with AutoHotkey scripts to re-map the numeric keys and include the Alt key as a modifier to achieve Denemo-like behaviour. If I'm successful, I'll post the results in the Forum.

In reply to by Wyvern

I am making some progress with AutoHotKey scripts for Rhythm Mode. I see that MuseScore has a very comprehensive set of keyboard shortcuts which can be customised using the Preferences menu.

It would be particularly useful to have a built-in shortcut which resets the Toolbar to a default state. For example, all buttons deselected (UP).

At the moment, many of the buttons are persistent and act as 'toggles'. Without resetting these to a known state, things can soon become out-of-sync; especially when changing things 'on the fly'!

In reply to by Wyvern

MuseScore pretty much requires a duration key to always be selected. Any primary duration key (1-9) automatically deselects the others as well as the dot. Aside from that, the only toggle I assume you'd be worried about is the rest. Pressing "N" twice will normally reset this, maybe your script could do that?

In reply to by shoogle

As wonderful as this is, I can't help but be concerned that there isn't enough time to test it, and some ugly bug (or several) will be found after the release of 2.1. There are precedents relating to the Navigator and the Piano Roll editor in 2.0.3 where changes were committed late before the release, and those changes were nowhere near this scale.

In reply to by shoogle

Well, you never know. This is purely hypothetical, but suppose we find that a certain pattern of steps makes it impossible to enter (or worse, to exit) note input mode? That's nearly exactly what happened with #100536: [Feature Request] pitch up/down feature in the piano roll. and then #104881: Arrow up/down and Delete keys stop working in other open scores after piano roll editor is opened in another score .

Do you still have an unanswered question? Please log in first to post your question.