diff --git a/doc/notes.txt b/doc/notes.txt index 556799e..eb7c16c 100644 --- a/doc/notes.txt +++ b/doc/notes.txt @@ -730,7 +730,63 @@ Sequence Editor Design Enable/Disable selected events. - +============================================================================= + + + + a b + piano --> mic ----> adc --> fbctl --> xform -+-> dac --> spkr --> room --+ + ^ ^ ^ | | + | | | | | + | | +--------------+ | + +---------+-------------------------------------------------------------+ + +fbctl Design: + + + +1. Measure the spectrum of the room impulse response. + a. Generate a sine sweep, or Max. length sequance, s, with a non-symetric envelope. + + b. Playback s and record the result N times + using different mic. positions. + + c. S = STFT(s) + R = sum(STFT(r_i) / N + + d. Align S and R using PHAT. + e. RIR = mean(S - R) + + +2. Find the delay, d, which minimizes sum(a-b) + + a ----------> DFT() --\ + - ---> + b --> z^d --> DFT() --/ + + +============================================================================= + + 1. Use spectral flux to generate an impulse signal: f. + 2. f' = 1-f correlates to the level of time dependency in the signal. + Frames with a high time dependency contain more reberberated signal. + 3. Setup a 2xT NMF problem Y = HE + 4. Initialize spectrum 1 as the f weighted avg. of all spectra. + 5. Initialize spectrum 2 as the f' weighted avg. of all spectra. + 6. Initialize env. 1 as f + 7. Initialize env. 2 as f' + 8. Allow all other variables, other than f', to vary - spectrum 2 + is the impulse response. + + alternatively use gradient descent, or alternating LS, rather than NMF + + +============================================================================= + +New vector library: +1. Use type generic pre-proc feature. +2. Explicit matrix representation. +3. Use BLAS and LAPACK. =============================================================================