IPB

Welcome Guest ( Log In | Register )

3 Pages V   1 2 3 >  
Reply to this topicStart new topic
WavPack 4.0 Beta Release 3, lots of new goodies
bryant
post Jun 29 2004, 07:56
Post #1


WavPack Developer


Group: Developer (Donating)
Posts: 1287
Joined: 3-January 02
From: San Francisco CA
Member No.: 900



The third (and probably last) beta release of WavPack 4.0 includes the following:
  • Adobe Audition (Cool Edit) filter with 32-bit float & extra info support
  • more robust error decoding (with error muting)
  • new library interface to encoding functions
  • improved hybrid mode noise shaping
  • md5 signatures
download win32 executables and plugins
download sources
Go to the top of the page
+Quote Post
David Nordin
post Jun 29 2004, 07:57
Post #2





Group: Members
Posts: 751
Joined: 1-October 01
From: Falkenberg
Member No.: 3810



keep up the good work smile.gif


--------------------
http://davidnordin.wordpress.com/
Go to the top of the page
+Quote Post
bryant
post Jun 29 2004, 08:01
Post #3


WavPack Developer


Group: Developer (Donating)
Posts: 1287
Joined: 3-January 02
From: San Francisco CA
Member No.: 900



With the addition of the Audition file filter, this package now incorporates all the important functionality of the 3.97 version. Therefore, assuming nothing untoward is discovered, I will be releasing 4.0 in a week or two.

I have incorporated all of robUx4's changes for Linux and OS-X compiles in the sources, so except for adding md5.c to the source list and fixing anything else I messed up, that should go painlessly.

Minor improvements / changes:
  • extra mode (-x) now has default level based on mode
  • new option to store floats (and larger ints) with resolution limited to 25 bits (saves space with virtually no audio degradation)
  • new option to minimize console messages (-q)
  • new option to ignore .wvc file during decode (-i)
  • new option to decode to raw audio only (-r)
  • full error reporting in foobar plugin
QUOTE
keep up the good work  smile.gif

Thanks! smile.gif
Go to the top of the page
+Quote Post
David Nordin
post Jun 29 2004, 08:06
Post #4





Group: Members
Posts: 751
Joined: 1-October 01
From: Falkenberg
Member No.: 3810



Sounds nice indeed, now to do the same with WavPack as done with MAC - insert CUE-file and EAC LOG-file into an APEv2 tag and voila, singlefile joy ;o)

I'll be checking this out at once.


--------------------
http://davidnordin.wordpress.com/
Go to the top of the page
+Quote Post
picmixer
post Jun 29 2004, 17:56
Post #5





Group: Members
Posts: 1428
Joined: 10-April 03
Member No.: 5916



New foobar2000 wavpack input by Case available here.

Supports handling of internal cuesheets the same way monkeys input does allready.

Simply add a "cuesheet" tag to the file and paste your correct cuesheet into it.

Many thanks to Case for updating this.


@bryant:

Nice work. Just finally played around with this a bit and it seems the normal compression setting is a very nice tradeoff between filesize and decoding speed. Might even concider switching over entirely to wavpack now that case has added internal cuesheet support. smile.gif


Here is a small comparison I made between the different wavpack modes and Monkeys Audio normal. Only did this on one album though, so I can't promise it is entirely valid for all types of music. Also compared to monkeys audio 3.97 and not 3.99. 3.99 should be at least about 10% slower then 3.97 on decoding.

Done on Athlon XP 3000 with 1024 mb of ram.

Results:

Wavpack 4.0 beta3 decoding speed (Asian Dub Foundation - Enemy of the Enemy) :

normal: ~70 times 351 mb
high: ~36 times 341 mb
fast: ~93 times 358 mb

Monkeys Audio 3.97:

normal: ~46 times 340 mb
Go to the top of the page
+Quote Post
bryant
post Jun 29 2004, 18:34
Post #6


WavPack Developer


Group: Developer (Donating)
Posts: 1287
Joined: 3-January 02
From: San Francisco CA
Member No.: 900



picmixer & Case:

Thanks for the cuesheet support; I'll give that a try myself. smile.gif Is this something I could easily integrate into my foobar source?

