[linux-audio-user] Re: New Virtual Keyboard Proposition

From: Carlo Capocasa <capocasa@email-addr-hidden>
Date: Wed Oct 05 2005 - 23:15:16 EEST

Hi! Thanks for your addings.

> I enjoy using this too. With monophonic sounds it's a bit like tapping
> on a guitar. :)

Oh, soooooo funky. Yeah babah! :)

> Is this a limitation of the keyboard scanning electronics, or a software
> thing, I wonder? I have some vague memory that it's possible to change
> the baud rate of ps/2 devices too.

That'd be interesting to look into... I checked out ZynAddSubFX's native
virtual keyboard and it has the same issues regarding multiple keys. I
suspect it has to do with both Zyn and vkeybd using too high a level of
keyboard input and that this would be solved if key codes would be used
for identification instead of character codes.

> There are many good points in your post. I would add some more...
> I think it would be interesting to try a layout that does not mimic a
> piano keyboard.

Great suggestion! We should solve this in configuration space and allow
for efficient keyboard customizing in the settings files/preference
dialogues. Please do create a file for your keyboard suggestion when the
program's ready... We could call it the 'philicorda' layout. Has a great
sound to it, doesn't it? :)

* Keyboard layouts are saved as XML files. The default layout is saved
in configuration and can be changed by editing configuration or with a
command-line option. (Priority 1)
* The configuration dialogue contains an option to add XML based
keyboard layouts to database, select which is default, as well as an
editor to create and save them. (Priority 2)

You can already create a custom keyboard layout with vkeybd BTW... just
do this:

cp /usr/share/vkeybd/vkeybdmap SOMEWHERE_IN_YOUR_HOMEDIR/vkeybdmap
cd SOMEWHERE_IN_YOUR_HOMEDIR
chown YOU.users vkeybdmap
leafpad (or whatever editor you are using) vkeybdmap

Editing keyboard bindings should be pretty self-explanatory...

Then start vkeybd like this from now on:

vkeybd --keymap SOMEWHERE_IN_YOUR_HOMEDIR/vkeybdmap

I attached my favourite two-octave piano style keyboard layout to this
post, you might have to switch Z and Y though. The keyboard could use
keys all the way to the enter key but I couldn't manage all my Umlauts
since, *sigh*, the keyboard uses character codes and not key codes.

> I had a go at doing this in pd, but got stuck converting the key codes
> into midi note numbers.

Yikes, PD! I'm sure it's a great program but using I feel like I'm in a
physics exam without having studied... I use ZynAddSubFX/vkeybd more or
less exclusively right now.

> I think that with the mouse it would be good if there was an option for
> the controllers to be activated on left click and reset when the button
> was released... as there is no 'null' point on a mouse, it would be hard
> to use it as a pitch bend/mod without leaving an offset when you want
> both to return to zero.

Great thinking and great solution. Let's include this.

* Pressing the left, right or both mouse buttons allows a different set
of controllers to be modified. Moving the mouse with no keys pressed
does nothing (for performance safety, we don't want the pitch changing
cuz we sneezed or moved the table). Whether or not controllers snap back
has sensible defaults but can be configured on a per-keyboard-layout
basis. More keys from the keyboard can be used for more different
controllers, like alt,ctrl,altgr,shift. (Priority 1)

Here's an unrelated but important point I forgot:

* Arrow keys up and down switch octaves, arrow keys left and right
switch semi-tones. (Priority 1).

Carlo

global keymap
set keymap {
    {a 8}
    {y 9}
    {s 10}
    {x 11}
    {c 12}
    {f 13}
    {v 14}
    {g 15}
    {b 16}
    {n 17}
    {j 18}
    {m 19}
    {k 20}
    {comma 21}
    {l 22}
    {period 23}
    {slash 24}
    {apostrophe 25}
    {backslash 26}
    {grave 27}

    {1 20}
    {q 21}
    {2 22}
    {w 23}
    {e 24}
    {4 25}
    {r 26}
    {5 27}
    {t 28}
    {z 29}
    {7 30}
    {u 31}
    {8 32}
    {i 33}
    {9 34}
    {o 35}
}
Received on Thu Oct 6 00:15:06 2005

This archive was generated by hypermail 2.1.8 : Thu Oct 06 2005 - 00:15:06 EEST