Commit Graph

43 Commits

Author SHA1 Message Date
Olivier Humbert
704048940e Fix typographical errors 2020-09-15 20:32:52 +02:00
Robin Gareus
fcfaa0ac49 Fix a potential endless recursion from c2b25b453e
ArdourDropdown::set_active() -> StateChanged -> .. -> set_active()
2020-04-22 16:20:54 +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
Robin Gareus
d4d57c844f Styleguide #12 avoid get_ for accessors 2020-04-07 18:30:34 +02:00
Nil Geisweiller
104d37e5a2 Move keyboard layout in its own class 2020-04-07 18:26:45 +02:00
Nil Geisweiller
4001ed7515 Initialize keyboard layout based on user preference
Otherwise the Simple QWERTY layout is loaded in the Virtual MIDI Keyboard
regardless of what is set in

Preferences->MIDI->Virtual Keyboard->Virtual Keyboard Layout
2020-03-28 20:36:39 +02: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
24b46d1f75 Vkeybd: improve velocity dropdown usability
Limit velocity dropdown to a subset of most used values, but
allow to select any value using mouse-wheel
2019-12-25 13:15:32 +01:00
Robin Gareus
bc776eac97 Vkeybd: use ArdourWidgets for all GUI elements
Remove Gtk widgets and improve look&feel consistency.
2019-12-24 18:15:09 +01:00
Robin Gareus
ecdbd1df92 Vkeybd: numeric only spinboxes for octave and velocity
based on a patch by Alex Mitchell
2019-12-19 23:02:19 +01:00
Robin Gareus
d0668721d5 Vkeybd simplification
* remove Y-axis dependent velocity (difference between
  black/white keys made this not very usable
* remove Bank/Patch selector (there are already three other
  Bank/Patch UIs
* move keyboard-layout selection into Preferences > MIDI
2019-12-19 18:57:40 +01:00
Robin Gareus
01291f3e0f Vkeybd: re-layout, prepare config & patch pane removal 2019-12-19 18:45:49 +01:00
Robin Gareus
89ca6e151a Vkeybd: add a mod-wheel 2019-12-19 18:45:49 +01:00
Robin Gareus
9c6d9324bd VKeybd: exponential pitch-wheel/bend interpolation 2019-12-17 16:47:46 +01:00
Robin Gareus
9ddc4fcce9 Vkeybd: fix octave up/down direction, speed up pitch-bend 2019-12-16 15:42:42 +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
2add730263 Vkeybd: Experiment with key-repeat for pitch-bend 2019-12-16 02:30:42 +01:00
Robin Gareus
e1c0f99ef2 VKeybd: add Up/Down as alternative Pitch-bend shortcuts 2019-12-15 17:30:25 +01:00
Robin Gareus
f969d4fc31 Vkeybd: Add tooltip to pitchbend control 2019-12-15 14:06:00 +01:00
Robin Gareus
a31fde491a VKeybd: Pitchebend sprung mode and keyboard-shortcuts
This unconditionally returns the pitch-bend wheel when used
by mouse-drag/drop.  Mouse-wheel retains the "wheel" mode.

<F1>-<F4> key-bindings have been added to jump to discrete values
2019-12-15 14:06:00 +01:00
Robin Gareus
cc9f941488 VKeybd: shrink height when hiding config pane 2019-12-13 16:04:34 +01:00
Robin Gareus
5324587a80 Vkeybd: default to single-row QWERTY binding 2019-12-12 23:59:38 +01:00
Robin Gareus
db08810164 Virtual-keyboard: "Tab" to sustain (still undocumented) 2019-11-02 23:56:40 +01:00
Robin Gareus
b68a7fdf96 Make virtual-keyboard messages translatable -- #7834 2019-11-02 02:44:27 +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
35788fbaaa Virtual-keyboard: prefer dropdown for channel & transpose
This addresses issue with text-entry and input focus
2019-10-25 23:53:23 +02:00
Robin Gareus
7bb67d0402 Virtual-keyboard: fix text-entry in config widgets 2019-10-25 21:54:16 +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
Robin Gareus
7672b1cb43 NO-OP: whitespace 2019-10-25 21:24:25 +02:00
Robin Gareus
3f2f517291 Rough-in gtk-pianokeyboard C -> C++ 2019-10-24 19:59:22 +02:00
Robin Gareus
aaae93cae3 Return key-focus to piano-keyboard 2019-10-24 05:13:56 +02:00
Robin Gareus
f3e6f60242 Virtual-keyboard: add option to transpose 2019-10-21 19:31:25 +02:00
Robin Gareus
226cac95e7 NO-OP: whitespace 2019-10-21 16:08:28 +02:00
Robin Gareus
3daf16dc3a Virtual-keyboard: cont'd initial development:
* Reset default note range to 0..127 for step-entry and other users
* Allow to print label "C-<n>" on keyboard
* Fix 6 octave note range
* Save/load user settings in virtual-keyboard window
2019-10-21 16:07:12 +02:00
Robin Gareus
b523583bb4 Virtual-Keyboard significant overhaul:
* fix key-range off-by-one 0..127
* allow to shift octave
* allow to configure note range
* highlight grand-piano range and keyboard-shortcut range
* proper piano layout (black key offsets)
* add support for DVORAK keyboard layout

(still incomplete: settings are not yet saved/restored,
_piano_key_velocity should become a HSliderController, ...)
2019-10-21 05:42:05 +02:00
Robin Gareus
92173ca118 Virtual-Keyboard: Fix use of scrollwheel on dropdowns 2019-10-20 21:22:38 +02:00
Robin Gareus
20daca9290 Virtual-Keyboard: save/restore state 2019-10-20 20:53:40 +02:00
Robin Gareus
9c00d6216a Virtual-keyboard: add a pitch-bender 2019-10-20 18:29:23 +02:00
Robin Gareus
e63c2133e5 Virtual-keyboard: add CCs, bank/patch selector 2019-10-20 02:44:16 +02:00
Robin Gareus
19e4f47b4b Cont'd work on Virtual-keyboard
* allow gtk_pianokeyboard to respond to y-axis click position
  and include MIDI velocity with note-on signal
* add configuration settings to virual-keyboard
  min/max velocity, keyboard-layout
* add a CC7 controller knob
2019-10-18 22:56:46 +02:00
Robin Gareus
f0d2327af0 Use AsyncMIDIPort API 2019-10-18 22:56:46 +02:00
Robin Gareus
ebb89ba805 Super basic Virtual-Keyboard UI 2019-10-18 03:50:52 +02:00