Jump to content

Understanding MIDI controller assignments - selecting a specific CC value


thirdspace

Recommended Posts

Hi all - I am attempting to assign a MIDI controller to control the Eventide OctaVox plugin, and am struggling with how to set up Logic to select a specific value from a parameter setting that has a range. OctaVox is a harmoniser and the parameter I am trying to control is 'Interval'. I can make it step through each interval in turn by assigning a switch on my MIDI foot pedal  that sends CC73 value 127. However I also want to assign another switch on the MIDI foot pedal to reset the interval to 'Unison' from whatever it is currently set to. Clicking the plugin interface to set the interval sends MIDI messages (only when the footpedal is attached - not sure why this is) and the value that is sent when selecting Unison is 64. I have tried setting the footpedal to send CC 73 value 64 but this does not set the plugin interval to Unison. Has anyone got any experience with anything similar and can shed light on how best to make this work?

Thanks in advance

Link to comment
Share on other sites

So in your assignment, you want to recognise the MIDI message of CC 73 with a value of 74, and in the value/format fields set to appropriate value Logic should set that parameter to on receipt of the message.

I don't have that plugin to check how it responds, so you might need to do some fiddling if it's not working.

Link to comment
Share on other sites

On 7/18/2022 at 4:29 PM, thirdspace said:

Clicking the plugin interface to set the interval sends MIDI messages (only when the footpedal is attached - not sure why this is) and the value that is sent when selecting Unison is 64.

Is that a MIDI CC value? What MIDI CC # is that? What if you send that exact MIDI CC # and value from a Logic fader in the environment? 

Link to comment
Share on other sites

Interestingly it can be any CC number - as long as a controller assignment has been created connecting that CC number to the parameter (in this case 'interval').

Connecting and pressing a Fader button in the environment to the audio channel with the plug-in inserted has no effect on the plug-in. (The Fader button is set up to send the correct CC number with value 127 just like the foot switch).

Clicking the plug-in parameter to change it's value shows a series of messages if a Monitor object os connected to the audio channel in the Environment. Clicking through each interval in turn reveals a set of messages (including some that been with F?) as shown in the screenshot attached:

Don't know if this sheds any light on anything - I'm sure confused by this!

 

Screenshot 2022-07-20 at 16.52.36.png

Edited by thirdspace
Link to comment
Share on other sites

On 7/18/2022 at 3:29 PM, thirdspace said:

However I also want to assign another switch on the MIDI foot pedal to reset the interval to 'Unison' from whatever it is currently set to.

Assuming you are sending a CC value between 0-127 (I'm using CC 84 on a slider in this example), set your assignment like this:

1424216318_Screenshot2022-07-20at18_09_17.thumb.png.1dc8642fc5fa11ea895a18874bed08e0.png

This means, whatever CC value that comes in, it will just reset that parameter to the middle value, which in this case, is Unison.

(This is for the "Interval1" parameter).

This works fine here on the demo version I just installed - whatever the current value of Interval1 is, I can move the MIDI control (in my example) and it's instantly set to "Unison".

You actually don't even need to Lo7 value here, because I don't even care about the CC value, just on receipt of CC 84 with any value, it will set that parameter to the middle of it's range - but obviously your implementation needs may vary. All this assignment is doing is "if I receive a CC 84 at all, set the Interval1 parameter, scaled according to the plugin value, to the middle position."

 

Edited by des99
Link to comment
Share on other sites

Thanks - that makes sense but doesn't work with my setup (I'm using CC 73). When I send a CC 73 any value but with your settings nothing happens in Octavox. With a bit of messing around I can get it to select Unison by sending CC 73 value 1 from the MIDI foot-switch with the following settings:

 image.thumb.png.196e7ad8c057ee64e6ec1774a4e560fd.png

So that 'works' but I'm a bit confused why your settings do not for me. And then if I want to have one switch doing the Unison thing, and another stepping the interval through its values I would need a second CC assigned to the same parameter? It looks like you can do this in Controller assignments but unfortunately it doesn't function.

Edited by thirdspace
Link to comment
Share on other sites

2 hours ago, thirdspace said:

