Old 02-03-2016, 04:38 PM   #1
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default JSFX: how to get rid of the "Reload JS Effect" prompt?

Here's how I used to debug jsfx in Reaper 4.x:

Edit jsfx in textedit (I'm on a mac)
Hit control-S to save
Click "Full recompile/reset" button on JSFX IDE
test the jsfx
back to step 1

I have the JSFX IDE window shrunk way down and pushed off to the left so that the recompile button is on the extreme left of the screen and always visible. So I had a nice simple workflow: edit-save-recompile-test. A single mouse click took me from textedit to Reaper and back.

When I upgraded to Reaper 5, now I have to constantly click on "reload js effect" because it's been modified externally. Even if I don't save in TextEdit. (I assume textedit does an auto-save).

I find this extremely annoying and distracting. How can I go back to my Reaper 4 workflow? There are times when I want the earlier version to be running in Reaper while I work on the current version in textedit.
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 02-04-2016, 12:22 AM   #2
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

I am having the same issue on Windows with Notepad++, except I don't have auto save enabled. But yeah, the reload button is pretty annoying IMHO.
Tale is offline   Reply With Quote
Old 02-04-2016, 12:39 AM   #3
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

Ah yes, thanks for mentioning this! I have the same workflow issue when editing with Sublime Text or Atom.

I remember when this feature was added, and I can see the point to an extent, but some extra nuances to streamline the rapid prototyping experience would be nice, such as a setting for always updating silently to an updated version when the window is brought into focus, or even, as you say, simply being able to disable this notification.

Also, when a compilation error occurs I find myself having to close the "Error Recompiling" window before I can recompile, which also slows things down a bit for me. Perhaps there could be an option to allow recompilation immediately?

ij
ijijn is offline   Reply With Quote
Old 02-04-2016, 12:59 AM   #4
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default

Quote:
Originally Posted by ijijn View Post
a setting for always updating silently to an updated version when the window is brought into focus
This could be really confusing. I want to be in full control of when the code I'm running in Reaper updates. There are times when I want to look at the buggy behavior, edit the code, look at the buggy behavior again, edit some more, and THEN recompile.

The more I think about it, the more the "JS effect has been modified externally" warning seems like a really bad idea. I'm obviously aware it's been modified, because I'm the one doing the modifying! I don't want Reaper constantly interrupting me to tell me something I already know.

Can anyone think of a situation in which this is actually a useful warning?
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 02-04-2016, 01:18 AM   #5
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

Quote:
Originally Posted by Kite View Post
This could be really confusing. I want to be in full control of when the code I'm running in Reaper updates. There are times when I want to look at the buggy behavior, edit the code, look at the buggy behavior again, edit some more, and THEN recompile.
Oh I would never want that to be the default behaviour, but I could definitely see a place for it as an option to avoid quasi-merge conflicts when doing a cheeky quick edit in the native window after some typical updates in an external editor, without needing to recompile explicitly in between to avoid overwriting the changes. I think this is the sort of reason why they give the warning in the first place.
ijijn is offline   Reply With Quote
Old 02-14-2016, 08:12 PM   #6
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default

Bumping this because it's really bugging me. I never use two editors to edit a single file.

I made a feature request here, hopefully I did it right:
http://forum.cockos.com/showthread.php?t=172488
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 05-11-2016, 02:15 PM   #7
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default

Bumping because this is REALLY annoying me! I must have clicked that button several thousand times by now. I feel like a rat in a lab experiment. Using an external editor shouldn't be unnecessarily cumbersome.

Please, please, please provide some way to revert to Reaper 4.x behavior. Nothing fancy needed. I notice there is a [jsfx] section in the reaper.ini file in /Users/Kite/Library/Application Support/Reaper (I'm running OS X). I would be happy if I could edit this file to get rid of that button.
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 05-12-2016, 02:33 PM   #8
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

Agreed, it does rather get in the way of rapid prototyping.

Luckily I've found a way around it that works on Windows, and maybe on OSX too if they've recently fixed the way symbolic links work in Reaper.

Here's the trick: effects local to a project don't seem to generate these pop-ups, at least on my computer.

This is what I do:
  • Add an Effects folder to the test project, if it doesn't already exist.
  • For all necessary files, create a symbolic link within the new Effects folder hierarchy. This process only ever needs to be done once, and now any updates are kept nicely in sync.
  • Load the local <Project> version every time.
That's it. No more messages. I hope they don't consider this a bug and patch it.

But yeah, pretty please ... can we have an option to disable these messages entirely?
ijijn is offline   Reply With Quote
Old 05-12-2016, 09:40 PM   #9
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default

Unfortunately, this trick doesn't work on OS X
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 05-12-2016, 09:43 PM   #10
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default

Or perhaps I'm doing it wrong. i just moved the entire JSFX file into the effects folder. I didn't try the symbolic link part. How do you do that? I can't find it in the manual.
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 05-19-2016, 11:11 AM   #11
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

Quote:
Originally Posted by Kite View Post
Or perhaps I'm doing it wrong. i just moved the entire JSFX file into the effects folder. I didn't try the symbolic link part. How do you do that? I can't find it in the manual.
Hmm, I finally had a chance to get my Mac fired up, and I couldn't get that prompt to go away.

In any case, if you ever need to make symbolic links (aka symlinks) you can use either a dedicated app or the terminal.

App method

Here's one that worked for me: SymLinker

Run either the service or the plugin (depending on your version of OSX: details are in the Installation Instructions), then you can create a symbolic link via the right click context menu. It's very similar to an alias, except that it actually works (mostly) with Reaper.

Terminal method

Code:
ln -s path/to/source/file path/to/destination/file
ln creates the link
-s specifies a symbolic (not hard) link

While you can actually do this with folders, it is necessary to link each file individually: Reaper's FX browser won't follow symbolic link folders (yet) because it just sees them as files.

The only other thing I could suggest is making the plugin a nearly empty wrapper that imports the actual code from another file, probably a jsfx-inc one, and just calls its functions: perhaps something like init(), block(), gfx(). This way, when you update the code in an imported file it won't prompt you. It does mean everything needs to go in the @init section of the imported file.

Maybe that will help a little before they lend us a helping hand and give us the option of disabling this.
ijijn is offline   Reply With Quote
Old 05-19-2016, 01:09 PM   #12
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default

Ijijn, thanks for looking into this for me. The empty wrapper method sounds pretty inconvenient. I think I'll just use a portable install of Reaper 4.x for now. Sigh.
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 05-19-2016, 02:43 PM   #13
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Maybe just don't use the JSFX IDE -- you can shift+click the Edit button to force a recompile/reload (or right click it to spawn an editor for the jsfx). If you need to use the watch variables etc, then open the IDE for that point, then close it).
Justin is offline   Reply With Quote
Old 05-19-2016, 03:08 PM   #14
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

Quote:
Originally Posted by Justin View Post
Maybe just don't use the JSFX IDE -- you can shift+click the Edit button to force a recompile/reload (or right click it to spawn an editor for the jsfx). If you need to use the watch variables etc, then open the IDE for that point, then close it).
Ooh, I didn't know about the shift+click technique. Thanks!
ijijn is offline   Reply With Quote
Old 05-19-2016, 03:12 PM   #15
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

Quote:
Originally Posted by Kite View Post
Ijijn, thanks for looking into this for me. The empty wrapper method sounds pretty inconvenient. I think I'll just use a portable install of Reaper 4.x for now. Sigh.
You're welcome! Sorry I couldn't be more help. Maybe Justin's shift+click suggestion will work great for you though. I'll give it a go today.
ijijn is offline   Reply With Quote
Old 05-21-2016, 02:22 AM   #16
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by Justin View Post
Maybe just don't use the JSFX IDE -- you can shift+click the Edit button to force a recompile/reload (or right click it to spawn an editor for the jsfx). If you need to use the watch variables etc, then open the IDE for that point, then close it).
That's a good suggestion, I will try that. Thanks!
Tale is offline   Reply With Quote
Old 05-21-2016, 03:55 AM   #17
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

I'm getting a whole lot of hangs and blank screens with the shift+click method, especially when nothing has changed in the code. Is there anything Reaper does differently compared to the regular recompile?

Meanwhile I'll try to get to the bottom of the mystery by isolating the problem code area/s when I'm back at the studio.
ijijn is offline   Reply With Quote
Old 05-30-2016, 04:52 PM   #18
Kite
Human being with feelings
 
Join Date: Apr 2010
Location: Portland OR
Posts: 217
Default

Quote:
Originally Posted by ijijn View Post
I'm getting a whole lot of hangs and blank screens with the shift+click method, especially when nothing has changed in the code. Is there anything Reaper does differently compared to the regular recompile?
The regular way is a full recompile/reset. Shift+click recompiles but doesn't reset. Not as good, obviously. I suppose you could click on "reset to factory default", but that's just as bad as clicking on "reload JS effect".
__________________
alt-tuner: a microtonal midi plug-in: www.TallKite.com/alt-tuner.html
The Kite Guitar, a playable 41-ET guitar: www.KiteGuitar.com
Kite is offline   Reply With Quote
Old 05-30-2016, 05:33 PM   #19
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Quote:
Originally Posted by ijijn View Post
I'm getting a whole lot of hangs and blank screens with the shift+click method, especially when nothing has changed in the code. Is there anything Reaper does differently compared to the regular recompile?

Meanwhile I'll try to get to the bottom of the mystery by isolating the problem code area/s when I'm back at the studio.
Hmm I haven't seen the hangs, any way to duplicate?
Justin is offline   Reply With Quote
Old 05-30-2016, 05:33 PM   #20
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Quote:
Originally Posted by Kite View Post
The regular way is a full recompile/reset. Shift+click recompiles but doesn't reset. Not as good, obviously. I suppose you could click on "reset to factory default", but that's just as bad as clicking on "reload JS effect".
Adding ctrl/command+click for recompile/reset.
Justin is offline   Reply With Quote
Old 06-03-2016, 04:20 AM   #21
ijijn
Human being with feelings
 
ijijn's Avatar
 
Join Date: Apr 2012
Location: Christchurch, New Zealand
Posts: 482
Default

Quote:
Originally Posted by Kite View Post
The regular way is a full recompile/reset. Shift+click recompiles but doesn't reset. Not as good, obviously. I suppose you could click on "reset to factory default", but that's just as bad as clicking on "reload JS effect".
Thanks for the insights!

Quote:
Originally Posted by Justin View Post
Hmm I haven't seen the hangs, any way to duplicate?
Sorry, I've been away for the past few days. It's possible that just my local dev versions of VI Folio are affected. I'll look into this more tomorrow.

Quote:
Originally Posted by Justin View Post
Adding ctrl/command+click for recompile/reset.
Thanks, you're a star! Looking forward to trying this too.
ijijn 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 08:31 AM.


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