G-Force Equalizer visual?

Discussion forum for G-Force users

Moderators: BTT, andy55, b.dwall, juxtiphi

trev_zz
Posts: 2
Joined: Thu Feb 18, 2010 3:11 pm
Location: London, UK

G-Force Equalizer visual?

Post by trev_zz »

Hi,

I’m new to G-Force and have just downloaded the trial version.

I was looking for an ‘Equalizer’ type visual effect and so far the trial hasn’t displayed what I was after.

An example is in this link below and uses a light panel driven by DMX512
Before you click the link make sure your volume is down... or up your into clubs :)

http://disco-designer.com/Equalizer_panel_video.html

Does anyone know if G-Force is capable or near capable of this

I was thinking of hooking my PC up to a large panel TV for a similar effect

Any help much appreciated

Cheers, Trev

User avatar
juxtiphi
Moderator
Posts: 1471
Joined: Sat Jan 15, 2005 1:29 pm

Post by juxtiphi »

Gf is far more detailed and imaginative than a simple VU meter.

I know the one you mentioned looks pretty but its not really a visualizer in the same sense as GF.

So to answer your question, No GF does not look like that vid and never will.

jerohm
Senior Member
Posts: 421
Joined: Fri Jan 09, 2009 5:19 pm

Post by jerohm »

Has it been done? nope.
Could it be done? Maybe.

First, you would need to TURN OFF Flowfields, Particles, & Sprites
AND run a 'lone' Waveshape.
This is a first stab without concentrating on the nuances of your specific requirements.

