Jump to content

Unpacking NRPNs in Logic Environment


JamesBRey

Recommended Posts

HI Group.

I have a little conundrum I am trying to figure out in the Logic environment trying to unpack NRPN's to make control objects for a Novation A-Station.

From the Novation spec here is an example of how they have packed controller #71:

CC / NRPN 71 - OSC 1,2,3 OCTAVE / OSC 1>2 SYNC
 (see packed parameter 4): 

bits 0-1   2-bit osc1 octave -1,0,1,2

bits 2-3   2-bit osc2 octave -1,0,1,2

bits 4-5   2-bit osc3 octave -1,0,1,2

bit 6        osc1>2 sync 1=on

Is there a way to address these bits separately with an environment object without the data affecting the other bits when used.     I have tried a lot of different things using CC and SYSEX faders and while I can get the parameters to respond, I cannot figure a way without affecting the other bits / parameters.

Any ideas?     TIA!      - jr


Link to comment
Share on other sites

HI Group.

I have a little conundrum I am trying to figure out in the Logic environment trying to unpack NRPN's to make control objects for a Novation A-Station.

From the Novation spec here is an example of how they have packed controller #71:

CC / NRPN 71 - OSC 1,2,3 OCTAVE / OSC 1>2 SYNC
 (see packed parameter 4): 

bits 0-1   2-bit osc1 octave -1,0,1,2

bits 2-3   2-bit osc2 octave -1,0,1,2

bits 4-5   2-bit osc3 octave -1,0,1,2

bit 6        osc1>2 sync 1=on

Is there a way to address these bits separately with an environment object without the data affecting the other bits when used.     I have tried a lot of different things using CC and SYSEX faders and while I can get the parameters to respond, I cannot figure a way without affecting the other bits / parameters.

Any ideas?     TIA!      - jr


I tried looking at that but it doesn't appear that would be easy if not possible to do in The Environment.

But in Scripter you can do that because it supports Bitwise operations.

This shows a value of 62 coming in but I show the breakdown of your 4 bit ranges. I shift to the original 2 bit values as well.

Bitwise.thumb.png.d6f2d44b9c2311e8a2ddcec2ececd943.png

Link to comment
Share on other sites

V,

 

Thank you so much for the reply and clever response. I am trying to keep this to Logic environment only though since that is in my wheelhouse and I'm not a coder enough to wrap my head around all that ....

 

I had a thought though about how I might accomplish it there in the environment. If I embed the NRPN / CC command within a SYSEX message - I can gain control over an individual byte of the message that way.

 

Does anyone know if this is possible? I believe if I put the CC message after the SYSEX header, the control might work the same.

 

Any thoughts? TIA! - jr

Link to comment
Share on other sites

Hey V, thanks a ton for posting that - it is really interesting and complex how you figured all that out. It inspired me to try some ideas with the transformers and I was able to come up with a very sleek "binary calculator" that achieves the same thing and works well for this purpose - although I also had some guidance from Len Sasso's environment book from the 90's where he discusses it.

 

If you are interested, I can post a pic here for you to check out. It is essentially 7 inline transformers and a few more fader objects.

 

Thanks again! -jr

Link to comment
Share on other sites

Hey V, thanks a ton for posting that - it is really interesting and complex how you figured all that out. It inspired me to try some ideas with the transformers and I was able to come up with a very sleek "binary calculator" that achieves the same thing and works well for this purpose - although I also had some guidance from Len Sasso's environment book from the 90's where he discusses it.

 

If you are interested, I can post a pic here for you to check out. It is essentially 7 inline transformers and a few more fader objects.

 

Thanks again! -jr

Please do. :mrgreen:

Link to comment
Share on other sites

  • 1 year later...

@JamesBRey Just joined the forum to come looking for the exact same method of controlling NRPN directly in Logic's environment.

How difficult did you find this to setup in the end? Was it as simple as packing one of these (rather complex looking) set of components into a macro and modifying a more high level set of ranges or did each parameter require a bit more modifying than that?

Would love to see your solution if you ever got around to finishing it.

Link to comment
Share on other sites

I did mange it in the end - but not through the use of NRPN's.    I built a "binary calculator" in the environment which was able to address the various bytes in a string individually.    It was not simple and took a lot of figuring but it does work well in the end.    It does not involve macros - just transformers, fader objects and a lot of cabling.

Sorry I can't help with the NRPN's.

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...