1. Introduces option --script=<script to run instead of muxing>. 2. On Windows <script to run instead of muxing> should be a "bat"-file otherwise a shell script, e.g. root@root-pc MINGW32 ~/bs1770gain # cat script.bat @echo off ffmpeg -hide_banner -loglevel panic -i %BS1770GAIN_SOURCE% -filter:a "volume=%BS1770GAIN_INTEGRATED_RELATIVE%dB" -y %BS1770GAIN_TARGET% root@root-pc MINGW32 ~/bs1770gain # cat script.sh ffmpeg -hide_banner -loglevel panic -i ${BS1770GAIN_SOURCE} -filter:a "volume=${BS1770GAIN_INTEGRATED_RELATIVE}dB" -y ${BS1770GAIN_TARGET} root@root-pc MINGW32 ~/bs1770gain Please note that using "ffmpeg" is not mandatory. Here it serves as a mere example. 3. On Windows it is assumed that there is a command interpreter at "C:\Windows\system32\cmd.exe" otherwise a shell interpreter at "/bin/sh". 4. The following environment variables are provided (as long as their calculation is required due to parameterization): * BS1770GAIN_SOURCE, * BS1770GAIN_TARGET, * BS1770GAIN_LU, * BS1770GAIN_LRA, * BS1770GAIN_OVERWRITE, * BS1770GAIN_NORM, * BS1770GAIN_TRACK_INTEGRATED aka BS1770GAIN_INTEGRATED, * BS1770GAIN_TRACK_INTEGRATED_RELATIVE aka BS1770GAIN_INTEGRATED_RELATIVE, * BS1770GAIN_TRACK_MOMENTARY_MEAN aka BS1770GAIN_MOMENTARY_MEAN, * BS1770GAIN_TRACK_MOMENTARY_MEAN_RELATIVE aka BS1770GAIN_MOMENTARY_MEAN_RELATIVE, * BS1770GAIN_TRACK_MOMENTARY_MAXIMUM aka BS1770GAIN_MOMENTARY_MAXIMUM, * BS1770GAIN_TRACK_MOMENTARY_MAXIMUM_RELATIVE aka BS1770GAIN_MOMENTARY_MAXIMUM_RELATIVE, * BS1770GAIN_TRACK_MOMENTARY_RANGE aka BS1770GAIN_MOMENTARY_RANGE, * BS1770GAIN_TRACK_SHORTTERM aka BS1770GAIN_SHORTTERM, * BS1770GAIN_TRACK_SHORTTERM_RELATIVE aka BS1770GAIN_SHORTTERM_RELATIVE, * BS1770GAIN_TRACK_SHORTTERM_MEAN aka BS1770GAIN_SHORTTERM_MEAN, * BS1770GAIN_TRACK_SHORTTERM_MEAN_RELATIVE aka BS1770GAIN_SHORTTERM_MEAN_RELATIVE, * BS1770GAIN_TRACK_SHORTTERM_MAXIMUM aka BS1770GAIN_SHORTTERM_MAXIMUM, * BS1770GAIN_TRACK_SHORTTERM_MAXIMUM_RELATIVE aka BS1770GAIN_SHORTTERM_MAXIMUM_RELATIVE, * BS1770GAIN_TRACK_SHORTTERM_RANGE aka BS1770GAIN_SHORTTERM_RANGE, * BS1770GAIN_TRACK_SAMPLEPEAK_ABSOLUTE aka BS1770GAIN_SAMPLEPEAK_ABSOLUTE, * BS1770GAIN_TRACK_SAMPLEPEAK_RELATIVE aka BS1770GAIN_SAMPLEPEAK_RELATIVE, * BS1770GAIN_TRACK_TRUEPEAK_ABSOLUTE aka BS1770GAIN_TRUEPEAK_ABSOLUTE, * BS1770GAIN_TRACK_TRUEPEAK_RELATIVE aka BS1770GAIN_TRUEPEAK_RELATIVE, * BS1770GAIN_ALBUM_INTEGRATED, * BS1770GAIN_ALBUM_INTEGRATED_RELATIVE, * BS1770GAIN_ALBUM_MOMENTARY_MEAN, * BS1770GAIN_ALBUM_MOMENTARY_MEAN_RELATIVE, * BS1770GAIN_ALBUM_MOMENTARY_MAXIMUM, * BS1770GAIN_ALBUM_MOMENTARY_MAXIMUM_RELATIVE, * BS1770GAIN_ALBUM_MOMENTARY_RANGE, * BS1770GAIN_ALBUM_SHORTTERM, * BS1770GAIN_ALBUM_SHORTTERM_RELATIVE, * BS1770GAIN_ALBUM_SHORTTERM_MEAN, * BS1770GAIN_ALBUM_SHORTTERM_MEAN_RELATIVE, * BS1770GAIN_ALBUM_SHORTTERM_MAXIMUM, * BS1770GAIN_ALBUM_SHORTTERM_MAXIMUM_RELATIVE, * BS1770GAIN_ALBUM_SHORTTERM_RANGE, * BS1770GAIN_ALBUM_SAMPLEPEAK_ABSOLUTE, * BS1770GAIN_ALBUM_SAMPLEPEAK_RELATIVE, * BS1770GAIN_ALBUM_TRUEPEAK_ABSOLUTE, and * BS1770GAIN_ALBUM_TRUEPEAK_RELATIVE. 5. Option --script might be combined with option --threads, i.e. executing the script in parallel should be possible. 6. Introduces option --shell=<path to interpreter>. The interpreter is assumed to provide an option "-c" for executing scripts and to require POSIX path conventions. 7. Option --shell might come in handy especially when you're on Windows, using "msys2" and not very comfortable with the capabilties of "bat"-files and their syntax. Then you might prefer e.g. bs1770gain <path to input> -o <path to output directory> --script=./script.sh --shell=/bin/sh.exe or respectively from the Windows "cmd"-box bs1770gain <path to input> -o <path to output directory> --script=%cd%\script.sh --shell=<path to msys2 installation>\usr\bin\sh.exe Please note that a full path to the script as well as to the shell is required. 8. Fixes an issue with remuxing Alexis pointed us to and which might have been occurred under certain circumstances. Thanks a lot Alexis!