How It Works

Landing Page: Web Activity

Press start, sit back and relax, while Webarmonium transforms real-time web activity into generative music and visuals through a direct correlation system. Three data sources are polled continuously: Wikipedia edits (every 5s), HackerNews posts (every 10s), and GitHub pushes (every 60s). Each source feeds metrics into a dynamic normalization engine that tracks historical min/max values rather than using fixed thresholds—this ensures maximum musical variety as the system adapts to actual data patterns over time.

Monitored parameters include: edit rate, velocity (rate of change), edit size, new article count, post frequency, upvote averages, comment counts, push frequency, repository creates, and deletes. These metrics generate virtual gestures that feed into a deterministic composition system—every musical decision derives directly from input data. The CompositionEngine selects musical forms based on energy level (low energy → contemplative forms like theme_and_variations, high energy → energetic forms like sonata). PhraseMorphology transforms gesture acceleration into rhythm variation (positive acceleration = rushing, negative = dragging) and curvature into syncopation. The HarmonicEngine selects progressions by complexity level, ensuring tonal coherence through voice leading.

Velocity (the ± value in the dashboard) represents the rate of change of each metric: positive values indicate increasing activity, negative values indicate decreasing activity. Only sources with significant velocity trigger musical events, preventing sonic overload and mimicking natural human interaction patterns.

Audio-visual coherence: Each source has a distinct audio identity. Wikipedia plays in bass tessitura (110-220Hz, A2-A3) with sawtooth waves (rich harmonics), HackerNews occupies the tenor range (196-392Hz, G3-G4) with pure sine tones, and GitHub sounds in soprano frequencies (523-1047Hz, C5-C6) with hollow triangle waves. Cursor positions are calculated using a golden ratio distribution system—each cursor's X and Y coordinates are independently derived from gesture counters and multiple metrics. Visual pulses and particle flows respond to the same gesture data that drives the audio.

Background Composition Layer

Background music emerges organically in response to gestures: each parameter that feeds the composition algorithm is derived from user interactions in the room. No artificial or mechanical source has been used, just the room's activity metrics.

The CompositionEngine uses a form-driven architecture: it selects musical forms (sonata, ABA, verse_chorus, rondo, etc.) based on the room's energy and dominant genre, then generates compositions section by section. Each section carries distinct harmonic tension, rhythmic density, and dynamic contour. A full three-voice counterpoint (melody, harmony, bass) is always active, providing a rich polyphonic texture. An AccompanimentEngine adds three supporting layers—bass, pad, and keys—each with genre-specific patterns (walking bass for jazz, arpeggios for electronic, power chords for rock, Alberti bass for classical).

The system selects from nine genres—ambient, electronic, jazz, rock, classical, melodic, rhythmic, experimental, and pop—each with distinct BPM ranges, articulation styles, swing amounts, and synth timbres. Harmonic modulation is form-driven: key changes occur only at section transitions, governed by genre-specific modulation profiles. Tonal centers stay stable within sections, ensuring coherent harmonic movement.

Musical scheduler: All notes are clock-synchronized using Tone.js Transport with 25ms precision. Remote events snap to sixteenth-note boundaries, ensuring global synchronization despite network latency.

Collaborative Rooms: Real Users

In collaborative rooms, you can create music through gestures: tap for percussive or sustained (hold the tap) notes and drag for melodic phrases.

Multi-user composition: Up to 4 jammers can create polyphonic compositions together, with background accompaniment. The system validates counterpoint rules to ensure musical coherence. When only one real user is present, two virtual users (from web metrics) automatically join in.

Listen Mode: You can also join a room as a listener—hear the music and watch the visuals without performing gestures. Listeners don’t count toward the room’s 4-jammer capacity. When a jammer slot becomes available, listeners can promote themselves to full jammer status with a single tap.

Environmental memory: The room learns from gesture patterns over time, with 24-hour retention. Initial gestures have high influence, while mature rooms evolve more slowly. Pattern creation and evolution are derived from gesture characteristics—high-intensity gestures at unique positions create new patterns, while moderate-intensity gestures evolve existing dormant patterns, creating a deterministic “room personality” that shapes the composition.

Synth Panel: In collaborative rooms, each user can customize their sound through a hardware-synth-inspired channel strip. It provides controls for oscillator parameters, filter (lowpass, highpass, bandpass) with cutoff and resonance, ADSR envelope, and effects (volume, pan, delay, reverb). Eight synth presets and three drum kits (808 Kit, Acoustic Kit, Electronic Kit) are available, with server-side conflict resolution ensuring unique timbres. In drum mode, the panel switches to per-instrument controls (Pitch, Decay, Tone) for bass drum, snare, and hi-hat, with a global volume and reverb send. Canvas gestures also change: tap triggers the snare, and drag produces a snare roll. All controls are themed with the user’s assigned color, and changes sync in real-time across the room.

Audition: Users can test their synth patch without performing gestures. Activated from the Synth Panel, the audition feature generates virtual gestures with configurable parameters: source (random or metrics-driven), event frequency, timing regularity, event uniformity, gesture type (taps vs drags), and note range (from a minor third up to five octaves). A pulse button provides visual feedback on each generated note.

Sequencer: The Synth Panel also includes a step sequencer for creating repeating patterns synchronized to the room’s composition tempo. In melodic mode, users configure 3 to 16 steps, each with a pitch slider (scale degree I–VII across four octaves) and a tri-state mode: Normal (plays the set pitch), Mute (skips audio), or Random (picks a random degree and octave each cycle). In drum mode, the sequencer switches to a four-instrument grid (bass drum, snare, hi-hat, open hi-hat) where each step can be toggled on or off per instrument. A speed multiplier (0.25×–8×) scales the base BPM. Like audition, the sequencer runs server-side so all room participants hear it, auto-pauses during real gestures, and is mutually exclusive with the audition feature.