diff --git a/alsoft.txt b/alsoft.txt new file mode 100644 index 00000000..2f928c99 --- /dev/null +++ b/alsoft.txt @@ -0,0 +1,14 @@ +[general] +sample-type=float32 +stereo-mode=speakers +stereo-encoding=panpot +hrtf=false +cf_level=0 +resampler=fast_bsinc24 +front-stablizer=false +output-limiter=false +volume-adjust=0 +[decoder] +hq-mode=false +distance-comp=false +nfc=false \ No newline at end of file diff --git a/project.xml b/project.xml index e5edd833..382ed9f6 100644 --- a/project.xml +++ b/project.xml @@ -67,6 +67,12 @@ + +
+ + +
+ diff --git a/source/funkin/backend/system/modules/ALSoftConfig.hx b/source/funkin/backend/system/modules/ALSoftConfig.hx new file mode 100644 index 00000000..0b1b57a0 --- /dev/null +++ b/source/funkin/backend/system/modules/ALSoftConfig.hx @@ -0,0 +1,31 @@ +package funkin.backend.system.modules; + +import haxe.io.Path; + +/* + * A class that simply points OpenALSoft to a custom configuration file when + * the game starts up. + * + * The config overrides a few global OpenALSoft settings with the aim of + * improving audio quality on desktop targets. + */ +@:keepInit class ALSoftConfig +{ + #if desktop + static function __init__():Void + { + var origin:String = #if hl Sys.getCwd() #else Sys.programPath() #end; + + var configPath:String = Path.directory(Path.withoutExtension(origin)); + #if windows + configPath += "/plugins/alsoft.ini"; + #elseif mac + configPath = Path.directory(configPath) + "/Resources/plugins/alsoft.conf"; + #else + configPath += "/plugins/alsoft.conf"; + #end + + Sys.putEnv("ALSOFT_CONF", configPath); + } + #end +} \ No newline at end of file