Old 11-16-2019, 02:31 PM   #1
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default Dfk's Track Router (v.8) MIDI routing!

Disclaimer:
Test/use my scripts at your own risk. While it is atypical that a REAPER Lua script would damage or harm your hardware/software/data, I will not accept any liability if this were to occur. The download, installation, and operation of my scripting code and its structures are strictly an operative of free will, and signify an agreement to these terms. You are responsible for any damages that might occur, however unlikely. All my scripts are licensed as GPL v.3.

Installation

Simply put both files in your script folder (make sure they are in the same folder), and load and the "Dfk Track Router.lua" file into your REAPER action list.

Requirements

EXTENSIONS: js_ReaScriptAPI v0.993 (version used in development) SWS/S&M 2.10.0 (version used in development)

Info regarding 'sends' and 'parent sends' in REAPER

Parent Sends: Every track has 1 parent send. The volume adjuster for a parent send is the track's main volume slider (TCP, MCP, etc.). This send can be enabled or disabled. Parent sends typically route to the project master track as default, but can be routed to any track (a good example of this would be REAPER's folders. The lead folder is actually the 'parent' of all its lower-level tracks).

Regular Sends: Every track *may* have additional sends. These additional sends may be routed to anything except REAPER's master track bus (You have to send to the master bus via a parent send). These sends do not have their own enable/disable setting, but can be deleted, muted, or have volume set to -1.#InfdB. Their volume is adjusted under the routing menu for the specific track. These sends are unaffected by any parent send volume slider (a.k.a. the track's main slider). I'm not sure if there is a *limit* to how many of these additional sends you may have on any given track...

In this script, 'parent send' buttons and lines are portrayed using the color yellow; or red, when they are disabled. Parent sends can be disabled or enabled by shift+left-clicking on them. 'Regular sends' are characterized via blue buttons and lines. The information provided in the previous two paragraphs are to serve as a brief explanation for how this script is color-coded, and to provide a little context for REAPER's send/parent send protocol.

.
Attached Files
File Type: lua Dfk Track Router v.8.lua (109.0 KB, 2 views)
File Type: lua Dfk_GUI_Functions.lua (30.2 KB, 2 views)

Last edited by Dafarkias; 01-11-2020 at 06:00 AM.
Dafarkias is offline   Reply With Quote
Old 11-16-2019, 02:46 PM   #2
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Older v.75


Last edited by Dafarkias; 01-11-2020 at 04:17 AM.
Dafarkias is offline   Reply With Quote
Old 11-16-2019, 02:47 PM   #3
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Older v.5


Last edited by Dafarkias; 01-11-2020 at 04:17 AM.
Dafarkias is offline   Reply With Quote
Old 11-17-2019, 07:13 AM   #4
bFooz
Human being with feelings
 
bFooz's Avatar
 
Join Date: Jul 2010
Location: Slovakia
Posts: 1,206
Default

A touch of fanciness - try to add gfx.blurto(x,y ) to each transparent rectangle, so the background behind it is blurred. Do max 10 passes, probably 3 will be enough, or just 1 if there is a lot of overlap of several windows on top of each other expected.
__________________
Donations | Mixing & Mastering Services
bFooz is offline   Reply With Quote
Old 11-17-2019, 07:28 AM   #5
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

lol my friend I don't know how you do it...

Dafarkias is offline   Reply With Quote
Old 11-17-2019, 08:31 AM   #6
bFooz
Human being with feelings
 
bFooz's Avatar
 
Join Date: Jul 2010
Location: Slovakia
Posts: 1,206
Default

The Reaper's blur behaves a little bit strange, when you go to more than 8-10 passes, 1px lines disappear instead of being blurred and more solid objects look weird as well, like the blur is narrowing down the bright areas and widening the dark ones. Also the blur region itself removes brightness.

But its better(=much faster) than the box blur I did code.
__________________
Donations | Mixing & Mastering Services
bFooz is offline   Reply With Quote
Old 11-17-2019, 09:24 AM   #7
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

I've also noticed that REAPER's gfx APIs draw 'alpha' in a way that doesn't act as linearly as other programs I've used in the past, I think. It's nothing consequential though, at the end of the day, it's all about script functionality.
Dafarkias is offline   Reply With Quote
Old 11-17-2019, 12:42 PM   #8
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Well see how it goes. I'm going to do a little more work through the week, I hope.

Last edited by Dafarkias; 11-17-2019 at 02:54 PM.
Dafarkias is offline   Reply With Quote
Old 11-24-2019, 06:54 AM   #9
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Showing off menus (old version):


Last edited by Dafarkias; 01-05-2020 at 11:36 AM.
Dafarkias is offline   Reply With Quote
Old 11-24-2019, 12:35 PM   #10
Vagelis
Human being with feelings
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 501
Default