(Be kind :oops: , this was unfinished work, I started a while back ... it certainly doesn't represent best and final)

============================
/* audio ionization (jerohm@yahoo.com)
*/
ConB=0
Num=40
Stps="NUM_FFT_BINS/Num"

A0="2-(2/Num)"
A1=".975"

B0="ID/Num"
B1="(A0*B0) - (A0/2)" // X

C0="fft((ID+s) * NUM_S_STEPS/NUM_FFT_BINS) * 2"

X0=" B1"
Y0=" (C0-A1)"

Pen=1
LWdt=3

Meta="reactive=5 detail=4 density=4 morphable=4"
Vers=391
==================================

yet another very 'lazy' (on MY part) variation attempt ...
==================================
/* Audio DNA Fingerprints (jerohm@yahoo.com)
*/
ConB=0
Num=20
Stps="NUM_FFT_BINS/Num"

A0="2-(2/Num)"
A1=".975"

B0="ID/Num"
B1="(A0*B0) - (A0/2)" // X

C0="(fft((ID+s) * NUM_S_STEPS/NUM_FFT_BINS) * 2.5) - A1"

X0=" B1"
X1=" B1 + .01"
X2=" B1 + .02"
X3=" B1 + .03"
X4=" B1 + .04"

Y0=" C0"
Y1=" C0"
Y2=" C0"
Y3=" C0"
Y4=" C0"

Pen=1
LWdt=3

Meta="reactive=5 detail=4 density=4 morphable=4"
Vers=391
Last edited by jerohm on Thu Feb 18, 2010 5:55 pm, edited 1 time in total.

User avatar
juxtiphi
Moderator
Posts: 1471
Joined: Sat Jan 15, 2005 1:29 pm

Post by juxtiphi »

jerohm wrote:Has it been done? nope.
Could it be done? Maybe.

First, you would need to TURN OFF Flowfields, Particles, & Sprites
AND run a 'lone' Waveshape.
This is a first stab without concentrating on the nuances of your specific requirements.

(Be kind :oops: , this was unfinished work, I started a while back ... it certainly doesn't represent best and final)

============================
/* audio ionization (jerohm@yahoo.com)
*/
ConB=0
Num=40
Stps="NUM_FFT_BINS/Num"

A0="2-(2/Num)"
A1=".975"

B0="ID/Num"
B1="(A0*B0) - (A0/2)" // X

C0="fft((ID+s) * NUM_S_STEPS/NUM_FFT_BINS) * 2"

X0=" B1"
Y0=" (C0-A1)"

Pen=1
LWdt=3

Meta="reactive=5 detail=4 density=4 morphable=4"
Vers=391
did you look at the vid he posted? check it out, he wants something much different.

GF will never look like that ever! it will never have a window designed to look like a VU meter

jerohm
Senior Member
Posts: 421
Joined: Fri Jan 09, 2009 5:19 pm

Post by jerohm »

some of it ... it never seems to completely load. The wall 'sometimes' is run as a peak and hold VU meter @ different frequencies, and other times just patterns. It appears to be more of an 'orchestrated' event, possibly triggered by content. If that is the case, it would be pretty hard (read: impossible) to duplicate... even with scripting. Any given effect however, should be able to be duplicated to SOME degree...but not necessarily BY ME :?

User avatar
juxtiphi
Moderator
Posts: 1471
Joined: Sat Jan 15, 2005 1:29 pm

Post by juxtiphi »

thats why I suggested whitecap

trev_zz
Posts: 2
Joined: Thu Feb 18, 2010 3:11 pm
Location: London, UK

Post by trev_zz »

Many thanks for the info guys; I’ll try Whitecap.

jerohm
Senior Member
Posts: 421
Joined: Fri Jan 09, 2009 5:19 pm

Post by jerohm »

Code: Select all

/*  Audio Spectrograph  (jerohm@yahoo.com)
	minus Peak & Hold feature - maybe later
	... nor optimized
	ColorMap: "The Haight", works well
	Flowfield: (Empty)
	(Tested with WinAmp)
*/
ConB=1
Num=10
FNum="Num"
Stps="2"

A0="2-(2/Num)"
A1=".95"
A2=".125"
A3=0		// 1 = Static Pen, or "pos(sign(1-rnd(2)))"

B0="ID/Num"
B1=".025 + (A0*B0) - (A0/2)"	// X (2010Feb20 - center)


C0="fft(ID * NUM_S_STEPS/NUM_FFT_BINS) * 2.25"

C1="B1+ (A2*s)"
// C2="C0 -A1"

X0="C1"					// Reserve
Y0="(float)(C0 > A2) * A2 - A1"

 X1="C1"
 Y1="(float)(C0 > A2 *  1 ) * A2 *  1  - A1"

 X2="C1"
 Y2="(float)(C0 > A2 *  2 ) * A2 *  2  - A1"

 X3="C1"
 Y3="(float)(C0 > A2 *  3 ) * A2 *  3  - A1"

 X4="C1"
 Y4="(float)(C0 > A2 *  4 ) * A2 *  4  - A1"

 X5="C1"
 Y5="(float)(C0 > A2 *  5 ) * A2 *  5  - A1"

 X6="C1"
 Y6="(float)(C0 > A2 *  6 ) * A2 *  6  - A1"

 X7="C1"
 Y7="(float)(C0 > A2 *  7 ) * A2 *  7  - A1"

 X8="C1"
 Y8="(float)(C0 > A2 *  8 ) * A2 *  8  - A1"

 X9="C1"
 Y9="(float)(C0 > A2 *  9 ) * A2 *  9  - A1"

X10="C1"
Y10="(float)(C0 > A2 * 10 ) * A2 * 10  - A1"

X11="C1"
Y11="(float)(C0 > A2 * 11 ) * A2 * 11  - A1"

X12="C1"
Y12="(float)(C0 > A2 * 12 ) * A2 * 12  - A1"

X13="C1"
Y13="(float)(C0 > A2 * 13 ) * A2 * 13  - A1"

X14="C1"
Y14="(float)(C0 > A2 * 14 ) * A2 * 14  - A1"

X15="C1"
Y15="(float)(C0 > A2 * 15 ) * A2 * 15  - A1"

X16="C1"
Y16="(float)(C0 > A2 * 16 ) * A2 * 16  - A1"

X17="C1"
Y17="(float)(C0 > A2 * 17 ) * A2 * 17  - A1"

X18="C1"
Y18="(float)(C0 > A2 * 18 ) * A2 * 18  - A1"

X19="C1"
Y19="(float)(C0 > A2 * 19 ) * A2 * 19  - A1"

X20="C1"
Y20="(float)(C0 > A2 * 20 ) * A2 * 20  - A1"


// Pen="1.5 - (C0 * .7)"	// (2010Feb20 - alternate, A3 independent)

Pen="A3 + C0"
LWdt=8

Meta="reactive=5 detail=4 density=4 morphable=3"
Vers=391
Last edited by jerohm on Sat Feb 20, 2010 12:00 pm, edited 2 times in total.

User avatar
JayPro
Posts: 738
Joined: Sat May 01, 2004 10:51 pm
Location: Huntington Station, Long Island, New York

Post by JayPro »

This is giving me syntax errors with the Y coord expressions.
"God is syntax."

jerohm
Senior Member
Posts: 421
Joined: Fri Jan 09, 2009 5:19 pm

Post by jerohm »

I copied and pasted the posted code into a new *.txt file without issue. I am running on a XPro PC (GF v3.93). I ASSUME you are on a Mac??? Can you give me any more on the errors detail? I used notepad and/or Vim for editting a standard *.txt file. My files are terminated with Both "\r\n". Get back if you see something.
thanks
j

does it complain about the 'Y0' def??

The OTHERS have a leading blank space OR
might need to be:
Y1="(float)(C0 > (A2 * 1 )) * A2 * 1 - A1"
OR
Y1="((float)(C0 > (A2 * 1 ))) * A2 * 1 - A1"
maybe??? ... but DOES WORK on XP/PC

If you figure it out, I will update my code post and accomodate for the situation in future posts.

also ...
Pen="1.5 - (C0 * .7)"
might be another variation ...

jerohm
Senior Member
Posts: 421
Joined: Fri Jan 09, 2009 5:19 pm

Post by jerohm »

Can anybody [else] provide any insight to JayPro's syntax issues? I DID reference X15/Y15 and greater that was a v1.0 constraint, but I doubt THAT is the issue. The only other thing I can figure is SOME expression evaluator is having issues with the binary expression ( '>' ) result OR being type converted (float) and applied. As I said, this works fine on [ MY ] XPro/32; v3.93. I don't have access to a MAC, which is most likely the point of contention (... but don't even THINK that around Steve). I WOULD VERY MUCH LIKE TO UNDERSTAND WHAT THE ISSUE IS, SO ANY HELP WOULD BE GREATLY APPRECIATED. I would be MORE THAN HAPPY to provide the test code snippets to determine the nature of the limitation, but I need a willing volunteer with the Premium version and a MAC.
thanks,
j

User avatar
andy55
Site Admin
Posts: 570
Joined: Sat May 01, 2004 4:38 pm
Contact:

Post by andy55 »

I tried that script and didn't get any errors or warnings either. Jaypro, maybe there was a copy/paste issue?

Also, there's a new VectorC function called select() that will make like a little easier in GF 4:

// If expr is non-zero, then <a> is returned (if expr is 0, then <b> is returned).
// Example: select( { -1, 0, 2 }, { 4, 5, 6 }, { 7, 8, 9 } ) => { 4, 8, 6 }
float select( int expr, float a, float b );

jerohm
Senior Member
Posts: 421
Joined: Fri Jan 09, 2009 5:19 pm

float select( int expr, float a, float b )

Post by jerohm »

that is pretty much the SAME as the "?:"
:D

this will work in the context of simple WaveShape configs expressions ... right? It is NOT fixed in some way only to vectors? Is there VectorC documentation/(more) examples anywhere? I remember seeing reference to the lib while rummaging through files, but can't recall any details... other than "use at your own risk" to be best of MY recollection

jerohm
Senior Member
Posts: 421
Joined: Fri Jan 09, 2009 5:19 pm

*** With *** Peak & Hold feature

Post by jerohm »

Nothing earth shattering, but interesting...

(2010Dec01 - minor fix/clean-up)

Code: Select all

/*  Audio Spectrograph  jrm
	*** With *** Peak & Hold feature!

	ColorMap&#58; "The Haight", works well
	Flowfield&#58; &#40;Empty&#41;

*/
// NCap=1                       // SQUARE ends ... documented???
ConB=1
Num=10
FNum="Num"
Stps="2"

A0=".125"                       // Y Axis Spacing
A1=".95"                        // Y Axis Shift

A2="2-&#40;2/Num&#41;"
A3="vectorLR&#40;NUM_S_STEPS, 0, A0&#41;"

B0="ID/Num"
B1=".025 + &#40;A2*B0&#41; - &#40;A2/2&#41;"    // X
B2="A3 + B1"

A4="pos&#40;sign&#40;1-rnd&#40;2&#41;&#41;&#41;"                // 1 = Static Pen 
A5=0    // "pos&#40;sign&#40;1-rnd&#40;2&#41;&#41;&#41;"           *** DISABLED ***
A6="!A5"                                // complement A5

A7="vectorLR&#40;Num, 0, Num-1&#41;"            // B7/B8 Index &#40;tricky!&#41;
A8="vectorLR&#40;NUM_FFT_BINS, 0, 1&#41;"       // fft&#40;&#41; index

B3="fft&#40;A8&#41; * 2.7"                      // Scaled
B4="col&#40;B3, Id&#41;"                        // fft&#40;&#41; Indexed by Id

// Not 100% correct, but close enuff... ;0&#41;
//
B5="max&#40;col&#40;B7, Id&#41;, min&#40;15*A0, trunc&#40;B4/A0&#41;*A0&#41;&#41;"
B6="select&#40;&#40;B5 > col&#40;B7, Id&#41;&#41;, 30, max&#40;0, col&#40;B8, Id&#41;-1&#41;&#41;"


 X0="B2"                                // Reserve
 Y0="&#40;B4 > A0&#41; * A0 - A1"

 X1="B2"
 Y1="&#40;B4 > A0 *  1 &#41; * A0 *  1  - A1"

 X2="B2"
 Y2="&#40;B4 > A0 *  2 &#41; * A0 *  2  - A1"

 X3="B2"
 Y3="&#40;B4 > A0 *  3 &#41; * A0 *  3  - A1"

 X4="B2"
 Y4="&#40;B4 > A0 *  4 &#41; * A0 *  4  - A1"

 X5="B2"
 Y5="&#40;B4 > A0 *  5 &#41; * A0 *  5  - A1"

 X6="B2"
 Y6="&#40;B4 > A0 *  6 &#41; * A0 *  6  - A1"

 X7="B2"
 Y7="&#40;B4 > A0 *  7 &#41; * A0 *  7  - A1"

 X8="B2"
 Y8="&#40;B4 > A0 *  8 &#41; * A0 *  8  - A1"

 X9="B2"
 Y9="&#40;B4 > A0 *  9 &#41; * A0 *  9  - A1"

X10="B2"
Y10="&#40;B4 > A0 * 10 &#41; * A0 * 10  - A1"

X11="B2"
Y11="&#40;B4 > A0 * 11 &#41; * A0 * 11  - A1"

X12="B2"
Y12="&#40;B4 > A0 * 12 &#41; * A0 * 12  - A1"

X13="B2"
Y13="&#40;B4 > A0 * 13 &#41; * A0 * 13  - A1"

X14="B2"
Y14="&#40;B4 > A0 * 14 &#41; * A0 * 14  - A1"

X15="B2"
Y15="&#40;B4 > A0 * 15 &#41; * A0 * 15  - A1"

X16="B2"
Y16="B5 - A1"

// B7="&#40;&#40;Id != A7&#41; * B7&#41; + &#40;&#40;Id == A7&#41; * select&#40;B6, B5, max&#40;B5-A0,0&#41;&#41;&#41;"
// B8="&#40;&#40;Id != A7&#41; * B8&#41; + &#40;&#40;Id == A7&#41; * B6&#41;"
//
// or Much Cooler! ...
//
B7="select&#40;&#40;Id != A7&#41;, B7, select&#40;B6, B5, max&#40;B5-A0,0&#41;&#41;&#41;"
B8="select&#40;&#40;Id != A7&#41;, B8, B6&#41;"


B9="&#40;B4  + A4&#41; * A5 + &#40;1.5 - &#40;B4 * .7&#41;&#41; * A6"
Pen="B9"
LWdt=8

Meta="reactive=5 detail=5 density=5 morphable=3"
Vers=400

User avatar
BTT
Administrator
Posts: 2262
Joined: Sun Jun 20, 2010 9:34 pm
Location: United Kingdom

Post by BTT »

Hello All

Just got round to watching the video, could GF do this?, wouldn't it be just mind blowing if it could.

jerohm, is well on the way to re-creating the effects. I hope, (and, I know he will give it his best shot) that he succeeds.

If (when) jerohm cracks this config then I think he deserves a medal.

Go jerohm Go.


Regards BTT

Post Reply