audioFilter
An audio filter chain attached at open: a raw FFmpeg chain like volume=0.5 or loudnorm. Every decoded audio buffer runs through it before the engine's own stages, so it works on untagged files, keeps pitch and speed apart, and can change the level or the key. Keep the chain's timing consistent with the audio it takes in; the buffers it gives back carry the timestamps FFmpeg puts on them. The web build has no filter graphs, so there an item with one fails to open with PlaybackError.ConfigurationInvalid rather than playing without it.