Kyma Forum
  Tips & Techniques
  crossFilter | inverse ir ?

Post New Topic  Post A Reply
profile | register | preferences | faq | search

next newest topic | next oldest topic
Author Topic:   crossFilter | inverse ir ?
johannes
Member
posted 04 November 2014 13:28         Edit/Delete Message   Reply w/Quote
hello,

i just experiment with daisy-chained crossfilter-long modules. using the same ir (for both crossfilter modules), it results in a boost of the resonances, that are present in both the input and the response. (while noisy components of the input will be attenuated)

i wonder how this process can work the other way around, so common resonances (in the input and ir) will be attenuated. what i had in mind is to do it by inverting the ir, even though i guess its not possible to access the ir directly in the crossfilter-long module. is this right, pete?
i hope there are simpler ways to do it kyma, that you guys can report about.

thanks,
johannes

[This message has been edited by johannes (edited 04 November 2014).]

IP: Logged

SSC
Administrator
posted 04 November 2014 21:17         Edit/Delete Message   Reply w/Quote
If you form the spectral inverse of the Response you are using for the first CrossFilter you could use that as the Response for the second CrossFilter.

I did a quick try using LiveSpectralAnalysis and a ClippingDivide of just the left channel (the amplitudes) before resynthesizing, but it did not cancel the filtering (probably has something to do with the large amplitudes of the inverse function combined with time smearing). It did, however, sound kind of cool.

IP: Logged

gustl
Member
posted 05 November 2014 02:14         Edit/Delete Message   Reply w/Quote
You could try the following to compensate for the large amplitudes:
Use an FIR filter with 256 taps (for 256 partials) of 1/256 on the amplitudes. Do the same for the inverted spectrum. This will give you a running average of the amplitudes. Then divide the running average of the original by the inverted running average. Multiply the result with the amplitudes of the inverted spectrum.
Don't know if that really improves it but it's worth a try. You could improve this by alternating the frames and sample and hold the last (256th) sample for a real average of one frame, but I don't know if that's necessary.

Best,
Gustl

IP: Logged

johannes
Member
posted 05 November 2014 04:17         Edit/Delete Message   Reply w/Quote
thanks for the reply ssc and gustl,

its a bit hard to follow. as i understand i will have to change the ir of the cf1 (cross filter 1) by inverting it and use it an response into cf2. do you mean: while feeding the response into cf1
i feed it in to LiveSpecralAnalysis, calculate the inversion, then feed it into an OscillatorBank and finally into cf2?

how i can use the clippingDevide module to invert the spectrum?

thanks for help, johannes


IP: Logged

gustl
Member
posted 07 November 2014 09:55         Edit/Delete Message   Reply w/Quote
Hi Johannes,

Exactly! To invert the spectrum you use the clipping divide on the amplitudes of the spectrum: set the nominator to a constant 1 and use the amplitudes for the denominator input. Also scale it to avoid clipping all the time. Just try which value for scale fits best.. Or is there a specific value for scale to use, SSC?

Best,
Gustl

IP: Logged

johannes
Member
posted 07 November 2014 15:04         Edit/Delete Message   Reply w/Quote
hey gustl, thanks for taking the time.
its much clearer now.

one thing iam just thinking bout is: before inverting the impulse response i need to capture it between the livespectrumanalysis and oscillatorbank stage. lets say i analyse 3 seconds of incomming audio. how to extract the ir from it? by taking the average of it (adding n frames and then divide it by n) ?

and gustl, you were talking bout the treatment of amps. what exactly happens to the freqs?
pass them unchanged?

ps. thumps up for continuing the "split spectrum into noise and sinusodial components" research.

ciao, johannes

IP: Logged

gustl
Member
posted 08 November 2014 07:00         Edit/Delete Message   Reply w/Quote
No problem I suggest you do it this way: Sample module containing the IR feeding the LiveSpectralAnalysis feeding an oscillatorbank. This will be your first IR. Split the spectrum into left and right and invert the amplitudes. Then feed them into a second oscillatorbank using a channeljoin. this will be your second IR. Frequencies pass untreated. by analyzing and resynthesizing the first IR you make sure that the sonic quality and the timing of both IRs are equal.

Best,
Gustl

IP: Logged

johannes
Member
posted 08 November 2014 10:37         Edit/Delete Message   Reply w/Quote
thanks, got it.
i will try it the next days... bis balduin, johannes

IP: Logged

cristian_vogel
Member
posted 08 November 2014 12:53         Edit/Delete Message   Reply w/Quote
this is a very interesting discussion. Gustl could you possibly post an example?

IP: Logged

SeanFlannery
Member
posted 09 November 2014 17:43         Edit/Delete Message   Reply w/Quote
I will add my voice to the examples please list

regards,
Sean

IP: Logged

gustl
Member
posted 10 November 2014 02:13         Edit/Delete Message   Reply w/Quote
I'd like to but I'm having trouble opening the clipping divide from this post: http://www.symbolicsound.com/cgi-bin/forumdisplay.cgi?action=displayprivate&number=1&topic=001531

SSC?

IP: Logged

johannes
Member
posted 10 November 2014 03:11         Edit/Delete Message   Reply w/Quote

ClippingDivide.kym

 
hey gustl, maybe this one works for you.

in the meantime i put everything together. but inverting the amps via clippingDivide results in a lot of noise. no matter if i use clippingDevide´s scale parameter… will try the compensation you mentioned earlier.
ciao, jo

IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply

Contact Us | Symbolic Sound Home

This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.


Ultimate Bulletin Board 5.45c