Well, it is actually complicated. Those circles of disturbance in the air are still there (until they lost all the energy - converted to heat). But you can hear them at constructive interference points only. It is a subtle thing. Months ago I linked a Feynman lecture about a similar interference phenomenon.
The key is: we encounter a so called minimization problem. The interference is constructive where the variation of phase shift is zero.
(Similarly: the mirror reflects the light everywhere, but there is only one constructive path. So this is why the mirror works as it works. From other reflection ponts the phase cancels each other light rays.)


Now I will ask AI to correct me - at least my grammar.
- Your mention of constructive interference is interesting. Indeed, the waves created by the supersonic object can interfere with each other. The sound of the shock waves (the sonic boom) can be heard only at certain constructive interference points, where the phases align.
- As the waves propagate, they lose energy (primarily converted into heat or diffused), and you can hear the boom less clearly as the shock wave disperses. In essence, the energy is no longer focused in a single direction or at the specific points of constructive interference that initially created the sonic boom.
Your explanation of the “minimization problem” and phase shift sounds right. In physics, this is a key concept in wave interference where waves interact with each other, and only at certain points (constructive interference), do you experience amplified effects (like the boom). Otherwise, at destructive points, they cancel out.
Absolutely—your explanation is conceptually rich and quite thought-provoking. Here’s a refined version of your answer with improved grammar, clarity, and flow, while preserving your original intent and style:
Revised Answer:
Well, it’s actually quite complicated. The circular disturbances in the air—generated by the projectile—still persist for a while, until their energy dissipates (mostly converted into heat). However, you can only hear them at points of constructive interference. It’s a subtle phenomenon. A few months ago, I linked a Feynman lecture that discussed a similar interference effect.
The key idea here is that we’re dealing with a minimization problem. Constructive interference occurs where the variation in phase shift is zero—those are the points where the sound waves reinforce each other.
It’s similar to how a mirror reflects light: the mirror reflects light from every point on its surface, but only one path leads to constructive interference at the observer’s eye. That’s why the mirror appears to reflect light in a specific direction. From other reflection points, the light rays interfere destructively and cancel each other out.
Tell me which video it is. I created a tool to read frame timing from mp4.
(Oh, maybe I have to fix the endianness of version.)
switch ( atomType ) { case beFtypAtom: // Big Endian levelSpacing( level ); Console.WriteLine( "Found BE ftyp atom" ); // byte[] majorBrandBytes = reader.ReadBytes( 4 ); string majorBrand = System.Text.Encoding.ASCII.GetString( majorBrandBytes ); levelSpacing( level ); Console.WriteLine( "Major Brand: " + majorBrand ); // uint minorVersion = swapEndianness( ReadUInt32( reader ) ); levelSpacing( level ); Console.WriteLine( "Minor Version: " + minorVersion ); stream.Seek( AtomSize - 8 - 8, SeekOrigin.Current ); // Skip this atom showCurrentPosition( stream, level ); break;
it looks better:
frameReader
atom: 0x70797466, ftyp, BE atomSize: 32, Listed
Found BE ftyp atom
Major Brand: isom
Minor Version: 512
atom: 0x65657266, free, BE atomSize: 8, Listed
Found BE free atom
atom: 0x7461646D, mdat, BE atomSize: 3956947, Listed
Found BE mdat atom
atom: 0x766F6F6D, moov, BE atomSize: 26244, Listed
Found BE moov atom
private const uint beFtypAtom = 0x70797466; // 'ftyp' BE atomSize: fix 32 private const uint beFreeAtom = 0x65657266; // 'free' BE atomSize: fix 8 private const uint beMdatAtom = 0x7461646D; // 'mdat' BE atomSize: var 3956947 private const uint beMoovAtom = 0x766F6F6D; // 'moov' BE atomSize: var 33713 private const uint beMvhdAtom = 0x6468766D; // 'mvhd' BE atomSize: fix 108 private const uint beTrakAtom = 0x6B617274; // 'trak' BE atomSize: var 19468 private const uint beUdtaAtom = 0x61746475; // 'udta' BE atomSize: fix 98 private const uint beTkhdAtom = 0x64686B74; // 'tkhd' BE atomSize: fix 92 private const uint beEdtsAtom = 0x73746465; // 'edts' BE atomSize: fix 36 private const uint beMdiaAtom = 0x6169646D; // 'mdia' BE atomSize: var 19332 private const uint beMdhdAtom = 0x6468646D; // 'mdhd' BE atomSize: fix 32 private const uint beHdlrAtom = 0x726C6468; // 'hdlr' BE atomSize: fix 71 private const uint beMinfAtom = 0x666E696D; // 'minf' BE atomSize: var 19221 private const uint beVmhdAtom = 0x64686D76; // 'vmhd' BE atomSize: fix 20 private const uint beDinfAtom = 0x666E6964; // 'dinf' BE atomSize: fix 36 private const uint beStblAtom = 0x6C627473; // 'stbl' BE atomSize: var 19157 private const uint beSmhdAtom = 0x64686D73; // 'smhd' BE atomSize: fix 16 private const uint beStsdAtom = 0x64737473; // 'stsd' BE atomSize: fix 169 private const uint beSttsAtom = 0x73747473; // 'stts' BE atomSize: fix 24 private const uint beStssAtom = 0x73737473; // 'stss' BE atomSize: fix 172 private const uint beCttsAtom = 0x73747463; // 'ctts' BE atomSize: var 4560 private const uint beStscAtom = 0x63737473; // 'stsc' BE atomSize: var 7048 private const uint beStszAtom = 0x7A737473; // 'stsz' BE atomSize: var 4176 private const uint beStcoAtom = 0x6F637473; // 'stco' BE atomSize: var 3000 private const uint beSgpdAtom = 0x64706773; // 'sgpd' BE atomSize: fix 26 private const uint beSbgpAtom = 0x70676273; // 'sbgp' BE atomSize: fix 28 private const uint beIodsAtom = 0x73646F69; // 'iods' BE atomSize: fix 21 private const uint beCslgAtom = 0x676C7363; // 'cslg' BE atomSize: fix 32 private const uint beSdtpAtom = 0x70746473; // 'sdtp' BE atomSize: var 1013