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

Reply
 
Thread Tools Display Modes
Old 02-09-2016, 03:43 PM   #1
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default JS : Midi CC Mapper X (Tweak your MIDI controls response curves)

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 : https://stash.reaper.fm/26553/Midi%2...Screenshot.png (See updated screenshot)

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

              

Changelog:

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

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.1b:

- Fixed bug introduced in 3.1a, notes would have velocity at zero if the velocity curve was not enabled.

V3.1c:

- Fixed bug introduced with transposition, notes were shifted by default.
- First release through ReaPack.

Obsolete version (v1) : https://stash.reaper.fm/26552/MIDI CC Mapper X
Obsolete version (v2) : https://stash.reaper.fm/28845/MIDI CC Mapper X


Current version (v3.1c) is now available through ReaPack from the official ReaTeam/JSFX repo (or Here).


Last edited by Talagan; 08-31-2019 at 03:17 AM. Reason: Updated plugin.
Talagan is offline   Reply With Quote
Old 02-09-2016, 03:53 PM   #2
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 18,009
Default

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.
DarkStar is offline   Reply With Quote
Old 02-09-2016, 06:08 PM   #3
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 6,029
Default

That's why I called a first contributions.
Well done sir, thanks for sharing !
X-Raym is offline   Reply With Quote
Old 02-09-2016, 06:31 PM   #4
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 5,404
Default

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
heda is offline   Reply With Quote
Old 02-10-2016, 04:15 AM   #5
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

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
Talagan is offline   Reply With Quote
Old 02-10-2016, 08:22 AM   #6
Hubi
Human being with feelings
 
Join Date: Oct 2010
Posts: 75
Default

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
Hubi is offline   Reply With Quote
Old 02-10-2016, 08:37 AM   #7
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 555
Default

This would be awesome with mpl's Mapping Panel (http://forum.cockos.com/showthread.php?t=170044), when it comes to the curves of Parameter modulation.
Ozman is offline   Reply With Quote
Old 02-10-2016, 11:46 AM   #8
J Reverb
Human being with feelings
 
Join Date: Jul 2009
Posts: 656
Default

lovely work !
J Reverb is offline   Reply With Quote
Old 02-10-2016, 12:31 PM   #9
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 686
Default

Seeing this kind of stuff developed by the community really underlines that Justin & co. made the right decision with the open-ended philosophy of Reaper. So much talent out there; just give them the right tools and everyone will benefit.

Thanks for sharing and welcome!
Sju is offline   Reply With Quote
Old 02-10-2016, 03:52 PM   #10
casrya
Human being with feelings
 
Join Date: Dec 2013
Location: Melbourne, Australia
Posts: 96
Default

Nice one .. thanks
casrya is offline   Reply With Quote
Old 11-14-2016, 02:20 PM   #11
GalbE
Human being with feelings
 
GalbE's Avatar
 
Join Date: Jun 2015
Location: Netherlands
Posts: 13
Default Great work!

That was just what i was looking for. I use a wind controller and want to control the volume and filter of my VST's within a limited range with CC2.
__________________
Ga^l^bE
GalbE is offline   Reply With Quote
Old 11-14-2016, 03:53 PM   #12
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 479
Default

Haha, wow, I love this!
ijijn is offline   Reply With Quote
Old 11-15-2016, 02:55 AM   #13
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Hi all and thank you for your kind comments!

Receiving an email notice for your posts in this thread has reminded me that I had a new version cooking before being interrupted brutally by a big project earlier in the year. Sorry for not having published it!

Here it is :


The new features are :

- Multiple control mangagement (enable up to 35 controls among : 1 wheel, 4 pedals, 10 sliders, 10 knobs, 10 pads). The difference between controls is mainly graphical to help keyboardists find quickly what matches what physically.
- Control 'tagging' with labels and descriptions : same purpose.
- CC Learn to target easily the phisical control you want to tweak.

You can download it here : https://stash.reaper.fm/28845/MIDI%20CC%20Mapper%20X

