Old 12-11-2009, 02:36 PM   #41
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default 0.3.9

Code:
- added 3 modules (original from mg/loser, copyright notices included):
saturation, bandsplitter3way, bandjoiner3way
- online version - index.html - added confirmation when closing
the browser window
- online version - fix for 'modules.cfg' browser cache
liteon is offline   Reply With Quote
Old 01-11-2010, 06:24 PM   #42
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 370
Default

Incredible job !!

Thank you liteon!

I'm looking to make a multiband expander, (kind of cedar dns1000)

The documentation is good also, but I wonder if it's easy to "convert" a js plug in to a module ?
mim is offline   Reply With Quote
Old 01-11-2010, 07:22 PM   #43
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

hey, i've made a small update yesterday. (0.4.0 out of beta now btw)

converting a fx into module is quite easy since the original code is already there. just use an empty module as a template... you can also use the jesusonic ide to develop modules, which will ensure that a module is jesusonic compatible (and debugged properly).

** there are only two important things here:
- declaring *all* used variables. to see a complete list of variables you can look at the list in the debugger in jesusonic's ide.
- linking all input/output variables to directives (@slider, @sample etc).
this means that if the modules has audio input then perhaps you should declare the input variable as 'input[sample]'

check the example below ('3band splitter' by LOSER / included as 'bandsplitter3way.jsmod') for a quick before/after comparison. i think i've spend around 10 minutes converting this one.

original:
Code:
// (C) 2006, Michael Gruhn.

// NO WARRANTY IS GRANTED. THIS PLUG-IN IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
// WARRANTY OF ANY KIND. NO LIABILITY IS GRANTED, INCLUDING, BUT NOT LIMITED TO,
// ANY DIRECT OR INDIRECT,  SPECIAL,  INCIDENTAL OR CONSEQUENTIAL DAMAGE ARISING
// OUT OF  THE  USE  OR INABILITY  TO  USE  THIS PLUG-IN,  COMPUTER FAILTURE  OF
// MALFUNCTION INCLUDED.  THE USE OF THE SOURCE CODE,  EITHER  PARTIALLY  OR  IN
// TOTAL, IS ONLY GRANTED,  IF USED IN THE SENSE OF THE AUTHOR'S INTENTION,  AND
// USED WITH ACKNOWLEDGEMENT OF THE AUTHOR. FURTHERMORE IS THIS PLUG-IN A  THIRD
// PARTY CONTRIBUTION,  EVEN IF INCLUDED IN REAPER(TM),  COCKOS INCORPORATED  OR
// ITS AFFILIATES HAVE NOTHING TO DO WITH IT.  LAST BUT NOT LEAST, BY USING THIS
// PLUG-IN YOU RELINQUISH YOUR CLAIM TO SUE IT'S AUTHOR, AS WELL AS THE CLAIM TO
// ENTRUST SOMEBODY ELSE WITH DOING SO.


desc:3-Band Splitter (Splits In Low:CH1+2,Mid:CH3+4,High:CH5+6)
slider1:200<0,22000,1>Frequency (Hz)
slider2:2000<0,22000,1>Frequency (Hz)

@init
cDenorm=10^-30;

@slider
freqHP = max(min(slider2,srate),slider4);
xHP = exp(-2.0*$pi*freqHP/srate);
a0HP = 1.0-xHP;
b1HP = -xHP;

freqLP = min(min(slider1,srate),slider2);
xLP = exp(-2.0*$pi*freqLP/srate);
a0LP = 1.0-xLP;
b1LP = -xLP;

@sample

s0 = spl0;
s1 = spl1;

spl0 = (tmplLP = a0LP*s0 - b1LP*tmplLP + cDenorm);
spl1 = (tmprLP = a0LP*s1 - b1LP*tmprLP + cDenorm);

spl4 = s0 - (tmplHP = a0HP*s0 - b1HP*tmplHP + cDenorm);
spl5 = s1 - (tmprHP = a0HP*s1 - b1HP*tmprHP + cDenorm);

spl2 = s0 - spl0 - spl4;
spl3 = s1 - spl1 - spl5;

