Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 05-24-2020, 05:13 AM   #121
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

'kay! It's because I've enabled the "want_all_kb" option. It's needed to make the input lines (for the control names) more keyboard user friendly (they can react to esc/enter). This makes the plugin capture a lot of other keyboard events.

If you don't want that behavior, you can disable it. The equivalent in REAPER's UI is reached by Right-Clicking the plugin in the plugin window, and in the popup menu, uncheck the "Send all keyboard input to plug-in". That way, the plugin inputs will be less user friendly, but the plug-in will let more keyboard events pass through.

Hope that'll work for you, just tell me if it solves your issue.

Last edited by Talagan; 05-24-2020 at 05:25 AM.
Talagan is offline   Reply With Quote
Old 05-24-2020, 07:23 AM   #122
Broojacker
Human being with feelings
 
Join Date: Apr 2016
Location: Ukraine
Posts: 49
Default

Thanks Talagan, it`s helped me. I will re save my Vsti templates with disabled "Send all keyboard input to plug-in".
__________________
soundcloud
Broojacker is offline   Reply With Quote
Old 05-24-2020, 09:34 AM   #123
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by Broojacker View Post
Thanks Talagan, it`s helped me. I will re save my Vsti templates with disabled "Send all keyboard input to plug-in".
Great! Have fun with the plugin
Talagan is offline   Reply With Quote
Old 05-26-2020, 03:57 PM   #124
SeanTypedThis
Human being with feelings
 
Join Date: Nov 2012
Location: Oakland, CA
Posts: 103
Default MIDI Bus Support

Hi!

I have to say that I really love your plugin, it has become indispensable in tuning instruments and linking parameters, thank you for all of your time and effort. The updates just keep getting better and better.

I was just wondering if it would be possible to add MIDI bus support to the main branch for Reapack by adding this to the @init:

https://www.reaper.fm/sdk/js/midi.php#js_midi_bus

I've been using it with MIDI Performer 2 by Thrash Jazz Assassin, which splits controller sends by buses, which a jsfx won't recognize without that code. I can manually add those lines to your plugin, but when I re-sync with Reapack, it'll replace any edits I have done.

If it's not too much trouble and wouldn't mess anything else up, I'd appreciate the addition.

Thanks so much again, hope you are well!
__________________
YouTube
SeanTypedThis is offline   Reply With Quote
Old 05-27-2020, 01:53 AM   #125
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Hi Sean, thanks a lot for your kind words! This plugin would not have evolved with the help and remarks of all the people who've participated to this thread, so there's no trouble here, but on the contrary your participation is more than welcomed!

I'm not familiar at all with REAPER midi buses, so basically, as I understand it, you'd like to add ext_midi_bus=1 to the @init section of the plugin. That's just it right ?

If so, this is really easy, and I'd be glad to add it for you to the repository. The only thing that I don't really measure is the potential impact of enabling ext_midi_bus on the plugin for users who are already using it. Is there a chance that it could break their flow/projects? Could someone with a deeper knowledge of midi buses enlighten me on that matter, please?
Talagan is offline   Reply With Quote
Old 05-28-2020, 04:59 PM   #126
SeanTypedThis
Human being with feelings
 
Join Date: Nov 2012
Location: Oakland, CA
Posts: 103
Default

Whoops, thought I was subscribed to the thread, thanks for the quick reply!

But correct, I BELIEVE that's all it would require, or rather:

Code:
@init
ext_noinit = 1.0; // Prevents running @init on playback and resetting midi state
ext_midi_bus = 1; // causes midi_bus to be used for send/recv and midirecv() receives on all buses

Which I got from this thread after looking for reference to it all over:
https://forums.cockos.com/showthread.php?t=192197

As far as busess, I started using a tool Called MIDI Performer by ThrashJazzAssassin:

https://forum.cockos.com/showthread.php?t=216034

Before then I'd never thought about using MIDI buses or really explored how they functioned. In searching, I've found reference to people using them for vsti3 and film score composing so they have access to routing massive amounts of virtual instruments.

The only workaround that wouldn't include editing the jsfx I've sort of found is adding MidiToReaControlPath to the beginning of the fx chain I'm routing performer to, to have it send the midi to midi my desired midi bus before your plugin, and then it responds for the most part...but something doesn't react quite as well, it might; be the actual vsti instrument getting double messages from somewhere.

