A reading score

Hamnsignal for Musicians

A slow real-time piece where a warm chordal body, a recurring cantus, rare low replies, and live signals from Gothenburg continually reshape one another.

Basic Gesture

Hamnsignal is a slow real-time ambient piece. It has no meter and no fixed form in the usual sense. The closest analogy is a very slow ensemble score in which a warm chordal body, a recurring cantus, and short city-related gestures continually negotiate with each other.

If the piece were played acoustically, one possible ensemble would be a slow harmonium or string ensemble sustaining soft four-note sonorities, a distant singer, flute, or quiet violin carrying the cantus line, a low cello, bass clarinet, or organ pedal giving the harbour its weight, and muted bells, vibraphone, or airy string harmonics for arrivals. On rare occasions, the low instrument answers the cantus alone.

The important thing is not virtuosity. The notes should feel found, not performed. The timbre is there to hold acceptance, unease, memory, and consolation without becoming dramatic.

A Playable Sketch

A proportional Hamnsignal score excerpt with cantus, harmonic body, civic arrivals, weather pressure, river level, dynamics, attacks, and releases.
A non-canonical proportional score excerpt. It is not a transcription of the running system, but a playable example of its grammar: warm body, soft cantus, civic gestures, and weather-shaped resonance.

Pitch Field

The harmonic world is limited and relatively consonant. The main scene uses roots near D3, E3, F3, G3, A3, and B3.

  • D3: 146.83 Hz
  • E3: 164.81 Hz
  • F3: 174.61 Hz
  • G3: 196.00 Hz
  • A3: 220.00 Hz
  • B3: 246.94 Hz

Above each root, the system chooses simple ratio shapes: 1.0, 1.25, 1.5, 2.0 as root, approximate major third, fifth, and octave; 1.0, 1.25, 1.5, 2.25 as a major sonority with an added-ninth feeling; 1.0, 1.25, 1.875, 2.0 as soft major-seventh colour; 1.0, 1.25, 2.0, 2.5 as hymn-like octave/third spacing; and 1.0, 1.5, 2.0, 2.25 as an open fifth with a warm ninth.

The system avoids aggressive minor seconds, tritone clusters, and overcrowded upper registers. If a new pitch would grind too hard against the active harmony, an existing tone is released or moved. This is an important musical rule: the piece prefers accommodation and avoidance over conflict.

The Harmonic Body

The main layer is ambient_fm_voice. It is not a pure sine pad, but a warm FM and analogue-like body with long attack, long release, slight air, chorus width, and soft filtering.

Each chord is played as separate voices. The voices are gently panned across the stereo image, but not dramatically. A chord normally lasts about 14-24 seconds depending on releaseScale. A single note lasts about 8.5-15 seconds.

Events arrive slowly. At low density there may be about 12 seconds between events; at higher density about 6 seconds. The piece should never feel like an arpeggio or pulse. It is closer to slow breathing.

Occasionally, the upper edge of a chord is given a more diffuse, peripheral colour. This is still part of the harmonic body, not a second cantus. It is quieter than the body around it and may open into a wide, softly detuned pair in the middle register. When a cantus or rare counterpoint response begins, that upper colour yields quickly. The hierarchy remains clear: first the room, then the signal, then silence.

As a performer: play the chords without a marked attack. Let each tone enter as if it was already in the room. Let one voice in each chord sometimes remain longer than the others.

Cantus

The cantus is the most melodic layer of the piece. It is usually played by cantus_voice, sometimes by the more diffuse cantus_high_pad in the higher range. It sits roughly between 360 and 470 Hz, around F#4 to Bb4, though the system adjusts the exact frequency so it fits the current harmonic body.

The cantus is not a free melody. It moves in a small ratio language relative to the living field root:

  • 1.0: home, or a low point of rest
  • 1.125: neighbour tone, leaning, tentative question
  • 1.25: warm arrival, often the most recognizable point
  • 1.5: lift, fifth-like opening
  • 1.875: distant light or near-cadence, used sparingly

The motifs are short and named in the code: plain_opening, neighbor_comfort, hymn_lift, answering_fall, still_refrain, gentle_return, delayed_arrival, hush_and_hold, reach_then_forgive, and unfinished_thought.

The system often reuses motifs, but sometimes mutates them. It tries to avoid perfect arches that simply rise and fall symmetrically. A phrase should instead feel like a spoken memory: begin, lean, hesitate, arrive, or decline to arrive.

As a performer: play the cantus very softly, almost without vibrato, with a long attack. Avoid operatic projection. A good analogy is a single line that does not want to disturb the chord but still has to say something.

Porous Cantus

The cantus has a protective timbral rule. When it rises above a low and open harmonic body, it can otherwise read as an isolated horn or alarm. The rule measures the height of the cantus, the low position of the body beneath it, and the empty interval between them. It works gradually rather than as an on/off switch.

