Tracktion / pluginval

Cross platform plugin testing and validation tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

allow templating the output filename (or just allow giving a specific filename)

umlaeute opened this issue · comments

when using the --output-dir option, pluginval will create filenames with a given pattern <manufacturer> - <name> <version> - <OS> <format>_<time>.txt
e.g.:

MimiMe - libSimpleDecoder 0.5.5.0 - Linux VST_8 Nov 2023 3,46,52pm.txt

while this makes an awful lot of spaces (and commas!) for my personal taste, what really bothers me is that this encodes the timestamp in the filename.
this obviously makes it simple to run multiple tests and dump their output in the same directory without overwriting each other.
However

  • a timestamp like 8 Nov 2023 3,46,52pm really doesn't sort well. how about using an ISO601 string (e.g. 20231108T154652.000), which sorts well and doesn't require non-English people to fight with am/pm and parse three-letter abbreviations of months (and there's a Time::toISO8601` method in JUCE).

  • the timestamp prevents us from actually doing a simple file comparison of two testruns

    $ ./pluginval --random-seed 0x1234 --output-dir A VST/libBinauralDecoder.so
    $ ./pluginval --random-seed 0x1234 --output-dir B VST/libBinauralDecoder.so
    $ diff -qr A B
    Only in A: MimiMe - libBinauralDecoder 0.5.5.0 - Linux VST_9 Nov 2023 10,30,50am.txt
    Only in B: MimiMe - libBinauralDecoder 0.5.5.0 - Linux VST_9 Nov 2023 10,30,55am.txt

(and now imagine testing many plugins; or a single plugin many times)

my initial idea was to allow the user to provide a template (printf-format like) to allow construction of their own name patterns, according to their needs.
e.g.

./pluginval --random-seed 0x1234 --output-dir A --output-template "%m_%n_%v.txt" VST/libBinauralDecoder.so

but then, this is probably overkill.
how about allowing the user to just provide an output filename:

./pluginval --random-seed 0x1234 --output-filename "A/libBinauralDecoder_VST.txt" VST/libBinauralDecoder.so

That sounds sensible. I've not got any time to work on pluginval at the moment but if you want to open a PR I can review and merge it.