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: WavPack 5.0.0 alpha release available (Read 20870 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: WavPack 5.0.0 alpha release available

Reply #25
I'm glad the latest alpha is working for you!

I'm currently working on adding another capability for the 5.0 release that is taking longer than I expected, so I'm not sure the final release will be real soon. In fact, I'm sure they'll be another round of alphas for that, and I don't think I want to break up the 5.0 improvements into multiple batches.

However, the feedback on the alpha3 has been good, and so you can feel comfortable using it because I'm pretty confident nothing about RF64 file handling will change, and even if it does your files will remain usable. There might be some changes with multichannel CAF files, but that won't affect you.

Thanks again for the feedback!

Re: WavPack 5.0.0 alpha release available

Reply #26
Feature request:
When dealing with hybrid files, decode as lossy if the correction file appears unreadable.

In foobar2000, I search for matching correction file (possibly stored in a different location) once WavPack library asks for one, not each time before opening a WavPack file. I used to run a slightly modified version of WavPack library to accomplish this, with an "open" file callback added.

I propose adding this change in open_utils.c:
Code: [Select]
        if (wpc->wvc_in && wps->wphdr.block_samples && (wps->wphdr.flags & HYBRID_FLAG)) {
            wpc->file2len = wpc->reader->get_length (wpc->wvc_in);
            if (wpc->file2len > 0) wpc->wvc_flag = TRUE;
        }
Assume no correction file if the correction file appears empty; no changes to callbacks necessary so the library stays compatible with existing frontends.

Thanks for your attention.
Microsoft Windows: We can't script here, this is bat country.

Re: WavPack 5.0.0 alpha release available

Reply #27
Further feature requests.

Allow building of libwavpack static library only via configure && make.
Remove forced iconv dependency (needed for the program itself, not libwavpack).

If it's somehow possible already without editing the scripts, please correct me.
Microsoft Windows: We can't script here, this is bat country.

Re: WavPack 5.0.0 alpha release available

Reply #28
I propose adding this change in open_utils.c:
Code: [Select]
        if (wpc->wvc_in && wps->wphdr.block_samples && (wps->wphdr.flags & HYBRID_FLAG)) {
            wpc->file2len = wpc->reader->get_length (wpc->wvc_in);
            if (wpc->file2len > 0) wpc->wvc_flag = TRUE;
        }
Unfortunately that might break an app that reads the correction stream from a pipe, and
in fact does break my library tester which does just that. This is a little ugly, but might
be a little more robust. Would this work for you?

Code: [Select]
        if (wpc->wvc_in && wps->wphdr.block_samples && (wps->wphdr.flags & HYBRID_FLAG)) {
            unsigned char ch;

            if (wpc->reader->read_bytes (wpc->wvc_in, &ch, 1) == 1) {
                wpc->reader->push_back_byte (wpc->wvc_in, ch);
                wpc->file2len = wpc->reader->get_length (wpc->wvc_in);
                wpc->wvc_flag = TRUE;
            }
        }

And thanks for your continued WavPack support in foobar2000.

Re: WavPack 5.0.0 alpha release available

Reply #29
Tested, works for me, thanks.
Microsoft Windows: We can't script here, this is bat country.

Re: WavPack 5.0.0 alpha release available

Reply #30
Allow building of libwavpack static library only via configure && make.
Remove forced iconv dependency (needed for the program itself, not libwavpack).

If it's somehow possible already without editing the scripts, please correct me.
It doesn't seem to be possible with the existing scripts.

I added a "--disable-apps" option to configure that skips the iconv dependency and builds only libwavpack. You can include "--disable-shared" to build only the static library.

Unfortunately I do not have a system that lacks iconv, so I can't really be sure this fixes the issue, but it should.

Thanks for testing the wvc_flag stuff...I'll commit it.

Re: WavPack 5.0.0 alpha release available

Reply #31
Currently I'm updating my music collection from Flac to Wavpack (highest x3).
Are there any advantages to use 5.0 instead of the stable 4.8 version like smaller filesize or optimized speed? According to the startpost I think not.

Any comments on that? It will be a few days of recoding so I want to make the right decision.

 

Re: WavPack 5.0.0 alpha release available

Reply #32
Well, first of all, 5.0 is still alpha, so it's really not a great idea to use that yet for a huge conversion (especially if you will be deleting your originals in the process).

Also, 5.0 files will actually be slightly larger than 4.80 files because it creates smaller blocks, there are the new block checksums, and there's another 2-byte metadata item just to flag version 5.0 (although I just realized I could use the block checksum for that now). In any event, there's no advantage performance-wise in 5.0.

I think it makes sense to upgrade to 5.0 eventually, but I certainly would not recommend it before the final release unless you want to part of the development process and don't mind a potential problem to come up and waste some of your time. But if you do, be sure to use the most recent alpha (5) from the other thread.

Thanks!  :)

