My Keyboard midi aftertouch work (log in reacontrolmidi) but nothing seems to work in CC mapper X
It also add this line in reacontrolmidi log
B1 58 00 [CC88 <none>] chan 2 val 0
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.
Thanks for the suggestion! Since VSTs very often offer legato implementations, I've never thought on how to do it directly from MIDI messages.
The thing is, Mapper X was designed first for curve tweaking, then routing was added but now there are growing requests for other higher level applications which are outside of the initial scope (buttons, time smoothing, delaying ). Yet I find it's pertinent to offer a control board that can help you tweak not only the curves, but more generally the "behavior" of your controller. So it's not easy to draw a coherent line telling what should be in the plugin or out of the plugin, but be sure I'll be thinking on how and if I implement your suggestion (maybe in a wider scope).
Quote:
Originally Posted by sylion
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.
Thanks a lot for your interest and your nice words, I am really appreciating!
My Keyboard midi aftertouch work (log in reacontrolmidi) but nothing seems to work in CC mapper X
It also add this line in reacontrolmidi log
B1 58 00 [CC88 <none>] chan 2 val 0
Hi STOP, I will probably need more info to help you debug this. First about the CC88 message, there's a good chance that it's linked to High-Res midi velocity, not AfterTouch. If you tick the "High Res Output" option in the velocity widget (maybe what you've done), MIDI CC Mapper X will output velocity messages in CC#88 High Res format : it's made of **two** messages, the first one being a LSB prefix on CC#88, the second one being the MSB NOTE ON+velocity message itself.
Can you send me more detailed explanation on how your setup is made (maybe screenshots of the plugins)? And particularly, I'd be interested by the sequence of MIDI messages before and after Mapper X (what I do usually is put a MIDI logger plugin like ReaControlMIDI just before and just after Mapper X and compare the two logs to check if the behavior's ok).
When you say aftertouch, is it Channel Pressure or Polyphonic AfterTouch (per-note) ? In Mapper X, the use of colored "AT" widgets is restricted to Polyphonic AfterTouch ; if your controller implements Channel Pressure only, you will have to use an other "widget" (fader, knob, pad, etc) with the virtual CC#128 dedicated to Channel Pressure. It's a bit confusing to have the same wording "AfterTouch" for two different MIDI implementations
Last edited by Talagan; 06-24-2020 at 03:10 AM.
Reason: grammar
When you say aftertouch, is it Channel Pressure or Polyphonic AfterTouch (per-note) ? In Mapper X, the use of colored "AT" widgets is restricted to Polyphonic AfterTouch ; if your controller implements Channel Pressure only, you will have to use an other "widget" (fader, knob, pad, etc) with the virtual CC#128 dedicated to Channel Pressure. It's a bit confusing to have the same wording "AfterTouch" for two different MIDI implementations
Ahh OK! It's monophonic aftertouch (channel pressure) on the Axiom49 midi keyboard. ;-) I know it since I fixed the sensor strip that was misaligned under the keyboard keys. Only one sensor strip for all the keys.
Ahh OK! It's monophonic aftertouch (channel pressure) on the Axiom49 midi keyboard. ;-) I know it since I fixed the sensor strip that was misaligned under the keyboard keys. Only one sensor strip for all the keys.
Awesome! Glad to read that we got the reason why it was not working. I really need to write some documentation, this is really confusing (especially since I myself got confused in designing Polyphonic AT vs Channel Pressure in a clear way in V4.0 and changed my mind a few days after in 4.1 thanks to @Sylion remarks). It's really strange that Channel Pressure was not attributed a dedicated CC in the MIDI spec since it behaves exactly like any other low-res CC, but got it's own message instead.
hi, I'm a totally blind reaper user on Mac os10. I've just tried to use midi mapper x 4.1 it is not accessible to the voice over screen reeder. please could you make it accessible? giving it a plane ui like the stock reaper js effects should work. I'm happy to test it for you
__________________
I'm trey from the uk. I'm totally blind, running the latest version of reaper on Mac os10 with the voice over screen reeder and osara accessibility plug in: https://github.com/nvaccess/osara
I installed this via Reapack, and I do not see it in my JSFX list. What should I be looking for, or what information can I provide to debug this?
Hi Robert, it should be appearing among the other JSFX without any other steps (see the two attached images). Could you double check your install please (especially, the presence of the small "i" in the reapack "browse package" table) ?
Also can you check that the main script file is present on your computer (in Reaper, use Options > Show REAPER resource path in explorer/finder, then look for a subdirectory Effects/Reateam JSFX/MIDI, there should be a file named "talagan_MIDI CC Mapper X.jsfx" here).
hi, I'm a totally blind reaper user on Mac os10. I've just tried to use midi mapper x 4.1 it is not accessible to the voice over screen reeder. please could you make it accessible? giving it a plane ui like the stock reaper js effects should work. I'm happy to test it for you
Hi Sound Warrior! Yes, the plugin has it's own UI, it is very UI oriented. Since it is a kind of MIDI control cockpit, it has far more parameters than the 64 max allowed for a plain UI. I don't know yet what the best approach would be to make you benefit from it. Maybe split it in small atomic plugins offering a lower level of control (with less params) that could be chained together? That would be still problematic for the curve/choice edition maybe. A cool thing would be to be able to trigger accessibility events from the JSFX UI but I don't think it's possible. I'd be glad if someone reading this had an idea/clue for a solution
I've discovered this thread after trying many searches for "MIDI velocity curve VST". Then I relaxed from VST and tried Reaper instead - and found this. This also lead me to ReaPack, which seems very nice.
I need the velocity curve because of Komplete Kontrol M32 rather stiff keyboard (to put it nicely). I did't want to set velocity curves in instruments directly (many NI instruments allow it) for two reasons:
* some instruments don't have this ability
* if I use another keyboard it will mess with the feel
But as a "filter plugin" I can just turn this on when I play on stiff keyboard and turn it off when using better keyboard. It still can't fix terribly unresponsive soft end, but that's not the problem of the plugin.
This is an excellent plugin and I don't need to use some old 32bit solution I found previously. Great work!
__________________
...and a little bit of humility
Dear Talagan, had some idea, thought Midi CC Mapper X might be the right place to include it, following situation.
Sometimes, or with some vsti it can happen they are changing their presets/sounds/patches via incoming (bank select) + program change, nicely. But when I try to record this into Reaper, somehow for certain vsti, nothing is recorded, I mean the incoming program change events.
Here having a jsfx, which sets its two parameters, named bank_select and program_change for example by incoming data. Thus each incoming event would set its value and those would be recorded then as automation. Problem would be solved. And best of all, this technique should work with any vsti!
Thought will share the idea, before forgotten again. In the meanwhile I will try to find some other workarounds. Maybe anyone knows other jsfx which can do already anything similar? The idea is, if you change quickyly among multiple patches and want to record those as automation into reaper, which options do we have?
If I find nothing directly, I might try pizmidi midiConverter3 again, something like:
pc >> cc, recording cc, cc >> pc
This might work. Same for bank select.
Everything's working fine but I was wondering if it was possible to use a single instance of "Midi CC Mapper X" for a whole session of Reaper? This would be to use a MIDI controller to send control data anywhere in a project.
In my specific example, I'm trying to use the faders on my MIDI keyboard to control instances of "JS: volume adjustment" on different tracks and I was hoping to change the CC response from a linar to a logarithmic one, but the MIDI learn of the JS plugin I'm trying to control only detects the raw CC data, in a linear way.
Is this something the Mapper allows? Or is this simply the way MIDI control messages work in Reaper?
I've included a GIF showing how the fader responds linearly to a logarithmic command, with the Mapper X placed as Input FX on the track.
Is there something I misunderstood? (probably..!)
Dear Talagan, had some idea, thought Midi CC Mapper X might be the right place to include it, following situation.
[...]
If I find nothing directly, I might try pizmidi midiConverter3 again, something like:
pc >> cc, recording cc, cc >> pc
This might work. Same for bank select.
Yes, this issue is part of a larger ensemble that I've been thinking about, which is the ability to transform CCs into triggers and even multi-state buttons with state memory, and also incorporate program change things inside. But I'm just not sure how to do it right without writing a huge incomprehensible UI, maybe another plugin should be written and designed instead.
Everything's working fine but I was wondering if it was possible to use a single instance of "Midi CC Mapper X" for a whole session of Reaper? This would be to use a MIDI controller to send control data anywhere in a project.
I don't think it's possible, AFAIK the only "global" flow that has JSFX support is the record monitoring that has its own effects. But I may be wrong, with REAPER you never know what's behind the corner
Quote:
Originally Posted by Slybebop
In my specific example, I'm trying to use the faders on my MIDI keyboard to control instances of "JS: volume adjustment" on different tracks and I was hoping to change the CC response from a linar to a logarithmic one, but the MIDI learn of the JS plugin I'm trying to control only detects the raw CC data, in a linear way.
Is this something the Mapper allows? Or is this simply the way MIDI control messages work in Reaper?
Good question! I usually use it in front of VSTs (and designed it in that flow in mind) so I set it in the track FX stack, not in the track **input** FX stack. I've tried what you described and it seems to be true that MIDI learn will directly get its events from the controller regardless of what's before in the filter stack.
However, if the volume adjustment plugin is sitting in the FX stack (not the **input** FX stack) after MIDI CC Mapper X, you can use "MIDI Link" instead of "Learn" in the param menu, and you should be able to pass through MIDI CC mapper X and then use the modified MIDI output to control the param. Not sure if that offers you full comfort for what you want to achieve however
Last edited by Talagan; 11-23-2020 at 06:56 AM.
Reason: clarity
Thanks for asking, I forgot which vst it was. But if this situation appears again I will post the vst name here as well. Did not try above experiment yet, probably it would work. Can write about it as well, after its test. So nothing hurries here, as always. Thanks for all your great work.
I am using a snapshot system for favourite sounds, having 10 snapshots, then while performing I can change among those 'selected sounds' quickly, so a simple melody can sound as something more just by changing among a few favourite patches. All working nicely, however when trying to record all into Reaper, I recognized those nice patch changing actions were not there, at least for that synth or situation. Having a method which would work with any vsti would be my goal to find. Then the above snapshot system would make more sense, as you can record all, as automation, not as audio, and edit later, for minor corrections for example. Any universal solutions are welcome. tack did something for updating or recalling cc values, not sure, maybe this might work here as well? Just another idea.
I don't think it's possible, AFAIK the only "global" flow that has JSFX support is the record monitoring that has its own effects. But I may be wrong, with REAPER you never know what's behind the corner
Good question! I usually use it in front of VSTs (and designed it in that flow in mind) so I set it in the track FX stack, not in the track **input** FX stack. I've tried what you described and it seems to be true that MIDI learn will directly get its events from the controller regardless of what's before in the filter stack.
However, if the volume adjustment plugin is sitting in the FX stack (not the **input** FX stack) after MIDI CC Mapper X, you can use "MIDI Link" instead of "Learn" in the param menu, and you should be able to pass through MIDI CC mapper X and then use the modified MIDI output to control the param. Not sure if that offers you full comfort for what you want to achieve however
Hey, thank your for the swift answer!
I managed to get it working through "MIDI Link"! I had tried it before posting, but the issue was with the Offset which I had to set at -50% weirdly enough!
Bonus: I also used a single MIDI track to control everything, by having CC Mapper X as insert FX (and not input FX) and routing the MIDI signal via sends to all the tracks in the session I wanted to control. I just have to make sure the MIDI "control track" is always armed, and it does in face pilot the volume plugin I have on the different tracks.
I managed to get it working through "MIDI Link"! I
Beware that Midi Learn in Reaper (Other then Midi Learn within a plugin) does not use the Midi Stream in a track but the Reaper ControlPath message stream, while "Midi Link" uses the Midi messages in the track.
Hey I got this plugin.
It only works partially to me.
Could you take a look?
Hi @Skrzypiec. Good question : it's because REAPER does not show all CCs in the MIDI items/editor by default. Even if those events are recorded, you need to "select" them for display. It's done in the MIDI editor, with the + button near the control name, and you can get a hint from the menu, under the "Lanes with events" category, see the screenshots.
Note that there's another way to do it if you use the MIDI inline editor (E shortcut on a MIDI item). You can add/remove/select cc lanes by right clicking the black separator at the top of a CC lane. The menu give you various config options (it's a bit hidden ... )
Oh and thanks for taking the time for making a video to explain the problem. Very helpful!
Did you try putting into input fx?
Or you could put another cc converter, like pizmidi midiConverter3 before Talagan's mega cool mapper, converting your cc 41 to some values which are shown in items, probably 0..31, not tested myself.
Did you try MIDItoReaControlPath as well? Process midi to your wishes, followed by MIDItoReaControlPath and it should work, or not?
I wasn't even aware that this plugin existed. Awesome! After all those questions, I should probably augment the documentation with some remarks on the different flows, when using the MapperX in the input FX chain or the standard FX chain, and add a link to MIDItoReaControlPath for control purposes.
Quote:
Originally Posted by Slybebop
Hey, thank your for the swift answer!
Bonus: I also used a single MIDI track to control everything, by having CC Mapper X as insert FX (and not input FX) and routing the MIDI signal via sends to all the tracks in the session I wanted to control. I just have to make sure the MIDI "control track" is always armed, and it does in face pilot the volume plugin I have on the different tracks.
Awesome. Probably a better and more flexible solution in your case than duplicating tracks or working with track templates.
Quote:
Originally Posted by TonE
Did you try putting into input fx?
@Skrzypiec, TonE's idea's clever : since you'd put it upstream of the track, you'd record the modified CC (modwheel) instead of the original one (41) and see it displayed automatically as modwheel in REAPER without further config. Depends of what your goal is.
Quote:
Or you could put another cc converter, like pizmidi midiConverter3 before Talagan's mega cool mapper, converting your cc 41 to some values which are shown in items, probably 0..31, not tested myself.
Yeah, the behavior of what's displayed in the CC Lanes by default in the arrange view is a bit complicated. Depends of multiple prefs (use one MIDI editor for all items/per item/per track or Display Midi CC Lanes in arrange view No/First Lane/Combined/Auto), of what you've done before in the MIDI editor, etc, etc. There are multiple scripts to help work faster with CC Lanes like "Select CC Lanes to show in selected items" by Julian Sader (available through reapack) which I find particularly useful.
Yeah, never dived into cc lane territory yet, as a non-orchestral composer, even never dived into all midi editor depths. I like more 1 bar patterns. Or at maximum 4bar patterns, and for that hackey trackey is best tool without any doubts and questions.
REAPER does not show all CCs in the MIDI items/editor by default
Maybe it's not so self-explanatory in the video, but BOTH midi items have CC1 lane enabled.
The only thing I did is turn on the mapper and the automation is still heard, but it's not shown.
I even had another issue, which, I thin, sprouts from this
- I got two automation controls fighting each other:
Quote:
Originally Posted by TonE
Did you try putting into input fx?
I thought about it but I didn't think it will be logically different, so I didn't try... Thank you, I will.
Hi Skrzypiec, on the second video you've used two instances of MIDI CC Mapper (not X). They are original plugins from REAPER (not mine) so it's probably not related at all. The fact that you get some jitter at the end, while having two plugins before messing with MIDI is probably normal if you've set up a clashing conf. But I don't think it's related to the problem you had in video 1 and I can't tell you for sure what's happening in video 2 without seeing exactly how the two MIDI CC Mapper (not X) are configured.
But I think I understood your problem, TonE was right from the start and has better eyes than mine
On video 1, when you do the second recording, you are recording CC41, not CC1. CC1 events are created downstream, from CC41 events, by Mapper X. So it's not a question of displaying CC1 or not in the CC lanes, but displaying CC41!
In your configuration, CC41 events are recorded (not CC1). Each time you replay your track, MIDI CC Mapper X is active and modifies CC1 events to generate CC41 events on the fly.
If you want MIDI CC Mapper X to be applied upstream of the recording, so that when you move CC41, you record CC1 events instead, then you have to put MIDI CC Mapper X inside the input fx chain, here :
By doing this, MIDI CC Mapper X will be applied at recording time, upstream, and REAPER will record the generated CC1 events instead. By putting MIDI CC Mapper X in the "input FX chain" you "bake" your transformed events when recording.
Using MidiToReaControlPath only makes decedent sense when controlling Reaper's built-in functionality, but not when controlling plugins. Here "Midi Link" and friends is a lot more sensible and versatile.
Yes, the second video is a bit older, I was using original CC Mapper then moved to yours because I assumed it's gonna be newer/more compatible/more supported etc... but I see it works identical way... And omg yes... CC41 was recorded, I just never saw it... because I thought putting mapper a plugin CHAIN before the VSTi is logically the same as putting it on the track... Now I put it on the track FX and I have correct automation... WHY does it work differently if it should be logically the same thing, omg so confusing... but thank you for help, I can write now <3
If you can figure how then you have The Answer to the Ultimate Question of Life!
Quote:
Originally Posted by Skrzypiec
WHY does it work differently if it should be logically the same thing, omg so confusing... <3
Imagine you have a camera, a projector, and a yellow glass.
Case 1, you put the yellow glass in front of the camera, you record the movie. Then you project it with the projector. The movie is yellow, and you can't do anything about it anymore.
Case 2, you record the movie (without the glass). You project it, and you put the yellow glass in front of the projector. You can remove or add it to your will, and the movie is yellow or not.
MIDI CC Mapper X is the yellow glass. In case 1 it's in the input FX chain (upstream), in case 2 in the track FX chain (downstream).
Yes but when I put it in the FX chain, it was BEFORE the sound generator.
That's why I thought it's gonna affect everything, including modulation.
I see What has mislead you is (maybe) that you were expecting a visual feedback in the item itself of what the FX chain does on MIDI events? But it's not the case. What you see in the MIDI item in the arrange view are the events that you've recorded. It's what's carved in the marble during recording.
Then at every play/monitoring, the "standard" track FX chain is processed : that means the MIDI events that were recorded (CC41) are filtered and modified by Mapper X to modulation events (CC1), and sound is generated at the end by the VST.
This is why I've used the words "upstream" and "downstream" but they may be badly chosen. I meant relatively to the "record" (before or after the record).
So if you want to record modulation events (CC1) generated originally by a CC41 control and transformed by Mapper X, you need to put Mapper X on the **input** FX chain so that the transformation is performed upstream of the recording. You can also prefer to record the raw CC41 events, and thus, you'd put Mapper X in the standard FX chain of the track (where you can tweak it at will even after having recorded, thus).
There is also the option of recording the output of the track (I mean midi output of course), then even if you put an efx as track fx (and not input fx), you should still get the transformed midi. Reaper gives many options, each of them can be useful and wanted in various situations. One should only know and understand those options we have. Reaper is just there, sitting silently and waiting for you discovering that magic feature. Have a nice day friends, the linked video I did not watch yet, will do now.
Maybe it's not so self-explanatory in the video, but BOTH midi items have CC1 lane enabled.
The only thing I did is turn on the mapper and the automation is still heard, but it's not shown.
I even had another issue, which, I thin, sprouts from this
- I got two automation controls fighting each other:
I thought about it but I didn't think it will be logically different, so I didn't try... Thank you, I will.
Watched this video. Here you say "doing exactly same things", which is not correct. Changing gui faders in a vsti, normally change only that parameter of the fx, meaning creating an automation envelope if you record it. On the other hand moving modwheel is only a normal midi input to that track, if your midi is going into that track of course (so your midi port is select where your modwheel is, plus you are midi monitoring and armed record), now it also depends how you mapped this midi port in your midi device settings of reaper, and if you enabled also "control" for that midi port, if yes, and you midi mapped it to exact same parameter you would have another "attacking point", plus it depends which your automation modes are of your track, is it read, write, latch for example. In short, checking all those could help you in some ways. There could be cases if you set them "wrongly" you might get various unwanted effects.
Starting most simply is usually best, disabled all first, activate one by one, could help finding your correct settings, then save it as track template for future use. Good luck my composer friend.
Watched this video. Here you say "doing exactly same things", which is not correct. Changing gui faders in a vsti, normally change only that parameter of the fx, meaning creating an automation envelope if you record it. On the other hand moving modwheel is only a normal midi input to that track, if your midi is going into that track of course (so your midi port is select where your modwheel is, plus you are midi monitoring and armed record), now it also depends how you mapped this midi port in your midi device settings of reaper, and if you enabled also "control" for that midi port, if yes, and you midi mapped it to exact same parameter you would have another "attacking point", plus it depends which your automation modes are of your track, is it read, write, latch for example.
I can have all of them set identically on track A and track B, and track A has no problem, while track B is messed up. But I figured out this problem even occurs without the MIDI CC Mapper X on the track, so I will just move the discussion about it elsewhere...
Quote:
Starting most simply is usually best, disabled all first, activate one by one, could help finding your correct settings
I got that template from Erik W's channel. Everything is simple. I usually stay with defaults and I'm really anxious to touch them, because then I click on something, stuff breaks in one place, keeps working in another, and leaves me completely clueless. Others just sit down and write...
If you put the link also here, we can follow you to the new discussion space. And sharing some templates or parts of it might allow others investigating it as well. Giving tips what could be tried. For example I can not imagine how complex or simple your entire system/template is.
If you put the link also here, we can follow you to the new discussion space. And sharing some templates or parts of it might allow others investigating it as well. Giving tips what could be tried. For example I can not imagine how complex or simple your entire system/template is.
I agree with TonE, do not hesitate! If we can help you understand what's happening you'll probably learn or discover something which may prove very useful in the future (and it's true for us too XD).