Another remote question for the experts :D

Want to talk about music hardware or software that doesn't include Reason?
Post Reply
stp2015
Posts: 323
Joined: 02 Feb 2016

22 Jun 2017

Once again, I am working on a remote codec and I am stuck.

On their impact 49+, Nektar have the pads set up such that
-they light up when you hit them or you hit kong on the screen (via the hit indication remotable)
-when you hit a pad, in addition to playing the sound, it also switches the group such that the knobs will edit that specific slot (e.g. hit pad 1 and you will 1) hear the sound 2) can edit the same sound using the hardware knobs

In the mapping/codec they seem to do this by relying on each pad being recognized as MORE THAN ONE control surface item. For example, when you hit one pad, it gets recognized both as "Drum" and "Keyboard" and thus can be mapped to two things (Group Switch and Midi Note for Kong)

Now the question: How can I achieve the same with other pad controllers? I need to trigger both a group switch and a midi note with the same pad.

I want to do it for the akai mpd 218. Would be absolutely perfect with Kong. 6 encoders for the 6 parameters of each drum!

Thanks once again :) :puf_smile: :puf_smile: :puf_smile: :puf_smile: :puf_smile: :puf_smile: :puf_bigsmile: :puf_bigsmile: :puf_bigsmile: :puf_bigsmile:

User avatar
JacobiusWrex
Posts: 76
Joined: 09 Jun 2016

22 Jun 2017

Tricky one, within the remote protocol, I can't help you, But there is a trick I use with "Bome midi translator" to achieve the same result.

it's as simple as splitting the midi signal of your akai pads (before they go into reason) in Bome, and sending them to two different virtual midi ports. (Lot easier than it sounds) then you create two different control surfaces in reason and map each button to whatever parameter you need to control.




Sent from my LGLS990 using Tapatalk


User avatar
artotaku
Posts: 652
Joined: 09 May 2015
Location: Munich, Germany
Contact:

23 Jun 2017

The solution is as you described in your OP. You need to set two remotable items when you intercept the incoming MIDI messages from your controller in remote_process_midi() function when you hit a pad.
One is the "keyboard" (for note input) and another for switching a group in the remotemap.

As a sidenote: This is actually a big advantage when implementing a remote codec: you can map a control on your controller to multiple items. A thing you cannot do with just remote overrides.

stp2015
Posts: 323
Joined: 02 Feb 2016

24 Jun 2017

Thanks!

I had thought about using a translation tool like Bome, but in the end, I would like to do it inside the codec.

I think I figured out the idea of the remote_process_midi approach...

Something like this (very pseudo code) should work I guess?

function remote_process_midi(event)
local match = {}
match=remote.match_midi(my mask,event)
if match~=nil then
local msg={second message definition}
remote.handle_input(msg)
return false
end


If I understand correctly, this should pass through the original event to auto input list (because of return false) and then also generate the "msg" message.

What remains unclear is how to send the hit indication back to the MPD218 from KONG in the form of note on messages.

User avatar
artotaku
Posts: 652
Joined: 09 May 2015
Location: Munich, Germany
Contact:

25 Jun 2017

Basically yes, if one of the two remote items (e. g. the keyboard remote item) is also defined as auto input. Otherwise you would just call handle_input() for both remote items.
Auto input does only work for a 1 to 1 relationship between MIDI input and remote items (first wins). If more than one remote items should be updated the function remote_process_midi() comes into play.

For the other way round I´m not right sure if there is a remote item for that. Looking at all available items for the Kong device these look suspicious:
Pad 1 Hit Indication 0 1 - ValueOutput
...
for all pads.
Maybe these indicate if a pad is hit.

If one of these remote items changes Reason calls the function remote_set_state() to update the codec. There, you can catch it by its index number, set a flag and ask the flag in remote_deliver_midi() function to so send appropriate MIDI messages to your controller.

Now you have a full roundtrip and most of Remote callback functions in action :-)

stp2015
Posts: 323
Joined: 02 Feb 2016

25 Jun 2017

You are spot on, the correct remotable is the "hit indication". This is what Nectar and Korg use in their mappings.

Do you think it would be possible to send it to the keyboard item using the auto outputs? The MPD pads react to note on messages, but I don't know how to define the midi mask in the auto output section for sending note on.

User avatar
artotaku
Posts: 652
Joined: 09 May 2015
Location: Munich, Germany
Contact:

26 Jun 2017

stp2015 wrote:
25 Jun 2017
You are spot on, the correct remotable is the "hit indication". This is what Nectar and Korg use in their mappings.

Do you think it would be possible to send it to the keyboard item using the auto outputs? The MPD pads react to note on messages, but I don't know how to define the midi mask in the auto output section for sending note on.
I don´t think that the remote item that is mapped to keyboard input can also be used as an output item, it could even throw an error when doing so (never tried that). The keyboard remotable item is defined with no output and is always mapped in the "Master Keyboard" scope.

The remote item that is mapped to a Pad Hit Indication is created as an "output" item. So you can definitely use it in the auto outputs definitions and send any MIDI note messages to the controller.

So what works is to have two separate items, one for the keyboard input and one for the Pad indication output.

stp2015
Posts: 323
Joined: 02 Feb 2016

05 Jul 2017

Thanks Artotaku, today I finally got it to work. The MPD 218 is now my perfect little Kong Controller :cool: :cool:

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 7 guests