Command Line doesn't work

I have installed several versions of FxSound (currently on beta 1.2.9.0) but I cannot make use of the command line options.

This is the output of the fxdiag.exe:

Audio Playback Devices

  1. Realtek Digital Output (Realtek(R) Audio) [SPDIF] {0.0.0.00000000}.{258b8e86-143f-4b77-88af-20c0a09a27e0}
    [Active] [2 - Channels] [32 bit, 48000 Hz] [Volume: 22%]

  2. FxSound Speakers (FxSound Audio Enhancer) [Speakers] {0.0.0.00000000}.{49396f23-55a8-4dfd-8859-95a8df0d391c}
    [Active] [2 - Channels] [32 bit, 48000 Hz] [Volume: 28%]

  3. KopfhĂ·rer (USB Audio Interface) [Headset] {0.0.0.00000000}.{54ce48f3-b55d-42f2-8af6-1a3fe9d4c8fb}
    [Active] [2 - Channels] [32 bit, 48000 Hz] [Volume: 28%]

  4. Dell AW3423DW (NVIDIA High Definition Audio) [DisplayAudio] {0.0.0.00000000}.{5a43b66e-46be-4513-83d0-722c556904e0}
    [Active] [2 - Channels] [32 bit, 48000 Hz] [Volume: 100%]

If I run "C:\Program Files\FxSound LLC\FxSound>FxSound.exe --output=“Dell AW3423DW (NVIDIA High Definition Audio)” it doesn’t switch the output to the Dell device.

If I use this Powershell script it also doesn’t change the output:

$fxSoundPath = “C:\Program Files\FxSound LLC\FxSound\FxSound.exe”

if (Test-Path $fxSoundPath) {
    $fxArgs = '--output="Dell AW3423DW (NVIDIA High Definition Audio)" --preset="General"'
    # VollstÀndige Entkopplung des Prozesses von PowerShell
    Start-Process -FilePath "cmd.exe" -ArgumentList "/c start `"`" `"$fxSoundPath`" $fxArgs" -WindowStyle Hidden
}

There is also no option for the preferred device anymore. How can I make it work?

Thanks for reporting this bug. This is a regression caused during the recent changes. The fix will be available in the next release.

1 Like

hi just wondering where could i find some more info about the list of command supported? pretty pls and thank you! (I get soft-rate limited from github atm so if you could show it here that’ll be swell:<)

Also just a side non important question for op: I was looking and wondering if powershell could do the same here like “powershell (or pwsh) -c 
” instead of firing up cmd.exe again? I’m def not saavy just got curious cuz I thought powershell natively integrated with this cmdlet

Thanks for pointing this out. Here is the documentation on FxSound command line.

FxSound Command Line Parameters

FxSound supports the following command line parameters. When a parameter is omitted, the value is read from the persisted settings store. Out-of-range numeric values are silently reset to their defaults.


Parameters

--preset <name>

Selects the active preset on startup.

The value must match a preset name exactly (case-sensitive). Names containing spaces must be enclosed in double quotes.

fxsound.exe --preset "Bass Booster"

fxsound.exe --preset HiFi


--output <device>

Sets the audio output device on startup.

The device name must match the Windows audio device name exactly. Names containing spaces must be enclosed in double quotes.

fxsound.exe --output "Speakers (Realtek High Definition Audio)"

fxsound.exe --output "Headphones (USB Audio Device)"


--view <value>

Sets the UI view mode on startup.

Value Mode
1 Lite
2 Pro
fxsound.exe --view 1

fxsound.exe --view 2


--language <code>

Sets the display language. If omitted, the stored language preference is used; if no preference is stored, the system display language is used.

fxsound.exe --language en

fxsound.exe --language fr


--num_bands <value>

Sets the number of EQ bands. Valid range: 5 – 31. Default: 10.

fxsound.exe --num_bands 10

fxsound.exe --num_bands 31


--balance <value>