Well anyway it seems pretty simple, I've done it and it didn't seem to mess anything up with my setup, but I can't really tell you if there are any pitfalls; I don't know enough about coding and JSFX by any means to do that, haha...

I think the authors in those two threads would be the ones to ask if they're watching!

Thanks again!
__________________
YouTube
SeanTypedThis is offline   Reply With Quote
Old 05-29-2020, 01:33 AM   #127
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Ok! Many thanks for the detailed explanation. As far as I understand it, MIDI Buses are MIDI super-channels, one level higher than MIDI channels, and since that does not exist in the MIDI norm, it's a pure REAPER abstraction. It allows thus quite complex inter-track setups.

If I understand it correctly too, there's a chance to break existing setups, for people using the plugin in a context where multiple buses are involved and relying on the fact that MIDI CC Mapper X only affects Bus 1. Not sure if those people exist

So I believe that one clean way to add support for MIDI Buses in MIDI CC Mapper X would be to have bus routing options as global parameters for the plugin :

MIDI Bus In : ("Any" or 1-16, default 1)
MIDI Bus Out : ("As In" or 1-16, default "As In")

This is the same spirit as for the channel routing options, but not scoped per CC/Keyboard ranges. Seems to me logical and enough for Mapper X to be layered per-Bus. And if a user needs to make it work on all buses at a time he/she can use the "Any" option.

What's your opinion? Does it look reasonable? If so, that would not take too much effort to implement.

EDIT: The only thing I'm hesitating on is the default value of the "MIDI Bus In" option. Would seem to me more uniform and logical to have "Any" by default. The default value "1" would mainly be for retro-compatibility.

Last edited by Talagan; 05-29-2020 at 02:12 AM.
Talagan is offline   Reply With Quote
Old 05-29-2020, 05:02 AM   #128
SeanTypedThis
Human being with feelings
 
Join Date: Nov 2012
Location: Oakland, CA
Posts: 103
Default

Bus routing options as glabal parameters would be amazing! =)

And being able to assign specific channels per plugin is more than I was even thinking about/asking for; that would open up so many possibilities!

I agree with your thoughts on using "any" vs MIDI bus 1 as default..any would be cleaner and make more sense, where as bus 1 would ensure nobody (on some off chance) comes up with a broken signal chain...

Thinking about it a little more, maybe defaulting to bus 1 would make some sense, because it is the same way Reaper is set by default; to have plugins respond to anything but bus 1, you have to do some digging.
Personally, defaulting to "Any" sounds most logical, but it does seem like for now, MIDI buses are an obscure feature hiding in plain site, so keeping it out of the way so people don't accidentally confuse their routing might be for the best.

In any case, again, I really appreciate your hard work, and thank you for keeping an open ear!
__________________
YouTube
SeanTypedThis is offline   Reply With Quote
Old 05-29-2020, 07:20 AM   #129
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by SeanTypedThis View Post
And being able to assign specific channels per plugin is more than I was even thinking about/asking for; that would open up so many possibilities!
Note this is already possible (though not documented), this can already be done on a per-CC basis, and for the keyboard you can reroute channels on a per-colored range basis. So it's more precise than the future bus option which will offer one routing path for the whole plugin only.

Quote:
Originally Posted by SeanTypedThis View Post
Thinking about it a little more, maybe defaulting to bus 1 would make some sense, because it is the same way Reaper is set by default; to have plugins respond to anything but bus 1, you have to do some digging.
This is the killer argument. You're right, let's go with this.

Quote:
Originally Posted by SeanTypedThis View Post
In any case, again, I really appreciate your hard work, and thank you for keeping an open ear!
You're welcome! Many thanks to you, all these remarks make things get better and better. I'll try to get this working asap and notify you in this very thread when everything's in place. Until then, I think you can live with your @init patch safely.
Talagan is offline   Reply With Quote
Old 05-29-2020, 01:54 PM   #130
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Hi Sean & all,

3.6 is out through Reapack.

Changelog:

- Added MIDI Bus routing support as global setting.

@Sean, tell me if it fixes your problems. Thanks again for having reported it
Talagan is offline   Reply With Quote
Old 05-30-2020, 01:55 AM   #131
SeanTypedThis
Human being with feelings
 
Join Date: Nov 2012
Location: Oakland, CA
Posts: 103
Default

Quote:
Originally Posted by Talagan View Post
Hi Sean & all,

3.6 is out through Reapack.

Changelog:

