Kyma Forum
  Tips & Techniques
  Spectrum Matching

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

next newest topic | next oldest topic
Author Topic:   Spectrum Matching
giantbrain
Member
posted 02 September 2001 04:46         Edit/Delete Message   Reply w/Quote
Does anyone have any ideas as to how to create a sound in Kyma that will match the spectrum of one sound to that of another?

Steinberg's FreeFilter does this but it doesn't sound very good to me. Intelligent Devices has the IQ and it sounds good but it's TDM only and I don't use PT.

Any ideas would be greatly appreciated.

Thanks
Scott Holden

IP: Logged

Bill Meadows
Member
posted 02 September 2001 15:36         Edit/Delete Message   Reply w/Quote
Ionizer will also do this, and you don't need TDM. I'm not so sure about doing it in Kyma...

IP: Logged

pete
Member
posted 03 September 2001 05:12         Edit/Delete Message   Reply w/Quote
Hi scott
When you say match, do you mean a test to see if they are the same, or do you mean replace one sounds spectrum with another.
A Vocoder will add to and subtract from one sounds spectrum under the control of another. The Corrective Vocoder takes account of the of the original spectrum and adjusts it to match the spectrum of the second sound, But I haven't managed to get that working yet.

But if you use two live analisis modules then because the left hand signals contains the spectrum info and the right hand signals contain the Pitch info, then by using chanelers and channel join modules you can have the pitch of one and the spectrum of the other.

hope it helps


IP: Logged

SSC
Administrator
posted 03 September 2001 11:42         Edit/Delete Message   Reply w/Quote
One way to accomplish this would be to form the long-term average spectrum of the reference and source sounds, and then to multiply the spectrum of the source by the ratio of the long term reference spectrum to the long term source spectrum. This would make the long term spectral envelope of the source sound match that of the reference.

You can find many of the pieces you would need for implementing this in the examples that David McClain has posted. In his de-noising Sound, I believe he forms a long-term average spectrum. In his zillion band compressor he does a divide by subtracting in log space. Or you approximate the divide using the ArcTangent module as he did in his de-noiser.

The overall algorithm would be:

* get the spectrum of the reference sound

* get the spectrum of the source sound

* get the magnitude of each of these (using the SqrtMagnitude Sound)

* feed each into a DelayWithFeedback with the delay time set to be same as the number of samples in the FFT, and the feedback parameter would correspond to the averaging

* take these two and use either the ArcTangent to divide them, or use a Waveshaper (to take the log), a Difference, and another Waveshaper (to take the anti-log) to perform the divide by subtracting in log space

* place this ratio and the FFT output from the source sound into a VCA to multiply them

* finally, use the overlap-add inverse FFT to switch back into the time domain


IP: Logged

David McClain
Member
posted 04 September 2001 20:55         Edit/Delete Message   Reply w/Quote
Hi all!

...er maybe I'm missing something important here... but doesn't a Vocoder do all of this for you? It impresses the spectrum of one sound on top of the harmonic content of another. What am I missing?

- DM

IP: Logged

giantbrain
Member
posted 05 September 2001 03:34         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by David McClain:
Hi all!

...er maybe I'm missing something important here... but doesn't a Vocoder do all of this for you? It impresses the spectrum of one sound on top of the harmonic content of another. What am I missing?

- DM


Hi David & Pete

I don't know if you're missing something or not. I may not be explaining what I want to do very well. Here's a quote fom ID's website that describes IQ.

">I.Q. is an intelligent tool which learns and automatically alters the spectrum of any audio to match that of any other audio. You can make a new guitar track exactly match the spectral characteristics of an older guitar track (or vice versa); allowing fast, perfect matching of punches or replacements with an accuracy beyond anything you thought possible. I.Q. works on any audio. Not only can it match vocals and other miked audio, but it can also handle microphones, guitar amps, and even guitars themselves. I.Q. learns the sonic spectrum of any instrument, take, or track, mono or stereo, then automatically constructs a complex filter which matches the spectrum of the new audio to the original. And I.Q.is the ideal solution for film dialog matching.

>You can also use I.Q. to match the overall spectrum of your entire mix to that of any favored reference mix or commercial CD; automatically!

>I.Q. has absolutely no sound of its own. I.Q. uses an FIR model in the frequency domain, and causes no phase shift or ringing. If you can’t fix it with I.Q., it’s too broke to fix."

