Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: lossyWAV 1.3.0 Development Thread (Read 195162 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

lossyWAV 1.3.0 Development Thread

Reply #25
lossyWAV 1.2.0 makes use of libfftw3-3.dll for double precision FFT analyses. libfftw3f-3.dll is the single precision variant. lossyWAV >1.2.0 can use either (but not both). The request was made a while ago to allow the use be able to use both (not at the same time) - apparently single precision is faster (although not by very much at all from my testing).
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.3.0 Development Thread

Reply #26
lossyWAV beta 1.2.2b attached to post #1 in this thread.
That's fixed the problem I saw.

As I couldn't hear it before, I'll leave the listening to halb27

Cheers,
David.

lossyWAV 1.3.0 Development Thread

Reply #27
I just tried 1.2.2.b -Z --adaptive on bibilolo (bibiloloEssence as before to be precise) and furious.

It's much better now but it's not hard to ABX (I ABXed the last 0.8 sec. of bibiloloEssence and the last 0.9 sec. of furious).
It still sounds like spontaneously added low frequency noise or kind of rumbling.

Maybe -Z (without --altpreset) can't be really competitive qualitywise, but for bibiloloEssence it does take 433 kbps which IMO should produce a better quality in case everything works alright. So I think bibiloloEssence is a good sample for improving things.

I looked at the spectograms you gave for badvilbel, Nick. Isn't the noise up to 1 kHz a bit too strong? Loos like a frequency block of rather strong noise compared to other frequency regions, and at 1 kHz our ears are pretty sensitive. Just a thought.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #28
I looked at the spectogram of the last 0.5 second of bibiloloEssence and that of the correction file.

For the last 0.5 sec. there's nearly no frequency content in the signal in the roughly 800 Hz to 7 kHz region. But quite a lot of noise is added in this range.
This happens also earlier in the track with a pretty week signal contents up to roughly 700 Hz and no signal contents between ~ 700 Hz and 7 kHz, while pretty strong noise is added especially in the 1-2 kHz range where our ears are very sensitive.
Maybe there can be special treatment for the sensitive range of roughly 1-3 kHz ensuring that SNR is always beyond a certain limit (if necessary by locally increasing SNR demands and/or by locally giving away noise shaping for the sake of a better SNR in this specific frequency range).
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #29
Thanks again for the fault-finding.... .

lossyWAV beta 1.2.2c attached to post #1 in this thread.
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.3.0 Development Thread

Reply #30
Nick, you must be a wizard being so fast with new versions!

I am a bit tired now after returning from a vaudeville show but couldn't resist doing a quick listening test of 1.2.2.c -Z --adaptive on bibiloloEssence and furious.
I'll repeat the test tomorrow, but for this quick test bibiloloEssence was fine.
With furious however there's still some (small) problem. Within the last second there's an artefact again, this time more clearly to be described as a kind of clicking. It's not very obvious though.

I did not think before that it will be possible to have lossyWAV going to be transparent on difficult samples with a setting yielding an average bitrate way below 300 kbps. And now it looks as if you're not far away from achieving this, Nick. Chapeau!
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #31
I repeated last night's test, now doing it very carefully.
But my result for bibiloloEssence is the same: it's transparent to me.
The result is also the same for furious (as was expected): I can ABX the last second 10/10.

The only new thing is that I have the impression that what I described as kind of clicking in furious (or some other kind of spontaneous irregularity in the 'music') isn't necessarily an error produced by the lossyWAV machinery. I'm not totally sure but I hear kind of the same 'irregularity' in the signal, at a much lower volume. The 'irregularity' is stronger in the lossyWAV result, that's why it isn't transparent, but it still resembles the original.

So maybe this isn't an error in the new machinery but corresponds simply to the fact that we're at very low bitrate with -Z --adaptive for what we can expect for the lossyWAV process (and the result is good, just not perfect).
For general use maybe the transparency border is at a little bit more demanding setting than -Z --adaptive.

Anyway in order to find samples worth while improving upon, and for optimizing lossyWAV, especially with respect to the adaptive noise shaping, I think it's appropriate at the moment to focus on -Z --adaptive.
I'll do more listening tests within the next days.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #32
Great news about bibilolo - very satisfying to get a positive result on the first attempt.

Thanks for all of the testing - I'm working on a new feature which will hopefully result in a better filter - should be posted this evening.
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.3.0 Development Thread

Reply #33
Another interesting sample for testing:

- Wheeee.

Unfortunately my brother is watching something on the TV at the moment and my PC is in the same room so I haven't had a chance to test this sample properly but I did listen a bit at the difference between the original and what you get after -Z --adaptive and it sounds interesting. It's also amazing how well the added noise adapts to the signal, in this sample it's certainly well visible.

lossyWAV 1.3.0 Development Thread

Reply #34
Thanks for the sample - having a bit of computer trouble....

I installed the Fisher Price Digital Arts & Crafts Studio software on the family PC (my development machine....) and it crashes with boring regularity when .NET Framework 1.1 is installed. Unfortunately, that is required by Borland Turbo Delphi Explorer 2006 - my development environment. I am therefore trying to implement a fix which removes the dependencies on .NET 1.1 from my Delphi installation. No update tonight (unless I get through this much faster than anticipated).
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.3.0 Development Thread

Reply #35
@doccolinni: Can you tell a bit about at what second the issue arises?

@Nick: Don't hurry, you're extremely fast anyway.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #36
@doccolinni: Can you tell a bit about at what second the issue arises?

Like I said, I couldn't test and listen to the sample properly, but I'll do it later tonight, so the reason why I linked to that sample was not because I identified an issue but because I thought it'd be a good sample for testing lossyWAV's noise shaping because of its complicated spectrum. I know that's not how things here usually work and I apologise if you expected there to be some issue I've already identified, but like I said I'll listen carefully to the sample later tonight and see if there are any identifiable artefacts.

lossyWAV 1.3.0 Development Thread

Reply #37
Yes, it's an interesting sample for looking at how adaptive noise shaping is doing. And it's working very well when looking at the spectograms.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #38
Yes, it's an interesting sample for looking at how adaptive noise shaping is doing. And it's working very well when looking at the spectograms.

My point exactly, though I hope I will get to actually properly listen to how lossyWAV is doing on this sample later tonight when my brother goes to sleep.


lossyWAV 1.3.0 Development Thread

Reply #40
lossyWAV beta 1.2.2d attached to post #1 in this thread.

[edit] Spectrograms removed - superseded. [/edit]
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)


