HydrogenAudio

Hydrogenaudio Forum => Uploads => Topic started by: shadowking on 2007-06-04 17:11:58

Title: Nightwish - Angels Fall First
Post by: shadowking on 2007-06-04 17:11:58
Serious problems for LAME mp3 , similar issues with AAC.
Title: Nightwish - Angels Fall First
Post by: odyssey on 2007-06-04 17:18:39
Please add version, parameters etc.

I had no problem with 3.97@V5
Title: Nightwish - Angels Fall First
Post by: shadowking on 2007-06-04 17:26:38
I first spotted it with 3.97 ages ago. Tested 3.98 --vbr-new. -V5~V3 [very bad, I can't handle it]. No need to abx even V2. -V1 is closer but not hard to abx.
Title: Nightwish - Angels Fall First
Post by: greynol on 2007-06-04 17:35:52
I'm not sure I could ABX at -V3, but at -V4 distinguishing the two was not a problem (Lame 3.97).

The high open E has (what I guess is) a ringing problem.
Title: Nightwish - Angels Fall First
Post by: halb27 on 2007-06-04 19:52:51
Tried 3.97V5 on it. I couldn't hear the problem.
Then I tried 3.98b3V5 and could hear the problem easily. Pretty much the same thing I call a 'tremolo problem' on other samples.
Now that I've heard it I can also spot it with 3.97. But 3.97 is better on this sample for me.
Title: Nightwish - Angels Fall First
Post by: LANjackal on 2007-06-05 06:53:13
For what it's worth, I couldn't ABX it at V0, but I guess that's expected. Just had to check
Title: Nightwish - Angels Fall First
Post by: stigc on 2007-06-05 11:11:18
It's funny, Vorbis (aoTuVb5) have no 'tremolo problem' even at very low bitrates. Does anyone have a killer sample for aoTuVb5?
Title: Nightwish - Angels Fall First
Post by: Jillian on 2007-06-05 11:26:37
Out Of Topic. 
I'm very disappoint Anette, new lead vocal of Nightwish.
Her sound is very similar to a thousand of Grade-B Pop Singer.
Title: Nightwish - Angels Fall First
Post by: robert on 2007-06-07 14:26:48
@shadowking: nice sample, but I think we cannot fix it for 3.98 release version as it would require a deeper change in LAME's PSY model with re-tuning the preset levels.
Title: Nightwish - Angels Fall First
Post by: Pio2001 on 2007-06-08 00:18:39
Does anyone have a killer sample for aoTuVb5?


Badvilbel, from ff123's page. (http://www.ff123.net/samples.html)

ABX 16/16 at -q6 with aotuv beta 5.
Ok at -q 7.

The same with beta 4.51 / release 1
Title: Nightwish - Angels Fall First
Post by: shadowking on 2007-06-10 04:33:25
Tried 3.97V5 on it. I couldn't hear the problem.
Then I tried 3.98b3V5 and could hear the problem easily. Pretty much the same thing I call a 'tremolo problem' on other samples.
Now that I've heard it I can also spot it with 3.97. But 3.97 is better on this sample for me.


3.97 vbr new is terrible. I can hear it casually through hi-fi speakers even on -v2 . abxing was easy even with speakers on a stormy night: 8/8 -v2, 7/8 -v1, 7/8 -v0....-v1 slightly better than -v2, -v0 worse than -v1
Title: Nightwish - Angels Fall First
Post by: LANjackal on 2007-06-10 18:43:37
Tried 3.97V5 on it. I couldn't hear the problem.
Then I tried 3.98b3V5 and could hear the problem easily. Pretty much the same thing I call a 'tremolo problem' on other samples.
Now that I've heard it I can also spot it with 3.97. But 3.97 is better on this sample for me.


3.97 vbr new is terrible. I can hear it casually through hi-fi speakers even on -v2 . abxing was easy even with speakers on a stormy night: 8/8 -v2, 7/8 -v1, 7/8 -v0....-v1 slightly better than -v2, -v0 worse than -v1
Props for that. I can't tell any difference using -V0 vbr new on this end. Could you do me a small favor and tell me if you can still abx it using 3.97 at -b320 (highest quality setting, IIRC)? I'd greatly appreciate it, thanks .
Title: Nightwish - Angels Fall First
Post by: alter4 on 2012-09-04 11:05:40
I was able to abx even lame 3.99.5 with -b320 -q0 settings

Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.13
2012/09/04 12:57:21

File A: D:\2\Nightwish\05 - Angels Fall First.wav
File B: D:\2\Nightwish\05 - Angels Fall First.mp3

12:57:21 : Test started.
12:57:42 : 01/01  50.0%
12:57:55 : 02/02  25.0%
12:58:03 : 03/03  12.5%
12:58:17 : 04/04  6.3%
12:58:48 : 05/05  3.1%
12:58:57 : Test finished.

----------
Total: 5/5 (3.1%)


It is really killer sample 
--
Used Yamaha RX-V671 + Audio-Technica ATH-M50
Title: Nightwish - Angels Fall First
Post by: psycho on 2012-09-04 16:47:36
I missed this thread in 2007, but now I'm interested in hearing this... Since the original sample is no longer available, could someone please tell me which part of the song one might find the problem? Thanks.
Title: Nightwish - Angels Fall First
Post by: lvqcl on 2012-09-04 18:15:49
05___Angels_Fall_First_ringing.flac was (re)uploaded here: http://www.hydrogenaudio.org/forums/index....st&p=665542 (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=75868&view=findpost&p=665542)
Title: Nightwish - Angels Fall First
Post by: psycho on 2012-09-05 19:38:34
Hm, I can't hear it... I've tried -V 6 to -V 0 and -b 320... maybe someone can tell me more specific where to look in those 30 seconds?
Could be that my hearing just isn't that good anymore...
Title: Nightwish - Angels Fall First
Post by: mixminus1 on 2012-09-05 20:13:27
A ringing/fluttering in the right-channel guitar, most noticeable (to me, anyway) on the first note that really rings out (exactly at 1s).

It happens again a few more times on that same note, but the first one is the worst.  I don't hear any other kind of distinct artifact(s) in that clip.

I can hear it very clearly with 3.99.5 -V2 (3.98.4 and 3.97b3 are both slightly better, FWIW), but I can no longer detect it at -V0 or -b320.
Title: Nightwish - Angels Fall First
Post by: psycho on 2012-09-06 11:33:05
Thanks, mixminus1.

I will try it again tonight. But I think I will not "find" it, because that's where I was looking for before.
Title: Nightwish - Angels Fall First
Post by: psycho on 2012-09-06 17:19:17
Aha! Now I took time, put my headphones on and ABX-ed it at -V 4, lame 3.99.5.

I could hear it at -V 4 and at -V 1, but not at -V 0.

Results:

(http://shrani.si/f/3I/8s/28SQ3Qxh/abx-v4-nw-angels.png)


-V 4:
Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.5
2012/09/06 18:09:20

File A: C:\Users\Goran\Downloads\05___Angels_Fall_First_ringing.flac
File B: C:\Users\Goran\Downloads\05___Angels_Fall_First_ringing.mp3

18:09:20 : Test started.
18:11:47 : 01/01  50.0%
18:12:06 : 02/02  25.0%
18:12:28 : 03/03  12.5%
18:12:52 : 04/04  6.3%
18:13:09 : 05/05  3.1%
18:13:27 : 06/06  1.6%
18:13:47 : 07/07  0.8%
18:14:01 : 08/08  0.4%
18:14:18 : 09/09  0.2%
18:14:36 : 10/10  0.1%
18:15:01 : Test finished.

 ----------
Total: 10/10 (0.1%)


-V 1:
Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.5
2012/09/06 18:24:53

File A: C:\Users\Goran\Downloads\05___Angels_Fall_First_ringing.flac
File B: C:\Users\Goran\Downloads\05___Angels_Fall_First_ringing.mp3

18:24:53 : Test started.
18:26:22 : 01/01  50.0%
18:26:55 : 02/02  25.0%
18:27:08 : 03/03  12.5%
18:27:47 : 04/04  6.3%
18:27:57 : 05/05  3.1%
18:28:12 : 06/06  1.6%
18:28:57 : 07/07  0.8%
18:29:17 : 08/08  0.4%
18:29:33 : Test finished.

 ----------
Total: 8/8 (0.4%)
Title: Nightwish - Angels Fall First
Post by: Dynamic on 2012-09-06 18:59:04
I wanted to try out the VBR+ mode (-V n+) of halb27's lame3.99.5y version (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=94075&view=findpost&p=789809) compared to normal VBR mode, so unlike psycho, I didn't try just going for a higher quality -V n VBR mode.

Using foobar2000's ABX tool with start time 0.9s and end time 1.9 s I found a slight wavering of the sustained right-panned guitar note by encoding using lame3.99.5y using plain -V 5 encoding option - not a high bitrate setting. After a bit of relaxing and comparing of A and B, this became easy to spot, resulting in 10/10 ABX.

If anything I'd say it seems to waver in pitch or loudness every time a picking sound was heard, e.g. on the other strings of the arpeggiated chord, making it a regular time interval.

This seems to tie in with halb27's notion that when short blocks are triggered (e.g. for the picking noise transients), in order to maintain frequency resolution in the simultaneous tonal signals requires an awful lot of bits to be thrown at those short blocks. For this reason he made the lame3.99.5y test version to allow the + version of the VBR modes, which reserves lots of bit reservoir and when short blocks are triggered, it increases the bitrate as much as possible to code with maximum accuracy in those blocks. I noticed 320kbps frames rise from 4/1154 to 141/1154 (though that's without using mp3packer to tidy up the wasted bit-reservoir filled with padding).

I then tried lame3.99.5y using option -V 5+ on the commandline and found it practically impossible to spot. (6/10, though I identified it by a sort of subtle pitch difference - sharpness - on the -V5+ version, but failed, giving up on 2/4)

I will mention that I'm not very good at spotting these artifacts and my listening environment isn't great, though I wouldn't imagine my cheap Philips Extra Bass earbuds would matter much compared to the background noises.

A = original, B = 3.99.5y -V5 (normal VBR mode) SUCCESSFUL ABX
Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.2
2012/09/06 17:22:13

File A: C:\Users\Dynamic\Music\Test signals\05___Angels_Fall_First_ringing.flac
File B: C:\Users\Dynamic\Music\Test signals\05___Angels_Fall_First_ringing.wav.v5normal.mp3

17:22:13 : Test started.
17:23:55 : Trial reset.
17:24:22 : 01/01  50.0%
17:24:33 : 02/02  25.0%
17:24:47 : 03/03  12.5%
17:24:56 : 04/04  6.3%
17:25:13 : 05/05  3.1%
17:25:25 : 06/06  1.6%
17:26:10 : 07/07  0.8%
17:26:28 : 08/08  0.4%
17:26:48 : 09/09  0.2%
17:27:05 : 10/10  0.1%
17:27:08 : Test finished.

 ----------
Total: 10/10 (0.1%)

A = original, B = 3.99.5y -V5+ (halb27's VBR-plus mode) FAILED ABX
Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.2
2012/09/06 17:28:36

File A: C:\Users\Dynamic\Music\Test signals\05___Angels_Fall_First_ringing.flac
File B: C:\Users\Dynamic\Music\Test signals\05___Angels_Fall_First_ringing.wav.v5plus.mp3

17:28:36 : Test started.
17:30:30 : 01/01  50.0%
17:30:44 : 01/02  75.0%
17:31:30 : 01/03  87.5%
17:33:28 : 02/04  68.8%
17:33:47 : 02/05  81.3%
17:44:01 : 03/06  65.6%
17:45:01 : 04/07  50.0%
17:45:21 : 05/08  36.3%
17:45:44 : 05/09  50.0%
17:45:56 : 06/10  37.7%
17:46:15 : Trial reset.
17:46:34 : 01/01  50.0%
17:46:53 : 01/02  75.0%
17:47:50 : 02/03  50.0%
17:48:49 : 02/04  68.8%
17:49:03 : Test finished.

 ----------
Total: 8/14 (39.5%)

In short, though I don't think I'm good at spotting this sort of artifact and don't find it annoying in this case, I must commend Horst for his work on the -V n+ modes. I wasn't for sure expecting -V 5+ to do it - think it maybe needed -V 0+ instead - but it actually worked (for my ears) without increasing the VBR setting, just adding + to it.



This VBR -V n+ mode seems to be a notable exception to the often reasonable rule-of-thumb of many codecs, not just MP3/LAME, which states that many artifacts get better only gradually because the extra bits are not applied exclusively to the right area but tend to get spread thinly when the encoder's psymodel doesn't know what the right area is. 3.995y -V n+ seems to narrow down the area where the bits are needed a lot better than most, probably because most of LAME's other artifacts are already fixed (and have been for many years).

An analogy is to think of a square tray of plant pots, where you want to bury each seed under at least 1cm of soil. If a single seed is exposed by a gust of wind from one side blowing the soil from above it and you know where that was, you can apply a little extra soil (say 4cm³) just to the correct area of the correct plant pot, but if you don't know where the seed is (e.g. you're blindfolded or there's no light) or you are only able to add soil over the whole tray (e.g. you have restricted access from a great height), you have to add a lot more soil (e.g 1000cm³), only some of which contributes to covering over the exposed seed before it is sufficiently covered.

To explain the analogy:
exposed seeds = audible artifacts;
soil = bits or bitrate;
ability to see the location of exposed seeds = psychoacoustic model matching human hearing;
soil placement accuracy = limitations of format (e.g. short/long block features allowed).


As I understand how -V n+ mode works, which halb27 can correct me on if I'm wrong, whenever a short block is triggered by the normal -V0 psymodel, -V0+ tries to ensure that the maximum possible number of bits are made available to represent it as perfectly as MP3 allows, via the use of maximum bit reservoir and maximum (320kbps) frame size to reduce both pre-echo hiss and improve tonal accuracy during short blocks as much as possible within the normal MP3 format.

I applaud Horst for coming up with a different approach that seems to work so well. In this way, because short blocks aren't too frequently used in most music and because it uses a sensible lowpass, it is one of the few techniques that really does apply a lot of the extra bits to the right areas.

Using my seeds in a tray of plant pots analogy again, as I understand it, -V n+ is rather like knowing that statistically, exposed seeds are nearly all in the wind-facing half of the first row of plant pots on the side the wind was blowing from (analogy => most artifacts are in short blocks), so you can apply extra soil to only half of the pots on the windward side (=extra bits in short blocks) without wasting soil over the whole tray, and maybe use for example 100cm³ of extra soil, which is far better than the even-spreading approach which uses ten times more soil, but not quite as good as having the visibility of the exposed seeds and placing accuracy that tells you exactly where to deposit something more like 4cm³ of soil and lets you do so accurately.

The actual relative volumes of soil are only for illustration, but get the picture across of how inefficiently extra bits normally deal with the problem, and how, if my understanding is approximately correct, lame 3.99.5y -V n+ deals with it much better.

Perhaps the LAME psymodel can eventually be improved to detect situations where, let's say, strong tonal signals coinciding with transients in short blocks demand additional bitrate to ensure that both conflicting demands are met, and perhaps if it needs to LAME could step back a few frames and rearrange the data (stored in a buffer before being written out) to build up sufficient bit reservoir in advance of the need to exceed 320kbps local bitrate as much as required or as much as possible for these circumstances.

The restrictions of the MP3 format definition clearly prevent clever and precise solutions such as in Opus/CELT where short-blocks or long-blocks can be chosen per frequency band so that a tonal signal and its main harmonics in a few bands can benefit from the frequency resolution of a long block at the expense of time resolution while a transient typically spread across many other bands can benefit from the time-resolution of a short block at the expense of frequency resolution. Brute force high bitrate allocation at selected instants seems to be the best approach permissible for MP3.

If it's possible to derive a method for good detection of where these problems arise then many normal short blocks that don't contain tonal signals can retain the normal bitrate, within the limitations of mp3, perhaps it's equivalent to using 20cm³ of soil to hide each such artifact (seed)and little more to cover false positives mistaken for would-be artifacts, whereas, maybe an Opus CELT VBR encoder with a really great psymodel might need an additional 5cm³ of soil because it has the placement accuracy to deploy the bits in the best places.

Anyway, enough analogies for today!
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-06 20:17:59
Thank you for applauding 3.99.5y, but I'm afraid something has gone wrong.
3.99.5y restricts its functional extension to only -V0+.
Did you use 3.99.5x instead? However 3.99.5x -V5+ doesn't help (for me), it takes an additional --adbr_min 200 to make this sample transparent to me (didn't try lower --adbr_min values).

To me this is not a pre-echo issue but a sample where Lame's psy model isn't quite right, but this flaw is overcome here by original Lame's top quality settings. With 3.99.5y problems like these are tackled by the internal --adbr_min feature which always keeps audio data bitrate above a certain threshold.
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-06 20:29:07
I was able to abx even lame 3.99.5 with -b320 -q0 settings ...

You used just 5 trials, which is a bit low for ABXing. 8 trials should be done at least.
Anyway, according to your results there is a high chance that you can succesfully abx CBR 320 8/8.
Would you mind to try, and also try -V0? It would be great if you could also try Lame 3.99.5y -V0+ (http://dl.getdropbox.com/u/2681777/Lame_3.98x,3.99x/lame-3.99.5y.zip) in case you can abx -V0.
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-07 21:49:29
I tried various 3.99.5 -Vn settings with this interesting sample. I can ABX it up to -V1, but not at -V0.
I also tried my version 3.99.5x because of its possibility to hold up audio data bitrate above an adjustable level when using moderate quality levels. Using -V4+ --adbr_min 160 I can't ABX the issue.
Guess my decision to only support -V0+ with 3.99.5y wasn't well done, and the minimum bitrate feature is helpful even with moderate minimum bitrate. Will go back to work to fix this.
Title: Nightwish - Angels Fall First
Post by: IgorC on 2012-09-08 04:13:46
You used just 5 trials, which is a bit low for ABXing. 8 trials should be done at least.

p = 0.03... for 5 trials
p = 0.0039... for 8 trials.

I don't think that a confidence interval of  96.875% (5 trials) is any worse than one of 99.609375% (8 trials) for real life scenarios.  +2.73%
Especially for such ambiguous case like ranking of audio quality.
All You get is a fatigue, early quit at very first samples and an incompleteness.

5 is more than enough.
Title: Nightwish - Angels Fall First
Post by: alter4 on 2012-09-08 11:14:55
I was able to abx even lame 3.99.5 with -b320 -q0 settings ...

Would you mind to try, and also try -V0? It would be great if you could also try Lame 3.99.5y -V0+ (http://dl.getdropbox.com/u/2681777/Lame_3.98x,3.99x/lame-3.99.5y.zip) in case you can abx -V0.


I did ABX -V0 very easily, that was exactly the case why I started to ABX pure 320kpbs sample. Sorry pal, I don't want to start ABX it again, just believe me I was able to do it. But nothing special with my ears, just quite good sound equipment. I think for real life listening V0 is transparent, because V0 doesn't sound bad (for example, V5 sounds ugly & could hinder you enjoy the track), it just sounds slightly different from the original. 
Title: Nightwish - Angels Fall First
Post by: MostlyHarmless on 2012-09-08 12:12:54
p = 0.03... for 5 trials
p = 0.0039... for 8 trials.


What about 6, 7 attempts?
Just curious, how can I calculate if I want a confidence of, say 99%?
Title: Nightwish - Angels Fall First
Post by: C.R.Helmrich on 2012-09-08 13:17:02
0.5^number-of-trials. Igor, I wouldn't say 5 is more than enough. It's enough. 4 trials would give you less than the commonly sought 95% confidence.

Chris
Title: Nightwish - Angels Fall First
Post by: Dynamic on 2012-09-08 17:29:00
Thank you for applauding 3.99.5y, but I'm afraid something has gone wrong.
3.99.5y restricts its functional extension to only -V0+.
Did you use 3.99.5x instead? However 3.99.5x -V5+ doesn't help (for me), it takes an additional --adbr_min 200 to make this sample transparent to me (didn't try lower --adbr_min values).

To me this is not a pre-echo issue but a sample where Lame's psy model isn't quite right, but this flaw is overcome here by original Lame's top quality settings. With 3.99.5y problems like these are tackled by the internal --adbr_min feature which always keeps audio data bitrate above a certain threshold.

Sorry, I'm late replying, hence the full quote.

That's weird. My -V 5+ version was encoded by lame-3.99.5y.zip from your thread about that Lame version, halb27.

The -V 5 version encoded by it was 132kbps, LAME3.99y reported encoder (short string can't display the extra .5)
The -V 5+ version had a load more 320 kbps frames, and came out at 189kbps without running mp3packer. I have attached the -V 5+ version to this post.

--edit: the above info from foobar2000 before I realised I still had the original command prompt open--

I'd assume it's doing something when I run -V 5+ as indicated in --help. Perhaps it's reverting to the behaviour of LAME3.99.5x? Dunno.

Here's a CODEBOX with the --help info and the two encodes I ran. As luck would have it I still have the same Command Prompt Console open so I followed up with a -V 0 and -V 0+ encode, to compare, and there are actually 5 encodes in the following order:

1) lame3.98.4r -V 5
2) lame3.99.5y -V 5+    (file attached to this post)
3) lame3.99.5y -V 5
4) lame3.99.5y -V 0
5) lame3.99.5y -V 0+

