Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relative NRPN #385

Closed
MusicIsMedicine opened this issue Jun 12, 2021 · 6 comments
Closed

Relative NRPN #385

MusicIsMedicine opened this issue Jun 12, 2021 · 6 comments
Labels
enhancement New feature or request high priority

Comments

@MusicIsMedicine
Copy link

In regards to NRPN, I have a controller with endless knobs that sends CC96 for data increment and CC97 for data decrement.

The full message for increment is (CC99, CC98, [CC96], CC99, CC98), and for decrement it is (CC99, CC98, [CC97], CC99, CC98).

Would it be possible for you to add receiving of this type to ReaLearn?

Thank you,
James

@helgoboss helgoboss added the enhancement New feature or request label Jun 13, 2021
@helgoboss helgoboss changed the title NRPN Relative NRPN Jun 17, 2021
@vonglan
Copy link

vonglan commented Jul 5, 2021

I might also be interested in this. As a workaround for #203 , I could write a very small JSFX that maps absolute NRPNs to relative NRPNs. Then clone my OB6 controller preset so that it accepts relative NRPNs (with the same number), and chain the JSFX before ReaLearn. Although I am not sure whether this will work as expected for knobs that only send a small range (e.g. 0 to 6 for waveform selection).

@helgoboss
Copy link
Owner

@MusicIsMedicine @vonglan Can you tell:

a) What number is sent for CC96 or CC97?
b) Is the number higher the faster your turn the encoder?

@vonglan
Copy link

vonglan commented Sep 8, 2021

For a):
I can't tell, because I don't have a controller like that. For my use case, I would write a JSFX that creates these CCs (in whatever flavor is necessary, e.g. 0x2000 as 0, or 0x0000 as 0).

For b): Changes bigger than 1 should be possible for my use case

@MusicIsMedicine
Copy link
Author

Hi, sorry for the late reply.

The number sent for 96 or 97 is always 1.

Ok, so lets say I have my knob programmed to 109 for MSB and
48 for LSB.
For each movement it will send one of the following 4 part messages.

Clockwise:
cc99 = MSB [109]
cc98 = LSB [048]
cc96 = Increment [val always = 1]
cc99 = 127 [val always = 127]
cc98 =127 [val always 127]

Counter-Clockwise:
cc99 = MSB [109]
cc98 = LSB [048]
cc97 = Decrement [val always =1]
cc99 = 127 [val always = 127]
cc98 = 127 [val always = 127]

I would assume that I should enter 14000 in ReaLearns NRPN Number field which is what converts into the 109 and 048?

Hope that helps.

Thank You

@helgoboss
Copy link
Owner

Thanks for the info. I will see what I can do. Right now adding support for control-direction sys-ex, so this could be next on the list.

Yes, 14.000 = 109 (MSB) * 128 + 48 (LSB).

@helgoboss
Copy link
Owner

This will work in upcoming pre.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request high priority
Projects
None yet
Development

No branches or pull requests

3 participants