As exposure increases, the direct pitch core becomes quieter and less bright, the entrance slows, and breath, softness, and diffuse motion become more present. The note remains the same note and the melody remains the same melody: this is not a second line and not a separate reverb. It is a way of letting an exposed cantus arrive from inside the room rather than in front of it.

As a performer: when a high cantus note is left alone over a low open chord, reduce its direct tone before reducing its presence. Let air, bow noise, breath, soft overtones, or distance carry the beginning of the note. The listener should find the pitch rather than be called to attention by it.

Thematic States

Opening

Opening is restrained and legible. Density is low, attack and release are long, drift is small, and the harmony seeks readability. The cantus often uses neighbour motion and simple opening motifs. The register is slightly lower and softer than in later states.

Play this as a room slowly lighting up. No phrase should prove anything.

Ascent

Ascent rises without triumph. The roots are allowed to move a little more, the cantus can use hymn_lift, late_bloom, and reach_then_forgive, and register/brightness increase slightly. It is the most forward-moving state, but still subdued.

Play this as an attempt to rise, not as a climax.

Suspension

Suspension holds. The pull toward home is weaker, tonality opens, and phrases may stay on unfinished or delayed arrivals. Chords last slightly longer and events become sparser.

Play this as a question that does not need an immediate answer.

Repose

Repose seeks rest. Memory bias increases, motifs return more often, release becomes longer, and phrase endings are given more time. The cantus tends toward still_refrain, gentle_return, soft_fall, and hush_and_hold.

Play this as if the piece accepts its own weight.

Return

Return is recurrence, not finale. The pull home is strongest here, tonal bias is highest, earlier motifs are invited back, and cadences receive longer pauses. It is the clearest state of recognition.

Play this as returning to a place one cannot keep.

Anchor Motif

Near the beginning, an anchor motif should appear within roughly the first minute. It is a simple warm arch:

1.0, 1.125, 1.25, 1.125, 1.0

After that, the anchor returns roughly every sixth to eighth cantus phrase, if the harmony is clear enough. The anchor can change variant according to live data: strong wind can produce anchor_weather, strong light or movement can produce anchor_lumen, and strong grief or pressure can produce anchor_shelter.

This is a memory system. For a musician, that means certain short phrases should be recognizable when they return, but not like refrains. They should feel like something accidentally remembered.

Rare Low Reply

At long intervals, a cantus phrase may receive one low counterpoint response. It is not a continuous second voice and not harmony added underneath every melody. It appears only in repose or return, after roughly five to seven whole cantus phrases, only when there has been no recent civic arrival and the field has enough empty space.

The reply searches for one open tone around 248-342 Hz. It is darker, quieter, and slower than the cantus. Normally it follows after the phrase has let go; a rarer late form can enter beside the final cantus note, at reduced weight. A second note is possible only as a delayed continuation, never as a parallel companion.

As a performer: do not harmonize the melody. Wait until its meaning has settled, then answer once from below with a long, low tone that can accept silence. If the final cantus note is still dissolving, the reply may enter only as a shadow, never as a duet.

External Data as Musical Forces

External data does not go directly to oscillators. It first enters semantic controls: density, register, spread, brightness, stability, drift, attackScale, releaseScale, and ampScale.

All continuous values are normalized between 0 and 1, smoothed, and allowed to decay when stale. Data should therefore be heard as climate, not as button presses.

Weather

SMHI weather data mainly affects the shared musical body. Temperature from roughly -8 to 24 degrees Celsius increases brightness, raises register slightly, and adds a little stability as it rises. Wind speed from 0 to 20 m/s increases drift, lowers stability, increases spread, and makes the attack slightly longer.

Wind direction weakly affects drift and spread. Precipitation from 0 to 3 mm lowers brightness, increases density, lengthens releaseScale, and lowers stability. Global radiation from 0 to 900 W/m2 increases brightness, density, and register.

Rain has one additional, quiet voice. When the normalized precipitation is above zero, it permits a sparse granular reader to take very short fragments from a rolling memory of the warm body voices. This is not a field recording or an imitation of droplets: it is the work briefly remembering itself. The cantus and its counterpoint are excluded from that memory. The fragments are thin, filtered, and very wide; in stronger rain a rare east-west wind gesture can carry one fragment across the stereo field. With no rain, this layer is silent.

As a performer: with wind, play with more microtonal wavering and wider tone; with rain, play darker and denser with longer resonance. At times, let a nearly weightless trace of the harmony appear far to either side, as if the room were remembering a sound it has just released. With light, let the overtones open.

The River

The Gota alv is read as riverLevel, from Gothenburg RiverService at Eriksberg, parameter Level. The value is normalized roughly between -1 and +1.