So that 'works' but I'm a bit confused why your settings do not for me.

No idea, all I can say is I downloaded the demo of the current version and implemented this and it works fine. But if you have found a solution that works for you, that's fine too.

Your settings are doing a broadly similar thing, just responding to a CC value of 1, and converting that value to a 64 "middle" setting for the parameter by multiplying that 1 by 64. Either way, the parameter is set to the middle value, which is your goal.

2 hours ago, thirdspace said:

And then if I want to have one switch doing the Unison thing, and another stepping the interval through its values I would need a second CC assigned to the same parameter?

Correct.

2 hours ago, thirdspace said:

It looks like you can do this in Controller assignments but unfortunately it doesn't function.

There's no reason I can think of why this wouldn't work, perhaps you haven't set up one or more of the assignments correctly..?

Edited by des99
Link to comment
Share on other sites

Thanks for your reply!

29 minutes ago, des99 said:

No idea, all I can say is I downloaded the demo of the current version and implemented this and it works fine. But if you have found a solution that works for you, that's fine too.

Your settings are doing a broadly similar thing, just responding to a CC value of 1, and converting that value to a 64 "middle" setting for the parameter by multiplying that 1 by 64. Either way, the parameter is set to the middle value, which is your goal.

Agreed - but maybe you can see why this is frying my brain 🤯 - it should work but it doesn't...

30 minutes ago, des99 said:

There's no reason I can think of why this wouldn't work, perhaps you haven't set up one or more of the assignments correctly..?

Have you got this working? For me when I add the second assignment it auto adds the existing CC info to the new one in the Value change field like this:

 

B0 49 01 B0 4D Lo7

So I have been deleting the last three numbers to give this:

 

B0 49 01

But neither works. In fact when I add a second controller assignment the first one stops working, and doesn't start working again if delete the 2nd one, so I have to delete them both and start again to get a working one. Wonder if there's something odd about the messages being sent by the MIDI footpedal - although they look OK in MIDI monitoring software...

Got to admit - I'm stumped at this point 🙃

 

 

 

Link to comment
Share on other sites

26 minutes ago, thirdspace said:

Have you got this working?

I just rigged it up to get you the solution to your original problem.

I haven't rigged up a second control, but I can do so.

27 minutes ago, thirdspace said:

For me when I add the second assignment it auto adds the existing CC info to the new one in the Value change field like this:

B0 49 01 B0 4D Lo7

So I have been deleting the last three numbers to give this:

B0 49 01

But neither works

Do you understand what the learned messages mean?

What you are rigging up doesn't make sense, because you are making two assignments that respond to exactly the same midi message - they first assignment says:

"When I receive a CC #73 value 1 message, do this..."

and the second one says

"When I receive a CC #73 value 1 message, do something else..."

Which is the same exact incoming message...

29 minutes ago, thirdspace said:

Wonder if there's something odd about the messages being sent by the MIDI footpedal - although they look OK in MIDI monitoring software...

You don't have to "learn", you can just type the response string you need directly into the assignment. Learning is fine for many cases, but it's not always possible for Logic to determine what you are trying to do, and in these cases, you need to tell Logic explicitly what messages and ranges you want an assignment to react to.

Link to comment
Share on other sites

No worries - sorry it's sometimes difficult to know what someone has or hasn't done. :)

Can you post screenshots of both of the assignments, and also tell me which buttons are triggering which and what MIDI messages they are sending?

Edited by des99
Link to comment
Share on other sites

Thanks @des99 this all makes good sense. I have tried to replicate your setup, but so far success eludes me. In the gif that shows the environment - what is the Monitor object connected to? I’m assuming the channel object containing the Octavox plugin?

If this is the case I’m assuming the next step is to open the Controller Assignments window to connect the virtual controllers you have create in the environment to the plugin parameter ‘interval’. What happens for me at this age is:

Click Learn Mode

Click the interval parameter on the plugin window

Click the Fader>button object in the enviroment

At this point I would hope that the Fader>button object is recognised in the Value change field - but for me this doesn’t happen, which leads me to conclude that something is not connected correctly, or my process is wrong.

Any guidance with a step by step approach would be great so I can check my process.

