Reading the live score
BPM is the musical pulse: beats per minute. The starting tempo is set in Studio; the current default is 68 BPM. Aircraft activity and optional Weather mood adjust its target, while Opening, Flow, Lift and Drift shape the arrangement.
What sets the tempo?
The target is the Studio tempo, adjusted for weather when enabled, plus a small activity lift. In live mode, the default threshold in Studio is 12 moving aircraft in the five-mile listening area. Up to that count adds no extra speed; above it, the lift grows gradually to a maximum of 6 BPM at 30 aircraft. Aircraft tracked farther away do not affect the music or its tempo.
With Weather mood on, sunlit daytime conditions raise the base target by 12%, rain lowers it by 6%, snow lowers it by 18%, and night adds a further 15% reduction. From a 68-BPM base, that is approximately 76 in sunshine, 64 in daytime rain, 56 in daytime snow or 58 on a clear night, before the activity lift. Weather also changes softness, brightness and percussion.
Changes settle gently: activity smooths over about three seconds and weather over about five. At each new bar, the tempo moves partway toward the current target. The rounded BPM on screen can therefore take several bars to settle.
What do Opening, Flow, Lift and Drift mean?
These are automatic musical stages, each lasting eight bars. They progress with the musical clock rather than being selected by traffic or weather.
| Stage | What you hear |
|---|---|
| Opening | A gentler level, introducing the musical material. |
| Flow | A fuller level, keeping the piece moving. |
| Lift | The strongest level, with an extra bass accent when rhythm is active. |
| Drift | A quieter level, with percussion removed. |
The sequence then returns to Opening. A change to Lift does not directly increase BPM; a simultaneous tempo change comes from activity, weather or the tempo still settling.
What does “phrase 3/8” mean?
The current display counts bars within the phrase: “phrase 3/8” means the third bar of an eight-bar phrase. A bar contains four beats. Eight bars form one phrase, and four phrases form the 32-bar Opening → Flow → Lift → Drift arrangement cycle.
At a steady 68 BPM, one bar lasts about 3.5 seconds, one eight-bar phrase about 28 seconds, and the full four-stage cycle about 1 minute 53 seconds. Those durations change with the tempo.
Why can it feel like a loop?
The chord progression currently repeats every eight bars. Melodic choices shift between phrases, sections change the energy and rhythm, and aircraft enter, leave and move through their notes. It is an evolving generative piece with a repeating musical framework, rather than a recorded loop.
A longer 16- or 24-bar phrase could make the structure feel more expansive if the chords and motifs develop across that whole span. Repeating the same eight-bar material twice or three times would still retain that familiar loop. A useful future experiment would be a 16-bar phrase whose second half answers or varies the first.
Aircraft play the instrument.
Live aircraft observations from ADSB.lol play an original, evolving ambient composition. Eight-bar harmonic phrases move through opening, flow, lift and drift sections. Chords, a soft bass line and restrained percussion create a musical foundation. Each aircraft has a stable melodic motif; its buffered altitude varies the notes, its motion selects a voice, and its map position pans that voice. The scale, root, tempo and layer levels are editable in Studio. Nothing is a pre-recorded song. Coloured links show each flight’s contribution, and choosing a flight highlights its path and wave. A 15-second playback buffer eases aircraft positions, headings and altitude between received observations. Trails follow the buffered path, with no prediction beyond the latest received position. Long gaps are not interpolated. The music follows the same buffered state, with gradual intensity changes. Initial connection needs about 15 seconds of observations before the composition begins. The map uses a local ground projection with a controllable perspective camera. Airport footprints are community-mapped; building heights and the vertical altitude scale are approximate, not navigation data.
Calm has room to breathe.
More observed aircraft shorten the space between notes and brighten the texture. The server shares one ADSB.lol request every 10 seconds between listeners. Positions older than 30 seconds are removed, and feed failures are labelled. No activity or no fresh data means no new notes; existing tones decay into silence. Each flight has a separate audio meter. Coloured ribbons use its measured sound energy, with visual amplification so quiet ambient notes are visible; their flowing shapes are artistic, not a raw oscilloscope. The white thread combines the flight envelopes. Mute flattens the waves. The circular airfield pulse places observed ground-aircraft density around a compass ring, with stronger peaks following the five-mile listening mix. Its density outline remains visible when muted. Local modelled weather is shown beside Heathrow. The optional Weather mood toggle brightens and quickens the music in clear/partly cloudy daylight, darkens rain, relaxes night-time tempo and softens snow. Day/night comes from the airport weather feed. Changes ease in gradually; stale or unavailable weather returns to the base mix. Weather data comes from Open-Meteo, with JetClock-style Meteocons icons. Manual weather, holding and disruption scenarios remain available in the labelled simulation mode in Studio.
What the feed can tell us
The live composition focuses on Heathrow’s airfield and narrow corridors extending ten statute miles (about 8.69 nautical miles) from runway thresholds. Funnels widen from 0.45 nautical miles either side of a runway to 3 nautical miles at their outer ends. Approaching aircraft are limited to 6,000 feet and within 35 degrees of either runway direction. Climbing aircraft may reach 12,000 feet and turn progressively farther from runway alignment. Once a departure has been observed inside a funnel, it can remain included for up to 60 seconds after leaving it, while still within the 11-nautical-mile query area and freshness limit. Only aircraft inside five statute miles of their nearest runway threshold contribute to the music or signal ribbons. The distance follows the buffered map position; existing voices fade at the boundary. Farther aircraft stay visible with a view-only distance label. We display only newly received positions; that follow-through never predicts a departure’s path. Ground observations are bounded to the illustrative airfield area. The server requests an 11-nautical-mile circle to cover those corridors, then applies these tighter filters. This removes most passing traffic, but position alone cannot confirm airport association. The closer airfield is drawn from a cached OpenStreetMap extract. Use the map’s 2D and 3D buttons, mouse wheel or zoom buttons, and drag to pan. Right-drag or Shift-drag changes tilt and bearing. Compact tilt/rotation sliders appear below 3D, and stay hidden in 2D. The gear menu groups Flight IDs, Reset and Fit 10 mi. Click empty map space or elsewhere on the page to clear a selected aircraft. Reset returns to the closer airfield; Fit shows the full tracking area. Keyboard users can focus the map: arrows pan, Shift-arrows orbit, +/− zoom, R resets and C toggles Flight IDs, and Escape clears selection. Buildings use mapped footprints with approximate heights. Aircraft altitude is barometric, shown with a labelled 1.6× vertical exaggeration. Airborne tails fade over the preceding 20 seconds of buffered playback, without retaining older positions. Holding stacks and queues are not inferred or included as live features. Descending/climbing musical roles begin from observed vertical rates beyond ±192 feet per minute. Recently observed departures retain their departure voice during the bounded follow-through window, including while levelling off. Reception coverage can miss aircraft, especially on the ground. ADSB.lol may include MLAT and rebroadcast positions alongside ADS-B. Weather conditions are modelled local conditions from Open-Meteo, not METAR or runway wind observations. The shared weather cache refreshes every ten minutes; conditions older than 45 minutes do not influence the music. Local weather mood is optional and remembered in this browser. Meteocons icons are by Bas Milius (MIT).
You choose when to listen.
Enable audio once, then adjust volume or mute. Aircraft and the composition continue without playback controls. Your browser may suspend sound in the background; return here and use Resume audio if needed.