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

Reply
 
Thread Tools Display Modes
Old 06-03-2019, 08:15 PM   #1
BryanChi
Human being with feelings
 
Join Date: Jan 2019
Location: Taiwan
Posts: 432
Default would like to hire a coder to help/teach me write a script

Hi guys,
I'm just wondering if any of you code ninjas would be able to help me bring an idea to life, and also teach me how to code while you're writing?
Please message me or comment below to let me know your hourly rate and we can discuss about details.
Here's the original post about the idea if you're interested :https://forum.cockos.com/showthread.php?t=216000
Thanks!!
BryanChi is offline   Reply With Quote
Old 06-03-2019, 11:12 PM   #2
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

If you want this to be "natively" controlled and automable, then you probably have to write JSFX with sliders controlling some global space memory variables in the parent track and specific childs JSFXs with parameters linked to FX on the same track (with min-max and slope parameters shared also in grobal memory). This is most usable way, but still not precise enough because of asynchronous track nature (so it useless for sample-accurate automation).

Not sure if it is easy to teach. It is like hundrends lines of code and hours of sitting and thinking/coding (even a relatively simple implementation I posted above). It is too expensive for you if you want to hire somebody and probably not useful enough (there are near zero replies in your original thread) if someone would code it for free/donation.

Last edited by mpl; 06-04-2019 at 11:21 AM.
mpl is offline   Reply With Quote
Old 06-04-2019, 05:41 PM   #3
BryanChi
Human being with feelings
 
Join Date: Jan 2019
Location: Taiwan
Posts: 432
Default

Hi mpl,
Thank you so much for taking the time reading the lengthy thread.
Approximately how long do you think will take with that solution you mentioned? When you say hours does that mean it can be done in like a day?
Perhaps not exactly teach, I have learned a bit of lua and eel, I just need a little bit of explanation as they're coding and it'd be immensely helpful!
thanks again!

(Edit)
I've just edited the original post, it was too lengthy and detailed. It should help readers understand better now.

Last edited by BryanChi; 06-04-2019 at 06:06 PM. Reason: want to add something
BryanChi is offline   Reply With Quote
Old 06-04-2019, 11:11 PM   #4
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by BryanChi View Post
Approximately how long do you think will take with that solution you mentioned? When you say hours does that mean it can be done in like a day?
Question is very abstract, because there could be different issues happened during coding you didn`t know at the start of project. Even shortened implementation you suggested require hardcore chunk parsing/modifying, which is superawful and dangerous in bad hands.

To me personally it is like 3 days of continiuos sitting and coding, drinking coffee+vodka.

Last edited by mpl; 06-05-2019 at 10:28 AM.
mpl is offline   Reply With Quote
Old 06-05-2019, 08:57 AM   #5
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

The two main issues with Reaper programming are
1) the concepts Reaper uses and how they interact with each other and
2) the difficulties/quirks/weird things Reaper does, although it would be more logical if Reaper would do them otherwise, but doesn't.

These two make your head ache.

So it's not a question of how many hours or days to code, but rather how long it takes to understand the concepts you need for the program AND to understand, how you can use them for your programming usecase.

From what I understand from your idea, this is quite advanced to do and needs a lot of things to consider.
Haven't checked yet, how possible it is, but it's probably not done in a few hours by someone with enough knowledge, let alone teaching you this.

So my advice would be:
Try to implement it yourself, but not as a whole. Try to build the first thing on your list and make this work.
If that works, continue with the next thing and make this work.
And so on.
Until you have the full process implemented.
That way, you are not dependent on others, can learn and master how to do it and you do not run into the problem of loosing yourself in the process, because of too many details.

And if you come across questions during that, you can ask them in here, solving one little problem at a time.

At some point, you will have a running script and learned the stuff yourself and being able to help others wanting to do the same.

PS: It's also ok to restart your code, if you think, it became too messy during the learning process. I often write a script, until it works and completely rewrite it from scratch after that, to make it cleaner.
Especially, as I know then how I should have done it in the first place.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 06-06-2019, 12:21 AM   #6
BryanChi
Human being with feelings
 
Join Date: Jan 2019
Location: Taiwan
Posts: 432
Default

Quote:
Originally Posted by mpl View Post
Question is very abstract, because there could be different issues happened during coding you didn`t know at the start of project. Even shortened implementation you suggested require hardcore chunk parsing/modifying, which is superawful and dangerous in bad hands.

To me personally it is like 3 days of continiuos sitting and coding, drinking coffee+vodka.
Yes I understand, it's unpredictable what problems there will be and how long it will take to solve them...
I'm still considering about the possibility of having someone write it for me, three days is not too much more than I expected, but that's just the simplified implementation, and plus there's probably some bug fixxing to do after it's done?
Also I don't have any idea what hourly rate it usually is for projects like this, do you mind letting me know how much you or your programmer friends usually charge per hour?
BryanChi is offline   Reply With Quote
Old 06-06-2019, 12:26 AM   #7
BryanChi
Human being with feelings
 
Join Date: Jan 2019
Location: Taiwan
Posts: 432
Default