It looks very nice! Visually reminds me a bit of the clip launcher in Bitwig which it would be nice to have for Reaper.
Vagelis is offline   Reply With Quote
Old 11-24-2019, 07:40 PM   #11
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Thanks.

I still have a ton of work to do on it, but I'm really pleased with it so far. Since I posted that last GIF, the zooming now 'centers' (zooms toward the direct center of the screen).
Dafarkias is offline   Reply With Quote
Old 12-26-2019, 01:42 PM   #12
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Dafarkias is offline   Reply With Quote
Old 12-26-2019, 01:43 PM   #13
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

New features!


Per-project recognition of the script's:
  • window position
  • window size
  • track box positions
  • scroll/zoom position position

I'm about to start plugging away on the actual intended functionality of the script, the routing & wiring.
Dafarkias is offline   Reply With Quote
Old 12-26-2019, 01:46 PM   #14
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Let me know what you think!
Dafarkias is offline   Reply With Quote
Old 12-28-2019, 08:24 AM   #15
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Dafarkias is offline   Reply With Quote
Old 12-28-2019, 01:05 PM   #16
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

I know this script is really not picking up any steam, but I'm just about done with it; please let me know if my bumps are excessive, I'm really just trying to update the progress of the script. Not trying to be a nuisance.

Anyways, I'm a few hours away from posting the script files to this thread. It would be great to receive some feedback.

I'm looking forward to people testing the script for Linux and OSX. I code and test in Windows, strictly.



FYI:

It will definitely require Julian's extension plus SWS. Also, it's my first script that actually requires more than one file, I have a GUI functions library. Install is a simple as making sure that both files are in the same folder, and then just loading the Dfk Track Router.lua file into the action list...

Last edited by Dafarkias; 12-28-2019 at 04:08 PM.
Dafarkias is offline   Reply With Quote
Old 12-28-2019, 01:34 PM   #17
Vagelis
Human being with feelings
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 501
Default

Looking good to me When is it going to be released?
Vagelis is offline   Reply With Quote
Old 12-28-2019, 01:41 PM   #18
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Hopefully have a version for testing posted within a few hours. It won't have any bells and whistles, but it will be just for those what want to help test for bugs and provide feedback.

Thanks for the comment!
Dafarkias is offline   Reply With Quote
Old 12-28-2019, 04:04 PM   #19
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

I think I'm going to post it sometime tomorrow. I've got it just about where I want it for initial release/beta testing. I just want to make sure that I include brief documentation and disclaimer jargon, but I'm going to bed.

Can't wait to get some feedback, or potentially a few testers that like the script and want to help out!
Dafarkias is offline   Reply With Quote
Old 12-29-2019, 05:17 AM   #20
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

v.5 is posted!

Simply put both files in your script folder (make sure they are in the same folder), and load and the "Dfk Track Router.lua" file into your REAPER action list.

Extensions required by script:

EXTENSIONS: js_ReaScriptAPI v0.993 (version used in development)
SWS/S&M 2.10.0 (version used in development)

Files are attached to OP.
Dafarkias is offline   Reply With Quote
Old 12-29-2019, 06:00 AM   #21
Vagelis
Human being with feelings
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 501
Default

Dfk Track Router.lua:100: unexpected symbol near 'return'

I see this when i run the script, am i doing something wrong?
Vagelis is offline   Reply With Quote
Old 12-29-2019, 07:04 AM   #22
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Oops--sorry about that, please try again...I've re-posted
Dafarkias is offline   Reply With Quote
Old 12-29-2019, 08:15 AM   #23
Vagelis
Human being with feelings
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 501
Default

Overall i like it, i just need to spend more time with it
About receives and sends, it would be nice if the color of the circles was different, so that we could seperate them easier.
Also i like the zoom function! One suggestion would be if we could scroll by clicking and dragging on the grid and not from the faders only, because when we zoom in, it doesn't zoom above the object and we have to scroll again.
Vagelis is offline   Reply With Quote
Old 12-29-2019, 08:20 AM   #24
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Sorry that I haven't provided much documentation as of yet...

There actually is a drag-to-scroll feature... It currently uses a middle-mouse click.. Which I realize not all mouses have...

Do you think it would be a good idea to have the color of the sends and receives (and lines) the same color as their corresponding track?
Dafarkias is offline   Reply With Quote
Old 12-29-2019, 08:48 AM   #25
Vagelis
Human being with feelings
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 501
Default

Quote:
Originally Posted by Dafarkias View Post
Sorry that I haven't provided much documentation as of yet...

There actually is a drag-to-scroll feature... It currently uses a middle-mouse click.. Which I realize not all mouses have...
Didn't notice that, thanks/

