Old 10-17-2010, 01:04 PM   #1
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default MIDI routing matrix

A simple JS plugin, allows arbitrary routing of MIDI channels.

Of course, in Reaper any kind of routing can be achieved with multiple sends, but in some cases this plugin allows you to get by with a single MIDI send - e.g. if you need to filter out certain MIDI channels, or send a single input channel to multiple outputs. Also, for me it was an excuse to learn gfx programming in JSFX language ))

Features:
- channel activity indicator
- hanging note prevention (keep track of notes playing, send note-off when a connection is removed)

Stash page here: https://stash.reaper.fm/v/7304/midi_routing_matrix
Direct download: https://stash.reaper.fm/7304/midi_routing_matrix

Hope you find this useful.
Attached Images
File Type: png midi-routing-screenshot.png (3.9 KB, 22602 views)

Last edited by boreg; 01-28-2021 at 07:22 AM. Reason: updated description, added Stash links
boreg is offline   Reply With Quote
Old 12-10-2010, 11:57 AM   #2
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default bump

- Fixed a couple of bugs (not that anybody noticed them.. heh ))
- Added hanging note prevention (optional, can be turned off to create drones)
- Uploaded to stash: https://stash.reaper.fm/7304/midi_routing_matrix
boreg is offline   Reply With Quote
Old 12-10-2010, 12:07 PM   #3
Mr. Data
Human being with feelings
 
Mr. Data's Avatar
 
Join Date: Sep 2008
Location: Location
Posts: 5,559
Default

Great Boreg!

At least we can already have now what's part of my FR linked in my sig.



-Data
__________________
German Language Pack for REAPER? Get it here! ... Donate? Yeah!! | Are you nuts? | Maybe
Deutsche Sprachdatei für REAPER? Hier zu haben! ... Spenden? Klar! | Spinnst wohl!? | Vielleicht
Mr. Data is offline   Reply With Quote
Old 12-10-2010, 12:10 PM   #4
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

Awesome, thanks!
EvilDragon is offline   Reply With Quote
Old 12-31-2010, 06:47 AM   #5
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

thank you so much

i need to ask

is it possible adding an option "One click block all CC "
like S-Midi Matrix ( pic.)
or is there anything exist for doing this?

its was my nr1 .. but sadly doesnt work in w7 64 bit.

Help appreciated

Yıldırım

Last edited by timbralzoom; 08-18-2017 at 03:13 PM.
timbralzoom is offline   Reply With Quote
Old 01-02-2011, 04:20 AM   #6
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

