Replies: 7 comments 4 replies
|
It looks nice. A lot of the warning messages go to |
|
Update v.1.1 bye |
|
20250517_Update v.1.0.3 bye |
|
20260519_Update v.2.0 regards |
|
This is an optimized MIDI received code - I haven't tested it though -- 3. ASSIGN DATA (Cervello Globale del MIDI in ricezione)
--[[
enum class Type
{
CC,
ProgramChange,
SysEx,
NoteOn,
NoteOff,
Aftertouch,
ChannelPressure,
PitchWheel,
Unknown
};
--]]
assignData = function(midi)
local size = midi:getSize()
--if size == 0 then return end -- if MIDI is incoming, it can never be size = 0
--local status = midi:getData():getByte(0)
-- Debug solo per Program Change e SysEx (evita spam CC)
-- if status >= 0xC0 and status <= 0xCF and size == 2 then
local status = midi:getType()
if status == 1 then -- then programChange
console("RX: Program Change channel=" .. bit.band(midi:getData():getByte(0), 15))
elseif status == 2 then
console("RX: SysEx received size=" .. size)
-- Gestione Data Dump (57 bytes, byte 4 = 0x40)
if size == 57 and midi:getData():getByte(4) == 0x40 then
console("OK: DUMP RECEIVED!")
panel:setProgramState(true)
-- Il Korg manda offset SysEx 0-50
-- Noi cerchiamo modulatorCustomIndex = offset + 1 (1-51)
for sysexOffset = 0, 50 do
local value = midi:getData():getByte(5 + sysexOffset)
-- TRADUZIONE: SysexOffset (0-50) -> customIndex (1-51)
-- IMPORTANTE: tostring perché le proprietà sono stringhe
local customIndex = tostring(sysexOffset + 1)
local mod = panel:getModulatorWithProperty("modulatorCustomIndex", customIndex)
if mod ~= nil then
mod:setModulatorValue(value, false, true, false)
else
console("ERR: Index " .. (sysexOffset + 1) .. " NOT FOUND!")
end
end
panel:setProgramState(false)
setStatus("Patch Synchronized!")
end
end
end
previous code (probably working)-- 3. ASSIGN DATA (Cervello Globale del MIDI in ricezione)
assignData = function(midi)
local size = midi:getSize()
if size == 0 then return end
local status = midi:getData():getByte(0)
-- Debug solo per Program Change e SysEx (evita spam CC)
if status >= 0xC0 and status <= 0xCF and size == 2 then
console("RX: Program Change channel=" .. (status % 16 + 1))
elseif status == 0xF0 then
console("RX: SysEx received size=" .. size)
end
-- Gestione Data Dump (57 bytes, byte 4 = 0x40)
if size == 57 and status == 0xF0 and midi:getData():getByte(4) == 0x40 then
console("OK: DUMP RECEIVED!")
panel:setProgramState(true)
-- Il Korg manda offset SysEx 0-50
-- Noi cerchiamo modulatorCustomIndex = offset + 1 (1-51)
for sysexOffset = 0, 50 do
local value = midi:getData():getByte(5 + sysexOffset)
-- TRADUZIONE: SysexOffset (0-50) -> customIndex (1-51)
-- IMPORTANTE: tostring perché le proprietà sono stringhe
local customIndex = tostring(sysexOffset + 1)
local mod = panel:getModulatorWithProperty("modulatorCustomIndex", customIndex)
if mod ~= nil then
mod:setModulatorValue(value, false, true, false)
else
console("ERR: Index " .. (sysexOffset + 1) .. " NOT FOUND!")
end
end
panel:setProgramState(false)
setStatus("Patch Synchronized!")
end
end |
|
@dnaldoog Now, I'm asking you kindly: |
|
So if you want other people to use your source code, .bpanelz is no different to .panel. It's actually a compressed form of the panel (an xml file) that includes resources, like images and fonts etc. So it would be totally redundant to include both! Panel lock just means if someone is in edit mode, they can move modulators with the mouse, otherwise they have to use keys, but i tend to lock the panel when releasing. :) |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Subject: [Release] Korg EX-8000 Panel for ctrlrX
Hi everyone,
I am pleased to share my second project made with ctrlrX: a dedicated panel for the Korg EX-8000. It was developed on Linux Mint using ctrlrX 5.6.35 and is fully functional with my hardware.
I wanted to share this to show my gratitude to the open-source community and everyone working on wonderful projects like ctrlrX. Contributing my panels is my way of giving back.
I would like to thank both Damien who continues the development of this project, and "dnaldoog" / John Goodland for his great support that he gave me in my journey of using ctrlrX!
Enjoy the panel!
Best regards, LinuxHRDW
20260602_Korg_EX8000_v.2.0.tar.gz
All reactions