IPB

Welcome Guest ( Log In | Register )

lossyWAV 1.2.0 released, Added noise WAV bitdepth reduction method
Nick.C
post Dec 16 2009, 23:58
Post #1


lossyWAV Developer


Group: Developer
Posts: 1813
Joined: 11-April 07
From: Wherever here is
Member No.: 42400



lossyWAV 1.2.0 is released.

lossyWAV is a near lossless audio processor which dynamically reduces the bitdepth of the signal on a block-by-block basis. Bitdepth reduction adds white noise to the processed output.

Changes from 1.1.0c:
  • Now compatible with FFTW (requires libfftw3-3.dll to exist on the path);
  • Spreading function changed;
  • Noise shaping now off by default - can be switched on to automatic or user specified value;
  • Introduction of --altpreset parameter which modifies internal presets and lowers upper frequency limit used in determining noise floor to 15.16kHz;
  • Major code cleanup.
Download [maintenance release 1.2.0b]:

This post has been edited by Nick.C: Dec 2 2010, 21:48


--------------------
lossyWAV -q X -a 4 --feedback 4| FLAC -8 ~= 320kbps
Go to the top of the page
+Quote Post
 
Start new topic
Replies
Nick.C
post Dec 17 2009, 00:13
Post #2


lossyWAV Developer


Group: Developer
Posts: 1813
Joined: 11-April 07
From: Wherever here is
Member No.: 42400



CODE
lossyWAV 1.2.0, Copyright 2007,2008,2009 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/>.

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 white
noise to the processed output. The amount of permissible added noise is based
on analysis 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, they
can be swamped by the added noise. This is usually inaudible, but the behaviour
can 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 and
forcing lossyWAV to keep the added noise level lower than the content at these
frequencies can increase the bitrate dramatically for no perceptible benefit.

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 fully transparent.
-Z, --zero           lowest quality preset, probably contains artifacts.

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:

-                    if filename="-" then WAV input is taken from STDIN.
-t, --altpreset      enable alternative preset model which changes default
                     behaviour regarding limit and shaping (if selected).
-a, --analyses       set number of FFT analysis lengths, (3<=n<=5), default=2.
    --blockdist      show distribution of lowest / highest significant bit of
                     input codec-blocks and bit-removed codec-blocks.
-c, --check          check if WAV file has already been processed; default=off.
                     errorlevel=16 if already processed, 0 if not.
-i, --impulse        force use of additional shorter FFT analysis; default=off,
                     automatic for -q 3 and above.
-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 codec
                     block. (0<=n<=16) Default = (3,3,3,3,2,1,0,0,0,0,0).
-m, --midside        analyse 2 channel audio for mid/side content.
-q, --quality <n>    quality preset (0.000<=n<=10.000); (10=highest, 0=lowest;
                     default = --standard = 5; --insane = 10; --extreme = 7.5;
                     --portable = 2.5; --zero = 0)
    --sampledist     show distribution of lowest / highest significant bit of
                     input samples and bit-removed samples.
    --scale <n>      scaling factor from WaveGain, etc; (0.0<n<=8.0),default=1.
-s, --shaping [n]    enable fixed noise shaping, automatic if no value input.
                     (0.00<=n<=1.00); automatic = q/10; 0.00 = off, 1.00 = 100%
                     effectiveness, 0.50 = 50%, etc.
    --stdout         write processed WAV output to STDOUT.
    --stdinname <t>  pseudo filename to use when input from STDIN.
-U, --underlap <n>   enable underlap mode to increase number of FFT analyses
                     performed at each FFT length, (2<=n<=8); default=2.
-X, --sortspread     enable sort based spreading; default=off.

System Options:

-B, --below          set process priority to below normal.
-d, --detail         enable detailed bits-to-remove information output mode
    --low            set process priority to low.
-n, --nowarnings     suppress lossyWAV warnings.
-Q, --quiet          significantly reduce screen output.
    --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 noise shaping coefficients and help in using them
                     in the lossyWAV noise shaping implementation.

