Hey Guys...the two of you seem to be the most active people on this board, posting not only your own questions, comments, configs, etc, but also answering the questions of others as well. Kudos!
I'm a HUGE fan of G-Force and would love to start "playing" with my own configs but I don't even know where to begin. The configs are obviously rooted in mathematical formulae that are above me (at this point), but I'd love to start learning about the mathematical principles that make G-Force tick.
That being said, what are your educational backgrounds?? (did you guys major in Math in college/university?) What principles/area of mathematics would you recommend to a n00b to help them get started? I'd love to find a mathematics book that would help me get started.
How did you guys get your start with writing your own G-Force configs?
Rovastar & Jaypro - Who R U?
Moderators: BTT, andy55, b.dwall, juxtiphi
-
- Posts: 20
- Joined: Sun Aug 22, 2004 10:23 pm
- Location: Coatesville, Pennsylvania, USA
- JayPro
- Posts: 738
- Joined: Sat May 01, 2004 10:51 pm
- Location: Huntington Station, Long Island, New York
Speaking for myself, I'm the sole forum Moderator here, and I'd like to think that helping to answer your questions when Andy (our *very* hard-at-work G-Force/WhiteCap creator) isn't here is what I've been selected to do.
Interestingly enough, math is not in fact my strong suit (I once just barely passed a high school math course, even with a tutor's help! Go figure.
). I've come to acclimate myself with the code by sheer usage. I've been doing this for so long, I'm pretty sure what alot of the code functions do without relying on knowing what sines and cosines mean.
My book-smarts, if you like, are rooted in language and linguistics (bachelor's and master's), so perhaps I've been able to decipher alot of the code from that angle, too.
Also, there are elements of the code that are based directly opn the C++ language, which I've been looking into myself lately (although as a Mac user, I think AppleScript is the better way to approach the kind of comp-lang that G-Force uses).
I'm sure Rovastar and others can help you with the math and relative suggestions and recommendations. BTW, the math itself I believe contains some trigonometry/algebra et al. I do believe that there're a few aspects of geometry lurking about as well.
I based my interest in writing configs on the determination that I was gonna make heads or tails of the language. I basically started one day by taking a simple config (effect) file, trying to figure out how the formula and the effect relate to each other, and playing around with various functions to see what I can come up with. In fact, if you wish to pursue it further, you will soon be able to see that even though the coding language is the samel in all effect types, there are some functions that are used exclusively for a particular effect (i.e. "i" in ColorMaps, and "s" & "t" in WaveShapes).
I assume that many config makers here have drawn their beginners' effects by taking an existing config and noodling around to see what exactly does what. Others, of course, have the math skills to create their own as if with their eyes closed and half their brain removed
LOL.
As I said, it's been a long time; but I've kinda got the hang of it. I admit it's not very intuitive unless your math skills are off the charts; but that shouldn't turn you off from trying.
Essentially, it's all about how math formulae can be used to control the flow of pixels acorss your screen, to make these pixels change color to whatever you like and however you like, and to shape your own wave forms that respond to the music as you hear it.
If you already have the program, I would bring your attention to the Documewntation folder in the G-Force bundle, which contains much in the way of how it all works and how you can make your own.
I hope this helps.
JwP
Interestingly enough, math is not in fact my strong suit (I once just barely passed a high school math course, even with a tutor's help! Go figure.

My book-smarts, if you like, are rooted in language and linguistics (bachelor's and master's), so perhaps I've been able to decipher alot of the code from that angle, too.
Also, there are elements of the code that are based directly opn the C++ language, which I've been looking into myself lately (although as a Mac user, I think AppleScript is the better way to approach the kind of comp-lang that G-Force uses).
I'm sure Rovastar and others can help you with the math and relative suggestions and recommendations. BTW, the math itself I believe contains some trigonometry/algebra et al. I do believe that there're a few aspects of geometry lurking about as well.
I based my interest in writing configs on the determination that I was gonna make heads or tails of the language. I basically started one day by taking a simple config (effect) file, trying to figure out how the formula and the effect relate to each other, and playing around with various functions to see what I can come up with. In fact, if you wish to pursue it further, you will soon be able to see that even though the coding language is the samel in all effect types, there are some functions that are used exclusively for a particular effect (i.e. "i" in ColorMaps, and "s" & "t" in WaveShapes).
I assume that many config makers here have drawn their beginners' effects by taking an existing config and noodling around to see what exactly does what. Others, of course, have the math skills to create their own as if with their eyes closed and half their brain removed

As I said, it's been a long time; but I've kinda got the hang of it. I admit it's not very intuitive unless your math skills are off the charts; but that shouldn't turn you off from trying.
Essentially, it's all about how math formulae can be used to control the flow of pixels acorss your screen, to make these pixels change color to whatever you like and however you like, and to shape your own wave forms that respond to the music as you hear it.
If you already have the program, I would bring your attention to the Documewntation folder in the G-Force bundle, which contains much in the way of how it all works and how you can make your own.
I hope this helps.
JwP
"God is syntax."
JayPro answered quite well, I might add few aspects from the more mathematical side.
I myself, I'm a M.Sc. with major to physics and minor to math, so my education is quite strongly mathematically based. Still, half the time I do the configs, I have absolutely no clue what I'm doing
I think you need mostly trig and geometry with those, and I could say that there's not good enough books to study from, as it's much easier just to experiment.
Usually when I'm just goofing around, I take some simple waveform (or flowfield) where you can easily separate which part of the formula does which.
If you cannot separate them, just change the numbers and constants one by one and watch the screen to see what happens, then you can separate the formulae.
After that it's easy, just apply changes to those separate parts which you want to change and see what happens. If the change was for good, leave it, if it was bad, change the code back. Simple as anything, right?
I usually like to add some sin's or cos's at certain location, let's say there's already sin(b0+pi), just add it maybe sin(cos(b0)+sin(pi)) and see what happens, ar maybe if there's long formulae sin(.....)+cos...+.+.+, just add in the beginning tan(sin(...)+cos..+.+.+.) and see what happens, or maybe put it to the power of something, or combine, put tan(..)^2 or tan(...)^(flor(5*mag(s)). Experimental things mostly.
Only once have I really made something which I really planned, and went through. The code is visible in the other topic, at "Triangular wave problem", where I needed quite complex figure which I wanted to rotate around the origo.
I knew that many figures need Fourier Series to deal with, so I searched the internet for triangular wave fourier series, but it was harder than I thought, as most of the fourier series which I came across, were not good enough to be used with my plan.
Actually the final code didn't use any fourier at the figure itself, but it does use fourier series of a square wave at the rotation speed formula.
Many times I've thought to plan something, but in the end, I end up goofing around with different functions and ending up to something completely different that what I thought.
I myself, I'm a M.Sc. with major to physics and minor to math, so my education is quite strongly mathematically based. Still, half the time I do the configs, I have absolutely no clue what I'm doing

Usually when I'm just goofing around, I take some simple waveform (or flowfield) where you can easily separate which part of the formula does which.
If you cannot separate them, just change the numbers and constants one by one and watch the screen to see what happens, then you can separate the formulae.
After that it's easy, just apply changes to those separate parts which you want to change and see what happens. If the change was for good, leave it, if it was bad, change the code back. Simple as anything, right?
I usually like to add some sin's or cos's at certain location, let's say there's already sin(b0+pi), just add it maybe sin(cos(b0)+sin(pi)) and see what happens, ar maybe if there's long formulae sin(.....)+cos...+.+.+, just add in the beginning tan(sin(...)+cos..+.+.+.) and see what happens, or maybe put it to the power of something, or combine, put tan(..)^2 or tan(...)^(flor(5*mag(s)). Experimental things mostly.
Only once have I really made something which I really planned, and went through. The code is visible in the other topic, at "Triangular wave problem", where I needed quite complex figure which I wanted to rotate around the origo.
I knew that many figures need Fourier Series to deal with, so I searched the internet for triangular wave fourier series, but it was harder than I thought, as most of the fourier series which I came across, were not good enough to be used with my plan.
Actually the final code didn't use any fourier at the figure itself, but it does use fourier series of a square wave at the rotation speed formula.
Many times I've thought to plan something, but in the end, I end up goofing around with different functions and ending up to something completely different that what I thought.
-
- Posts: 20
- Joined: Sun Aug 22, 2004 10:23 pm
- Location: Coatesville, Pennsylvania, USA
How do you guys load a specific config into G-Force to test the changes you've made? I assume you use the standalone G-Force (as opposed to the WMP, iTunes or Winamp plugins), correct?
Do you just clear out the config directories and have ONLY the config you are working on in the directory (forcing G-Force to ONLY display the config you are working on)?? I see that you can use the U key to re-load an edited config...but I'm not sure how to tell G-Force to ONLY use a specific config while I'm playing with it...
Can you tell G-Force to only use a specific waveshape, colormap, flowfield or particle? This way everything remains constant EXCEPT for the config you are working on? Otherwise I think I'd be afraid of confusing the changes I made in a config with G-Force simply picking another random waveshape (or colormap or flowfield or particle).
What do you guys do?
Do you just clear out the config directories and have ONLY the config you are working on in the directory (forcing G-Force to ONLY display the config you are working on)?? I see that you can use the U key to re-load an edited config...but I'm not sure how to tell G-Force to ONLY use a specific config while I'm playing with it...
Can you tell G-Force to only use a specific waveshape, colormap, flowfield or particle? This way everything remains constant EXCEPT for the config you are working on? Otherwise I think I'd be afraid of confusing the changes I made in a config with G-Force simply picking another random waveshape (or colormap or flowfield or particle).
What do you guys do?
- JayPro
- Posts: 738
- Joined: Sat May 01, 2004 10:51 pm
- Location: Huntington Station, Long Island, New York
What I do is if, for instace, I wanna work on a colormap, I take every palette in my Colormaps folder out, place them all in a temp storage folder, pick a map of my choosing, make a duplicate of *that* and place the dupe back into the Maps folder. From then I can noodle around with it as much as I want without worrying about anything else. Of course you'd follow the same format if you wanna make your own with the other effects too.
As far forcing the program to show effects that you specifically want, there're two choices here:
1. Create a script to define which particular effects you want to show. These can be made to show how long you want to keep the effect up for.
or
2. use the following keys to stall the slideshow mode when you find an effect you want to keep on: E for Colormaps, D for Flowfields and C for Colormaps. Better yet, just press "F" and all slideshows will be turned off, making it easier for you to keep track of what you're doing.
This you can do while you're editing/creating any config.
As far forcing the program to show effects that you specifically want, there're two choices here:
1. Create a script to define which particular effects you want to show. These can be made to show how long you want to keep the effect up for.
or
2. use the following keys to stall the slideshow mode when you find an effect you want to keep on: E for Colormaps, D for Flowfields and C for Colormaps. Better yet, just press "F" and all slideshows will be turned off, making it easier for you to keep track of what you're doing.
This you can do while you're editing/creating any config.
"God is syntax."
-
- Posts: 20
- Joined: Sun Aug 22, 2004 10:23 pm
- Location: Coatesville, Pennsylvania, USA