Thanks in advance

Edited by thirdspace
Link to comment
Share on other sites

2 minutes ago, thirdspace said:

In the gif that shows the environment - what is the Monitor object connected to? I’m assuming the channel object containing the Octavox plugin?

I'm just using the environment objects to generate MIDI CC's to show you the setup, as I can't show my physical MIDI controller in the GIF. They are just sending MIDI CCs to the IAC bus and thus back into Logic, exactly as would be sent my a physical controller - my physical controller sends the same CC's and works exactly the same with those assignments.

4 minutes ago, thirdspace said:

If this is the case I’m assuming the next step is to open the Controller Assignments window to connect the virtual controllers you have create in the environment to the plugin parameter ‘interval’.

I'm not sure why you are involving the environment? I thought you wanted your physical controller to control this. You don't need to replicate a setup I just used to show you how I rigged it up and that it works. I'm just showing you what controls are sending what MIDI CC's, and what controller assignments are reacting them and what their settings are so you can see exactly what is goin on.

Learn a message to the Interval parameter, any message, it doesn't matter. Edit the message values to match what CC's your controller sends. Duplicate that message as many times as you need and edit the messages accordingly. Everything you need, including all the controller assignments are shown in the gif above.

I'm not sure what stumbling block you are having, but if you're getting confused, just do one thing at a time. Setup one assignment, parameters shown above, to match the "Reset" behaviour. Verify it works with your controller. Once that does, duplicate and edit it for the next behaviour you want.

If you can't get the one single assignment working, post back with exactly what MIDI message your controller is sending for this control, and the assignment you have created for it, and we'll go through it one assignment at a time.

 

Link to comment
Share on other sites

19 hours ago, des99 said:

They are just sending MIDI CCs to the IAC bus and thus back into Logic

Thanks - would you be able to show how you have this connected? I just thought you could connect the fader object(s) to the Sequencer Input but that doesn't work for me so I'm keen to see your setup. Reason for my interest (and sorry it's a little off topic) is so I can edit and test setups without having to have a hardware controller connected (like if I'm on a train for example)

With the hardware controller connected through trial and error I have some things working now - one area of confusion for me is that my hardware controller is a set of footswitches sending out a single value or alternating value each time they are pressed so not quiet the same as a continuous fader slider that sends out a range of values. Controller Assignments setup looks like this in case it's of interest:

 

 

Screenshot 2022-07-25 at 16.55.46.png

Link to comment
Share on other sites

Sure. Create an Instrument object in the environment, and set it's MIDI Output to "IAC Bus".

(If your IAC Bus is not active, turn it on in the Audio/MIDI Setup utility app.)

Cable your switch/fader/button objects to this instrument, so all MIDI arriving at that instrument object gets sent to the MIDI IAC Bus. Logic will see it as external incoming MIDI events.

(This object is off-screen in my above example, but it's what the monitor object is cabled to.)

Note: it won't work cabling it to the sequencer object as that's already past the point controller assignments intercept the incoming MIDI stream (that point is actually pre-Environment).

Edited by des99
Link to comment
Share on other sites

5 hours ago, thirdspace said:

my hardware controller is a set of footswitches sending out a single value or alternating value each time they are pressed so not quiet the same as a continuous fader slider that sends out a range of values.

I think that is addressed via the Mode: parameter (currently set as Relative in your screen capture).

Link to comment
Share on other sites

17 hours ago, des99 said:

Sure. Create an Instrument object in the environment, and set it's MIDI Output to "IAC Bus".

(If your IAC Bus is not active, turn it on in the Audio/MIDI Setup utility app.)

Cable your switch/fader/button objects to this instrument, so all MIDI arriving at that instrument object gets sent to the MIDI IAC Bus. Logic will see it as external incoming MIDI events.

(This object is off-screen in my above example, but it's what the monitor object is cabled to.)

Note: it won't work cabling it to the sequencer object as that's already past the point controller assignments intercept the incoming MIDI stream (that point is actually pre-Environment)

Very useful indeed - much appreciated! I have been scratching my head about this for a while - good to get  it working - thanks 🙏

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...