don't want wave/color/flowfield to change when song changes

Discussion forum for G-Force users

Moderators: BTT, andy55, b.dwall, juxtiphi

Post Reply
Hypersky
Posts: 7
Joined: Sat Feb 04, 2006 1:23 pm
Location: Montréal

don't want wave/color/flowfield to change when song changes

Post by Hypersky »

Whenever the song changes (i use it with iTunes), the color/wave/flowfield changes too. Maybe not all three everytime, but at least 2 out of 3 everytime. Is there anyway for it NOT to change, and only change when the next change was due?

Thanks!

Hypersky
Posts: 7
Joined: Sat Feb 04, 2006 1:23 pm
Location: Montréal

anyone?

Post by Hypersky »

anyone?

User avatar
chkman
Posts: 329
Joined: Mon Aug 08, 2005 12:36 pm
Location: Greensburg, PA

Post by chkman »

I was trying it by hitting the "F" key to stop all slideshows and it doesn't change at all between songs. Then I re-read your post and realized what you are talking about. It does seem to change right when a new song starts. Maybe it's a "feature".

Well, when you hear a song ending hit the "F" key and when the next one starts hit the "G" key. Or just run scripts all the time, like I do. Other than that I don't know of anything.

User avatar
chkman
Posts: 329
Joined: Mon Aug 08, 2005 12:36 pm
Location: Greensburg, PA

Post by chkman »

Once again, I spoke too soon. Look in Boot.txt for this block of code:
// This binds a string to be executed when a new song starts. By default, a new WaveShape and ColorMap
// are switched out (if their respective slideshows are on) and either the pretty track info overlay
// is started or a GF particle is started, depending if there's cover art available. See above comments.
BindEvent( SS_TRACK_BEGIN_EVENT, " \
if ( GetSlideShow( CONFIG_WAVESHAPE ) ) { \
NextWaveShape( 1, _WAVESHAPE_QUICK_MORPH, false ); \
} \
if ( GetSlideShow( CONFIG_COLORMAP ) ) { \
NextColorMap ( 1, _COLORMAP_QUICK_MORPH, false ); \
} \
if ( GetPref( PREF_TRACK_TEXT_AUTO ) ) { \
"_START_TRACK_TEXT" \
}"
);
put a /* (slash asterick) on the line before it and a */ (asterick slash) on the line after it and that should take care of it. Save the file and restart G-Force.

Hypersky
Posts: 7
Joined: Sat Feb 04, 2006 1:23 pm
Location: Montréal

Post by Hypersky »

chkman wrote:Once again, I spoke too soon. Look in Boot.txt for this block of code:
// This binds a string to be executed when a new song starts. By default, a new WaveShape and ColorMap
// are switched out (if their respective slideshows are on) and either the pretty track info overlay
// is started or a GF particle is started, depending if there's cover art available. See above comments.
BindEvent( SS_TRACK_BEGIN_EVENT, " \
if ( GetSlideShow( CONFIG_WAVESHAPE ) ) { \
NextWaveShape( 1, _WAVESHAPE_QUICK_MORPH, false ); \
} \
if ( GetSlideShow( CONFIG_COLORMAP ) ) { \
NextColorMap ( 1, _COLORMAP_QUICK_MORPH, false ); \
} \
if ( GetPref( PREF_TRACK_TEXT_AUTO ) ) { \
"_START_TRACK_TEXT" \
}"
);
put a /* (slash asterick) on the line before it and a */ (asterick slash) on the line after it and that should take care of it. Save the file and restart G-Force.
Great, thanks, that's exactly what I was looking for. I knew there was some way. But if don't want the next waveshape or colormap, but I still want the track info to show up at song start, where should I add the /* and the */ ?

User avatar
chkman
Posts: 329
Joined: Mon Aug 08, 2005 12:36 pm
Location: Greensburg, PA

Post by chkman »

I'm not sure what the backslashes do at the end of each line. But the middle two IFs are what does the wave and color change. I would suggest putting the /* on the line after the BindEvent and put the */ on the line before the "if ( GetPref( PREF_TRACK_TEXT_AUTO)) {\". If G-Force doesn't like it you might have to delete the two IFs, the wave and the colormap. But this is the part to comment out or remove:
if ( GetSlideShow( CONFIG_WAVESHAPE ) ) { \
NextWaveShape( 1, _WAVESHAPE_QUICK_MORPH, false ); \
} \
if ( GetSlideShow( CONFIG_COLORMAP ) ) { \
NextColorMap ( 1, _COLORMAP_QUICK_MORPH, false ); \
} \

Hypersky
Posts: 7
Joined: Sat Feb 04, 2006 1:23 pm
Location: Montréal

works, but now...

Post by Hypersky »

Great, that worked, but now, it freezes for half a second when song changes... like its skipping. Anyway to get rid of the skip?

User avatar
chkman
Posts: 329
Joined: Mon Aug 08, 2005 12:36 pm
Location: Greensburg, PA

Post by chkman »

I dunno. Did you comment those lines out with /* */ or remove them? If you commented them, try just removing them.

Hypersky
Posts: 7
Joined: Sat Feb 04, 2006 1:23 pm
Location: Montréal

neither work

Post by Hypersky »

I triend commenting them out, and also tried removing them, I still get a "skip" when song changes...

I have a Pentium 4 3.4 GHz 1GB ram, and an all-in-wonder x600 pro... I don't think it's a peformance issue...

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

Re: works, but now...

Post by andy55 »

Hypersky wrote:Great, that worked, but now, it freezes for half a second when song changes... like its skipping. Anyway to get rid of the skip?
That's your media player -- that "freeze" is your media player loading the next audio file from disk -- see if there's a setting to preload song files (or "asynchronous" song loading). You most likely just didn't notice it before because of the waveshape and colormap distraction.

andy

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

Post by andy55 »

chkman wrote:I'm not sure what the backslashes do at the end of each line.
In a C preprocessor, a backslash denotes that the following linebreak should be ignored. This feature exists to enhance readabilty of stuff that would normally have to be one huge (unreadable) line. For example, a C preprocesssor will process:

x\
=y\
;

into:

x=y;

This preprocessing even applies to strings:

stdout( \
"hello \
worl\
d");

is processed into:

stdout( "hello world");

So, to your original question, the backslashes in that part you pointed out technically aren't required (in this case) since if they weren't there, the G-Force interpreter would ignore all the whitespace and LFs that got added. However, for example, if you changed:

stdout( "123\
456");

to

stdout( "123
456");

then you'll get 123456 printed for the first one and 123(LF)456 (or whatever whitespace is after 123 in your text file) for the second. Make sense?

Andy

Post Reply