BTW, picmixer, if decoding speed vs. filesize is your primary concern, you might want to give the -X switch a try. It slows encoding way down, but decoding is not affected and it can sometimes get you almost to the next higher mode with respect to compression ratio. (of course, maybe that's what you used...)
Go to the top of the page
+Quote Post
picmixer
post Jun 29 2004, 18:37
Post #7





Group: Members
Posts: 1428
Joined: 10-April 03
Member No.: 5916



QUOTE (bryant @ Jun 29 2004, 06:34 PM)
BTW, picmixer, if decoding speed vs. filesize is your primary concern, you might want to give the -X switch a try. It slows encoding way down, but decoding is not affected and it can sometimes get you almost to the next higher mode with respect to compression ratio. (of course, maybe that's what you used...)

Hmh, no havent tried that yet. Thanks for the hint.

High decoding speed with the least tradeoff in filesize is indeed what I am after. Curious to see the results.

This post has been edited by picmixer: Jun 29 2004, 18:37
Go to the top of the page
+Quote Post
den
post Jun 30 2004, 02:05
Post #8





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



Good stuff David, as always. cool.gif

I'll have a play with your "new and improved" hybrid mode noise shaping and let you know my thoughts.

Thanks for this.

Den


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
kuniklo
post Jun 30 2004, 02:36
Post #9





Group: Developer (Donating)
Posts: 193
Joined: 9-May 02
From: Emeryville, CA
Member No.: 2010



QUOTE (picmixer @ Jun 29 2004, 04:56 PM)
New foobar2000 wavpack input by Case available here.

Supports handling of internal cuesheets the same way monkeys input does allready.

Simply add a "cuesheet" tag to the file and paste your correct cuesheet into it.

Is there any way to automate this from a batch file?
Go to the top of the page
+Quote Post
kuniklo
post Jun 30 2004, 02:54
Post #10





Group: Developer (Donating)
Posts: 193
Joined: 9-May 02
From: Emeryville, CA
Member No.: 2010



QUOTE (bryant @ Jun 29 2004, 07:01 AM)
I have incorporated all of robUx4's changes for Linux and OS-X compiles in the sources, so except for adding md5.c to the source list and fixing anything else I messed up, that should go painlessly.

Do you have a linux makefile for b3? I'm not having much luck getting it to compile.
Go to the top of the page
+Quote Post
robUx4
post Jun 30 2004, 08:58
Post #11


Matroska Developer


Group: Developer (Donating)
Posts: 410
Joined: 14-March 02
From: Paris
Member No.: 1519



If the makefile is not included, you can try the one I did from the sources there.


--------------------
http://www.matroska.org/ : the best vapourware / http://robux4.blogspot.com/
Go to the top of the page
+Quote Post
Speek
post Jun 30 2004, 09:26
Post #12





Group: Members
Posts: 394
Joined: 31-October 01
Member No.: 386



QUOTE (bryant @ Jun 29 2004, 07:34 PM)
Thanks for the cuesheet support; I'll give that a try myself. :) Is this something I could easily integrate into my foobar source?

Hi Dave,
Case made the source also available: foo_wavpack_src.zip

@ robUx4,
I've tried the beta2 makefile, but it didn't work. I did add the md5.c file to Makefile.wavpack and Makefile.wvunpack. Could you have a look?
Go to the top of the page
+Quote Post
robUx4
post Jun 30 2004, 10:27
Post #13


Matroska Developer


Group: Developer (Donating)
Posts: 410
Joined: 14-March 02
From: Paris
Member No.: 1519



Sure, as soon as I have a Linux system back working wink.gif


--------------------
http://www.matroska.org/ : the best vapourware / http://robux4.blogspot.com/
Go to the top of the page
+Quote Post
Speek
post Jun 30 2004, 10:34
Post #14





Group: Members
Posts: 394
Joined: 31-October 01
Member No.: 386



Good luck with it!
Go to the top of the page
+Quote Post
wizkid
post Jun 30 2004, 16:25
Post #15





Group: Members
Posts: 49
Joined: 6-February 03
From: Oslo
Member No.: 4880



The user documentation says that for every 14kbps over 320kbps the quantisation noise is lowered by about 1 dB. How does the -h and the new -x[n] option affect the hybrid quality? Also; does encoding to a 320kbps wv hybrid file result in a higher quality file than i.e. mp3 or ogg vorbis at the same bitrate?
Go to the top of the page
+Quote Post
wizkid
post Jul 1 2004, 00:26
Post #16





Group: Members
Posts: 49
Joined: 6-February 03
From: Oslo
Member No.: 4880



I guess my question put simple is this: Is it worth waiting 30 extra minutes using the -x switch when encoding an album in hybrid mode?
Go to the top of the page
+Quote Post
bryant
post Jul 1 2004, 01:20
Post #17


WavPack Developer


Group: Developer (Donating)
Posts: 1287
Joined: 3-January 02
From: San Francisco CA
Member No.: 900



QUOTE (wizkid @ Jun 30 2004, 03:26 PM)
I guess my question put simple is this: Is it worth waiting 30 extra minutes using the -x switch when encoding an album in hybrid mode?

The -x switch does improve the quality of the hybrid mode slightly (you can see this using the -n switch), but I don't think that alone would be worth the extra time. However, there are times when the -x switch makes a big difference (at least in the normal mode), like on this WavPack torture sample:

http://wavpack.com/Furious.wv

So, I would say that if have the time then it's worth using -x as an insurance against problem samples. If you don't have the time then it's not worth it... ;-)

As for comparing WavPack's lossy mode with other lossy codecs at high bitrates, this is very difficult because they are almost all transparent (to most people and with most samples). However, there is some evidence that WavPack (and the other hybrid encoder OptimFROG) perform better with transcoding.

Also, WavPack lossy is not subject to the accumulation of artifacts that you get with repeated encode / decode cycles. For example, you can do dozens of encode / decode cycles with WavPack lossy at 512 kbps and the result will still sound fine (maybe equivalent to a single cycle at 320 kbps). Do this with other codecs and the non-linearities in frequency response and time-domain smearing will make the sample unlistenable. I'm not sure this has any relevance to normal usage, but it does demonstrate a difference in the techniques.

Hope this helps...
Go to the top of the page
+Quote Post
wizkid
post Jul 1 2004, 12:50
Post #18





Group: Members
Posts: 49
Joined: 6-February 03
From: Oslo
Member No.: 4880



Yes that helped a bunch. Thanks smile.gif
Go to the top of the page
+Quote Post
robUx4
post Jul 1 2004, 20:40
Post #19


Matroska Developer


Group: Developer (Donating)
Posts: 410
Joined: 14-March 02
From: Paris
Member No.: 1519



The code that compiles on OS X and Linux. The MD5 is OK on Linux but not on OS X. I dunno if it's just due to a endianess problem or something else...


--------------------
http://www.matroska.org/ : the best vapourware / http://robux4.blogspot.com/
Go to the top of the page
+Quote Post
ChristianHJW
post Jul 1 2004, 22:15
Post #20


Matroska developer


Group: Members
Posts: 922
Joined: 29-September 01
Member No.: 74



@ David :

Where would our guys have to search if we want a simple lib to parse your framing ? Mosu thought about adding wavpack support to mkvtoolnix lately, but stopped it right after he learned from robux4 that there is both an encoder and decoder library now, but there is no explicit part of the code allowing to parse a Wavpack stream and mux the packets in matroska.

Can you help us on this ? Is there a parsing code already, and we just dont find it ?


--------------------
Support matroska - the bestest vapourware project ! http://www.matroska.org
Go to the top of the page
+Quote Post
Speek
post Jul 1 2004, 23:08
Post #21





Group: Members
Posts: 394
Joined: 31-October 01
Member No.: 386



Thanks robUx4. Two observations:

1. Wildcards don't work in Linux ('wavpack *.wav' doesn't work)
2. 'wvunpack -vm file.wv' gives this in Windows:
CODE
WVUNPACK  Hybrid Lossless Wavefile Decompressor  Win32 Version 4.0b3  28-06-04
Copyright (c) 1998 - 2004 Conifer Software.  All Rights Reserved.

original md5 signature: 783bc77ac749566e2870d2a002d96236
unpacked md5 signature: 783bc77ac749566e2870d2a002d96236
verified 05 - A Forest.wv in 19.71 secs (lossless, 50.75%)


and this in Linux:

CODE
WVUNPACK  Hybrid Lossless Wavefile Decompressor  Linux Version 4.0b3  28-06-04
Copyright (c) 1998 - 2004 Conifer Software.  All Rights Reserved.

unpacked md5 signature: b23456ef10fe4bacc64771ee8779fcdb
verified track_01.wv in 35.71 secs (lossless, 48.18%)

The original md5 signature is missing in Linux.
Go to the top of the page
+Quote Post
bryant
post Jul 2 2004, 05:59
Post #22


WavPack Developer


Group: Developer (Donating)
Posts: 1287
Joined: 3-January 02
From: San Francisco CA
Member No.: 900



Speek:
First of all, thanks to you and Case for making that foo_wavpack source available. I really appreciate it.

As for the Linux MD5 thing, I see that the files are not the same one. Have you tried both versions decoding the exact same file? I can't tell if the problem is that the Linux encoder is not putting the MD5 in the .wv file in the first place, or whether the decoder just can't see it. I assume you realize that you must use the -m when encoding to enable writing the MD5 into the file, that option is not just for displaying it.

BTW, thanks for your testing! smile.gif

ChristianHJW:
Not only can I help, but I want to help. If there's any functionality that you need that's not in there, I'm sure I can put it together very quickly.

As robUx4 says, there are library routines for both decoding existing WavPack files and for creating new WavPack files. The functions for creating WavPack files have no I/O calls in them; you simply pass raw audio data to the functions and they call you back with complete (no parsing required!) WavPack blocks (which I assume you guys just put into your container as is). You can put exactly as many samples in each block as you like because I provide a "flush" routine.

On the decode side, there is parsing code that is mixed with the file reading code and the code for seeking. However, I assumed that you would not use this because you would already know where the blocks started and ended because that's how I passed them to you in the first place. A couple calls to the decoder will unpack a single block into its raw samples again.

The only complication here is perhaps how multichannel audio is handled. On the encode side my functions expect the data to be interleaved through all channels (like a .wav file) and it automatically separates it into mono and stereo streams and packs them into their own blocks (all transparent to you). However, on decode your code would have to do the re-interleaving. I could provide some helping functionality here if needed.

But I think this is all very easy to accomplish; I just need to be made to understand exactly what you guys want. The WavPack code is done and ready to go.
Go to the top of the page
+Quote Post
Speek
post Jul 2 2004, 07:54
Post #23





Group: Members
Posts: 394
Joined: 31-October 01
Member No.: 386



QUOTE (bryant @ Jul 2 2004, 06:59 AM)
Speek:
First of all, thanks to you and Case for making that foo_wavpack source available. I really appreciate it.

As for the Linux MD5 thing, I see that the files are not the same one. Have you tried both versions decoding the exact same file? I can't tell if the problem is that the Linux encoder is not putting the MD5 in the .wv file in the first place, or whether the decoder just can't see it. I assume you realize that you must use the -m when encoding to enable writing the MD5 into the file, that option is not just for displaying it.

The foo_wavpack modification is entirely Case's work. I just supplied the link.

The MD5sum works fine in Linux too. I just forgot to add the -m switch when encoding.

One small thingy: in line 78 of wavpack.c you removed the '\n' at the end of the help text. This results in the prompt being on the same line as the last line of the help text in Linux.
Go to the top of the page
+Quote Post
robUx4
post Jul 2 2004, 13:33
Post #24


Matroska Developer


Group: Developer (Donating)
Posts: 410
Joined: 14-March 02
From: Paris
Member No.: 1519



QUOTE (Speek @ Jul 1 2004, 11:08 PM)
1. Wildcards don't work in Linux ('wavpack *.wav' doesn't work)

