lossyWAV Development
Reply #64 – 2007-08-14 14:24:38
1: the script is not self-contained for transcoding to Delphi with respect to the conv, fft, and hanning function (apart from wavread/write), which have to be coded from other sources and/or own understanding. The hanning function should be easy to implement if I have taken that correctly from a short google search. Yes;The script can be made easier if it would restrict to the case use_calculated_reference_threshold = 1 used with any compression_option except for option 4. Absolutely - if those with clearer knowledge of the topic are happy with this shortcut;Though I'd like to know how to arrive at the reference_threshold by simulated noise it looks to me like this can be done in a special tool (MATLAB welcome) to arrive at the rt_b_b constants used with use_calculated_reference_threshold = 1. My only concern at the moment is that the calculated constants relate to specific low and high frequency limits, therefore high_frequency_bin / low_frequency_bin values. Scratch that, I have just started looking at 20Hz to Nyquist frequency and the constant *seems* to be very close to that calculated for 20Hz to 15848Hz (23/32*44100) on only 128 iterations........Many MATLAB specials are getting clear when asking Google, but what do the curly braces mean in for instance: spreading_function{analysis_number}=ones(spreading_function_length,1)/spreading_function_length; ? The curly brackets allow you to refer to an array (which need not be of constant dimensions) from another array (or at least that's the way that I have rationalised it out), more like a pointer.Moreover: What's peaks_over=length(find(inaudio==peak_max)); find(inaudio==peak_max)); produces a list of indices of values which are equal to the peak_max value, looking at both channels (in the case of stereo). length gives the total number of instances, ie. the length of the array.