Research Seminar in Computer-Generated Music, Spring, 2006
Adaptive Approach for PCM Sound Font Data Compression
kuangzn (at) ccrma.stanford.edu
rectangular, windowing adaptive
echo density (STFT) division
What's the best iteration steps for finding the LMS weights?
How many numbers of weights are psychoacoustic enough?
How many periods in a group will be more computational efficient and acoustic sufficient?
If a robust system is designe
Project Status ( updating ... )
Revised my system diagram, used NLMS instead of LMS, used long white noise or sinusoid with as my excitation signal so that the NLMS
has longer iteration numbers. But, it's converged very well, more works need to be done.
May 2, 2006
out one point delay in my previous works was caused by a simply
Matlab bug. See figure below. There is no delay/discontinues
if the number of the adaptive weight is 1, which means it's a ''zero'' order filter, or say it's a scaling. However, trade off between number
of weights and similarity of output signal is significant, the more weights the better the output, but before the problem of non-zero-phase FIR
is fixed, the more weights mean the more discontinue. Another trade off is the number of period vs quality of output, the more
period we use, the better the weight will converge to, then the FIR itself will be more optimized in the least square sense, however,
the output signal is less optimized because it is difficult to have the output signal be exact while using 2nd order FIR filtering.
From now on, my works will try to focus on finding new ways to design adaptive zero-phase FIR filter, and decide what's the practical
number of weights and period will be used to make the output sounds good.
Original guitar wav file
New no delay zero order FIR fix at 33 wav file
Figure, fixed zero phase problem by setting number of weight is 1.
April 24, 2006
April 13, 2006
Improved the sound using series of FIR filters, tried using fixed weights for different fix location
Fig. 1 The first plot is the original plucked guitar string, second is the synthesis result of a sliding 2 order FIR filter using the updated weights in the adaptive system every step, the third is the synthesis result using the last updated weights in one period adaptive calculation, it's implemented by 25 series of 20 order FIR filters with.
Revised a little bit on my previous works, generate two synthesis sounds, (see Fig 1.) The goal is to make find the correct
FIR filter coefficients from the adaptive system, to generate something hopefully have reasonable result for string sounds.
I have to deal with the trade-off in terms of number of adaptive weights, length of the input signal being used and the quality
of the sound. The FIR is not zero phase, so it causes delay in time domain which I need to fix that. Much more careful revise
of the code is needed for a acceptable result.
Done: Synthesis string with sliding filters (wav)
My target is to make this one better: Synthesis string with 25 series of FIR filters (wav)
 Julius O. Smith online book, http://ccrma.stanford.edu/~jos/SimpleStrings/Extended_Karplus_Strong_EKS_Algorithm.html