Difference between revisions of "LossyWAV"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
(History)
Line 4: Line 4:
 
| caption =  
 
| caption =  
 
| maintainer = [http://www.hydrogenaudio.org/forums/index.php?showuser=42400 Nick.C]
 
| maintainer = [http://www.hydrogenaudio.org/forums/index.php?showuser=42400 Nick.C]
| stable_release = 1.0.0b
+
| stable_release = 1.1.0
| preview_release = 1.0.1u RC1
+
| preview_release = 1.0.1x RC4
 
| operating_system = [[Wikipedia:Microsoft Windows|Windows]]
 
| operating_system = [[Wikipedia:Microsoft Windows|Windows]]
 
| use = [[Wikipedia:Digital signal processing|Digital signal processing]]
 
| use = [[Wikipedia:Digital signal processing|Digital signal processing]]
Line 15: Line 15:
  
 
==History==
 
==History==
lossyWAV is based on the lossyFLAC idea proposed by [http://www.hydrogenaudio.org/forums/index.php?showuser=409 David Robinson] at Hydrogenaudio, which is a method of carefully reducing the bitdepth of samples, therefore utilising the wasted bits feature of the FLAC lossless codec. The aim is to transparently reduce audio bit depth (by making some lower significant bits (LSB's) zero), consequently taking advantage of FLAC's detection of consistently-zeroed lower significant bits within each single frame and significantly increasing coding efficiency.[http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=55522&view=findpost&p=498179] In this way the user can enjoy audio encoded using the same codec (which may be all important from a hardware compatibility perspective) at a reduced bitrate compared to the lossless version.
+
lossyWAV is based on the lossyFLAC idea proposed by [http://www.hydrogenaudio.org/forums/index.php?showuser=409 David Robinson] at Hydrogenaudio, which is a method of carefully reducing the bitdepth of samples, therefore utilising the wasted bits feature of the FLAC lossless codec. The aim is to transparently reduce audio bit depth (by making some lower significant bits (lsb's) zero), consequently taking advantage of FLAC's detection of consistently-zeroed lower significant bits within each single frame and significantly increasing coding efficiency.[http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=55522&view=findpost&p=498179] In this way the user can enjoy audio encoded using the same codec (which may be all important from a hardware compatibility perspective) at a reduced bitrate compared to the lossless version.
  
 
[http://www.hydrogenaudio.org/forums/index.php?showuser=42400 Nick Currie] ported the original [[Wikipedia:MATLAB|MATLAB]] implementation to [[Wikipedia:Borland Delphi|Delphi]] (Many thanks [[Wikipedia:CodeGear|CodeGear]] for Turbo Explorer!!) with a liberal sprinkling of [[Wikipedia:IA-32|IA-32]] and [[Wikipedia:x87|x87]] Assembly Language for speed.
 
[http://www.hydrogenaudio.org/forums/index.php?showuser=42400 Nick Currie] ported the original [[Wikipedia:MATLAB|MATLAB]] implementation to [[Wikipedia:Borland Delphi|Delphi]] (Many thanks [[Wikipedia:CodeGear|CodeGear]] for Turbo Explorer!!) with a liberal sprinkling of [[Wikipedia:IA-32|IA-32]] and [[Wikipedia:x87|x87]] Assembly Language for speed.
Line 25: Line 25:
 
==Indicative bitrate reduction==
 
==Indicative bitrate reduction==
 
It must be stressed that lossyWAV is a pure [[Wikipedia:variable bitrate|variable bitrate]] pre-processor. Bits-to-remove from the audio data are calculated on a block-by-block basis (codec-block length = 512 samples, 11.6msec @ 44.1kHz) using overlapping [[Wikipedia:fast Fourier transform|fast Fourier Transform]] (FFT) analyses of at least two lengths (default quality preset (-q 5) = 32, 64 & 1024 [[Wikipedia:Sampling %28signal processing%29|samples]]). After some manipulation, the results of each FFT analysis for a specific codec-block are then grouped and the minimum value used to determine bits-to-remove for the whole codec-block. Bit removal adds [[Wikipedia:white noise|white noise]] to the output, however the level of the added noise associated with the removal of a number of bits has been pre-calculated and the number of bits to remove will depend on the level of the noise floor of the codec-block in question. Each sample in the codec-block is then rounded such that the first <bits-to-remove> lsb's are zero. In this way the wasted bits feature of [[FLAC]] et al is exploited.
 
It must be stressed that lossyWAV is a pure [[Wikipedia:variable bitrate|variable bitrate]] pre-processor. Bits-to-remove from the audio data are calculated on a block-by-block basis (codec-block length = 512 samples, 11.6msec @ 44.1kHz) using overlapping [[Wikipedia:fast Fourier transform|fast Fourier Transform]] (FFT) analyses of at least two lengths (default quality preset (-q 5) = 32, 64 & 1024 [[Wikipedia:Sampling %28signal processing%29|samples]]). After some manipulation, the results of each FFT analysis for a specific codec-block are then grouped and the minimum value used to determine bits-to-remove for the whole codec-block. Bit removal adds [[Wikipedia:white noise|white noise]] to the output, however the level of the added noise associated with the removal of a number of bits has been pre-calculated and the number of bits to remove will depend on the level of the noise floor of the codec-block in question. Each sample in the codec-block is then rounded such that the first <bits-to-remove> lsb's are zero. In this way the wasted bits feature of [[FLAC]] et al is exploited.
 
{| class="wikitable" style="text-align:center"
 
|-
 
!lossyWAV Test Set
 
!Version
 
!FLAC -8
 
!-q 10
 
!-q 9
 
!-q 8
 
!-q 7
 
!-q 6
 
!-q 5
 
!-q 4
 
!-q 3
 
!-q 2
 
!-q 1
 
!-q 0
 
|-
 
!53 sample "problem" set
 
| 1.0.0b
 
| 784 kbit/s
 
| 654 kbit/s
 
| 626 kbit/s
 
| 596 kbit/s
 
| 565 kbit/s
 
| 534 kbit/s
 
| 501 kbit/s
 
| 470 kbit/s
 
| 447 kbit/s
 
| 408 kbit/s
 
| 366 kbit/s
 
| 329 kbit/s
 
|}
 
  
 
{| class="wikitable" style="text-align:center"
 
{| class="wikitable" style="text-align:center"
Line 70: Line 37:
 
!-q 0
 
!-q 0
 
|-
 
|-
!55 sample "problem" set
+
!53 sample "problem" set
| 1.0.1t
+
| 1.1.0
| 780 kbit/s
+
| 781 kbit/s
| 656 kbit/s
+
| 654 kbit/s
 
| 583 kbit/s
 
| 583 kbit/s
 
| 508 kbit/s
 
| 508 kbit/s
Line 79: Line 46:
 
| 321 kbit/s
 
| 321 kbit/s
 
|-
 
|-
!10 album test set
+
!10 Album Test Set
| 1.0.1t
+
| 1.1.0
 
| 854 kbit/s
 
| 854 kbit/s
 
| 632 kbit/s
 
| 632 kbit/s
 
| 548 kbit/s
 
| 548 kbit/s
| 462 kbit/s
+
| 463 kbit/s
 
| 376 kbit/s
 
| 376 kbit/s
 
| 285 kbit/s
 
| 285 kbit/s
Line 100: Line 67:
  
 
==Quality presets==
 
==Quality presets==
*-q 10 to -q 8: Highest quality presets, disc space-saving alternative to lossless archiving for large audio collections, considered to be suitable for transcoding to other lossy codecs;
 
*-q 7 to -q 6: High quality presets, disc space-saving alternative to lossless archiving for large audio collections;
 
*-q 5: Default preset, generally accepted to be transparent;
 
*-q 4 to -q 0: DAP quality presets of reducing bitrate with reducing quality preset number, for usage on a compatible [[Wikipedia:Digital audio player|DAP]]. [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=56129&view=findpost&p=531316]
 
 
New quality preset synonyms introduced at 1.0.1j/k (and -q <n> quality parameter moved to advanced settings):
 
 
*--insane: (-q 10) Highest quality preset, generally considered to be excessive;
 
*--insane: (-q 10) Highest quality preset, generally considered to be excessive;
 
*--extreme: (-q 7.5) High quality preset, disc space-saving alternative to lossless archiving for large audio collections, considered to be suitable for transcoding to other lossy codecs;
 
*--extreme: (-q 7.5) High quality preset, disc space-saving alternative to lossless archiving for large audio collections, considered to be suitable for transcoding to other lossy codecs;
Line 111: Line 72:
 
*--portable: (-q 2.5) DAP quality preset for use on a compatible [[Wikipedia:Digital audio player|DAP]]. [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=56129&view=findpost&p=531316]
 
*--portable: (-q 2.5) DAP quality preset for use on a compatible [[Wikipedia:Digital audio player|DAP]]. [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=56129&view=findpost&p=531316]
  
All tuning has been performed on quality preset -q 5 with higher presets being more conservative. Quality preset -q 5 is generally accepted to be (and from testing so far is) transparent. If you find a track which -q 5 fails to achieve transparency after processing, please post a sample (no more than 30 seconds) in the development thread.
+
All tuning has been performed on quality preset --standard with higher presets being more conservative. Quality preset --standard is generally accepted to be (and from testing so far is) transparent. If you find a track which --standard fails to achieve transparency after processing, please post a sample (no more than 30 seconds) in the development thread.
  
 
==Supported input formats==
 
==Supported input formats==
Line 192: Line 153:
 
===Application settings===
 
===Application settings===
 
<pre>
 
<pre>
lossyWAV 1.0.0b, Copyright (C) 2007,2008 Nick Currie. Copyleft.
+
lossyWAV 1.1.0, Copyright (C) 2007,2008 Nick Currie. Copyleft.
  
 
This program is free software: you can redistribute it and/or modify it under
 
This program is free software: you can redistribute it and/or modify it under
Line 212: Line 173:
 
Quality Options:
 
Quality Options:
  
-q, --quality <n>  quality preset (10=highest quality, 0=lowest bitrate;
+
-I, --insane        highest quality output, suitable for transcoding;
                    -q 5 is generally accepted to be transparent)
+
-E, --extreme      high quality output, also suitable for transcoding;
                    default=-q 5.
+
-S, --standard      default quality output, considered to be transparent;
 +
-P, --portable      good quality output for DAP use. Not considered to be fully
 +
                    transparent, but considered fit for its intended purpose.
  
 
Standard Options:
 
Standard Options:
Line 225: Line 188:
 
-L, --longhelp      display extended help.
 
-L, --longhelp      display extended help.
 
-M, --merge        merge existing lossy.wav and lwcdf.wav files.
 
-M, --merge        merge existing lossy.wav and lwcdf.wav files.
-N, --noclips      set allowable number of clips / channel / codec block to 0;
+
-o, --outdir <t>   destination directory for the output file(s).
                    default=3,3,3,3,2,1,0,0,0,0,0 (-q 0 to -q 10)
+
-o, --outdir <dir> destination directory for the output file(s).
+
 
-v, --version      display the lossyWAV version number.
 
-v, --version      display the lossyWAV version number.
  
 
Special thanks:
 
Special thanks:
  
David Robinson for the method itself and motivation to implement it.
+
David Robinson     for the publication of his lossyFLAC method, guidance, and
Don Cross for the Complex-FFT algorithm used.
+
                    the motivation to implement the method as lossyWAV.
Horst Albrecht for valuable tuning input and feedback.</pre>
+
Horst Albrecht      for ABX testing, valuable support in tuning the internal
 +
                    presets, constructive criticism and all the feedback.
 +
Sebastian Gesemann  for the noise shaping coefficients and help in using them
 +
                    in the lossyWAV noise shaping implementation.
 +
Don Cross           for the Complex-FFT algorithm used.</pre>
 
===Example Foobar2000 converter settings===
 
===Example Foobar2000 converter settings===
[[Image:lossyWAV_fb2k_CLI_Settings.PNG]]
+
lossyFLAC settings:<pre>Encoder: c:\windows\system32\cmd.exe
 +
Extension : lossy.flac
 +
Parameters: /d /c c:\"program files"\bin\lossywav - --standard --silent --stdout|
 +
            c:\"program files"\bin\flac - -b 512 -5 -f -o%d
 +
Format is : lossless or hybrid
 +
Highest BPS mode supported: 24 </pre>
  
===Example flossy.bat file called from Foobar2000===
+
lossyTAK settings:<pre>Encoder: c:\windows\system32\cmd.exe
<pre>
+
Extension  : lossy.tak
@echo off
+
Parameters : /d /c c:\"program files"\bin\lossywav - --standard --silent --stdout|
z:\bin\lossyWAV %1 %3 %4 %5 %6 %7 %8 %9 --below --nowarnings --quiet
+
            c:\"program files"\bin\takc -e -p2m -fsl512 -ihs - %d
z:\bin\flac -5 -f -b 512 "%~N1.lossy.wav" -o"%~N2.flac"  
+
Format is: lossless or hybrid
del "%~N1.lossy.wav"
+
Highest BPS mode supported: 24</pre>
</pre>
+
 
 +
lossyWV settings:<pre>Encoder: c:\windows\system32\cmd.exe
 +
Extension : lossy.wv
 +
Parameters: /d /c c:\"program files"\bin\lossywav - --standard --silent --stdout|
 +
            c:\"program files"\bin\wavpack -hm --blocksize=512 --merge-blocks -i - %d
 +
Format is : lossless or hybrid
 +
Highest BPS mode supported: 24</pre>
  
 +
There is a known problem within foobar2000 (although more likely to do with cmd.exe itself) when running an executable within the cmd.exe command line from a path which includes spaces. The suggested fix for this is to enclose the element of the path which contains spaces within double quotation marks ("), e.g. c:\"program files"\directory_where_executable_is\executable_name
 
==Frequently asked questions==
 
==Frequently asked questions==
 
*'''Question:''' Why is the ".wav" file extension used?
 
*'''Question:''' Why is the ".wav" file extension used?
Line 276: Line 253:
  
 
==External links==
 
==External links==
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=55522&st=0 Original lossyFLAC thread] Where David Robinson (Replay Gain developer) introduces the method and a MATLAB implementation.
+
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=55522&st=0 Original lossyFLAC thread] - Introduction of the concept by David Robinson (Replay Gain developer) and initial development;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=56129 Original development thread up to 1.0.0b release]
+
 
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=63225 lossyWAV 1.0.0b release thread]
+
 
 +
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=56129 lossyWAV Development thread] - Conversion of the original Matlab script to Delphi and evolution of the method;
 +
*[http://www.hydrogenaudio.org/forums/index.php?act=ST&f=32&t=63225 lossyWAV 1.0.0 release thread] - Release of version 1.0.0b on 13 May 2008;
 +
 
 +
 
 +
*[http://www.hydrogenaudio.org/forums/index.php?act=ST&f=32&t=63254 lossyWAV 1.1.0 development thread] - Latest release candidate and beta version in the first post;
 +
*[http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=64617&view=findpost&p=576670 lossyWAV 1.1.0 release thread] - Release of version 1.1.0 on 12 July 2008;
  
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=63254 Current development thread] You will find the latest release candidate and latest beta version in post #1 of this thread.
 
  
 +
*[http://wiki.hydrogenaudio.org/index.php?title=LossyWAV lossyWAV wiki entry at hydrogenaudio.org]
 
[[Category:Software]]
 
[[Category:Software]]
 
[[Category:Encoder/Decoder]]
 
[[Category:Encoder/Decoder]]
 
[[Category:Lossy]]
 
[[Category:Lossy]]

Revision as of 07:30, 14 July 2008

lossyWAV
{{{logo}}}

Developer(s) Nick.C
Release information
Initial release {{{released}}}
Stable release 1.1.0
Preview release 1.0.1x RC4
Compatibility
Operating system Windows
Additional information
Use Digital signal processing
License GNU GPL
Website Hydrogenaudio

lossyWAV is a new free lossy pre-processor for PCM audio contained in the WAV file format. It reduces bit depth of the input signal, which, when used in conjunction with certain lossless codecs, reduces the bitrate of the encoded file significantly compared to unpreprocessed compression. lossyWAV's primary goal is to maintain transparency with a high degree of confidence when processing any audio data.

History

lossyWAV is based on the lossyFLAC idea proposed by David Robinson at Hydrogenaudio, which is a method of carefully reducing the bitdepth of samples, therefore utilising the wasted bits feature of the FLAC lossless codec. The aim is to transparently reduce audio bit depth (by making some lower significant bits (lsb's) zero), consequently taking advantage of FLAC's detection of consistently-zeroed lower significant bits within each single frame and significantly increasing coding efficiency.[1] In this way the user can enjoy audio encoded using the same codec (which may be all important from a hardware compatibility perspective) at a reduced bitrate compared to the lossless version.

Nick Currie ported the original MATLAB implementation to Delphi (Many thanks CodeGear for Turbo Explorer!!) with a liberal sprinkling of IA-32 and x87 Assembly Language for speed.

Subsequently, lossyFLAC proved itself to work with other lossless codecs, so the application name was changed to lossyWAV.

Since then, Nick has heavily developed and built upon lossyWAV, with valuable tuning performed by Horst Albrecht at Hydrogenaudio. Although the current lossyWAV implementation has built on David's original method, the method itself still very much belongs to its author.

Indicative bitrate reduction

It must be stressed that lossyWAV is a pure variable bitrate pre-processor. Bits-to-remove from the audio data are calculated on a block-by-block basis (codec-block length = 512 samples, 11.6msec @ 44.1kHz) using overlapping fast Fourier Transform (FFT) analyses of at least two lengths (default quality preset (-q 5) = 32, 64 & 1024 samples). After some manipulation, the results of each FFT analysis for a specific codec-block are then grouped and the minimum value used to determine bits-to-remove for the whole codec-block. Bit removal adds white noise to the output, however the level of the added noise associated with the removal of a number of bits has been pre-calculated and the number of bits to remove will depend on the level of the noise floor of the codec-block in question. Each sample in the codec-block is then rounded such that the first <bits-to-remove> lsb's are zero. In this way the wasted bits feature of FLAC et al is exploited.

lossyWAV Test Set Version FLAC -8 --insane --extreme --standard --portable -q 0
53 sample "problem" set 1.1.0 781 kbit/s 654 kbit/s 583 kbit/s 508 kbit/s 425 kbit/s 321 kbit/s
10 Album Test Set 1.1.0 854 kbit/s 632 kbit/s 548 kbit/s 463 kbit/s 376 kbit/s 285 kbit/s

File identification

lossyWAV-processed WAV files are named with a double filename extension, .lossy.wav, to make them instantly identifiable. e.g. ".lossy.flac" would indicate an audio file which was processed using lossyWAV, and subsequently encoded using FLAC.[2]

The --correction parameter is used when processing to create a correction file which is named with the .lwcdf.wav double filename extension. When "added" to the corresponding .lossy.wav, using the --merge parameter, the original file will be reconstituted.

Combinations of lossyWAV with each specific encoder are referred to as lossyX, where X is an abbreviation of the lossless codec name. Combination names are listed in the "known supported codecs" section below.

lossyWAV inserts a variable-length 'fact' chunk into the WAV file immediately after the 'fmt ' chunk. This takes the form:
fact/<size>/lossyWAV x.y.z @ dd/mm/yyyy hh:mm:ss, -q 5
Where the version, date & time and user settings are copied. Additionally, if a lossyWAV 'fact' chunk is found in a file, the processing will be halted (exit code = 16) to prevent re-processing of an already processed file.

The -check parameter can be used to determine whether a file has previously been processed without trying to process it, exit code = 16 if already processed; exit code = 0 if not.

Quality presets

  • --insane: (-q 10) Highest quality preset, generally considered to be excessive;
  • --extreme: (-q 7.5) High quality preset, disc space-saving alternative to lossless archiving for large audio collections, considered to be suitable for transcoding to other lossy codecs;
  • --standard: (-q 5) Default preset, generally accepted to be transparent;
  • --portable: (-q 2.5) DAP quality preset for use on a compatible DAP. [3]

All tuning has been performed on quality preset --standard with higher presets being more conservative. Quality preset --standard is generally accepted to be (and from testing so far is) transparent. If you find a track which --standard fails to achieve transparency after processing, please post a sample (no more than 30 seconds) in the development thread.

Supported input formats

  • WAV: 9-bit to 32-bit integer; 1 to 8 channels; sample rate ≥ 32kHz PCM. Very high sample rates (>48kHz) have not been extensively tested. Tunings have been focussed on 16-bit, 44.1kHz samples (i.e. CD PCM).

Codec compatibility

Codec Supported Encoder parameters Combination name
Apple Lossless No
FLAC Yes -5 -b 512 --keep-foreign-metadata lossyFLAC
LA No
LPAC Yes -b512 lossyLPAC
Monkey's Audio No
MPEG-4 ALS Yes -l -n512 lossyALS
OptimFROG No
TAK Yes -fsl512 lossyTAK
TTA No
WavPack Yes --blocksize=512 lossyWV
WMA Lossless Yes lossyWMALSL

There is also evidence — so-called "Bit Shifting" — to suggest that lossyWAV may work with MLP, but this remains untested due to prohibitive prices of encoders.

A comparison of portable media players is here, which shows FLAC and WMA Lossless compatibility among listed players. Any player supported by Rockbox can use FLAC or WavPack files after installing Rockbox.

Important note

NB: when encoding using a lossless codec, please ensure that the block size of the lossless codec matches that of lossyWAV (default = 512 samples). If this is not done then the lossless encoding of the processed WAV file will (almost certainly) be larger than it would otherwise have been. This is achieved by adding the "Encoder Parameters" in the table above to the command line of the lossless codec in question.

Bonus feature

Another, possibly not obvious, feature of lossyWAV is that the processed output can be "transcoded" from one lossless codec to another lossless codec with absolutely no loss of quality whatsoever. This is solely due to the fact that lossyWAV output is designed to be losslessly encoded - something that lossless codecs do very well indeed.

Using lossyWAV

Application settings

lossyWAV 1.1.0, Copyright (C) 2007,2008 Nick Currie. Copyleft.

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program.  If not, see <http://www.gnu.org/licenses/>.

Usage   : lossyWAV <input wav file> <options>

Example : lossyWAV musicfile.wav

Quality Options:

-I, --insane        highest quality output, suitable for transcoding;
-E, --extreme       high quality output, also suitable for transcoding;
-S, --standard      default quality output, considered to be transparent;
-P, --portable      good quality output for DAP use. Not considered to be fully
                    transparent, but considered fit for its intended purpose.

Standard Options:

-c, --check         check if WAV file has already been processed; default=off.
                    errorlevel=16 if already processed, 0 if not.
-C, --correction    write correction file for processed WAV file; default=off.
-f, --force         forcibly over-write output file if it exists; default=off.
-h, --help          display help.
-L, --longhelp      display extended help.
-M, --merge         merge existing lossy.wav and lwcdf.wav files.
-o, --outdir <t>    destination directory for the output file(s).
-v, --version       display the lossyWAV version number.

Special thanks:

David Robinson      for the publication of his lossyFLAC method, guidance, and
                    the motivation to implement the method as lossyWAV.
Horst Albrecht      for ABX testing, valuable support in tuning the internal
                    presets, constructive criticism and all the feedback.
Sebastian Gesemann  for the noise shaping coefficients and help in using them
                    in the lossyWAV noise shaping implementation.
Don Cross           for the Complex-FFT algorithm used.

Example Foobar2000 converter settings

lossyFLAC settings:
Encoder: c:\windows\system32\cmd.exe
Extension : lossy.flac
Parameters: /d /c c:\"program files"\bin\lossywav - --standard --silent --stdout|
            c:\"program files"\bin\flac - -b 512 -5 -f -o%d
Format is : lossless or hybrid
Highest BPS mode supported: 24 
lossyTAK settings:
Encoder: c:\windows\system32\cmd.exe
Extension  : lossy.tak
Parameters : /d /c c:\"program files"\bin\lossywav - --standard --silent --stdout|
             c:\"program files"\bin\takc -e -p2m -fsl512 -ihs - %d
Format is: lossless or hybrid
Highest BPS mode supported: 24
lossyWV settings:
Encoder: c:\windows\system32\cmd.exe
Extension : lossy.wv
Parameters: /d /c c:\"program files"\bin\lossywav - --standard --silent --stdout|
            c:\"program files"\bin\wavpack -hm --blocksize=512 --merge-blocks -i - %d
Format is : lossless or hybrid
Highest BPS mode supported: 24

There is a known problem within foobar2000 (although more likely to do with cmd.exe itself) when running an executable within the cmd.exe command line from a path which includes spaces. The suggested fix for this is to enclose the element of the path which contains spaces within double quotation marks ("), e.g. c:\"program files"\directory_where_executable_is\executable_name

Frequently asked questions

  • Question: Why is the ".wav" file extension used?
  • Answer: The ".wav" file extension is used because lossyWAV is a digital signal processor and not a codec. No decoding is required for any program to play a WAV file which has been processed with lossyWAV as it remains compliant with the RIFF WAVE format.
  • Question: Why create a processor which means that I cannot be sure that a lossless file is truly lossless?
  • Answer: Unless one creates the lossless file personally, one can never be completely sure that the file is indeed lossless. e.g. If a WAV file is encoded to mp3 and then transcoded to a lossless codec, how can this pre-processing be easily determined?
  • Question: Is it VBR?
  • Short answer: Yes.
  • Question: Do I need to re-process to change lossless codecs?
  • Short answer: No.
  • Question: Is it transparent?
  • Short answer: At preset --standard, almost certainly.
  • Question: Is it lossless?
  • Short answer: No.
  • Question: Will it ever have a CBR mode?
  • Short answer: No.
  • Question: Why should I use this?
  • Answer:
  • high quality
  • extremely low chance of audible artifacts
  • reasonable bitrates
  • usable with unmodified, established lossless formats.

External links