Last week, one of my students brought me a composition he made, which was using combination tones in an interesting compositional context, and that gave me a nudge to do some experimenting on the issue, here I’ll share what I’ve found interesting.
This is a psychoacoustic phenomenon in which, when at least two tones with close fundamental frequencies are sounded together, another tone whose frequency is the sum or difference of the original two tones is heard. This “ghost” tone is purely made up by the human ear and brain. That is, if you inspect the spectrum of the two tones with a spectrogram, this ghost tone simply isn’t there. However, this tone is usually quite faint (unless the amplitude of the original tones are high) so one needs to concentrate to get it, but it’s not very hard either.
Here is an example, this is a 200 Hz sine tone:
{ SinOsc.ar(200).dup }.play
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
And here it is in the spectrogram:
And here is 1000Hz and 1200Hz sine tones mixed together. The difference of their frequencies (200Hz) is also audible, if you pay attention (works best with headphones, but also audible with speakers. If you can’t hear it, turn the volume up):
{ SinOsc.ar([1000, 1200]).mean.dup }.play
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
If you can hear it, great. Here is the spectral decomposition:
Notice that there is nothing below 1000Hz here, the 200Hz tone you’ve just heard isn’t really there. As I said, this is a well known phenomenon in which the non-linearities of the inner ear causes this difference tone to be heard. Wikipedia states (although without citing a source) that, giving the two tones with different frequencies separately to each ear with headphones also create the effect but I was unable to experience this that way.
Here comes the fun part of this post, you can play several tricks with pure tones and use this ghost tone in creative ways. Here is a glissando of two pure sine tones. One oscillator starts from 4000Hz and goes down to 1000Hz, the other starts from 4200Hz and ends at 1200Hz. So the difference of their frequencies throughout is always 200Hz, so you should hear a constant (although sometimes fluctuating) 200Hz tone while the high frequencies are doing their gliss:
(
{
var freqSweep = Line.ar(4000, 1000, 10);
SinOsc.ar([freqSweep, freqSweep + 200]).mean!2;
}.play
)
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
Look at the spectral decomposition, and the 200Hz tone isn’t there again:
You can even go to the extremes! Here, the frequencies of the sine tones change randomly 8 times a second, but the difference of 200Hz is preserved, so you are still able to hear the constant 200Hz (not very pleasant to listen to but hey, it’s a cool effect!):
(
{
var baseFreq = TRand.ar(1000, 2000, Impulse.ar(8)).lag(0.01);
SinOsc.ar([baseFreq, baseFreq + 200]).mean!2;
}.play
)
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
Here they are changing 32 times a second randomly, but preserving the 200Hz separation, this is harder to hear, and fluctuates a bit, but the effect is there:
(
{//best through headphones
var baseFreq = TRand.ar(1000, 2000, Impulse.ar(32)).lag(0.01);
SinOsc.ar([baseFreq, baseFreq + 200]).mean!2;
}.play
)
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
-
And here is the grand finale of combination tones for this post. In the previous examples, we always kept a 200Hz separation between two oscillators and heard a constant difference tone. What if we craft the separation frequency in a way that the difference frequency plays a melody while the upper frequencies change randomly, even at 32 times a second? Can you hear the “bottom” melody here? Any guesses what it might be?
(
{
var times = Dseq(((1!12 ++ [1.5, 0.5, 2])!2).flat / 2, 1);
var pitchBase = [55, 55, 56, 58, 58, 56, 55, 53, 51, 51, 53, 55];
var pitches = Dseq((pitchBase ++ [55, 53, 53] ++ pitchBase ++ [53, 51, 51]).midicps, 1);
var freqs = Duty.ar(times, 0, pitches, doneAction: 2);
var baseRandFreq = TRand.ar(1000, 2000, Impulse.ar(32)).lag(0.01);
SinOsc.ar([baseRandFreq, baseRandFreq + freqs]).mean!2;
}.play;
)
Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.
Not the most beautiful thing to listen, but try to hear the ghost melody at the bottom. Your ears and brain are playing tricks on you, and observing it is worth the suffering, in my opinion. Use the comment box if you can hear it and want to hazard a guess…