I note that the percentage of short blocks is the same in the different encodes including a 3.98.4r encode I didn't spend time ABXing, but the -V 0+ encode is encoded very differently from the -V 5+

Please feel free to download the -V5+ encode attached to this post and examine it or ABX it between 0.9 and 1.9 seconds, or whatever you choose.

Code: [Select]
Microsoft Windows [Version 6.1.7601]
Copyright © 2009 Microsoft Corporation.  All rights reserved.

//* deleted stuff ... *//
 Directory of C:\Users\Ryan\Music\Test signals

06/09/2012  16:16    <DIR>          .
06/09/2012  16:16    <DIR>          ..
06/09/2012  16:16        3,003,540 05___Angels_Fall_First_ringing.flac
23/08/2012  19:21            30,072 Impulse at 0.625s 384kHz sampling rate .pk
23/08/2012  19:21        1,920,044 Impulse at 0.625s 384kHz sampling rate .wav
              3 File(s)      4,953,656 bytes
              2 Dir(s)  7,226,523,648 bytes free

//* deleted stuff including decoding FLAC to WAV... *//

//* I did a quick encode for comparison using LAME3.98r left over from an expired dBpowerAmp
 trial, which I didn't spend serious time ABXing, reasoning that using different modes of the same
 encoder version might be more meaningful *//