I'd like to add 'keyboard filtering by key' to make it complete, so that we can enable/disable some pannel of midi notes for a midi instrument. By using two different active tracks in Reaper controlled at the same time, it would allow to easily configure dual/split instruments and more. Hope I'll find time for this!

Cheers,
Ben

Last edited by Talagan; 11-15-2016 at 03:19 AM.
Talagan is offline   Reply With Quote
Old 11-15-2016, 03:45 AM   #14
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 6,029
Default

it looks very good, congrats ! and thx for sharing :P
X-Raym is offline   Reply With Quote
Old 12-04-2016, 10:24 AM   #15
Teo Oliver
Human being with feelings
 
Join Date: Sep 2015
Posts: 40
Default Real Time Play with CC mapping?

I'm trying to map my Hold Pedal to ModWheel. (It is CC capable).

The problem is i can't use it in real time, i mean, I'm trying to play my keyboard, and use the pedal as it was a Modwheel, but the plugin only seems to recognize de mapping after the CC lane is recorded.

Is there any way to make it work before it's recorded (monitor input)? So i can play and listen to what I'm playing.

Thank you very much.

Teo
Teo Oliver is offline   Reply With Quote
Old 12-05-2016, 04:14 AM   #16
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Quote:
Originally Posted by TonE

Are you sure you toyed with ALL its features?
I'm sure I haven't! That was just a manner of speaking... or maybe my english which is not flawless! Reaper abilities are of course, merely infinite. Reapack is a great project and a great idea, I already had a glance at it but haven't had the time to explore it more in depth.

Quote:
Originally Posted by Teo Olivier

I'm trying to map my Hold Pedal to ModWheel. (It is CC capable).

The problem is i can't use it in real time, i mean, I'm trying to play my keyboard, and use the pedal as it was a Modwheel, but the plugin only seems to recognize de mapping after the CC lane is recorded.

Is there any way to make it work before it's recorded (monitor input)? So i can play and listen to what I'm playing.
Hi Teo, could you describe more precisely what you're trying to achieve and how you've configured your track / plugins ?

Ben
Talagan is offline   Reply With Quote
Old 12-05-2016, 07:28 AM   #17
Teo Oliver
Human being with feelings
 
Join Date: Sep 2015
Posts: 40
Default

Hello, Talagan, thanks for the reply.

I have a digital piano without the wheels for Mod and Pitch, or any other button / fader, just the keys, but I'm doing a lot of orchestral stuff. My pedal has the ability to send CC, so I think for instruments like Strings and Brass, I do not need the Hold Pedal, so I could map it to CC01, or CC11, or whatever else I might need.

The problem is that when I do this, I can not play and listen in RealTime, but after I recorded Midi, the plugin understand the mapping and reconize the new mapping CC.

My goal is to use the pedal and the keyboard, as it was a controller with the wheels.

I've attached some photos of what I'm doing. (I tried with Midi CC Mapper X and the regular one.)

Thank you very much for the attention,

Best regards.
Attached Images
File Type: jpg Screen Shot 2016-12-05 at 2_Fotor_2.jpg (48.3 KB, 253 views)
File Type: jpg Screen Shot 2016-12-05 at 2_Fotor.jpg (23.7 KB, 231 views)
Teo Oliver is offline   Reply With Quote
Old 12-05-2016, 08:02 AM   #18
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Hello Teo,

If everything goes well, you should have real time feedback so something is probably missing somewhere. I have a few questions so that I can help you :

- I see you have have tried to use the simple plugin shipped with reaper (Midi CC Mapper). Can you achieve what you want to do with that simple version?

- Is your pedal plugged into your keyboard, or is it an independent device (plugged directly to your computer - by USB etc)? (This question aims to identify if you are using only one - or two midi sources).

- On your screenshot, the CC learn button is 'on'. It should turn back to grey 'off' as soon as you move a control from your controller (knob, slider, etc) and the 'Midi CC Src' number should change accordingly to that control you have moved. The 'Midi CC Dst' is the output midi mapping which goes to your Kontakt VST. I don't know well Kontakt but I think it should itself be configured to map that 'Midi CC Dst' control number as input for one parameter (but, probably, no configuration should be needed for the mod wheel).