- Added MIDI Bus routing support as global setting.

@Sean, tell me if it fixes your problems. Thanks again for having reported it
Thank you so much! Already synchronized Reapack, but I'll be away from my midi rig until tomorrow night, at which point I plan to put it through it's paces. =)

I neglected to mention that MIDI Logger (v2 I think) by DarkStar was a great help to me when testing, it can tell you a lot of info about your MIDI CC including what BUS your MIDI is on. Has some nice color coding so it's a little easier to differentiate certain messages:

https://forum.cockos.com/showthread.php?t=189126

Get back to you soon!
__________________
YouTube
SeanTypedThis is offline   Reply With Quote
Old 05-30-2020, 01:59 AM   #132
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by SeanTypedThis View Post
I neglected to mention that MIDI Logger (v2 I think) by DarkStar was a great help to me when testing, it can tell you a lot of info about your MIDI CC including what BUS your MIDI is on. Has some nice color coding so it's a little easier to differentiate certain messages
Haha, I use exactly the same tool for debugging, a must have!

Quote:
Originally Posted by SeanTypedThis View Post
Thank you so much! Already synchronized Reapack, but I'll be away from my midi rig until tomorrow night, at which point I plan to put it through it's paces. =)
Ok, thanks a lot! Waiting for your feedback then :-)
Talagan is offline   Reply With Quote
Old 05-31-2020, 05:03 AM   #133
SeanTypedThis
Human being with feelings
 
Join Date: Nov 2012
Location: Oakland, CA
Posts: 103
Default

Quote:
Originally Posted by Talagan View Post
Haha, I use exactly the same tool for debugging, a must have!



Ok, thanks a lot! Waiting for your feedback then :-)
Hah, then its another case of the MIDI bus hiding in plain site, as MIDI logger has the same @init code. And much agreed, always let's me know exactly what's going on with my MIDI.

I just got a chance to try out your update, and it works flawlessly! I can set it per bus per instance, and not an error in operation that I can see. Thank you so much for working with me on this! Oh, small detail, I don't have it up now, but I think the version still said 3.5 at the bottom if that is a big deal to you...can't say it bothers me. =)

I'll probably be using it a lot in the coming week, and I'll definitely let you know if anything comes up, but for now pacific standard time is calling and I need to get some rest...

Thanks again!
__________________
YouTube
SeanTypedThis is offline   Reply With Quote
Old 05-31-2020, 05:26 AM   #134
STOP
Human being with feelings
 
STOP's Avatar
 
Join Date: Jul 2013
Location: Québec
Posts: 482
Default

Nitpick, updating header 3.5 to 3.6

// Header text gfx_rgb(TH.HEADER_TEXT);
gfx_x = 6; gfx_y = gfx_h - 14;
gfx_drawstr("Midi CC Mapper X (3.6) by Benjamin 'Talagan' Babut - Dedicated to Kenji Kawai");
STOP is offline   Reply With Quote
Old 05-31-2020, 05:55 AM   #135
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by SeanTypedThis View Post
Hah, then its another case of the MIDI bus hiding in plain site, as MIDI logger has the same @init code. And much agreed, always let's me know exactly what's going on with my MIDI.

Oh, small detail, I don't have it up now, but I think the version still said 3.5 at the bottom if that is a big deal to you...can't say it bothers me. =)
Quote:
Originally Posted by STOP View Post
Nitpick, updating header 3.5 to 3.6

// Header text gfx_rgb(TH.HEADER_TEXT);
gfx_x = 6; gfx_y = gfx_h - 14;
gfx_drawstr("Midi CC Mapper X (3.6) by Benjamin 'Talagan' Babut - Dedicated to Kenji Kawai");
Haha, thank you guys for noticing! Could be misleading for users so it's better if fixed. I've pushed a fix which just needs to be merged to the repo. EDIT: merged, many thanks to @cfillion!

Quote:
Originally Posted by SeanTypedThis View Post
I just got a chance to try out your update, and it works flawlessly! I can set it per bus per instance, and not an error in operation that I can see. Thank you so much for working with me on this!
It's all my pleasure! Thanks a lot for having kindly reported it to me and taken the time to point MIDI Buses out to me. I was completely unaware of them and these can become a very useful tool in the future. As always REAPER is full of good surprises.

Last edited by Talagan; 05-31-2020 at 08:38 AM.
Talagan is offline   Reply With Quote
Old 06-01-2020, 04:30 PM   #136
SeanTypedThis
Human being with feelings
 
