AlisterH/gwc

Issues with batch processing

Closed this issue · 7 comments

  1. Batch mode amplify and dsp EDIT and reverb /EDIT fail if trying to process right up to the last sample (either by specifying "end", or the last sample number using "batchs".
    They work if I tell them to stop one frame before the end.
    (I couldn't find where I'd recorded this before, so had to test all of the batch options again).
    IIRC I fixed an identical issue in at least one of the other functions a few years ago, but the code for these functions wasn't similar enough for me to quickly find the fix for them, so I didn't have time to fix them too.

2. Reverb crashes in batch mode.

All three functions seem to work fine in normal interactive mode.

Re 2, I can also get the crash by changing reverb_method_name in gwc.conf to zzz, running gwc interactively, and trying to apply a reverb (without selecting a reverb method that actually exists).
So obviously:
2.(a) in batch mode it should be possible to read the reverb method from settings and/or supply the reverb method as an argument, and
2.(b) we should fix the crash if a reverb method doesn't exist (probably should fall back to default);

Fixed item 2 in ba19fde - just needed to read the reverb settings i.e. 2.(a).
So 2.(b) is a separate issue, unrelated to batch mode.

Reverb is also affected by item 1.

Fixed 2.(b) in 4df73e9

OK, investigating item 1, I concluded that the batch processing code was trying to operate on one too many samples when specifying the last sample as "end", and when using "batchs" with a sample number I was specifying one too many samples, not realising that the number of samples displayed in the gui is the last sample number plus 1. The other batch functions just didn't exhibit the problem because they work even if you specify an end sample/time after the end of the file!

It would be good to make these three functions tolerate an end time after the end of the file:

  1. to save anyone that tries to use the number of samples for the end sample (it is an easy mistake to make, and confusing to troubleshoot because the other functions do tolerate it)
  2. gwcbatch doesn't allow specifying "end", and this would be an easy way to enable a workaround (i.e. the user could just specify a very large number).

Fixed in branch