- When moving the 'Midi CC Src' control (knob, pedal, slider), you should have real time feedback on the curve. The small red circle should move, indicating the current value of the control. Is it the case for you ? (Just FYI, I have myself a sustain pedal on my midi keyboard ; it is detected as control 64. It sends only two midi values - 0 or max - so the red circle si either at the bottom left of the curve or at the top right and I do not get intermediary values).

Hope we'll solve your problem!
Talagan is offline   Reply With Quote
Old 12-06-2016, 12:39 PM   #19
Teo Oliver
Human being with feelings
 
Join Date: Sep 2015
Posts: 40
Default

Here's a linh with a Gif so you can see how i am doing this, it works just fine, but only after a recorded de midi CC. Still no real time feedback. (Maybe something regarding the inputs? Plugin Order? Midi channels?)

I tried the regular JS Midi Mapper that comes with Reaper as well, but still nothing. I'm probably doing something wrong.

https://drive.google.com/file/d/0BxT...ew?usp=sharing

The pedal is plugged in the digital Piano, it's a Roland FP-30, and the pedal a DP-10 (https://www.roland.com/global/products/dp-10/), it has a switch to abylitate Continuous data.

TonE: Thanks for the advise, i didn't know about that one, will try it.
Teo Oliver is offline   Reply With Quote
Old 12-07-2016, 03:00 AM   #20
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Hello Teo,

It's probably not linked to the plugin, but I honestly don't have any idea yet. It should be as simple as :

1 - Track > Insert virtual instrument on new track (will prevent from forgetting some config steps)
2 - Chose your VST/AU instrument
3 - In the filter window, add CC Mapper X and drag it above the VST/AU.
4 - In CC Mapper X, click on the mod wheel, click on CC learn, press the pedal - this will map the pedal to the mod wheel.

By doing these steps the track should be in the good state to record, have real time feedback & so on. Maybe Kontakt needs additional steps? You can try these same steps with another simpler VST to check your installation (e.g. Synth1 : Synth1). The default instrument handles the mod wheel so you can map your pedal to the mod wheel and see what happens, your pedal should trigger the modulation.

PS : Are you sure you have the 'record monitoring' button enabled for the track ?

Last edited by Talagan; 12-07-2016 at 06:50 AM.
Talagan is offline   Reply With Quote
Old 12-07-2016, 08:24 AM   #21
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 906
Default

Hi,
Thanks for this!

In regard to teo, could it be he's trying to control a continuous control...mod...with a momementary switch? Hold?
Unless he wants just on/off.
LugNut is offline   Reply With Quote
Old 12-07-2016, 09:42 AM   #22
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 4,219
Default

Two - None of your pictures show us what's going on with the track itself. It will need to be armed to record and with monitoring enabled. If you play notes on the piano, do you hear it playing back?
ashcat_lt is offline   Reply With Quote
Old 12-08-2016, 07:09 AM   #23
Teo Oliver
Human being with feelings
 
Join Date: Sep 2015
Posts: 40
Default

Hi!

I don't know why, but today everything just worked!!!! Thank you very much for all your help, I probably was doing something wrong, but today, i tried again, and all worked perfectly fine!

Again, thank you all very much to all the help!
Teo Oliver is offline   Reply With Quote
Old 12-08-2016, 09:44 AM   #24
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Hi Teo,

Good to know your problem's solved! Don't hesitate to come back if you make use of the plugin and feel like there're some bugs or things that are missing, or for any other feedback. Happy composing!

Thank you TonE, ashcat_lt and LugNut for your time and help!

Ben
Talagan is offline   Reply With Quote
Old 01-04-2017, 06:05 AM   #25
Proximac
Human being with feelings
 
Join Date: Jan 2017
Posts: 3
Default 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.
Proximac is offline   Reply With Quote
Old 01-04-2017, 07:39 AM   #26
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

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
Attached Images
File Type: png Curve Not Starting at CC0.png (8.0 KB, 286 views)