Join Date: Nov 2012
Location: Oakland, CA
Posts: 103
Default

Quote:
Originally Posted by Talagan View Post
Haha, thank you guys for noticing! Could be misleading for users so it's better if fixed. I've pushed a fix which just needs to be merged to the repo. EDIT: merged, many thanks to @cfillion!
Haha, it's quite alright, I just did a bit of a double take and wondered if I messed up synchronizing Reapack, but the new features were right where you said they'd be.

I've been using it the last couple days without a glitch! The way you implemented the bus system makes it so useful and flexible.

Say, if I forget I changed the routing on a vsti, or saved it as a template but want a quick way to experiment without messing with the MIDI bus routing, I can just have your plugin translate incoming MIDI messages to any bus without breaking a sweat; this is so useful and convenient (and fool proof...which is good for me, haha). It just saves so much digging through menus on individual tracks.

Hmm, I might just set all the instruments back to bus 1 and have your plugin handle the bulk of the incoming bus routing!

Quote:
Originally Posted by Talagan View Post
It's all my pleasure! Thanks a lot for having kindly reported it to me and taken the time to point MIDI Buses out to me. I was completely unaware of them and these can become a very useful tool in the future. As always REAPER is full of good surprises.
Then I have to send my thanks to ThrashJazzAssassin and his plugins, who I'm sure has thanks for someone else, which is always the great thing about this community. =)

But I Completely agree. With REAPER, I often find that I feel I'm still stuck somewhere on the surface..just never fails to surprise or get deeper.

Again, thanks for sharing your time and work! Hope all is well enough at the moment!
__________________
YouTube
SeanTypedThis is offline   Reply With Quote
Old 06-02-2020, 04:25 AM   #137
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

Quote:
Originally Posted by Talagan View Post
- Added MIDI Bus routing support as global setting.
This is great !
IMHO it's a glitch of Reapers that (AFAIK) JSFXes that don't handle Midi Bus internally, can't benefit from the Midi bus selection done for VSTs with the [I/O] setting. Seemingly JSFXes with ext_midi_bus=0; (Midi bus handling disabled) seem always to receive and send Midi bus 1.

-Michael
mschnell is offline   Reply With Quote
Old 06-03-2020, 01:23 AM   #138
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by SeanTypedThis View Post
I've been using it the last couple days without a glitch! The way you implemented the bus system makes it so useful and flexible.

Say, if I forget I changed the routing on a vsti, or saved it as a template but want a quick way to experiment without messing with the MIDI bus routing, I can just have your plugin translate incoming MIDI messages to any bus without breaking a sweat; this is so useful and convenient (and fool proof...which is good for me, haha). It just saves so much digging through menus on individual tracks.
[...]
Then I have to send my thanks to ThrashJazzAssassin and his plugins, who I'm sure has thanks for someone else, which is always the great thing about this community. =)
Awesome! I'm really pleased that you've found your happiness in the plugin and that it fits the needs of your flow, all the more that MIDI routing was not the primary purpose of the plugin and it was only introduced lately on @Dex's clever remarks. At the end, I've just followed REAPER's paradigms which is "all or one" source, and structurally, that works really well : I like the fact that simple and coherent principles determine the whole structure and philosophy of a system. In the meanwhile, I was not aware that people could have so precise needs regarding MIDI routing: I've seen posts with people asking how to do conditional routing on CC/velocity values/ranges, etc. It's really hard (and probably utopical) to design a tool that fits all flows ; the cool thing with REAPER is that it provides an open scripting API and let external developers implement those various philosophies. MIDI Performer by ThrashJazzAssassin offers another philosophy for routing and filtering, and it looks so powerful and brilliant!

Quote:
Originally Posted by mschnell View Post
This is great !
IMHO it's a glitch of Reapers that (AFAIK) JSFXes that don't handle Midi Bus internally, can't benefit from the Midi bus selection done for VSTs with the [I/O] setting. Seemingly JSFXes with ext_midi_bus=0; (Midi bus handling disabled) seem always to receive and send Midi bus 1.
Thanks Michael, and for always taking the time to comment and share constructive ideas! I do agree with you, it looks like a retro-compatibility choice at the time they've implemented MIDI-buses, it feels a bit awkward now - but I'm still a bit lost in the happy world of MIDI-buses to understand all the aspects of that choice