module:
Code:
// --------------------------
// from 3-Band Splitter
// by Michael Gruhn (c) 2006
//
// NO WARRANTY IS GRANTED. THIS PLUG-IN IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
// WARRANTY OF ANY KIND. NO LIABILITY IS GRANTED, INCLUDING, BUT NOT LIMITED TO,
// ANY DIRECT OR INDIRECT,  SPECIAL,  INCIDENTAL OR CONSEQUENTIAL DAMAGE ARISING
// OUT OF  THE  USE  OR INABILITY  TO  USE  THIS PLUG-IN,  COMPUTER FAILTURE  OF
// MALFUNCTION INCLUDED.  THE USE OF THE SOURCE CODE,  EITHER  PARTIALLY  OR  IN
// TOTAL, IS ONLY GRANTED,  IF USED IN THE SENSE OF THE AUTHOR'S INTENTION,  AND
// USED WITH ACKNOWLEDGEMENT OF THE AUTHOR. FURTHERMORE IS THIS PLUG-IN A  THIRD
// PARTY CONTRIBUTION,  EVEN IF INCLUDED IN REAPER(TM),  COCKOS INCORPORATED  OR
// ITS AFFILIATES HAVE NOTHING TO DO WITH IT.  LAST BUT NOT LEAST, BY USING THIS
// PLUG-IN YOU RELINQUISH YOUR CLAIM TO SUE IT'S AUTHOR, AS WELL AS THE CLAIM TO
// ENTRUST SOMEBODY ELSE WITH DOING SO.
// --------------------------

//#mspr
//#inputs: in[sample], f0[block], f1[block]
//#outputs: out0[sample],out1[sample],out2[sample]
//#declare: xHP, a0HP, b1HP, xLP, a0LP, b1LP
//#declare: f0old, f1old, s0, tmplLP, tmplHP

//#mspr

//#mspr
@init
// 3-Band Splitter
f0 = 200;
f1 = 2000;

//#mspr
@slider

//#mspr
@sample
// 3-Band Splitter
out0 = (tmplLP = a0LP*in - b1LP*tmplLP);
out2 = in - (tmplHP = a0HP*in - b1HP*tmplHP);
out1 = in - out0 - out2;

//#mspr
@block
// 3-Band Splitter
(f0old != f0) ? (
	xHP = exp(-2.0*$pi*f0/srate);
	a0HP = 1.0-xHP;
	b1HP = -xHP;
	f0old = f0;
);
(f1old != f1) ? (
	xLP = exp(-2.0*$pi*f1/srate);
	a0LP = 1.0-xLP;
	b1LP = -xLP;
	f1old = f1;
);

//#mspr
@gfx

//#mspr
@serialize
liteon is offline   Reply With Quote
Old 07-09-2010, 06:51 AM   #44
timlloyd
Human being with feelings
 
Join Date: Mar 2010
Posts: 4,713
Default

Wow this is cool! I've not checked exactly what modules there are, but I'll look forward to when it's possible to port over some Pluggos! That would be a fun project.
timlloyd is offline   Reply With Quote
Old 07-09-2010, 08:27 AM   #45
Tallisman
Human being with feelings
 
Tallisman's Avatar
 
Join Date: Jan 2007
Location: in the middle of the icecube.
Posts: 7,403
Default

this is fantastic.
very cool indeed!

.t
__________________
.t

_____________________________
http://jomei.bandcamp.com <--My Middle Son.

http://tallisman.bandcamp.com <--Me.

"Excuse me. Could you please point me in the direction of the self-help section?"
Tallisman is offline   Reply With Quote
Old 07-09-2010, 08:36 AM   #46
sebas777
Human being with feelings
 
sebas777's Avatar
 
Join Date: Nov 2006
Posts: 2,182
Default

"Son, one day people will build the whole DAWs (with their GUIs) like this. Mark my words."

Amazing !
sebas777 is offline   Reply With Quote
Old 07-09-2010, 11:04 AM   #47
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

good reminder for an update..:

Code:
* fixed a bug in the drag & drop connections
+ added support for the new js function slider_automate(x) in the parser
+ added the slider_automate(x) function in gfx slider modules
+ separate 'Version.as' and 'Copyright.as' classes to describe both online and
AIR version
liteon is offline   Reply With Quote
Old 11-11-2010, 02:43 PM   #48
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

Thanks!!!
pylorca is offline   Reply With Quote
Old 11-12-2010, 07:58 AM   #49
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

Hi liteon!

I've testing jsfxgen and I have problems with the generated source. The problem is the order.




generated source:

Code:
// author: 
//   date: 12.11.2010
//  using: JSfxGEN v:  0.4.6

desc: 

slider1:0.5<0,1,0.01>slidername



@init



@slider
_md2_freq = _md3_value;

_md2_lp_weight = 1 - exp(-2.0 * $pi * _md2_freq / srate);

_md3_value = slider1;

@sample

// -- input
_md0_out0 = spl0;
_md0_out1 = spl1;