Hi Mespotine,
Thank you so much for the advice!
I'm considering the possibility of learning coding seriously now. A while ago I've spent a few days learning and did managed to write a very simple script that's useful for myself, so I can certainly imagine how rewarding and fun it can be able to turn more ambitious ideas into reality.
Do you recommend Lua or Eel or other? I'm leaning toward learning lua since you can you it to write other things besides reaper script; my only concern is that maybe there are things that can only be done by using eel? Or the only difference is the better performance(faster and more efficient, as I heard)?
Also, what kind of approach do you recommend me to take to learn Lua? A. Just start trying api functions directly and learn from pre-existing scripts, or B. Learn all the basics about lua from tutorials etc. even if the tutorial is not targeted for coding in reaper.
Thanks again!
BryanChi is offline   Reply With Quote
Old 06-06-2019, 12:34 AM   #8
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Quote:
Originally Posted by BryanChi View Post
or B. Learn all the basics about lua from tutorials etc. even if the tutorial is not targeted for coding in reaper.
Lua isn't a very interesting language by itself, so it could become a bit frustrating and boring learning it that way. It's definitely more useful and interesting when it's embedded into something that has an API, like Reaper.
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 06-06-2019, 04:42 AM   #9
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

With Reaper, best is to use Lua, as most of us have now a lot experience with it and can help you better.
In Reascript, the benefits of Eel over Lua are only interesting in edgecases/special cases, so Lua is recommended first.


Eel is interesting as well, if you plan to write jsfx ir video-processor plugins as well.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 06-09-2019, 11:27 PM   #10
BryanChi
Human being with feelings
 
Join Date: Jan 2019
Location: Taiwan
Posts: 432
Default

Thanks guys! I think Lua it is then, it also has so much more documentation then Eel, which will save me a lot of time of trying random things...
BryanChi is offline   Reply With Quote
Old 06-10-2019, 02:59 AM   #11
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,239
Default

If you haven't already, X-Raym's tutorials are a useful starting point....

https://www.extremraym.com/en/learn-reascript-reaper/

Raymond is active on this forum and very helpful if you get stuck.

Andy
andyp24 is offline   Reply With Quote
Old 06-10-2019, 04:17 AM   #12
Coachz
Human being with feelings
 
Coachz's Avatar
 
Join Date: Oct 2010
Location: Charleston, SC
Posts: 12,770
Default

Quote:
Originally Posted by BryanChi View Post
Thanks guys! I think Lua it is then, it also has so much more documentation then Eel, which will save me a lot of time of trying random things...
Google "lua tutorial" and you get nice resources like this

https://www.tutorialspoint.com/lua/
Coachz is offline   Reply With Quote
Old 06-10-2019, 08:03 AM   #13
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

edit: check latest MappingPanel
--------------
I recently start working on something similar to suggested concept, it is kinda like MappingPanel, but slightly limited (no formulas), but easier to setup and more 'native' as reascript haters like saying. Automable and no persistent/backgroud reascript needed.

Mapping Panel is built based on last incoming parameter changes, which makes it useless if user closing ReaScript, in short - awful implementation.

What BryanChi ask is pretty complex (I`m not really a good scripter, but this is also complex for me too). So far I`ve came to scheme like that:
1) "master" JSFX with 10 macro sliders controlling 10 global memory entries
2) "slave" JSFXs shared on various tracks on project with hidden sliders linked to related FX parameters on same track
3) every "slave" JSFXs contains info about what slider it linked to, what scaling, limits, tension, mute/solo flags, invertion flag, maybe something else
4) links setted up via ReaScript (easier to deal with for end user)

Preliminary ReaScript GUI sketch:


If someone is also interested in this, donation is much appreciated (thanks BryanChi for donation btw).

If devs read this: it would be way less pain to code this if there would be an API for parameter link access (ideally for MIDI/OSC learn too, or at least related chunks). I know you don't like us to use chunking, but there is no way to do it otherwise!

Last edited by mpl; 06-26-2019 at 08:51 AM.
mpl is offline   Reply With Quote
Old 06-10-2019, 11:28 PM   #14
BryanChi
Human being with feelings
 
Join Date: Jan 2019
Location: Taiwan
Posts: 432
Default

Thank you guys for recommending learning materials! I've gone through X-Raym's tutorials and it was quite helpful indeed!
million thanks to mpl for working on this!
As this idea comes from someone who has pretty much no knowledge about limitations of Reaper's scripts, please feel free to modify or do anything you see fit/want to make it work.
BryanChi is offline   Reply With Quote
Old 06-11-2019, 05:35 AM   #15
Dafarkias
Human being with feelings
 
Dafarkias's Avatar
 
Join Date: Feb 2019
Location: Southern Vermont
Posts: 864
Default

Quote:
Originally Posted by mespotine View Post
The two main issues with Reaper programming are
1) the concepts Reaper uses and how they interact with each other and
2) the difficulties/quirks/weird things Reaper does, although it would be more logical if Reaper would do them otherwise, but doesn't.

These two make your head ache.

So it's not a question of how many hours or days to code, but rather how long it takes to understand the concepts you need for the program AND to understand, how you can use them for your programming usecase.
I really enjoyed reading this, as even in my inexperience this has very much held true so far.

Sorry for butting in.
Dafarkias 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 11:03 PM.


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