Quote:
Originally Posted by SeanTypedThis View Post
Again, thanks for sharing your time and work! Hope all is well enough at the moment!
Be well and have a nice time recording!
Talagan is offline   Reply With Quote
Old 06-09-2020, 12:34 AM   #139
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Excellent work!

Can you add pitch band Value(-8192~8191) curve Remapping ?

and in cc remapping, i suggest adding Channel pressure(Aftertouch) as a choice ?

in addition, It is better to expose Semitones as parameters for envelopes automation .

Sorry for my poor english.
sylion is offline   Reply With Quote
Old 06-09-2020, 01:36 AM   #140
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by sylion View Post
Excellent work!
Hi Sylion, thanks for your comments and for your interest!

Quote:
Originally Posted by sylion View Post
Can you add pitch band Value(-8192~8191) curve Remapping ?
I knew someone would ask one day The difficulty here is to provide a coherent UI, since in 95% of the cases, one would like to keep some kind of symmetry or at least, stay centered on 0. But maybe not always. I have been thinking about a way to provide a UI that offers the maximum of possibilities, but haven't found a satisfactory way to do it yet. If anyone has any suggestions, I take!

Quote:
Originally Posted by sylion View Post
and in cc remapping, i suggest adding Channel pressure(Aftertouch) as a choice ?
This is definitely missing and already on the TODO list. But this will probably go with another big change that I'd like to do : enhance keyboard splitting and add more color ranges, each color range having its own params (out channel, transpose, velocity, aftertouch).

Quote:
Originally Posted by sylion View Post
in addition, It is better to expose Semitones as parameters for envelopes automation .
Ok, I was not sure anyone would need parameter exposition for that plugin which offers mainly static configuration (the dynamic part being the MIDI messages themselves, in fact!). I'll consider adding this.

These changes may take a little while to implement since I've been a little busy recently :-) And also some time is probably needed to think and to talk carefully about the few difficult points I've evoked.
Talagan is offline   Reply With Quote
Old 06-09-2020, 04:13 AM   #141
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

Quote:
Originally Posted by sylion View Post
Can you add pitch band Value(-8192~8191) curve Remapping ?
and in cc remapping, i suggest adding Channel pressure(Aftertouch) as a choice ?
ReaPack -> Midi Convert to CC an do both of those. Hence you can use the plugins in combination.

-Michael
mschnell is offline   Reply With Quote
Old 06-10-2020, 01:39 AM   #142
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by mschnell View Post
ReaPack -> Midi Convert to CC an do both of those. Hence you can use the plugins in combination.
Excellent! Seems a good way to do it until it's implemented in CC Mapper X. Love the "small brick" approach.
Talagan is offline   Reply With Quote
Old 06-10-2020, 08:03 PM   #143
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Quote:
Originally Posted by Talagan View Post
Hi Sylion, thanks for your comments and for your interest!



I knew someone would ask one day The difficulty here is to provide a coherent UI, since in 95% of the cases, one would like to keep some kind of symmetry or at least, stay centered on 0. But maybe not always. I have been thinking about a way to provide a UI that offers the maximum of possibilities, but haven't found a satisfactory way to do it yet. If anyone has any suggestions, I take!



This is definitely missing and already on the TODO list. But this will probably go with another big change that I'd like to do : enhance keyboard splitting and add more color ranges, each color range having its own params (out channel, transpose, velocity, aftertouch).



Ok, I was not sure anyone would need parameter exposition for that plugin which offers mainly static configuration (the dynamic part being the MIDI messages themselves, in fact!). I'll consider adding this.

These changes may take a little while to implement since I've been a little busy recently :-) And also some time is probably needed to think and to talk carefully about the few difficult points I've evoked.
Thanks you for your reply. If these functions are implemented, this plug-in will be the most valuable JS Midi Plugin. all in one, No more other plug-ins needed.
sylion is offline   Reply With Quote
Old 06-10-2020, 08:07 PM   #144
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Quote:
Originally Posted by mschnell View Post
ReaPack -> Midi Convert to CC an do both of those. Hence you can use the plugins in combination.

-Michael
Thank you for the tip.

but the Midi Convert to CC only do aftertouch to CC convert, Can't reverse(cc to aftertouch).
sylion is offline   Reply With Quote
Old 06-10-2020, 10:24 PM   #145
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

That is why it is called that name

