Help - Search - Members - Calendar
Full Version: WavPack 4.1 released
Hydrogenaudio Forums > Lossless Audio Compression > WavPack
Pages: 1, 2
bryant
WavPack version 4.1 is released. It includes some fixes and some added features based mostly on HA user's input. There is also (finally) a real change log. The Linux version has been updated with the new sources, but I have not compiled it.

WavPack website
changelog for 4.1

Thanks to everyone who helped in the development with testing or suggestions... smile.gif
emtee
Great to see the new version online. I hope this version fixes all the previous bugs. I've been waiting for this to encode my albums.
Again, I want to thank you for your dedication and effort, bryant. Your work is really appreciated.

smile.gif
B
Thanks bryant for this new release. New versions of my favorite tools are always welcome. smile.gif
shadowking
Thanks you Bryant for improving this very awesome program.
kuniklo
Cool. Thanks for the update.

Looks like there's one small problem compiling this on Linux.

In wavpack.c, line 567, MAX_PATH should be changed to PATH_MAX.
ssjkakaroto
thx for the updates bryant smile.gif
NumLOCK
bryant, for v4.0 there is:

http://www.wavpack.com/wavpack-4.0.tar.gz

Would it be possible to put:

http://www.wavpack.com/wavpack-4.1.tar.gz ?

Thanks smile.gif
den
Someone's been busy. Good stuff David, as always.

Den.
Jack Comics
Fantastic! Thanks, bryant!
Duble0Syx
It's nice that the foobar plugin now shows all the extra info. But where it says "version" it only shows 4 even with 4.1. Not sure if thats intentional so I figured I'd point it out. I like seeing the md5 in the info though. biggrin.gif
bryant
QUOTE(NumLOCK @ Sep 15 2004, 01:02 PM)
bryant, for v4.0 there is:

http://www.wavpack.com/wavpack-4.0.tar.gz

Would it be possible to put:

http://www.wavpack.com/wavpack-4.1.tar.gz  ?

Thanks  smile.gif
*

Actually, it was wavpack4.0-tar.bz2, and I tried for about 20 minutes to create the 4.1 equivalent using 7-Zip. After getting "You Can't Do That!!" popups about 8 times I said "S***w it! They're getting a .zip!". mad.gif

