lossyWAV 1.3.0 Development Thread, Added noise WAV bitdepth reduction method. |
lossyWAV 1.3.0 Development Thread, Added noise WAV bitdepth reduction method. |
May 17 2010, 21:47
Post
#1
|
|
![]() lossyWAV Developer Group: Developer Posts: 1721 Joined: 11-April 07 From: Wherever here is Member No.: 42400 |
Following the release of lossyWAV 1.2.0, I feel it is (yet again) time to kick off development of the next minor release.
Items currently on the list for inclusion in 1.3.0:
Link to hydrogenaudio wiki lossyWAV article. Suggested foobar2000 converter setup: lossyFLAC: CODE Encoder: c:\windows\system32\cmd.exe Extension: lossy.flac Parameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\flac - -b 512 -5 -f -o%d --ignore-chunk-sizes 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 - --quality 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 - --quality 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. Change log 1.3.0: 06/08/2011 Introduction of fixed noise shaping using curve based on SebastianG's noise shaping IIR filter previously used in 1.2.0. Parameter -s, --shaping [n] takes optional parameter (0<=n<=1) or is set automatically depending on quality setting; Code improvements. Bug hunting. Change log beta 1.2.3p RC11: 14/06/2011 (Minor) modifications to --adaptive parameter; Introduction of -W, --width <n> parameter (80<=n<=255) to allow user to select width of certain output options; Introduction of -H, --histogram parameter to display 64-bin histogram of sample values; Code improvements. Bug hunting. Change log beta 1.2.3o RC10: 16/05/2011 (Minor) modifications to --adaptive parameter. Removal of fast / lower precision sqrt and log functions - seems to improve adaptive shaping "accuracy". Bug hunting. Change log beta 1.2.3n RC9: 13/05/2011 Modifications to --adaptive parameter. Now allows user to disable default gain curve (use nogain) and default frequency warping (using nowarp) after the --adaptive parameter. Filter order still user selectable. Parameter takes multiple sub-parameters. Bug hunting. Change log beta 1.2.3m RC8: 11/05/2011 Modifications to adaptive noise shaping method. Now only uses "current" FFT results rather than using historical data as well. Bug hunting. Change log beta 1.2.3l RC7: 09/05/2011 (Minor) modifications to adaptive noise shaping method. Bug hunting. Change log beta 1.2.3k RC (Minor) modifications to adaptive noise shaping method. Bug hunting. Slight change to the --spread parameter (related to output of codec-block processing and subsequent spreading function(s)) - now indicates whether the static or dynamic maximum-bits-to-remove limits kicked in during processing (i.e. all FFTs for a particular codec block indicated more bits could be removed but bits-removed was limited to static and dynamic limits). Change log beta 1.2.3j: 04/05/2011 Modifications to adaptive noise shaping method; Change to --static parameter; maximum bits-to-keep now limited to bits-per-sample - 4. Change log beta 1.2.3i: 22/04/2011 Modifications to adaptive noise shaping method; DC offset now removed from audio data (and bit-removed data and correction data, when enabled) prior to analysis - seems to have improved "Furious" sample problem. Change log beta 1.2.3h: 16/04/2011 Modifications to adaptive noise shaping method: higher sample-rates now treated differently - hopefully now avoiding the suspected phase related distortion encountered with 384kHz samples. Change log beta 1.2.3g: 12/04/2011 Modifications to adaptive noise shaping method: --warp parameter removed due to complexity of selecting correct value. The value is now frequency dependent to allow for consistency in the portion of the warped spectrum associated with the frequency range of interest (up to 16kHz by default); Modifications made to handling of sample-rates other than 44.1kHz. I realised that as all the testing has pretty much been carried out at that rate then there may be issues with handling other sample-rates. There were. I think that they're now fixed. Change log beta 1.2.3f: 24/03/2011 Modifications to adaptive noise shaping method; Addition of the --static parameter to allow the user to increase the number of (static) minimum-bits-to-keep in the range 7<=n<=16, default=6. Change log beta 1.2.3e: 16/03/2011 Modifications to adaptive noise shaping method. Change log beta 1.2.3d RC5: 28/02/2011 Change to parameter limits for -A, --adaptive: now 64<=n<=256; Change to order of lower quality presets:
This is release candidate #5 for lossyWAV 1.3.0. Change log beta 1.2.3c RC4: 22/02/2011 Parameter -i, --impulse removed. The shortest FFT (32 samples for 44.1/48kHz input) is now enabled by default for all quality settings, previously for int(q)>0. Can be disabled using --analyses 2 (default number of analyses is now 3). A change to quality preset selection. Parameter -q, --quality will now accept a numeric value in the range -5 to 10 as before but also a short and long preset name as follows:
This is release candidate #4 for lossyWAV 1.3.0. Change log beta 1.2.3b RC3: 16/02/2011 --classic and --altpreset quality systems removed; Fixed noise shaping removed; Adaptive noise shaping now enabled by default. Use --adaptive OFF to disable. Parameter will still take numeric input to set number of taps for FIR filter used. Remapping of quality presets as follows:
This is release candidate #3 for lossyWAV 1.3.0. Change log beta 1.2.3a RC2: 11/02/2011 (Very) minor changes to the adaptive noise shaping algorithm. Bug-fix to avoid divide-by-zero in levinson-durbin recursion. Replacement of default internal settings, ranging from -5 to 10. Existing defaults now accessible using --classic parameter. This is release candidate #2 for lossyWAV 1.3.0. Change log beta 1.2.2z RC1: 10/01/2011 Minor changes to the adaptive noise shaping algorithm; This is release candidate #1 for lossyWAV 1.3.0. Change log beta 1.2.2y: 08/01/2011 Minor changes to the adaptive noise shaping algorithm, now a bit faster. Change log beta 1.2.2x: 05/01/2011 Minor changes to the adaptive noise shaping algorithm - now takes into account long FFT analysis results for previous codec-block as well as present codec-block; Changes made to curve which modifies shape of desired filter output per codec-block-channel. Change log beta 1.2.2w: 02/12/2010 Minor changes to the adaptive noise shaping algorithm; default FIR filter size=64; Bug found in processing of multi-channel audio - also fixed in version 1.2.0 as maintenance release 1.2.0b (see Validated News); Code tidy up. Change log beta 1.2.2t: 11/11/2010 Minor changes to the adaptive noise shaping algorithm (max FIR filter size=512); -X, --sortspread parameter removed; -F, --fftw parameter removed. libfftw3-3.dll (double precision) used automatically if found; Code tidy up. Change log beta 1.2.2s: 08/08/2010 Further changes to the adaptive noise shaping algorithm; Change log beta 1.2.2r: 26/07/2010 Bug-fixes and minor changes to the adaptive noise shaping algorithm; Compatibility with libfftw3f-3.dll removed (single precision) to significantly simplify code; Removal of added dither in bit-removal algorithm when adaptive noise shaping active. Change log beta 1.2.2q: 29/06/2010 Further changes to the adaptive noise shaping algorithm; Change to bit-removal algorithm when adaptive noise shaping active - dither introduced. Change log beta 1.2.2p: 21/06/2010 Further changes to the adaptive noise shaping algorithm. Change log beta 1.2.2n: 21/06/2010 Further changes to the adaptive noise shaping algorithm. Modification made to the high frequency portion of the desired shape. Change log beta 1.2.2m: 17/06/2010 Further changes to the adaptive noise shaping algorithm. Now uses the results of both the long and short FFT analyses when determining the desired shape of filter. Change log beta 1.2.2k: 11/06/2010 Desired shape of filter now changes more gradually per codec-block rather than totally; Fix to calculation of frequency distribution to allow more accurate comparison of input and output. Change log beta 1.2.2j: 04/06/2010 Temporary fix to stop spikes in output - attempt #1. Change log beta 1.2.2i: 03/06/2010 Bug fix in FFT routine selection process. Change log beta 1.2.2h: 03/06/2010 Bug fix in adaptive noise shaping method. Change log beta 1.2.2g: 01/06/2010 Modifications made to adaptive noise shaping method. Change log beta 1.2.2f: 31/05/2010 Modifications made to adaptive noise shaping method. Change in filter behaviour at higher frequencies. Change log beta 1.2.2e: 31/05/2010 Modifications made to adaptive noise shaping method. Better filter resolution achieved (I think). --adaptive parameter now takes an integer value as the order of the FIR filter. Valid in the range 16<=n<=128, default=32. Change log beta 1.2.2d: 29/05/2010 Modifications made to adaptive noise shaping method. Better resolution (I think) of the filter - interim beta - still work to do on this. Change log beta 1.2.2c: 28/05/2010 Modifications made to adaptive noise shaping method. Attempt #1 to fix the low-frequency error. Change log beta 1.2.2b: 27/05/2010 Modifications made to adaptive noise shaping method. Attempt #1 to fix clicking error. Change log beta 1.2.2a: 26/05/2010 Further progress made with SG's adaptive noise shaping method. The --adaptive parameter now takes a parameter (in the range -1<n<1) to allow the warping factor to be changed. Error found and fixed in remove_bits routine (for adaptive-shaping). Change log beta 1.2.1a: 25/05/2010 Further progress made with SG's adaptive noise shaping method. Extremely simplistic psy-model in place. Enable by adding --adaptive to the command line. Post-analysis of the bit-removed audio data can be performed using the --postanalyse parameter in conjunction with the --freqdist parameter. Change log pre beta 1.2.1a: 17/05/2010 Code optimisations; Major part of the implementation of SG's adaptive noise shaping; Modification of fftw_interface unit and FFT handling routines to allow the use of libfftw3f-3.dll as well as libfftw3-3.dll (-F, --fftw <single/double/off>); Implementation of the spectral plot (--freqdist) for input and optionally output audio data. This post has been edited by Nick.C: Aug 6 2011, 22:42
Attached File(s)
lossyWAV_1.3.0.zip ( 89.2K )
Number of downloads: 2134
lossyWAV_Source_20110806_1.3.0.zip ( 262.59K )
Number of downloads: 554-------------------- lossyWAV -q X -i | FLAC -8 ~= 295kbps
SGS III (Rooted) + 64GB |
|
|
|
![]() |
Jun 3 2010, 19:42
Post
#2
|
|
![]() lossyWAV Developer Group: Developer Posts: 1721 Joined: 11-April 07 From: Wherever here is Member No.: 42400 |
Thanks again - something wrong, I think - I'll get back to bug-hunting....
-------------------- lossyWAV -q X -i | FLAC -8 ~= 295kbps
SGS III (Rooted) + 64GB |
|
|
|
Nick.C lossyWAV 1.3.0 Development Thread May 17 2010, 21:47
2Bdecided I'm going to enjoy this thread!
Cheers,
... May 18 2010, 00:09
doccolinni I've been waiting for this thread and finally ... May 18 2010, 22:26
GeSomeone QUOTE (Nick.C @ May 17 2010, 22:47) Imple... May 19 2010, 13:19
SebastianG QUOTE (GeSomeone @ May 19 2010, 13:19) Do... May 25 2010, 21:16
halb27 The lossless codec is especially less efficient if... May 19 2010, 13:38
sauvage78 QUOTE Nice to see you still improving lossyWAV. Th... May 19 2010, 13:44
Nick.C Right, I've got the guts of SG's adaptive ... May 22 2010, 13:09
doccolinni I don't know how much you know and how much yo... May 22 2010, 21:18
Nick.C Following some very constructive help from SG, los... May 25 2010, 19:59
Enig123 SebastianG,
If I understand correctly, dither wi... May 26 2010, 08:57
SebastianG QUOTE (Enig123 @ May 26 2010, 08:57) If I... May 26 2010, 19:44
Enig123 QUOTE (SebastianG @ May 27 2010, 02:44) I... May 27 2010, 03:13
SebastianG QUOTE (Enig123 @ May 27 2010, 03:13) I wo... May 27 2010, 09:43
Nick.C lossyWAV beta 1.2.2a attached to post #1 in this t... May 26 2010, 12:30
moozooh Excellent job, Nick. :) Looking forward to the 1.3... May 26 2010, 13:19
halb27 Average bitrate for my usual test set of various p... May 26 2010, 21:06
halb27 I just did some listening tests.
Problems for the... May 27 2010, 11:15
GeSomeone QUOTE (halb27 @ May 27 2010, 12:15) Maybe... May 27 2010, 15:19
Nick.C Thanks for that - I'll get to work on it and s... May 27 2010, 12:54
2Bdecided There are clicks (waveform discontinuities) in the... May 27 2010, 14:58
Nick.C Thanks for the feedback on "clicking", D... May 27 2010, 18:43
halb27 I can confirm the added noise can be described as ... May 27 2010, 19:13
Nick.C lossyWAV beta 1.2.2b attached to post #1 in this t... May 27 2010, 21:09
doccolinni QUOTE (Nick.C @ May 17 2010, 22:47) Modif... May 28 2010, 01:33
Nick.C lossyWAV 1.2.0 makes use of libfftw3-3.dll for dou... May 28 2010, 06:24
2Bdecided QUOTE (Nick.C @ May 27 2010, 21:09) lossy... May 28 2010, 09:38
halb27 I just tried 1.2.2.b -Z --adaptive on bibilolo (bi... May 28 2010, 16:15
halb27 I looked at the spectogram of the last 0.5 second ... May 28 2010, 16:42
Nick.C Thanks again for the fault-finding.... .
lossyWAV... May 28 2010, 18:12
halb27 Nick, you must be a wizard being so fast with new ... May 28 2010, 23:29
halb27 I repeated last night's test, now doing it ver... May 29 2010, 11:35
Nick.C Great news about bibilolo - very satisfying to get... May 29 2010, 11:40
doccolinni Another interesting sample for testing:
- Wheeee.... May 29 2010, 20:41
Nick.C Thanks for the sample - having a bit of computer t... May 29 2010, 21:10
halb27 @doccolinni: Can you tell a bit about at what seco... May 29 2010, 21:16
doccolinni QUOTE (halb27 @ May 29 2010, 22:16) @docc... May 29 2010, 21:22
halb27 Yes, it's an interesting sample for looking at... May 29 2010, 21:27
doccolinni QUOTE (halb27 @ May 29 2010, 22:27) Yes, ... May 29 2010, 21:39
doccolinni This is the spectrum of the original.
This is the... May 29 2010, 22:08
doccolinni Indeed, the new noise looks a lot smoother than th... May 29 2010, 23:12
Nick.C lossyWAV beta 1.2.2d attached to post #1 in this t... May 29 2010, 22:40
doccolinni QUOTE (Nick.C @ May 29 2010, 23:40) wheee... May 29 2010, 22:42
Nick.C Thanks - as I said in the change log, this is an i... May 29 2010, 22:51
halb27 My listening room wasn't quiet today so I coul... May 30 2010, 22:33
halb27 I repeated the test with furious using 1.2.2.d -Z ... May 31 2010, 07:16
Nick.C lossyWAV beta 1.2.2e attached to post #1 in this t... May 31 2010, 12:55
halb27 I'm sorry to say that with this version I can ... May 31 2010, 14:21
SebastianG I just want to comment on the "noise images... May 31 2010, 16:13
Nick.C lossyWAV beta 1.2.2f attached to post #1 in this t... May 31 2010, 22:31
halb27 Bad news again, sorry.
Inspite of the increased b... May 31 2010, 22:51
doccolinni I haven't done any listening tests, but I can ... May 31 2010, 23:01
shadowking I will try and test things later this week. If I r... Jun 1 2010, 01:35
aand Hi! I can't get lossyWAV to work with FLAC... Jun 1 2010, 03:20
Bonzaii QUOTE (aand @ May 31 2010, 19:20) ...cmd.... Jun 1 2010, 04:44
Nick.C QUOTE (aand @ Jun 1 2010, 03:20) Command ... Jun 1 2010, 06:12
halb27 Though there's certainly room for improvement ... Jun 1 2010, 08:24
Nick.C lossyWAV beta 1.2.2g attached to post #1 in this t... Jun 1 2010, 12:26
halb27 I tried furious with 1.2.2.g -Z --adaptive.
Hiss i... Jun 1 2010, 15:26
aand CODEcmd.exe /d /c G:\Kits\"@ Co... Jun 1 2010, 17:41
Nick.C @halb27: Would you have time to try different filt... Jun 1 2010, 17:54
halb27 QUOTE (Nick.C @ Jun 1 2010, 18:54) @halb2... Jun 2 2010, 09:52
aand Nope.
QUOTE 1 out of 1 tracks converted with maj... Jun 1 2010, 18:35
carpman General LossyWAV setup help should probably have i... Jun 1 2010, 19:33
doccolinni I don't know if I did something wrong or you d... Jun 1 2010, 23:57
Nick.C QUOTE (doccolinni @ Jun 1 2010, 23:57) I ... Jun 2 2010, 21:28
doccolinni QUOTE (Nick.C @ Jun 2 2010, 22:28) QUOTE ... Jun 2 2010, 22:46
Nick.C .... but the .lwcdf.wav file is the difference bet... Jun 2 2010, 23:06
doccolinni QUOTE (Nick.C @ Jun 3 2010, 00:06) .... b... Jun 2 2010, 23:10
Nick.C QUOTE (doccolinni @ Jun 2 2010, 23:10) Do... Jun 3 2010, 08:12
Bonzaii Is there any way you can expand the Adapative para... Jun 3 2010, 03:49
halb27 I have libfftw3-3.dll and libfftw3l-3.dll in the s... Jun 3 2010, 08:32
doccolinni QUOTE (Nick.C @ Jun 3 2010, 09:12) QUOTE ... Jun 3 2010, 08:49
Nick.C The DLL should be in a directory which is on the p... Jun 3 2010, 08:55
doccolinni Ok, this is completely confusing me now.
libfftw3... Jun 3 2010, 08:56
Nick.C At the command prompt enter "path" as a ... Jun 3 2010, 09:02
doccolinni QUOTE (Nick.C @ Jun 3 2010, 10:02) At the... Jun 3 2010, 09:05
robert QUOTE (doccolinni @ Jun 3 2010, 10:05) Ne... Jun 3 2010, 09:45
doccolinni QUOTE (robert @ Jun 3 2010, 10:45) QUOTE ... Jun 3 2010, 09:49
robert QUOTE (doccolinni @ Jun 3 2010, 10:49) Di... Jun 3 2010, 09:52
doccolinni QUOTE (robert @ Jun 3 2010, 10:52) QUOTE ... Jun 3 2010, 10:05
halb27 I tried and found the [I] in the result line.
I u... Jun 3 2010, 09:08
doccolinni QUOTE (halb27 @ Jun 3 2010, 10:08) Adding... Jun 3 2010, 09:10
Nick.C Hmmmm.... Baffled now - I have my copy of the DLLs... Jun 3 2010, 09:14
doccolinni QUOTE (Nick.C @ Jun 3 2010, 10:14) Hmmmm.... Jun 3 2010, 09:17
robert QUOTE (Nick.C @ Jun 3 2010, 10:14) Hmmmm.... Jun 3 2010, 11:01
doccolinni Uh... I'm totally out of ideas... Maybe it... Jun 3 2010, 09:23
halb27 I am using 32 bit-Windows (XP). Jun 3 2010, 09:45
Nick.C Robert,
Thanks for that confirmation - I'll g... Jun 3 2010, 12:27
robert Nick, calling lossywav twice with the same input f... Jun 3 2010, 13:04
lvqcl LossyWAV uses libfftw3-3.dll only if both libfftw3... Jun 3 2010, 15:54
robert QUOTE (lvqcl @ Jun 3 2010, 16:54) LossyWA... Jun 3 2010, 16:11
Nick.C When lossyWAV starts, it checks for the existence ... Jun 3 2010, 19:18
robert QUOTE (Nick.C @ Jun 3 2010, 20:18) When l... Jun 3 2010, 19:39
lvqcl lossyWAV uses internal routines if only libfftw3-3... Jun 3 2010, 19:25
doccolinni QUOTE (lvqcl @ Jun 3 2010, 20:25) Only wh... Jun 3 2010, 21:46
doccolinni There's something strange about the noise adde... Jun 3 2010, 21:54
Nick.C I think that I have cracked the logic for use of w... Jun 3 2010, 21:58
doccolinni A distinct click can easily be heard at 5.43 secon... Jun 3 2010, 22:12![]() ![]() |
|
Lo-Fi Version | Time is now: 20th May 2013 - 18:52 |