Thanks
Scott Holden



IP: Logged

SSC
Administrator
posted 05 September 2001 09:22         Edit/Delete Message   Reply w/Quote
The Vocoder does do this, but in the short term (10 ms to 1 sec).

The processing Scott wants to do involves placing the overall EQ settings of one signal onto another one. This is helpful, for instance, if you have a recording session on two different days and you do not remember the settings that were used on the EQ filters of the mixer.

IP: Logged

Bill Meadows
Member
posted 05 September 2001 14:02         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by giantbrain:

>You can also use I.Q. to match the overall spectrum of your entire mix to that of any favored reference mix or commercial CD; automatically!

This is an EQ adjustment based on the average frequency response of the source material.

I have used Ionizer to do exactly this, and it works pretty well. It does an FFT to achieve a 512 band EQ.


IP: Logged

David McClain
Member
posted 05 September 2001 14:06         Edit/Delete Message   Reply w/Quote
Does this IQ tool perform a time varying match, or does it simply provide a static EQ match as SSC indicates? That is to say, if a performance has characteristics that change over the course of an entire recording session, does the IQ track these changes? Or does it simply adjust to the average of whatever you feed it and then remains at that setting?

- DM

IP: Logged

pete
Member
posted 05 September 2001 14:24         Edit/Delete Message   Reply w/Quote
I'm afraid I'm always a bit suspectiose about manufactures clames.

Just how inteligant is the I.Q.

If it is simply taking the average E Q of one sound and making up a filter that matches that, then if you simply put a similar sound through that filter , it won't match at all .

This is because if the first sound had a 10db boost at 1khz and the second sound had a 20db boost at 1khz the final sound will have a 30db boost at 1khz. Which has made the sound even less like the original.

This is how a vocoder does it (without the averaging the entire sound of cause).

If however we took the average of both sounds and made a filter that was controled by the difference, and then put the second sound through it, we might get somthing similar to the first sound.

This is the idea behind the corrective vocoder.

This would only work if the two sounds were almost identcal in programe material.

If we had the sound of a piano (as the referance sound) that played 4 notes in 5 seconds. The attacks (which contain all the hi frequency) would contribute HF to the average. But if the same piano played 20 notes in the same time , the HF average would be nearly 5 times greater. The filter that was produced would be far more effected by the played content, than by the instruments actual sound.
This hasn't taken into acount which notes are being played, which will effect the filter yet again.

Does the I.Q. detect what parts of the sound are attacks, and what parts are not, and average them out seperatly. Does it then crossfade between filters when the second sound is being played.

Does the I.Q. do a pitch tracking, and compensate accordingly. And can it track multipule pitches in a mix and decide what part of the EQ belongs to which pitch.

Maybe they've found an algorythm that takes care of all these problems, but I've afraid that I am very sceptical and suspect that with enough trys of different sound material, one is bound to eventualy get a sound that sounds something like what they are claming it can do.

I would love to be wrong as it would be a very powerfull tool if it worked.

[This message has been edited by pete (edited 05 September 2001).]

IP: Logged

giantbrain
Member
posted 05 September 2001 17:36         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by Bill Meadows:
This is an EQ adjustment based on the average frequency response of the source material.

I have used Ionizer to do exactly this, and it works pretty well. It does an FFT to achieve a 512 band EQ.


Hi Bill

I used Ionizer a long time ago and had forgotten about it unti you mentioned it. I'm hoping to get something like this working in Kyma, but if not Ionizer may be the way to go.

Scott Holden

IP: Logged

giantbrain
Member
posted 05 September 2001 17:46         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by David McClain:
Does this IQ tool perform a time varying match, or does it simply provide a static EQ match as SSC indicates? That is to say, if a performance has characteristics that change over the course of an entire recording session, does the IQ track these changes? Or does it simply adjust to the average of whatever you feed it and then remains at that setting?

- DM


It is a static EQ match. Any changes would be averaged with the rest of the track.

Scott Holden

IP: Logged

giantbrain
Member
posted 05 September 2001 18:06         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by pete:
I'm afraid I'm always a bit suspectiose about manufactures clames.

Just how inteligant is the I.Q.

If it is simply taking the average E Q of one sound and making up a filter that matches that, then if you simply put a similar sound through that filter , it won't match at all .

