X-Fi Mode Changer (XFMC) version 1.7 Build 22
December 15, 2007

What's new in this build

by Spectra9 aka Budyanto Nurhalim

INTRO

Owners of Creative's Soundblaster X-Fi line of soundcards know very well how annoying it is to change mode whenever they start certain application, games in particular. What makes it even worse is there's no straightforward way of doing this, you need several mouse clicks just to change mode. X-Fi Mode Changer (XFMC for short) attempts to simplify this process.

REQUIREMENT

1. VB6 runtime files. If you're using Windows 2000, Windows XP or Windows Vista, this is already included
2. Creative Audio Console and X-Fi driver properly installed

INSTALLATION

1. Download and extract ZIP file from http://www.spectra9.com/xfmc/xfmc.html to a folder of your choice, for example C:\XFMC. Double click on XFiMode.exe to run it

IMPORTANT LIMITATIONS

1. XFMC requires Creative Audio Console, since basically what it does is run Audio Console and "click" on the appropriate button to change mode. Until Creative release some information on how the mode changing mechanism works, I'm afraid this is the only viable albeit non elegant solution
2. Due to number 1, Creative Audio Console MUST NOT BE RUNNING when XFMC tries to change mode, which can happen either manually by you or automatically via application profile. Failing to do so may cause unpredictable result

COMPATIBILITY

I've only tested this on Windows XP SP2 with Creative Audio Console version 1.0.5.0 and Windows Vista with Creative Audio Console version 1.0.6.0. Some users have reported that it works fine on Win XP 64 bit and Windows Server 2003 and it also works fine with the Audio Console which comes with version 2_09_0001 of the driver. Right now it won't work under Windows NT, but should work fine on any flavor of Windows 2000 and XP. International / Non English support was added beginning on version 1.2. Windows Vista support was added on version 1.7. It should also work with Auzentech X-Fi Prelude cards since it's using the same Audio Console application.

HOW TO USE

1. Double click XFiMode.exe to start the app as a tray icon (near the clock on the taskbar). XFMC should auto detect your Creative Audio Console program location, however in the case that it does not, you have to set it manually via the Congifuration dialog

2. Right click on the XFMC tray icon to popup a menu. Here are their descriptions, most are self explanatory
    - XFMC Logo: Display some info about XFMC, as well as its version number and URL where you can get the latest version
    - Configure -> Options: Display a dialog box where you can:
        * Set the location of Creative Audio Console application
        * Set XFMC to start with Windows
        * Set what action should be carried out when the tray icon is double clicked
        * Various other configuration options. See Configuration section below for more detail
    - Configure -> Application Profile: Display a dialog box where you can set and enable/disable application profiles. It should be self explanatory :-)
    - Speaker settings submenu: Display and set the current speaker settings (speakers or headphones). Please set your default settings first in the Options
        dialog before changing speaker settings.
    - THX Setup Console, Console Launcher, Audio Console: Launch the respective Creative applications
    - Entertainment, Game, Audio Creation: Immediately change to the selected mode
    - Close: You know what this does :-D

3. Left click on the XFMC tray icon to popup the Mixer dialog. You can change the level of master volume, bass and treble as well as the speaker mute/unmute state here.

4. To use XFMC in a batch file or script, you can supply the following arguments to change to each mode. These arguments are not case sensitive:

/ENTERTAINMENT
/GAME
/CREATION


For example, to switch to game mode, you would type the following in the command prompt:

XFiMode /GAME

Please just use one of these settings at a time ;-)

As of version 1.4, two new arguments are supported:

/SPEAKERS
/HEADPHONES


You can use these to set the speaker settings to either speakers or headphones. Please set your default settings first in the Options dialog first before attempting to change speaker settings.

CONFIGURATION

1. Show the Configuration dialog by selecting the Configure->Options menu. Some of the options will display helpful information tip if you hover your mouse pointer over them.

2. Available options are:

GENERAL TAB

 *  Creative Audio Console location: Enter the location of Creative Audio Console program here. Note that this value should be properly detected if Audio Console is correctly installed
 *  Launch automatically when Windows start for: Automatically launch XFMC when Windows start. If All users is selected, XFMC will start when any user log in. If Current user is selected, XFMC will only start when the current user log in.
 *  At startup change to this mode: Select the initial mode to set to when XFMC is started with Windows
 *  At startup change to this speaker settings: Select the initial speaker settings (speakers or headphones) to set to when XFMC is started with Windows
 *  Double click on tray icon will open: Select what action to perform when the tray icon is double clicked
 *  Show ballon tooltip when mode is changed: Exactly what it says :)
 *  Change tray icon to indicate currently active mode: XFMC by default uses 4 different colored icons to indicate the active mode: Entertainment (Green), Game (Blue), Audio Creation (Yellow) and Unknown (Gray). You can use different icons by placing appropriately named icon files in XFMC folder. The icon file should be named:
    Mode_Unknown.ico    (Unknown)
    Mode_Entertainment.ico    (Entertainment)
    Mode_Game.ico        (Game)
    Mode_AudioCreation.ico    (Audio Creation)

