I did a lot of listening tests in order to arrive at conclusions what IMO should be the way to go.
From the consequences (not the history of my tests):
a) At the low bitrate edge we shouldn't use the 32 sample FFTs IMO.
I listened to furious, eig, and castanets, comparing the results of v0.9.7b -q 0 -impulse -spf 22222-.... with those of v0.9.7 -q 1, as well as v0.9.7b -q 1 -impulse -spf 22222-.... with those of v0.9.7 -q 2.
As the result IMO it's better to use the next quality level instead of using -impulse -spf 22222-..... with both requirung roughly the same bitrate. The quality result was pretty clear for furious, there was no real difference for castanets, and just eig -q 0 -impulse -spf 22222-..... was is a tiny bit better to me than -q 1, and when doing the same comparison with quality levels advanced by 1 the preference for the 32 FFT is gone for eig too.
So using -impulse -spf 22222-.... is advantegous in rare cases whereas using the next quality level without the 32 sample FFTs brings a more general improvement.
Mooreover you've arrived at very good quality, Nick, way below 300 kbps, and if we used the 32 sample FFTs we would be at ~300 kbps which I guess isn't too attractive for the low bitrate users.
b) This morning with fresh ears I listened to all my potentially problematic samples again using v0.9.7 -q 4 -impulse. Now I could hear problems again with badvilbel (9/10), castanets (7/10), triangle (7/10).
Trying v0.9.7b -q 4 -impulse -spf 22222-.... made badvilbel and castanets non-abxable to me. With triangle I found out none of the 2 variants used with the 32 samples FFT produced a different file than the one when the 32 samples FFT isn't used at all.
I did the same thing with -q 5 instead of -q 4. Now badvilbel and castanets are okay to me using just -impulse (no -spf 22222-...). With triangle it's the same thing however as with -q 4: 7/10.
So the triangle problem can't be tackled by the 32 sample FFT, some other problems can but it looks like it's necessary to use a 22222 spreading.
As for the new -snr values when looking at the bitrate table they seem not to have a vital effect from -q 5 upwards.
Can you please further increase the -snr values from -q 5 up (maybe starting with a more gentle increase already at -q 3 or -q 4), Nick? I wonder if the problems can be tackled by this. When looking at this as an alternative to the 32 sample FFT accepting say half of the bitrate increase of the 32 sample FFts there's room for a very serious increase of the -snr value.
How do you envisage the -snr values changing? At v0.9.7 the quality related presets are:
spreading_function_string : string[precalc_analyses*(spread_zones+2)-1]='22222-22223-22224-12235-12246-12357';
quality_noise_threshold_shifts : array[0..Quality_Presets] of Double = (20,16,12,8,4,0,-2.4,-4.8,-7.2,-9.6,-12);
v0.9.6: quality_signal_to_noise_ratios : array[0..Quality_Presets] of Double = (16,17,18,19,20,21,22.8,24.6,26.4,28.2,30); //v0.9.6
v0.9.7: quality_signal_to_noise_ratios : array[0..Quality_Presets] of Double = (18,18.87,19.81,20.8,21.86,23,24.21,25.51,26.91,28.4,30); //variant #1
quality_clips_per_channel : array[0..Quality_Presets] of Integer = (3,3,3,3,2,1,0,0,0,0,0);
Firstly, I propose that the 32 sample FFT spreading function will be 22222 rather than 22223 as if it is used at all, it should be at its most(?) effective.
Secondly, I propose that -snr be (18,19,20,21,22,25,28,31,34,37,40).
Bitrates for 53 problem sample:|---------------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| lossyWAV | -q 0 | -q 1 | -q 2 | -q 3 | -q 4 | -q 5 | -q 6 | -q 7 | -q 8 | -q 9 | -q 10 |
|---------------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| beta v0.9.6 |318kbps|338kbps|364kbps|394kbps|431kbps|472kbps|500kbps|529kbps|557kbps|584kbps|611kbps|
|---------------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| beta v0.9.7 |327kbps|346kbps|370kbps|400kbps|435kbps|475kbps|502kbps|530kbps|557kbps|584kbps|611kbps|
|---------------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| beta v0.9.7 i |342kbps|360kbps|383kbps|412kbps|446kbps|485kbps|513kbps|540kbps|567kbps|594kbps|619kbps|
|---------------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| beta v0.9.8 |327kbps|347kbps|371kbps|400kbps|435kbps|479kbps|511kbps|543kbps|574kbps|604kbps|632kbps|
|---------------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| beta v0.9.8 i |346kbps|365kbps|390kbps|419kbps|454kbps|500kbps|533kbps|564kbps|595kbps|624kbps|653kbps|
|---------------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|