-Michael
mschnell is offline   Reply With Quote
Old 06-13-2020, 09:53 PM   #146
SeanTypedThis
Human being with feelings
 
Join Date: Nov 2012
Location: Oakland, CA
Posts: 103
Default

Quote:
Originally Posted by sylion View Post
Thank you for the tip.

but the Midi Convert to CC only do aftertouch to CC convert, Can't reverse(cc to aftertouch).
Haha, yeah, it is a useful tool but not quite what you asked for...

Usually when I've exhausted all my JSFX options for MIDI, I turn to Insert Piz's "midiConverter3..." which is surprisingly hard to track down these days. It allows you to translate CC to aftertouch and vice versa.

Luckily, it can be found using archive.org. The download for the pack is on the right hand side of the page:

https://web.archive.org/web/20160316...ins/?p=pizmidi
__________________
YouTube
SeanTypedThis is offline   Reply With Quote
Old 06-19-2020, 09:27 AM   #147
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by SeanTypedThis View Post
Luckily, it can be found using archive.org. The download for the pack is on the right hand side of the page:

https://web.archive.org/web/20160316...ins/?p=pizmidi
Thank you Sean for the temporary solution =) ! I've released 4.0 today through Reapack. As usual, for safety, it's better to restart REAPER after update. I try to make sure everything goes fine on update, but one never knows. Always backup your projects before updating!

Here's a screenshot:



MIDI CC Mapper X 4.0 changelog:

- 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

1) Keyboard splitting

A bit of comment on this ; I was not completely satisfied with the keyboard splitting as it was before, so I've given it a larger degree of liberty. Now, up to 5 ranges may be defined (green, red, blue, orange, purple) each of them having its own configuration which was not the case before (the velocity curve and transposition params were shared between the two ranges green/red). This needed some tweaking to make it color blind friendly so all "color range" widgets will trigger a blinking effect on the keyboard to indicate what keys are affected. The velocity widget has been split into five ones, accordingly. Transposition params can be set and enabled individually for each range, but transposition can be also be enabled/disabled globally as it was before. Note that if you need to apply the same curves between all your velocity widgets, there are now copy/paste buttons under the curve that may help a lot.

2) Pitch Bend

This was not present before, which was lame. I had not found a decent way to make it fit the plugin paradigms, so I've chosen to restrict the use to a "symmetrical use" : one defines the curve for the positive part of the pitch wheel, and the same curve will be applied symmetrically to the negative part. It's a limitation but I think it covers the most common use cases.

3) Polyphonic After touch

On Sylion's request, it's now been added - in a way that is equivalent to the velocity widgets. Please note that for coherency reasons, after touch messages are transposed accordingly to the note color ranges, even if the after touch widgets are disabled (thus, enabling/disabling will affect routing and curve application only).

4) Channel Pressure

On Sylion's request, it's now been added too. Since channel pressure is global to all keys, there's no sense in having a channel pressure "per color range". But instead of having an independent widget, I thought it would be more suitable to "tie" channel pressure to one of the after touch widget, so that the same curve is shared between polyphonic after touch and channel pressure. I'm not totally sure if it's the perfect choice since I don't own a controller with After-Touch / Channel Pressure. Note that having independent curves is still possible, but at the cost of one color-range.

Hope you'll enjoy that new release!

Thanks a lot for the recent comments and feature requests

Last edited by Talagan; 06-19-2020 at 02:49 PM.
Talagan is offline   Reply With Quote
Old 06-20-2020, 09:35 PM   #148
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Quote:
Originally Posted by SeanTypedThis View Post
Haha, yeah, it is a useful tool but not quite what you asked for...

Usually when I've exhausted all my JSFX options for MIDI, I turn to Insert Piz's "midiConverter3..." which is surprisingly hard to track down these days. It allows you to translate CC to aftertouch and vice versa.

Luckily, it can be found using archive.org. The download for the pack is on the right hand side of the page:

https://web.archive.org/web/20160316...ins/?p=pizmidi
thanks.
i know that plug-in, it is sample and no value curve mapping.
two years ago, I've already bought the Plogue Bidule, it almost can do everything about midi Mapping.
sylion is offline   Reply With Quote
Old 06-20-2020, 10:04 PM   #149
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Quote:
Originally Posted by Talagan View Post

