Version 1
The purpose here is when transcribing synth patches to help understand them, I want two close notes on the keyboard, e.g. C and D, to map to the C on one or other. This
desc: jda simple midi split 1
slider1:63<0,127,1>split point
slider2:0<-4,4,1>left octave
slider3:0<-12,12,1>left semi
slider4:0<-4,4,1>right octave
slider5:0<-12,12,1>right semi
@init
setsplit = 0;
@slider
splitpoint = slider1;
ltrans = slider2*12 + slider3;
rtrans = slider4*12 + slider5;
@block
while(midirecv(offset,msg1,msg2,msg3)) (
status = msg1 & 0xF0;
( status == 0xB0 && msg2 == 14 ) ? (
// change split point
setsplit = 1;
) : ( status == 0x90 || status == 0x80 ) ? (
( setsplit == 1 && status == 0x90 ) ? (
slider1 = msg2;
sliderchange(slider1);
setsplit = 0;
) : ( msg2 < slider1 ) ? (
msg1 = status;
m = msg1;
msg2 += ltrans;
( msg2 < 0 ) ? ( msg2 = 0);
( msg2 > 127 ) ? ( msg2 = 127);
midisend(offset,msg1,msg2,msg3);
) : (
msg1 = status | 1;
n = msg1;
msg2 += rtrans;
( msg2 < 0 ) ? ( msg2 = 0);
( msg2 > 127 ) ? ( msg2 = 127);
midisend(offset,msg1,msg2,msg3);
);
) : (
midisend(offset,msg1,msg2,msg3);
);
);