As of version 1.4, XFMC will also look for these icon files:
    Mode_Unknown_Muted.ico    (Unknown)
    Mode_Entertainment_Muted.ico    (Entertainment)
    Mode_Game_Muted.ico        (Game)
    Mode_AudioCreation_Muted.ico    (Audio Creation)
These icons will be used to indicate the speaker mute state

When XFMC starts, it will look for any of these files and use them as indicator icons when available. If you have some cool looking icons, don't forget to share it in the forum :)

DEFAULT TAB

 *  Enable changing back to default mode: When enabled, XFMC will change to this mode every time an application in the profile list terminates. The mode set here may be overriden if Smart Mode Change is enabled. See Smart Mode Change below for more information
 *  Enable Smart Mode Change: When Smart Mode Change is enabled, XFMC will try to determine what mode to change to when one of the applications in the profile list terminate. For example:
    User first starts Media Player (Entertainment) and later starts UT2004 (Game). When UT2004 terminate, XFMC will detect that Media Player is still running and will change to Entertainment mode, ignoring the selected Default Mode above. If XFMC cannot determine what mode to change to, for example when two or more applications requiring different mode are running or none of the applications in the profile list is running, it will revert back to the default mode (if enabled).
 *  Default Speaker Settings: Select your current speaker settings. When toggling from headphones to speakers, XFMC will use this setting to determine what speaker configuration settings to change to

HOT KEYS TAB

 *  Enable hotkey: When enabled, all hotkey you defined here will be set after you close the Options dialog
 *  Use low level keyboard hook : When enabled, XFMC will use an alternate method for hotkey management. This method should work for a broader range of applications, at the price of a slight CPU and memory overhead. If the default method is working fine with the applications you normally used, it is recommended to have this disabled. Enable this only if you have "stubborn" applications :-)

IMPORTANT: It is not recommended to toggle the speaker settings using a hotkey in midgame. Due to the peculiar way Audio Console is programmed, Windows will try to switch to / activate its window (even though the window is not visible), which in effect will Alt-Tab you out of the game to the desktop. Some games do not like to be Alt-Tabed like this and will cause them to crash

VERSION HISTORY

1.0 build 73
 Initial public release

1.0 build 74
 + Add new configuration option to start with Windows

1.1 build 0
 * Restructure some of the menus
 * Revise Audio Console automation code, hopefully this will solve the problem some non English users are facing
 + Add 2 menus for running Mixer and THX Setup Console
 + Add option to set what XFMC should do when the tray icon is double clicked

1.1 build 6
 - Fix bug which cause mode change to fail when Bit-Matched Playback is enabled in Audio Creation mode

1.2 build 0
 - No new feature but major revision to support non-English user

1.3 build 0
 * Rename the Mixer menu to Console Launcher. Now it will not automatically switch to the mixer 'tab' in the Console
 * Revise the About menu to make it a little bit cooler (I hope) ;-)
 + Added menu for launching Audio Console. Also add it to the list of possible action when user double click the tray icon
 + Improved memory usage. XFMC should use noticeably less memory than previous versions
 + Added the option to set to specific mode when XFMC is started with Windows
 + Added the option to disable the balloon tooltip which appear when a mode change occured
 + Added the option to show the "mode indicator" icon in the tray
 + Added the option to set to user specified "default mode" when application in the profile list terminates
 + Added ability to sense a mode change that is done by Creative apps (Audio Console and Mode Switcher). XFMC should now update its status accordingly after these applications change mode and exit
 + Added information tooltip for some of the options in the Configuration dialog

1.3 build 5
 * Fix a bug where Smart Mode Change setting is incorrectly saved
 + Hide XFMC from the task list like a good tray app should
 + Bundled the 4 icons into the zip file for use as template for creating your own icons

1.3 build 20
 * Fix a bug Audio Console get stuck when a mode change attempt fail, for example when trying to change mode when an ASIO using application is using the audio device
 + Revise (again) the automation code, hopefully it will be even more reliable now

1.3 build 30
 + Added hotkey support
 + Added advanced option StartupDelay= in XFMC.INI under [SETTINGS] to set the delay time during Windows startup before detecting/changing mode. For example, to add a 10 seconds delay, insert the line StartupDelay=10 under [SETTINGS] section in XFMC.INI. The default is 5 seconds, which seems fine for a lot of users. Try increasing this value if you're having problem at startup (Audio Console popup, mode not detected, etc.)

