What kind of MIDI/signals do your gazillion buttons send?

Is there another (for a lack of a better word) 'signal' an Open Stage Control button can send? I've been using simple CCs ever since, but I don't want them to interfere with modulation, vibrato, mics, etc. I have a fader tab for those. Jeff Laity uses "NRPNs". Sure, there are undefined CCs, but I mean come on. Really? CCs 100-127. More buttons. Moving to channel 2. MORE buttons. Moving to channel 3. And it takes so much time! I have a Finale touch controller on hold because of this! There's absolutely no way Jono not Bono's Cubase controller uses MIDI CC's. That many buttons! OSC users with big touchscreens! How do you do it!

Maybe ask @jono_not_bono ?

I don't know about Finale, but depending on what DAW you use, just have a dedicated MIDI Port/device.
I use all CC and Note messages for all 16 channels. Most daws let you choose which MIDI devices should funcion as MIDI input and which ones as control messages.
In Cubase, Reaper and Pro Tools it's possible. Let me know if you search on how.
Only using CCs you get 2048 controls. When using Notes, you are already at the double. If that's not enough, hit me up! :stuck_out_tongue_winking_eye:
Hope that helps.

That's EXACTLY what I'm doing -- when I get a DAW that lets me choose my desired MIDI inputs. :frowning:
GarageBand has served me well but I could definitely use an upgrade. Hopefully soon. Can Logic do that? Let me choose the MIDI inputs?

Oh shit... but then I can't use my OSC faders. Oh well. At least I have hardware faders.

Hi @fscarlett4i4 ,
Sorry for the delay, but I was in contact with a colleague who uses Logic. He showed me the settings menu and it seems like it should work.
I don't know much about Logic, but there's a "MIDI Input" tab in settings that let's you choose devices that are used by your tracks.
Then there's a "Control Surfaces". When you go there, you are prompted with a popup window. Inside here you can select and assign the DAW's control messages. Also it let's you choose which MIDI device is beeing used as input.

So in OSC create two midi devices:

  1. For midi cc, notes, faders, etc.
  2. For DAW control messages

Then select the first in Logic's "Control Surfaces" and make sure you disable the 2nd device in the "MIDI Input" in settings.

I really hope this helped. You got me in a "asking for a friend" kind of situation there ... :laughing:

1 Like

This shouldn't be a problem.

1 Like

That's possible?

Sure :slight_smile:
Have a look here.
Best

It's been a while. I hope I'm not too late. I now have Logic. I'm setting up a touch controller now but I don't understand the whole MIDI devices thing. I can't really understand what's in the link you sent. Should both devices be 0,0 (IAC Driver OSC) or should they be different? Where do I type in the 2 midi devices? In the MIDI field? FYI, this is what's in the midi field:

OSC:0,0 path=/usr/local/bin/python3

And this is the MIDI device list:

(INFO, MIDI) Inputs
    -1: Void (bypass)
    0: IAC Driver OSC
    1: Scarlett 4i4 USB
    2: nanoKONTROL2 SLIDER/KNOB
(INFO, MIDI) Outputs
    -1: Void (bypass)
    0: IAC Driver OSC
    1: Scarlett 4i4 USB
    2: nanoKONTROL2 CTRL

Hi @fscarlett4i4 ,
yes, OSC:0,0 should do the trick for now. It generates a midi target (port) for your server. Inside of your editor you can then assign this in the target property. This is also explained a in the Example configuration and the OSC properties for the widgets.
Have a look at this example:
Example
In your case you write midi:OSC instead. Or you give your devices/ports different names like I do.

You are on a Mac and therefor don't need the path variable. This was important for an earlier version of OSC and is now only used for reasons we don't need to cover :wink:

Then select "IAC Driver OSC" in Logic and you should be ready to go. Have fun! :slight_smile:

1 Like

Right, but how do I add multiple MIDI devices in the console? Since I want one for faders and one for buttons. Does OSC:0,0 OSC_faders:0,0 work? Semicolon maybe?

As for the path variable, I'm guessing it has something to do with Python. And when I got OSC, I got a bunch of stuff along with it to make sure it worked correctly, like Python, Xcode, etc. Do I still need these? I'm on v1.17.

On Mac I strongly recommend using virtual ports directly from open stage control by writing "name:virtual" instead of "name:0,0" in the midi config, it's much easier to work with.

The midi config should not contain any path variable, you've probably followed an outdated tutorial if that's the case.

1 Like

Keep in mind that a space character seperates the commands. so in your case don't just write IAC driver xy but use quotation marks like this: "IAC driver xy".
Here's an example:
"MAP_1:IAC-Virtual MAP_1_toOSC,IAC-Virtual MAP_1_fromOSC" "MIDI_1:IAC-Virtual MIDI_1,IAC-Virtual MIDI_1"
Python & Xcode is not needed. You can deinstall Xcode. Python is already installed on your mac and should stay there :wink: Depending on your OS version, you might want to run python3 instead of 2, but it does not matter here.
Best

Like this?

"OSC_Buttons:Virtual" "OSC_Faders:Virtual"

Open stage control doesn't use whatever version of python is installed on the system, it's bundled with a tiny self contained python binary.

@fscarlett4i4 virtual is lower case. If you write osc_buttons:virtual in the server's midi config, it will create a virtual midi device (that other software should be able to connect to). Widgets will need to have their target set to midi:osc_buttons to send/receive from/to this virtual device.

1 Like

Oh that makes sense. Great! :smiley:

Sorry, I have question unrelated to this topic, but the discussion ...
So the path variable can be set to tell OSC where to find python in case it doesn't (as specified in documentation). But would OSC prefer the system python over the self contained modules if you set the path? As far as I understand the code, it would not override, if the midiBinary is exists.
It only overrides when "path=" is included in the midi settings, AND another condition connected to "pythonPathOverride" and the midiBinaries. But I can't wrap my head around if that's really what it's saying.

Finally trying this out. Got 2 MIDI devices now, thanks guys. But unfortunately with the osc_buttons:virtual device disabled in MIDI input (which is what I want so the buttons don't mess with CC data), Control Surfaces is not picking it up.

When on a mac you don't necessarily need the whole virtual settings.
You can just go to "Audio-MIDI-Setup", then "MIDI-Studio". Doubleclick on "IAC-Virtual" like here:
IAC-Virtual
Enable it, so it turns green like in the picture. Yours is probably enabled and you've been here already :wink:
Then go to "Ports" and add as many MIDI devices to the list as you wish like you can see here:
Ports

Press "Apply" and refresh the MIDI device list in OSC. All the ports you have created should now be visible for OSC. Then again use the names as they appear in the list in OSC to type in the Inputs and Outputs for the targets in midi-settings. Here's an example from above:

Inside Logic you'll NOT find "MAP_1", but "IAC-Virtual MAP_1_fromOSC". The name "MAP_1" is just being used by OSC, but outside it's still your IAC-Virtual.
Did this make things more clear? :slight_smile:

Yes, but still, since "IAC Driver OSC Buttons" is disabled in Logic's MIDI inputs, Logic basically acts like it doesn't exist. Therefore, I can't send MIDI messages directly from OSC to Logic (via key command assignments). What I can do is send MIDI messages to Logic indirectly, via Keyboard Maestro.