If any kind soul would be willing to take the .zip and make this for me (with Kuniko's change too, and maybe the one on line 116 also to be consistent) I would be internally grateful... wink.gif

QUOTE
It's nice that the foobar plugin now shows all the extra info. But where it says "version" it only shows 4 even with 4.1. Not sure if thats intentional so I figured I'd point it out. I like seeing the md5 in the info though.
Yes, that's intentional. The pre-4.0 versions did not store enough version information to be more specific than that (3.0 can generate the exact same file as 3.98b), so I figured I'd keep it clean.

Thanks, guys! smile.gif
NumLOCK
Hi Bryant,

Ah yes, it was .bz2 -- my mistake.

Here, I made the .tar.bz2 file for you. I wrapped it inside abc.zip to be able to upload smile.gif

If possible, can you upload it with the same convention as 4.0 ? The official gentoo ebuild would expect it to be at http://www.wavpack.com/wavpack-4.1.tar.bz2 ). Thanks for this new version !

PS: While I was editing wavpack.c (see kuniklo's post) I noticed a few unchecked malloc()'s ohmy.gif wink.gif
Only modification I made, was to replace that instance of MAX_PATH to PATH_MAX.
bryant
QUOTE(NumLOCK @ Sep 16 2004, 12:19 PM)
Here, I made the .tar.bz2 file for you.  I wrapped it inside abc.zip to be able to upload  smile.gif

If possible, can you upload it with the same convention as 4.0 ? The official gentoo ebuild would expect it to be at http://www.wavpack.com/wavpack-4.1.tar.bz2 ).
*


Okay, I uploaded the file and also updated my page to point to it instead. Thanks NumLOCK and Kuniklo!

QUOTE
PS:  While I was editing wavpack.c (see kuniklo's post) I noticed a few unchecked malloc()'s  ohmy.gif  wink.gif

Yes, I admit I'm a little lazy about that, and I know it's bad form. However, I don't think it's nearly as important to check as it used to be. Back in the DOS days, you could quite easily run out of memory (like if someone ran too many TSRs) and you could actually do damage by writing to NULL pointers.

In these days of virtual memory management, a NULL return from malloc() probably means that your program (or the OS) has already crashed, and displaying some [probably incorrect] message about "out of memory" is probably less helpful than just using the NULL pointer and generating a GPF.

Hmm. I think I can rationalize just about anything! smile.gif
Speek
If any Linux user doesn't feel like compiling, here are the binaries. They are verified to work correctly on Slackware 10 and Mandrake 10, so I think they will work on any modern Linux distribution.

WavPack 4.1 binaries
tev777
QUOTE(Speek @ Sep 16 2004, 03:42 PM)
If any Linux user doesn't feel like compiling, here are the binaries. They are verified to work correctly on Slackware 10 and Mandrake 10, so I think they will work on any modern Linux distribution.


Also works onFedora Core 2. Thanks bryant and Speek!
Any word on an XMMS plugin?
Duble0Syx
QUOTE(tev777 @ Sep 16 2004, 06:29 PM)
Any word on an XMMS plugin?
*


XMMS definetaly needs a plugin. I know there is a way to write a script to play the files, but a proper plugin would be great. I think if wavpack had libs like flac does there'd be one by now, but i'm not terribly linux educated, I just use it for lopster.
rjamorim
QUOTE(Duble0Syx @ Sep 17 2004, 12:31 AM)
I think if wavpack had libs like flac does
*



wavpack has libs smile.gif
Duble0Syx
QUOTE(rjamorim @ Sep 16 2004, 08:04 PM)
QUOTE(Duble0Syx @ Sep 17 2004, 12:31 AM)
I think if wavpack had libs like flac does
*



wavpack has libs smile.gif
*


So there is something like libwavpack? If there is such a thing i'd like to know where to get it. For example, to compile lopster with support for reading Flac file bitrates/track times it requires you have libflac. To compile lopster to read wavpack file bitrates and such you pretty much have to stick part of the decoder code into it rather than just referencing the libs that don't seem to exist. But if there are libs life would be easier biggrin.gif
rjamorim
http://www.wavpack.com/sources.zip

The library interfaces are in wputils.c. Check the readme for more info.
384kbps
QUOTE(changelog.txt)
                     --------------------------------
                     Release 4.1 - September 14, 2004
                     --------------------------------
...

wvunpack.exe (command-line decoder) - 4.1
-----------------------------------------
  fixed: hybrid mode decoding bugs (very obscure situations)
  added: -s option to dump file summary to stdout
  added: -t option to preserve timestamps
  added: error summary for batch mode

...


Great, you have respected a forum user's wish! - So cool...! smile.gifsmile.gifsmile.gif

I already have made a short test with a hybrid wavpack file, deleting its wvc/correction file before:

CODE

X:\>wvunpack -s "Tom Petty & The Heartbreakers - Into The Great Wide Open (1991) - 01 - Learning To Fly.wv"

WVUNPACK  Hybrid Lossless Wavefile Decompressor  Win32 Version 4.1  14-9-04
Copyright (c) 1998 - 2004 Conifer Software.  All Rights Reserved.


file name:         Tom Petty & The Heartbreakers - Into The Great Wide Open (1991) - 01 - Learning To Fly.wv
file size:         15177424 bytes
source:            16-bit ints at 44100 Hz
channels:          2 (stereo)
duration:          0:04:1.86
modalities:        hybrid lossy, high
compression:       64.43%
ave bitrate:       502 kbps
encoder version:   4
original md5:      c1e355c04430d7300875894798bf0ecd



Thanks again! smile.gif
jsheridan
I'm trying to use Wavpack 4.1 with foobar and foo_clienc, and from some reason i always get at the end of the encoding "ERROR (foo_clienc) : Encoding failed"

Commandline used "-h - %d", when i tried to use a temp file instead of piping it works.

Ideas?
bryant
QUOTE(jsheridan @ Sep 17 2004, 01:53 AM)
I'm trying to use Wavpack 4.1 with foobar and foo_clienc, and from some reason i always get at the end of the encoding "ERROR (foo_clienc) : Encoding failed"

Commandline used "-h - %d", when i tried to use a temp file instead of piping it works.

Ideas?
*


You don't mention if you are encoding directly (from line-in) or transcoding from other files. If transcoding, you have to make sure the "encoder requires accurate length" box is checked and everything should work fine.

If you are recording directly then there is a problem because the length cannot be known in advance. There are two solutions, one of which is using the intermediate file (like you tried).

There's another solution that I just tried and it works great. Use foo_nero and set it up to use the Nero plugin for WavPack. Obviously you have to have some subset of Nero installed plus the new WavPack Nero plugin. The disadvantage of this is that there's no configuration for the Nero WavPack plugin so you only can get the default lossless mode.

I have been thinking about having a WavPack option to not require the accurate length. The problem with that is that if the resulting WavPack file is unpacked to .wav it will still have incorrect length in the RIFF header because WavPack (unlike FLAC) stores the RIFF header in the WavPack file instead of generating a new one on decode.

Hope this helps... smile.gif
jsheridan
QUOTE(bryant @ Sep 17 2004, 11:45 AM)
QUOTE(jsheridan @ Sep 17 2004, 01:53 AM)
I'm trying to use Wavpack 4.1 with foobar and foo_clienc, and from some reason i always get at the end of the encoding "ERROR (foo_clienc) : Encoding failed"

Commandline used "-h - %d", when i tried to use a temp file instead of piping it works.

Ideas?
*


You don't mention if you are encoding directly (from line-in) or transcoding from other files. If transcoding, you have to make sure the "encoder requires accurate length" box is checked and everything should work fine.



I didn't mention two important things indeed:

1. "encoder requires accurate length" WAS checked
2. The source track was originally an MP3

I've just tested with other sources (For instance lossless) and it works. However as you already mentioned there some cases Wavpack can't handle blink.gif

QUOTE(bryant @ Sep 17 2004, 11:45 AM)
If you are recording directly then there is a problem because the length cannot be known in advance. There are two solutions, one of which is using the intermediate file (like you tried).

...

I have been thinking about having a WavPack option to not require the accurate length. The problem with that is that if the resulting WavPack file is unpacked to .wav it will still have incorrect length in the RIFF header because WavPack (unlike FLAC) stores the RIFF header in the WavPack file instead of generating a new one on decode.

Hope this helps...  smile.gif
*



Well, when encoding with other lossless formats like flac/ape there isn't such a problem, and imho if this limits Wavpack to this extent, this behaviour should be changed.
jcoalson
flac solves this by making a quick second pass after encoding to fix the wave chunk sizes when the output is seekable.

this is one of the drawbacks of making a full wave file compressor instead of a generic audio compressor. if wavpack gets traction on the mac you'll have to go through this all again with aiff, because aiff is ubiquitous there and just close enough to wave that people expect it to work, and just different enough to make it a pain. however you are storing the riff headers hopefully can be tweaked enough to support aiff without another format change.

Josh

edit: PS if you ever want to see the fixup/aiff code, it's in flac's src/flac/decode.c, maybe there will be something there you can use.
384kbps
Respecting the depth of the thread my request must seem very insignificant...

...but is there any own icon/symbol for wavpack files?


Actually the standard Winamp icon is used at me for wavpack files too. I would like to distinguish file types at first sight and till now i associate that Winamp icon with Mp3.
But there is a 'slight' difference between wavpack and Mp3 wink.gif
Digisurfer
QUOTE(384kbps @ Sep 18 2004, 08:43 PM)
...but is there any own icon/symbol for wavpack files?
*


Thread got a bit over my head too, hehe. Anyways, you could use the icons included with Foobar. I absolutely love them to be honest. smile.gif

Like to add my thanks while I'm at it. I don't use WavPack at the moment (may in the future depending on my needs) but I definitely do love it and really appreciate the hard work that goes into all aspects of it's development. Keep up the good work!
guruboolez
I know two easy way to change wavpack icon:

- using one audio icon library posted here long time ago by Jan S. (installer and uninstaller include: that's great!)
- installing foobar2000, but I don't know if you can easily keep the icon if files are still associated to winamp.
bryant
QUOTE(jsheridan @ Sep 17 2004, 02:46 PM)
I didn't mention two important things indeed:

1. "encoder requires accurate length" WAS checked
2. The source track was originally an MP3

I've just tested with other sources (For instance lossless) and it works. However as you already mentioned there some cases Wavpack can't handle  blink.gif

Well, when encoding with other lossless formats like flac/ape there isn't such a problem, and imho if this limits Wavpack to this extent, this behaviour should be changed.
*


Okay, I added an option that should take care of this. Simply add "-i" to the command line and wavpack.exe will ignore the length in the wav header and simply compress all received samples and then update the appropriate fields at the beginning of the file. Note that this requires a seekable output file (no pipe output). Any trailing RIFF chunks will obviously be lost.

I am also including a new version of wvunpack.exe that has been optimized for 16-bit lossless decoding speed (15% - 35% speedup depending on mode and system) and a new version of the winamp plugin that has media library support.

These 3 programs have NOT been tested extensively and should be used with caution! smile.gif

http://wavpack.com/wp42b.zip
384kbps
To keep this rather off-topic post short...

@Digisurfer
The icons of Foobar2000 are really elegant. A pitty that the icons for Mp3 and Wavpack are quite similar giving me no chance to distinguish them specially at the size of 16x16 pixel.

@guruboolez
Thanks too for the link. The Ogg Vorbis icon is great! - By the way there is a quite complicate possibility (on Win32) to set user-defined icons for every file assiociation by manually created registry files, but this should be content of another thread.
jsheridan
QUOTE(bryant @ Sep 27 2004, 03:57 PM)
QUOTE(jsheridan @ Sep 17 2004, 02:46 PM)

I didn't mention two important things indeed:

1. "encoder requires accurate length" WAS checked
2. The source track was originally an MP3

I've just tested with other sources (For instance lossless) and it works. However as you already mentioned there some cases Wavpack can't handle  blink.gif

Well, when encoding with other lossless formats like flac/ape there isn't such a problem, and imho if this limits Wavpack to this extent, this behaviour should be changed.
*


Okay, I added an option that should take care of this. Simply add "-i" to the command line and wavpack.exe will ignore the length in the wav header and simply compress all received samples and then update the appropriate fields at the beginning of the file. Note that this requires a seekable output file (no pipe output). Any trailing RIFF chunks will obviously be lost.

http://wavpack.com/wp42b.zip
*




Did the trick, thanks for fixing smile.gif
guruboolez
decoding speed with 4.2b:
+20% with -f files
+30...35% with defaut encoding files
+40...50% with -h encoding


AMAZING!

P.S. Tested on Duron 800
ssamadhi97
QUOTE(384kbps @ Sep 28 2004, 12:49 PM)
The icons of Foobar2000 are really elegant. A pitty that the icons for Mp3 and Wavpack are quite similar giving me no chance to distinguish them specially at the size of 16x16 pixel.

white cat head vs black cat head? not that difficult to distinguish imo.. granted, different background colours would help as well, but saying you have "no chance to distinguish them" is a bit much. wink.gif

(..sorry about going OT again)
384kbps
QUOTE(guruboolez @ Sep 30 2004, 10:26 AM)
decoding speed with 4.2b:
+20% with -f files
+30...35% with defaut encoding files
+40...50% with -h encoding
...
AMAZING!
...
*
Wow! So thanks for the new beta. I'm looking forward to test if at the weekend. I hope i will see the same performance benefit on hybrid files!


@ssamadhi97
Well, yeah. Rather: 'no chance to distinguish at first sight'. Maybe i'm almost blind and need lossless wavpack files to satisfy my senses at all... wink.gif
bryant
QUOTE(384kbps @ Sep 30 2004, 05:10 PM)
Wow! So thanks for the new beta. I'm looking forward to test if at the weekend. I hope i will see the same performance benefit on hybrid files!
*


Well, unfortunately most of the improvement went just to the pure lossless mode; the hybrid mode had a much more modest gain.

However, I think I can extend the improvement to hybrid lossy with just a little effort. Hybrid lossless is quite a bit more difficult... sad.gif

edit: added italics
bryant
I fixed a problem where the new, faster decoder would not detect errors correctly and made it work in hybrid lossy mode as well as pure lossless. I also put this faster code into the foobar plugin. Please note that this is all still beta software... smile.gif

www.wavpack.com/wp42b2.zip
guruboolez
Precise values of decoding speed (foo_wavpack 2.2b):

CODE
Difference in decoding speed between wvunpack 4.1 and wvunpack 4.2 beta (foo_wavpack 2.2b):

___________________________________________________________________
encoder setting  |   4.1 decoding  |   4.2 decoding  |   progress  |
                 |     speed       |      speed      |             |
_________________|_________________|_________________|_____________|
-f               |     x40.3       |      x46.5      |    +15.4 %  |
-fx5             |     x40.4       |      x48.3      |    +19.7 %  |
                 |                 |                 |             |
(defaut)         |     x28.7       |      x35.9      |    +25.1 %  |
-x4              |     x30.0       |      x39.0      |    +29.8 %  |
                 |                 |                 |             |
-h               |     x15.5       |      x20.6      |    +32.9 %  |
-hx2             |     x15.5       |      x21.9      |    +41.0 %  |
-hx4             |     x17.3       |      x23.1      |    +32.9 %  |
___________________________________________________________________|

CPU: AMD Duron 800
Motherboard: ASUS A7V
RAM: SD-RAM 133 Mhz [512 MB]

File length: 60:00:00.000 minutes (divided in 4 equal part)
File description: 20 x 3 minutes of different classical music CD
Files [~63 MB] buffered in RAM before decoding (foobar2000 speedmeter)
A_Man_Eating_Duck
QUOTE
I fixed a problem where the new, faster decoder would not detect errors correctly and made it work in hybrid lossy mode as well as pure lossless. I also put this faster code into the foobar plugin. Please note that this is all still beta software...

www.wavpack.com/wp42b2.zip


I've just tried the Foobar 2k plugin and my speed through the speed meter went from 70X (v4.1) to 90X (v4.2b2) on a AMD XP3200.

good work biggrin.gif
bryant
I have made similar optimizations to wavpack.exe that I made to wvunpack.exe in the hopes of improving encoding speed on the same order as decoding speed. I don't seem to be getting as much improvement, but there is some. Note that this will only have any significant effect on the non-extra lossless modes. I put this in the beta2 package linked to above.

Thanks for everyone's testing! smile.gif
bryant
I have uploaded yet another WavPack beta. This version has the speedup code from beta2, plus I added the functionality of wapet to append APEv2 tags from the command-line. The syntax is identical to wapet except I used -w instead of -t, so this command-line now works in EAC:

CODE
-hb256 %s %d %c-c %o%c -w "Artist=%a" -w "Title=%t" -w "Album=%g" -w "Year=%y" -w "Track=%n" -w "Genre=%m"


If the item value for the tag begins with a '@', then the value is assumed to be a filename which is used to obtain the item's actual value. This is handy for including the CUESHEET field for use with images files with cuesheets and foobar2000:

CODE
wavpack CDImage -w "CUESHEET=@CDImage.cue"


Get it here:
http://wavpack.com/wp42b3.zip

Thanks, guys! smile.gif
amn
QUOTE(bryant @ Nov 1 2004, 01:47 AM)
If the item value for the tag begins with a '@', then the value is assumed to be a filename which is used to obtain the item's actual value. This is handy for including the CUESHEET field for use with images files with cuesheets and foobar2000:

CODE
wavpack CDImage -w "CUESHEET=@CDImage.cue"

*

That's perfect to use when you're writing scripts to automate your encodings!

Thank You! biggrin.gif
glauco
Great work Bryant !!!!!!!!

(Nothing more to say, only to support one of my favorite codecs) tongue.gif
rjamorim
I recently talked David into developing a command line tool to apply ReplayGain into WavPack files. That way, WavPack users won't depend on foobar anymore, and it could even be portable to other platforms.

Hopefully he'll have the time to look into it soon. smile.gif
Synthetic Soul
QUOTE(amn @ Nov 2 2004, 06:35 PM)
QUOTE(bryant @ Nov 1 2004, 01:47 AM)
If the item value for the tag begins with a '@', then the value is assumed to be a filename which is used to obtain the item's actual value. This is handy for including the CUESHEET field for use with images files with cuesheets and foobar2000:

CODE
wavpack CDImage -w "CUESHEET=@CDImage.cue"

*

That's perfect to use when you're writing scripts to automate your encodings!

Thank You! biggrin.gif
*
Exactly.

If only this had been around 3 months back. It would have been enough for me to switch from Monkey's Audio.

Ah well, it's been an adventure.

Congratulations bryant, on your continued development of WavPack. You always seem happy to help your users, and implement suggestions.
jcoalson
QUOTE(rjamorim @ Nov 2 2004, 02:41 PM)
I recently talked David into developing a command line tool to apply ReplayGain into WavPack files. That way, WavPack users won't depend on foobar anymore, and it could even be portable to other platforms.
*

Bryant, if you're cool with the LGPL, the FLAC distro has a simple little replaygain_analysis library. it is basically David Robinson/Glen Sawyer's code with Frank Klemm's tweaks and some fixes by me, wrapped into a little library.

Josh
Cerebus
QUOTE(rjamorim @ Nov 2 2004, 12:41 PM)
I recently talked David into developing a command line tool to apply ReplayGain into WavPack files. That way, WavPack users won't depend on foobar anymore, and it could even be portable to other platforms.

Hopefully he'll have the time to look into it soon. :)
*


I take back all those bad things I said about you.

Signed,
The Half-Wit
rjamorim
QUOTE(Cerebus @ Nov 2 2004, 06:52 PM)
I take back all those bad things I said about you.

Signed,
The Half-Wit
*


Thank-you.

Signed,
The Arrogant
Duble0Syx
WavPack is quickly becoming my new favorite lossless format.

@rjamorim: Can this command line tool be used with EAC to add album replay gain properly while ripping?
adamlau
Icons!
JayDPiii
QUOTE(bryant @ Sep 15 2004, 10:03 AM)
WavPack version 4.1 is released. It includes some fixes and some added features based mostly on HA user's input. There is also (finally) a real change log. The Linux version has been updated with the new sources, but I have not compiled it.

WavPack website
changelog for 4.1

Thanks to everyone who helped in the development with testing or suggestions...   smile.gif
*



Hi Bryant;

I am a very simple person and do not like things too complicated.
Still fairly new, I have EAC setup with Monkey Audio to RIP and store my music.

Then, on an as needed basis, I Use Lame (3.90.3) with Monkey Audio to encode to MP3 and transfer to my MP3 player.

How easy or difficult is it to set up WavePack with EAC?
Then, what would I use/how convert WavePak files to MP3?

Advantages/disadvantages of WavePak over Monkey Audio?

Thanks in advance!
GeSomeone
QUOTE(JayDPiii @ Dec 2 2004, 02:02 PM)
Advantages/disadvantages of WavePak over Monkey Audio?
*

Please have a look in the "Lossless Codecs" section especially the topic Which is the best lossless codec
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.