You can customize G-Force by editing its preferences file or by writing
scripts. The preferences file and script files are plain-text files and
end with ".txt". If you edit one of these files, you must resave them as plain-text.
Otherwise, G-Force will not be able to process them. For example, OS X’s TextEdit saves
files as Rich Text Format (.rtf) by default, so you must designate your file as plain-text
(in the Format menu),
and save it as a .txt file. In Windows, Notepad and WordPad are both effective text editors
(but note that non-DOS style text files won’t appear properly in Notepad—try opening and then resaving
them in WordPad). Alternatively, there are also many excellent shareware text editors
publicly available that are also suitable. Whatever text editor you do use, it’s recommended that you disable
line wrapping for readability. Disabling line wrapping also prevents you mistaking wrapped
lines for new lines.
If you modify the preferences file while G-Force is running, then your changes will be overwritten when G-Force exits (so you should modify it when G-Force is not running). An example of when you would edit the preferences file would be if your media player didn’t support keystrokes or the pref that you want to edit is not accessible via key commands. If you have the option to edit either the preferences file or the boot file in order to change something, it’s better to edit the preferences file rather than the boot file. A mistake in the preferences file can always be corrected by deleting the preferences file, but a mistake in the boot file can only be corrected by replacing it with the original boot file (ie. reinstallation). Finally, if G-Force behaves strangely after you edit its preferences file, it’s likely that you inadvertently caused a problem. If this is the case, simply delete the preferences file. When you delete it (when G-Force isn’t running), a new "factory" preferences file will be created the next time G-Force starts up. The following is a list of all the parameters found in the G-Force preferences file:
'Preferences ([PlayerName]).txt' |
Audio.InputSource |
This specifies the name of the audio input source to be visualized. If the name is blank or cannot be found in the list of available audio sources, the best audio input source is used. This pref is only used when G-Force isn't running inside a media player. |
Audio.FFT.Params |
These params specify the behavior the FFT auto-normalization
subsystem. |
Audio.AutoDetect.Enabled Audio.AutoDetect.SilenceThreshold Audio.AutoDetect.Wait |
When enabled and applicable, if the time period specified by AutoDetect.Wait elapses with no audio activity below the level specified in AutoDetect.SilenceThreshold, G-Force will automatically scan other audio input sources for signs of audio activity. If it finds another active audio input source, it will use that source until the primary source breaks the silence threshold. This, for example, is useful in screen saver mode since any number of audio sources may be of interest to use for audio input. |
Audio.FFT.Smooth |
As this value increases, the smoothing of fft(0..1) increases proportionally (ie, peaks and valleys will be less jagged). Doubling/Halving this number will double/half the amount of smoothing. |
Audio.FFT.NumBins |
This defines how many values/elements are in fft(0..1). As Audio.FFT.NumBins increases, the frequency spectrum will be divided up into more "bins" (a "bin" is defined as the average value of a small sub-section of a frequency spectrum, like how a bucket or pail collects a footprint of rain and not a point). In a config file, you can access Audio.FFT.NumBins by using NUM_FFT_BINS. See the documentation in the example configs, especially the documentation of the Stps parameter in "Rotating Corridor". |
Audio.PCM.Smooth |
As this value increases, the more mag(0..1) is smoothed (ie, peaks and valleys will be less jagged). Approximately doubling/halving this number will double/half the amount of smoothing. |
Audio.PCM.NumBins |
Similar to Audio.FFT.NumBins, this parameter specifies how many elements are in each sound sample (that is, how many elements make up mag(0..1)). PCM stands for "pulse code modulation" which just means a sequence of amplitude values that correspond to the position of a recording membrane. A "sample" is slang for a sequence of amplitude values that form a short clip of audio—in other words a "sample" is slang for a recorded audio segment. Audio.PCM.NumBins defines how many steps is in mag(0..1). In a config file, you can access Audio.PCM.NumBins with the global variable NUM_SAMPLE_BINS. |
Audio.Response.Scale |
Specifies the scale of the fft and pcm audio data that's visualized.
|
Fullscreen.Device |
This specifies the display device that G-Force will attempt to use for full screen mode. The value is such that the main/primary device is 0, the next is 1, the next is 2, and so on. If this value is -1 (ie, SS_HOST_DISPLAY_DEVICE), then the display device that G-Force will attempt to use for full screen mode will be whatever the display device currently hosting the G-Force window. Note: this is not available for all media players (because most media players don’t allow a plugin to request a specific display device for full screen mode). |
Graphics.TargetFrameRate |
G-Force will attempt to maintain a frame rate that matches the value specified in this pref. If G-Force has a frame rate below what you specify, it’s because (a) your system isn’t fast enough to achieve the desired frame rate for the current frame dimensions, or (b) the host media player is electing not to have G-Force draw as often as possible. At this point, only decreasing the frame size, exiting other applications, or switching media players can increase frame rate.
Note that some media players only call a visual plugin a maximum number of times per second (and nothing can be done to change that other than abandon that media player). Also note that it takes a couple seconds for G-Force to stabilize on the target frame rate when a step-change in load occurs (e.g. when a much less intensive config starts). |
Graphics.PreventDisplaySleep |
If set, G-Force will ask the OS to prevent display device sleep when G-Force is in fullscreen mode. |
WaveShape.LineWidth.Offset WaveShape.LineWidth.Scale |
The value of these parameters affect the
line thickness of all drawn lines. All line thicknesses are multiplied by
LineWidth.Scale and then LineWidth.Offset is added. On G-Force, note that
excessively increasing line thickness can cause color saturation (depending
on the current FlowField), causing the entire screen to be flooded with an
excess of foreground color. See also WaveShape.AutoLineScale. |
WaveShape.AutoLineScale |
When this value is non-zero, following
a frame resize, WaveShape.LineWidth.Scale is set to a value proportional to the
new frame size. In effect, the ratio of pixels from line drawing to total
pixels becomes roughly constant. |
TrackText.Auto |
If this value is non-zero, track text (and album cover art,
if available) will be automatically displayed when the currently playing
track/song changes. If this value is zero, track text and album cover art
will never appear automatically. |
TrackText.Duration |
The number of seconds track text (and album cover art, if available) will remain visible after it appears. By default, track text (and album cover art) will appear when a new track begins or when ’T’ is pressed. |
TrackText.Animation |
The name of the TrackAnimation config to be run when a new track starts in the host audio player. Look in Packages/Common.TrackAnimation.package to make your own or modify existing animations.
|
TrackText.Font |
Specifies the font family used for track text animations. |
TrackText.Size |
Specifies the font size used for track text animations. |
Prefs.Version |
Stores the version of the prefs file and is how G-Force can identify an out-of-date prefs file (if this value is below the "compatible" version number, G-Force will use internally stored "factory" pref values). You will never normally need to edit this value (and using an invalid or out-of-date prefs file with the "current" G-Force version number could cause G-Force to crash or operate improperly). |
UI.ActivateOnChars |
Specifies the set of characters that toggle/activate the UI. |
UI.ActivateOnClick |
If set, the UI will activate on a user click in the G-Force window. |
UI.Font |
Specifies the font name used in the on-screen UI. |
UI.MinSize |
Specifies the minimum height and width of the UI. If the frame
size is less than this size, the UI will scale itself to retain the minimum
size virtually. |
UI.Timeout |
Specifies the number of seconds the UI should remain visible once the user is idle. |
Window.top Window.left Window.bottom Window.right |
Stores the position of the G-Force window in global screen coordinates. Note that when G-Force runs under certain media players, these parameters aren’t used because the host media player manages the rectangle size and position, not G-Force. |
[ConfigType]. ConfigPrepTime |
Specifies the number of seconds a config should be given to perform any background calculations or prep. |
[ConfigType]. Slideshow.EnableOnStartup |
If non-zero, the given config set's slideshow mode is enabled when G-Force starts up. |
[ConfigType]. Slideshow.Interval.Duration |
The number of seconds between when a config slideshow change completes to when the next config change commences. |
[ConfigType]. Slideshow.Interval.Duration.Deviation |
Specifies the standard deviation of the slideshow interval duration specified by Interval.Duration.Deviation. A value of .1 if Slideshow.Interval.Duration is set to 15 seconds means that there's a random standard deviation of 1.5 seconds for each successive slideshow interval that is calculated. |
[ConfigType]. Transition.Duration |
Specifies the number of seconds that G-Force will spend transitioning from one config to the next when the slideshow mode is enabled for the given config type and the config slideshow interval elapses. |
[ConfigType]. Transition.Duration.Quick |
Specifies the number of seconds that G-Force will spend transitioning from one config to the next when the user manually initiates a config change (typically a via keyboard). |
[ConfigType]. Transition.Duration.Deviation |
Specifies the standard deviation of the slideshow transpiration
duration specified by Transition.Duration.Deviation. |
[ConfigType]. Transition.Function |
Specifies the mapping of a uniformly changing scalar (t, that
starts at 0.0 when a config transition starts and 1.0 when it ends) to a
weight that specifies how much of the oncoming config to use. This expression
must always evaluate to 0 when t = 0 and evaluate to 1 when t = 1. If a transition
is 10 seconds long, t will be .2 after 2 seconds. Typical transition weight
functions start with linear change but finish with a decreasing rate of change,
offering the visual aesthetic of gliding into 1.0. Try graphing the function y=1-(1-x)^1.5 to
see an example |
ColorMap.MapFunction
|
A ColorMap is a method for expressing a RGB color for any input value from 0 to 1 (ie, for 0<=i<=1, ColorMap(i) -> (R,G,B)). Before a frame is colorized, each pixel (an intensity value from 0 to 1) is transformed using the expression specified in this pref and then plugged into the ColorMap. The input variable is ’i’ and variables like ’t’ are available (allowing time dependence). In other words, this pref permits the ColorMap domain to be arbitrary, allowing ColorMaps to be arbitrarily "bent". Examples:
"i" — linear/uniform distribution
"i^2.5" — background/"lower" colors dominate
".5 * i" — only use lower half of ColorMap
"wrap( i + .1 * t )" — "rotating" ColorMap
"sin( PI * i )" — two passes through ColorMap
"(1-i)^.7" — "reverse" ColorMap
|
G-Force.AutoOpenToolbar |
If non-zero, when the visualizer
starts up, it will launch the associated toolbar (if the toolbar is present). |
G-Force.ForceCPUColorization |
If set, G-Force will colorize frames on the CPU rather than using a fragment shader on the GPU to colorize frames (when available). This can be useful to set if troubleshooting systems with older graphics hardware. |