Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools Display Modes
Old 05-22-2020, 01:08 AM   #1
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default Can't use the space key in text input fields

I can't use the space key in text input fields in a lot of my synths(Synthmaster or Synthmaster One). I tried all combinations of normal/global/global+text action settings but this has no effect. The setting:"Allow space key to be used for navigation in various window" has also no effect. It's very annoying and happens only in Reaper. My other DAWs work fine. Please fix soon.
Eisenspalter is offline   Reply With Quote
Old 05-22-2020, 04:36 AM   #2
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Use Shift+Space instead.
EvilDragon is online now   Reply With Quote
Old 05-22-2020, 07:05 AM   #3
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

This is no solution. The spacebar is the right key. That has to be programmed smarter. It doesn't work in Serum either.
Eisenspalter is offline   Reply With Quote
Old 05-22-2020, 07:10 AM   #4
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

This is Reaper's way. Start/stop of transport takes precedence over anything.

Haven't yet found a plugin in which Shift+Space didn't work.
EvilDragon is online now   Reply With Quote
Old 05-22-2020, 07:12 AM   #5
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

Once again. This a software issue and should be fixed
Eisenspalter is offline   Reply With Quote
Old 05-22-2020, 07:14 AM   #6
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

it is 1000 times more comfortable to use the spacebar.
Eisenspalter is offline   Reply With Quote
Old 05-22-2020, 07:20 AM   #7
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

I like to help. It was 8 years ago when I last programmed for desktop operating systems (Window / MAC), but I also had to solve these problems. And I remember that I solved it that way.
https://stackoverflow.com/questions/...s-a-text-input
Eisenspalter is offline   Reply With Quote
Old 05-22-2020, 07:20 AM   #8
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Quote:
Originally Posted by Eisenspalter View Post
Once again. This a software issue and should be fixed
Not if devs decided that it's a feature
EvilDragon is online now   Reply With Quote
Old 05-22-2020, 07:46 AM   #9
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

As a software developer, you only have to consider 2 criteria to decide whether it makes sense to change the program.

1. Does the user need fewer steps to achieve his goal?
2. Does it make the program faster?

If you don't follow that, you'd better play Tetris and let others do the programming.🤣😂🤣😂🤣
Eisenspalter is offline   Reply With Quote
Old 05-23-2020, 06:55 AM   #10
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

You can enable “send all keyboard input to plug-in” for that plug-in and that will likely change the behavior to your liking...
Justin is offline   Reply With Quote
Old 05-23-2020, 07:37 AM   #11
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 3,978
Default

Quote:
Originally Posted by Eisenspalter View Post
As a software developer, ...<snip>

If you don't follow that, you'd better play Tetris and let others do the programming.
Well Eisenspalter, and now you got the response directly from that "Tetris player"
Isn't it nice?
akademie is offline   Reply With Quote
Old 05-24-2020, 08:21 AM   #12
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

Quote:
Originally Posted by Justin View Post
You can enable “send all keyboard input to plug-in” for that plug-in and that will likely change the behavior to your liking...
I'm not happy with this. I have to set this setting again for every instance. Basically, this setting only makes sense if I am on an input field. Otherwise I want to use the spacebar for Stop / Play. Wouldn't it make sense to solve such an elementary function properly?
Eisenspalter is offline   Reply With Quote
Old 05-24-2020, 10:20 AM   #13
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Not sure if there's any way Reaper can really know that the focus is on a text input field created by the plugin.
EvilDragon is online now   Reply With Quote
Old 05-24-2020, 10:27 AM   #14
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

I'd also think the linked stackoverflow solution may only work for standard Windows text boxes but not if plugins create their own (non standard Windows) text input fileds.
nofish is offline   Reply With Quote
Old 05-24-2020, 08:10 PM   #15
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

@EvilDragon
There is an way. I only have Reason for testing on my "home" notebook (Windows). And both Synthmaster and Serum behave as I expected. STOP / PLAY (spacebar) only works if the input field does not have the focus. Otherwise I can enter spaces.

@nofish
No matter what operating system or GUI you use. There is always an equivalent to it.
I just wanted to give food for thought with a stackoverflow link. As I said 10 years ago, when I was still programming on desktop systems, I already solved the exact same problem. There will certainly be VSTs where that doesn't work, but then they will be poorly programmed and will not follow operating system guidelines.
Eisenspalter is offline   Reply With Quote
Old 05-24-2020, 11:49 PM   #16
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Reason hosts plugins in a separate process, not in the DAW process, which is why that is working. You can do this in Reaper as well, right click the plugin in FX browser and Run as separate or dedicated process.

However this completely steals keypresses from Reaper when the plugin window is focused, IIRC.
EvilDragon is online now   Reply With Quote
Old 05-25-2020, 12:51 AM   #17
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

separate process or not it doesn't matter. You can hook keyboard events cross applications system wide.
Eisenspalter is offline   Reply With Quote
Old 05-25-2020, 02:29 AM   #18
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