_md1_in1 = _md2_out1;
_md1_in0 = _md2_out0;

// -- output
spl0 = _md1_in0;
spl1 = _md1_in1;

_md2_in1 = _md0_out1;
_md2_in0 = _md0_out0;

_md2_out0 = (_md2_lp_n0+=((_md2_in0-_md2_lp_n0) * _md2_lp_weight ));
_md2_out1 = (_md2_lp_n1+=((_md2_in1-_md2_lp_n1) * _md2_lp_weight ));

@block

@gfx

@serialize

the project is attached as test_diego.zip

Cheers!
Attached Images
File Type: jpg tmp1.jpg (12.5 KB, 1635 views)
Attached Files
File Type: zip test_diego.zip (820 Bytes, 239 views)
pylorca is offline   Reply With Quote
Old 11-12-2010, 09:07 AM   #50
Subz
Human being with feelings
 
Subz's Avatar
 
Join Date: Jun 2006
Location: UK
Posts: 3,210
Default wtf

wait? So this is synth edit meets reaper js

Will be testing this when im home tomorrow!


Subz
Subz is offline   Reply With Quote
Old 11-12-2010, 10:11 AM   #51
todd_r
Human being with feelings
 
todd_r's Avatar
 
Join Date: Nov 2006
Posts: 855
Default

Uber Woot!

Amazing work Liteon, thanks so much! How come I'm only just hearing about this now?

Quote:
Originally Posted by Subz View Post
...Will be testing this when im home tomorrow!...
Ditto
todd_r is online now   Reply With Quote
Old 11-12-2010, 03:15 PM   #52
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

Quote:
Originally Posted by pylorca View Post
Hi liteon!

I've testing jsfxgen and I have problems with the generated source. The problem is the order.
hi pylorca,

this particular bit is not very well documented, but:

the "slider" module outputs values between 0 and 1
and the module "die_lp6" that you are using as a modification, accepts frequency values in hertz...
so basically the filter is fed with a frequency of less than 1 hz or equal.
you need some sort of a mapping for the filter to work correctly, so between the slider control and the filter insert the module called "float_to_freq"
it will basically map the range of 0-1 as a float to 20-20000 hz.


[slider 0-1] -> [float_to_freq] -> [lp filter frequency control]

cheers


--
liteon is offline   Reply With Quote
Old 11-12-2010, 08:39 PM   #53
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

yes, you are right, but I was referring to something else.

The order of the modules in generated source. The order in "generated source" follows the ID of the module.

If I add _input(id=0), then _output(id=1), then _lp6(id=2) the code generated looks in this order:

Code:
mod 0 INPUT code
mod 1 OUPUT code
mod 2 LP code
when it should be
Code:
mod 0 INPUT code
mod 2 LP code
mod 1 OUPUT code

PS: sorry for my bad english
pylorca is offline   Reply With Quote
Old 11-13-2010, 04:35 AM   #54
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

Quote:
Originally Posted by pylorca View Post
yes, you are right, but I was referring to something else.

The order of the modules in generated source. The order in "generated source" follows the ID of the module.

If I add _input(id=0), then _output(id=1), then _lp6(id=2) the code generated looks in this order:

Code:
mod 0 INPUT code
mod 1 OUPUT code
mod 2 LP code
when it should be
Code:
mod 0 INPUT code
mod 2 LP code
mod 1 OUPUT code

PS: sorry for my bad english
i see,

this is more of a missing feature than a bug, as the routing order simply follows the module id list.
i have no plans of adding this improvement since the current trade off is just an one sample delay and considering that all variables in modules are unique the delay itself cannot get to more than one sample...

there are various ways to write such a rearrange algorithm, but without the
user interaction of manually entering an exact order, it will be more or less a guessing game and the eventual one sample delay may still pop out for more complex routings.



---
liteon is offline   Reply With Quote
Old 12-28-2010, 12:29 PM   #55
Duke64
Human being with feelings
 
Duke64's Avatar
 
Join Date: Jul 2010
Location: Germany, Berlin
Posts: 33
Default

Hi liteon,

I have some trouble with JSfxGEN (AIR Version) under Mac OSX 10.6.5 64bit :
When I try to save a project, the programm say "saving" and nothin happens. The progamm don't crashs but I have no possibility to use it ... and there is no save-file.
Similiar thing : When I generate a JS and try to export, the programm don't create a output-file (no crash, I see the dialog closing and everything seems to be normal).

I think it's a user-error but maybe you have a hint for me