Sets the left/right stereo balance in dB. Valid range: -20.0 – +20.0. Default: 0.

fxsound.exe --balance 0

fxsound.exe --balance -5.0


--filter_q <value>

Sets the EQ filter Q factor (controls bandwidth of each band). Valid range: 1.0 – 3.0.

fxsound.exe --filter_q 1.5

fxsound.exe --filter_q 3.0


--master_gain <value>

Sets the master gain in dB. Valid range: -20.0 – +20.0. Default: 0.

fxsound.exe --master_gain 6.0

fxsound.exe --master_gain -3.0


--normalization <value>

Sets the normalization level in dB. Valid range: -20.0 – 0.0. Default: 0.

fxsound.exe --normalization -6.0

fxsound.exe --normalization 0


Combined Example

fxsound.exe --preset "Bass Booster" --output "Speakers (Realtek High Definition Audio)" --view 2 --num_bands 10 --master_gain 3.0

Thank you!

MuahMinionsGIF

btw i wonder if these filter_q can be specifically set for each EQ band and in more verbose decimal like 2.14, 1.493?—similar question is if mastergain can be separately set for each different headphones? And since filter Q can have .5 integer, can each band’s gain do the same? some presets I found have 1.5, 2.5, etc., but the app GUI currently say hell to the nawh to decimals afak.

this isn’t an issue at all just fyi, just another question from my "1002-?-why the phuc[1][2]am I still up at night lol. sorry and thank you muches!


  1. common Viet’s name ↩

  2. Viet= the right word for Vietnamese, much less mouthful word and nationally used by the Viets ↩

Will this also change the behavior that it is possible to switch output devices via command line while FXSound is running?

Or will it stay only working by stopping and starting it again via command line?

The command line parameters are applied only when the application starts. If it is already running they will not be applied.

Can you provide some details on your use case and requirements. I will see what best we can do to address it.

If I want to change dynamically to other output devices based on a script/application or new device switched on I would like to have the possibility to do this automatically via command line.

I have no expertise here but just a thought, isn’t this requires someone to make a full working API or module for the app? I am not saying “how dare you asking for more safsdf
”, but if you have ideas in mind on how to implement this feature, maybe design and test one yourself, make a PR in the official repo and the dev can take a look and check. I’m just challenging your idea a little bit here, but how does this benefit the majority better than the already simple/it-just-works GUI and its automation features are regularly improved and maintained? (again, not dissing your wants and needs, but there are diminishing returns and opportunity costs to consider)

I personally am not related to anyone of the project’s team, but I’d imagine it’d be a pain in the ass to decide whether I wanna focus on what I want the app to become or deal with everyone’s personal desire. The open source aspect of the app is great but it also cuts both way if no one try to be a little considerate
 From what I have seen so far, it always seems to start with everyone aims for the best outcome until the ideas part ways [1], eventually no one is happy and the devs are burnt out, then projects get cremated :pensive_face:

(Â°ăƒŒÂ°ă€ƒ)Sorry just pouring out my pitch full of thoughts, but I still would love to see some fun CLI features too lol so cheeeeeers :beers:


  1. while maintainers are still dealing with new bugs and issues ↩

Hi @coreywillei ,

Only one instance of FxSound is allowed to run. When we try to launch a second instance we do not allow the second instance to launch, but we still get the command line arguments. We can try to process the command line in the running instance. We can give this a try instead of implementing automation APIs.

that’s exciting to hear! I just wonder what does “Automation APIs” would look like / mean? Do you mind describe it the KISS[1] way? :folded_hands:

—my wording was a bit terrible sorry cuz i think we’re not really on the same page :sob:


  1. keep it simple stupid ↩

If we provide COM interface for the FxSound features then other applications can instantiate it and call it.

1 Like

-–Thank you! I’ll have to look into this some other times

1 Like

@Peleke @coreywillei

In the latest beta version 1.2.10.0, command line options can be reapplied when FxSound is running. Please give it a try.