It seems to me with my admittedly limited research into Rotary and MIDI Libraries that this is possible without the use of Bome MIDI Translator-am I correct?
I do like MIDI Translator but I just have not found a way to use it beyond this function, and I just can't justify paying $60 for just one function, so I'm hoping there is a way to do this with various libraries completely in the Arduino environment.
I have seen all those posts before (thanks). Although they all, in their own way, reference Rotary Encoder and MIDI Libraries, I have yet to find a way to translate either to actually getting an encoder to translate its movement to keystrokes.
The way that it’s done in Bome is essentially that, although the encoder has only one CC attached to it, you get two different actions from it, depending upon whether or not the encoder has been turned higher than 65 or lower than 63. And then, I guess there’s a timer which uses the script to determine by how much the encoder has been turned, and so then assigns that motion (either higher than 65 (which would be to move/count incrementally upwards) or lower than 63 (i.e.: an incremental move/count downwards). And then, within Bome, you can essentially say: “ok-this CC, coupled with upward motion from the encoder=Keystroke A; this CC, coupled with downward encoder motion=Keystroke B.
As should be apparent, I only have a vague understanding of how this type of scripting works, but I’m nonetheless hoping that there is some type of allocation for this type of behavior within Libraries already existing for Encoders and MIDI.
...what could possibly be the problem with reading the encoder and using whatever you read to send MIDI messages informed by those readings?
You might as well say you want to send notes based on the temperature or whether someone is walking in front of a PIR sensor. The two tasks have nothing to do one with the other, rather it is how you use stat from one to make the other go.
Start with example programs for either. There is probably no need to buy any software.
Good question: what I mean by Keystroke is an actual keystroke from a computer keyboard, NOT the pressing of a key on a MIDI Keyboard (and therefore, no: I don’t mean “Note On/Note Off”)
I have pretty clear instructions of how to get an Encoder to be read by an Arduino, and I have pretty clear instructions on introducing MIDI into an Arduino. But after that, in essence, I want the device I’m building to be able to send a MIDI CC message, and to have that CC message be seen by a Music Program I use (Arturia Analog Lab), only to see it instead as a series of two keystrokes: either Left Arrow+Enter, or Right Arrow+Enter.
After that it would be a simple matter of using AutoHotKey for the translation into keystrokes: CC# XX = Left Arrow+Enter or Right Arrow+Enter.
That’s why I need the use of a Relative Encoder: you, of course, cannot assign more that one CC# to a Controller in MIDI, but with the proper programming of a Relative Encoder, you can get that controller, assigned to one CC#, nonetheless controlling two different functions, depending upon whether you twist the Encoder to the Right or to the Left.
Ah. I understand now. You would use an Arduino Leonardo or Micro and the Keyboard library to send keyboard keys. I expect you can simultaneously use the "MIDIUSB by Gary Grewal"or "USB-MIDI by lathoub" libraries to send MIDI events.
It would be MUCH harder to do with an UNO because the UNO processor doesn't speak USB directly. It won't run the Keyboard library. I don't know of any third-party library that can do "software USB" for both a keyboard and a MIDI device.