Thanks,
Tom
Duke64 is offline   Reply With Quote
Old 12-29-2010, 12:54 AM   #56
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

Quote:
Originally Posted by Duke64 View Post
Hi liteon,

I have some trouble with JSfxGEN (AIR Version) under Mac OSX 10.6.5 64bit :
When I try to save a project, the programm say "saving" and nothin happens. The progamm don't crashs but I have no possibility to use it ... and there is no save-file.
Similiar thing : When I generate a JS and try to export, the programm don't create a output-file (no crash, I see the dialog closing and everything seems to be normal).

I think it's a user-error but maybe you have a hint for me

Thanks,
Tom
hi duke64,

there is some sort of a security issue with linux as well.

try downloading the latest .air build.
the save/load/export dialog will still open to ask for a filename but on osx, linux or unix it will be only possible to work in the application storage folder (even if another location is chosen):

OSX: /Users/USERNAME/Library/Preferences/APP_NAME
Linux (ubuntu): /users/USERNAME/.appdata/APP_NAME

note: the new flash player 10 api now supports direct local file access from a swift (.swf) which was pretty much the _only_ reason i've used air packages.


---
liteon is offline   Reply With Quote
Old 12-29-2010, 02:16 AM   #57
Duke64
Human being with feelings
 
Duke64's Avatar
 
Join Date: Jul 2010
Location: Germany, Berlin
Posts: 33
Default

I downloaded the last air release (0.4.3 I guess).
But I don't find a jsfxgen-folder in the preferecnces folder (I try the username library and the system library).
For a test, I try to save a project within the .app file (where you can find the testproject).

On my PC everything works fine and I can say : nice work, thanks!
Duke64 is offline   Reply With Quote
Old 12-29-2010, 11:09 AM   #58
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default

the latest build should be 0.4.7.
the storage folder should be created when you run the program and try to save or export.
also the save/open/export dialog should always by default navigate to the storage folder.

i don't have a mac/osx to test this update, but with 0.4.7 its now working ok on linux.


---
liteon is offline   Reply With Quote
Old 12-29-2010, 11:41 AM   #59
Duke64
Human being with feelings
 
Duke64's Avatar
 
Join Date: Jul 2010
Location: Germany, Berlin
Posts: 33
Default

Don't ask ... yesterday I downloaded and used the 0.4.6 version (not 4.3).
After a new download it's version 0.4.7 and save/export works within the preferences folder.
Independent of the selected folder, the tool saves projects in "generatedfx" and export-js or modules in "modules".
Anyway, it works

Thanks for this tool - I enjoy it.
Duke64 is offline   Reply With Quote
Old 08-25-2013, 12:50 PM   #60
vitalker
Human being with feelings
 
vitalker's Avatar
 
Join Date: Dec 2012
Posts: 13,333
Default

Do you still create this program?
vitalker is online now   Reply With Quote
Old 05-23-2014, 10:52 AM   #61
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

2014 bump!

yeah how's the development going?
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template
Argitoth is offline   Reply With Quote
Old 10-03-2014, 05:37 AM   #62
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,890
Default

couldn't this be integrated within reaper now? especially with all the late advances of reajs?

in otherwords, couldn't a reajs script/program do the job of JSfxGEN now?
reapercurious is offline   Reply With Quote
Old 10-05-2014, 12:22 AM   #63
Argitoth
Human being with feelings
 
Argitoth's Avatar
 
Join Date: Feb 2008
Location: Mesa, AZ
Posts: 2,057
Default

I doubt that.
__________________
Soundemote - Home of the chaosfly and pretty oscilloscope.
MyReaperPlugin - Easy-to-use cross-platform C++ REAPER extension template
Argitoth is offline   Reply With Quote
Old 11-24-2014, 09:10 AM   #64
todd_r
Human being with feelings
 
todd_r's Avatar
 
Join Date: Nov 2006
Posts: 855
Default

Doesn't seem to be any updates to the code since 2011
todd_r is online now   Reply With Quote
Old 06-19-2016, 01:33 AM   #65
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,890
Default

http://jsfxgen.googlecode.com/svn/trunk/bin/index.html

Online version Not working anymore?
reapercurious is offline   Reply With Quote
Old 06-19-2016, 03:51 AM   #66
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

The documentation seems to have vanished, as well.

-Michael
mschnell is offline   Reply With Quote
Old 02-05-2017, 07:14 AM   #67
vitalker
Human being with feelings
 
vitalker's Avatar
 
Join Date: Dec 2012
Posts: 13,333
Default

Any news on this?
vitalker is online now   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 07:25 AM.


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