Last edited by Talagan; 01-04-2017 at 07:49 AM.
Talagan is offline   Reply With Quote
Old 01-11-2017, 09:31 AM   #27
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,247
Default

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 8.1
My music on Bandcamp
G-Sun is offline   Reply With Quote
Old 06-13-2019, 11:11 AM   #28
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

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.
Talagan is offline   Reply With Quote
Old 06-14-2019, 02:44 PM   #29
Broojacker
Human being with feelings
 
Join Date: Apr 2016
Posts: 23
Default

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!
Broojacker is offline   Reply With Quote
Old 06-15-2019, 01:26 AM   #30
Ivannn Bennnettt
Human being with feelings
 
Join Date: Feb 2017
Posts: 275
Default

Thank you!
Ivannn Bennnettt is offline   Reply With Quote
Old 06-15-2019, 07:20 PM   #31
hopi
Human being with feelings
 
hopi's Avatar
 
Join Date: Oct 2008
Location: Right Hear
Posts: 15,078
Default

very nice... thanks much!

a little question please... is there a relationship between active keyboard keys and the cc controls?

or do the cc controls work regardless of any keys being not active or active????
__________________
...should be fixed for the next build... http://tinyurl.com/cr7o7yl
https://soundcloud.com/hopikiva/angel-rain
hopi is offline   Reply With Quote
Old 06-16-2019, 12:06 AM   #32
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,865
Default

Is the CC-message output of Mapper (settable to) high h resolution Midi ?
This makes a lot of sense when curves / functions are applied to Midi CC values and hence the steepness easily is far below 1, resulting in multiple different input values producing the same output, producing information loss.
Unfortunately many plugins don't adhere to high resolution CC, but some do, and any CC aware functionality in Reaper does, as well.
-Micjhael
mschnell is online now   Reply With Quote
Old 06-16-2019, 06:13 AM   #33
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Thanks to all of you for your answers and comments!

Quote:
Originally Posted by Broojacker
It would be really cool if you added velocity and transpose. One MIDI JS for all needs, this is what I dream.
I'll look into this next week, I don't see any problem in adding these cool features (except a bit of thinking on the UI to make this compact and natural to use).

Quote:
Originally Posted by hopi
a little question please... is there a relationship between active keyboard keys and the cc controls?
They are unrelated. The top part of the UI is used to keep or filter out some keys, the bottom part of the UI is used to declare custom routings for MIDI CCs and modify their response curve. The UI (wheel, pads, knobs, faders, etc) do not basically correspond to real CCs, you just route what you want to what you want, and it's up to you to chose what the CC will look like in the UI (a knob, a fader, a pad), although I believe that everyone will try to make the UI geography look like their real controller :-) Maybe as the plugin is getting more complex, I should start to write a small doc.

Quote:
Originally Posted by mschnell
Is the CC-message output of Mapper (settable to) high h resolution Midi ?
I'll look into this next week. My MIDI controller (a humble yamaha MM6) is not high res, so it's difficult for me to test, and I'll have to dig in some doc to make sure I don't make mistakes in implementing this. I don't think it's useful for the plugin to have a higher resolution than it already has : it maps a space of 128 values to 128 other values and it's probably highly sufficient for a user defined response curve, but to make this work with high res midi, I'll have to either perform linear interpolation on the response curve (simplest solution), or spline interpolation. Edit: I think I had read your question too quickly when answering, it indeed makes a lot of sense to be able to have a high res CC **output**, independently of the resolution of the controller, for the precise steepness reasons you've evoked!

Ben

Last edited by Talagan; 06-16-2019 at 07:12 AM.
Talagan is offline   Reply With Quote
Old 06-16-2019, 02:22 PM   #34
Broojacker
Human being with feelings
 
Join Date: Apr 2016
Posts: 23
Default

Quote:
Originally Posted by Talagan View Post
I don't see any problem in adding these cool features (except a bit of thinking on the UI to make this compact and natural to use).
Great! Transpose - one mouse wheel scroll for one semitone and double click for keyboard input.

Maybe it's help:
Attached Images
File Type: jpg Midi x.jpg (55.0 KB, 124 views)
Broojacker is offline   Reply With Quote
Old 06-16-2019, 02:35 PM   #35
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,865
Default