23 Comments
freude schöner götterfunke ..
this is cool, Batuhan!
in a very geeky kind of way ..
thanks for posting,
eddi
That is correct. eddi.
I can’t hear it at all unless I turn it up. Is it possible that the combination tone is actually present due to some nonlinear distortion?
Yeah, in a way that is what they think. It needs to hurt the ear “a bit” to hear it. Non-linearity of the inner ear comes into play here, and some also say that this is also a result of a neural phenomenon (like binaural beats, in some cases, giving the two different frequencies to two different ears with headphones also create the phantom tone in head, they say. Although I couldn’t really experience it, but did not try hard either).
ODE TO JOY… Amazing…
Jacob Kirkegaard has a nice piece making use of this effect (tartini tones). I saw it performed last year, on a 12 (or possible 15?) speaker array, which was absolutely bizarre – my ears have never been so confused.
http://touchshop.org/product_info.php?products_id=251
Hi Batuhan!
this is one of my favorite irritating sounds, you can make even harmony with this.
try this lullaby
(
SynthDef(\diffalea, { arg freq = 220, gate = 1, amp = 1, lowFreq = 1000, hiFreq = 1500;
var freq1 = Rand(lowFreq, hiFreq);
var freq2 = freq1 – freq;
var env = EnvGen.kr(Env.asr(0.01, 1, 0.01, 1, ‘linear’), gate, doneAction: 2);
Out.ar(0, Mix(SinOsc.ar([freq1, freq2], 0.5pi.rand, mul:amp*env))!2);
}).memStore;
~freqs = [48, 50, 52, 48, 48, 50, 52, 48, 52, 53, 55, 52, 53, 55, 55, 57, 55, 53, 52, 48, 55, 57, 55, 53, 52, 48, 50, 44, 48, 50, 48, 50].midicps;
~duras = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 0.5, 0.5, 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 0.5, 1, 1, 1, 1, 2, 1, 1, 2];
)
(
Pbind(
\instrument, \diffalea,
\lowFreq, [2200, 1200, 3200], \hiFreq, [2400, 1400, 3400],
\freq, Pseq(~freqs+[0, 0, 0], inf),
\dur, Pseq(~duras+[0, 0, 0], inf),
\legato, 1,
\strum, 8
).play(TempoClock(1));
)
Cheers!
There are software that claim to change your brainwaves using binaural beats like these. I’m not sure if we can call yours “binaural beats” though; as far as I remember, the frequency difference should have been smaller.
Interesting article. Thanks for sharing it.
Hi ec,
Nope, this is quite different from binaural beats. I’ve learned quite a lot about the concept after writing this post, and frankly, I’m quite embarrassed to keep this here because it is kinda naive considering the great works I’ve discovered that exploits this phenomenon. It still points to some limits of the system though…
The low frequency sound here is actually emitted by your very own ears, and can even be recorded with a mike (if placed close to your ear canal)! It’s called otoacoustic emission, if you want to search about it.
Oh, I am mistaken then.
An interesting physical phonemenon, indeed.
Thats amazing it’s like an echo chamber in my ear. Cool stuff.
Looking forward to more from you. Thanks.
just came across this again while looking for your Deep Note article — really cool, thanks for taking the time to write it up!
eddi
this is really cool. in music there is a concept that i think is the same. when one note is played in tune by two instruments another note can be heard above it called an overtone. that is what these sound like. once again really cool!
Very cool post. Have known about these difference tones for a while but this was an awesome demonstration
Great example. Even though I think my head hurts a bit now lol
Very nice, i had to listen to it twice before hearing Ode to Joy.
Very cool demo. Thanks for putting in the work to put this together. Much appreciated!
I was not able to hear it until I turned it up quite loud. It’s almost painful to hear.
How do you know that the nonlinearity is in the ear/brain, and not in the sound card or speakers?
Hi David, it is because the effect is there when each tone is provided by a different speaker. The examples above are in stereo, and each speaker plays a single tone. If you turn down your left sound monitor for example, you will hear one tone from your right speaker. If you turn down right only, you will hear a single tone from the left. If both are on, you will hear three tones.
You can also record the output with a mic and observe the spectrogram though I’ve never tried it.
Actually if I know correctly, most of the combination tones you hear are emiitted by your ears physically (that is if your ers are healthy, this is called otoacoustic emission). I’ve read that doctors use special microphones attached to your ear to capture these combination tones emitted from the ear to see if your ear is physically ok in some way.
http://en.wikipedia.org/wiki/Otoacoustic_emission
OOI! shit! That hurt! omg ._: auuh
Excellent! Looking for some examples of this phenomenon and found great ones!
Absolutely fantastic! I love it!