[linux-audio-user] New Virtual Keyboard Proposition

Carlo Capocasa capocasa at gmx.net
Wed Oct 5 05:08:11 EDT 2005


Hi there!

I've been using the Virtual Keyboard quite often and it's great, a 
regular computer keyboard can be a great two-octave non-dynamic 
keyboard. I don't see why it couldn't be used in concert settings, 
especially for electronic/synth-samples based music.

The currently available Virtual Keyboard does have its issues though:

* No more than about three notes can be played at once
* Sometimes it works anyway, and precision goes down the drain; varying 
  latencies up to a couple milliseconds result (To be fair this could be 
also be ZynAddSubFX's fault)
* Usability: No way of saving the status of the various toolbars
* Usability: Changing the Window with the mouse takes away the keyboard 
focus; this is WAY too risky to do on stage (Well it could be done but 
it WOULD be risky... Like performing a Hard Rock concert head banging 
seated on a chair suspended on fine china)
* Not usable without X-Window
* No Low-Level keyboard access; hence difficulty with various key layouts
* Cumbersome TCL/TK customization

Here is my proposition for a Virtual Keyboard that can turn any computer 
keyboard that is halfway precise into a fully functional Musical keyboard.

1. Terminal based version (Priority 1)
2. Lightweight but pretty (compare XFCE) GUI version (Priority 2)
2. Must operate on low-level keyboard access due to international 
keyboards and precision (Priority 1)
3. As close as possible to hard real time in dispatching MIDI events 
(Priority 1)
4. Keep keyboard focus at all times, even when switching windows or 
consoles (Priority 1)
5. Must be based on a compiled language or even assembly, it's got to be 
VERY precise and VERY fast! (Priority 1)
6. Uses ALSA sequencer (Priority 1).
8. MIDI Controllers with 'analogue' values could be controlled by mouse; 
two mouse axis equals to ranges of controllers to control at once; Mouse 
buttons can be used to switch controllers: No button pressed= MIDI 
Controllers 5 and 7, left button pressed=MIDI Controllers 29 and 7, both 
buttons pressed=MIDI controllers 78 and 43, etc. This must be 
configurable. Two mouse axis offer same functionality as hardware MIDI 
controller knobs (to hands to turn controllers at the same time). 
(Priority 2)
9. Configuration: Two categories of configuration options. 'Performance 
relevant' and 'not performance relevant'. Performence relevant controls 
must be accessible by keyboard and mouse input at once (remember, mouse 
is mapped to controllers, so no pointing and clicking). A good way to do 
this would be the F1-F12 keys. Press for toggle and Press+mouse for 
analogue input/scroll. Not performance relevant options are configured 
in a dialogue, which is saved to an XML file, which can also be edited 
by hand. (Priority 2)
10. No drop-down menus, ever. (Priority 1)
11. GUI Version occupies very little screen space (perhaps even an XMMS 
style MINI-Version) (Priority 2)
12. GUI Version skinnable (Priority 3)

Wow... This would be so cool.

Carlo




More information about the Linux-audio-user mailing list