They do. But in Linux
CODE
wavpack *.wav
is different than
CODE
wavpack "*.wav"


--------------------
http://www.matroska.org/ : the best vapourware / http://robux4.blogspot.com/
Go to the top of the page
+Quote Post
Speek
post Jul 2 2004, 14:57
Post #25





Group: Members
Posts: 394
Joined: 31-October 01
Member No.: 386



Hmm, yes wavpack "*.wav" does work. But what's the difference? (or where can I read about that?)

I made a simple bash script to play wavpack files in Linux. It needs aplay which is part of alsa-utils and should be available on most modern Linux distributions.

Usage:
1. Copy this text in a text file named something like 'wavpack123' (you can make up your own filename) and save it.
2. Put it somewhere in the PATH (i.e. /usr/local/bin).
3. Make it executable (chmod +x wavpack123)
4. cd into directory with wavpack files and do 'wavpack123 *' or 'wavpack123 filename' or 'wavpack123 file1 file2 file3' or 'wavpack123 file[1-3]'.
5. Improve the script, because I'm just a beginner and I'm sure there are may Linux users here that can do better smile.gif

CODE
#!/bin/bash

if [ "$1" = "" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]
then
  echo "Usage: `basename $0` <files>. Wildcards can be used."
else
  until [ -z "$1" ]
  do
     if [ "$TERM" != "linux" ]
     then
        # We're on a X terminal (xterm, rxvt, etc.). Put filename in title bar.
        title=`basename "$1" .wv`
        echo -n -e "\e]2;$title\a"
     fi
     wvunpack "$1" - | aplay -q
     shift
  done
 
  if [ "$TERM" != "linux" ]
  then  
     echo -n -e "\e]2;Finished playing\a"
  fi
fi

exit 0


This post has been edited by Speek: Jul 2 2004, 15:08
Go to the top of the page
+Quote Post

3 Pages V   1 2 3 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 16th April 2014 - 23:36