Greetings, I’m pleased to announce LilyQuick, a greatly improved descendant of Finale’s Speedy Note Entry. The basic idea is to play notes on the MIDI keyboard with your left hand, and use the numeric keypad to enter the rhythms with your right hand. LilyQuick types the notes for you. Being able to hear the notes as you enter them is great for accuracy, and with a little practice you can enter music very quickly, even with keyboard skills as mediocre as mine.
Installation *should* be as straightforward as installing a couple of packages with apt-get or equivalent and typing make (see the INSTALL file), and probably some configuration for your own needs. https://github.com/palestrina/lily-q If you like it, let me know if there’s anything you’d like it to be able to do. Vaughan README file follows: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LILYQUICK Welcome to LilyQuick, originally written as a replacement for Speedy Note Entry when I moved from Finale to Lilypond, and then much improved. The basic idea is to play notes on a MIDI keyboard with your left hand, then while they are sounding, press a note on the numeric keypad with your right hand corresponding to the duration. For example, to get "f2", play an F on the keyboard, and press number 5 on the numeric keypad. The advantage to this approach is excellent speed and accuracy, and you get to hear the notes as they are being entered. The default key layout is as follows: numeric keypad keys 0-6 produce notes in conjunction with the MIDI keyboard. 6 - semibreve/whole 5 - minim/half 4 - crochet/quarter 1 - quaver/eighth 2 - semiquaver/sixteenth 3 - demisemiquaver/thirty-second 0 - last note value (useful with repeated dotted notes) If useLongValues is set to true in LQconfig.lua, the 3 key changes to \breve. This can be useful when entering early music. 7 adds whole bar rests such as R1* , then changes to data entry mode, where the numeric keypad behaves as normal. Pressing enter leaves data entry mode. The type of rest is from the variable fullRest in LQconfig.lua. So to enter 15 bars of rest, you would type 7, 1, 5, enter on the numeric keypad. 8 is for entering tuplets. The 8 key enters \tuplet, then enters data entry mode for the numbers. The enter key leaves data entry mode and adds the curly bracket " { ", ready for note entry. So for quintuplets you would press 8, 5, /, 4, enter; which would type " \tuplet 5/4 {" If you only ever use triplets, you may want to make tuplets into a simple string such as: ["8"] = " \\tuplet 3/2 {", (in LQkeyboardEvents.lua) 9 just adds a right curly bracket " }" + alternates between entering left and right slurs: " (" and " )" = or / adds a tie "~" . adds a dot to the rhythm * changes the previous note enharmonically, for example cis to des. Press again to cycle between possibilities. The Enter key either exits data entry mode, or adds a bar check and newline: " |\n" F8/F15 exits LilyQuick. Because I don’t know anything about signals, you need to press a key on your MIDI keyboard to exit properly. F9/F16 changes the key sharpwards. LilyQuick will play a G to signify one sharp, up to a C# to signify seven sharps. If you want sharps and you’re getting flats, try changing the key. F10/F17 changes the key flatwards In C major, LilyQuick will type a chromatic scale as follows: c cis d es e f fis g gis a bes b. F11/F18 and F12/F19 (and any other numeric key) can be customized at your pleasure. IMPLEMENTATION LilyQuick intercepts keystrokes from the computer keyboard. If they’re not from the numeric keypad, they are sent straight on to the system. If they are, they are sent to the Lua program, which can create vitual keystrokes. At the moment it can send any character that can be typed on the regular part of the keyboard using the shift key. This includes all characters I regularly use for inputting Lilypond code. I don’t know enough about non-English keyboard layouts, and whether people would want to enter non-ASCII characters when entering notes in Lilypond. It shouldn’t be too hard to add this feature if the need arises. What LilyQuick does with incoming keystrokes is defined in LQkeyboardEvents.lua Intercepting keystrokes requires superuser privileges (sudo). CUSTOMIZATION LQconfig.lua contains a number of options you may wish to change, such as absolute/relative note entry, MIDI output channel etc. See the INSTALL file for more information on deviceName and MIDIKeyboardName. The file LQkeyboardEvents.lua determines how incoming keystrokes are handled, and is completely customizable. To type a simple string, just include it (like the entry for "9"). Otherwise the entry should be a table containing a function, and the parameter to send to it. To send multiple parameters, put them in a table (like the function Alternate). TODO - Allow make install to put the executable into some /bin directory. Not sure how to tell it where the Lua scripts are yet. - Easier time signature changing, either through the command line or the numeric keypad. - Tracking note values entered to allow automatic bar checks/new lines. - Allow entry of higher UTF-8 characters and different keyboard layouts. _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user