Next post: Audio Noise

Computer keyboard as piano keyboard

Musicians often spend time transcribing music, using software like Sibelius and Finale to enter notes into sheet music. In my opinion, even with the latest Sibelius software, the process isn't very smooth or efficient, even when one has a piano-like MIDI keyboard to send the pitch directly to the computer. And when the MIDI keyboard is not available, repeatedly clicking on the score with a mouse is not a great experience.

For example, in the latest version of Finale, there are keyboard shortcuts, and you can enter notes by typing their letter names on the computer's keyboard. But it's not very intuitive for the "a" key to produce an "a" note, especially because a, b, and c are not close to each other in QWERTY.

Here is my program called "Trilling":

The two key aspects of Trilling:

  1. The keys are arranged in a way more-similar to a piano (as seen in the diagram above).
  2. Trilling can "record" a section of music during which the performer can tap the pulse. This lets the performer play more naturally, and also to slow down for parts of the music that are more complex.

I recently finished a proof-of-concept, where the Tab key is tapped for every quarter note. It works well; I've already used it to transcribe some of a Bach cantata.

Recording a short fragment of music and exporting it to MusicXML/Finale and LilyPond:

In order to export to MusicXml and LilyPond, I use code from an open source project called Mingus. I'm grateful for that project, which turned out to be very similar to what I needed. I added the capability of tied notes and changed some of the ways it writes musicxml files.

2009 Update

I've ported Trilling from Python to C#. See it in action:

It sends out real time midi events. So, you can use a midi loopback driver like Maple or LoopBe1, to make it look like a midi input device to other software, including Finale. Polyphony is supported and constrained only by limitations of the keyboard+driver. The C# MIDI Toolkit by Leslie Sanford is used to send data to the Windows API.

It can be useful for jotting down a melody or songs. Because it supports multi-tracking, it can be fun to make a little song by combining a bass part, harmony, and melody with different instruments for each voice. The results are saved as a standard .mid file.