Re: WavPack 5.0.0 alpha release available

Reply #33
My question is a bit offtopic here, but I think it can be answered in one single answer so i thought opening a seperate post for it is useless.

Looking at MPEG-DASH/HLS adaptive streaming transports i was wondering if Wavpack Hybrid could be streamed on top of them? Can Wavpack's correction layer be seamlessly turned on/off while playing an existing file? Can i extract segments of a Wavpack file and decode them separately maintaining gapless playback? (I know mp3 can't be split at arbitrary frame boundaries because of the bit reservoir) Also by both formats i have to either package Wavpack segments into MPEG-TS or ISO MP4 which might be a bigger issue than actually implementing the segmenting and reconstructing.

Re: WavPack 5.0.0 alpha release available

Reply #34
I am not familiar with the MPEG transports, but I am a little familiar with Matroska, and in that case the WavPack correction data is sent as “block additions” as described here.

There is a one-to-one correspondence between WavPack lossy blocks and their matching correction blocks. The lossy blocks can be independently decoded, with or without the correction block (there are no inter-block dependencies).

One issue is that WavPack blocks may have any number of samples, and in the hybrid case these vary block to block (for the dynamic noise shaping). Of course this can also be an advantage in some situations because you could (in theory) add or subtract arbitrary samples in a stream without re-encoding the entire file.

Hope this addresses your questions...

Re: WavPack 5.0.0 alpha release available

Reply #35
Yes it does. Thank you bryant!

What tool can i use to produce such Matroska files for Hybrid multitrack mode? Can something play it directly? Or is it just a recommendation yet?

Re: WavPack 5.0.0 alpha release available

Reply #36
There is actually some support for this, but it's spotty and probably not well tested at all. Here's a bug report for mkvmerge showing that combining the wv and wvc files was broken there until quite recently and nobody noticed. And further down it mentioned that the Haali splitter is the only one on Windows that supports this (although Foobar might play them also).

My guess is that this is just not something that very many people care about, and even I have not been keeping up with it.

Re: WavPack 5.0.0 alpha release available

Reply #37
Just tried it and indeed mkvmerge packs wv+wvc into mka nicely. However not even the latest version of Foobar2000 is able to decode it in lossless mode according to my FFT which shows the added noise of lossy coding clearly.
However this is still an interesting thing because MPEG-DASH can use Matroska/WebM files as segments: http://wiki.webmproject.org/adaptive-streaming/webm-dash-specification
Thanks bryant once again! :)

Re: WavPack 5.0.0 alpha release available

Reply #38
Just to let you know. I'm currently updating my entire album collection.
Right now I'm converting my 50.000+ files to Wavpack (4.8 stable offcourse). Converting goes quite fast in highx3 mode on my NAS (i5 2400s quadcore). I have tried the highest setting but that resulted in a estimated drop of just a few MB's in total, but conversion would take incredibly long.

Soon we will have some new 128 core multi-cpu VM SSD backed servers running at my work. Maybe I could let them do some converting. Shouldn't take long I guess :)

Re: WavPack 5.0.0 alpha release available

Reply #39
Hello , I have a quesetion here.
Can we covert Wavpack-DSD directly to other pcm format?
For example I'd like to use qaac to covert Wavpack-DSD to aac .
Is it possible?


Re: WavPack 5.0.0 alpha release available

Reply #41
Can we covert Wavpack-DSD directly to other pcm format?
For example I'd like to use qaac to covert Wavpack-DSD to aac .
Is it possible?
It easily can be done using converter in foobar2000 1.3.13 (or later).


Re: WavPack 5.0.0 alpha release available

Reply #43
Assuming that qaac will accept 352.8 kHz PCM, then you can probably output directly from wvunpack with the --wav option (to convert to PCM) and -o - (to send it to stdout).

Re: WavPack 5.0.0 alpha release available

Reply #44
Admins: it would probably make sense to lock this thread too (just like the other "alpha" thread that was locked).

I also tried to go over there and delete the attachments at the top and link to the release thread, but couldn't. Thanks!