{
  "schema": "pointcast.playable/v1",
  "id": "nouns-drum-club",
  "title": "Nouns Drum Club",
  "description": "A playful browser drum room: play a full keyboard beneath a reactive Noun band, build a loop, and join a shared live room without an account.",
  "human": "https://pointcast.xyz/nouns/drum-club/",
  "json": "https://pointcast.xyz/nouns-drum-club.json",
  "status": "playable",
  "participation": {
    "account": false,
    "wallet": false,
    "browserAudio": true,
    "sharedRoom": true
  },
  "features": [
    "36-key synthesized instrument",
    "16-step local loop sequencer",
    "quantized overdub",
    "three starter grooves",
    "tempo and swing",
    "shareable beat links",
    "shared live rooms",
    "reactive Noun band",
    "three visual scenes",
    "reduced-motion mode",
    "four-member band builder",
    "81 playable band combinations",
    "daily UTC band and prompt",
    "explicit save on this device",
    "room invitations carrying the beat and lineup"
  ],
  "controls": {
    "keyboard": "1–0 drums; Q–P bass; A–L mallets; Z–M chords and sparkle; Shift plays softly; Space toggles the loop; Escape stops.",
    "touch": "Tap the visible pads. On phones each sound family expands into larger touch targets."
  },
  "pads": [
    {
      "id": "kick",
      "label": "Big Kick",
      "family": "drums",
      "color": "#ff5c35",
      "key": "1",
      "code": "Digit1"
    },
    {
      "id": "snare",
      "label": "Snap Snare",
      "family": "drums",
      "color": "#ff7a45",
      "key": "2",
      "code": "Digit2"
    },
    {
      "id": "clap",
      "label": "Crew Clap",
      "family": "drums",
      "color": "#ff9861",
      "key": "3",
      "code": "Digit3"
    },
    {
      "id": "hat-closed",
      "label": "Tight Hat",
      "family": "drums",
      "color": "#ffc247",
      "key": "4",
      "code": "Digit4"
    },
    {
      "id": "hat-open",
      "label": "Open Hat",
      "family": "drums",
      "color": "#ffdb5c",
      "key": "5",
      "code": "Digit5"
    },
    {
      "id": "tom-low",
      "label": "Low Tom",
      "family": "drums",
      "color": "#f14d84",
      "key": "6",
      "code": "Digit6"
    },
    {
      "id": "tom-high",
      "label": "High Tom",
      "family": "drums",
      "color": "#ed70a7",
      "key": "7",
      "code": "Digit7"
    },
    {
      "id": "rim",
      "label": "Rim Click",
      "family": "drums",
      "color": "#dc83cc",
      "key": "8",
      "code": "Digit8"
    },
    {
      "id": "shaker",
      "label": "Shaker",
      "family": "drums",
      "color": "#b78de7",
      "key": "9",
      "code": "Digit9"
    },
    {
      "id": "tambourine",
      "label": "Tambourine",
      "family": "drums",
      "color": "#9479e8",
      "key": "0",
      "code": "Digit0"
    },
    {
      "id": "bass-c",
      "label": "Bass C",
      "family": "bass",
      "color": "#168a91",
      "note": 48,
      "key": "Q",
      "code": "KeyQ"
    },
    {
      "id": "bass-d",
      "label": "Bass D",
      "family": "bass",
      "color": "#168a91",
      "note": 50,
      "key": "W",
      "code": "KeyW"
    },
    {
      "id": "bass-e",
      "label": "Bass E",
      "family": "bass",
      "color": "#168a91",
      "note": 52,
      "key": "E",
      "code": "KeyE"
    },
    {
      "id": "bass-f",
      "label": "Bass F",
      "family": "bass",
      "color": "#168a91",
      "note": 53,
      "key": "R",
      "code": "KeyR"
    },
    {
      "id": "bass-g",
      "label": "Bass G",
      "family": "bass",
      "color": "#168a91",
      "note": 55,
      "key": "T",
      "code": "KeyT"
    },
    {
      "id": "bass-a",
      "label": "Bass A",
      "family": "bass",
      "color": "#17a6a2",
      "note": 57,
      "key": "Y",
      "code": "KeyY"
    },
    {
      "id": "bass-b",
      "label": "Bass B",
      "family": "bass",
      "color": "#17a6a2",
      "note": 59,
      "key": "U",
      "code": "KeyU"
    },
    {
      "id": "bass-c2",
      "label": "Bass C2",
      "family": "bass",
      "color": "#17a6a2",
      "note": 60,
      "key": "I",
      "code": "KeyI"
    },
    {
      "id": "bass-d2",
      "label": "Bass D2",
      "family": "bass",
      "color": "#17a6a2",
      "note": 62,
      "key": "O",
      "code": "KeyO"
    },
    {
      "id": "bass-e2",
      "label": "Bass E2",
      "family": "bass",
      "color": "#17a6a2",
      "note": 64,
      "key": "P",
      "code": "KeyP"
    },
    {
      "id": "mallet-c",
      "label": "Mallet C",
      "family": "mallets",
      "color": "#3988f5",
      "note": 60,
      "key": "A",
      "code": "KeyA"
    },
    {
      "id": "mallet-d",
      "label": "Mallet D",
      "family": "mallets",
      "color": "#3988f5",
      "note": 62,
      "key": "S",
      "code": "KeyS"
    },
    {
      "id": "mallet-e",
      "label": "Mallet E",
      "family": "mallets",
      "color": "#3988f5",
      "note": 64,
      "key": "D",
      "code": "KeyD"
    },
    {
      "id": "mallet-f",
      "label": "Mallet F",
      "family": "mallets",
      "color": "#3988f5",
      "note": 65,
      "key": "F",
      "code": "KeyF"
    },
    {
      "id": "mallet-g",
      "label": "Mallet G",
      "family": "mallets",
      "color": "#3988f5",
      "note": 67,
      "key": "G",
      "code": "KeyG"
    },
    {
      "id": "mallet-a",
      "label": "Mallet A",
      "family": "mallets",
      "color": "#5c9dfa",
      "note": 69,
      "key": "H",
      "code": "KeyH"
    },
    {
      "id": "mallet-b",
      "label": "Mallet B",
      "family": "mallets",
      "color": "#5c9dfa",
      "note": 71,
      "key": "J",
      "code": "KeyJ"
    },
    {
      "id": "mallet-c2",
      "label": "Mallet C2",
      "family": "mallets",
      "color": "#5c9dfa",
      "note": 72,
      "key": "K",
      "code": "KeyK"
    },
    {
      "id": "mallet-d2",
      "label": "Mallet D2",
      "family": "mallets",
      "color": "#5c9dfa",
      "note": 74,
      "key": "L",
      "code": "KeyL"
    },
    {
      "id": "chord-c",
      "label": "C Major",
      "family": "chords",
      "color": "#6d56e8",
      "note": 60,
      "key": "Z",
      "code": "KeyZ"
    },
    {
      "id": "chord-dm",
      "label": "D Minor",
      "family": "chords",
      "color": "#725fe7",
      "note": 62,
      "key": "X",
      "code": "KeyX"
    },
    {
      "id": "chord-em",
      "label": "E Minor",
      "family": "chords",
      "color": "#7e68e9",
      "note": 64,
      "key": "C",
      "code": "KeyC"
    },
    {
      "id": "chord-f",
      "label": "F Major",
      "family": "chords",
      "color": "#8b73eb",
      "note": 65,
      "key": "V",
      "code": "KeyV"
    },
    {
      "id": "chord-g",
      "label": "G Major",
      "family": "chords",
      "color": "#987def",
      "note": 67,
      "key": "B",
      "code": "KeyB"
    },
    {
      "id": "chord-am",
      "label": "A Minor",
      "family": "chords",
      "color": "#a786f1",
      "note": 69,
      "key": "N",
      "code": "KeyN"
    },
    {
      "id": "sparkle",
      "label": "Noun Sparkle",
      "family": "ear-candy",
      "color": "#d954df",
      "note": 84,
      "key": "M",
      "code": "KeyM"
    }
  ],
  "presets": [
    {
      "id": "clubhouse",
      "name": "Clubhouse Bounce"
    },
    {
      "id": "parade",
      "name": "Noun Parade"
    },
    {
      "id": "moonwalk",
      "name": "Moonwalk"
    }
  ],
  "bandmates": {
    "human": "https://pointcast.xyz/nouns/drum-club/bandmates/",
    "count": 12,
    "status": "not-minted",
    "kit": "https://pointcast.xyz/images/nouns-drum-club/bandmates/bandmates-kit.zip",
    "metadataTemplate": "https://pointcast.xyz/nouns/drum-club/bandmates/metadata/{catalogId}.json",
    "note": "Twelve companion artworks with playable scores. No contract, mint, or purchase is required to play."
  },
  "campaign": {
    "id": "PC-NOUNS-EVERYBODY-2026",
    "human": "https://pointcast.xyz/nouns/drum-club/campaign/",
    "manifest": "https://pointcast.xyz/ads/nouns-drum-club/campaign.json",
    "kit": "https://pointcast.xyz/ads/nouns-drum-club/campaign-kit.zip",
    "concepts": 3,
    "formats": 10,
    "assets": 30,
    "audio": "none"
  },
  "loops": {
    "steps": 16,
    "tempo": {
      "min": 60,
      "max": 180
    },
    "storage": "this browser only",
    "sharing": "The beat query parameter carries the score; opening a link never autoplays it."
  },
  "arrangements": {
    "human": "https://pointcast.xyz/nouns/drum-club/bandmates/#make-a-band",
    "roles": [
      "drum",
      "bass",
      "mallet",
      "chord"
    ],
    "membersPerRole": 3,
    "combinations": 81,
    "daily": "One shared starting quartet per UTC day; computed in the browser, with no streaks or account.",
    "lineup": "band query parameter: four catalog IDs ordered drum, bass, mallet, chord",
    "playback": "The beat query parameter carries the exact arrangement; press Play to hear it."
  },
  "rooms": {
    "joining": "Explicit Join action; no account or microphone.",
    "invite": "room, beat, and optional band query parameters",
    "transport": "WebSocket via /api/drum/room",
    "shared": "Live played keys and reactions",
    "local": "Loop playback and edits stay on each device.",
    "timing": "Best-effort live notes; network latency applies."
  },
  "assets": {
    "nounArtwork": "https://noun.pics/23.svg",
    "localNounArtwork": "https://pointcast.xyz/games/nouns-nation-battler/assets/noun-23.svg",
    "licenseNote": "Nouns artwork is CC0; see noun.pics."
  },
  "discovery": {
    "block": "https://pointcast.xyz/b/0604",
    "nouns": "https://pointcast.xyz/nouns/",
    "drumDirectory": "https://pointcast.xyz/drum-directory.json",
    "play": "https://pointcast.xyz/play.json",
    "apps": "https://pointcast.xyz/apps",
    "agents": "https://pointcast.xyz/agents.json"
  },
  "boundaries": [
    "Room presence is session-based and does not require an account.",
    "Audio starts only after a visitor interacts with the instrument.",
    "This page does not claim a recorded performance, audience count, or persistent identity."
  ]
}