Old 03-07-2010, 05:03 AM   #1
zorn
Human being with feelings
 
Join Date: Feb 2008
Location: france
Posts: 230
Default FoXY controller

This is something derived from another project. i shall redo the sidebar soon, so am to the point where i could use some feedback (i never used XY controllers, and don't have any midi device) for bugs/features/refining, so here it is. (will probably make a skinned/skinnable version when it'll be mature)

beta 2 : https://stash.reaper.fm/oldsb/815151/foxy_beta2.txt
fixed bugs reported by jeffos thanks !
changed default midi channel to 10 : is it a good default ?
fixed a glitch in the sidebar (not redrawing when resetting to default)
--------------------------------------------------------------------------------------
FoXY is a XY controller plugin.
It can control VST plugins parameters (with the new VST parameter learn feature), and/or used with the excellent! Jeffos's VST plugin here http://forum.cockos.com/showthread.php?t=43741 (win32 only), send Midi CC data to control, for example, volume and pan of tracks. This version is limited to a maximum of 8 points (but can very easily be pushed to 32 via one init constant and sliders definition only). The points can have axis constraints, so it's possible to use the plugin as a pack of 8 vertical or horizontal sliders.

The gui is resizable, and fully configurable (via constants in the init section, including all colors - ships with mellowOrange, but leetGreen is included at the end of file for copy/paste ). The points have 'mouse over' effect, it's possible to constrain the moves by values and/or by axis (permanently or just for the current operation). The 'by values' constraints are displayed on screen when dragging a point. All the points parameters can be tuned via the side bar.

Commands
- leftf-click on the top row above the control will open/close the sidebar.
control commands :
- left-click drag
- right click adds a point (points are added/deleted in sequence, last in first out )
- right click during a drag cancels it
- ctrl + left-click allows to constrain movement to one axis (depending on the mouse movement, so press control and drag a point up/down will only allow Y movement, or left/right X only)
- ctrl + shift + alt + right-click: delete the last point. When deleting a point, the settings are kept, so it should come back intact when added again
side bar commands :
left-click drag to set value
right-click reset to default
ctrl + left-click allows fine adjustement (only for snap settings for now)

point parameters :
min and max, snap, prec X and Y (drives the number of digits when displaying coordinates in the control), lock X and Y (is 1 if the move is forbidden), Channel and note settings for midi CC

the (short) plan : i probably should reorganize the side bar, so if you see useful features missing, let me know. mouse/keyboard settings will be changed. And i think i want a second snap setting for fine adjustement ? useful or not ?
the known limitation : track automation currently is disabled.it can be enabled by setting the show_me_automation variable to 1, and recompiling - but this forces FoXY to update all data all the time, so is kept as a separate setting. i should put a button for this..

should someone read the wip-code :
i learned to do this kind of stuff in 2008, with iX Looper revolutionized edition - many thanks to him ( draw_gui ! ); caught a bad bad JS Fever ; at some point, i stopped doing JS, and didn't even read the forums for more than one year.. it was music or JS. Thus it is very possible that i have missed something new and obvious, a method or a JS variable or whatever (if you see something like that let me know please, i have other plugins coming built on the same framework...). I've not yet taken the time to read the new gui code by Argee (splendid guis !) or iX new looper or indeed anyother JS code, i will catch up, but for now concentrate on getting the plugin i need done. Illogical, but more fun so..
On top of that, i'm not a coder, so beware the code..

last thing : configuring everything via init constants is quite handy, but the variable watcher hahaha

( i used notepad++ with the JS-cockos language file here http://forum.cockos.com/showpost.php...3&postcount=30 .. //@ or /* starts a block, //- or */ ends it )

Last edited by zorn; 03-07-2010 at 03:39 PM.
zorn is offline   Reply With Quote
Old 03-07-2010, 06:21 AM   #2
NAS
Human being with feelings
 
NAS's Avatar
 
Join Date: Dec 2007
Location: In church, burning it down
Posts: 1,345
Default

Very very cool
Will do some testing

NAS
__________________
Not Gods or Saints but HUMAN be
NAS is offline   Reply With Quote
Old 03-07-2010, 10:11 AM   #3
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

woo! zorn!!! énorme! ça, c'est du JS!!

yeah, great JS!!

As you're looking for some feedback (but didn't spent much time):
- yup, the main job is here! Though, I didn't see the CC events you're talking about: I only saw note on (and "note off", ie note on with velocity=0) events, and this is what I see in the code too. Would definitively be cool to choose the type of sent events (especially CCs for use with MIDIToReaControlPath, thanks )
- add a point "2", move it without touching something else, monitor the midi output: invalid channel
- minor: you can add point outside the "matrix" => GUI glitch
- "read the wip-code": I'm not a reference, but I just looked to how you were sending the events, i.e. the @block: the way it's managed show that you're not that noob, zorn! To send something else than notes, just replace the $x90 (but I guess you know that). In the @gfx, if you use floor(x/y+0.5) rather than floor(x/y) I think the GUI could use the full available width (edit) humm.. forget that.

