Commit Graph

22 Commits

Author SHA1 Message Date
Robin Gareus 322e7c328e
Vkeybd: Bind F5 to F8 keys to velocity 2023-06-10 15:03:09 +02:00
Robin Gareus 1eb98316a3
Rename KeyboardLayout to PianoKeyBindings
This is to prevent polluting the global namespace with a
symbol name that is likely to cause conflicts.
2020-04-07 18:40:04 +02:00
Nil Geisweiller 7ffaae77a7
Rename KeyboardLayout::set_keyboard_layout to set_layout
Since the class indicates that it is a keyboard layout, no need to over
load the name with it.
2020-04-07 18:26:45 +02:00
Nil Geisweiller 104d37e5a2
Move keyboard layout in its own class 2020-04-07 18:26:45 +02:00
Robin Gareus 9873e1d211
VKeybd: fix stuck keys when changing octaves - #7957
Using the mouse/dropdown to change octaves can lead to stuck
notes when keys are held. This is because the most recently
pressed key, sends key-repeat events.

Using Arrow keys to switch octaves does not cause this problem,
because the most recently pressed key will be an arrow key.

PS. Changing Chromatic Transpose while holding keys still
can lead to stuck notes. This will need a different fix.
2020-03-29 00:47:26 +01:00
Robin Gareus 6aac8b2c8a
Fix another clang-scan warning 2020-01-27 03:32:18 +01:00
Robin Gareus 49df7abd0b
NO-OP: whitespace 2019-12-27 19:35:03 +01:00
Robin Gareus b942eecc9c
Vkeybd: force release notes on panic
If key(s) are still being pressed, a key-repeat will re-trigger
the most recently pressed note (depending on keyboard settings).
2019-12-26 12:17:20 +01:00
Robin Gareus 9c6d9324bd
VKeybd: exponential pitch-wheel/bend interpolation 2019-12-17 16:47:46 +01:00
Robin Gareus 322e6e08c4
Vkeybd: grab all key-events and use timer instead of key-repeat
This fixes an issue with arrow-keys (up/down, left/right). Those
were previously only handled when the Virtual Keyboard window itself
had focus.

Also key-repeat for pitch-bend is now ignored and a dedicated timer
is used to queue events. This fixes an issue with the first repeat
taking longer than successive ones, and makes this feature independent
of any desktop user settings.
2019-12-16 15:02:39 +01:00
Robin Gareus 6fa14a1b47
VKeybd: Pass on primary (Ctrl/Cmd) shortcuts
This allows Ctrl/Cmd+s (save) and Ctrl/Cmd+z (undo) etc shortcuts
to work, even though the virtual-keyboard is visible.
2019-12-15 20:34:14 +01:00
Robin Gareus c3a27fadae
NO-OP: some const correctness 2019-12-12 23:59:38 +01:00
Robin Gareus f2170f0a2f
VKeybd: fix MacOS key-bindings 2019-12-12 23:59:37 +01:00
Robin Gareus 407c2bed63
VKeybd: grab and ignore some keys
With default QWERTY and QWERTZ layout some keys that are easily
accidentally pressed. Those triggered editor actions,
(e.g. "a" (audition), or "1" (edit-tool)) and are now ignored.
2019-12-05 22:13:34 +01:00
Robin Gareus 5ec9e0fa5e
Virtual-keyboard: momentary pedal (no toggle) 2019-11-03 17:50:25 +01:00
Robin Gareus db08810164
Virtual-keyboard: "Tab" to sustain (still undocumented) 2019-11-02 23:56:40 +01:00
Robin Gareus 36ea069722
Fix use of std::map<> in const methods
Prefer iterators, instead of C++11 `at() const`.
This should also fix MSVC error C2663
2019-10-28 15:37:13 +01:00
Robin Gareus 474a3c5f69
Virtual-keyboard: allow octave switches while hand-pedaling 2019-10-27 13:54:47 +01:00
Robin Gareus b53431a089
Virtual-keyboard: consolidate options
Remove use options for annotations, force them "always on",
and request space to draw them.

Add option to pick single-line octave bindings
2019-10-27 00:06:14 +02:00
Robin Gareus 9fd0813d16
Add support for single-octave "asdfg.." key-bindings 2019-10-26 23:49:57 +02:00
Robin Gareus 12d4d6daa7
Virtual-keyboard: never-ending details
- Fix key-bindings (first propagate to piano, ignore global bindings)
- Allow to switch octaves with left/right arrow key
- Tweak font-sizes used for annotations
2019-10-25 21:24:25 +02:00
Robin Gareus c0c1fd8b60
Rename PianoKeyboard class, avoid ambiguities
A C++ class "PianoKeyboard" in the global namespace may cause
issues with some plugins that export and use an identically
named symbol.
2019-10-25 21:24:25 +02:00