Matteo Frigo and     for the excellent libfftw3-3.dll contained in the FFTW
Steven G Johnson     distribution (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.

Link to the hydrogenaudio wiki article

Suggested foobar2000 converter setup:

lossyFLAC:
CODE
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:
CODE
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:
CODE
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

Enclose the element of the path containing spaces within double quotation marks ("), e.g. C:\"Program Files"\directory_where_executable_is\executable_name. This is a Windows limitation.


This post has been edited by Nick.C: Apr 8 2011, 12:51
Reason for edit: Failed attempt at assigning a codebox.


--------------------
lossyWAV -q X -a 4 --feedback 4| FLAC -8 ~= 320kbps
Go to the top of the page
+Quote Post

Posts in this topic
- Nick.C   lossyWAV 1.2.0 released   Dec 16 2009, 23:58
- - Nick.C   CODElossyWAV 1.2.0, Copyright 2007,2008,2009 Nic...   Dec 17 2009, 00:13
- - halb27   Thank you very much for the new release, Nick.   Dec 17 2009, 12:46
- - shadowking   Thank you guys. BTW: i encoded a fiona apple cd ...   Dec 17 2009, 13:53
|- - TBeck   Great work! Thank you. QUOTE (shadowking ...   Dec 17 2009, 14:01
|- - halb27   QUOTE (TBeck @ Dec 17 2009, 14:01) Great ...   Dec 17 2009, 21:10
- - Nick.C   The quality scale for --altpreset basically extend...   Dec 17 2009, 14:47
- - skamp   From my point of view as a user, lossyWAV is one o...   Dec 18 2009, 18:27
|- - 2Bdecided   QUOTE (skamp @ Dec 18 2009, 17:27) one of...   Dec 19 2009, 00:52
|- - TBeck   "Honour to whom honour is due" (I am pr...   Dec 20 2009, 00:42
|- - zorzescu   As a title paraphrase of the well known song of Bu...   Dec 20 2009, 11:14
- - Steve Forte Rio   For me "--zero --altpreset" sounds much ...   Dec 20 2009, 14:40
- - Nick.C   --zero --altpreset equates to approximately -q 1.6...   Dec 20 2009, 16:51
- - shadowking   I have some trouble with mp3 transcoding. Last mon...   Dec 21 2009, 11:56
|- - GeSomeone   QUOTE (shadowking @ Dec 21 2009, 12:56) A...   Dec 21 2009, 13:04
- - halb27   Thank you, shadowking, for ABXing. Not very good n...   Dec 21 2009, 14:11
|- - shadowking   QUOTE (halb27 @ Dec 22 2009, 00:11) Thank...   Dec 26 2009, 01:30
|- - halb27   QUOTE (shadowking @ Dec 26 2009, 01:30) B...   Dec 28 2009, 22:06
|- - 2Bdecided   QUOTE (halb27 @ Dec 28 2009, 21:06) QUOTE...   Jan 4 2010, 19:12
- - Admiral Oggbar   From the Wiki: Question: Why create a processor w...   Dec 27 2009, 01:30
|- - singaiya   What kind of answer do you expect to this question...   Dec 27 2009, 01:41
|- - Nick.C   QUOTE (Admiral Oggbar @ Dec 27 2009, 00:3...   Dec 27 2009, 19:20
- - hellokeith   QUOTE (Nick.C @ Dec 27 2009, 13:20) An ea...   Dec 28 2009, 01:30
- - 2E7AH   This kind of command parameters use, can be frustr...   Jan 16 2010, 04:45
|- - Nick.C   Try: Encoder: C:\windows\system32...   Jan 16 2010, 09:40
- - 2E7AH   thanks for your help and program now it works gre...   Jan 16 2010, 09:53
- - Steve Forte Rio   QUOTE (2E7AH @ Jan 16 2010, 06:53) now it...   Jan 16 2010, 12:28
|- - gottkaiser   @Steve Forte Rio Thanks for the configuration and ...   Jan 16 2010, 14:55
|- - 2E7AH   seems I posted wrong code looking to it now, I...   Jan 17 2010, 06:39
- - Steve Forte Rio   QUOTE (gottkaiser @ Jan 16 2010, 11:55) T...   Jan 16 2010, 15:57
- - 2E7AH   OK, nevermind the script, I'll post later as b...   Jan 17 2010, 08:22
- - 2E7AH   if someone can delete above two post please do H...   Jan 17 2010, 10:45
- - Nick.C   Using the command line:CODElossywav ..\sample...   Jan 17 2010, 12:24
- - 2E7AH   So, what to do with FLAC? If lossy.flac and lwcdf...   Jan 17 2010, 12:51
|- - Nick.C   QUOTE (2E7AH @ Jan 17 2010, 11:51) So, wh...   Jan 17 2010, 13:04
- - 2E7AH   well, I used your batch script which includes that...   Jan 17 2010, 13:09
- - Agent69   I finally got around to trying LossyWAV this weeke...   Jan 17 2010, 16:21
|- - lvqcl   QUOTE (Agent69 @ Jan 17 2010, 18:21) By t...   Jan 18 2010, 09:59
- - 2E7AH   I got PMed about batch scripts, so I'm posting...   Jan 18 2010, 02:53
|- - Steve Forte Rio   QUOTE (2E7AH @ Jan 17 2010, 23:53) I got ...   Jan 18 2010, 14:17
|- - gottkaiser   QUOTE (2E7AH @ Jan 18 2010, 02:53) I got ...   Jan 18 2010, 14:31
- - Nick.C   lossyWAV uses data type double for FFT calculation...   Jan 18 2010, 13:28
|- - lvqcl   QUOTE (Nick.C @ Jan 18 2010, 15:28) lossy...   Jan 19 2010, 16:48
- - Nick.C   .... and from me too. The --correction / --merge p...   Jan 18 2010, 22:53
- - Bollerkopp   QUOTE (2E7AH @ Jan 18 2010, 02:53) I got ...   Jan 19 2010, 05:07
- - 2E7AH   thanks to all for their feedback on the script, I ...   Jan 19 2010, 06:26
- - Bollerkopp   Thanks for your answer. But no, I used it on the ...   Jan 19 2010, 07:34
- - 2E7AH   you should run converter only on .lossy.flac files...   Jan 19 2010, 07:50
- - 2E7AH   also I just now noticed that I was merging in the ...   Jan 19 2010, 09:28
- - Bollerkopp   Yes, I run it on the ".lossy.flac."-file...   Jan 19 2010, 15:39
- - Nick.C   Point taken. I have modified the source (I have ne...   Jan 19 2010, 22:30
- - Agent69   Nick, In your opinion, which lossless codec works...   Jan 20 2010, 18:01
- - Nick.C   I carried out a test using my 10 album test set pr...   Jan 20 2010, 22:13
- - lvqcl   LossyWAV 1.2.0 --standard: WavPack -x1: 477.4 kbp...   Jan 20 2010, 22:27
- - Agent69   Thanks a lot guys. I really appreciate your respon...   Jan 21 2010, 04:11
- - Steve Forte Rio   Does anyone can to rewrite the batch file for usin...   Jan 23 2010, 11:16
- - 2E7AH   here is example: lossyTAK.bat CODEgoto %1 goto end...   Jan 23 2010, 16:47
|- - Steve Forte Rio   QUOTE (2E7AH @ Jan 23 2010, 13:47) here i...   Jan 27 2010, 22:14
- - shadowking   I've been playing with the new lossywav and al...   Jan 26 2010, 14:50
- - shadowking   i decided to try wavpack @ 250 and 300k -b250x4:...   Jan 26 2010, 15:12
- - halb27   Thank you for your tests, shadowking. Another use...   Jan 26 2010, 19:02
- - shadowking   I did a total 10 trials per track and took a littl...   Jan 27 2010, 01:23
- - shadowking   Okay. I went strait to Q2.5 --altpreset, 10 trial...   Jan 27 2010, 11:25
- - halb27   Thank you for your test, shadowking, great work. ...   Jan 27 2010, 21:15
|- - shadowking   QUOTE (halb27 @ Jan 28 2010, 07:15) Thank...   Jan 28 2010, 11:48
- - Agent69   Very interesting Shadowking. In my testing of Loss...   Jan 28 2010, 13:40
|- - shadowking   QUOTE (Agent69 @ Jan 28 2010, 23:40) Very...   Jan 28 2010, 14:32
- - halb27   Thanks, for providing your sample, shadowking, and...   Jan 28 2010, 19:06
- - Nick.C   Shadowking, Thanks for your continued effort in A...   Jan 28 2010, 20:36
- - halb27   I tried your sample, shadowking. At -q 1 --altpres...   Jan 29 2010, 21:44
|- - pdq   QUOTE (halb27 @ Jan 29 2010, 16:44) (I ce...   Jan 29 2010, 21:57
||- - halb27   QUOTE (pdq @ Jan 29 2010, 21:57) QUOTE (h...   Jan 30 2010, 00:37
|- - Nick.C   QUOTE (halb27 @ Jan 29 2010, 20:44) Two q...   Jan 29 2010, 22:11
|- - Northpack   QUOTE (Nick.C @ Jan 29 2010, 22:11) I...   Feb 2 2010, 11:02
- - halb27   I see, you prefer -q 3.75 because it's midway ...   Jan 30 2010, 00:35
- - shadowking   Sorry i was tied up with a lot of work so i wasn...   Jan 30 2010, 11:02
- - halb27   Just an idea about how to name the intermediate qu...   Jan 30 2010, 23:29
- - halb27   Average bitrate for my standard test set of variou...   Jan 31 2010, 09:04
- - johnb   Could you please answer this for clarification (on...   Jan 31 2010, 15:42
- - halb27   There's two things coming with the --altpreset...   Jan 31 2010, 16:16
- - gottkaiser   Hi, I was "playing" around with convert...   Jan 31 2010, 21:00
- - Nick.C   Does this plug-in work with FLAC?   Jan 31 2010, 21:07
|- - gottkaiser   Yes, it works codec independent. I used it for yea...   Feb 1 2010, 01:25
|- - gottkaiser   I tried converting the lossyWAV tracks to mp3 (vbr...   Feb 1 2010, 15:51
- - Nick.C   How does the visualisation deal with the unprocess...   Feb 1 2010, 17:10
|- - gottkaiser   I decoded the lossyFLAC file to WAV with and witho...   Feb 1 2010, 17:31
|- - benski   QUOTE (gottkaiser @ Feb 1 2010, 11:31) I ...   Feb 1 2010, 18:44
|- - Nick.C   Thanks very much, Benski.   Feb 1 2010, 20:55
|- - gottkaiser   great. Thanks fro me as well!   Feb 2 2010, 03:17
- - halb27   Overkill quality demand of a minor degree can also...   Feb 2 2010, 11:28
- - shadowking   Personally, i like the old scale as its simple and...   Feb 2 2010, 12:49
|- - Northpack   QUOTE (shadowking @ Feb 2 2010, 12:49) Q0...   Feb 2 2010, 14:25
- - halb27   The 2 groups you built, shadowking, are essential ...   Feb 2 2010, 15:53
|- - GeSomeone   Thanks all involved for the listening tests. My...   Feb 2 2010, 18:52
|- - halb27   QUOTE (GeSomeone @ Feb 2 2010, 18:52) QUO...   Feb 2 2010, 23:02
- - shadowking   A slight revision taking into account your input; ...   Feb 2 2010, 16:13
- - shadowking   I decided to try again today . q1.5 - 7/8 2.0 - ...   Feb 14 2010, 13:16
|- - halb27   QUOTE (shadowking @ Feb 14 2010, 13:16) ....   Feb 14 2010, 15:21
- - shadowking   Also playing around with this interesting new --al...   Feb 14 2010, 14:07
- - 2E7AH   If I could edit my posts, I would add this warning...   Feb 15 2010, 12:41
2 Pages V   1 2 >


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: 22nd December 2014 - 06:42