Didn't went in depth 'cause it's some serious @gfx coding in there, hats off, zorn!!
Tho, enough is enough, even if it sounds difficult, I think one of us should should make an anonymous login and enter the FR of the shame: "Please, GOTO @x for JS !".

Last edited by Jeffos; 03-07-2010 at 10:30 AM.
Jeffos is offline   Reply With Quote
Old 03-07-2010, 11:52 AM   #4
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,125
Default

Looks amazing. Checking as soon as possible. Definitely cool stuff.
gofer is offline   Reply With Quote
Old 03-07-2010, 01:00 PM   #5
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,633
Default

Love the idea of this plug in great stuff

I'm on win 7 64bit but with reaper 32bit and one point works fine but can't get a second point happening. I did once but then it froze, early days though!

EDIT: Ahh, drag and right click

Are you saying that we can access internal vst parameters by using the new parameter modulation linking? that's a good idea!
musicbynumbers is online now   Reply With Quote
Old 03-07-2010, 01:15 PM   #6
zorn
Human being with feelings
 
Join Date: Feb 2008
Location: france
Posts: 230
Default

beta 2, bugs should be fixed thanks for the feedback and encouragements.
Quote:
Originally Posted by Jeffos View Post
- yup, the main job is here! Though, I didn't see the CC events you're talking about: I only saw note on (and "note off", ie note on with velocity=0) events, and this is what I see in the code too. Would definitively be cool to choose the type of sent events (especially CCs for use with MIDIToReaControlPath, thanks )
the CC should be ok now.
you mean choice between note on/off, aftertouch etc.. ?

Quote:
Originally Posted by Jeffos View Post
I think the GUI could use the full available width (edit) humm.. forget that.
a choice i made to have the aspect ratio fixed in the code (box_w_def, box_h_def)? my guess is that it would be too easy with it to loose sense of scale when resizing it. not sure.. could be changed.

Quote:
Tho, enough is enough, even if it sounds difficult, I think one of us should should make an anonymous login and enter the FR of the shame: "Please, GOTO @x for JS !".
ha ! you first
zorn is offline   Reply With Quote
Old 03-07-2010, 01:21 PM   #7
zorn
Human being with feelings
 
Join Date: Feb 2008
Location: france
Posts: 230
Default

Quote:
Originally Posted by musicbynumbers View Post
EDIT: Ahh, drag and right click
Are you saying that we can access internal vst parameters by using the new parameter modulation linking? that's a good idea!
hi
right click alone should be enough ?

to control a VST plugin parameter with FoXY :
in the VST, touch the parameter, click on Param/Parameter modulation, then on link from parameter and there choose the FoXY coordinates you want to use.
zorn is offline   Reply With Quote
Old 03-07-2010, 02:19 PM   #8
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

ho! live bug fix!? all above seems fixed in beta2. It seems everybody's coding on this sunday

zorn, I just had a look with TCP knobs & automation: I have a "conceptual" remark this time: it would have been cool if the model was based on FX parameters (sliders), I mean, for eg, if I put automation lines on x1 and y1, I would expect some CCs to be outputed (and the related point moving alone in the GUI, as the cherry on the pie) same would go for TCP knobs. Right now, the model is somehow the var "point_drag", so, also, only one point can move at a time.
Tech. remark (as you asked for such feedback)! The plug is already usefull as it is!
Jeffos is offline   Reply With Quote
Old 03-07-2010, 03:37 PM   #9
zorn
Human being with feelings
 
Join Date: Feb 2008
Location: france
Posts: 230
Default

yes, i made a mistake in my fist post, track automation doesn't work at all if not setting show_me_automation to 1 and recompiling (will be changed for a button on the gui).
But then it's possible to have several points moving at the same time via track automation all driving differents VST parameters.. this works here.

you're right about the CC's, they're not sent, i think i have an ugly workaround, so will try that later.. thanks again
zorn is offline   Reply With Quote
Old 03-19-2011, 03:26 PM   #10
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 17,824
Default

... added to the Third-party JS FX Library

(missed it first time)
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar 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 09:02 AM.


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