AbdulHafeez AbdulRaheem
Published on

Experiment #1: Why Does the Goalpost Sound Different?

Authors
  • avatar
    Name
    AbdulHafeez AbdulRaheem
    Twitter

Experiment #1: Why Does the Goalpost Sound Different?

Try the Interactive Simulation: Experience the physics yourself with the interactive 3D simulation. Adjust the angle, speed, and spin to hear how they affect the sound.

The Spark

Playing FIFA late one night, I hit the post. That sickening "PING" when you know it's not going in. But then I noticed something: a direct strike made a deep "DONG" while a glancing blow produced a sharp "PING." And when the ball had curl on it? The sound had an extra edge. Same post, same ball, different sound. Why?

The Physics of Angle

It comes down to energy transfer, contact time, and vibration modes.

Energy Transfer follows a sin2(θ)\sin^2(\theta) relationship. When a ball hits the post, its kinetic energy splits between the ball's rebound and the post's vibration. A direct hit (90 degrees) transfers maximum energy. A glancing blow (15 degrees) keeps most energy in the ball.

EsoundEtotalsin2(θ)E_{\text{sound}} \propto E_{\text{total}} \cdot \sin^2(\theta)

At 90 degrees, you get full transfer. At 15 degrees, only 6.7%. Direct hits are roughly 15x louder.

Contact Time matters because a direct hit compresses the ball for 8-12ms, while a glancing blow barely touches at 2-4ms. Longer contact excites the post's fundamental vibration modes (deep sound). Short impulses excite higher harmonics (sharp ping).

Adding Spin: The Magnus Effect

Here's where it gets interesting. A spinning ball doesn't travel in a straight line. The Magnus effect creates a pressure differential: the side of the ball spinning into the airflow has higher pressure, pushing the ball sideways.

Fmagnus=0.5ρACLv2F_{\text{magnus}} = 0.5 \cdot \rho \cdot A \cdot C_L \cdot v^2

Where ρ\rho is air density, AA is cross-sectional area, CLC_L is the lift coefficient (proportional to spin rate), and vv is velocity. A ball spinning at 600 rpm traveling at 25 m/s experiences roughly 2-3 Newtons of lateral force, enough to curve the trajectory by 30-50cm over 8 meters.

On Impact, spin adds another layer. Friction between the spinning ball and post surface transfers angular momentum. Sidespin deflects the rebound laterally. The friction also creates a high-frequency "scraping" component in the sound.

Deriving Realistic Goalpost Frequencies

This is where I went down a rabbit hole. I wanted the simulation's sound to actually match what a real goalpost sounds like, not just some generic "metallic" sound effect.

The Reference: Harvard's Aluminum Rod Experiment

Harvard's Natural Sciences Lecture Demonstrations provides a perfect reference point. Their aluminum demonstration rod measures 1/2 inch diameter and 1.16 meters long and produces a fundamental frequency of 2,260 Hz when struck.

From this, we can derive that the speed of sound in aluminum is approximately 5,240 m/s using the relationship for longitudinal waves in a rod:

f=v2Lf = \frac{v}{2L} 2260=v2×1.162260 = \frac{v}{2 \times 1.16} v=5240 m/sv = 5240 \text{ m/s}

The harmonics follow predictable patterns:

  • 2nd harmonic: 4,520 Hz (2×2 \times fundamental)
  • 3rd harmonic: 6,780 Hz (3×3 \times fundamental)
  • 4th harmonic: 9,040 Hz (4×4 \times fundamental)

Scaling to a Goalpost

A regulation goalpost is quite different from Harvard's demo rod:

  • Height: 2.44m (8 feet) vs 1.16m
  • Diameter: 10-12cm (4-5 inches per FIFA regulations) vs 1.27cm
  • Material: Aluminum or steel tube (hollow) vs solid aluminum rod

For a 2.44m aluminum tube, the fundamental frequency calculates to:

f=52402×2.44=1073 Hzf = \frac{5240}{2 \times 2.44} = 1073 \text{ Hz}