Higher river level increases drift, lowers stability, lengthens releaseScale, increases spread, and lowers brightness. It is not its own melody and not a separate water synth. It is a slow undercurrent that makes the whole piece wider, darker, longer, and less fixed.

As a performer: do not think water sound. Think heavier bow pressure, slower resonance, and slightly less certain intonation.

Vasttrafik

Vasttrafik is different from weather and river data. Arrivals become discrete gestures through /ambient/arrival. They do not merely colour a slow control; they start their own short-lived instrumental events.

E45 Traffic Flow

Traffic flow is also different from weather. It does not change tempo continuously or turn raw speed into percussion. Three E45/Oscarsleden segments are read in one shared traffic request every two minutes from 03:00 to 21:00 and every ten minutes from 21:00 to 03:00: Järntorget, Rosenlund, and Gullbergsvass. The observed pressure remains available to clients around the clock, but only confirmed, spatially shared pressure during the musical gate may gradually admit a fixed 152 BPM drum field. It can arise from a queue across at least two sections below 46 km/h with meaningful flow, or from unusually high combined movement in at least two sections. Five fresh readings are required: ten minutes of confirmation. When speed and movement have both clearly eased for four minutes, the field withdraws gradually.

The relay exposes the observed traffic pressure as normalized_value and keeps the sound permission separate as musical_value. The latter is 0.0 during the 21:00-03:00 gate even if traffic pressure is present. A daytime confirmed state is sent in the range 0.45-1.0; SuperCollider treats any value above 0.003 as permission to fade the drum field in. The fade follows its own slow level follower, moving five percent of the remaining distance each second, so the arrival and withdrawal are not hard switches.

The pattern is intentionally invariant while it is present: a low kick on every eighth note, a dry backbeat on beats two and four, dark quarter-note cymbal ticks, and one quiet open tick after the fourth beat. There are no fills, no tempo changes, and no accent pattern. The observed traffic value does not alter the arrangement. Within a confirmed state the musical value only changes the voice amplitude modestly: 0.45 maps to 72 percent of its base amplitude and 1.0 maps to 100 percent. This is a translation of a situation rather than an imitation of traffic: temporary civic regularity enters the harbour field without becoming an alarm or a stressed heartbeat. The drum field has its own dry, filtered route and does not enter the large master reverb.

Ferries

Ferries usually use ambient_fm_voice, the same warm body instrument as the chords, but shaped as a specific arrival gesture. They are low to low-mid frequency, roughly 72-210 Hz, with a quicker attack than the body and a release around 11.5 seconds. Branno Husvik is a little brighter and slightly left; Branno Rodsten is darker, softer, and slightly right.

As a performer: the ferry is a low landing. Play it like a muted bass or cello tone answering the room, not like a signal.

Trams

Trams use ambient_high_pad, a brighter and airier pad instrument. They sit roughly between 220 and 420 Hz, with attack around 1.4 seconds and release around 8.8 seconds. Masthuggstorget makes the tram gesture more lateral, slightly shorter, and a little brighter. The line name produces small colour differences and determines the pan side.

As a performer: the tram is a distant urban reflection. Play it lighter, higher, and more lateral than the ferry.

The Internal Conductor

In addition to live data, there is an internal conductor, city_conductor. It is not a data source but a slow dramaturgical personality. It wanders in epochs of roughly 4-18 minutes, with even slower biases over 6-48 hours.

More harbour gives more spread, slightly higher register, and a little more density. More sea gives longer releaseScale, darker timbre, and more stability. More coastal weather gives more drift, less stability, and darker timbre. Social pressures darken the timbre and make the music sparser, lower, quieter, and longer.

The conductor also determines how much different live sources are allowed to influence the piece. Weather is strong only when coastal weather permits it; tram data is filtered through tram continuity; ferries through harbour and sea.

Playing a Simplified Version

Choose a low root: D, E, F, G, A, or B. Build a warm four-note sonority using root, major third, fifth, and octave or added ninth. Let it ring for 15-25 seconds.

Place a cantus above it in the middle/high register. Use only the steps home, neighbour, warm third, fifth, and sometimes major seventh. Play 3-6 notes per phrase. Repeat motifs, but change one note occasionally. When the line is high and isolated, let its direct tone soften into air rather than becoming more emphatic.

Only after several whole cantus phrases, and only in a clear field, allow one low answer around 248-342 Hz. Let it follow the phrase or enter very quietly beside its fading last note. Do not turn it into a second melody.

When it is windy: make the sound wider and less stable. When it rains: make it darker, denser, and longer. When the river is high: make it lower, wider, and more lingering. When a ferry arrives: play a low landing gesture. When a tram arrives: play a shorter, brighter gesture to the side.

If you must choose one rule: let every musical event sound as if it accepts what is already sounding.