I guess so, but it still wouldn't be an universal solution - again as mentioned if the plugin uses non-OS standard text input boxes (a lot of them do, i.e. JUCE-based plugins), that would not work.
EvilDragon is online now   Reply With Quote
Old 05-25-2020, 04:44 AM   #19
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

Quote:
Originally Posted by EvilDragon View Post
I guess so, but it still wouldn't be an universal solution - again as mentioned if the plugin uses non-OS standard text input boxes (a lot of them do, i.e. JUCE-based plugins), that would not work.
Basically JUCE works fine. I'm currently working on a midi plugin for classical music. Only for my purposes, not as a business.

As a punishment for your false and unaudited claims() I'm telling you a joke
-----------------
What do rock music fans say, at their own party, when they run out of alcohol? - Turn off the shitty music. 🤣😂🤣😂🤣😂
----------------

I don't want anything extraordinary here, just the opposite. I want the standard, an expected behavior.
Question: What happens if you put your focus on an input field on your Surface Tablet? The on-screen keyboard opens and you can also enter spaces. And that's exactly how every app has to behave, including Reaper, otherwise it's just wrong.
Eisenspalter is offline   Reply With Quote
Old 05-25-2020, 07:06 AM   #20
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

You're right, JUCE plugins are working fine, but VSTGUI based ones are not (i.e. Surge, Largo...)
EvilDragon is online now   Reply With Quote
Old 05-25-2020, 08:09 AM   #21
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

I don't know any of them. Steinbergs Halion (VSTGUI based) works fine. It has nothing to do with the chosen GUI, only with the implementation. And if it doesn't work, the implementation is faulty.
Eisenspalter is offline   Reply With Quote
Old 05-25-2020, 02:13 PM   #22
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Well for Surge itself you can check the source code, it's on Github, it uses straight VSTGUI widget for text input, and space is not working there. So Halion might be doing something non-standard even if they're using their own UI toolkit. How typically Steinberg.


EDIT: Actually no. I do have Halion 6 here, typing in the multi program text field (top left below Halion 6 logo), space is not working at all. It does work in their browser but that is a separate modeless dialog that seems to do something else. So, it's inconsistently done across the board.

EDIT #2: Found a bunch of other places where space is not working for text input in Halion 6, like any place where you can type in a value or rename things (like layer names in the mixer, pan value in the mixer, velocity/note values in mapping editor...), space purely doesn't work. So it seems like the patch browser filter field is the only place where space seems to work, so far.

Last edited by EvilDragon; 05-25-2020 at 02:24 PM.
EvilDragon is online now   Reply With Quote
Old 05-25-2020, 11:15 PM   #23
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

Quote:
Originally Posted by EvilDragon View Post
Well for Surge itself you can check the source code, it's on Github, it uses straight VSTGUI widget for text input
I remember it. It was smaller than a postage stamp on my screen. And so ugly. Jesus was is so ugly. That's crime against VST plugins. But was there a input field for the preset search?! Maybe it is functionally great, but so ugly. Whoever uses that also drowns puppies.A bad example of open source for me.

As I said, Halion6 works great. I used it a lot. And why should I enter a space in a pan input field? That is deliberately suppressed. It's called text validation.
This leads to nothing. We are spinning in a circle. Everything is said. Was my last comment on this.
Eisenspalter is offline   Reply With Quote
Old 05-26-2020, 12:18 AM   #24
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Wow you can be a moron, and also totally not up to date on the facts. It now has a fully scalable vector-based UI with arbitrary zoom levels. It's been developed for 2 years since it's been open sourced. It also has skin engine in developent, along with a dark skin.

https://i.imgur.com/DVg19Ht.png


It's absolutely one of the better examples of open source, considering everything that was added and fixed in the past 2 years.

Last edited by EvilDragon; 05-26-2020 at 12:25 AM.
EvilDragon is online now   Reply With Quote
Old 05-26-2020, 12:21 AM   #25
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Quote:
Originally Posted by Eisenspalter View Post
As I said, Halion6 works great. I used it a lot. And why should I enter a space in a pan input field? That is deliberately suppressed. It's called text validation.
It's not deliberately suppressed, it's not text validation, because shift+space works in all those fields! It's a VSTGUI issue (since apparently JUCE works just fine with spacebar in Reaper, so it's possible to do it right on the UI framework side of things).

You also cannot use space when naming layers in Halion (which is something that you cannot say you would never use), but shift+space works. So, better get your facts straight.
EvilDragon is online now   Reply With Quote
Old 05-26-2020, 01:55 AM   #26
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

Quote:
Originally Posted by EvilDragon View Post
It's not deliberately suppressed, it's not text validation, because shift+space works in all those fields
shift+space are you kidding me. You still testing in Reaper and not in another DAW. Dude, I'm speechless....
Eisenspalter is offline   Reply With Quote
Old 06-17-2020, 08:57 AM   #27
baconpaul
Human being with feelings
 
Join Date: Sep 2019
Posts: 24
Default