lossyWAV 1.3.0 Development Thread

Reply #42
 Thanks - as I said in the change log, this is an interim step. I was using the data collated to produce the --freqdist spectrogram as the input to the adaptive noise shaping. This had 32 elements - which I think corresponds quite well with the blocky nature of your noise spectrogram. As an interim measure, I have interpolated this out to 128 elements and fed that output to the ANS algorithm. A better way would be to use a 256 sample FFT to collect the data for the input to the ANS algorithm. I will get onto this over the next few days.
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)


lossyWAV 1.3.0 Development Thread

Reply #44
My listening room wasn't quiet today so I couldn't test 1.2.2.d -Z --adaptive until few minutes ago.

Both bibiloloEssence and furious are transparent to me now.

I didn't start so bad with furious and thought I had a chance to ABX it though it was clear it was much harder than before. I arrived at 4/4 but got totally lost afterwards.
As it's late now I'm going to repeat the test tomorrow. Just to be sure.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #45
I repeated the test with furious using 1.2.2.d -Z --adaptive.
I arrived at 8/10 which is not a valid ABX result - at least it is a questionable one.
My both faults were with the 2 starting trials though, after that I was fine.

Taking it all together I think the result for furious is more or less on the edge of transparency - good enough for the portable quality setting.
I can't tell about the differences towards the original, I just have the feeling when ABXing that there is a (subtle) difference.

Listening experience of other members would be very welcome.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #46
lossyWAV beta 1.2.2e attached to post #1 in this thread.

[edit] spectrograms removed - superseded. [/edit]
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

 

lossyWAV 1.3.0 Development Thread

Reply #47
I'm sorry to say that with this version I can ABX furious again pretty easily 10/10 (using -Z --adaptive).
The increased volume of the 'irregularity' is back.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.3.0 Development Thread

Reply #48
I just want to comment on the "noise images". The "sharp responses" at high frequencies are not desirable. This doesn't reflect typical masking curves. The kind of noise shaping filter (frequency warped all-pole filter) is optimized to fit masking curves. Masking curves are typically rather smooth in higher frequency areas and can be quite selective (high frequency resolution) at lower frequencies. This is actually the point of using the frequency warping technique. The way Nick uses the filter right now doesn't seem to exploit that at all.

As for artefacts like clicks and pops etc this *could* be potentially explained by the exact mechanism Nick uses to switch from one filter to another. So, that's maybe a good place to look for the cause of artefacts. I specifically used a lattice filter structure for this reason. Lattice filters are quite stable when it comes to adapting the filter's parameters. But maybe there's a bug somewhere. To be honest I'm not completely sure about how changing the filter parameters interacts with frequency warping. It may be necessary to interpolate filters (over time) more smoothly. Nick, if you decide to do that you should convert the reflection coefficients to log-area-ratio (LAR) coefficients first, interpolate the LARs and convert them back -- or even better, interpolate the PSD curves and compute more than one set of filter coefficients for a block.

Cheers!
SG

lossyWAV 1.3.0 Development Thread

Reply #49
lossyWAV beta 1.2.2f attached to post #1 in this thread.

[edit] Spectrograms removed - superseded. [/edit]
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)