Novation Launchpad Mini MK3 Codec / Map
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
Hi guys,
my old novation launchpad mini MK2 is working quite well with the stone age codec/map from https://tonalaxis.wordpress.com/2014/10 ... -and-maps/
now i got a MK3. i can't find no codec/map. any one of you got some?
or do i have to use novation components software?
i did edit reason codecs and maps before...but think it to be quite challenging...
my old novation launchpad mini MK2 is working quite well with the stone age codec/map from https://tonalaxis.wordpress.com/2014/10 ... -and-maps/
now i got a MK3. i can't find no codec/map. any one of you got some?
or do i have to use novation components software?
i did edit reason codecs and maps before...but think it to be quite challenging...
Have you searched for a programmers guide for the LP mini? I do have the LP X and this guide was verry helpful to script my own codec. Novation components is useful to install the latest firmware and I would recommend to do so.me-yourself-and-them wrote: ↑28 Jul 2022Hi guys,
my old novation launchpad mini MK2 is working quite well with the stone age codec/map from https://tonalaxis.wordpress.com/2014/10 ... -and-maps/
now i got a MK3. i can't find no codec/map. any one of you got some?
or do i have to use novation components software?
i did edit reason codecs and maps before...but think it to be quite challenging...
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
just realised: the launchpad mini MK2 IS able to remote midi:
play
stop
go to left marker
go to right marker
but how do you teach reason to IN BEAT go to block 1 2 etc?
play
stop
go to left marker
go to right marker
but how do you teach reason to IN BEAT go to block 1 2 etc?
There are several "Remotable Items" related to loops.me-yourself-and-them wrote: ↑31 Jul 2022just realised: the launchpad mini MK2 IS able to remote midi:
play
stop
go to left marker
go to right marker
but how do you teach reason to IN BEAT go to block 1 2 etc?
Code: Select all
Loop On/Off 0 1 Toggle ValueOutput
Left Loop 0 2147483646 Value ValueOutput
Left Loop Bar 0 0 Delta TextOutput
Left Loop Beat 0 0 Delta TextOutput
Left Loop 16th 0 0 Delta TextOutput
Left Loop Tick 0 0 Delta TextOutput
Left Loop Subticks 0 1 - ValueOutput
Clear Left Loop Subticks 0 1 Trig ValueOutput
Right Loop 0 2147483646 Value ValueOutput
Right Loop Bar 0 0 Delta TextOutput
Right Loop Beat 0 0 Delta TextOutput
Right Loop 16th 0 0 Delta TextOutput
Right Loop Tick 0 0 Delta TextOutput
Right Loop Subticks 0 1 - ValueOutput
Clear Right Loop Subticks 0 1 Trig ValueOutput
Move Loop Left 0 1 Trig ValueOutput
Move Loop Right 0 1 Trig ValueOutput
Move Loop One bar Left 0 1 Trig ValueOutput
Move Loop One bar Right 0 1 Trig ValueOutput
Song Position 0 2147483646 Value ValueOutput
Bar Position 0 0 Delta TextOutput
Bar Position Up 0 0 Trig TextOutput
Bar Position Down 0 0 Trig TextOutput
Beat Position 0 0 Delta TextOutput
Sixteenth Position 0 0 Delta TextOutput
Tick Position 0 0 Delta TextOutput
Subticks 0 1 - ValueOutput
Clear Subticks 0 1 Trig ValueOutput
Code: Select all
Goto Left Locator 0 0 Trig TextOutput
Goto Right Locator 0 0 Trig TextOutput
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
working on a new codec for Launchpad Mini MK3 now. tough work...
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
a few hours later. i can turn a pad light on on my LPminiMK3. i can turn it off.
midi code decimal 90 24 64 for on and 80 24 40 for off, checked in midiox.
i tried to modifiy the luacodec:
the relevant port should be the local outputs, not the inputs. right?
tried to change the first button:
{name = "Button 8-1", pattern = "90 24 64 ", x = "enabled*value*1+56"},
{name = "Button 8-2", pattern = "90 71 xx", x = "enabled*value*1+56"},
restarted reason. no change.
the inputs look fine i can play kong with it.
what am i doing wrong with the return midi?
luacodec:
g_bars_display_index = -1
g_current_bar = -1
g_delivered_bar = -1
function remote_init()
init_items()
init_inputs()
init_outputs()
end
function init_items()
local items = {
{name = "Keyboard", input = "keyboard"},
{name = "Button 1-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 1-2", input = "button", output="value"},
{name = "Button 1-3", input = "button", output="value"},
{name = "Button 1-4", input = "button", output="value"},
{name = "Button 1-5", input = "button", output="value"},
{name = "Button 1-6", input = "button", output="value"},
{name = "Button 1-7", input = "button", output="value"},
{name = "Button 1-8", input = "button", output="value"},
{name = "Button 2-1", input = "button", output="value"},
{name = "Button 2-2", input = "button", output="value"},
{name = "Button 2-3", input = "button", output="value"},
{name = "Button 2-4", input = "button", output="value"},
{name = "Button 2-5", input = "button", output="value"},
{name = "Button 2-6", input = "button", output="value"},
{name = "Button 2-7", input = "button", output="value"},
{name = "Button 2-8", input = "button", output="value"},
{name = "Button 3-1", input = "button", output="value"},
{name = "Button 3-2", input = "button", output="value"},
{name = "Button 3-3", input = "button", output="value"},
{name = "Button 3-4", input = "button", output="value"},
{name = "Button 3-5", input = "button", output="value"},
{name = "Button 3-6", input = "button", output="value"},
{name = "Button 3-7", input = "button", output="value"},
{name = "Button 3-8", input = "button", output="value"},
{name = "Button 4-1", input = "button", output="value"},
{name = "Button 4-2", input = "button", output="value"},
{name = "Button 4-3", input = "button", output="value"},
{name = "Button 4-4", input = "button", output="value"},
{name = "Button 4-5", input = "button", output="value"},
{name = "Button 4-6", input = "button", output="value"},
{name = "Button 4-7", input = "button", output="value"},
{name = "Button 4-8", input = "button", output="value"},
{name = "Button 5-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-5", input = "button", output="value"},
{name = "Button 5-6", input = "button", output="value"},
{name = "Button 5-7", input = "button", output="value"},
{name = "Button 5-8", input = "button", output="value"},
{name = "Button 6-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-5", input = "button", output="value"},
{name = "Button 6-6", input = "button", output="value"},
{name = "Button 6-7", input = "button", output="value"},
{name = "Button 6-8", input = "button", output="value"},
{name = "Button 7-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-5", input = "button", output="value"},
{name = "Button 7-6", input = "button", output="value"},
{name = "Button 7-7", input = "button", output="value"},
{name = "Button 7-8", input = "button", output="value"},
{name = "Button 8-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-5", input = "button", output="value"},
{name = "Button 8-6", input = "button", output="value"},
{name = "Button 8-7", input = "button", output="value"},
{name = "Button 8-8", input = "button", output="value"},
{name = "Button A", input = "button", output="value"},
{name = "Button B", input = "button", output="value"},
{name = "Button C", input = "button", output="value"},
{name = "Button D", input = "button", output="value"},
{name = "Button E", input = "button", output="value"},
{name = "Button F", input = "button", output="value"},
{name = "Button G", input = "button", output="value"},
{name = "Button H", input = "button", output="value"},
}
table.insert(items, { name="Bars Display", input="noinput", output="text" })
g_bars_display_index = table.getn(items)
remote.define_items(items)
end
function init_inputs()
local inputs = {
{pattern="<100?>? 40 ?<???x>", name="Keyboard", value="x", note="48", velocity="100"},
{pattern="<100?>? 41 ?<???x>", name="Keyboard", value="x", note="49", velocity="100"},
{pattern="<100?>? 42 ?<???x>", name="Keyboard", value="x", note="50", velocity="100"},
{pattern="<100?>? 43 ?<???x>", name="Keyboard", value="x", note="51", velocity="100"},
{pattern="<100?>? 50 ?<???x>", name="Keyboard", value="x", note="44", velocity="100"},
{pattern="<100?>? 51 ?<???x>", name="Keyboard", value="x", note="45", velocity="100"},
{pattern="<100?>? 52 ?<???x>", name="Keyboard", value="x", note="46", velocity="100"},
{pattern="<100?>? 53 ?<???x>", name="Keyboard", value="x", note="47", velocity="100"},
{pattern="<100?>? 60 ?<???x>", name="Keyboard", value="x", note="40", velocity="100"},
{pattern="<100?>? 61 ?<???x>", name="Keyboard", value="x", note="41", velocity="100"},
{pattern="<100?>? 62 ?<???x>", name="Keyboard", value="x", note="42", velocity="100"},
{pattern="<100?>? 63 ?<???x>", name="Keyboard", value="x", note="43", velocity="100"},
{pattern="<100?>? 70 ?<???x>", name="Keyboard", value="x", note="36", velocity="100"},
{pattern="<100?>? 71 ?<???x>", name="Keyboard", value="x", note="37", velocity="100"},
{pattern="<100?>? 72 ?<???x>", name="Keyboard", value="x", note="38", velocity="100"},
{pattern="<100?>? 73 ?<???x>", name="Keyboard", value="x", note="39", velocity="100"},
{pattern="<100?>? 00 ?<???x>", name="Keyboard", value="x", note="48", velocity="100"},
{pattern="<100x>? 01 7F", name="Button 1-2"},
{pattern="<100x>? 02 7F", name="Button 1-3"},
{pattern="<100x>? 03 7F", name="Button 1-4"},
{pattern="<100x>? 04 7F", name="Button 1-5"},
{pattern="<100x>? 05 7F", name="Button 1-6"},
{pattern="<100x>? 06 7F", name="Button 1-7"},
{pattern="<100x>? 07 7F", name="Button 1-8"},
{pattern="<100x>? 10 7F", name="Button 2-1"},
{pattern="<100x>? 11 7F", name="Button 2-2"},
{pattern="<100x>? 12 7F", name="Button 2-3"},
{pattern="<100x>? 13 7F", name="Button 2-4"},
{pattern="<100x>? 14 7F", name="Button 2-5"},
{pattern="<100x>? 15 7F", name="Button 2-6"},
{pattern="<100x>? 16 7F", name="Button 2-7"},
{pattern="<100x>? 17 7F", name="Button 2-8"},
{pattern="<100x>? 20 7F", name="Button 3-1"},
{pattern="<100x>? 21 7F", name="Button 3-2"},
{pattern="<100x>? 22 7F", name="Button 3-3"},
{pattern="<100x>? 23 7F", name="Button 3-4"},
{pattern="<100x>? 24 7F", name="Button 3-5"},
{pattern="<100x>? 25 7F", name="Button 3-6"},
{pattern="<100x>? 26 7F", name="Button 3-7"},
{pattern="<100x>? 27 7F", name="Button 3-8"},
{pattern="<100x>? 30 7F", name="Button 4-1"},
{pattern="<100x>? 31 7F", name="Button 4-2"},
{pattern="<100x>? 32 7F", name="Button 4-3"},
{pattern="<100x>? 33 7F", name="Button 4-4"},
{pattern="<100x>? 34 7F", name="Button 4-5"},
{pattern="<100x>? 35 7F", name="Button 4-6"},
{pattern="<100x>? 36 7F", name="Button 4-7"},
{pattern="<100x>? 37 7F", name="Button 4-8"},
{pattern="<100x>? 44 7F", name="Button 5-5"},
{pattern="<100x>? 45 7F", name="Button 5-6"},
{pattern="<100x>? 46 7F", name="Button 5-7"},
{pattern="<100x>? 47 7F", name="Button 5-8"},
{pattern="<100x>? 54 7F", name="Button 6-5"},
{pattern="<100x>? 55 7F", name="Button 6-6"},
{pattern="<100x>? 56 7F", name="Button 6-7"},
{pattern="<100x>? 57 7F", name="Button 6-8"},
{pattern="<100x>? 64 7F", name="Button 7-5"},
{pattern="<100x>? 65 7F", name="Button 7-6"},
{pattern="<100x>? 66 7F", name="Button 7-7"},
{pattern="<100x>? 67 7F", name="Button 7-8"},
{pattern="<100x>? 74 7F", name="Button 8-5"},
{pattern="<100x>? 75 7F", name="Button 8-6"},
{pattern="<100x>? 76 7F", name="Button 8-7"},
{pattern="<100x>? 77 7F", name="Button 8-8"},
{pattern="<100x>? 08 7F", name="Button A"},
{pattern="<100x>? 18 7F", name="Button B"},
{pattern="<100x>? 28 7F", name="Button C"},
{pattern="<100x>? 38 7F", name="Button D"},
{pattern="<100x>? 48 7F", name="Button E"},
{pattern="<100x>? 58 7F", name="Button F"},
{pattern="<100x>? 68 7F", name="Button G"},
{pattern="<100x>? 78 7F", name="Button H"},
}
remote.define_auto_inputs(inputs)
end
function init_outputs()
local outputs = {
{name = "Button 1-1", pattern = "90 24 x", x = "64"},
{name = "Button 1-2", pattern = "90 01 xx", x = "enabled*value*1+56"},
{name = "Button 1-3", pattern = "90 02 xx", x = "enabled*value*1+56"},
{name = "Button 1-4", pattern = "90 03 xx", x = "enabled*value*1+56"},
{name = "Button 1-5", pattern = "90 04 xx", x = "enabled*value*15"},
{name = "Button 1-6", pattern = "90 05 xx", x = "enabled*value*15"},
{name = "Button 1-7", pattern = "90 06 xx", x = "enabled*value*15"},
{name = "Button 1-8", pattern = "90 07 xx", x = "enabled*value*15"},
{name = "Button 2-1", pattern = "90 10 xx", x = "enabled*value*60"},
{name = "Button 2-2", pattern = "90 11 xx", x = "enabled*value*60"},
{name = "Button 2-3", pattern = "90 12 xx", x = "enabled*value*60"},
{name = "Button 2-4", pattern = "90 13 xx", x = "enabled*value*60"},
{name = "Button 2-5", pattern = "90 14 xx", x = "enabled*value*60"},
{name = "Button 2-6", pattern = "90 15 xx", x = "enabled*value*60"},
{name = "Button 2-7", pattern = "90 16 xx", x = "enabled*value*60"},
{name = "Button 2-8", pattern = "90 17 xx", x = "enabled*value*60"},
{name = "Button 3-1", pattern = "90 20 xx", x = "enabled*value*45"},
{name = "Button 3-2", pattern = "90 21 xx", x = "enabled*value*45"},
{name = "Button 3-3", pattern = "90 22 xx", x = "enabled*value*45"},
{name = "Button 3-4", pattern = "90 23 xx", x = "enabled*value*45"},
{name = "Button 3-5", pattern = "90 24 xx", x = "enabled*value*45"},
{name = "Button 3-6", pattern = "90 25 xx", x = "enabled*value*45"},
{name = "Button 3-7", pattern = "90 26 xx", x = "enabled*value*45"},
{name = "Button 3-8", pattern = "90 27 xx", x = "enabled*value*45"},
{name = "Button 4-1", pattern = "90 30 xx", x = "enabled*value*46"},
{name = "Button 4-2", pattern = "90 31 xx", x = "enabled*value*46"},
{name = "Button 4-3", pattern = "90 32 xx", x = "enabled*value*46"},
{name = "Button 4-4", pattern = "90 33 xx", x = "enabled*value*46"},
{name = "Button 4-5", pattern = "90 34 xx", x = "enabled*value*46"},
{name = "Button 4-6", pattern = "90 35 xx", x = "enabled*value*46"},
{name = "Button 4-7", pattern = "90 36 xx", x = "enabled*value*46"},
{name = "Button 4-8", pattern = "90 37 xx", x = "enabled*value*46"},
{name = "Button 5-1", pattern = "90 40 xx", x = "enabled*value*1+56"},
{name = "Button 5-2", pattern = "90 41 xx", x = "enabled*value*1+56"},
{name = "Button 5-3", pattern = "90 42 xx", x = "enabled*value*1+56"},
{name = "Button 5-4", pattern = "90 43 xx", x = "enabled*value*1+56"},
{name = "Button 5-5", pattern = "90 44 xx", x = "enabled*value*63"},
{name = "Button 5-6", pattern = "90 45 xx", x = "enabled*value*63"},
{name = "Button 5-7", pattern = "90 46 xx", x = "enabled*value*63"},
{name = "Button 5-8", pattern = "90 47 xx", x = "enabled*value*63"},
{name = "Button 6-1", pattern = "90 50 xx", x = "enabled*value*1+56"},
{name = "Button 6-2", pattern = "90 51 xx", x = "enabled*value*1+56"},
{name = "Button 6-3", pattern = "90 52 xx", x = "enabled*value*1+56"},
{name = "Button 6-4", pattern = "90 53 xx", x = "enabled*value*1+56"},
{name = "Button 6-5", pattern = "90 54 xx", x = "enabled*value*63"},
{name = "Button 6-6", pattern = "90 55 xx", x = "enabled*value*63"},
{name = "Button 6-7", pattern = "90 56 xx", x = "enabled*value*63"},
{name = "Button 6-8", pattern = "90 57 xx", x = "enabled*value*63"},
{name = "Button 7-1", pattern = "90 60 xx", x = "enabled*value*1+56"},
{name = "Button 7-2", pattern = "90 61 xx", x = "enabled*value*1+56"},
{name = "Button 7-3", pattern = "90 62 xx", x = "enabled*value*1+56"},
{name = "Button 7-4", pattern = "90 63 xx", x = "enabled*value*1+56"},
{name = "Button 7-5", pattern = "90 64 xx", x = "enabled*value*15"},
{name = "Button 7-6", pattern = "90 65 xx", x = "enabled*value*15"},
{name = "Button 7-7", pattern = "90 66 xx", x = "enabled*value*15"},
{name = "Button 7-8", pattern = "90 67 xx", x = "enabled*value*15"},
{name = "Button 8-1", pattern = "90 24 64 ", x = "enabled*value*1+56"},
{name = "Button 8-2", pattern = "90 71 xx", x = "enabled*value*1+56"},
{name = "Button 8-3", pattern = "90 72 xx", x = "enabled*value*1+56"},
{name = "Button 8-4", pattern = "90 73 xx", x = "enabled*value*1+56"},
{name = "Button 8-5", pattern = "90 74 xx", x = "enabled*value*60"},
{name = "Button 8-6", pattern = "90 75 xx", x = "enabled*value*60"},
{name = "Button 8-7", pattern = "90 76 xx", x = "enabled*value*15+1"},
{name = "Button 8-8", pattern = "90 77 xx", x = "enabled*value*15+1"},
{name = "Button A", pattern = "90 08 xx", x = "enabled*value*63"},
{name = "Button B", pattern = "90 18 xx", x = "enabled*value*63"},
{name = "Button C", pattern = "90 28 xx", x = "enabled*value*63"},
{name = "Button D", pattern = "90 38 xx", x = "enabled*value*56"},
{name = "Button E", pattern = "90 48 xx", x = "enabled*value*15"},
{name = "Button F", pattern = "90 58 xx", x = "enabled*value*63"},
{name = "Button G", pattern = "90 68 xx", x = "enabled*value*15+1"},
{name = "Button H", pattern = "90 78 xx", x = "enabled*value*15+1"},
}
remote.define_auto_outputs(outputs)
end
function remote_deliver_midi()
local ret_events={}
if g_delivered_bar ~= g_current_bar then
if g_current_bar < 1 then table.insert(ret_events, remote.make_midi("B0 68 00")) end
if g_current_bar < 2 then table.insert(ret_events, remote.make_midi("B0 69 00")) end
if g_current_bar < 3 then table.insert(ret_events, remote.make_midi("B0 6A 00")) end
if g_current_bar < 4 then table.insert(ret_events, remote.make_midi("B0 6B 00")) end
if g_current_bar < 5 then table.insert(ret_events, remote.make_midi("B0 6C 00")) end
if g_current_bar < 6 then table.insert(ret_events, remote.make_midi("B0 6D 00")) end
if g_current_bar < 7 then table.insert(ret_events, remote.make_midi("B0 6E 00")) end
if g_current_bar < 8 then table.insert(ret_events, remote.make_midi("B0 6F 00")) end
if g_current_bar > 0 then table.insert(ret_events, remote.make_midi("B0 68 60")) end
if g_current_bar > 1 then table.insert(ret_events, remote.make_midi("B0 69 60")) end
if g_current_bar > 2 then table.insert(ret_events, remote.make_midi("B0 6A 60")) end
if g_current_bar > 3 then table.insert(ret_events, remote.make_midi("B0 6B 60")) end
if g_current_bar > 4 then table.insert(ret_events, remote.make_midi("B0 6C 60")) end
if g_current_bar > 5 then table.insert(ret_events, remote.make_midi("B0 6D 60")) end
if g_current_bar > 6 then table.insert(ret_events, remote.make_midi("B0 6E 60")) end
if g_current_bar > 7 then table.insert(ret_events, remote.make_midi("B0 6F 60")) end
end
g_delivered_bar = g_current_bar
return ret_events
end
function remote_set_state(changed_items)
for kk,item_index in ipairs(changed_items) do
if item_index == g_bars_display_index then
if remote.is_item_enabled(item_index) then
g_current_bar = get_relative_bar(remote.get_item_text_value(item_index))
else
g_current_bar = -1
end
end
end
return false
end
function get_relative_bar(s)
local n=tonumber(s)
n = n - math.floor(n/8)*8
return (n == 0) and 8 or n
end
REMOTEMAP FILE:
Propellerhead Remote Mapping File
File Format Version 1.0.0
Control Surface Manufacturer Novation
Control Surface Model Launchpad Mini MK3
Map Version 1.1.0
Scope Propellerheads Master Keyboard
// Control Surface Item Key Remotable Item Scale Mode
Map Keyboard Keyboard
Scope Propellerheads Reason Document
// Control Surface Item Key Remotable Item Scale Mode
Map Bars Display Bar Position
Map Button 2-1 Rewind
Map Button B Fast Forward
Map Button C Stop
Map Button D Play
Map Button E Record
Map Button F Loop On/Off
Map Button G Target Previous Track
Map Button H Target Next Track
Map Button 8-7 Select Previous Patch
Scope Propellerheads Kong Drum Designer
// Control Surface Item Key Remotable Item Scale Mode
Map Button 5-1 Pad 13 Hit Indication
Map Button 5-2 Pad 14 Hit Indication
Map Button 5-3 Pad 15 Hit Indication
Map Button 5-4 Pad 16 Hit Indication
Map Button 6-1 Pad 9 Hit Indication
Map Button 6-2 Pad 10 Hit Indication
Map Button 6-3 Pad 11 Hit Indication
Map Button 6-4 Pad 12 Hit Indication
Map Button 7-1 Pad 5 Hit Indication
Map Button 7-2 Pad 6 Hit Indication
Map Button 7-3 Pad 7 Hit Indication
Map Button 7-4 Pad 8 Hit Indication
Map Button 8-1 Pad 1 Hit Indication
Map Button 8-2 Pad 2 Hit Indication
Map Button 8-3 Pad 3 Hit Indication
Map Button 8-4 Pad 4 Hit Indication
midi code decimal 90 24 64 for on and 80 24 40 for off, checked in midiox.
i tried to modifiy the luacodec:
the relevant port should be the local outputs, not the inputs. right?
tried to change the first button:
{name = "Button 8-1", pattern = "90 24 64 ", x = "enabled*value*1+56"},
{name = "Button 8-2", pattern = "90 71 xx", x = "enabled*value*1+56"},
restarted reason. no change.
the inputs look fine i can play kong with it.
what am i doing wrong with the return midi?
luacodec:
g_bars_display_index = -1
g_current_bar = -1
g_delivered_bar = -1
function remote_init()
init_items()
init_inputs()
init_outputs()
end
function init_items()
local items = {
{name = "Keyboard", input = "keyboard"},
{name = "Button 1-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 1-2", input = "button", output="value"},
{name = "Button 1-3", input = "button", output="value"},
{name = "Button 1-4", input = "button", output="value"},
{name = "Button 1-5", input = "button", output="value"},
{name = "Button 1-6", input = "button", output="value"},
{name = "Button 1-7", input = "button", output="value"},
{name = "Button 1-8", input = "button", output="value"},
{name = "Button 2-1", input = "button", output="value"},
{name = "Button 2-2", input = "button", output="value"},
{name = "Button 2-3", input = "button", output="value"},
{name = "Button 2-4", input = "button", output="value"},
{name = "Button 2-5", input = "button", output="value"},
{name = "Button 2-6", input = "button", output="value"},
{name = "Button 2-7", input = "button", output="value"},
{name = "Button 2-8", input = "button", output="value"},
{name = "Button 3-1", input = "button", output="value"},
{name = "Button 3-2", input = "button", output="value"},
{name = "Button 3-3", input = "button", output="value"},
{name = "Button 3-4", input = "button", output="value"},
{name = "Button 3-5", input = "button", output="value"},
{name = "Button 3-6", input = "button", output="value"},
{name = "Button 3-7", input = "button", output="value"},
{name = "Button 3-8", input = "button", output="value"},
{name = "Button 4-1", input = "button", output="value"},
{name = "Button 4-2", input = "button", output="value"},
{name = "Button 4-3", input = "button", output="value"},
{name = "Button 4-4", input = "button", output="value"},
{name = "Button 4-5", input = "button", output="value"},
{name = "Button 4-6", input = "button", output="value"},
{name = "Button 4-7", input = "button", output="value"},
{name = "Button 4-8", input = "button", output="value"},
{name = "Button 5-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 5-5", input = "button", output="value"},
{name = "Button 5-6", input = "button", output="value"},
{name = "Button 5-7", input = "button", output="value"},
{name = "Button 5-8", input = "button", output="value"},
{name = "Button 6-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 6-5", input = "button", output="value"},
{name = "Button 6-6", input = "button", output="value"},
{name = "Button 6-7", input = "button", output="value"},
{name = "Button 6-8", input = "button", output="value"},
{name = "Button 7-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 7-5", input = "button", output="value"},
{name = "Button 7-6", input = "button", output="value"},
{name = "Button 7-7", input = "button", output="value"},
{name = "Button 7-8", input = "button", output="value"},
{name = "Button 8-1", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-2", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-3", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-4", input = "noinput", output="value", min=0, max=1},
{name = "Button 8-5", input = "button", output="value"},
{name = "Button 8-6", input = "button", output="value"},
{name = "Button 8-7", input = "button", output="value"},
{name = "Button 8-8", input = "button", output="value"},
{name = "Button A", input = "button", output="value"},
{name = "Button B", input = "button", output="value"},
{name = "Button C", input = "button", output="value"},
{name = "Button D", input = "button", output="value"},
{name = "Button E", input = "button", output="value"},
{name = "Button F", input = "button", output="value"},
{name = "Button G", input = "button", output="value"},
{name = "Button H", input = "button", output="value"},
}
table.insert(items, { name="Bars Display", input="noinput", output="text" })
g_bars_display_index = table.getn(items)
remote.define_items(items)
end
function init_inputs()
local inputs = {
{pattern="<100?>? 40 ?<???x>", name="Keyboard", value="x", note="48", velocity="100"},
{pattern="<100?>? 41 ?<???x>", name="Keyboard", value="x", note="49", velocity="100"},
{pattern="<100?>? 42 ?<???x>", name="Keyboard", value="x", note="50", velocity="100"},
{pattern="<100?>? 43 ?<???x>", name="Keyboard", value="x", note="51", velocity="100"},
{pattern="<100?>? 50 ?<???x>", name="Keyboard", value="x", note="44", velocity="100"},
{pattern="<100?>? 51 ?<???x>", name="Keyboard", value="x", note="45", velocity="100"},
{pattern="<100?>? 52 ?<???x>", name="Keyboard", value="x", note="46", velocity="100"},
{pattern="<100?>? 53 ?<???x>", name="Keyboard", value="x", note="47", velocity="100"},
{pattern="<100?>? 60 ?<???x>", name="Keyboard", value="x", note="40", velocity="100"},
{pattern="<100?>? 61 ?<???x>", name="Keyboard", value="x", note="41", velocity="100"},
{pattern="<100?>? 62 ?<???x>", name="Keyboard", value="x", note="42", velocity="100"},
{pattern="<100?>? 63 ?<???x>", name="Keyboard", value="x", note="43", velocity="100"},
{pattern="<100?>? 70 ?<???x>", name="Keyboard", value="x", note="36", velocity="100"},
{pattern="<100?>? 71 ?<???x>", name="Keyboard", value="x", note="37", velocity="100"},
{pattern="<100?>? 72 ?<???x>", name="Keyboard", value="x", note="38", velocity="100"},
{pattern="<100?>? 73 ?<???x>", name="Keyboard", value="x", note="39", velocity="100"},
{pattern="<100?>? 00 ?<???x>", name="Keyboard", value="x", note="48", velocity="100"},
{pattern="<100x>? 01 7F", name="Button 1-2"},
{pattern="<100x>? 02 7F", name="Button 1-3"},
{pattern="<100x>? 03 7F", name="Button 1-4"},
{pattern="<100x>? 04 7F", name="Button 1-5"},
{pattern="<100x>? 05 7F", name="Button 1-6"},
{pattern="<100x>? 06 7F", name="Button 1-7"},
{pattern="<100x>? 07 7F", name="Button 1-8"},
{pattern="<100x>? 10 7F", name="Button 2-1"},
{pattern="<100x>? 11 7F", name="Button 2-2"},
{pattern="<100x>? 12 7F", name="Button 2-3"},
{pattern="<100x>? 13 7F", name="Button 2-4"},
{pattern="<100x>? 14 7F", name="Button 2-5"},
{pattern="<100x>? 15 7F", name="Button 2-6"},
{pattern="<100x>? 16 7F", name="Button 2-7"},
{pattern="<100x>? 17 7F", name="Button 2-8"},
{pattern="<100x>? 20 7F", name="Button 3-1"},
{pattern="<100x>? 21 7F", name="Button 3-2"},
{pattern="<100x>? 22 7F", name="Button 3-3"},
{pattern="<100x>? 23 7F", name="Button 3-4"},
{pattern="<100x>? 24 7F", name="Button 3-5"},
{pattern="<100x>? 25 7F", name="Button 3-6"},
{pattern="<100x>? 26 7F", name="Button 3-7"},
{pattern="<100x>? 27 7F", name="Button 3-8"},
{pattern="<100x>? 30 7F", name="Button 4-1"},
{pattern="<100x>? 31 7F", name="Button 4-2"},
{pattern="<100x>? 32 7F", name="Button 4-3"},
{pattern="<100x>? 33 7F", name="Button 4-4"},
{pattern="<100x>? 34 7F", name="Button 4-5"},
{pattern="<100x>? 35 7F", name="Button 4-6"},
{pattern="<100x>? 36 7F", name="Button 4-7"},
{pattern="<100x>? 37 7F", name="Button 4-8"},
{pattern="<100x>? 44 7F", name="Button 5-5"},
{pattern="<100x>? 45 7F", name="Button 5-6"},
{pattern="<100x>? 46 7F", name="Button 5-7"},
{pattern="<100x>? 47 7F", name="Button 5-8"},
{pattern="<100x>? 54 7F", name="Button 6-5"},
{pattern="<100x>? 55 7F", name="Button 6-6"},
{pattern="<100x>? 56 7F", name="Button 6-7"},
{pattern="<100x>? 57 7F", name="Button 6-8"},
{pattern="<100x>? 64 7F", name="Button 7-5"},
{pattern="<100x>? 65 7F", name="Button 7-6"},
{pattern="<100x>? 66 7F", name="Button 7-7"},
{pattern="<100x>? 67 7F", name="Button 7-8"},
{pattern="<100x>? 74 7F", name="Button 8-5"},
{pattern="<100x>? 75 7F", name="Button 8-6"},
{pattern="<100x>? 76 7F", name="Button 8-7"},
{pattern="<100x>? 77 7F", name="Button 8-8"},
{pattern="<100x>? 08 7F", name="Button A"},
{pattern="<100x>? 18 7F", name="Button B"},
{pattern="<100x>? 28 7F", name="Button C"},
{pattern="<100x>? 38 7F", name="Button D"},
{pattern="<100x>? 48 7F", name="Button E"},
{pattern="<100x>? 58 7F", name="Button F"},
{pattern="<100x>? 68 7F", name="Button G"},
{pattern="<100x>? 78 7F", name="Button H"},
}
remote.define_auto_inputs(inputs)
end
function init_outputs()
local outputs = {
{name = "Button 1-1", pattern = "90 24 x", x = "64"},
{name = "Button 1-2", pattern = "90 01 xx", x = "enabled*value*1+56"},
{name = "Button 1-3", pattern = "90 02 xx", x = "enabled*value*1+56"},
{name = "Button 1-4", pattern = "90 03 xx", x = "enabled*value*1+56"},
{name = "Button 1-5", pattern = "90 04 xx", x = "enabled*value*15"},
{name = "Button 1-6", pattern = "90 05 xx", x = "enabled*value*15"},
{name = "Button 1-7", pattern = "90 06 xx", x = "enabled*value*15"},
{name = "Button 1-8", pattern = "90 07 xx", x = "enabled*value*15"},
{name = "Button 2-1", pattern = "90 10 xx", x = "enabled*value*60"},
{name = "Button 2-2", pattern = "90 11 xx", x = "enabled*value*60"},
{name = "Button 2-3", pattern = "90 12 xx", x = "enabled*value*60"},
{name = "Button 2-4", pattern = "90 13 xx", x = "enabled*value*60"},
{name = "Button 2-5", pattern = "90 14 xx", x = "enabled*value*60"},
{name = "Button 2-6", pattern = "90 15 xx", x = "enabled*value*60"},
{name = "Button 2-7", pattern = "90 16 xx", x = "enabled*value*60"},
{name = "Button 2-8", pattern = "90 17 xx", x = "enabled*value*60"},
{name = "Button 3-1", pattern = "90 20 xx", x = "enabled*value*45"},
{name = "Button 3-2", pattern = "90 21 xx", x = "enabled*value*45"},
{name = "Button 3-3", pattern = "90 22 xx", x = "enabled*value*45"},
{name = "Button 3-4", pattern = "90 23 xx", x = "enabled*value*45"},
{name = "Button 3-5", pattern = "90 24 xx", x = "enabled*value*45"},
{name = "Button 3-6", pattern = "90 25 xx", x = "enabled*value*45"},
{name = "Button 3-7", pattern = "90 26 xx", x = "enabled*value*45"},
{name = "Button 3-8", pattern = "90 27 xx", x = "enabled*value*45"},
{name = "Button 4-1", pattern = "90 30 xx", x = "enabled*value*46"},
{name = "Button 4-2", pattern = "90 31 xx", x = "enabled*value*46"},
{name = "Button 4-3", pattern = "90 32 xx", x = "enabled*value*46"},
{name = "Button 4-4", pattern = "90 33 xx", x = "enabled*value*46"},
{name = "Button 4-5", pattern = "90 34 xx", x = "enabled*value*46"},
{name = "Button 4-6", pattern = "90 35 xx", x = "enabled*value*46"},
{name = "Button 4-7", pattern = "90 36 xx", x = "enabled*value*46"},
{name = "Button 4-8", pattern = "90 37 xx", x = "enabled*value*46"},
{name = "Button 5-1", pattern = "90 40 xx", x = "enabled*value*1+56"},
{name = "Button 5-2", pattern = "90 41 xx", x = "enabled*value*1+56"},
{name = "Button 5-3", pattern = "90 42 xx", x = "enabled*value*1+56"},
{name = "Button 5-4", pattern = "90 43 xx", x = "enabled*value*1+56"},
{name = "Button 5-5", pattern = "90 44 xx", x = "enabled*value*63"},
{name = "Button 5-6", pattern = "90 45 xx", x = "enabled*value*63"},
{name = "Button 5-7", pattern = "90 46 xx", x = "enabled*value*63"},
{name = "Button 5-8", pattern = "90 47 xx", x = "enabled*value*63"},
{name = "Button 6-1", pattern = "90 50 xx", x = "enabled*value*1+56"},
{name = "Button 6-2", pattern = "90 51 xx", x = "enabled*value*1+56"},
{name = "Button 6-3", pattern = "90 52 xx", x = "enabled*value*1+56"},
{name = "Button 6-4", pattern = "90 53 xx", x = "enabled*value*1+56"},
{name = "Button 6-5", pattern = "90 54 xx", x = "enabled*value*63"},
{name = "Button 6-6", pattern = "90 55 xx", x = "enabled*value*63"},
{name = "Button 6-7", pattern = "90 56 xx", x = "enabled*value*63"},
{name = "Button 6-8", pattern = "90 57 xx", x = "enabled*value*63"},
{name = "Button 7-1", pattern = "90 60 xx", x = "enabled*value*1+56"},
{name = "Button 7-2", pattern = "90 61 xx", x = "enabled*value*1+56"},
{name = "Button 7-3", pattern = "90 62 xx", x = "enabled*value*1+56"},
{name = "Button 7-4", pattern = "90 63 xx", x = "enabled*value*1+56"},
{name = "Button 7-5", pattern = "90 64 xx", x = "enabled*value*15"},
{name = "Button 7-6", pattern = "90 65 xx", x = "enabled*value*15"},
{name = "Button 7-7", pattern = "90 66 xx", x = "enabled*value*15"},
{name = "Button 7-8", pattern = "90 67 xx", x = "enabled*value*15"},
{name = "Button 8-1", pattern = "90 24 64 ", x = "enabled*value*1+56"},
{name = "Button 8-2", pattern = "90 71 xx", x = "enabled*value*1+56"},
{name = "Button 8-3", pattern = "90 72 xx", x = "enabled*value*1+56"},
{name = "Button 8-4", pattern = "90 73 xx", x = "enabled*value*1+56"},
{name = "Button 8-5", pattern = "90 74 xx", x = "enabled*value*60"},
{name = "Button 8-6", pattern = "90 75 xx", x = "enabled*value*60"},
{name = "Button 8-7", pattern = "90 76 xx", x = "enabled*value*15+1"},
{name = "Button 8-8", pattern = "90 77 xx", x = "enabled*value*15+1"},
{name = "Button A", pattern = "90 08 xx", x = "enabled*value*63"},
{name = "Button B", pattern = "90 18 xx", x = "enabled*value*63"},
{name = "Button C", pattern = "90 28 xx", x = "enabled*value*63"},
{name = "Button D", pattern = "90 38 xx", x = "enabled*value*56"},
{name = "Button E", pattern = "90 48 xx", x = "enabled*value*15"},
{name = "Button F", pattern = "90 58 xx", x = "enabled*value*63"},
{name = "Button G", pattern = "90 68 xx", x = "enabled*value*15+1"},
{name = "Button H", pattern = "90 78 xx", x = "enabled*value*15+1"},
}
remote.define_auto_outputs(outputs)
end
function remote_deliver_midi()
local ret_events={}
if g_delivered_bar ~= g_current_bar then
if g_current_bar < 1 then table.insert(ret_events, remote.make_midi("B0 68 00")) end
if g_current_bar < 2 then table.insert(ret_events, remote.make_midi("B0 69 00")) end
if g_current_bar < 3 then table.insert(ret_events, remote.make_midi("B0 6A 00")) end
if g_current_bar < 4 then table.insert(ret_events, remote.make_midi("B0 6B 00")) end
if g_current_bar < 5 then table.insert(ret_events, remote.make_midi("B0 6C 00")) end
if g_current_bar < 6 then table.insert(ret_events, remote.make_midi("B0 6D 00")) end
if g_current_bar < 7 then table.insert(ret_events, remote.make_midi("B0 6E 00")) end
if g_current_bar < 8 then table.insert(ret_events, remote.make_midi("B0 6F 00")) end
if g_current_bar > 0 then table.insert(ret_events, remote.make_midi("B0 68 60")) end
if g_current_bar > 1 then table.insert(ret_events, remote.make_midi("B0 69 60")) end
if g_current_bar > 2 then table.insert(ret_events, remote.make_midi("B0 6A 60")) end
if g_current_bar > 3 then table.insert(ret_events, remote.make_midi("B0 6B 60")) end
if g_current_bar > 4 then table.insert(ret_events, remote.make_midi("B0 6C 60")) end
if g_current_bar > 5 then table.insert(ret_events, remote.make_midi("B0 6D 60")) end
if g_current_bar > 6 then table.insert(ret_events, remote.make_midi("B0 6E 60")) end
if g_current_bar > 7 then table.insert(ret_events, remote.make_midi("B0 6F 60")) end
end
g_delivered_bar = g_current_bar
return ret_events
end
function remote_set_state(changed_items)
for kk,item_index in ipairs(changed_items) do
if item_index == g_bars_display_index then
if remote.is_item_enabled(item_index) then
g_current_bar = get_relative_bar(remote.get_item_text_value(item_index))
else
g_current_bar = -1
end
end
end
return false
end
function get_relative_bar(s)
local n=tonumber(s)
n = n - math.floor(n/8)*8
return (n == 0) and 8 or n
end
REMOTEMAP FILE:
Propellerhead Remote Mapping File
File Format Version 1.0.0
Control Surface Manufacturer Novation
Control Surface Model Launchpad Mini MK3
Map Version 1.1.0
Scope Propellerheads Master Keyboard
// Control Surface Item Key Remotable Item Scale Mode
Map Keyboard Keyboard
Scope Propellerheads Reason Document
// Control Surface Item Key Remotable Item Scale Mode
Map Bars Display Bar Position
Map Button 2-1 Rewind
Map Button B Fast Forward
Map Button C Stop
Map Button D Play
Map Button E Record
Map Button F Loop On/Off
Map Button G Target Previous Track
Map Button H Target Next Track
Map Button 8-7 Select Previous Patch
Scope Propellerheads Kong Drum Designer
// Control Surface Item Key Remotable Item Scale Mode
Map Button 5-1 Pad 13 Hit Indication
Map Button 5-2 Pad 14 Hit Indication
Map Button 5-3 Pad 15 Hit Indication
Map Button 5-4 Pad 16 Hit Indication
Map Button 6-1 Pad 9 Hit Indication
Map Button 6-2 Pad 10 Hit Indication
Map Button 6-3 Pad 11 Hit Indication
Map Button 6-4 Pad 12 Hit Indication
Map Button 7-1 Pad 5 Hit Indication
Map Button 7-2 Pad 6 Hit Indication
Map Button 7-3 Pad 7 Hit Indication
Map Button 7-4 Pad 8 Hit Indication
Map Button 8-1 Pad 1 Hit Indication
Map Button 8-2 Pad 2 Hit Indication
Map Button 8-3 Pad 3 Hit Indication
Map Button 8-4 Pad 4 Hit Indication
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
another idea from novation:
duplicate midi sequencer line e.g. from kong.
foward this to midi out
result: pads get lit up when playing back sequencer track.
but: this would mean i'd have to duplicate every single midi track.
been searching quite some time in vain:
could it really be there is no way to loop out ALL midi sequencer tracks also to external midi device?
moreover: what to do with instruments that don't have a sequencer lane and are just being used for live playback of loops like octo rex?
duplicate midi sequencer line e.g. from kong.
foward this to midi out
result: pads get lit up when playing back sequencer track.
but: this would mean i'd have to duplicate every single midi track.
been searching quite some time in vain:
could it really be there is no way to loop out ALL midi sequencer tracks also to external midi device?
moreover: what to do with instruments that don't have a sequencer lane and are just being used for live playback of loops like octo rex?
As long as I know, there is no general midi note out in Reason, Kong is special with the Hit indication items. The way to send out notes is like you described it. By the way you dont need to restard Reason everytime you change the codec, just go to Preferences and disable/enable the device you are working on.me-yourself-and-them wrote: ↑11 Aug 2022another idea from novation:
duplicate midi sequencer line e.g. from kong.
foward this to midi out
result: pads get lit up when playing back sequencer track.
but: this would mean i'd have to duplicate every single midi track.
been searching quite some time in vain:
could it really be there is no way to loop out ALL midi sequencer tracks also to external midi device?
moreover: what to do with instruments that don't have a sequencer lane and are just being used for live playback of loops like octo rex?
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
thanks @rmtcvolte! already recognized the need the easiest way to reload codec is dis/reenable controller. for use another app to debug midi messages you always need to quit and restart reason.
with the duplicated kong midi track i already achieved lighting of LP mini MK3 pads according to notes played. the "octo rex actual running slot" feature seems definitely to require a new codec, couldn't find any way to achieve the live button push > light LP pad by e.g. cv out. so far only possbile with an according sequencer track.
with the duplicated kong midi track i already achieved lighting of LP mini MK3 pads according to notes played. the "octo rex actual running slot" feature seems definitely to require a new codec, couldn't find any way to achieve the live button push > light LP pad by e.g. cv out. so far only possbile with an according sequencer track.
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
i got pretty further. now kong lights up launchpad mini mk3 buttons when a note is being played in reason, without an extra note track routed to midi out > lp mini.
codec example, just lower left basedrum button and row 1 button 5 for 1 octo rex slot:
i can play buttons now on kong and dr. octo rex.
kong buttons light up when a note is played.
hard question?
why won't the 1-5 button assigned to dr. octo rex slot one light up?
i tired many code formats, reassigned other notes to lp through components.novation.com
and added a slot lane.
all in vain. i can choose the octo rex by lp mini. but the active slot button won't light up. why?
codec example, just lower left basedrum button and row 1 button 5 for 1 octo rex slot:
Code: Select all
function init_items()
local items = {
-- /< kong input buttons
{name = "Button 8-1", input = "noinput", output="value", min=0, max=1},
-- /< dr. octo rex 1 input buttons
{name = "Button 1-5", input = "noinput", output="value", min=0, max=1},
}
remote.define_items(items)
end
function init_inputs()
local inputs = {
-- /< kong input buttons
{pattern="<100?>? 24 ?<???x>", name="Keyboard", value="x", note="36", velocity="100"},
-- /< dr. octo rex 1 input buttons
{pattern="<100?>? 40 ?<???x>", name="Keyboard", value="x", note="64", velocity="100"},
}
remote.define_auto_inputs(inputs)
end
function init_outputs()
local outputs = {
-- /< light up the kong pads if pushed in reason
{name = "Button 5-1", pattern = "90 30 xx", x = "enabled*value"},
-- /< light up 1st dr. octo rex buttons
{name = "Button 1-5", pattern = "90 40 7f", x = "enabled*value"},
}
remote.define_auto_outputs(outputs)
end
kong buttons light up when a note is played.
hard question?
why won't the 1-5 button assigned to dr. octo rex slot one light up?
i tired many code formats, reassigned other notes to lp through components.novation.com
and added a slot lane.
all in vain. i can choose the octo rex by lp mini. but the active slot button won't light up. why?
I dont get it to work this way, for me the pad in question is light up steady as soon the codec is loaded (I can see the "note on" in MidiOX going out only once at startup). I still believe Reason does not sending out notes other then via MidiOut device. Maybe you have mixed up something as you have the same midi definition twice (as "Keyboard" - "<100?> 24 ?<???x>" and "Button" - "90 30 xx") plus eventually the mapping of "Pad 1 Hit Indication" is still in your mapping file?!me-yourself-and-them wrote: ↑21 Aug 2022i got pretty further. now kong lights up launchpad mini mk3 buttons when a note is being played in reason, without an extra note track routed to midi out > lp mini.
i can play buttons now on kong and dr. octo rex.
kong buttons light up when a note is played.
hard question?
why won't the 1-5 button assigned to dr. octo rex slot one light up?
i tired many code formats, reassigned other notes to lp through components.novation.com
and added a slot lane.
all in vain. i can choose the octo rex by lp mini. but the active slot button won't light up. why?
For the OctoRex the only difference I can see is in the pattern deffinition for "Button 1-5" -> "90 40 7f" instead "90 30 xx" for "Button 5-1".
Ever tried to get the session mode running?
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
i'll check as soon as possible. my codec is definitely working without a midi out > LP lane. kong is lighting up when pushed or note played. i'm using loop midi, 4 ports. use the midi in 2 of LP > midi ox as reason mocks when midi-ox and reason try to access midi in 1 LP. midi ox splits the LP pads defined as 1 channel per device (4 octo rec, 1 kong plus transport controls. the lp mini in 1 is assigned fixed to kong, only this way the buttons light up when played. i DOESN'T work when you use a loop midi port....maybe this is also the reason that octo rex doesn't light up when played, right now fixed to loop midi 3-6. i'll send all the files via pm if required.
Did not check that loop midi is involved in your set up. Will take a look if you like to send me something, maybe with a screenshot of the loopmidi settings, if possible.me-yourself-and-them wrote: ↑23 Aug 2022i'll check as soon as possible. my codec is definitely working without a midi out > LP lane. kong is lighting up when pushed or note played. i'm using loop midi, 4 ports. use the midi in 2 of LP > midi ox as reason mocks when midi-ox and reason try to access midi in 1 LP. midi ox splits the LP pads defined as 1 channel per device (4 octo rec, 1 kong plus transport controls. the lp mini in 1 is assigned fixed to kong, only this way the buttons light up when played. i DOESN'T work when you use a loop midi port....maybe this is also the reason that octo rex doesn't light up when played, right now fixed to loop midi 3-6. i'll send all the files via pm if required.
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
yep. got it up and running. the ony thing i couldn't achieve is a setup where i can control several octo rex with button indicating the actual loop running. you definitely need midiox/loopmidi to achieve this - but the back channel only seems to be working when connected to the launchpad - not to loop midi
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
arrrr...hardware crash. looks like i've lost my 10-20hr programming on the custom codec/remotemap for lp mini mk3. did i send the files to someone here maybe?
I'm thinking about buying a Launchpad mini mk3 for Reason. After some googling, I discovered that there still doesn't seem to be a codec for Reason right ? Can you actually use the device for Reason? I would like to use the note triggers and also fader functions from the Launchpad for knobs in Reason (the rough increment of 8 steps is enough for me).
- me-yourself-and-them
- Posts: 90
- Joined: 09 Jan 2022
my codec is for the launchpad mini. not sure if launchpad xl mk3 is working with that one too. and as far as i remember i didn't do an programming for faders. honestly, if you want to use faders go for novation launch control xl mk 2.
yes, that's exactly the Launchpad mini I would like to use if it works with Reason the way I imagine it would . However, the current Launchpad mini mk3 version. I plan to use the "fader function" from the Launchpad to control a rotary controller from the Combinator, so that I can control 8 exact values from the rotary controller with the pads in a row. The Combinator knob should then automate/switch 8 patterns from the Matrix or Redrum during a live session. With normal controls or faders I can never see which pattern I'm on without looking at the laptop, but with the 8 pads in a row I can see exactly that.me-yourself-and-them wrote: ↑05 Aug 2024my codec is for the launchpad mini. not sure if launchpad xl mk3 is working with that one too. and as far as i remember i didn't do an programming for faders. honestly, if you want to use faders go for novation launch control xl mk 2.
With the Launchpad mini I could perhaps operate 8 rows of faders (with each 8 Pads) at the same time and thus control 8 Combinator Knobs and so 8 different matrix/redrum pattern selects and record the pattern changes live in Reason. I hope I express myself somewhat understandably
Hi! I've been using the old Launchpad Mini MK2 with the same codec/map. For the MK3, I haven't found a new codec/map yet. You might need to use Novation's Components software. Editing Reason codecs and maps can be tricky, but it might be worth a shot. Good luck!
-
- Information
-
Who is online
Users browsing this forum: No registered users and 22 guests