This is because if the first sound had a 10db boost at 1khz and the second sound had a 20db boost at 1khz the final sound will have a 30db boost at 1khz. Which has made the sound even less like the original.

This is how a vocoder does it (without the averaging the entire sound of cause).

If however we took the average of both sounds and made a filter that was controled by the difference, and then put the second sound through it, we might get somthing similar to the first sound.

This is the idea behind the corrective vocoder.

This would only work if the two sounds were almost identcal in programe material.

If we had the sound of a piano (as the referance sound) that played 4 notes in 5 seconds. The attacks (which contain all the hi frequency) would contribute HF to the average. But if the same piano played 20 notes in the same time , the HF average would be nearly 5 times greater. The filter that was produced would be far more effected by the played content, than by the instruments actual sound.
This hasn't taken into acount which notes are being played, which will effect the filter yet again.

Does the I.Q. detect what parts of the sound are attacks, and what parts are not, and average them out seperatly. Does it then crossfade between filters when the second sound is being played.

Does the I.Q. do a pitch tracking, and compensate accordingly. And can it track multipule pitches in a mix and decide what part of the EQ belongs to which pitch.

Maybe they've found an algorythm that takes care of all these problems, but I've afraid that I am very sceptical and suspect that with enough trys of different sound material, one is bound to eventualy get a sound that sounds something like what they are claming it can do.

I would love to be wrong as it would be a very powerfull tool if it worked.

[This message has been edited by pete (edited 05 September 2001).]



It would be similar to the corrective vocoder but would create an average static eq curve from the source and make the destination match that.

The two sounds would need to be similar to get predictable results. The main thing that I want to use it for is to match newer instrument or vocal takes to older ones.

I don't believe that there is anything really intelligent about the IQ. It's just using FFTs to create eq curves for both sounds. Then it matches one to the other.


Scott Holden

IP: Logged

David McClain
Member
posted 05 September 2001 19:00         Edit/Delete Message   Reply w/Quote
Matching the effects of Ionizer with Kyma should be pretty simple. But you need to build a wavetable ahead of time that can be used as a multiplier with a VCA inside the FFT.

But, as I recall, the Ionizer permits one to define limits above and below which the normal EQ is modified. Noise gating for signals below some definable threshold, and unity gain for signals above the threshold.

That would require a couple more wavetables, a couple of difference operators, and some other routings inside the FFT. But it shouldn't be too hard to do. Ionizer only uses 1024 FFT cells (I presume, since they claim 43 Hz wide filters).

- DM

IP: Logged

SSC
Administrator
posted 06 September 2001 09:44         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by David McClain:
But you need to build a wavetable ahead of time that can be used as a multiplier with a VCA inside the FFT.
- DM

You don't necessarily have to build a wavetable ahead of time. You could use a DelayWithFeedback to average the spectrum and play it back.

IP: Logged

capy66n320user
Member
posted 06 September 2001 10:50         Edit/Delete Message   Reply w/Quote
Hi all,

The standalone Macintosh application SoundView, which was once available from a company named Peabody Digital Soundworks, allows, among other things, the ability to apply the characteristics of one sound onto another. The author of SoundView, Edmund Pirali now with Intelligent Devices (pirali@intdevices.com), may be willing to sell you a copy in lieu of the company's currently marketed IQ TDM plug-in.

SoundView was recently updated to version 1.21 for new copy protection authorization when using Mac OS 9.2.1.

IP: Logged

e-smiley
Member
posted 10 September 2001 20:21         Edit/Delete Message   Reply w/Quote
[QUOTE]Originally posted by pete:

But if you use two live analisis modules then because the left hand signals contains the spectrum info and the right hand signals contain the Pitch info, then by using chanelers and channel join modules you can have the pitch of one and the spectrum of the other.
---
See, that's one of the things that frustrates me about the documentation that comes with the kyma. It's not clear from the documentation that the live analysis module outputs both spectrum and pitch info. Is there an easier way to ascertain which objects put out dual signals and which signal is which?

IP: Logged

SSC
Administrator
posted 10 September 2001 20:57         Edit/Delete Message   Reply w/Quote
A good tool for finding out the answer to questions such as these is the on-line documentation. If you open it up (choose Documentation from the File menu), and use Query in the Search option (you may need to first tell Acrobat about the index that we have provided), you can search all of the documentation at once.

If you search for "spectrum", and then go forward through the matches, you will find several descriptions of the format of the spectral data stream.

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