lossyWAV 1.3.0, Copyright (C) 2007-2011 Nick Currie. Copyleft.This program is free software: you can redistribute it and/or modify it underthe terms of the GNU General Public License as published by the Free SoftwareFoundation, either version 3 of the License, or (at your option) any laterversion.This program is distributed in the hope that it will be useful,but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along withthis program. If not, see <http://www.gnu.org/licenses/>.Process Description:lossyWAV is a near lossless audio processor which dynamically reduces the bitdepth of the signal on a block-by-block basis. Bitdepth reduction adds noiseto the processed output. The amount of permissible added noise is based onanalysis of the signal levels in the default frequency range 20Hz to 16kHz.If signals above the upper limiting frequency are at an even lower level, theycan be swamped by the added noise. This is usually inaudible, but the behaviourcan be changed by specifying a different --limit (in the range 10kHz to 20kHz).For many audio signals there is little content at very high frequencies andforcing lossyWAV to keep the added noise level lower than the content at thesefrequencies can increase the bitrate dramatically for no perceptible benefit.The noise added by the process is shaped using an adaptive method provided bySebastian Gesemann. This method, as implemented in lossyWAV, aims to use thesignal itself as the basis of the filter used for noise shaping. Adaptive noiseshaping is enabled by default.Usage : lossyWAV <input wav file> <options>Example : lossyWAV musicfile.wavQuality Options:-q, --quality <t> where t is one of the following (default = standard): I, insane highest quality output, suitable for transcoding; E, extreme higher quality output, suitable for transcoding; H, high high quality output, suitable for transcoding; S, standard default quality output, considered to be transparent; C, economic intermediate quality output, likely to be transparent; P, portable good quality output for DAP use, may not be transparent; X, extraportable lowest quality output, not fully transparent.Standard Options:-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.-w, --writetolog create (or add to) lossyWAV.log in the output directory.Advanced Options:- take WAV input from STDIN.-c, --check check if WAV file has already been processed; default=off. errorlevel=16 if already processed, 0 if not.-q, --quality <n> quality preset (-5.0<=n<=10.0); (-5=lowest, 10=highest; default=2.5; I=10; E=7.5; H=5; S=2.5; C=0; P=-2.5; X=-5).--, --stdout write WAV output to STDOUT. --stdinname <t> pseudo filename to use when input from STDIN.Advanced Quality Options:-A, --adaptive <n/t> modify settings for Sebastian Gesemann's adaptive noise shaping method. takes a parameter to set the order of the FIR filter, (32<=n<=96; default=64; multiple of 8 only); "OFF" to disable adaptive shaping; "NOWARP" to disable default frequency warping;-a, --analyses <n> set number of FFT analysis lengths, (2<=n<=6; default=3, i.e. 32, 64 & 1024 samples. n=2, remove 32 sample FFT; n>3 add 512; n>4, add 256; n>6, add 128) nb. FFT lengths. stated are for 44.1/48kHz audio, higher sample rates will automatically increase all FFT lengths as required.-l, --limit <n> set upper frequency limit to be used in analyses to n Hz; (10000<=n<=20000; default=16000). --linkchannels revert to original single bits-to-remove value for all channels rather than channel dependent bits-to-remove. --maxclips <n> set max. number of acceptable clips per channel per block; (0<=n<=16; default=3,3,3,3,3,2,2,2,2,2,1,1,1,0,0,0).-m, --midside analyse 2 channel audio for mid/side content. --nodccorrect disable DC correction of audio data prior to FFT analysis, default=on; (DC offset calculated per FFT data set). --scale <n> factor to scale audio by; (0.0625<n<=8.0; default=1).-s, --shaping [n] enable fixed noise shaping, takes optional parameter [n] to allow user defined shaping proportion (0.0<=n<=1.0), otherwise default to quality setting dependent value. Disables adaptive noise shaping. --static <n> set minimum-bits-to-keep-static to n bits (default=6; 7<=n<=28, limited to bits-per-sample - 4).-U, --underlap <n> enable underlap mode to increase number of FFT analyses performed at each FFT length, (n = 2, 4 or 8, default=2).Output Options: --bitdist show distrubution of bits to remove. --blockdist show distribution of lowest / highest significant bit of input codec-blocks and bit-removed codec-blocks.-d, --detail enable per block per channel bits-to-remove data display.-F, --freqdist enable frequency analysis display of input data.-H, --histogram show sample value histogram (input, lossy and correction). --longdist show long frequency distribution data (input/lossy/lwcdf). --perchannel show selected distribution data per channel.-p, --postanalyse enable frequency analysis display of output and correction data in addition to input data. --sampledist show distribution of lowest / highest significant bit of input samples and bit-removed samples. --spread [full] show detailed [more detailed] results from the spreading/ averaging algorithm.-W, --width <n> select width of output options (79<=n<=255).System Options:-B, --below set process priority to below normal. --low set process priority to low.-N, --nowarnings suppress lossyWAV warnings.-Q, --quiet significantly reduce screen output.-S, --silent no screen output.Special thanks go to:David Robinson for the publication of his lossyFLAC method, guidance, and the motivation to implement his 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 adaptive noise shaping method and the amount of help received in implementing it and also for the basis of the fixed noise shaping method.Matteo Frigo and for libfftw3-3.dll contained in the FFTW distributionSteven G Johnson (v3.2.1 or v3.2.2).Mark G Beckett for the Delphi unit that provides an interface to the(Univ. of Edinburgh) relevant fftw routines in libfftw3-3.dll.Don Cross for the Complex-FFT algorithm originally used.
Encoder: c:\windows\system32\cmd.exeExtension: lossy.flacParameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\flac - -b 512 -5 -f -o%d --ignore-chunk-sizesFormat is: lossless or hybridHighest BPS mode supported: 24
Encoder: c:\windows\system32\cmd.exeExtension: lossy.takParameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\takc -e -p2m -fsl512 -ihs - %dFormat is: lossless or hybridHighest BPS mode supported: 24
Encoder: c:\windows\system32\cmd.exeExtension: lossy.wvParameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\wavpack -hm --blocksize=512 --merge-blocks -i - %dFormat is: lossless or hybridHighest BPS mode supported: 24
Encoder: c:\windows\system32\cmd.exeExtension: lossy.wmaParameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\wmaencode.exe - %d --codec lsl --ignorelengthFormat is: lossless or hybridHighest BPS mode supported: 24
Nick.C: Do you play FLAC/LossyWAV with your Android HD2? If so, what application do you use to play them? Regards.
Nice work! For what purposes do you think this will be most commonly used?
Quote from: punkrockdude on 11 August, 2011, 11:11:15 AMNick.C: Do you play FLAC/LossyWAV with your Android HD2? If so, what application do you use to play them? Regards.I use deadbeef - it's a nice simple player.
I tried it out, but didn´t really get it to work, it just made lossy.wav that was the same size (or a bit larger i think) as the original wave.
Quote from: zerowalker on 16 August, 2011, 11:16:14 PMI tried it out, but didn´t really get it to work, it just made lossy.wav that was the same size (or a bit larger i think) as the original wave.This is the expected behavior. However, what's not obvious is that the resulting WAV file has redundancies (lots of zeros in the less significant bits) that lossless compressors can take advantage of to get much better compression than they would on the original WAV file.The sizes that you should be comparing are the original WAV files compressed with FLAC and the lossy.wav files compressed with FLAC.
The settings for foobar2000 conversion to lossyFLAC, lossyWV and lossyTak are in post #2.
I updated from 1.1.0c (which the wiki currently points to) to 1.3.0and detected that it processes my test file 6 times slower than 1.1.0c (5x instead of 33x). Is this known? What is the reason? Thank you.