On Sylion's request, it's now been added too. Since channel pressure is global to all keys, there's no sense in having a channel pressure "per color range". But instead of having an independent widget, I thought it would be more suitable to "tie" channel pressure to one of the after touch widget, so that the same curve is shared between polyphonic after touch and channel pressure. I'm not totally sure if it's the perfect choice since I don't own a controller with After-Touch / Channel Pressure. Note that having independent curves is still possible, but at the cost of one color-range.

Hope you'll enjoy that new release!
What I need is conversion and mapping between CC and channel pressure.
I play YAMAHA WX5 (a MIDI Wind Controllor),it only send CC2 and no channel pressure. but some Software virtual Instruments need channel pressure, so, I use midi plug-in convert CC2 to channel pressure.

i make a picture,only my suggestion.
Attached Images
File Type: jpg MidiMapping.jpg (58.4 KB, 144 views)
sylion is offline   Reply With Quote
Old 06-20-2020, 10:19 PM   #150
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Using CC learn often does not get the required parameters, especially when sending multiple CC at the same time.

So if I need set cc64, I have to click 64 times "+".
sylion is offline   Reply With Quote
Old 06-20-2020, 10:31 PM   #151
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

Quote:
Originally Posted by sylion View Post
Using CC learn ... does not get the required parameters,.
Midi Mapper X is a JSFX plugin and sends Midi messages to the FX chainbs Midi Stream.

"Learn" listens to the Reaper Control Path and not to Midi messages in the track. So unless you take very special care, "Learn" will never see the result of Midi Mapper X
You need to use "Parameter the Modulation/Midi Link" menu to make use of Midi to modulate DAW parameters of a plugin.
-Michael
mschnell is offline   Reply With Quote
Old 06-21-2020, 01:10 AM   #152
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by sylion View Post
What I need is conversion and mapping between CC and channel pressure.
I play YAMAHA WX5 (a MIDI Wind Controllor),it only send CC2 and no channel pressure. but some Software virtual Instruments need channel pressure, so, I use midi plug-in convert CC2 to channel pressure.

i make a picture,only my suggestion.
Ok, I understand what you need, thanks for explaining it was not clear to me . Indeed, MIDI CC Mapper X does not do conversion between midi messages (CC, Pressure, Polyphonic AT, Note ON/OFF, Pitch Bend are all different types of midi messages). I'll think about a decent way to add this, but philosophically, maybe that kind of operations would better be done outside, from another plugin ; IDK, need to think about it. Another option maybe to extend Michael's "MIDI Convert to CC" to a wider "MIDI Converter"? Michael if you read this, what's your opinion ?

Currently, what you can do is put Sean's advised "midiConverter3" plusing in front of MIDI CC Mapper X to let it do the conversion from CC to Channel Pressure, then let MIDI CC Mapper X handle the Channel Pressure for curve remapping (use the green AT widget and check the "Use for Channel Pressure" button for that).


Quote:
Originally Posted by sylion View Post
Using CC learn often does not get the required parameters, especially when sending multiple CC at the same time.

So if I need set cc64, I have to click 64 times "+".
(Michael I think you made a confusion here, Sylion was talking about the "CC Learn" function of MIDI CC Mapper X )

"CC Learn" does only learn the CC number, so for it to work (and not the "other params" - what to do you mean ... channel ? .. bus?), the CC message should match the right midi bus / channel.

It picks the CC number of the first CC message it sees. Why do you send multiple CC numbers at the same time when doing CC learn? Also, if you don't want to click 64 times on "+" you can stay pressed on the "+" button with the mouse, it does the job very quickly (all +/- buttons have that behavior).

Last edited by Talagan; 06-21-2020 at 01:42 AM.
Talagan is offline   Reply With Quote
Old 06-21-2020, 05:59 AM   #153
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by myself
Currently, what you can do is put Sean's advised "midiConverter3" plusing in front of MIDI CC Mapper X to let it do the conversion from CC to Channel Pressure, then let MIDI CC Mapper X handle the Channel Pressure for curve remapping (use the green AT widget and check the "Use for Channel Pressure" button for that).
Alternatively, here's a rough script for doing the conversion you're asking (CC to Channel Pressure). You can put it in the chain prior to MIDI CC Mapper X. Tell me if it works and I'll make a pull request to get it integrated to the Reapack JSFX repo =)
Attached Files
File Type: zip talagan_MIDI Convert CC to Channel Pressure.jsfx.zip (2.1 KB, 123 views)
Talagan is offline   Reply With Quote
Old 06-21-2020, 06:03 AM   #154
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

