|
|
|
02-09-2016, 03:43 PM
|
#1
|
Human being with feelings
Join Date: Feb 2016
Location: Paris / France
Posts: 293
|
[JSFX] MIDI CC Mapper X [Advanced MIDI filter/router/response curve tweaker and more]
This is the official thread for the Midi CC Mapper X JSFX .
The current version is 5.3.1 (2024, January the 29th) and it looks like this :
MIDI CC Mapper X is a fully-featured MIDI middleware (a midilware ?) that stands as an intermediary in your FX chain, and appears as a control panel where you can organize and modify the real time feel and behaviour of your MIDI controls ; routing, filtering, response curve tweaking, keyboard splitting, transposing and more.
Originally, it is an extended version of the original plugin called "MIDI CC Mapper". But it has grown in features with time.
A more exhaustive list of features :
- Tweak CC (or Channel Pressure) / Pitch Bend / Keyboard Velocity / Poly After Touch response curves :
- By using predefined curves, some of them being parametric
- By pen-drawing/prototyping custom curves
- By smoothing the current curve
- By restricting the range of values of your curve
- By extending the predefined curves with your own sets of functions (through lib files)
- The current curve can be exported and reused in your own sets
- Morph the response curves between a starting curve and an ending curve, with a morphing parameter
- The morphing parameter can be automated
- An auto-emit option is available to continuously fill the gaps with MIDI events when the morphing parameter changes
- Split/drop/channel re-route keyboard keys
- Transpose keyboard keys
- Re-route CCs / CP
- Re-route CC channels
- Channel re-route/drop CCs / CP / Pitch Bend / Velocity / Poly After Touch conditionally based on input/output values
- Pass through initial unmodified events (and act as a splitter)
- Handle High-Res input and Output for the CCs (CC/CC+32) and Keyboard velocity (CC#88 format).
- Channel pressure (aka global AfterTouch) is treated as any other CC so that the conversion between Global AT <> CC is done seamlessly.
It has now basic support for REAPER Midi Buses (it can be used on all buses at a time, or layered on one MIDI Bus, and it can be rerouted).
Installation / Update instructions
Current version is available through ReaPack, from the official ReaTeam/JSFX repo.
It is now the only advised way of installing MIDI CC Mapper X since it comes with a lot of data files.
Be sure to update without having any project open to avoid problems.
Obsolete version (v2) : https://stash.reaper.fm/28845/MIDI CC Mapper X
Obsolete version (v1) : https://stash.reaper.fm/26552/MIDI CC Mapper X
Donation
If you like MIDI CC Mapper X and want to donate to support the development, you can donate here :
Thanks a lot for your support !
Documentation
Here's an attempt of User Guide :
MIDI CC Mapper X 5.3 User Guide
MIDI CC Mapper X 5.2 User Guide
MIDI CC Mapper X 5.1 User Guide
MIDI CC Mapper X 5.0 User Guide
MIDI CC Mapper X 4.3 User Guide
MIDI CC Mapper X 4.3 User Guide
MIDI CC Mapper X 4.2 User Guide
MIDI CC Mapper X 4.1 User Guide
Customizing the curve library
The curve library is customizable. You can add/remove sets and curves and rearrange curve tabs. You can also export a curve from the UI to a file that you can reintegrate in the library.
To perform those advanced operations, an independent manual is located in the Data folder after installation, here :
<RESOURCE>/Data/talagan_MIDI CC Mapper X/README.md
Screenshots
Curve morphing in action during CC activity.
Value-based conditional filtering/routing
Changelog (from newer to older) :
V 5.3.1 - Bug Fix : Note OFF events with non-zero velocities should make keypress feedback indicator disappear
V 5.3 - Bug Fix : Note OFF velocities are not forced to zero anymore, but left intact
- Feature : Made the circ family parametric, with varying radius
- Feature : Added channel info on the keyboard indicator when playing MIDI notes
- Feature : Added x,y position display when free hand drawing
- Feature : Added xmirror, ymirror curve buttons
- Cosmetics : Reworked drawing toolbar buttons with xpm icons (pen, smooth, copy, paste)
- Cosmetics : Added tooltips on drawing toolbar buttons
- Cosmetics : Added pen mouse cursor when free hand drawing
V 5.2 - Feature : Added conditional filtering/routing for velocity.
- Feature : Added "follow Note ON" option for Poly AT conditional filtering/routing.
V 5.1 - Feature : Added conditional channel dropping/routing for CCs, CP, Pitch Bend and Poly AT.
- Hot fix : Pitch Bend : Display limits between 0..8191 instead of 0..127
- Bug fix : Poly AT widget disabled but with passthrough on would produce unnecessary events
- Hot fix : the drawing of the result curve when morphing would glitch on the first point (one frame late)
V 5.0 - Added curve morphing with automation for each control
- Added auto-emit MIDI events for automated morphed curves
- Relaxed transposition constraints on octavas (allow +/- 8 instead of +/- 2)
- Added call to freembuf to reduce memory footprint
V 4.3.1 - Added info notice in AfterTouch widgets to warn about the existence of the Channel Pressure virtual CC#128
V 4.3 - Moved HighRes MIDI input option from global settings to per-control setting
- Reworked HighRes MIDI CC input with one-event-forward lookup for LSB, and output with MSB/LSB order
- Reworked pitch bend MSB/LSB calculations to fix corner cases
- Added pitch bend reverse button
V 4.2 - Default value for keyboard ranges transposition is now ON instead of OFF (it feels more logical in the main flow)
- Added pass through option per control to keep original events and allow event duplication
V 4.1 - Reworked Channel Pressure (breaking change) : treat Channel Pressure as Virtual CC#128 in the UI to allow painless CC<>CP conversion.
V 4.0 - Reworked keyboard splitting : up to five ranges may be defined, each with its own routing, transpose parameters, velocity curve, after touch curve
- Added color blind highlighting
- Added support for Pitch Bend (symmetrical)
- Added support for After Touch
- Added support for Channel Pressure
- Added "firewall" params accordingly
- Added copy/paste curve
- Minor bug fixes
V 3.6 - Added MIDI Bus routing support as global setting.
V 3.5 - Function library system : functions are stored in a function lib with sets that are extensible
- Parametric sets : some sets are parametric, they can be used to generate an infinite number of curves
- User sets : the user can now import her/his own curves in the library
- Function export : MIDI CC Mapper X is now shipped with a script that exports the current curve
- Added support for all notes within the MIDI range (0-127).
- Bug fix for notes that could be transposed outside of midi range.
V 3.4 V 3.3 - Fix : HighRes midi velocity was not properly handled for MSB 1, LSB 0.
- Fix : HighRes midi velocity LSB was not sent on the proper CC (#88).
- Added a "pen" button to trigger pen mode, to avoid accidental clicks on the curve
- Added channel routing options for notes and ccs.
- Added firewall option for unrouted notes.
- Since red keys may now be kept due to channel re-routing, added an option to select what keys are transposed (All/Green/Red)
- Since red keys may now be kept due to channel re-routing, added an option to select what keys are affected by the velocity control (All/Green/Red)
- Added curve min/max behaviours : the user can now set some min/max limits on the curve, so that the curve is clamped between those bounds. Predefined curves will be adapted to that range and pen drawing will be restricted to that range too.
- And a bit of source code cleaning.
V3.2 - Added theme system, with two themes, Dark and Light.
- Reworked contrasts on Dark Theme.
- Bug fix : red curve feedback circle was a bit shifted if the CC was set to High Res.
V3.1c - Fixed bug introduced with transposition, notes were shifted by default.
- First release through ReaPack.
V3.1b - Fixed bug introduced in 3.1a, notes would have velocity at zero if the velocity curve was not enabled.
V3.1a - Added global settings pannel
- Added special control for adjusting the keyboard velocity curve
- Added global param to enable High-Res midi input (for input CC#0-31/32-63 and velocity with CC#88 norm) (default: off).
- Added per-control param to enable High-Res midi output (for output CC#0-31/32-63 and velocity with CC#88 norm) (default: off).
- Reworked UI to indicate High-Res midi behaviors.
- Added keyboard transpose options (enable/disable, 8vi, semi tones)
- Added "Drop unrouted CC messages" option (default: off).
V3 - Added Keyboard Filtering by key
- Added "Copy Src" button
- Bug Fix : faders realtime feedback was not working
- Simplified the bottom of the interface
- Clarified enable/disable buttons
- Enhanced mouse events management to avoid accidental clicks
Original post, for archiving purposes
Hello everyone!
Here's a small contribution for Reaper that I've developed a few days ago. I've just discovered that exceptional DAW and spent hours in a row toying with all its features and that was pure pleasure!
But at one stage there was something that I was missing which was the ability to fine tweak the response curves of my MIDI keyboard controls (especially the knobs), and despite my search on forums I could not find what I was looking for ; so maybe it's just me being clumsy doing my research, but anyway it was a good opportunity to test the JS SDK!
So here's a screenshot of the plugin :
As you can see, it's a modification of the Midi CC Mapper plugin that comes with Reaper. I removed the clamp feature because you can do it with my version.
The idea is simple, it's all about editing the response curve, either by choosing one in the "template library" on the right, or by drawing your own curve directly with the mouse (and smoothe afterwards it if you're bad at drawing). Or you can choose a curve in the library and draw some modifications. At start I wanted to put some bezier curve editing but it was more work so sorry for that. And at second glance, I'm happy with the draw / smoothe approach which is fun.
The plugin gives some real time feedback on the curve (the small red circle) to check if you what you hear is really what you want.
I've left the ability to remap the control to another one, I think that one's really cool when you don't want do modify the preset that you use in your VSTi for example.
Tell me if you find it useful / cool or whatever (or completely unuseful on the contrary), and if you see some bugs / things to improve. I've put quite a large bunch of templates in the "curve template library" but it can be augmented.
Thanks for reading!
Ben
Last edited by Talagan; 01-29-2024 at 02:38 PM.
Reason: Updated documentation.
|
|
|
02-09-2016, 03:53 PM
|
#2
|
Human being with feelings
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
|
Hello Talagan and welcome to these forums. You'll find many helpful people here and a lot of useful information. Make sure that you get the excellent User Guide too:
http://www.cockos.com/reaper/userguide.php
For a first post on the forum, that is exceptionally good. Well done. Of course, you'll get hooked on JSFX then EEL and LUA and be locked in for ever. .
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
Last edited by DarkStar; 02-10-2016 at 03:29 AM.
|
|
|
02-09-2016, 06:08 PM
|
#3
|
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 9,875
|
That's why I called a first contributions.
Well done sir, thanks for sharing !
|
|
|
02-09-2016, 06:31 PM
|
#4
|
Human being with feelings
Join Date: Jun 2012
Location: Spain
Posts: 7,239
|
I wonder what can you do next if this is your first just discovered REAPER thing
Very good!
Thank you and welcome to this place
|
|
|
02-10-2016, 04:15 AM
|
#5
|
Human being with feelings
Join Date: Feb 2016
Location: Paris / France
Posts: 293
|
Many thanks to you three for your warm welcoming! I'm glad that I could share my enjoyment on this plug-in. I'll definitely have a closer look at the hidden corners of the user guide, there seems to have plenty of treasures in there!
I hope I'll have plenty of other good ideas in a next future, but for the moment I've got to take care of my growing addiction
|
|
|
02-10-2016, 08:22 AM
|
#6
|
Human being with feelings
Join Date: Oct 2010
Posts: 83
|
Hey there,
great work and welcome to the reaper community ^^
Have a look on my plug in: http://forum.cockos.com/showthread.php?t=121787
I´m currently working on a new version, that will support 14bit midi and a lot more...(huge steps are already done)
If you want we can combine some of our ideas to make it even better?
Oh and BTW, if you install reaper you`ll stick with it.... and if it does not do what you want, you modify it so welcome to this trap ^^
regards,
Hubi
|
|
|
01-04-2017, 06:05 AM
|
#7
|
Human being with feelings
Join Date: Jan 2017
Posts: 3
|
Nice but how do you scale your MIDI CC with VST parameters?
Hi Talagan,
I love it but how can you scale your MIDI CC with VST parameters if you cannot enter a low value? Let's say I don't want to start with a MIDI CC=0 but a MIDI CC=16 instead. How do I do that?
Last edited by Proximac; 01-04-2017 at 06:12 AM.
|
|
|
01-04-2017, 07:39 AM
|
#8
|
Human being with feelings
Join Date: Feb 2016
Location: Paris / France
Posts: 293
|
Hi Proximac,
Thanks for your comment! The curve may not start at CC=0 and finish at CC=127, but can use all intermediary values and have any shape as long as it is a function from [0..127] to [0..127], just draw any curve with your mouse as if it was a pen, not starting at 0, but higher and it should be ok (see attachement).
However, since my first purpose was to have an analogous, continuous behavior with a quick draw method, there is no 'fine-grain' control of the values of the curve with a precise CC value input, and there's no precise CC value feedback. So if you try to aim, say CC=16 precisely, not 17, not 15, it may be a bit hard.
Does this answer your question, do you have any concrete example where that kind of fine tuning (almost programmatical) would be useful? If so, I'd be happy to add some tools to achieve that to my todo list!
Ben
Last edited by Talagan; 01-04-2017 at 07:49 AM.
|
|
|
01-11-2017, 09:31 AM
|
#9
|
Human being with feelings
Join Date: May 2010
Location: Norway
Posts: 7,318
|
Thanks a lot!
I can't get the updated version to work,
and the old one shows up with missing graphics.
v2: How do I sett pass through to "No"?
__________________
Reaper x64, win 11
Composer, text-writer, producer
Bandcamp
|
|
|
06-13-2019, 11:11 AM
|
#10
|
Human being with feelings
Join Date: Feb 2016
Location: Paris / France
Posts: 293
|
Hey everyone,
These last days I've been dusted this plugin, and here's the V3.
A long time wish was to add the ability to filter out some keys from the MIDI controller. The aim is to be able to achieve keyboard split/dual/etc between multiple tracks. To enable the filter, simply enable the top part of the plugin with the button and colorize in red or green the keys you want to silence or pass to the rest of the chain.
As well, there are a few other things that have changed, here's a changelog for V3 :
- Added Keyboard Filtering by key
- Added "Copy Src" button
- Bug Fix : faders realtime feedback was not working
- Simplified the bottom of the interface
- Clarified enable/disable buttons
- Enhanced mouse events management to avoid accidental clicks
You can download the plugin from the stash here : https://stash.reaper.fm/36552/MIDI%20CC%20Mapper%20X
@G-Sun : I'm completely sorry I've missed your answer! It's been a long while, I'm not even sure I understand your questions now - might it be possible you've messed up between my plugin and the original one?
Ben
Last edited by Talagan; 06-13-2019 at 11:22 AM.
|
|
|
06-14-2019, 02:44 PM
|
#11
|
Human being with feelings
Join Date: Apr 2016
Location: Ukraine
Posts: 49
|
Very usfull plugin and nice GUI!
It would be really cool if you added velocity and transpose. One MIDI JS for all needs, this is what I dream.
Thanks!
|
|
|
11-30-2022, 11:55 AM
|
#12
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by Talagan
[*] Hot fix : Pitch Bend : Display limits between 0..8191 instead of 0..127
|
Should not that be twice that range, going from -819. to +8191? Or 0..16...
|
|
|
11-30-2022, 02:04 PM
|
#13
|
Human being with feelings
Join Date: Feb 2016
Location: Paris / France
Posts: 293
|
Quote:
Originally Posted by TonE
Should not that be twice that range, going from -819. to +8191? Or 0..16...
|
You're completely right ; but since MIDI CC Mapper X treats Pitch Bend symmetrically, only the positive part is shown/editable (hence the 0..8191), and thus the negative part follows
|
|
|
11-30-2022, 02:38 PM
|
#14
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
How could I miss this gem?!
|
|
|
11-30-2022, 04:21 PM
|
#15
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by vitalker
How could I miss this gem?!
|
My main source for missing cool stuff is, Reaper not showing all actions in action list, even those are sitting as files in the Scripts directory. Not sure if there is a solution for this. Maybe I have too many actions, or was in the past, after Reapers changing stuff maybe it improved, maybe still not yet. So it might take a while I discover something, only because Reaper did not list it in actions window. Only with some accident I discover it over multiple corners.
|
|
|
12-01-2022, 12:56 AM
|
#16
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by TonE
My main source for missing cool stuff is, Reaper not showing all actions in action list, even those are sitting as files in the Scripts directory. Not sure if there is a solution for this. Maybe I have too many actions, or was in the past, after Reapers changing stuff maybe it improved, maybe still not yet. So it might take a while I discover something, only because Reaper did not list it in actions window. Only with some accident I discover it over multiple corners.
|
Maybe you've put scripts manually into folder and forgot to import it in actions dialog?
|
|
|
11-30-2022, 04:18 PM
|
#17
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by Talagan
You're completely right ; but since MIDI CC Mapper X treats Pitch Bend symmetrically, only the positive part is shown/editable (hence the 0..8191), and thus the negative part follows
|
I see cool. I was assuming you implemented all correctly anyway, just had this thought while reading here, commented quickly.
|
|
|
06-12-2023, 05:45 AM
|
#18
|
Human being with feelings
Join Date: Nov 2011
Posts: 95
|
Thank you so much for this amazing plugin, which I use in every single live project.
Could I make one small request - would it be possible to drop / not route PC messages too? For very boring reasons I've got some issues arising from CCMX passing PCs through when I want it to filter pretty much all MIDI that isn't being directly processed by it.
|
|
|
06-12-2023, 06:11 AM
|
#19
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by jimbobbley
Could I make one small request - would it be possible to drop / not route PC messages too? For very boring reasons I've got some issues arising from CCMX passing PCs through when I want it to filter pretty much all MIDI that isn't being directly processed by it.
|
These JSFX may be helpful for both you and Talagan (in case they want to implement this). Both scripts are not mine, but from this user. The first one allowing to filter one type of messages/event independently, another one is the same, but also allowing to send specific type to other channel (third state for dropdown lists).
If you have Reapack, there is already a similar JSFX in it called "MIDI Event Filter" by mabian.
Code:
desc:MIDI Message Filter with SySex v7
slider1:0<0,1,1{ON,OFF}}>Note off :
slider2:0<0,1,1{ON,OFF}}>Note on :
slider3:0<0,1,1{ON,OFF}}>Polyphonic Aftertouch :
slider4:0<0,1,1{ON,OFF}}>Control Change :
slider5:0<0,1,1{ON,OFF}}>Program Change :
slider6:0<0,1,1{ON,OFF}}>Channel Aftertouch :
slider7:0<0,1,1{ON,OFF}}>Pitch Bend Change :
slider8:0<0,1,1{ON,OFF}}>Sysex :
in_pin:none
out_pin:none
@block
while(len = midirecv_buf(offset, buf, 65535))
(
pass = 1;
s = buf[0] & 0xF0;
slider1 && s == 0x80 ? pass = 0; // Note Off
slider2 && s == 0x90 ? pass = 0; // Note On
slider3 && s == 0xA0 ? pass = 0; // Polyphonic Aftertouch
slider4 && s == 0xB0 ? pass = 0; // Control Change
slider5 && s == 0xC0 ? pass = 0; // Program Change
slider6 && s == 0xD0 ? pass = 0; // Channel Aftertouch
slider7 && s == 0xE0 ? pass = 0; // Pitch Bend
slider8 && s == 0xF0 ? pass = 0; // SysEx
pass ? midisend_buf(offset, buf, len);
);
Code:
desc:MIDI Message Filter with Channel Change
slider1:1<0,2,1{OFF,ON,Change Channel}>Note off :
slider2:1<1,16,1>NoteOff Channel :
slider4:1<0,2,1{OFF,ON,Change Channel}>Note on :
slider5:1<1,16,1>NoteOn Channel :
slider7:1<0,2,1{OFF,ON,Change Channel}>PolyAftertouch :
slider8:1<1,16,1>PolyAftertouch Channel :
slider10:1<0,2,1{OFF,ON,Change Channel}>Control Change :
slider11:1<1,16,1>CC Channel :
slider13:1<0,2,1{OFF,ON,Change Channel}>Program Change :
slider14:1<1,16,1>PC Channel :
slider16:1<0,2,1{OFF,ON,Change Channel}>Channel Aftertouch :
slider17:1<1,16,1>ChanAftertouch Channel :
slider19:1<0,2,1{OFF,ON,Change Channel}>Pitch Bend Change :
slider20:1<1,16,1>Channel PB Change :
slider22:0<0,1,1{ON,OFF}>Sysex :
in_pin:none
out_pin:none
@block
while(len = midirecv_buf(offset, buf, 65535))
(
ChannelNoteOff = slider2-1;
NoteOff=(buf[0]<=$x8F)||((buf[0]<=$x9F)&&(buf[2]==0)); //(buf[0]<=$x9F)&&(buf[2]==0)
NoteOff&&(slider1==0)?
(
MidiMessage = 0; //midi block
):(
NoteOff&&(slider1==1)?
(
midisend_buf(offset,buf,len);
):(
NoteOff&&(slider1==2)?
(
buf[0]=((buf[0]&$xF0)+ChannelNoteOff); //buf[0]&$xF0 - обнуление младших разрядов в buf[0] (msg1)
midisend_buf(offset,buf,len);
);
);
);
ChannelNoteOn = slider5-1;
NoteOn=((buf[0]>=$x90)&&(buf[0]<=$x9F)&&(buf[2]>0));
NoteOn&&(slider4==0)?
(
MidiMessage = 0;
):(
NoteOn&&(slider4==1)?
(
midisend_buf(offset,buf,len);
):(
NoteOn&&(slider4==2)?
(
buf[0]=((buf[0]&$xF0)+ChannelNoteOn);
midisend_buf(offset,buf,len);
);
);
);
ChannelPolyAftertouch = slider8-1;
PolyAftertouch=((buf[0]>=$xA0)&&(buf[0]<=$xAF));
PolyAftertouch&&(slider7==0)?
(
MidiMessage = 0;
):(
PolyAftertouch&&(slider7==1)?
(
midisend_buf(offset,buf,len);
):(
PolyAftertouch&&(slider7==2)?
(
buf[0]=((buf[0]&$xF0)+ChannelPolyAftertouch);
midisend_buf(offset,buf,len);
);
);
);
ChannelContrChange = slider11-1;
ContrChange=((buf[0]>=$xB0)&&(buf[0]<=$xBF));
ContrChange&&(slider10==0)?
(
MidiMessage = 0;
):(
ContrChange&&(slider10==1)?
(
midisend_buf(offset,buf,len);
):(
ContrChange&&(slider10==2)?
(
buf[0]=((buf[0]&$xF0)+ChannelContrChange);
midisend_buf(offset,buf,len);
);
);
);
ChannelProgChange = slider14-1;
ProgChange=((buf[0]>=$xC0)&&(buf[0]<=$xCF));
ProgChange&&(slider13==0)?
(
MidiMessage = 0;
):(
ProgChange&&(slider13==1)?
(
midisend_buf(offset,buf,len);
):(
ProgChange&&(slider13==2)?
(
buf[0]=((buf[0]&$xF0)+ChannelProgChange);
midisend_buf(offset,buf,len);
);
);
);
ChannelChanAftertouch = slider17-1;
ChanAftertouch=((buf[0]>=$xD0)&&(buf[0]<=$xDF));
ChanAftertouch&&(slider16==0)?
(
MidiMessage = 0;
):(
ChanAftertouch&&(slider16==1)?
(
midisend_buf(offset,buf,len);
):(
ChanAftertouch&&(slider16==2)?
(
buf[0]=((buf[0]&$xF0)+ChannelChanAftertouch);
midisend_buf(offset,buf,len);
);
);
);
ChannelPBChange = slider20-1;
PBChange=((buf[0]>=$xE0)&&(buf[0]<=$xEF));
PBChange&&(slider19==0)?
(
MidiMessage = 0;
):(
PBChange&&(slider19==1)?
(
midisend_buf(offset,buf,len);
):(
PBChange&&(slider19==2)?
(
buf[0]=((buf[0]&$xF0)+ChannelPBChange);
midisend_buf(offset,buf,len);
);
);
);
((buf[0] >= 0xF0)&&(slider22==0))? midisend_buf(offset,buf,len); // if receive SySex
);
|
|
|
08-29-2023, 03:10 AM
|
#20
|
Human being with feelings
Join Date: Oct 2021
Posts: 11
|
Is it possible to use this plug-in to remap MIDI program change messages? (e.g. keyboard controller sends bank 0, program 17 and the target synthesizer needs bank 2, program 43). If not, might someone know of a solution?
|
|
|
08-29-2023, 04:11 AM
|
#21
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
|
Quote:
Originally Posted by XTU
Is it possible to use this plug-in to remap MIDI program change messages? (e.g. keyboard controller sends bank 0, program 17 and the target synthesizer needs bank 2, program 43). If not, might someone know of a solution?
|
For converting handling a list of multiple target valuse, you can use ReaPack -> Midi CC table.
|
|
|
08-29-2023, 07:57 AM
|
#22
|
Human being with feelings
Join Date: Oct 2021
Posts: 11
|
Quote:
Originally Posted by mschnell
For converting handling a list of multiple target valuse, you can use ReaPack -> Midi CC table.
|
Thanks so much!
|
|
|
Thread Tools |
|
Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 12:50 PM.
|