C:\Users\Ryan\Music\Test signals>"C:\Program Files\Illustrate\dBpoweramp\encoder
\mp3 (Lame)\lame.exe" -V5 05___Angels_Fall_First_ringing.wav
LAME 3.98.4 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Encoding 05___Angels_Fall_First_ringing.wav
      to 05___Angels_Fall_First_ringing.wav.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=5)
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  1154/1154  (100%)|    0:01/    0:01|    0:01/    0:01|  17.869x|    0:00
 32 [  8] **
 40 [  0]
 48 [  0]
 56 [  0]
 64 [  0]
 80 [  0]
 96 [  26] %%***
112 [ 230] %%%%%%%%%********************************
128 [ 389] %%%%%%%%%%%%%*******************************************************
160 [ 329] %%%%%%%%%%%%%%********************************************
192 [  81] %%%************
224 [  61] %**********
256 [  21] ****
320 [  9] %*
-------------------------------------------------------------------------------
  kbps        LR    MS  %    long switch short %
  145.9      19.5  80.5        83.3  8.9  7.8
Writing LAME Tag...done
ReplayGain: -3.4dB

C:\Users\Ryan\Music\Test signals>lame3995y.exe --help
LAME 32bits version 3.99.5y (http://lame.sf.net)

usage: lame3995y.exe [options] <infile> [outfile]

    <infile> and/or <outfile> can be "-", which means stdin/stdout.

RECOMMENDED:
    lame -V2 input.wav output.mp3

OPTIONS:
    -b bitrate      set the bitrate, default 128 kbps
    -h              higher quality, but a little slower.  Recommended.
    -f              fast mode (lower quality)
    -V n            quality setting for VBR.  default n=4
                    0=high quality,bigger files. 9=smaller files
    -V n+          compared to -V n, -V n+ has a significantly reduced
                    amount of inaccurately encoded frames due to
                    lacking data space. Moreover, it doesn't allow
                    audio data bitrate to go too low
    --preset type  type must be "medium", "standard", "extreme", "insane",
                    or a value for an average desired bitrate and depending
                    on the value specified, appropriate quality settings will
                    be used.
                    "--preset help" gives more info on these

    --priority type  sets the process priority
                    0,1 = Low priority
                    2  = normal priority
                    3,4 = High priority

    --help id3      ID3 tagging related options

    --longhelp      full list of options

    --license      print License information


C:\Users\Ryan\Music\Test signals>lame3995y.exe -V 5+ 05___Angels_Fall_First_ring
ing.wav 05___Angels_Fall_First_ringing.wav.v5plus.mp3
LAME 3.99.5y 32bits (http://lame.sf.net)
Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Encoding 05___Angels_Fall_First_ringing.wav
      to 05___Angels_Fall_First_ringing.wav.v5plus.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=5)
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  1154/1154  (100%)|    0:02/    0:02|    0:02/    0:02|  12.244x|    0:00
 32 [  8] %*
 40 [  0]
 48 [  0]
 56 [  0]
 64 [  0]
 80 [  0]
 96 [  0]
112 [  19] %%***
128 [ 306] %%%%%%%%%%%%%%%%%***************************************************
160 [ 263] %%%%%%%%%%%%%%%%*******************************************
192 [ 217] %%%%%%%%%%%**************************************
224 [ 109] %%%%%%*******************
256 [  91] %%%%*****************
320 [ 141] %%******************************
-------------------------------------------------------------------------------
  kbps        LR    MS  %    long switch short %
  189.0      21.3  78.7        83.3  8.9  7.8
Writing LAME Tag...done
ReplayGain: -3.4dB

C:\Users\Ryan\Music\Test signals>lame3995y.exe -V 5 05___Angels_Fall_First_ringi
ng.wav 05___Angels_Fall_First_ringing.wav.v5normal.mp3
LAME 3.99.5y 32bits (http://lame.sf.net)
Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Encoding 05___Angels_Fall_First_ringing.wav
      to 05___Angels_Fall_First_ringing.wav.v5normal.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=5)
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  1154/1154  (100%)|    0:02/    0:02|    0:02/    0:02|  14.375x|    0:00
 32 [  8] %*
 40 [  0]
 48 [  0]
 56 [  0]
 64 [  0]
 80 [  0]
 96 [  52] %%******
112 [ 428] %%%%%%%%%%%%%%%%************************************************
128 [ 456] %%%%%%%%%%%%%%%%%***************************************************
160 [  80] %%%*********
192 [  75] %***********
224 [  28] %****
256 [  23] %***
320 [  4] %
-------------------------------------------------------------------------------
  kbps        LR    MS  %    long switch short %
  131.9      21.3  78.7        83.3  8.9  7.8
Writing LAME Tag...done
ReplayGain: -3.4dB

C:\Users\Ryan\Music\Test signals>lame3995y.exe -V 0 05___Angels_Fall_First_ringi
ng.wav 05___Angels_Fall_First_ringing.wav.v0normal.mp3
LAME 3.99.5y 32bits (http://lame.sf.net)
polyphase lowpass filter disabled
Encoding 05___Angels_Fall_First_ringing.wav
      to 05___Angels_Fall_First_ringing.wav.v0normal.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  1154/1154  (100%)|    0:02/    0:02|    0:02/    0:02|  11.376x|    0:00
 32 [  0]
 40 [  0]
 48 [  0]
 56 [  0]
 64 [  0]
 80 [  0]
 96 [  0]
112 [  0]
128 [  5] %
160 [  5] %
192 [  55] %%%%%%%%%
224 [ 327] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*******
256 [ 436] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%********************
320 [ 326] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%***************
-------------------------------------------------------------------------------
  kbps        LR    MS  %    long switch short %
  261.0      75.7  24.3        83.3  8.9  7.8
Writing LAME Tag...done
ReplayGain: -3.4dB

C:\Users\Ryan\Music\Test signals>lame3995y.exe -V 0+ 05___Angels_Fall_First_ring
ing.wav 05___Angels_Fall_First_ringing.wav.v0plus.mp3
LAME 3.99.5y 32bits (http://lame.sf.net)
Using polyphase lowpass filter, transition band: 17249 Hz - 17782 Hz
Encoding 05___Angels_Fall_First_ringing.wav
      to 05___Angels_Fall_First_ringing.wav.v0plus.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  1154/1154  (100%)|    0:04/    0:04|    0:04/    0:04|  7.3687x|    0:00
 32 [  0]
 40 [  0]
 48 [  0]
 56 [  0]
 64 [  0]
 80 [  0]
 96 [  0]
112 [  0]
128 [  0]
160 [  0]
192 [  0]
224 [  3] %
256 [ 139] %%%%%%%%**
320 [1012] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*****************
-------------------------------------------------------------------------------
  kbps        LR    MS  %    long switch short %
  312.0      75.6  24.4        83.3  8.9  7.8
Writing LAME Tag...done
ReplayGain: -3.4dB

C:\Users\Ryan\Music\Test signals>
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-08 18:28:48
I did ABX -V0 very easily ...

Sure I beleive you. But can you please try 3.99.5y -V0+? It would be great for me to know whether I have to work on it yet or whether I'm done. (To me the result is fine, but that's the case already with original -V0).
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-08 18:54:45
That's weird. ...

You're right, and the weirdness is definitely on my side. Sorry for the confusion.
I'm a bit upset about the version I uploaded which definitely doesn't work the way I intended (though it seems to have its advantages) and is not identical with my development version.
I'll try to find out about the problem. Sorry again.

Anyway, your finding shows that making Lame more defensive makes sense also with lower settings than -V0+. Thanks for that. I'll go back to work.
Title: Nightwish - Angels Fall First
Post by: Dynamic on 2012-09-08 20:02:21
Anyway, your finding shows that making Lame more defensive makes sense also with lower settings than -V0+. Thanks for that. I'll go back to work.


Although I don't think I'm as good as you at ABXing, I'm impressed with what this version fixes personally, and to me, it seems to confirm the feeling that the pitch variations coincided with the picking transients, as changing only the short block encoding to maximum (or I presume just that change) solved it.

The 0.9 to 1.9 second range also sounds great to me at -V 6.3+ (about as 'low quality' as lame can go without invoking resampling to 32 kHz sampling rate), though it's also around 180 kbps and perhaps the lower lowpass is devoting more bits to encoding the passband accurately. I couldn't hear any pitch variation on -V6.3+ and while I thought I heard a slight difference in the upper frequencies to focus on, I couldn't ABX it (4/7 before I gave up). Incidentally, at -V6.3+ it allows slightly more long blocks (84.4% vs 83.3%), but the problem is still solved to my ears on that specific one-second part of this sample, though I guess, being a short-block problem, having more long blocks might actually help tonal encoding and it might have made some of the transients more pre-echoey or smeared, which I don't think I'm good at picking up. The transient detection might be marginally affected by the lowpass nearing 16 kHz at -V6.3+
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-08 20:33:05
Thanks for that. Hopefully you will continue your valuable testing with my next regular version.
Unfortunately your version is just a premature version of 3.99.5y (with welcome side effects in this very context), and I am not able to reconstruct the internal details of this very version. Which is not as bad as it sounds, as I know about the potential ingredients. The correct version BTW can be downloaded from the 3.99.5y thread now.

One thing however is pretty sure right now: In order to have my extension improve things with problem cases like these, a relatively large increase in average bitrate is necessary for the low quality settings. According to first trials last night this makes sense to me according to the fact that usually everything is encoded fine even with a quality setting like -V5. With problem cases like this increasing quality level helps only in a way that is a bit disappointing. Increasing average bitrate with the defensive details of the functional extension seems to have a more stringent effect. Which is to be shown yet, resp. the exact details have to be worked out.
Title: Nightwish - Angels Fall First
Post by: Dynamic on 2012-09-09 10:04:55
One thing however is pretty sure right now: In order to have my extension improve things with problem cases like these, a relatively large increase in average bitrate is necessary for the low quality settings. According to first trials last night this makes sense to me according to the fact that usually everything is encoded fine even with a quality setting like -V5.


I'm keen to keep testing, so long as I have the time, which is a little sporadic at the moment. At least I'm familiar with what to listen for in this sample and I might give some like eig and herding-calls a go too.

I guess with about 83% of the files being long blocks and -V5 normally being about 130 kbps, and using about 480kbps for those short and switching blocks (320 + 50% of 320), a rough figure would be roughly 0.83 * 130 kbps + (1-0.83) * 480kbps = 190 kbps (7% - 10% short blocks respectively) after mp3packer. Perhaps that's a slight overestimate based on my actual results, so maybe it's not right up to 480 kbps on all short block or on the switching blocks.

I suppose that's still better than going to -V2 and still having an artifact, albeit more subtle when you've identified the problem sample. I guess it's possible to have a -V n- mode that employs somewhat lower short-block minimum bitrate or a lesser increase in the requested Signal To Mask Ratio (or quantization error). Hmm. Maybe my "volume of soil to cover seeds" analogy isn't so far off in numerical proportions.

I guess we could say that compared to -V5 with artifact,
-V0+ requires about 150-180 kbps of bitrate increase in this specific case, but sounds perfect
-V0  requires about 130 kbps of bitrate increase but sounds near enough OK, maybe a subtle artifact
-V2  requires about 50-60 kbps of bitrate increase and still has an artifact, slightly less than -V5
-V5+ requires about 40-55 kbps of bitrate increase but sounds essentially perfect (to my limited ears).
-V6.3+ also requires 40-55 kbps of bitrate increase (i.e. little to no bitrate advantage) and sounds fine to my ears

I wonder if I might be able to think of a reasonably efficient algorithm and threshold to detect tonal components within short blocks (if that is indeed the problem with this class of artifacts), perhaps by comparing samples like this to samples with spectrally-white transients like the Dave Matthews Band sample 4_40_30sec or whatever it's called and perhaps version 3.97 to version 3.99 in samples where they differ in this sort of artifact.

I remember some years ago (3.90.2 era, perhaps) playing with lamex (I think that was the name) which produced graphs of the waveforms and spectrum of original and reconstructed signals. I don't know if there's still a compile switch to create a lamex based on 3.99.5x or y. I don't tend to look as I haven't had a C compiler installed in years.

I'd have thought there might be an algorithmic way to pick something out and set an appropriate detection threshold for maximizing bitrate in this sort of sample but not in more normal atonal short block transients. This would probably greatly reduce the bitrate increase (after running mp3packer or implementing a method of building up maximum bit reservoir within LAME only where it's about to be needed).

-V5+ plus short-block tonality threshold might (guesswork) require anything between 10 and 30 kbps more bitrate, perhaps 5-20 kbps on a whole collection (after mp3packer or backward bit-reservoir accumulation)

Or, more sophisticated than a threshold to request maximum bitrate, setting a better fitting function rule for requesting a progressively lower quantization noise (or SMR) as some measure of relative tonality increases, either using the existing analysis functions such as FFTs used by the psymodel or maybe comparing additional FFTs of various lengths (which could be active only during the analysis of short blocks, limiting the encode-speed reduction). A potential problem with relying on the internal short-block detection and switching before even looking for tonality would be if in future versions of LAME, the detection threshold were modified, breaking any change we make to solve this sort of problem or unmasking some edge-cases.

I expect I could generate some artificial test tone + transient samples or mix a pair of percussive and tonal tracks over a range of relative loudnesses in some sort of Design Of Experiments style to try to plot out where the limits of audibility lie.

Thanks again for the time and effort you put in, Horst.

Ryan.
Title: Nightwish - Angels Fall First
Post by: alter4 on 2012-09-09 11:14:31
Guys, just one question. What is LAME3.99y encoder and when I can download it?
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-09 13:30:21
You can download it from the 3.99.5y thread (http://www.hydrogenaudio.org/forums/index.php?showtopic=94075&view=findpost&p=789809).

Thanks for wanting to give it a try.
Title: Nightwish - Angels Fall First
Post by: Dynamic on 2012-09-10 17:34:35
You can download it from the 3.99.5y thread (http://www.hydrogenaudio.org/forums/index.php?showtopic=94075&view=findpost&p=789809).

Thanks for wanting to give it a try.

I decided out of interest that I'd try a different high performance MP3 encoder on this sample, and one that I've used before (when I didn't care about gapless features that LAME provides).

I encoded using Helix VBR at around 131 kbps, using settings -X2 -U2 -V60 which are the same settings used in the 128 kbps MP3 public listening test where it tied with LAME. The resulting encode is attached to this message.

I started out easily, but my tiredness set in and I lost concentration getting it wrong twice in a row. I carried on to 10 tests with renewed focus, getting all the rest correct, and I'm convinced I could genuinely detect the same sort of wavering I ABXed with lame -V 5 above, but which was fixed using lame 3.99.5y -V 5+ above

I'm not sure whether LAME or Helix is better or worse on this sample and I'm not that bothered.

I note that there is a short-block threshold switch in Helix, but not something specific to increase bitrate in short blocks, so it's unlikely that any commandline tweaks would fix it - except by using long blocks, which would mess up the picking transients (and not from the full help either).

Encoder details and options, followed by ABX log:
Code: [Select]
//* Encoder details: *//
C:\Users\Ryan\Music\Test signals>"C:\Program Files\HelixMP3Enc\hmp3.exe"

  file-file MPEG Layer III audio encode v5.1 2005.08.09
 Copyright 1995-2005 RealNetworks, Inc.

 Usage:  mp3enc <input> <output> [options]
          <input> and/or <output> can be "-", which means stdin/stdout.

 Example:
        mp3enc input.wav output.mp3

 Options:
          -Nnsbstereo -Sfilter_select -Aalgor_select
          -C -X -O
          -D -Qquick -Ffreq_limit -Ucpu_select -TXtest1
          -SBTshort_block_threshold -EC
          -h (detailed help)



  <press any key to stop encoder>
 PCM input file: TEST.WAV
MPEG ouput file: TEST.MP3
 CANNOT_OPEN_INPUT_FILE
C:\Users\Ryan\Music\Test signals>

//* ABX LOG *//
foo_abx 1.3.4 report
foobar2000 v1.1.2
2012/09/10 16:57:13

File A: C:\Users\Ryan\Music\Test signals\05___Angels_Fall_First_ringing.helix.x2.u2.v60 .mp3
File B: C:\Users\Ryan\Music\Test signals\05___Angels_Fall_First_ringing.flac

16:57:13 : Test started.
16:57:21 : Trial reset.
16:58:25 : 01/01  50.0%
16:58:45 : 02/02  25.0%
16:59:17 : 03/03  12.5%
16:59:29 : 04/04  6.3%
17:00:28 : 05/05  3.1%
17:01:00 : 06/06  1.6%
17:01:15 : 06/07  6.3%
17:02:19 : 06/08  14.5%
17:03:35 : 07/09  9.0%
17:04:07 : 08/10  5.5%
17:04:22 : Test finished.

 ----------
Total: 8/10 (5.5%)
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-10 22:16:10
Here comes a candidate for 3.99.5z (http://dl.getdropbox.com/u/2681777/Lame_3.98x,3.99x/Lame3.99.5z_pre.zip) to play with. The zip file also contains some problematic music I used for testing.

You can use -Vn+ from n=5 to n=0. It is impossible for the lower quality settings to bring significant improvement for problem spots without also significantly increasing average bitrate. So the adequate -Vn partners to compare with are
-V3 for -V5+ (169 kbps for my test set)
-V2 for -V4+ (190 kbps)
-V1 for -V3+ (223 kbps).

-V2+ takes 235 kbps on average,
-V1+ 243 kbps (after mp3packer, 250 kbps otherwise).
-V0+ comes more or less for free: 262 kbps after mp3packer, 271 kbps otherwise (-V0 takes 260 kbps for my test set used).

I did some intensive listening tests with -V5+ compared to -V3. To me -V5+ is the better solution for ringing/tremolo problems like 'Angel Fall First', 'lead-voice', 'trumpet_myPrince'.
For the other samples I tested there isn't a big quality difference between -V5+ and -V3, with slight advantages for -V5+ for some samples, and slight advantages for -V3 for other ones.

If you want to play with the most essential parameters that control the functional extension of 3.99.5z you can use
--adbr_long x to set the minimum audio data bitrate for long blocks to x [kbps]
--adbr_short x to set the minimum audio data bitrate for short blocks to x [kbps].

Enjoy!
Title: Nightwish - Angels Fall First
Post by: Dynamic on 2012-09-11 08:40:18
Thanks, I look forward to testing this.

Ryan.

[edit - for anyone else testing, you might need the vcredist_x86.exe to install Microsoft Visual C 10 runtime libraries that were bundled with at least one previous version of lame3.99.5y and are available from Microsoft if you haven't installed them already on your system]
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-11 09:09:15
I'd like to draw special attention to the sample 'trumpet_myPrince' included in the zip file.
The ringing/tremolo problem (for instance within the first 2 seconds) is much more severe than with 'Angel Fall First', and with -V5+ or -V3 it's still pretty obvious (just less annoying with -V5+).
('lead-voice' is even more severe, but it's artificial, whereas 'trumpet_myPrince' is natural music).

Thinking of user's intention:

a) Group 1: People who are content with -V5 or similar, because usually everything is fine with such a setting. These people don't have any need for quality levels higher than -V5 or -V4. Especially there's no need for a -Vn+ for them.

b) Group 2: People who don't have demands for overall close-to-transparency, but who do not like to have obvious or annoying problematic spots in their music even when they are rare. That's the people who use -V3 or -V2 traditionally. The lower quality -Vn+ settings are a promising alternative IMO. 'trumpet_myPrince' is a good sample IMO for testing the setting under consideration whether it fulfills the quality targets of this group. With this in mind I think a higher quality setting than -V5+ or -V3 is necessary. Important question to me: What should be the lowest quality setting which makes -Vn+ useful for this group? -V4+? -V3+?. I'd like to start -Vn+ with this setting.

c) Group 3: People who demand for overall transparency or close-to-transparency. -V0 or -V1 are the traditional VBR settings for this group. The highest -Vn+ settings are the alternative, with -V0+ as the most interesting cadidate.
Title: Nightwish - Angels Fall First
Post by: halb27 on 2012-09-11 09:23:54
... you might need the vcredist_x86.exe ...

It's included in the zip file now.  Thank's for the hint, Dynamic.