Quote:
Originally Posted by Talagan View Post
My MIDI controller (a humble yamaha MM6) is not high res, so it's difficult for me to test,
I meant high res for output of the JSFX. Of course high res for input would be nice as well, but less "urgent".

Thanks,
-Michael
mschnell is online now   Reply With Quote
Old 06-17-2019, 11:57 AM   #36
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Quote:
Originally Posted by Broojacker
Great! Transpose - one mouse wheel scroll for one semitone and double click for keyboard input.
Thanks! This is how I've finally done it.



I felt it was more natural to put the transpose stuff right next to the keyboard, and I also like the 8va option (useful for smaller controllers). As well, for velocity, I've created a new virtual control so that it's compliant with the rest of the UI. Like the rest, it can be enabled/disabled, and has the same curve edit features. I'll release this after having implemented the high res midi.

Quote:
Originally Posted by mschnell
I meant high res for output of the JSFX. Of course high res for input would be nice as well, but less "urgent".
Yes, very sorry, I had read you too quickly.

It should not be a problem to make the calculations for high res midi : the plugin stores (under the hood) 128 user values for each curve. These values are *floating* values, calculated from the selected curves OR from the smoothing algorithm. The only values that could be pure integers are those resulting of a pen draw (without a call to smoothe) : the drawing zone has a double resolution so the possible values are limited to [0,0.5,1,1.5,...,126.5,127]. So given these key values for a curve, it's easy to make a precise interpolation for high res midi.

However, I've found it's not that easy to get a grasp on a good documentation on high res midi! From what I've read, the note velocity LSB needs to be sent on CC88, CCs from 0 to 31 have their LSB complements between 32 and 63 BUT I don't really understand how it should be done and if it's possible with other controls like 70 to 74 for example (attack / release / cutoff and so on). Anyone reading this could point me to a complete doc on these corner cases? Also, I'm wondering if I shouldn't restrict the src and dst CC numbers to a predefined set - it probably does not make sense to be able to reroute and edit the curves of all CC from 0 to 127, does it?

Ben

Last edited by Talagan; 06-17-2019 at 12:05 PM.
Talagan is offline   Reply With Quote
Old 06-17-2019, 12:27 PM   #37
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,865
Default

Sending high resolution CC:

CC #+0 is the high 7 bits, CC #+32 is the low 7 bits.

You need to remember each CC # and CC #+32 you sent

You calculate a 14 bit value to be output.

If the high 7 Bits differ from the previously sent CC # message, you send it.
If the low 7 Bits differ from the previously sent CC #+32 message, you send it.

Happily this is compatible with a receiver only receiving CC # and ignoring CC #+32; and it sends only the necessary (i.e. changed) bits.

And you can use ReaControl Midi to check the result, as it's fades adhere to High Resolution CC.

-Michael

Last edited by mschnell; 06-17-2019 at 09:52 PM.
mschnell is online now   Reply With Quote
Old 06-17-2019, 12:40 PM   #38
Talagan
Human being with feelings
 
Join Date: Feb 2016
Location: Paris / France
Posts: 24
Default

Thanks for these detailed pieces of info! This was more or less what I had understood. However, I'm not sure it works for CCs outside of the 0-31 range. My question was especially pointing to CCs around 70,71,72, etc... it does not look like these controls can be used in high res, right?
Talagan is offline   Reply With Quote
Old 06-17-2019, 09:55 PM   #39
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,865
Default

Supposedly this is true (see the List ReaControlMidi provides when enabling a slider in non-Raw mode).

There also is a new midi specification for sending very high resolution with a huge count of different "CC"s, but AFAIK, this is not very commonly in us.

-Michael

Last edited by mschnell; 06-18-2019 at 05:47 AM.
mschnell is online now   Reply With Quote
Old 06-18-2019, 01:50 AM   #40
Broojacker
Human being with feelings
 
Join Date: Apr 2016
Posts: 23
Default

Excellent! Looking forward to v3.1
Thanks for your work!
Broojacker 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 01:04 AM.


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