ATMOSYNTH Groove: a desktop DAW whose instruments and effects are ATMOSYNTH patches, on ATproto.

Everybody in a room sees who is recording, in Groove's window too #39

Open opened by center.for.cybernetic.beauty

What to build #

Everybody in a room sees who is recording, in Groove's window too. The patch editor now marks whoever in a room is recording a performance beside their face in the people list (the record dot and "Rec", never the colour alone, and "recording" in the face's accessible name), and says it in the live region as it starts and stops. It reads this from presence: every peer in {t:"presence", you, peers} now carries recording (true or false), as atmosynth-patch-spec's ASYM §7 says (spec commit 1d41a60).

Groove's window shows it once its editor pin reaches atmosynth-patch-editor f69319e (engine unchanged at 51c8814). Nothing else should be needed, and that is what to check:

  • src-tauri/src/room_link.rs passes presence on to the window whole, changing only each face: fn presence_shown(&self, presence: &Value) -> Action { let mut shown = presence.clone(); … peer.get_mut("avatarUrl") …, so a peer's recording reaches the window as the room said it.
  • The editor at Groove's current pin (04fe1f2) reads only the fields it knows in presenceOf, so until the pin moves the field is passed over and nothing changes.
  • The window's own presence passes to the room as it is (said: (message["t"] == "presence").then(|| text.to_string())). A hosted editor never says recording: true, because it keeps no performance, so the room hears Groove's person as not recording.

Acceptance criteria #

Sign up or Sign in to add to the discussion.