Quote:
Originally Posted by Justin View Post
You can enable “send all keyboard input to plug-in” for that plug-in and that will likely change the behavior to your liking...
Justin - yeah this (or shift space) is what we've been pointing windows surge users towards. Thank you.

A thought: Is there some way in the VST3 API that we can tell Reaper our synth wants this on by default to avoid the toggling? Either something I can message to your HostContext or some question you ask of the VST3 I can respond to in reaper or some other approach? I'd be happy to add that so surge defaulted into this mode.

(I've also figured out why JUCE works and VSTGUI doesn't. Short version is JUCE doesn't use windows controls and messes around with the content of the message queue using ::PeekMessage and a rewrite. But that's a separate issue).

Thanks!
baconpaul is offline   Reply With Quote
Old 06-17-2020, 10:06 AM   #28
Eisenspalter
Human being with feelings
 
Join Date: May 2017
Posts: 125
Default

Quote:
Originally Posted by baconpaul View Post
(I've also figured out why JUCE works and VSTGUI doesn't. Short version is JUCE doesn't use windows controls and messes around with the content of the message queue using ::PeekMessage and a rewrite. But that's a separate issue).
Thanks!
That's wrong. Basically, VSTGUI works as expected. This can be easily checked. Take a Surface tablet without an external keyboard. Go to an input field of your plugin and wait if the on-screen keyboard pops up. If not something has been incorrectly implemented. It's a bug.
Eisenspalter is offline   Reply With Quote
Old 06-17-2020, 10:19 AM   #29
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

It's not being incorrectly implemented, it's being implemented in a different way in JUCE. Which works fine in Reaper and all other hosts. It doesn't care about the touch keyboard for now, but that's not to say that they couldn't do something about it in an update. It's not like Surface users without a keyboard are the primary userbase for DAW production and so on.

However, I suppose Justin could give us an option to just have Send all keyboard input to plugin (when plugin window focused) enabled all the time, instead of requiring us to set this option for each and every plugin we have an issue with.

I also do wonder, why is Reaper so eager to steal the spacebar from the plugin? What if Space is NOT assigned to transport play?

(EDIT: When a different key is assigned to transport play, say Enter, then using Space in plugins works just fine! But curiously - Enter then also works in plugin typein fields! So looks like there's some hard-coded relationship between space and Reaper stealing it at all times...)
EvilDragon is online now   Reply With Quote
Old 06-17-2020, 10:26 AM   #30
karbomusic
Human being with feelings
 
karbomusic's Avatar
 
Join Date: May 2009
Posts: 29,260
Default

Quote:
Originally Posted by EvilDragon View Post
It's not like Surface users without a keyboard are the primary userbase for DAW production and so on.
Probably not. When I use my surface w/Reaper I always have the keyboard - that said, it should trigger the on-screen keyboard for consistency in general.... if that is what we're talking about notwithstanding all the posts above I didn't read.
__________________
Music is what feelings sound like.
karbomusic is offline   Reply With Quote
Old 06-17-2020, 10:34 AM   #31
baconpaul
Human being with feelings
 
Join Date: Sep 2019
Posts: 24
Default

Quote:
Originally Posted by Eisenspalter View Post
That's wrong.
Oooh good to know. Curious which part was wrong? I had both the vstgui and JUCE code open on my screen when I wrote that statement, staring at the event loop where they did what I said, but wondering what you saw that makes you think otherwise? If you have particular file and line numbers it would be super helpful!

Thanks
baconpaul is offline   Reply With Quote
Old 06-17-2020, 11:12 AM   #32
baconpaul
Human being with feelings
 
Join Date: Sep 2019
Posts: 24
Default

Quote:
Originally Posted by EvilDragon View Post
(EDIT: When a different key is assigned to transport play, say Enter, then using Space in plugins works just fine! But curiously - Enter then also works in plugin typein fields! So looks like there's some hard-coded relationship between space and Reaper stealing it at all times...)
yeah something about space indeed. I rebound to T and could get the value. And what's happening is something is eating the WM_KEYDOWN when you press space and are focused on a text control. Presumably there is code inside Reaper somewhere which does something when it reparents the plugin window that looks roughly like 'reset window proc; and give it events I don't consume". I'm not sure why the Reaper proc beats the vstgui proc to the event but I don't have the reaper code so hard to say.

Anyway when ran in a debugger VSTGUI doesn't even get the WM_KEYDOWN or WM_CHAR event for space.

This also potentially explains why JUCE works since it is not a win control, it's a hand coded, control, and it does an explicit Peek and remove. My theory is that whatever eats the event before me in Reaper gets its event eaten by JUCE by that Peek before the REAPER event loop.

Anyway maybe it would be nice if reaper didn't do this but they have an option to not, just it isn't sticky or togglable. So perhaps it would be nice if I could advertise to reaper to put itself in that mode, either permanently or transiently from within my vst3? (in the surge case for instance i could trigger it when i show the store dialog)

But right now nothing I can do to change surge so it would work normally.
baconpaul is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:21 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.