If you want to filter all MIDI CC messages, this is trivial to do in a few lines of JS code.
If you want to filter CC from specific input to specific output, this would take quite a bit more work (which I don't have the time for ATM)...
boreg is offline   Reply With Quote
Old 01-02-2011, 12:08 PM   #7
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

Quote:
Originally Posted by boreg View Post
If you want to filter all MIDI CC messages, this is trivial to do in a few lines of JS code.
...

nr1 = i only need filter all midi CC messages at once !
timbralzoom is offline   Reply With Quote
Old 01-02-2011, 04:26 PM   #8
mabian
Moderator
 
mabian's Avatar
 
Join Date: Aug 2007
Location: Italy
Posts: 4,326
Default

About CC filtering: why reinventing the wheel?

http://forum.cockos.com/showthread.php?t=57957

Hope it helps,
Mario
mabian is offline   Reply With Quote
Old 01-02-2011, 06:00 PM   #9
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

i was looking for ... one click solution
and also i was miss this one

Program Change plus 4 configurable filter seems like will do the job.

Thank you so much
Yıldırım
timbralzoom is offline   Reply With Quote
Old 01-04-2011, 02:40 PM   #10
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

Didn't see your last post timbralzoom, so here is the MIDI CC blocker I made for you
Code:
desc:MIDI CC blocker

in_pin:none
out_pin:none

@init

ext_noinit = 1;

CC = $xB0;

@block

while (
  midirecv(offset, msg1, msg23) ?
  (
	(msg1 & $xF0) == CC ? 1 : midisend(offset, msg1, msg23);
  );
);
Attached Files
File Type: txt midi_CC_blocker.txt (225 Bytes, 353 views)
boreg is offline   Reply With Quote
Old 01-04-2011, 03:12 PM   #11
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

Quote:
Originally Posted by boreg View Post
Didn't see your last post timbralzoom, so here is the MIDI CC blocker I made for you
Code:
desc:MIDI CC blocker

in_pin:none
out_pin:none

@init

ext_noinit = 1;

CC = $xB0;

@block

while (
  midirecv(offset, msg1, msg23) ?
  (
	(msg1 & $xF0) == CC ? 1 : midisend(offset, msg1, msg23);
  );
);

yay!!
midi toys always welcome !!

you made my day ( actually night ..00:11 here)

Thank
You
So
Much !

Yıldırım
timbralzoom is offline   Reply With Quote
Old 08-10-2011, 06:12 PM   #12
sillyrobin
Human being with feelings
 
sillyrobin's Avatar
 
Join Date: Sep 2009
Location: Toronto
Posts: 308
Default

This thing is amazing. I can know trigger all 8 engines in Geist from one track. thanks again. Exactly what I was looking for.
sillyrobin is offline   Reply With Quote
Old 08-11-2011, 03:33 AM   #13
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

My pleasure! Glad you find it useful.
boreg is offline   Reply With Quote
Old 04-28-2012, 07:27 AM   #14
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

i have a strange question / regıest about the matrix
is it possible to put some kind of activity meters "just on inputs" to see
which channel active ?
would be really helpful addition.
Thank you again ..and..again.

Yıldırım
timbralzoom is offline   Reply With Quote
Old 04-29-2012, 01:14 AM   #15
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

That seems doable, I'll try to implement it.
boreg is offline   Reply With Quote
Old 04-30-2012, 02:18 PM   #16
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

Done! Grab the updated version at the usual place
boreg is offline   Reply With Quote
Old 04-30-2012, 02:45 PM   #17
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

hey
this is second time that you made my day!
i can't say enough ...
Thank You So Much !
timbralzoom is offline   Reply With Quote
Old 05-01-2012, 12:03 AM   #18
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

U R welcome ;D
boreg is offline   Reply With Quote
Old 02-26-2013, 11:13 PM   #19
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

Hi its me again



i was dreaming about something like this recently.
2 matrix in one window with output midi bus selector for each..
and i realized this is very extreme wish and specific to my workflow,

but i couldn't resist to ask anyway
is it possible to add output midi bus selector
to this incredibly useful Matrix ?
then i can use two instances as i dreamed.

in any case,
thank you so much!
Yıldırım

Last edited by timbralzoom; 08-18-2017 at 03:14 PM.
timbralzoom is offline   Reply With Quote
Old 02-27-2013, 05:00 AM   #20
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

Hi,

Unfortunately, I don't have experience working with MIDI buses in Reaper, and in JS plugins specifically. Besides, this would require a significant rewrite of the whole plugin - all processing and drawing logic would have to be moved to objects (using the new JS features) so it can be called for each buss independently. And since I have no personal interest in this feature, I'm afraid it ain't gonna happen )) ...sorry mate!
boreg is offline   Reply With Quote
Old 02-27-2013, 11:48 AM   #21
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

Hi

i was thinking , this might be need huge work to done
so yes quite understandable reasons
i just couldn't resist to do my "nice try"
anyway...


thanks for your time really!
timbralzoom is offline   Reply With Quote
Old 10-27-2017, 04:40 AM   #22
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

Hi there!
almost 5 years after its me again

is it possible to make this wonder all automatable? maybe a separate version?
it would amazing to use in the LBX-Stripper & Stripper's Snapshot function!

just in case.. LBX-Stripper:
https://forum.cockos.com/showthread.php?t=182233

Thank you in advance!
timbralzoom is offline   Reply With Quote
Old 10-27-2017, 05:34 AM   #23
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

Hi!

I've re-read my reply from 5 years ago, and still holds true. Learning the new JS language features and rewriting this plugin is quite a task, and I have even less free time than I did back then (two kids, full-time job and a freelance project )

Sorry timbralzoom, I'm not up to it...
boreg is offline   Reply With Quote
Old 10-27-2017, 05:55 AM   #24
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

Quote:
Originally Posted by boreg View Post
Hi!

I've re-read my reply from 5 years ago, and still holds true. Learning the new JS language features and rewriting this plugin is quite a task, and I have even less free time than I did back then (two kids, full-time job and a freelance project )

Sorry timbralzoom, I'm not up to it...
absolutely no problem, good luck with the job & project but especially with the kids
Thank you for the reply!
timbralzoom is offline   Reply With Quote
Old 05-22-2020, 03:27 AM   #25
junh1024
Human being with feelings
 
Join Date: Feb 2014
Posts: 240
Default

Quote:
Originally Posted by timbralzoom View Post
is it possible to make this wonder all automatable?
It's probably possible, if we study the paradigm of zplane retune, notice that 1 point gets mapped to only 1 other point, that way it's easy to comprehend the automation. See pic.

The main DSP loop is quite small. But you may need to completely rewrite the GUI.

BTW do you have a use-case for automating the routing?
Attached Images
File Type: png screenshot.1740.png (37.7 KB, 123 views)
junh1024 is offline   Reply With Quote
Old 05-22-2020, 06:06 AM   #26
timbralzoom
Human being with feelings
 
timbralzoom's Avatar
 
Join Date: Apr 2010
Location: Turkey/Istanbul
Posts: 1,820
Default

an old usage example of a poor man's matrix

https://www.youtube.com/watch?v=eecrs7OepVc


with the vst version i made in the Synth Maker (32bit)
timbralzoom is offline   Reply With Quote
Old 11-14-2020, 12:48 PM   #27
peter5992
Human being with feelings
 
peter5992's Avatar
 
Join Date: Mar 2008
Location: Oakland, CA
Posts: 10,478
Default

This is terrific, thanks!
peter5992 is offline   Reply With Quote
Old 11-16-2020, 05:07 AM   #28
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

Thank you!
boreg is offline   Reply With Quote
Old 01-24-2021, 03:47 PM   #29
jrk
Human being with feelings
 
Join Date: Aug 2015
Posts: 2,969
Default

Very handy. Nice one.

boreg, Is there any chance you might edit the original announcement post to refer to the bug-fixed version?

It's a bit confusing. At least it confused me.

Cheers
__________________
it's meant to sound like that...
jrk is offline   Reply With Quote
Old 01-28-2021, 07:23 AM   #30
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

@jrk - thanks!
Updated the original post.
boreg is offline   Reply With Quote
Old 01-28-2021, 07:41 AM   #31
jrk
Human being with feelings
 
Join Date: Aug 2015
Posts: 2,969
Default

Good stuff. It's been a real problem solver for quite a few people recently.
__________________
it's meant to sound like that...
jrk is offline   Reply With Quote
Old 02-09-2022, 07:12 PM   #32
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 54
Default

Cool. Just what I needed. Any chance to get this included into the ReaPack repository?
Gruust is offline   Reply With Quote
Old 02-10-2022, 02:21 PM   #33
boreg
Human being with feelings
 
Join Date: Jul 2009
Posts: 162
Default

Glad you find it useful @Gruust!
Ask the ReaPack developers if they want to include it. Of course, I will be delighted if it does get included.
boreg 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 04:12 PM.


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