However, this is for longitudinal waves. When you strike a tube, transverse (bending) vibrations actually dominate, and hollow tubes have inharmonic partials, meaning the overtones aren't simple integer multiples of the fundamental. Research on tubular bells and metal pipes shows partial ratios closer to:

  • Fundamental: f1f_1
  • 2nd partial: 2.76×f1\approx 2.76 \times f_1
  • 3rd partial: 5.4×f1\approx 5.4 \times f_1

This inharmonicity is what gives metallic sounds their characteristic shimmer, it's why a bell doesn't sound like a guitar string.

Impact Position Matters

Here's the key insight: where the ball hits the post affects the frequency. The post vibrates differently depending on the impact location:

// Effective vibrating length decreases with higher impacts
const effectiveLength = postHeight * (1 - normalizedAngle * 0.4)
const fundamentalFreq = 5240 / (2 * effectiveLength)

A low hit (near the ground) lets the full 2.44m vibrate (~1073 Hz). A high hit near the crossbar shortens the effective length (~1790 Hz). This matches intuition: high crossbar hits sound "pingier" than low post hits.

The Sound Synthesis Implementation

Armed with real physics, I rebuilt the audio engine in Web Audio API.

Layer 1: Impact Transient

The initial "click" of ball meeting metal. This is a short noise burst (30ms) filtered through a bandpass around 3-5 kHz, with exponential decay. The ball's deformation creates this broadband impulse.

const impactBuffer = ctx.createBuffer(1, ctx.sampleRate * 0.03, ctx.sampleRate)
const impactData = impactBuffer.getChannelData(0)
for (let i = 0; i < impactData.length; i++) {
  const t = i / ctx.sampleRate
  impactData[i] = (Math.random() * 2 - 1) * Math.exp(-t * 150)
}

Layer 2: Fundamental Mode

The main "ring" of the post. A sine wave at the calculated fundamental frequency, with attack and exponential decay envelope. The frequency drops slightly over time as vibration energy dissipates.

f1.frequency.setValueAtTime(fundamentalFreq, now)
f1.frequency.exponentialRampToValueAtTime(fundamentalFreq * 0.97, now + ringDuration)

Layer 3: Inharmonic Partials

Two additional sine waves at 2.76x and 5.4x the fundamental create the metallic character. These decay faster than the fundamental, matching how high-frequency modes lose energy more quickly.

Layer 4: Angle-Dependent Components

Glancing blows (low angle): Short contact time means higher harmonics are emphasized. I add a "ping" layer around 3-4 kHz and a "ting" at 4.8 kHz for very glancing hits.

Direct hits (high angle): More energy transfer means more structural vibration. I add a sub-bass "thud" around 80-120 Hz (ball compression) and a body resonance at half the fundamental frequency.

Layer 5: Spin Friction

For spinning balls, a filtered noise burst simulates the scraping of leather across aluminum. The filter frequency scales with spin rate, higher spin = higher frequency scrape.

The Stats Panel

The simulation displays physics-derived values in real-time:

  • Impact Angle: The angle of incidence
  • Contact Time: 2-12ms, scaled by angle
  • Energy Transfer: sin^2(theta) percentage
  • Frequency: The calculated fundamental in Hz
  • Spin Rate: RPM from the spin slider
  • Magnus Force: Calculated lateral force in Newtons
  • Deflection: Expected curve in centimeters

Conclusion

The goalpost doesn't care if it's FIFA or a World Cup final. It rings according to the same laws of physics. A 15 degree glancing blow at 1,750 Hz produces a sharp "PING" with emphasized high partials. An 85 degree direct hit at 1,100 Hz produces a deep "THUD" with more fundamental energy and bass components.

The simulation now uses frequencies derived from actual aluminum tube physics, not arbitrary values. Try it yourself. You might finally understand why that crossbar hit hurts so much.


Sources


Want to experiment yourself? Check out the interactive simulation where you can adjust angle, speed, and spin in real-time.