Quote:
Originally Posted by Talagan View Post
(Michael I think you made a confusion here, Sylion was talking about the "CC Learn" function of MIDI CC Mapper X )
Ooops sorry for this.

This "Learn" stuff always drives me crazy: The Reaper GUI is not clear about it, the Reaper User guide is misleading, and the same term is used within different plugins in different ways.

Moreover using it in may cases is confusing, as well, as it's not unlikely that something totally unwanted gets "learned".

-Michael

Last edited by mschnell; 06-21-2020 at 06:31 AM.
mschnell is offline   Reply With Quote
Old 06-21-2020, 06:08 AM   #155
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Quote:
Originally Posted by mschnell View Post
Ooops sorry for this.

This "Learn" stiff always drives me crazy: The Reaper GUI is not clear about it, the Reaper User guide is misleading, and the same term is used within different plugins in different ways.

-Michael
No worries! We're in "brainstorm mode" here and it's true we easily get out of words... "route", "send", "channel", "bus", etc, same words for millions of things, so easy to get confused
Talagan is offline   Reply With Quote
Old 06-22-2020, 07:20 AM   #156
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

V 4.1 is out through ReaPack.

Install/Update notes :

Avoid updating MIDI CC Mapper X while having a project using an older version open. Just restart REAPER after update to take no risks.

Caution. If you have used the new Channel Pressure feature from 4.0, please note your Channel Pressure settings will be dropped and you will have to re-configure it in your projects. This is due a bad design choice to tie Channel Pressure to one of the AfterTouch widget. Channel Pressure should now be used as if it were a standard CC.

V4.1 Changelog :

- Reworked Channel Pressure (breaking change) : treat Channel Pressure as Virtual CC#128 in the UI to allow painless CC<>CP conversion.



@Sylion, I've implemented your suggestion regarding Channel Pressure. After thinking about it, it integrates far better and it offers painless conversion between CC and CP. So it's available as "virtual" CC #128 in the UI. Thanks for the suggestion!

Last edited by Talagan; 06-23-2020 at 08:57 AM.
Talagan is offline   Reply With Quote
Old 06-22-2020, 08:33 PM   #157
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Quote:
Originally Posted by Talagan View Post
V 4.1 is out through Reapack.

Install/Update notes :

@Sylion, I've implemented your suggestion regarding Channel Pressure. After thinking about it, it integrates far better and it offers painless conversion between CC and CP. So it's available as "virtual" CC #128 in the UI. Thanks for the suggestion!
thank you very much.
Now, it's perfectly achieve what I need.
thanks again.
sylion is offline   Reply With Quote
Old 06-23-2020, 01:31 AM   #158
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 293
Default

Awesome! Thanks for your feedback and again for your excellent suggestion.
Talagan is offline   Reply With Quote
Old 06-23-2020, 10:54 PM   #159
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Quote:
Originally Posted by Talagan View Post
Awesome! Thanks for your feedback and again for your excellent suggestion.
I Like this Plugin. I'd like to give you another two suggestions. Whether to adopt them or not is up to your decision.

1. Add MIDI filtering function

It can be set to filter out some unwanted MIDI messages. As shown in the picture.


2. Add note off message delay function. You can set how many milliseconds the note off message is delayed, say 10 milliseconds. Note off message delay is necessary for legato.

as shown in the picture.


MIDI CC mapper is a great midi plug-in, especially for people who use non keyboard controllers to perform in real time, such as wind controller, seaboard, etc.

I think cockos should pay you for this plug-in development. Cockos, do you hear me?

MIDI CC mapper is MIDI converter, is MIDI dresser. Because of this plug-in, I will always stick to Reaper camp.

For those who use wind controller or other special Midi controller, they can keep the settings of the controller unchanged, and use MIDI CC mapper x for different virtual instrument sound sources and using different makeup to play instruments in real time.
Attached Images
File Type: png FilterOut.png (27.8 KB, 125 views)
File Type: png NoteOffDelay.png (19.6 KB, 122 views)
sylion is offline   Reply With Quote
Old 06-23-2020, 11:02 PM   #160
sylion
Human being with feelings
 
Join Date: Jun 2020
Posts: 23
Default

Oh, I'm sorry. I just found out that there is an option in the global settings "drop unrouted CC". then you can ignore the Filter Out in my post.
sylion is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 07:23 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.