Quote:
Originally Posted by Dafarkias View Post
Do you think it would be a good idea to have the color of the sends and receives (and lines) the same color as their corresponding track?
Displaying the lines with the same color as their track sounds good to me. But also the circles (Send, Receives) should have different color which doesn't need to change as the wires Imo.
One thing i've noticed is that when the script is open and i change the color from a track, it doesn't change in the script. If i close and start again the script, the color changes as it should.
Vagelis is offline   Reply With Quote
Old 12-29-2019, 08:54 AM   #26
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Quote:
Originally Posted by Vagelis View Post
Displaying the lines with the same color as their track sounds good to me. But also the circles (Send, Receives) should have different color which doesn't need to change as the wires Imo.
Hmmm... You mean those yellow circles at the top of the track-boxes? Sorry, just to clarify.


Quote:
Originally Posted by Vagelis View Post
One thing i've noticed is that when the script is open and i change the color from a track, it doesn't change in the script. If i close and start again the script, the color changes as it should.
Good catch! I programmed for the track names to update, but never occurred to have it check for color changes!
Dafarkias is offline   Reply With Quote
Old 12-29-2019, 09:04 AM   #27
Vagelis
Human being with feelings
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 501
Default

Quote:
Originally Posted by Dafarkias View Post
Hmmm... You mean those yellow circles at the top of the track-boxes? Sorry, just to clarify.
Yeap exactly, I think that they should have a specific color, eg for sends red and receives yellow. This could be helpful also for someone who starts the script for the first time, in order to seperate which is which, except the tooltip.
Except maybe if there was also an R or S in the circle.

EDIT: Also it would be nice if we could see the track number before the track name.
Vagelis is offline   Reply With Quote
Old 12-29-2019, 09:13 AM   #28
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

What do you think of:

-marquee selection, so you can 'route' multiple tracks simultaneously

-presets, so you can 'jump' back and forth from different mixes for A/B comparison

I would consider both of these ^^ more of major features, and if there's enough interest in the script, would probably start working on next.

As it stands, I'm slowly building a 'laundry-list' of small improvements and tweaks to make lol

[Edit]

For me, it was actually a pretty big deal to even get this script running. It has become my most time-intensive ReaScript project yet lol
Dafarkias is offline   Reply With Quote
Old 12-29-2019, 09:15 AM   #29
Vagelis
Human being with feelings
 
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 501
Default

Quote:
Originally Posted by Dafarkias View Post
What do you think of:

-marquee selection, so you can 'route' multiple tracks simultaneously

-presets, so you can 'jump' back and forth from different mixes for A/B comparison
Sounds cool!
Vagelis is offline   Reply With Quote
Old 12-30-2019, 04:33 AM   #30
exidus
Human being with feelings
 
exidus's Avatar
 
Join Date: Feb 2016
Posts: 120
Default

This have the potential to turn into one of the most used scripts in my workflow. Unfortunately I'm away for the Holidays and will be able to test it after..
One thing.. Dont know if it is possible but it would be super useful to expand it with MIDI routing ports on the tracks. Even added MIDI routing layer will be welcomed.
__________________
- Win7 x64, latest x64 REAPER Beta

::::::: My Mixcloud Page ::::::: EFMod_JN Theme :::::::
exidus is online now   Reply With Quote
Old 12-30-2019, 05:43 AM   #31
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Being away for the holidays is typically not unfortunate!

Lol

I'm very unfamiliar with MIDI routing. I wouldn't mind incorporating it into the script, but I'd need to do some investigation first. Can you explain the jist to me of how MIDI routing works in REAPER?
Dafarkias is offline   Reply With Quote
Old 12-30-2019, 09:38 AM   #32
exidus
Human being with feelings
 
exidus's Avatar
 
Join Date: Feb 2016
Posts: 120
Default

Quote:
Originally Posted by Dafarkias View Post
Being away for the holidays is typically not unfortunate!

Lol

I'm very unfamiliar with MIDI routing. I wouldn't mind incorporating it into the script, but I'd need to do some investigation first. Can you explain the jist to me of how MIDI routing works in REAPER?
Thank you for being interested

I think these two videos from Kenny Gioia will explain it better than I ever could:

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

https://www.youtube.com/watch?v=8CzL_7NPysk
__________________
- Win7 x64, latest x64 REAPER Beta

::::::: My Mixcloud Page ::::::: EFMod_JN Theme :::::::
exidus is online now   Reply With Quote
Old 12-30-2019, 03:08 PM   #33
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Thanks I'll check 'em out.
Dafarkias is offline   Reply With Quote
Old 12-30-2019, 05:21 PM   #34
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,521
Default