1.3 build 32
 + Fix display glitch when using certain XP visual style

1.4 build 0
 + Added Mixer control on tray icon left click. You can control the level of volume, bass and treble as well as the speaker mute / unmute state.
 + Added new tray icon indicator for speaker mute / unmute state.
 + Added speaker settings selection menu. You can toggle between speakers and headphones. Remember to set your default speaker settings first in the Options window
 + Added two new command line parameters, /SPEAKERS and /HEADPHONES to set the speaker settings to speakers and headphones respectively.
 + Added option to enable/disable application profiles.
 + Added drag and drop feature to add new application profiles. Just drag shortcut and application files and drop them in the appropriate profile list
 + Added new hotkey actions for mixer control and speaker settings toggle
 + Added new (optional) low level hotkey management method. This one even works in Oblivion :-). Use it only when you have "stubborn" applications as it incure a slight CPU and memory overhead.
 * Reorganized the Options window
 * Revise Audio Console automation code (again :-). Hopefully it will be even more robust now
 * Removed the hires window icons which was causing VB6 runtime to create temp files

1.4 build 20
 * Fix the hotkeys not working for some of the actions, particularly the mixer related ones.
 * Fix the speaker settings not being synched when changing modes.
 + Improved Audio Console automation code when changing speaker settings, should now work correctly for all international users.

1.4 build 30
 * Fix issues with decreased keyboard repeat rate after repeatedly changing modes / speaker settings.
 + Added option to keep speaker settings between modes. With this option enabled, speaker settings is "global" and will not change across mode switch. Note however, to avoid confusion, speaker settings won't be preserved if the mode is changed via any Creative's utility

1.4 build 40
 * Really fix the issues with decreased keyboard repeat rate after repeatedly changing modes / speaker settings (I hope :).
 + Added SVM checkbox to turn SVM on or off in the mini mixer window
 + Added new hotkey action to toggle SVM setting

1.7 build 0
+ Windows Vista support.
   + XFMC should work with the latest Audio Console version available in Windows Vista
   + Updated mixer functions (volume, bass and treble) to work under Vista
+ Auzentech X-Fi Prelude support
   + XFMC will try to autodetect the presence of Auzentech's Audio Console EXE
+ Added multi language support, users can modify the language for XFMC user interface by creating their own .lng file. The English.lng, Indonesian.lng and German.lng files are included
+ Added option to flash the tray icon to indicate that XFMC is doing its "thing" :-)
+ Major improvement to mode change routine which should minimize and hopefully eliminate stalling during mode change

1.7 build 20
+ Enhanced Auzentech X-Fi Prelude support
   + XFMC will now autodetect the presence of Auzentech's Audio Console and Console Launcher applications
+ Improved support for non standard display DPI setting

1.7 build 21
+ Increased timer resolution for process detection, should resolve occasional stalling during mode change for certain applications
+ Added option to bypass mode change when the SHIFT key is held down while starting an application

1.7 build 22
+ Bug fix for those experiencing "Runtime error 52"
+ Bug fix for those experiencing problem launching Creative Console Launcher
+ Mixer improvement, the bass and treble should now stick to whatever values they were set before

DISCLAIMER:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED yadda yadda yadda. In other words, use at your own risk, I'm not responsible if it crash or burn your expensive X-Fi card ;-)

ADDITIONAL INFO

XFMC Home: http://www.spectra9.com/xfmc/xfmc.html
XFMC discussion on Creative's user forum:
http://forums.creative.com/creativelabs/board/message?board.id=soundblaster&message.id=
57925


DONATE TO XFMC

If you find XFMC useful, please take the time and consider donating. Every bit of donation helps and encourages me to enhance XFMC further. Thanks :-). All available donation methods are secure.
You can donate via PayPal (recommended), Moneybookers or e-gold. If you want to donate using some other way, please e-mail me.

ACKNOWLEDGEMENT

Thanks to the guys (and gals?) at Creative's Soundblaster user forum for your support and ideas for this project :-).

Thanks to dEM0nsTAr and TomParis for the German translation.
Thanks to doughnut for the Czech translation.
Thanks to Benna for the Italian translation.

Last but not least, thanks to my lovely wife :-* for keeping up with me during the long nights spent on this project.

COMMENTS AND SUGGESTIONS

You can contact me via:
e-mail: spectra9@gmail.com
Yahoo Messenger ID: spectra9x

When reporting a problem, please give details about XFMC version, your OS version and language, Creative Audio Console version and language, and also the steps required to recreate it.

Please be patient if I don't reply for some time because it's not possible for me to be online all the time.