Skip to main content

Audio Feedback

Pad-Lattice can reinforce visual state with short semantic sounds called earcons. Audio is optional and additive: LEDs remain authoritative, and turning sound off never changes agent behavior or physical actions.

MIDI is not audio

MIDI carries control messages. A Launchpad does not synthesize these sounds or play them through a speaker. Pad-Lattice generates audio on the computer and uses an available local WAV player.

Enable It

Start normal multi-agent operation with audio feedback:

pad-lattice daemon --audio-feedback

Preview the operational vocabulary in the guided Demo:

pad-lattice demo --audio
pad-lattice demo --surface web

Play the standalone visual story with its synchronized score:

pad-lattice show --audio

When a MIDI surface and host audio are enabled, the Demo and daemon speak HELLO FROM CODEX CLI as the same text scrolls across the controller. --no-greeting suppresses both forms of greeting. They then use brief mono event cues; Show independently uses a continuous authored stereo piano-and-strings score with a formant-synthesized robotic signature.

Greeting timing is derived from the rendered 5x7 glyph columns and the active --greeting-delay. Each word is spoken when that word reaches the matrix, so changing scroll speed keeps the visual and audio timelines together.

Earcon Vocabulary

EventSoundPurpose
Waiting for replyGentle rising questionThe agent needs human input.
Waiting for approvalTwo unresolved knocksA permission decision is pending.
ApproveShort rising confirmationA physical approval was delivered.
RejectShort descending refusalA physical rejection was delivered.
RetryThree-note restartRetry was delivered to the selected agent.
StopFirm falling stopStop was delivered to the selected agent.
SuccessBright major chimeWork completed successfully.
ErrorLow dissonant descentWork ended in error.
CancelledTwo muted low notesWork was cancelled.
Scene selectedSession-specific bellPhysical selection changed or was confirmed.
Unavailable actionMuted low clickA pressed control had no valid recipient.

Running and user typing are deliberately silent. Continuous sound would make long tasks tiring and weaken the important cues.

Multi-Agent Identity

The semantic rhythm remains constant, while Scene 1 through Scene 8 transpose it across C D E F G A B C. This mirrors the stable cyan-through-sky Scene order. A success always sounds like success, but its pitch also indicates which visible agent produced it.

The mapping supplements the terminal title, status legend, and Scene colors; it does not replace those explicit identifiers.

Runtime Behavior

  • Host sounds are synthesized from layered waveforms at runtime without a Python audio package. Browser earcons, greeting, and Show soundtrack are deterministic WAV files generated from the same Python authoring source at build time. Both spoken phrases use Pad-Lattice's small formant synthesizer, not an operating-system TTS voice.
  • Every browser Sound toggle is independent and muted by default. Enabling it does not enable host audio or sound on another paired device.
  • Playback is nonblocking, so a slow audio device cannot pause MIDI polling or socket routing.
  • Identical cues within 120 milliseconds are suppressed, and concurrent playback is bounded.
  • Stopping the daemon terminates pending sounds and removes temporary WAV files.
  • Audio playback failure does not alter control-plane state or action routing.

On Unix-like systems Pad-Lattice uses the first available player from pw-play, paplay, aplay, afplay, or ffplay. Requesting audio without a supported player returns a clear error; normal operation without the audio flag has no player requirement.

Future MIDI Output

The earcon names are semantic rather than tied to a particular synthesizer. A future output backend can send the same vocabulary to a virtual MIDI port, DAW, or hardware synthesizer. That extension does not require changing the agent protocol or visual meanings.