Is possible to send keyboard commands or keystrokes? I guess not, but simply wondering.
Simply sending a keyboard command, shortcut, keystroke etc to be received by the desktop running the ap server for example, from a ipad running the app in browser. I mean, pre programmed keyboard stroke as alt+ctrl+t in ons push button that would run the keystroke in the server desktop.
No it is not possible:
Hi Jean. I see quite a lot of people asking about this? I know it’s not what osc was designed for…but…what do you think? Would it be too time consuming to implement? One day? Never?
I’m afraid the answer is never, o-s-c is just an osc controller : the midi extension is the only exception to this and I’m not willing to make another one. This software is built with modularity in mind, not just at it’s own scale but at the system’s : having one software per job, that does it right, and the possibility to connect different softwares to serve any purpose.
Fair enough. Good answer. Appreciate it.
I can understand adding this directly could make the app lose his focus. After a quick search I have seen multiple solutions for this that could complement Open Stage. They are apps/scripts to translate OSC or midi messages to keyboard shortcuts in the host.
I will try some of these but if anyone can share how they work for them would be great as It seems logical many people are interested in using Open Stage to control both things at the same time, and a bridge could allow it. I guess some of the solutions will be better than others.
These apps use midi or OSC signals to convert them to keystrokes (not tested any of them ). Some of them multi platform:
Midi to keystroke
https://www.bome.com/products/miditranslator
This translate OSC to keystroke
Another one, this is the one with more internet references of people using it for that:
https://www.bome.com/products/mtclassic
Tutorial for using this app, borne, for midi to keystrokes:
Another one:
Other references:
https://www.muffwiggler.com/forum/viewtopic.php?t=117356
https://www.pgmusic.com/forums/ubbthreads.php?ubb=showflat&Number=430438
I believe there’s also an autohotkey script, but I haven’t tried it yet…
On mac there is osculator, but these are heavy duty apps for just that purpose.
So what would be a good solution for this, would be a simple program that translates OSC commands into keystrokes, using the parameters of the OSC command to determine which keystroke to send. Nothing like this exists now. Maybe at some point I will look into trying to create it, at least for OSX.
What we want to avoid having to do is needing to setup a separate MAP inside this other key sender program. It should be a blind translator that takes the OSC message that should be following some rules…and turns it into a keystroke, without any additional mapping required.
That way all the rules about which keystroke to send can still be driven from O-S-C by simply having it send the appropriate OSC message that has all the data needed to generate the keystroke.
This also could pose a security threat, however… so I don’t know…but for me at least that would be very much preferable because i want to put all the configuration for a “setup” in one place, not spread out on multiple tools.
I do see this is not entirely straightforward to do directly in O-S-C, perhaps because its using javascript?, not sure…but anyway, in the meantime I could use OSCulator, which I will look into, though I would prefer not to have to use OSCulator and especially I would prefer to not have to setup a specific key command map to load into OSCulator when I want to use it. I would prefer to be able to launch the program, have it sit in the menubar as an OSC server that just takes well defined OSC messages and converts them into key commands using rules.
I don’t think I can even do that with OSCulator because it doesn’t have deep enough capability to translate the incoming OSC message into the appropriate key command, its designed more to hard code a map where each incoming OSC message maps to a specific key command. Though maybe I could setup a really big OSCulator map that covers all possible key commands…hmm, that might work until I can figure something better.
Writing such a program should be pretty straightforward using existing libraries, for exemple:
- JS: node-key-sender - npm & https://www.npmjs.com/package/node-key-senderhttps://www.npmjs.com/package/osc
- Python: keyboard · PyPI & pyliblo - Python bindings for the liblo OSC library
The reason it's not in O-S-C is explained above (Keyboard commands or keystrokes - #4 by jean-emmanuel).
I’ll look into some of those at some point, thanks. JS or python would be better then C++ in order to be cross platform.
Key commands are really essential for many uses, such as driving Dorico and other notational programs. in the meantime I will probably try to do it with OSCulator, but just looking into how to map all that is already making me dizzy.
Here is a proof-of-concept that should get you started : https://github.com/jean-emmanuel/osc-keyboard
Would 100% love to see a keystroke send option.
Maybe this is something that be added as a payed for plugin ?
I stand by my previous statement. However I’m currently experimenting with the custom module’s ability to integrate node modules such as the one linked above. It’s likely to become possible as user extensions. I’m not doing paid plugins, only free & open source stuffs that come with no warranty :).
I’ve tried your osc-keyboard app, fairly simple, and very easy to use. However, I cannot create more than 2 keys combination (it just doesn’t send anything) It’s somehow a limitation on my system, no clue why.
2 posts were split to a new topic: [bug] Parsing Error
The module is merely a wrapper for node-key-sender, the culprit may be there.
Yeah, I’ve spent an hour or two on GitHub last week, seems it’s a known bug for years. It seems it’s not supported anymore so, I’m scrolling npmjs looking for an alternative to node key sender.
Just wanna pitch in quickly that I found an application that solves the problem at least for us users on windows (it seems anyway).
I requires the application to be on focus to receive the keystroke. This mean the OSC UI can not run in the same computer, as Open Stage needs to be on focus to work.