Just thought this thread might be useful:
https://forum.cockos.com/showthread.php?t=193912
deeb is offline   Reply With Quote
Old 12-31-2019, 06:14 AM   #35
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Quote:
Originally Posted by deeb View Post
Just thought this thread might be useful:
https://forum.cockos.com/showthread.php?t=193912
Thanks deeb!

Quote:
Originally Posted by exidus View Post
This have the potential to turn into one of the most used scripts in my workflow. Unfortunately I'm away for the Holidays and will be able to test it after..
One thing.. Dont know if it is possible but it would be super useful to expand it with MIDI routing ports on the tracks. Even added MIDI routing layer will be welcomed.
So I watched those videos. Kenny is a talent.

What detail of MIDI routing capabilities would you like this script to have?

For instance, would you like to be able to choose what MIDI channels are being sent to another track? Or more simply, just be able to active/deactive sending the MIDI?

In its current state, the script creates sends according to your custom REAPER settings. So for me, when I create a send, it automatically sends stereo audio and all MIDI channels 1-16...
Dafarkias is offline   Reply With Quote
Old 12-31-2019, 10:40 AM   #36
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Working on update (v.6).

Minor things, really. Like not allowing text to exceed boundaries of buttons, track color changes updating to script automatically, and clarifying the send & receive circles by embedding 'S' and 'R' into them.

Before I tackle adding bigger features like marquee selection, presets, and MIDI routing, I want to make sure I'm satisfied with the more basic operations of the script.

I appreciate all feedback so far. Please keep it up, don't hesitate to share any idea and collaborate!

[Edit]

v.6 Added.

*Track colors now update into the script within .3 seconds.
*Added 'S' and 'R' to track send and receive buttons for clarification.
*Shift+left-click can now drag-scroll, just like middle-mouse-click.


Also removed console messages from the script. Meant to do that last time I uploaded... Oops lol

[Edit2]

v.61 Added.

Worked on track-update bugs, and now there are right-click menus for both the grid-context and track-box context!

Menus include settings/function such as:
-Set track color
-Rename track
-Delete track
-Set track coordinates
-Snap all tracks to grid (toggle)

Last edited by Dafarkias; 12-31-2019 at 01:28 PM.
Dafarkias is offline   Reply With Quote
Old 12-31-2019, 02:49 PM   #37
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 1,964
Default

Similar to saikes machine view?
https://github.com/JoepVanlier/Hackey-Machines
TonE is offline   Reply With Quote
Old 12-31-2019, 03:07 PM   #38
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Actually I am and was aware of Hackey Machines before having made this. I think there are definitely places where this script and Joe's are similar, and I also think that they are very different too.

One of the reasons I'm building this script is because I would like a routing workflow that complements ambisonic mixing.
Dafarkias is offline   Reply With Quote
Old 12-31-2019, 03:11 PM   #39
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: England
Posts: 399
Default

Feel free to test it out and tell me what you think.

It's still very much in its development stage, and so the more testers the merrier. And I would appreciate it too!

[Edit]

Version .7! Small, sort-of. The parent sends volume can now be adjusted per track, just like regular sends. Or they can be enabled/disabled. For some reason, the way REAPER's routing system works for audio goes something like this:

Every track has 1 parent send. Period. The volume adjuster for this send is the track's main volume slider. This send can be enabled or disabled. Parent sends typically default to the master track, but can be set to send any track (a good example of this would be REAPER's folders. The lead folder is actually the 'parent' of all its lower-level tracks).

Every track *may* have additional sends. These additional sends may be routed to anything except the REAPER's master track bus (You have to send to the master bus via a parent send). These sends do not have their own enable/disable setting, but can either be delete, muted, or volume set to -1.#InfdB. Their volume is adjusted under the routing menu for any specific track. These sends are unaffected by any parent send volume slider (a.k.a. the track's main slider). I'm not sure if there is a *limit* to how many of these additional sends you may have on any given track...

I think I want to work on marquee selection next (groan), which will involve a fair amount of re-coding. Wish me luck!

Last edited by Dafarkias; 01-01-2020 at 01:39 PM.
Dafarkias is offline   Reply With Quote
Old 01-01-2020, 07:35 AM   #40
HoJo
Human being with feelings
 
Join Date: Dec 2007
Location: Germany
Posts: 228
Default Error Message on Mac OSX 10.13

Dfk,

Thanks for all the useful scripts and helpers!

I did put the Track Router to my scripts folder on mac (10.13.x).
Opened a project, selected some folder and did run the script.
I was shown the message "Dfk Track Router v.7.lua:2: <eof> expected near 'end'"

Can you help me?
Thanks!
BR,
HoJo

Last edited by HoJo; 01-01-2020 at 07:37 AM. Reason: Picture not attached
HoJo 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 02:39 AM.


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