[
 {
  "id": "click-soft",
  "name": "Soft click",
  "category": "clicks",
  "tags": [
   "click",
   "soft",
   "subtle",
   "button",
   "ui"
  ],
  "description": "A quiet, rounded click for everyday buttons.",
  "source": "synth",
  "duration": 0.025,
  "peaks": [
   0.05,
   0.56,
   0.85,
   1,
   0.77,
   0.43,
   0.82,
   0.58,
   0.38,
   0.5,
   0.34,
   0.3,
   0.24,
   0.18,
   0.17,
   0.13,
   0.11,
   0.08,
   0.07,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/click-soft.wav",
   "m4a": "sounds/click-soft.m4a"
  },
  "code": "(k) => {\n    k.noise({ d: 0.018, g: 0.35, filter: { type: 'bandpass', f: 2400, q: 1.4 } });\n    k.tone({ f: 1700, to: 1300, glide: 0.015, d: 0.02, g: 0.12 });\n  }"
 },
 {
  "id": "click-crisp",
  "name": "Crisp click",
  "category": "clicks",
  "tags": [
   "click",
   "crisp",
   "sharp",
   "bright",
   "button"
  ],
  "description": "A short, bright click with a hard edge.",
  "source": "synth",
  "duration": 0.015,
  "peaks": [
   0.1,
   0.32,
   1,
   0.97,
   1,
   0.92,
   0.83,
   0.73,
   0.63,
   0.63,
   0.42,
   0.48,
   0.41,
   0.27,
   0.24,
   0.19,
   0.16,
   0.13,
   0.1,
   0.08,
   0.08,
   0.05,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/click-crisp.wav",
   "m4a": "sounds/click-crisp.m4a"
  },
  "code": "(k) => {\n    k.noise({ d: 0.01, g: 0.6, filter: { type: 'highpass', f: 4200, q: 0.8 } });\n    k.tone({ f: 3200, to: 2100, glide: 0.01, d: 0.012, g: 0.18 });\n  }"
 },
 {
  "id": "click-deep",
  "name": "Deep click",
  "category": "clicks",
  "tags": [
   "click",
   "deep",
   "low",
   "thock",
   "heavy"
  ],
  "description": "A low, weighty click with a soft thump underneath.",
  "source": "synth",
  "duration": 0.045,
  "peaks": [
   0.34,
   0.55,
   0.58,
   1,
   0.82,
   0.6,
   0.62,
   0.41,
   0.38,
   0.39,
   0.25,
   0.22,
   0.23,
   0.18,
   0.1,
   0.13,
   0.13,
   0.07,
   0.06,
   0.07,
   0.07,
   0.04,
   0.03,
   0.03,
   0.03,
   0.03,
   0.01,
   0.01,
   0.02,
   0.02,
   0.01,
   0.01,
   0,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/click-deep.wav",
   "m4a": "sounds/click-deep.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 230, to: 90, glide: 0.03, d: 0.05, g: 0.55 });\n    k.noise({ d: 0.02, g: 0.3, filter: { type: 'lowpass', f: 1400, q: 0.7 } });\n  }"
 },
 {
  "id": "button-press",
  "name": "Button press",
  "category": "clicks",
  "tags": [
   "button",
   "press",
   "release",
   "tactile",
   "physical"
  ],
  "description": "A tactile button that goes down, then springs back up.",
  "source": "synth",
  "duration": 0.1,
  "peaks": [
   0.97,
   0.91,
   1,
   0.48,
   0.43,
   0.22,
   0.17,
   0.09,
   0.07,
   0.04,
   0.03,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.21,
   0.12,
   0.02,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/button-press.wav",
   "m4a": "sounds/button-press.m4a"
  },
  "code": "(k) => {\n    k.noise({ d: 0.015, g: 0.45, filter: { type: 'bandpass', f: 1800, q: 1.5 } });\n    k.tone({ f: 170, to: 80, glide: 0.03, d: 0.04, g: 0.35 });\n    k.noise({ t: 0.09, d: 0.01, g: 0.2, filter: { type: 'bandpass', f: 2800, q: 1.5 } });\n  }"
 },
 {
  "id": "tap-wood",
  "name": "Wood tap",
  "category": "clicks",
  "tags": [
   "tap",
   "wood",
   "woody",
   "knock",
   "organic",
   "warm"
  ],
  "description": "A dry tap on a small wooden block.",
  "source": "synth",
  "duration": 0.07,
  "peaks": [
   0.6,
   1,
   0.92,
   0.83,
   0.57,
   0.5,
   0.44,
   0.36,
   0.31,
   0.28,
   0.22,
   0.2,
   0.17,
   0.13,
   0.12,
   0.09,
   0.09,
   0.07,
   0.07,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/tap-wood.wav",
   "m4a": "sounds/tap-wood.m4a"
  },
  "code": "(k) => {\n    k.strike({ f: 820, kind: 'wood', d: 0.08, g: 0.4 });\n    k.noise({ d: 0.006, g: 0.25, filter: { type: 'bandpass', f: 3000, q: 1 } });\n  }"
 },
 {
  "id": "tap-glass",
  "name": "Glass tap",
  "category": "clicks",
  "tags": [
   "tap",
   "glass",
   "glassy",
   "bright",
   "ting",
   "delicate"
  ],
  "description": "A light fingernail tap on glass.",
  "source": "synth",
  "duration": 0.155,
  "peaks": [
   1,
   0.92,
   0.72,
   0.7,
   0.53,
   0.48,
   0.4,
   0.36,
   0.29,
   0.25,
   0.22,
   0.19,
   0.16,
   0.14,
   0.12,
   0.1,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/tap-glass.wav",
   "m4a": "sounds/tap-glass.m4a"
  },
  "code": "(k) => {\n    k.strike({ f: 2300, kind: 'glass', d: 0.18, g: 0.22 });\n  }"
 },
 {
  "id": "tick-tiny",
  "name": "Tiny tick",
  "category": "clicks",
  "tags": [
   "tick",
   "tiny",
   "micro",
   "minimal",
   "subtle"
  ],
  "description": "The smallest possible tick, for selection and focus.",
  "source": "synth",
  "duration": 0.01,
  "peaks": [
   0.01,
   0.05,
   0.18,
   0.53,
   0.68,
   1,
   0.76,
   0.66,
   0.68,
   0.52,
   0.61,
   0.65,
   0.76,
   0.79,
   0.85,
   0.66,
   0.55,
   0.48,
   0.39,
   0.3,
   0.26,
   0.21,
   0.16,
   0.14,
   0.11,
   0.08,
   0.07,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/tick-tiny.wav",
   "m4a": "sounds/tick-tiny.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 4000, d: 0.008, g: 0.22 });\n    k.noise({ d: 0.005, g: 0.2, filter: { type: 'highpass', f: 6000 } });\n  }"
 },
 {
  "id": "hover-blip",
  "name": "Hover blip",
  "category": "clicks",
  "tags": [
   "hover",
   "blip",
   "focus",
   "soft",
   "menu"
  ],
  "description": "A faint blip for hover and focus states.",
  "source": "synth",
  "duration": 0.035,
  "peaks": [
   0.08,
   0.32,
   0.5,
   0.69,
   0.87,
   1,
   0.92,
   0.77,
   0.65,
   0.55,
   0.47,
   0.39,
   0.33,
   0.28,
   0.23,
   0.18,
   0.16,
   0.13,
   0.11,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/hover-blip.wav",
   "m4a": "sounds/hover-blip.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 1400, a: 0.004, d: 0.03, g: 0.12 });\n  }"
 },
 {
  "id": "toggle-on",
  "name": "Toggle on",
  "category": "toggles",
  "tags": [
   "toggle",
   "on",
   "enable",
   "rising",
   "switch"
  ],
  "description": "Two rising notes for switching something on.",
  "source": "synth",
  "duration": 0.145,
  "peaks": [
   0.92,
   0.99,
   0.68,
   0.46,
   0.32,
   0.21,
   0.15,
   0.1,
   0.07,
   0.05,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0.8,
   1,
   0.82,
   0.64,
   0.49,
   0.38,
   0.29,
   0.23,
   0.17,
   0.14,
   0.1,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/toggle-on.wav",
   "m4a": "sounds/toggle-on.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 660, d: 0.06, g: 0.2, type: 'triangle' });\n    k.tone({ f: 990, t: 0.055, d: 0.09, g: 0.2, type: 'triangle' });\n  }"
 },
 {
  "id": "toggle-off",
  "name": "Toggle off",
  "category": "toggles",
  "tags": [
   "toggle",
   "off",
   "disable",
   "falling",
   "switch"
  ],
  "description": "Two falling notes for switching something off.",
  "source": "synth",
  "duration": 0.145,
  "peaks": [
   0.95,
   0.98,
   0.69,
   0.46,
   0.32,
   0.21,
   0.15,
   0.1,
   0.07,
   0.05,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0.67,
   1,
   0.83,
   0.65,
   0.49,
   0.39,
   0.3,
   0.23,
   0.18,
   0.14,
   0.11,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/toggle-off.wav",
   "m4a": "sounds/toggle-off.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 990, d: 0.06, g: 0.2, type: 'triangle' });\n    k.tone({ f: 660, t: 0.055, d: 0.09, g: 0.2, type: 'triangle' });\n  }"
 },
 {
  "id": "switch-flick",
  "name": "Switch flick",
  "category": "toggles",
  "tags": [
   "switch",
   "flick",
   "snap",
   "light",
   "quick"
  ],
  "description": "A light snap, like a small rocker switch.",
  "source": "synth",
  "duration": 0.05,
  "peaks": [
   0.83,
   1,
   0.35,
   0.18,
   0.31,
   0.55,
   0.58,
   0.41,
   0.35,
   0.28,
   0.27,
   0.2,
   0.18,
   0.14,
   0.13,
   0.11,
   0.08,
   0.08,
   0.06,
   0.06,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/switch-flick.wav",
   "m4a": "sounds/switch-flick.m4a"
  },
  "code": "(k) => {\n    k.noise({ d: 0.01, g: 0.5, filter: { type: 'highpass', f: 3000 } });\n    k.strike({ f: 1250, kind: 'wood', t: 0.004, d: 0.05, g: 0.2 });\n  }"
 },
 {
  "id": "switch-heavy",
  "name": "Heavy switch",
  "category": "toggles",
  "tags": [
   "switch",
   "heavy",
   "industrial",
   "thunk",
   "lever"
  ],
  "description": "A solid industrial switch thrown into place.",
  "source": "synth",
  "duration": 0.075,
  "peaks": [
   0.55,
   1,
   0.72,
   0.88,
   0.82,
   0.34,
   0.55,
   0.55,
   0.53,
   0.55,
   0.41,
   0.18,
   0.21,
   0.21,
   0.16,
   0.09,
   0.12,
   0.12,
   0.07,
   0.06,
   0.07,
   0.07,
   0.04,
   0.03,
   0.03,
   0.03,
   0.03,
   0.01,
   0.01,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/switch-heavy.wav",
   "m4a": "sounds/switch-heavy.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 125, to: 60, glide: 0.05, d: 0.09, g: 0.6 });\n    k.noise({ d: 0.04, g: 0.4, filter: { type: 'bandpass', f: 900, q: 2 } });\n    k.noise({ t: 0.012, d: 0.012, g: 0.3, filter: { type: 'highpass', f: 3500 } });\n  }"
 },
 {
  "id": "check",
  "name": "Check",
  "category": "toggles",
  "tags": [
   "checkbox",
   "check",
   "select",
   "tick",
   "rising"
  ],
  "description": "A quick upward chirp for checking a box.",
  "source": "synth",
  "duration": 0.06,
  "peaks": [
   0.37,
   0.8,
   1,
   0.9,
   0.77,
   0.66,
   0.56,
   0.49,
   0.4,
   0.35,
   0.29,
   0.25,
   0.21,
   0.18,
   0.15,
   0.13,
   0.11,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/check.wav",
   "m4a": "sounds/check.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 1150, to: 1800, glide: 0.03, d: 0.06, g: 0.24 });\n  }"
 },
 {
  "id": "uncheck",
  "name": "Uncheck",
  "category": "toggles",
  "tags": [
   "checkbox",
   "uncheck",
   "deselect",
   "falling"
  ],
  "description": "A quick downward chirp for clearing a box.",
  "source": "synth",
  "duration": 0.06,
  "peaks": [
   0.39,
   0.8,
   1,
   0.9,
   0.77,
   0.66,
   0.56,
   0.48,
   0.4,
   0.34,
   0.29,
   0.24,
   0.21,
   0.18,
   0.15,
   0.13,
   0.11,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/uncheck.wav",
   "m4a": "sounds/uncheck.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 1800, to: 1150, glide: 0.03, d: 0.06, g: 0.24 });\n  }"
 },
 {
  "id": "slider-detents",
  "name": "Slider detents",
  "category": "toggles",
  "tags": [
   "slider",
   "detent",
   "ticks",
   "scroll",
   "ratchet",
   "picker"
  ],
  "description": "A run of small ticks, like dragging a stepped slider.",
  "source": "synth",
  "duration": 0.25,
  "peaks": [
   0.94,
   0.09,
   0,
   0,
   0,
   0,
   0,
   0.54,
   0.97,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0.99,
   0.67,
   0,
   0,
   0,
   0,
   0,
   0,
   0.97,
   0.12,
   0,
   0,
   0,
   0,
   0,
   0.47,
   0.96,
   0.02,
   0,
   0,
   0,
   0,
   0,
   0.97,
   0.88,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   0.14
  ],
  "files": {
   "wav": "sounds/slider-detents.wav",
   "m4a": "sounds/slider-detents.m4a"
  },
  "code": "(k) => {\n    for (let i = 0; i < 7; i++) k.tone({ f: 2200 + i * 120, t: i * 0.04, d: 0.007, g: 0.16 });\n  }"
 },
 {
  "id": "lock",
  "name": "Lock",
  "category": "toggles",
  "tags": [
   "lock",
   "secure",
   "close",
   "latch",
   "privacy"
  ],
  "description": "A two-part latch closing.",
  "source": "synth",
  "duration": 0.115,
  "peaks": [
   0.7,
   0.96,
   0.62,
   0.44,
   0.29,
   0.2,
   0.14,
   0.11,
   0.07,
   0.05,
   0.04,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.8,
   1,
   0.81,
   0.61,
   0.4,
   0.24,
   0.14,
   0.11,
   0.08,
   0.05,
   0.03,
   0.03,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/lock.wav",
   "m4a": "sounds/lock.m4a"
  },
  "code": "(k) => {\n    k.noise({ d: 0.02, g: 0.4, filter: { type: 'bandpass', f: 2000, q: 3 } });\n    k.tone({ f: 420, to: 300, glide: 0.04, d: 0.05, g: 0.2, type: 'square', filter: { type: 'lowpass', f: 1500 } });\n    k.noise({ t: 0.07, d: 0.015, g: 0.5, filter: { type: 'bandpass', f: 1500, q: 3 } });\n    k.tone({ f: 200, t: 0.07, to: 120, glide: 0.03, d: 0.05, g: 0.35 });\n  }"
 },
 {
  "id": "unlock",
  "name": "Unlock",
  "category": "toggles",
  "tags": [
   "unlock",
   "open",
   "latch",
   "release",
   "access"
  ],
  "description": "A latch springing open.",
  "source": "synth",
  "duration": 0.14,
  "peaks": [
   1,
   0.8,
   0.64,
   0.31,
   0.16,
   0.08,
   0.04,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.53,
   0.88,
   0.75,
   0.5,
   0.34,
   0.24,
   0.17,
   0.12,
   0.08,
   0.06,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/unlock.wav",
   "m4a": "sounds/unlock.m4a"
  },
  "code": "(k) => {\n    k.noise({ d: 0.015, g: 0.45, filter: { type: 'bandpass', f: 1500, q: 3 } });\n    k.tone({ f: 120, to: 200, glide: 0.03, d: 0.04, g: 0.3 });\n    k.noise({ t: 0.08, d: 0.02, g: 0.35, filter: { type: 'bandpass', f: 2600, q: 3 } });\n    k.tone({ f: 300, t: 0.08, to: 460, glide: 0.04, d: 0.06, g: 0.18, type: 'square', filter: { type: 'lowpass', f: 1800 } });\n  }"
 },
 {
  "id": "notify-ding",
  "name": "Ding",
  "category": "notifications",
  "tags": [
   "notification",
   "ding",
   "bell",
   "single",
   "classic"
  ],
  "description": "A single clear bell note.",
  "source": "synth",
  "duration": 1.045,
  "peaks": [
   1,
   0.88,
   0.73,
   0.61,
   0.54,
   0.45,
   0.4,
   0.33,
   0.29,
   0.25,
   0.22,
   0.19,
   0.17,
   0.14,
   0.13,
   0.11,
   0.1,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-ding.wav",
   "m4a": "sounds/notify-ding.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.4, mix: 0.25 });\n    k.strike({ f: n('A5'), kind: 'bell', d: 1.3, g: 0.3, send: 0.4 });\n  }"
 },
 {
  "id": "notify-chime-up",
  "name": "Chime up",
  "category": "notifications",
  "tags": [
   "notification",
   "chime",
   "rising",
   "two-note",
   "friendly"
  ],
  "description": "Two rising vibraphone notes.",
  "source": "synth",
  "duration": 0.945,
  "peaks": [
   0.77,
   0.65,
   0.53,
   0.45,
   0.37,
   0.31,
   1,
   0.87,
   0.71,
   0.6,
   0.5,
   0.43,
   0.37,
   0.32,
   0.27,
   0.23,
   0.2,
   0.16,
   0.14,
   0.11,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-chime-up.wav",
   "m4a": "sounds/notify-chime-up.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.2, mix: 0.2 });\n    k.strike({ f: n('E5'), kind: 'vibes', d: 0.9, g: 0.3, send: 0.3 });\n    k.strike({ f: n('B5'), kind: 'vibes', t: 0.12, d: 1.0, g: 0.3, send: 0.3 });\n  }"
 },
 {
  "id": "notify-chime-down",
  "name": "Chime down",
  "category": "notifications",
  "tags": [
   "notification",
   "chime",
   "falling",
   "two-note",
   "calm"
  ],
  "description": "Two falling vibraphone notes.",
  "source": "synth",
  "duration": 0.94,
  "peaks": [
   0.83,
   0.7,
   0.58,
   0.49,
   0.41,
   0.34,
   1,
   0.86,
   0.73,
   0.64,
   0.55,
   0.48,
   0.4,
   0.35,
   0.29,
   0.25,
   0.21,
   0.18,
   0.15,
   0.13,
   0.1,
   0.09,
   0.08,
   0.06,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-chime-down.wav",
   "m4a": "sounds/notify-chime-down.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.2, mix: 0.2 });\n    k.strike({ f: n('B5'), kind: 'vibes', d: 0.9, g: 0.3, send: 0.3 });\n    k.strike({ f: n('E5'), kind: 'vibes', t: 0.12, d: 1.0, g: 0.3, send: 0.3 });\n  }"
 },
 {
  "id": "notify-glass",
  "name": "Glass notice",
  "category": "notifications",
  "tags": [
   "notification",
   "glass",
   "glassy",
   "airy",
   "clean"
  ],
  "description": "Two glassy notes a fifth apart.",
  "source": "synth",
  "duration": 1.27,
  "peaks": [
   0.86,
   0.65,
   0.5,
   1,
   0.83,
   0.74,
   0.51,
   0.48,
   0.36,
   0.29,
   0.25,
   0.18,
   0.16,
   0.12,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-glass.wav",
   "m4a": "sounds/notify-glass.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.6, mix: 0.3, tone: 8000 });\n    k.strike({ f: n('C6'), kind: 'glass', d: 1.0, g: 0.22, send: 0.4 });\n    k.strike({ f: n('G6'), kind: 'glass', t: 0.09, d: 1.1, g: 0.18, send: 0.4 });\n  }"
 },
 {
  "id": "notify-pluck",
  "name": "Pluck",
  "category": "notifications",
  "tags": [
   "notification",
   "pluck",
   "string",
   "warm",
   "soft"
  ],
  "description": "A warm plucked note with its octave.",
  "source": "synth",
  "duration": 0.325,
  "peaks": [
   1,
   0.94,
   0.82,
   0.72,
   0.62,
   0.55,
   0.49,
   0.43,
   0.39,
   0.35,
   0.31,
   0.28,
   0.24,
   0.22,
   0.2,
   0.18,
   0.16,
   0.14,
   0.12,
   0.11,
   0.09,
   0.08,
   0.07,
   0.06,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-pluck.wav",
   "m4a": "sounds/notify-pluck.m4a"
  },
  "code": "(k, n) => {\n    k.tone({ f: n('D5'), d: 0.45, g: 0.28, type: 'sawtooth', filter: { type: 'lowpass', f: 3500, to: 350, glide: 0.25, q: 2 } });\n    k.tone({ f: n('D6'), d: 0.3, g: 0.08, type: 'triangle' });\n  }"
 },
 {
  "id": "notify-soft-bell",
  "name": "Soft bell",
  "category": "notifications",
  "tags": [
   "notification",
   "bell",
   "fm",
   "soft",
   "mellow",
   "electric piano"
  ],
  "description": "A mellow electric-piano bell.",
  "source": "synth",
  "duration": 1.335,
  "peaks": [
   1,
   0.85,
   0.71,
   0.6,
   0.5,
   0.41,
   0.36,
   0.31,
   0.26,
   0.23,
   0.19,
   0.16,
   0.14,
   0.11,
   0.1,
   0.09,
   0.07,
   0.07,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-soft-bell.wav",
   "m4a": "sounds/notify-soft-bell.m4a"
  },
  "code": "(k) => {\n    k.space({ decay: 1.8, mix: 0.25 });\n    k.fm({ f: 880, ratio: 3.5, index: 2.5, d: 1.4, g: 0.2, send: 0.4 });\n    k.fm({ f: 440, ratio: 1, index: 1, d: 1.0, g: 0.12 });\n  }"
 },
 {
  "id": "notify-triad",
  "name": "Triad",
  "category": "notifications",
  "tags": [
   "notification",
   "marimba",
   "triad",
   "arpeggio",
   "cheerful"
  ],
  "description": "Three quick marimba notes up a major chord.",
  "source": "synth",
  "duration": 0.585,
  "peaks": [
   0.83,
   0.65,
   0.53,
   0.42,
   0.34,
   0.28,
   0.77,
   0.93,
   0.68,
   0.55,
   0.47,
   0.37,
   0.3,
   1,
   0.85,
   0.64,
   0.54,
   0.39,
   0.34,
   0.28,
   0.24,
   0.19,
   0.17,
   0.13,
   0.11,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-triad.wav",
   "m4a": "sounds/notify-triad.m4a"
  },
  "code": "(k, n) => {\n    ['C5', 'E5', 'G5'].forEach((x, i) => k.strike({ f: n(x), t: i * 0.08, kind: 'marimba', d: 0.5, g: 0.28 }));\n  }"
 },
 {
  "id": "notify-ping",
  "name": "Mention ping",
  "category": "notifications",
  "tags": [
   "notification",
   "ping",
   "mention",
   "metallic",
   "sharp"
  ],
  "description": "A bright metallic ping that cuts through.",
  "source": "synth",
  "duration": 0.61,
  "peaks": [
   1,
   0.86,
   0.69,
   0.55,
   0.44,
   0.35,
   0.29,
   0.23,
   0.19,
   0.16,
   0.13,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/notify-ping.wav",
   "m4a": "sounds/notify-ping.m4a"
  },
  "code": "(k) => {\n    k.space({ decay: 1.0, mix: 0.2 });\n    k.fm({ f: 1760, ratio: 1.41, index: 1.5, d: 0.5, g: 0.16, send: 0.3 });\n    k.tone({ f: 1760, d: 0.35, g: 0.1 });\n  }"
 },
 {
  "id": "reminder-tingle",
  "name": "Tingle",
  "category": "notifications",
  "tags": [
   "reminder",
   "tingle",
   "sparkle",
   "high",
   "magic"
  ],
  "description": "A quick high glass run upward.",
  "source": "synth",
  "duration": 1.135,
  "peaks": [
   0.7,
   0.52,
   0.94,
   0.69,
   1,
   0.8,
   0.95,
   0.86,
   0.63,
   0.46,
   0.36,
   0.28,
   0.21,
   0.14,
   0.11,
   0.09,
   0.08,
   0.06,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/reminder-tingle.wav",
   "m4a": "sounds/reminder-tingle.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.5, mix: 0.3, tone: 9000 });\n    ['C7', 'E7', 'G7', 'C8'].forEach((x, i) => k.strike({ f: n(x), t: i * 0.05, kind: 'glass', d: 0.6, g: 0.1, send: 0.5 }));\n  }"
 },
 {
  "id": "alert-gentle",
  "name": "Gentle alert",
  "category": "notifications",
  "tags": [
   "alert",
   "gentle",
   "calm",
   "soft",
   "reminder"
  ],
  "description": "Two soft sine notes with slight vibrato.",
  "source": "synth",
  "duration": 0.725,
  "peaks": [
   0.72,
   0.98,
   0.98,
   0.98,
   0.98,
   0.98,
   0.98,
   0.98,
   0.93,
   0.6,
   0.38,
   0.24,
   0.15,
   0.1,
   0.31,
   0.98,
   1,
   0.99,
   0.99,
   0.98,
   0.98,
   0.98,
   0.98,
   0.98,
   0.93,
   0.69,
   0.52,
   0.39,
   0.29,
   0.22,
   0.17,
   0.13,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/alert-gentle.wav",
   "m4a": "sounds/alert-gentle.m4a"
  },
  "code": "(k, n) => {\n    k.tone({ f: n('C5'), a: 0.02, hold: 0.1, d: 0.25, g: 0.2, vib: { rate: 5, depth: 3 } });\n    k.tone({ f: n('E5'), t: 0.22, a: 0.02, hold: 0.12, d: 0.4, g: 0.2, vib: { rate: 5, depth: 3 } });\n  }"
 },
 {
  "id": "alert-urgent",
  "name": "Urgent alert",
  "category": "notifications",
  "tags": [
   "alert",
   "urgent",
   "beep",
   "alarm",
   "attention"
  ],
  "description": "Three firm square-wave beeps.",
  "source": "synth",
  "duration": 0.425,
  "peaks": [
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.13,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.16,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.19,
   0.01
  ],
  "files": {
   "wav": "sounds/alert-urgent.wav",
   "m4a": "sounds/alert-urgent.m4a"
  },
  "code": "(k) => {\n    for (let i = 0; i < 3; i++) k.tone({ f: 880, t: i * 0.16, a: 0.003, hold: 0.08, d: 0.02, g: 0.12, type: 'square', filter: { type: 'lowpass', f: 3000 } });\n  }"
 },
 {
  "id": "success-chime",
  "name": "Success chime",
  "category": "success",
  "tags": [
   "success",
   "complete",
   "done",
   "marimba",
   "arpeggio",
   "positive"
  ],
  "description": "Four marimba notes up to the octave.",
  "source": "synth",
  "duration": 0.875,
  "peaks": [
   0.79,
   0.53,
   0.35,
   0.81,
   0.88,
   0.54,
   0.39,
   0.88,
   0.82,
   0.56,
   0.35,
   1,
   0.86,
   0.65,
   0.53,
   0.42,
   0.34,
   0.27,
   0.22,
   0.19,
   0.16,
   0.13,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/success-chime.wav",
   "m4a": "sounds/success-chime.m4a"
  },
  "code": "(k, n) => {\n    ['C5', 'E5', 'G5', 'C6'].forEach((x, i) => k.strike({ f: n(x), t: i * 0.07, kind: 'marimba', d: i === 3 ? 0.8 : 0.4, g: 0.26 }));\n  }"
 },
 {
  "id": "success-sparkle",
  "name": "Sparkle",
  "category": "success",
  "tags": [
   "success",
   "sparkle",
   "shimmer",
   "magic",
   "glass",
   "delight"
  ],
  "description": "A glass run with a shimmering tail.",
  "source": "synth",
  "duration": 1.44,
  "peaks": [
   0.63,
   0.45,
   0.86,
   0.63,
   0.96,
   0.82,
   1,
   0.66,
   0.51,
   0.37,
   0.27,
   0.19,
   0.15,
   0.1,
   0.09,
   0.07,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/success-sparkle.wav",
   "m4a": "sounds/success-sparkle.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.8, mix: 0.35, tone: 10000 });\n    ['G6', 'B6', 'D7', 'G7'].forEach((x, i) => k.strike({ f: n(x), t: i * 0.06, kind: 'glass', d: 0.7, g: 0.12, send: 0.5 }));\n    k.noise({ t: 0.05, a: 0.1, d: 0.4, g: 0.04, filter: { type: 'highpass', f: 9000 }, send: 0.4 });\n  }"
 },
 {
  "id": "success-pop-up",
  "name": "Pop up",
  "category": "success",
  "tags": [
   "success",
   "pop",
   "rising",
   "playful",
   "bubbly"
  ],
  "description": "A rising pop that lands on a bright note.",
  "source": "synth",
  "duration": 0.515,
  "peaks": [
   1,
   0.51,
   0.2,
   0.08,
   0.03,
   0.01,
   0,
   0.74,
   0.7,
   0.58,
   0.49,
   0.42,
   0.35,
   0.3,
   0.25,
   0.21,
   0.18,
   0.15,
   0.13,
   0.11,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/success-pop-up.wav",
   "m4a": "sounds/success-pop-up.m4a"
  },
  "code": "(k, n) => {\n    k.tone({ f: 480, to: 1500, glide: 0.08, d: 0.09, g: 0.3 });\n    k.strike({ f: n('G6'), t: 0.08, kind: 'vibes', d: 0.5, g: 0.2 });\n  }"
 },
 {
  "id": "task-complete",
  "name": "Task complete",
  "category": "success",
  "tags": [
   "success",
   "complete",
   "done",
   "two-note",
   "resolve"
  ],
  "description": "Two marimba notes that resolve upward.",
  "source": "synth",
  "duration": 0.69,
  "peaks": [
   0.95,
   0.64,
   0.44,
   0.3,
   0.22,
   0.15,
   0.25,
   1,
   0.85,
   0.7,
   0.55,
   0.48,
   0.39,
   0.32,
   0.27,
   0.23,
   0.19,
   0.16,
   0.14,
   0.12,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/task-complete.wav",
   "m4a": "sounds/task-complete.m4a"
  },
  "code": "(k, n) => {\n    k.strike({ f: n('G5'), kind: 'marimba', d: 0.35, g: 0.28 });\n    k.strike({ f: n('C6'), t: 0.1, kind: 'marimba', d: 0.7, g: 0.3 });\n  }"
 },
 {
  "id": "confirm",
  "name": "Confirm",
  "category": "success",
  "tags": [
   "confirm",
   "ok",
   "accept",
   "tick",
   "quick"
  ],
  "description": "A short two-step chirp that says yes.",
  "source": "synth",
  "duration": 0.13,
  "peaks": [
   0.77,
   0.88,
   0.51,
   0.3,
   0.15,
   0.09,
   0.05,
   0.03,
   0.02,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.74,
   1,
   0.8,
   0.6,
   0.45,
   0.33,
   0.25,
   0.18,
   0.13,
   0.1,
   0.07,
   0.06,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/confirm.wav",
   "m4a": "sounds/confirm.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 1000, d: 0.035, g: 0.2 });\n    k.tone({ f: 1500, t: 0.06, d: 0.07, g: 0.22 });\n  }"
 },
 {
  "id": "payment-success",
  "name": "Payment done",
  "category": "success",
  "tags": [
   "payment",
   "success",
   "purchase",
   "checkout",
   "bright"
  ],
  "description": "A bright chime over a soft low note.",
  "source": "synth",
  "duration": 0.925,
  "peaks": [
   1,
   0.77,
   0.59,
   0.49,
   0.85,
   0.8,
   0.7,
   0.58,
   0.45,
   0.38,
   0.32,
   0.26,
   0.22,
   0.18,
   0.15,
   0.13,
   0.1,
   0.08,
   0.08,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/payment-success.wav",
   "m4a": "sounds/payment-success.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.4, mix: 0.25 });\n    k.strike({ f: n('C5'), kind: 'vibes', d: 0.8, g: 0.12, send: 0.2 });\n    k.strike({ f: n('E6'), kind: 'bell', d: 0.6, g: 0.18, send: 0.3 });\n    k.strike({ f: n('B6'), t: 0.09, kind: 'bell', d: 0.9, g: 0.16, send: 0.4 });\n  }"
 },
 {
  "id": "level-up",
  "name": "Level up",
  "category": "success",
  "tags": [
   "level up",
   "game",
   "retro",
   "arpeggio",
   "reward",
   "8-bit"
  ],
  "description": "A fast square-wave run up two octaves.",
  "source": "synth",
  "duration": 0.575,
  "peaks": [
   1,
   0.28,
   0.06,
   0.8,
   0.99,
   0.19,
   0.04,
   0.96,
   0.69,
   0.14,
   0.03,
   0.99,
   0.44,
   0.09,
   0.02,
   0.99,
   0.31,
   0.06,
   0.78,
   0.99,
   0.21,
   0.04,
   1,
   0.95,
   0.73,
   0.56,
   0.43,
   0.33,
   0.25,
   0.19,
   0.15,
   0.11,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/level-up.wav",
   "m4a": "sounds/level-up.m4a"
  },
  "code": "(k, n) => {\n    ['C5', 'E5', 'G5', 'C6', 'E6', 'G6', 'C7'].forEach((x, i) => k.tone({ f: n(x), t: i * 0.045, d: i === 6 ? 0.3 : 0.05, g: 0.08, type: 'square', filter: { type: 'lowpass', f: 6000 } }));\n  }"
 },
 {
  "id": "achievement",
  "name": "Achievement",
  "category": "success",
  "tags": [
   "achievement",
   "fanfare",
   "brass",
   "reward",
   "big"
  ],
  "description": "A short brassy chord with a bell on top.",
  "source": "synth",
  "duration": 1.245,
  "peaks": [
   0.83,
   1,
   0.98,
   0.86,
   0.77,
   0.75,
   0.67,
   0.62,
   0.75,
   0.64,
   0.71,
   0.58,
   0.49,
   0.41,
   0.28,
   0.23,
   0.15,
   0.11,
   0.08,
   0.07,
   0.06,
   0.05,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/achievement.wav",
   "m4a": "sounds/achievement.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.6, mix: 0.25 });\n    ['C4', 'G4', 'C5', 'E5', 'G5'].forEach((x) => k.tone({ f: n(x), a: 0.03, hold: 0.25, d: 0.6, g: 0.06, type: 'sawtooth', send: 0.3, filter: { type: 'lowpass', f: 800, to: 3500, glide: 0.15 } }));\n    k.strike({ f: n('C7'), t: 0.02, kind: 'bell', d: 1.0, g: 0.1, send: 0.4 });\n  }"
 },
 {
  "id": "coin",
  "name": "Coin",
  "category": "success",
  "tags": [
   "coin",
   "game",
   "retro",
   "collect",
   "8-bit",
   "reward"
  ],
  "description": "A classic two-note pickup sound.",
  "source": "synth",
  "duration": 0.395,
  "peaks": [
   0.97,
   0.52,
   0.2,
   0.08,
   0.03,
   0.01,
   0,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.82,
   0.56,
   0.38,
   0.27,
   0.18,
   0.12,
   0.09,
   0.06,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/coin.wav",
   "m4a": "sounds/coin.m4a"
  },
  "code": "(k, n) => {\n    k.tone({ f: n('B5'), d: 0.06, g: 0.1, type: 'square', filter: { type: 'lowpass', f: 7000 } });\n    k.tone({ f: n('E6'), t: 0.06, hold: 0.18, d: 0.15, g: 0.1, type: 'square', filter: { type: 'lowpass', f: 7000 } });\n  }"
 },
 {
  "id": "error-buzz",
  "name": "Error buzz",
  "category": "errors",
  "tags": [
   "error",
   "buzz",
   "wrong",
   "harsh",
   "denied"
  ],
  "description": "A low buzzer for something that failed.",
  "source": "synth",
  "duration": 0.225,
  "peaks": [
   0.73,
   0.99,
   0.82,
   0.83,
   0.81,
   0.74,
   0.78,
   0.77,
   0.75,
   0.8,
   0.73,
   0.84,
   0.68,
   0.87,
   0.65,
   0.9,
   0.62,
   0.45,
   0.58,
   0.72,
   0.55,
   0.83,
   0.52,
   0.83,
   0.83,
   0.78,
   0.83,
   0.64,
   0.83,
   0.62,
   0.83,
   0.67,
   0.84,
   0.71,
   0.8,
   1,
   0.97,
   0.87,
   0.69,
   0.57,
   0.3,
   0.15,
   0.07,
   0.04,
   0.01,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/error-buzz.wav",
   "m4a": "sounds/error-buzz.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 110, hold: 0.18, d: 0.05, g: 0.22, type: 'square', filter: { type: 'lowpass', f: 1200 } });\n    k.tone({ f: 116, hold: 0.18, d: 0.05, g: 0.15, type: 'sawtooth', filter: { type: 'lowpass', f: 900 } });\n  }"
 },
 {
  "id": "error-double",
  "name": "Error",
  "category": "errors",
  "tags": [
   "error",
   "two-note",
   "falling",
   "fail",
   "invalid"
  ],
  "description": "Two falling notes that sound like no.",
  "source": "synth",
  "duration": 0.37,
  "peaks": [
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.76,
   0.43,
   0.29,
   0.17,
   0.11,
   0.06,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0,
   1,
   1,
   1,
   1,
   1,
   1,
   0.86,
   0.64,
   0.47,
   0.35,
   0.26,
   0.19,
   0.16,
   0.12,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/error-double.wav",
   "m4a": "sounds/error-double.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 330, d: 0.12, hold: 0.04, g: 0.18, type: 'sawtooth', filter: { type: 'lowpass', f: 1800 } });\n    k.tone({ f: 247, t: 0.14, d: 0.2, hold: 0.04, g: 0.18, type: 'sawtooth', filter: { type: 'lowpass', f: 1500 } });\n  }"
 },
 {
  "id": "error-thud",
  "name": "Thud",
  "category": "errors",
  "tags": [
   "error",
   "thud",
   "blocked",
   "heavy",
   "dull",
   "bump"
  ],
  "description": "A dull thud for a blocked action.",
  "source": "synth",
  "duration": 0.16,
  "peaks": [
   0.64,
   1,
   0.82,
   0.68,
   0.56,
   0.49,
   0.49,
   0.42,
   0.34,
   0.28,
   0.24,
   0.24,
   0.19,
   0.15,
   0.15,
   0.13,
   0.1,
   0.1,
   0.08,
   0.05,
   0.06,
   0.05,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/error-thud.wav",
   "m4a": "sounds/error-thud.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 150, to: 55, glide: 0.12, d: 0.2, g: 0.6 });\n    k.noise({ d: 0.08, g: 0.3, filter: { type: 'lowpass', f: 600 } });\n  }"
 },
 {
  "id": "warning-beep",
  "name": "Warning",
  "category": "errors",
  "tags": [
   "warning",
   "beep",
   "caution",
   "double",
   "attention"
  ],
  "description": "Two plain 1 kHz beeps.",
  "source": "synth",
  "duration": 0.345,
  "peaks": [
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.94,
   0.16,
   0.03,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.24,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.73,
   0.11,
   0.02,
   0
  ],
  "files": {
   "wav": "sounds/warning-beep.wav",
   "m4a": "sounds/warning-beep.m4a"
  },
  "code": "(k) => {\n    for (const t of [0, 0.2]) k.tone({ f: 1000, t, a: 0.005, hold: 0.11, d: 0.03, g: 0.18 });\n  }"
 },
 {
  "id": "denied-wobble",
  "name": "Denied",
  "category": "errors",
  "tags": [
   "denied",
   "wobble",
   "no",
   "invalid",
   "cartoon"
  ],
  "description": "A wobbly low note that shakes its head.",
  "source": "synth",
  "duration": 0.27,
  "peaks": [
   0.99,
   0.99,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.99,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.99,
   1,
   0.99,
   0.81,
   0.5,
   0.31,
   0.2,
   0.13,
   0.08,
   0.06,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/denied-wobble.wav",
   "m4a": "sounds/denied-wobble.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 300, to: 220, glide: 0.25, hold: 0.18, d: 0.1, g: 0.25, type: 'triangle', vib: { rate: 16, depth: 30 } });\n  }"
 },
 {
  "id": "invalid-input",
  "name": "Invalid input",
  "category": "errors",
  "tags": [
   "invalid",
   "input",
   "form",
   "shake",
   "error",
   "soft"
  ],
  "description": "A soft two-tap shake for a bad form field.",
  "source": "synth",
  "duration": 0.145,
  "peaks": [
   0.94,
   1,
   0.58,
   0.39,
   0.23,
   0.13,
   0.09,
   0.05,
   0.04,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.83,
   0.92,
   0.79,
   0.59,
   0.44,
   0.32,
   0.24,
   0.18,
   0.13,
   0.1,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/invalid-input.wav",
   "m4a": "sounds/invalid-input.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 420, d: 0.05, g: 0.22, type: 'triangle', filter: { type: 'lowpass', f: 2000 } });\n    k.tone({ f: 320, t: 0.07, d: 0.08, g: 0.22, type: 'triangle', filter: { type: 'lowpass', f: 2000 } });\n  }"
 },
 {
  "id": "swoosh-fast",
  "name": "Fast swoosh",
  "category": "transitions",
  "tags": [
   "swoosh",
   "whoosh",
   "fast",
   "transition",
   "air"
  ],
  "description": "A quick rush of air.",
  "source": "synth",
  "duration": 0.16,
  "peaks": [
   0.04,
   0.06,
   0.19,
   0.16,
   0.18,
   0.34,
   0.37,
   0.28,
   0.39,
   0.61,
   0.59,
   1,
   0.9,
   0.94,
   0.83,
   0.9,
   0.53,
   0.52,
   0.48,
   0.33,
   0.38,
   0.19,
   0.21,
   0.19,
   0.12,
   0.14,
   0.07,
   0.09,
   0.06,
   0.05,
   0.05,
   0.04,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/swoosh-fast.wav",
   "m4a": "sounds/swoosh-fast.m4a"
  },
  "code": "(k) => {\n    k.noise({ a: 0.05, d: 0.12, g: 0.4, filter: { type: 'bandpass', f: 800, to: 5000, glide: 0.15, q: 2 } });\n  }"
 },
 {
  "id": "swoosh-slow",
  "name": "Slow swoosh",
  "category": "transitions",
  "tags": [
   "swoosh",
   "whoosh",
   "slow",
   "transition",
   "air",
   "soft"
  ],
  "description": "A slow, soft sweep of air.",
  "source": "synth",
  "duration": 0.49,
  "peaks": [
   0.02,
   0.03,
   0.07,
   0.09,
   0.14,
   0.17,
   0.2,
   0.23,
   0.3,
   0.33,
   0.41,
   0.44,
   0.47,
   0.66,
   0.57,
   0.74,
   0.86,
   0.79,
   0.95,
   0.85,
   1,
   0.92,
   0.98,
   0.55,
   0.4,
   0.32,
   0.36,
   0.24,
   0.17,
   0.18,
   0.12,
   0.1,
   0.06,
   0.05,
   0.03,
   0.03,
   0.03,
   0.03,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/swoosh-slow.wav",
   "m4a": "sounds/swoosh-slow.m4a"
  },
  "code": "(k) => {\n    k.noise({ a: 0.22, d: 0.3, g: 0.35, filter: { type: 'bandpass', f: 400, to: 3000, glide: 0.45, q: 1.5 } });\n  }"
 },
 {
  "id": "swipe",
  "name": "Swipe",
  "category": "transitions",
  "tags": [
   "swipe",
   "dismiss",
   "gesture",
   "falling",
   "card"
  ],
  "description": "A downward swipe for dismissing a card.",
  "source": "synth",
  "duration": 0.115,
  "peaks": [
   0.08,
   0.21,
   0.26,
   0.35,
   0.31,
   0.49,
   0.62,
   0.72,
   1,
   0.73,
   0.51,
   0.51,
   0.45,
   0.35,
   0.28,
   0.19,
   0.22,
   0.16,
   0.16,
   0.15,
   0.12,
   0.14,
   0.09,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/swipe.wav",
   "m4a": "sounds/swipe.m4a"
  },
  "code": "(k) => {\n    k.noise({ a: 0.02, d: 0.12, g: 0.35, filter: { type: 'bandpass', f: 4000, to: 1200, glide: 0.12, q: 2 } });\n  }"
 },
 {
  "id": "whoosh-deep",
  "name": "Deep whoosh",
  "category": "transitions",
  "tags": [
   "whoosh",
   "deep",
   "low",
   "cinematic",
   "transition",
   "big"
  ],
  "description": "A big, low pass-by.",
  "source": "synth",
  "duration": 0.46,
  "peaks": [
   0.03,
   0.09,
   0.13,
   0.26,
   0.28,
   0.34,
   0.38,
   0.47,
   0.45,
   0.54,
   0.64,
   0.8,
   0.92,
   1,
   0.96,
   0.84,
   0.89,
   0.77,
   0.81,
   0.76,
   0.58,
   0.43,
   0.36,
   0.33,
   0.32,
   0.15,
   0.13,
   0.13,
   0.13,
   0.1,
   0.05,
   0.06,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/whoosh-deep.wav",
   "m4a": "sounds/whoosh-deep.m4a"
  },
  "code": "(k) => {\n    k.noise({ a: 0.18, d: 0.35, g: 0.5, filter: { type: 'lowpass', f: 250, to: 1800, glide: 0.3, q: 1.2 } });\n    k.tone({ f: 55, to: 90, glide: 0.25, a: 0.15, d: 0.3, g: 0.25 });\n  }"
 },
 {
  "id": "modal-open",
  "name": "Open",
  "category": "transitions",
  "tags": [
   "open",
   "modal",
   "sheet",
   "rising",
   "appear"
  ],
  "description": "A soft rising tone for something appearing.",
  "source": "synth",
  "duration": 0.135,
  "peaks": [
   0.25,
   0.54,
   0.74,
   1,
   0.9,
   0.76,
   0.64,
   0.57,
   0.48,
   0.43,
   0.37,
   0.34,
   0.3,
   0.27,
   0.28,
   0.28,
   0.24,
   0.22,
   0.19,
   0.19,
   0.12,
   0.1,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/modal-open.wav",
   "m4a": "sounds/modal-open.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 300, to: 620, glide: 0.1, a: 0.01, d: 0.13, g: 0.2 });\n    k.noise({ a: 0.05, d: 0.08, g: 0.05, filter: { type: 'bandpass', f: 2000, to: 4000, glide: 0.1 } });\n  }"
 },
 {
  "id": "modal-close",
  "name": "Close",
  "category": "transitions",
  "tags": [
   "close",
   "modal",
   "sheet",
   "falling",
   "disappear"
  ],
  "description": "A soft falling tone for something leaving.",
  "source": "synth",
  "duration": 0.135,
  "peaks": [
   0.28,
   0.55,
   0.82,
   1,
   0.96,
   0.8,
   0.67,
   0.59,
   0.52,
   0.49,
   0.4,
   0.35,
   0.35,
   0.3,
   0.31,
   0.26,
   0.25,
   0.25,
   0.2,
   0.15,
   0.17,
   0.1,
   0.1,
   0.07,
   0.07,
   0.06,
   0.05,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/modal-close.wav",
   "m4a": "sounds/modal-close.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 620, to: 300, glide: 0.1, a: 0.01, d: 0.13, g: 0.2 });\n    k.noise({ a: 0.05, d: 0.08, g: 0.05, filter: { type: 'bandpass', f: 4000, to: 2000, glide: 0.1 } });\n  }"
 },
 {
  "id": "drawer-slide",
  "name": "Drawer slide",
  "category": "transitions",
  "tags": [
   "drawer",
   "slide",
   "panel",
   "sidebar",
   "open"
  ],
  "description": "A short slide that clicks into place.",
  "source": "synth",
  "duration": 0.225,
  "peaks": [
   0.01,
   0.02,
   0.05,
   0.06,
   0.06,
   0.08,
   0.12,
   0.12,
   0.14,
   0.18,
   0.14,
   0.19,
   0.24,
   0.22,
   0.23,
   0.29,
   0.19,
   0.22,
   0.21,
   0.26,
   0.2,
   0.27,
   0.21,
   0.23,
   0.28,
   0.18,
   0.16,
   0.12,
   0.07,
   0.05,
   0.03,
   0.03,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   1,
   0.84,
   0.32,
   0.14,
   0.08,
   0.04,
   0.02,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/drawer-slide.wav",
   "m4a": "sounds/drawer-slide.m4a"
  },
  "code": "(k) => {\n    k.noise({ a: 0.06, hold: 0.06, d: 0.08, g: 0.15, filter: { type: 'bandpass', f: 1200, to: 1800, glide: 0.15, q: 0.8 } });\n    k.strike({ f: 900, t: 0.18, kind: 'wood', d: 0.05, g: 0.25 });\n  }"
 },
 {
  "id": "zoom-in",
  "name": "Zoom in",
  "category": "transitions",
  "tags": [
   "zoom",
   "in",
   "rising",
   "expand",
   "focus"
  ],
  "description": "A rising sweep for zooming in.",
  "source": "synth",
  "duration": 0.285,
  "peaks": [
   0.13,
   0.24,
   0.4,
   0.49,
   0.63,
   0.68,
   0.7,
   0.74,
   0.7,
   0.74,
   0.73,
   0.81,
   0.72,
   0.84,
   0.79,
   0.82,
   0.78,
   0.8,
   0.88,
   0.88,
   0.94,
   0.88,
   0.92,
   1,
   0.94,
   0.96,
   0.96,
   0.77,
   0.73,
   0.73,
   0.73,
   0.5,
   0.34,
   0.23,
   0.16,
   0.1,
   0.07,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/zoom-in.wav",
   "m4a": "sounds/zoom-in.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 200, to: 1600, glide: 0.28, a: 0.03, hold: 0.15, d: 0.1, g: 0.12 });\n    k.noise({ a: 0.15, d: 0.15, g: 0.12, filter: { type: 'bandpass', f: 1000, to: 6000, glide: 0.28 } });\n  }"
 },
 {
  "id": "riser",
  "name": "Riser",
  "category": "transitions",
  "tags": [
   "riser",
   "build",
   "tension",
   "sweep",
   "cinematic"
  ],
  "description": "A half-second build that opens up.",
  "source": "synth",
  "duration": 0.615,
  "peaks": [
   0.02,
   0.04,
   0.06,
   0.07,
   0.11,
   0.12,
   0.18,
   0.17,
   0.19,
   0.23,
   0.27,
   0.26,
   0.28,
   0.3,
   0.34,
   0.37,
   0.38,
   0.4,
   0.41,
   0.51,
   0.44,
   0.48,
   0.54,
   0.56,
   0.59,
   0.58,
   0.69,
   0.67,
   0.65,
   0.67,
   0.74,
   0.77,
   0.8,
   1,
   0.82,
   0.86,
   0.82,
   0.86,
   0.91,
   0.86,
   0.4,
   0.17,
   0.08,
   0.04,
   0.02,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/riser.wav",
   "m4a": "sounds/riser.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 200, to: 800, glide: 0.6, a: 0.5, d: 0.12, g: 0.1, type: 'sawtooth', filter: { type: 'lowpass', f: 800, to: 6000, glide: 0.6 } });\n    k.noise({ a: 0.5, d: 0.12, g: 0.15, filter: { type: 'highpass', f: 1000, to: 6000, glide: 0.6 } });\n  }"
 },
 {
  "id": "tab-switch",
  "name": "Tab switch",
  "category": "transitions",
  "tags": [
   "tab",
   "switch",
   "segment",
   "navigate",
   "quick"
  ],
  "description": "A quick sideways step between tabs.",
  "source": "synth",
  "duration": 0.085,
  "peaks": [
   0.46,
   0.98,
   0.86,
   0.51,
   0.34,
   0.23,
   0.15,
   0.1,
   0.07,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0.01,
   0.57,
   1,
   0.88,
   0.69,
   0.54,
   0.43,
   0.31,
   0.25,
   0.19,
   0.15,
   0.11,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/tab-switch.wav",
   "m4a": "sounds/tab-switch.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 900, d: 0.03, g: 0.15, type: 'triangle' });\n    k.tone({ f: 1200, t: 0.03, d: 0.05, g: 0.15, type: 'triangle' });\n  }"
 },
 {
  "id": "pop",
  "name": "Pop",
  "category": "pops",
  "tags": [
   "pop",
   "bubble",
   "appear",
   "playful",
   "round"
  ],
  "description": "A round, satisfying pop.",
  "source": "synth",
  "duration": 0.04,
  "peaks": [
   0.28,
   0.4,
   0.85,
   0.83,
   1,
   0.77,
   0.7,
   0.63,
   0.51,
   0.43,
   0.36,
   0.31,
   0.27,
   0.23,
   0.2,
   0.18,
   0.15,
   0.12,
   0.11,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/pop.wav",
   "m4a": "sounds/pop.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 300, to: 900, glide: 0.015, d: 0.045, g: 0.5 });\n    k.noise({ d: 0.01, g: 0.2, filter: { type: 'bandpass', f: 2000, q: 1 } });\n  }"
 },
 {
  "id": "bubble",
  "name": "Bubble",
  "category": "pops",
  "tags": [
   "bubble",
   "water",
   "blip",
   "rising",
   "liquid"
  ],
  "description": "A single bubble rising.",
  "source": "synth",
  "duration": 0.065,
  "peaks": [
   0.41,
   0.86,
   1,
   0.9,
   0.73,
   0.66,
   0.54,
   0.48,
   0.4,
   0.36,
   0.3,
   0.25,
   0.23,
   0.19,
   0.16,
   0.14,
   0.12,
   0.1,
   0.09,
   0.08,
   0.07,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/bubble.wav",
   "m4a": "sounds/bubble.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 500, to: 1250, glide: 0.06, d: 0.07, g: 0.3 });\n  }"
 },
 {
  "id": "droplet",
  "name": "Droplet",
  "category": "pops",
  "tags": [
   "drop",
   "water",
   "droplet",
   "liquid",
   "plink"
  ],
  "description": "A water droplet with a little space around it.",
  "source": "synth",
  "duration": 0.4,
  "peaks": [
   1,
   0.57,
   0.26,
   0.1,
   0.05,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0.01,
   0.01,
   0,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/droplet.wav",
   "m4a": "sounds/droplet.m4a"
  },
  "code": "(k) => {\n    k.space({ decay: 0.8, mix: 0.25 });\n    k.tone({ f: 700, to: 1800, glide: 0.05, d: 0.08, g: 0.3, send: 0.4 });\n  }"
 },
 {
  "id": "like",
  "name": "Like",
  "category": "pops",
  "tags": [
   "like",
   "heart",
   "favorite",
   "pop",
   "social"
  ],
  "description": "A bouncy pop for liking something.",
  "source": "synth",
  "duration": 0.305,
  "peaks": [
   1,
   0.58,
   0.21,
   0.07,
   0.03,
   0.01,
   0,
   0.13,
   0.48,
   0.42,
   0.35,
   0.3,
   0.26,
   0.22,
   0.19,
   0.16,
   0.14,
   0.12,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/like.wav",
   "m4a": "sounds/like.m4a"
  },
  "code": "(k, n) => {\n    k.tone({ f: 600, to: 1100, glide: 0.03, d: 0.05, g: 0.35 });\n    k.strike({ f: n('E6'), t: 0.05, kind: 'vibes', d: 0.3, g: 0.15 });\n  }"
 },
 {
  "id": "message-send",
  "name": "Send",
  "category": "messages",
  "tags": [
   "send",
   "message",
   "sent",
   "whoosh",
   "outgoing"
  ],
  "description": "A short upward whoosh for a sent message.",
  "source": "synth",
  "duration": 0.12,
  "peaks": [
   0.74,
   1,
   0.82,
   0.76,
   0.59,
   0.63,
   0.51,
   0.57,
   0.56,
   0.52,
   0.6,
   0.53,
   0.5,
   0.45,
   0.4,
   0.27,
   0.29,
   0.22,
   0.13,
   0.1,
   0.11,
   0.09,
   0.1,
   0.07,
   0.07,
   0.06,
   0.05,
   0.04,
   0.02,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/message-send.wav",
   "m4a": "sounds/message-send.m4a"
  },
  "code": "(k) => {\n    k.noise({ a: 0.03, d: 0.1, g: 0.25, filter: { type: 'bandpass', f: 1000, to: 4500, glide: 0.12, q: 1.5 } });\n    k.tone({ f: 600, to: 1150, glide: 0.08, d: 0.08, g: 0.15 });\n  }"
 },
 {
  "id": "message-receive",
  "name": "Receive",
  "category": "messages",
  "tags": [
   "receive",
   "message",
   "incoming",
   "marimba",
   "friendly"
  ],
  "description": "Two marimba notes for an incoming message.",
  "source": "synth",
  "duration": 0.52,
  "peaks": [
   0.97,
   0.69,
   0.5,
   0.36,
   0.27,
   0.2,
   0.15,
   0.11,
   1,
   0.89,
   0.71,
   0.59,
   0.46,
   0.39,
   0.33,
   0.27,
   0.23,
   0.18,
   0.16,
   0.13,
   0.11,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/message-receive.wav",
   "m4a": "sounds/message-receive.m4a"
  },
  "code": "(k, n) => {\n    k.strike({ f: n('G5'), kind: 'marimba', d: 0.3, g: 0.26 });\n    k.strike({ f: n('D6'), t: 0.09, kind: 'marimba', d: 0.5, g: 0.26 });\n  }"
 },
 {
  "id": "message-pop",
  "name": "Message pop",
  "category": "messages",
  "tags": [
   "message",
   "pop",
   "chat",
   "bubble",
   "incoming"
  ],
  "description": "A chat-bubble pop with a small chime.",
  "source": "synth",
  "duration": 0.36,
  "peaks": [
   1,
   0.37,
   0.08,
   0.02,
   0.41,
   0.37,
   0.32,
   0.28,
   0.24,
   0.21,
   0.18,
   0.16,
   0.14,
   0.12,
   0.1,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/message-pop.wav",
   "m4a": "sounds/message-pop.m4a"
  },
  "code": "(k, n) => {\n    k.tone({ f: 350, to: 1000, glide: 0.015, d: 0.04, g: 0.4 });\n    k.strike({ f: n('C6'), t: 0.03, kind: 'vibes', d: 0.4, g: 0.15 });\n  }"
 },
 {
  "id": "progress-tick",
  "name": "Progress tick",
  "category": "progress",
  "tags": [
   "tick",
   "progress",
   "step",
   "wood",
   "clock"
  ],
  "description": "A small wooden tick for each step.",
  "source": "synth",
  "duration": 0.025,
  "peaks": [
   0.05,
   0.37,
   0.62,
   1,
   0.81,
   0.66,
   0.57,
   0.49,
   0.38,
   0.32,
   0.28,
   0.21,
   0.21,
   0.15,
   0.15,
   0.12,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/progress-tick.wav",
   "m4a": "sounds/progress-tick.m4a"
  },
  "code": "(k) => {\n    k.strike({ f: 2000, kind: 'wood', d: 0.025, g: 0.22 });\n  }"
 },
 {
  "id": "processing",
  "name": "Processing",
  "category": "progress",
  "tags": [
   "processing",
   "computing",
   "digital",
   "blips",
   "loading"
  ],
  "description": "A burst of computer-like blips.",
  "source": "synth",
  "duration": 0.35,
  "peaks": [
   0.97,
   0.33,
   0.05,
   0.01,
   0,
   0,
   0.98,
   0.43,
   0.07,
   0.01,
   0,
   0,
   0.99,
   0.63,
   0.09,
   0.01,
   0,
   0,
   0.97,
   0.89,
   0.12,
   0.02,
   0,
   0,
   0.72,
   1,
   0.17,
   0.03,
   0,
   0,
   0.32,
   0.98,
   0.24,
   0.04,
   0.01,
   0,
   0,
   1,
   0.31,
   0.05,
   0.01,
   0,
   0,
   0.98,
   0.45,
   0.07,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/processing.wav",
   "m4a": "sounds/processing.m4a"
  },
  "code": "(k) => {\n    for (let i = 0; i < 8; i++) k.tone({ f: 800 + Math.floor(k.rand() * 8) * 220, t: i * 0.045, d: 0.025, g: 0.07, type: 'square', filter: { type: 'lowpass', f: 5000 } });\n  }"
 },
 {
  "id": "countdown",
  "name": "Countdown",
  "category": "progress",
  "tags": [
   "countdown",
   "timer",
   "start",
   "race",
   "beep"
  ],
  "description": "Three beeps and a higher go.",
  "source": "synth",
  "duration": 1.43,
  "peaks": [
   1,
   1,
   1,
   0.19,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   1,
   1,
   1,
   0.03,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   1,
   1,
   1,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.2,
   0.01
  ],
  "files": {
   "wav": "sounds/countdown.wav",
   "m4a": "sounds/countdown.m4a"
  },
  "code": "(k) => {\n    for (let i = 0; i < 3; i++) k.tone({ f: 660, t: i * 0.35, hold: 0.08, d: 0.03, g: 0.15 });\n    k.tone({ f: 1320, t: 1.05, hold: 0.3, d: 0.08, g: 0.15 });\n  }"
 },
 {
  "id": "timer-done",
  "name": "Timer done",
  "category": "progress",
  "tags": [
   "timer",
   "done",
   "alarm",
   "bell",
   "ring"
  ],
  "description": "Two pairs of bright bell strikes.",
  "source": "synth",
  "duration": 1.16,
  "peaks": [
   0.98,
   0.64,
   0.35,
   0.22,
   0.32,
   1,
   0.62,
   0.37,
   0.23,
   0.14,
   0.09,
   0.06,
   0.04,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0.98,
   0.9,
   0.52,
   0.31,
   0.19,
   1,
   0.94,
   0.51,
   0.32,
   0.19,
   0.12,
   0.08,
   0.05,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/timer-done.wav",
   "m4a": "sounds/timer-done.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 1.0, mix: 0.2 });\n    for (const t of [0, 0.12, 0.5, 0.62]) k.strike({ f: n('A6'), t, kind: 'bell', d: 0.4, g: 0.14, send: 0.3 });\n  }"
 },
 {
  "id": "power-on",
  "name": "Power on",
  "category": "system",
  "tags": [
   "power",
   "on",
   "boot",
   "start",
   "rising",
   "sweep"
  ],
  "description": "Three voices sweeping up an octave.",
  "source": "synth",
  "duration": 1.28,
  "peaks": [
   0.09,
   0.18,
   0.26,
   0.34,
   0.44,
   0.54,
   0.61,
   0.7,
   0.81,
   0.89,
   0.97,
   1,
   0.77,
   0.57,
   0.41,
   0.31,
   0.23,
   0.15,
   0.13,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/power-on.wav",
   "m4a": "sounds/power-on.m4a"
  },
  "code": "(k) => {\n    k.space({ decay: 1.5, mix: 0.3 });\n    [220, 330, 440].forEach((f) => k.tone({ f, to: f * 2, glide: 0.45, a: 0.3, d: 0.6, g: 0.1, send: 0.3 }));\n  }"
 },
 {
  "id": "power-off",
  "name": "Power off",
  "category": "system",
  "tags": [
   "power",
   "off",
   "shutdown",
   "falling",
   "sweep"
  ],
  "description": "A tone dropping away into nothing.",
  "source": "synth",
  "duration": 0.585,
  "peaks": [
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   1,
   0.99,
   1,
   1,
   1,
   1,
   0.81,
   0.61,
   0.44,
   0.32,
   0.24,
   0.18,
   0.13,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/power-off.wav",
   "m4a": "sounds/power-off.m4a"
  },
  "code": "(k) => {\n    k.tone({ f: 880, to: 110, glide: 0.5, a: 0.01, hold: 0.3, d: 0.3, g: 0.18, type: 'triangle' });\n  }"
 },
 {
  "id": "startup-chord",
  "name": "Startup chord",
  "category": "system",
  "tags": [
   "startup",
   "chord",
   "boot",
   "big",
   "warm",
   "welcome"
  ],
  "description": "A wide, warm major chord that blooms.",
  "source": "synth",
  "duration": 2.54,
  "peaks": [
   0.59,
   0.71,
   0.87,
   0.95,
   0.7,
   0.76,
   0.69,
   0.92,
   1,
   0.92,
   0.71,
   0.84,
   0.73,
   0.56,
   0.46,
   0.39,
   0.32,
   0.29,
   0.23,
   0.16,
   0.16,
   0.15,
   0.09,
   0.06,
   0.07,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/startup-chord.wav",
   "m4a": "sounds/startup-chord.m4a"
  },
  "code": "(k, n) => {\n    k.space({ decay: 2.5, mix: 0.35 });\n    ['F3', 'C4', 'F4', 'A4', 'C5', 'F5'].forEach((x, i) => k.tone({ f: n(x), detune: (i % 2 ? 1 : -1) * 4, a: 0.04, hold: 0.6, d: 1.6, g: 0.06, type: 'sawtooth', send: 0.4, filter: { type: 'lowpass', f: 900, to: 4200, glide: 0.5, q: 0.5 } }));\n  }"
 },
 {
  "id": "connect",
  "name": "Connect",
  "category": "system",
  "tags": [
   "connect",
   "device",
   "plug in",
   "pair",
   "rising"
  ],
  "description": "Two rising tones for a device connecting.",
  "source": "synth",
  "duration": 0.445,
  "peaks": [
   1,
   0.75,
   0.52,
   0.38,
   0.27,
   0.19,
   0.13,
   0.09,
   0.07,
   0.05,
   0.03,
   0.02,
   0.1,
   1,
   0.84,
   0.69,
   0.56,
   0.47,
   0.38,
   0.32,
   0.26,
   0.21,
   0.17,
   0.14,
   0.12,
   0.1,
   0.08,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/connect.wav",
   "m4a": "sounds/connect.m4a"
  },
  "code": "(k, n) => {\n    k.fm({ f: n('C5'), ratio: 2, index: 1.2, d: 0.2, g: 0.18 });\n    k.fm({ f: n('G5'), t: 0.12, ratio: 2, index: 1.2, d: 0.35, g: 0.18 });\n  }"
 },
 {
  "id": "disconnect",
  "name": "Disconnect",
  "category": "system",
  "tags": [
   "disconnect",
   "device",
   "unplug",
   "unpair",
   "falling"
  ],
  "description": "Two falling tones for a device leaving.",
  "source": "synth",
  "duration": 0.445,
  "peaks": [
   1,
   0.75,
   0.54,
   0.38,
   0.27,
   0.19,
   0.13,
   0.09,
   0.07,
   0.05,
   0.03,
   0.02,
   0.16,
   1,
   0.85,
   0.7,
   0.56,
   0.46,
   0.38,
   0.31,
   0.25,
   0.21,
   0.17,
   0.14,
   0.12,
   0.1,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/disconnect.wav",
   "m4a": "sounds/disconnect.m4a"
  },
  "code": "(k, n) => {\n    k.fm({ f: n('G5'), ratio: 2, index: 1.2, d: 0.2, g: 0.18 });\n    k.fm({ f: n('C5'), t: 0.12, ratio: 2, index: 1.2, d: 0.35, g: 0.18 });\n  }"
 },
 {
  "id": "magic-sparkle",
  "name": "Magic dust",
  "category": "system",
  "tags": [
   "magic",
   "sparkle",
   "fairy",
   "twinkle",
   "ai",
   "generate"
  ],
  "description": "A scatter of tiny twinkles, good for AI actions.",
  "source": "synth",
  "duration": 1.461,
  "peaks": [
   0.37,
   0.2,
   0.7,
   1,
   0.74,
   0.44,
   0.23,
   0.63,
   0.52,
   0.65,
   0.34,
   0.17,
   0.08,
   0.06,
   0.4,
   0.34,
   0.17,
   0.38,
   0.23,
   0.11,
   0.07,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/magic-sparkle.wav",
   "m4a": "sounds/magic-sparkle.m4a"
  },
  "code": "(k) => {\n    k.space({ decay: 1.5, mix: 0.4, tone: 10000 });\n    for (let i = 0; i < 14; i++) k.strike({ f: 2500 + k.rand() * 4000, t: k.rand() * 0.6, kind: 'glass', d: 0.25, g: 0.05, send: 0.6 });\n  }"
 },
 {
  "id": "glass-click",
  "name": "Glass click",
  "category": "glass set",
  "set": "glass",
  "action": "click",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "click",
   "button",
   "press",
   "set"
  ],
  "description": "A button press. Part of the glass set.",
  "source": "synth",
  "duration": 0.06,
  "peaks": [
   0.67,
   0.99,
   1,
   0.8,
   0.56,
   0.53,
   0.49,
   0.42,
   0.3,
   0.26,
   0.23,
   0.2,
   0.16,
   0.14,
   0.12,
   0.11,
   0.09,
   0.08,
   0.06,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-click.wav",
   "m4a": "sounds/glass-click.m4a"
  }
 },
 {
  "id": "glass-hover",
  "name": "Glass hover",
  "category": "glass set",
  "set": "glass",
  "action": "hover",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "hover",
   "focus",
   "faint",
   "set"
  ],
  "description": "A faint hover or focus cue. Part of the glass set.",
  "source": "synth",
  "duration": 0.065,
  "peaks": [
   0.62,
   1,
   0.91,
   0.66,
   0.63,
   0.54,
   0.41,
   0.39,
   0.3,
   0.26,
   0.23,
   0.2,
   0.15,
   0.14,
   0.12,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-hover.wav",
   "m4a": "sounds/glass-hover.m4a"
  }
 },
 {
  "id": "glass-toggle",
  "name": "Glass toggle",
  "category": "glass set",
  "set": "glass",
  "action": "toggle",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "toggle",
   "switch",
   "on",
   "set"
  ],
  "description": "Two rising notes for a switch. Part of the glass set.",
  "source": "synth",
  "duration": 0.48,
  "peaks": [
   0.96,
   0.57,
   0.35,
   0.19,
   0.09,
   0.06,
   1,
   0.68,
   0.44,
   0.29,
   0.18,
   0.12,
   0.08,
   0.05,
   0.04,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-toggle.wav",
   "m4a": "sounds/glass-toggle.m4a"
  }
 },
 {
  "id": "glass-notify",
  "name": "Glass notify",
  "category": "glass set",
  "set": "glass",
  "action": "notify",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "notification",
   "alert",
   "chime",
   "set"
  ],
  "description": "A two-note notification. Part of the glass set.",
  "source": "synth",
  "duration": 0.86,
  "peaks": [
   0.88,
   0.67,
   0.52,
   0.42,
   0.33,
   0.26,
   0.21,
   1,
   0.81,
   0.7,
   0.58,
   0.48,
   0.42,
   0.34,
   0.27,
   0.23,
   0.19,
   0.16,
   0.14,
   0.12,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-notify.wav",
   "m4a": "sounds/glass-notify.m4a"
  }
 },
 {
  "id": "glass-success",
  "name": "Glass success",
  "category": "glass set",
  "set": "glass",
  "action": "success",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "success",
   "done",
   "complete",
   "set"
  ],
  "description": "A major arpeggio up to the octave. Part of the glass set.",
  "source": "synth",
  "duration": 0.835,
  "peaks": [
   0.84,
   0.57,
   0.35,
   0.22,
   0.9,
   0.6,
   0.4,
   0.25,
   0.92,
   0.58,
   0.36,
   0.25,
   1,
   0.8,
   0.6,
   0.52,
   0.42,
   0.32,
   0.27,
   0.22,
   0.19,
   0.16,
   0.13,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-success.wav",
   "m4a": "sounds/glass-success.m4a"
  }
 },
 {
  "id": "glass-error",
  "name": "Glass error",
  "category": "glass set",
  "set": "glass",
  "action": "error",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "error",
   "fail",
   "wrong",
   "set"
  ],
  "description": "Two notes falling a tritone. Part of the glass set.",
  "source": "synth",
  "duration": 0.595,
  "peaks": [
   1,
   0.6,
   0.4,
   0.27,
   0.19,
   0.12,
   0.08,
   0.05,
   0.03,
   0.02,
   0.97,
   0.93,
   0.62,
   0.51,
   0.38,
   0.28,
   0.23,
   0.17,
   0.12,
   0.1,
   0.07,
   0.06,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-error.wav",
   "m4a": "sounds/glass-error.m4a"
  }
 },
 {
  "id": "glass-open",
  "name": "Glass open",
  "category": "glass set",
  "set": "glass",
  "action": "open",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "open",
   "modal",
   "appear",
   "set"
  ],
  "description": "A rising pair with a lift of air. Part of the glass set.",
  "source": "synth",
  "duration": 0.575,
  "peaks": [
   0.07,
   0.19,
   1,
   0.91,
   0.7,
   0.66,
   0.6,
   0.36,
   0.95,
   0.7,
   0.51,
   0.38,
   0.27,
   0.19,
   0.14,
   0.09,
   0.07,
   0.05,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-open.wav",
   "m4a": "sounds/glass-open.m4a"
  }
 },
 {
  "id": "glass-close",
  "name": "Glass close",
  "category": "glass set",
  "set": "glass",
  "action": "close",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "close",
   "dismiss",
   "disappear",
   "set"
  ],
  "description": "A falling pair with air going down. Part of the glass set.",
  "source": "synth",
  "duration": 0.605,
  "peaks": [
   0.11,
   0.24,
   1,
   0.85,
   0.79,
   0.82,
   0.52,
   0.34,
   0.83,
   0.58,
   0.4,
   0.27,
   0.2,
   0.14,
   0.11,
   0.08,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-close.wav",
   "m4a": "sounds/glass-close.m4a"
  }
 },
 {
  "id": "glass-send",
  "name": "Glass send",
  "category": "glass set",
  "set": "glass",
  "action": "send",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "send",
   "sent",
   "message",
   "outgoing",
   "set"
  ],
  "description": "A quick rush up that ends in a tap. Part of the glass set.",
  "source": "synth",
  "duration": 0.36,
  "peaks": [
   0.06,
   0.15,
   0.25,
   0.35,
   0.3,
   0.48,
   0.52,
   0.25,
   0.09,
   0.05,
   0.03,
   0.01,
   0.01,
   1,
   0.65,
   0.25,
   0.09,
   0.03,
   0.02,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-send.wav",
   "m4a": "sounds/glass-send.m4a"
  }
 },
 {
  "id": "glass-delete",
  "name": "Glass delete",
  "category": "glass set",
  "set": "glass",
  "action": "delete",
  "tags": [
   "glass",
   "glassy",
   "bright",
   "airy",
   "crystal",
   "delete",
   "remove",
   "trash",
   "set"
  ],
  "description": "A tap that drops into two low notes. Part of the glass set.",
  "source": "synth",
  "duration": 0.545,
  "peaks": [
   1,
   0.27,
   0.06,
   0.53,
   0.53,
   0.31,
   0.18,
   0.12,
   0.07,
   0.57,
   0.55,
   0.44,
   0.28,
   0.19,
   0.16,
   0.11,
   0.08,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/glass-delete.wav",
   "m4a": "sounds/glass-delete.m4a"
  }
 },
 {
  "id": "wood-click",
  "name": "Wood click",
  "category": "wood set",
  "set": "wood",
  "action": "click",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "click",
   "button",
   "press",
   "set"
  ],
  "description": "A button press. Part of the wood set.",
  "source": "synth",
  "duration": 0.045,
  "peaks": [
   0.32,
   1,
   0.95,
   0.95,
   0.83,
   0.53,
   0.51,
   0.34,
   0.35,
   0.27,
   0.22,
   0.2,
   0.16,
   0.14,
   0.12,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-click.wav",
   "m4a": "sounds/wood-click.m4a"
  }
 },
 {
  "id": "wood-hover",
  "name": "Wood hover",
  "category": "wood set",
  "set": "wood",
  "action": "hover",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "hover",
   "focus",
   "faint",
   "set"
  ],
  "description": "A faint hover or focus cue. Part of the wood set.",
  "source": "synth",
  "duration": 0.045,
  "peaks": [
   0.41,
   0.66,
   1,
   0.91,
   0.61,
   0.52,
   0.49,
   0.35,
   0.35,
   0.25,
   0.25,
   0.19,
   0.18,
   0.14,
   0.13,
   0.1,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-hover.wav",
   "m4a": "sounds/wood-hover.m4a"
  }
 },
 {
  "id": "wood-toggle",
  "name": "Wood toggle",
  "category": "wood set",
  "set": "wood",
  "action": "toggle",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "toggle",
   "switch",
   "on",
   "set"
  ],
  "description": "Two rising notes for a switch. Part of the wood set.",
  "source": "synth",
  "duration": 0.23,
  "peaks": [
   0.92,
   0.71,
   0.62,
   0.44,
   0.32,
   0.23,
   0.2,
   0.15,
   0.11,
   0.09,
   0.07,
   0.05,
   0.95,
   1,
   0.78,
   0.61,
   0.5,
   0.39,
   0.32,
   0.26,
   0.2,
   0.17,
   0.14,
   0.12,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-toggle.wav",
   "m4a": "sounds/wood-toggle.m4a"
  }
 },
 {
  "id": "wood-notify",
  "name": "Wood notify",
  "category": "wood set",
  "set": "wood",
  "action": "notify",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "notification",
   "alert",
   "chime",
   "set"
  ],
  "description": "A two-note notification. Part of the wood set.",
  "source": "synth",
  "duration": 0.87,
  "peaks": [
   0.87,
   0.68,
   0.52,
   0.42,
   0.32,
   0.27,
   0.21,
   1,
   0.86,
   0.65,
   0.58,
   0.46,
   0.41,
   0.33,
   0.29,
   0.23,
   0.19,
   0.17,
   0.14,
   0.12,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-notify.wav",
   "m4a": "sounds/wood-notify.m4a"
  }
 },
 {
  "id": "wood-success",
  "name": "Wood success",
  "category": "wood set",
  "set": "wood",
  "action": "success",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "success",
   "done",
   "complete",
   "set"
  ],
  "description": "A major arpeggio up to the octave. Part of the wood set.",
  "source": "synth",
  "duration": 0.88,
  "peaks": [
   0.84,
   0.55,
   0.34,
   0.83,
   1,
   0.57,
   0.35,
   0.93,
   0.81,
   0.52,
   0.3,
   0.97,
   0.92,
   0.71,
   0.54,
   0.45,
   0.36,
   0.29,
   0.24,
   0.19,
   0.16,
   0.13,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-success.wav",
   "m4a": "sounds/wood-success.m4a"
  }
 },
 {
  "id": "wood-error",
  "name": "Wood error",
  "category": "wood set",
  "set": "wood",
  "action": "error",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "error",
   "fail",
   "wrong",
   "set"
  ],
  "description": "Two notes falling a tritone. Part of the wood set.",
  "source": "synth",
  "duration": 0.47,
  "peaks": [
   0.94,
   0.7,
   0.49,
   0.34,
   0.25,
   0.18,
   0.13,
   0.1,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   1,
   0.82,
   0.72,
   0.52,
   0.45,
   0.34,
   0.29,
   0.23,
   0.19,
   0.15,
   0.12,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-error.wav",
   "m4a": "sounds/wood-error.m4a"
  }
 },
 {
  "id": "wood-open",
  "name": "Wood open",
  "category": "wood set",
  "set": "wood",
  "action": "open",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "open",
   "modal",
   "appear",
   "set"
  ],
  "description": "A rising pair with a lift of air. Part of the wood set.",
  "source": "synth",
  "duration": 0.365,
  "peaks": [
   0.03,
   0.06,
   0.14,
   0.17,
   1,
   0.78,
   0.79,
   0.7,
   0.7,
   0.73,
   0.4,
   0.43,
   0.14,
   0.99,
   0.85,
   0.66,
   0.55,
   0.42,
   0.35,
   0.28,
   0.24,
   0.18,
   0.16,
   0.12,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-open.wav",
   "m4a": "sounds/wood-open.m4a"
  }
 },
 {
  "id": "wood-close",
  "name": "Wood close",
  "category": "wood set",
  "set": "wood",
  "action": "close",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "close",
   "dismiss",
   "disappear",
   "set"
  ],
  "description": "A falling pair with air going down. Part of the wood set.",
  "source": "synth",
  "duration": 0.36,
  "peaks": [
   0.05,
   0.17,
   0.21,
   0.26,
   1,
   0.89,
   0.87,
   0.78,
   0.8,
   0.65,
   0.36,
   0.33,
   0.15,
   0.92,
   0.78,
   0.66,
   0.52,
   0.41,
   0.34,
   0.27,
   0.23,
   0.18,
   0.15,
   0.12,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-close.wav",
   "m4a": "sounds/wood-close.m4a"
  }
 },
 {
  "id": "wood-send",
  "name": "Wood send",
  "category": "wood set",
  "set": "wood",
  "action": "send",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "send",
   "sent",
   "message",
   "outgoing",
   "set"
  ],
  "description": "A quick rush up that ends in a tap. Part of the wood set.",
  "source": "synth",
  "duration": 0.145,
  "peaks": [
   0.01,
   0.01,
   0.02,
   0.04,
   0.04,
   0.07,
   0.12,
   0.08,
   0.1,
   0.11,
   0.16,
   0.17,
   0.15,
   0.27,
   0.19,
   0.22,
   0.3,
   0.12,
   0.14,
   0.08,
   0.05,
   0.04,
   0.03,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   0.73,
   0.42,
   0.24,
   0.14,
   0.08,
   0.05,
   0.03,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-send.wav",
   "m4a": "sounds/wood-send.m4a"
  }
 },
 {
  "id": "wood-delete",
  "name": "Wood delete",
  "category": "wood set",
  "set": "wood",
  "action": "delete",
  "tags": [
   "wood",
   "woody",
   "marimba",
   "warm",
   "organic",
   "dry",
   "delete",
   "remove",
   "trash",
   "set"
  ],
  "description": "A tap that drops into two low notes. Part of the wood set.",
  "source": "synth",
  "duration": 0.34,
  "peaks": [
   1,
   0.33,
   0.1,
   0.03,
   0.01,
   0.41,
   0.49,
   0.3,
   0.24,
   0.19,
   0.13,
   0.1,
   0.07,
   0.06,
   0.04,
   0.5,
   0.5,
   0.39,
   0.3,
   0.27,
   0.2,
   0.17,
   0.14,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/wood-delete.wav",
   "m4a": "sounds/wood-delete.m4a"
  }
 },
 {
  "id": "soft-click",
  "name": "Soft click",
  "category": "soft set",
  "set": "soft",
  "action": "click",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "click",
   "button",
   "press",
   "set"
  ],
  "description": "A button press. Part of the soft set.",
  "source": "synth",
  "duration": 0.035,
  "peaks": [
   0.13,
   0.3,
   0.53,
   0.69,
   0.88,
   1,
   0.87,
   0.76,
   0.61,
   0.54,
   0.43,
   0.35,
   0.31,
   0.25,
   0.22,
   0.18,
   0.14,
   0.13,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-click.wav",
   "m4a": "sounds/soft-click.m4a"
  }
 },
 {
  "id": "soft-hover",
  "name": "Soft hover",
  "category": "soft set",
  "set": "soft",
  "action": "hover",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "hover",
   "focus",
   "faint",
   "set"
  ],
  "description": "A faint hover or focus cue. Part of the soft set.",
  "source": "synth",
  "duration": 0.035,
  "peaks": [
   0.07,
   0.31,
   0.55,
   0.74,
   0.91,
   1,
   0.91,
   0.78,
   0.67,
   0.57,
   0.45,
   0.39,
   0.33,
   0.29,
   0.25,
   0.21,
   0.17,
   0.14,
   0.12,
   0.11,
   0.09,
   0.08,
   0.06,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-hover.wav",
   "m4a": "sounds/soft-hover.m4a"
  }
 },
 {
  "id": "soft-toggle",
  "name": "Soft toggle",
  "category": "soft set",
  "set": "soft",
  "action": "toggle",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "toggle",
   "switch",
   "on",
   "set"
  ],
  "description": "Two rising notes for a switch. Part of the soft set.",
  "source": "synth",
  "duration": 0.57,
  "peaks": [
   1,
   0.99,
   0.55,
   0.29,
   0.16,
   0.97,
   0.99,
   0.66,
   0.43,
   0.27,
   0.17,
   0.11,
   0.07,
   0.05,
   0.03,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-toggle.wav",
   "m4a": "sounds/soft-toggle.m4a"
  }
 },
 {
  "id": "soft-notify",
  "name": "Soft notify",
  "category": "soft set",
  "set": "soft",
  "action": "notify",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "notification",
   "alert",
   "chime",
   "set"
  ],
  "description": "A two-note notification. Part of the soft set.",
  "source": "synth",
  "duration": 0.93,
  "peaks": [
   0.82,
   0.76,
   0.61,
   0.49,
   0.39,
   0.32,
   0.51,
   1,
   0.89,
   0.74,
   0.63,
   0.52,
   0.44,
   0.37,
   0.31,
   0.26,
   0.22,
   0.19,
   0.16,
   0.13,
   0.11,
   0.09,
   0.08,
   0.07,
   0.05,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-notify.wav",
   "m4a": "sounds/soft-notify.m4a"
  }
 },
 {
  "id": "soft-success",
  "name": "Soft success",
  "category": "soft set",
  "set": "soft",
  "action": "success",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "success",
   "done",
   "complete",
   "set"
  ],
  "description": "A major arpeggio up to the octave. Part of the soft set.",
  "source": "synth",
  "duration": 0.9,
  "peaks": [
   0.8,
   0.69,
   0.47,
   0.34,
   0.98,
   0.75,
   0.47,
   0.72,
   0.98,
   0.61,
   0.4,
   1,
   0.94,
   0.74,
   0.59,
   0.49,
   0.41,
   0.34,
   0.28,
   0.23,
   0.19,
   0.16,
   0.13,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-success.wav",
   "m4a": "sounds/soft-success.m4a"
  }
 },
 {
  "id": "soft-error",
  "name": "Soft error",
  "category": "soft set",
  "set": "soft",
  "action": "error",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "error",
   "fail",
   "wrong",
   "set"
  ],
  "description": "Two notes falling a tritone. Part of the soft set.",
  "source": "synth",
  "duration": 0.645,
  "peaks": [
   0.97,
   0.93,
   0.62,
   0.41,
   0.26,
   0.17,
   0.12,
   0.08,
   0.05,
   0.29,
   1,
   0.86,
   0.68,
   0.51,
   0.4,
   0.31,
   0.24,
   0.18,
   0.14,
   0.11,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-error.wav",
   "m4a": "sounds/soft-error.m4a"
  }
 },
 {
  "id": "soft-open",
  "name": "Soft open",
  "category": "soft set",
  "set": "soft",
  "action": "open",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "open",
   "modal",
   "appear",
   "set"
  ],
  "description": "A rising pair with a lift of air. Part of the soft set.",
  "source": "synth",
  "duration": 0.495,
  "peaks": [
   0.03,
   0.07,
   0.16,
   0.81,
   1,
   0.84,
   0.81,
   0.7,
   0.69,
   0.46,
   0.95,
   0.85,
   0.66,
   0.51,
   0.38,
   0.3,
   0.22,
   0.18,
   0.14,
   0.1,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-open.wav",
   "m4a": "sounds/soft-open.m4a"
  }
 },
 {
  "id": "soft-close",
  "name": "Soft close",
  "category": "soft set",
  "set": "soft",
  "action": "close",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "close",
   "dismiss",
   "disappear",
   "set"
  ],
  "description": "A falling pair with air going down. Part of the soft set.",
  "source": "synth",
  "duration": 0.54,
  "peaks": [
   0.11,
   0.21,
   0.39,
   1,
   0.87,
   0.72,
   0.68,
   0.54,
   0.39,
   0.81,
   0.8,
   0.64,
   0.47,
   0.34,
   0.26,
   0.2,
   0.15,
   0.11,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-close.wav",
   "m4a": "sounds/soft-close.m4a"
  }
 },
 {
  "id": "soft-send",
  "name": "Soft send",
  "category": "soft set",
  "set": "soft",
  "action": "send",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "send",
   "sent",
   "message",
   "outgoing",
   "set"
  ],
  "description": "A quick rush up that ends in a tap. Part of the soft set.",
  "source": "synth",
  "duration": 0.135,
  "peaks": [
   0,
   0.01,
   0.03,
   0.04,
   0.04,
   0.04,
   0.09,
   0.09,
   0.09,
   0.09,
   0.09,
   0.11,
   0.17,
   0.23,
   0.22,
   0.16,
   0.17,
   0.2,
   0.25,
   0.18,
   0.2,
   0.17,
   0.32,
   0.11,
   0.1,
   0.05,
   0.04,
   0.04,
   0.03,
   0.01,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0.27,
   0.97,
   1,
   0.48,
   0.25,
   0.13,
   0.07,
   0.03,
   0.02,
   0.01,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-send.wav",
   "m4a": "sounds/soft-send.m4a"
  }
 },
 {
  "id": "soft-delete",
  "name": "Soft delete",
  "category": "soft set",
  "set": "soft",
  "action": "delete",
  "tags": [
   "soft",
   "minimal",
   "gentle",
   "calm",
   "sine",
   "subtle",
   "delete",
   "remove",
   "trash",
   "set"
  ],
  "description": "A tap that drops into two low notes. Part of the soft set.",
  "source": "synth",
  "duration": 0.53,
  "peaks": [
   1,
   0.17,
   0.01,
   0.15,
   0.45,
   0.4,
   0.27,
   0.17,
   0.11,
   0.07,
   0.47,
   0.47,
   0.37,
   0.27,
   0.2,
   0.15,
   0.11,
   0.08,
   0.06,
   0.05,
   0.03,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/soft-delete.wav",
   "m4a": "sounds/soft-delete.m4a"
  }
 },
 {
  "id": "retro-click",
  "name": "Retro click",
  "category": "retro set",
  "set": "retro",
  "action": "click",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "click",
   "button",
   "press",
   "set"
  ],
  "description": "A button press. Part of the retro set.",
  "source": "synth",
  "duration": 0.02,
  "peaks": [
   0.04,
   0.21,
   0.39,
   0.51,
   0.62,
   0.86,
   0.98,
   1,
   0.84,
   0.7,
   0.49,
   0.41,
   0.34,
   0.29,
   0.2,
   0.17,
   0.14,
   0.12,
   0.08,
   0.07,
   0.06,
   0.05,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-click.wav",
   "m4a": "sounds/retro-click.m4a"
  }
 },
 {
  "id": "retro-hover",
  "name": "Retro hover",
  "category": "retro set",
  "set": "retro",
  "action": "hover",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "hover",
   "focus",
   "faint",
   "set"
  ],
  "description": "A faint hover or focus cue. Part of the retro set.",
  "source": "synth",
  "duration": 0.02,
  "peaks": [
   0.04,
   0.19,
   0.37,
   0.54,
   0.7,
   0.79,
   0.97,
   1,
   0.78,
   0.69,
   0.55,
   0.43,
   0.38,
   0.3,
   0.24,
   0.21,
   0.16,
   0.13,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-hover.wav",
   "m4a": "sounds/retro-hover.m4a"
  }
 },
 {
  "id": "retro-toggle",
  "name": "Retro toggle",
  "category": "retro set",
  "set": "retro",
  "action": "toggle",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "toggle",
   "switch",
   "on",
   "set"
  ],
  "description": "Two rising notes for a switch. Part of the retro set.",
  "source": "synth",
  "duration": 0.215,
  "peaks": [
   0.93,
   0.92,
   0.93,
   0.93,
   0.93,
   0.93,
   0.92,
   0.93,
   0.93,
   0.86,
   0.61,
   0.39,
   0.25,
   0.74,
   1,
   0.98,
   0.96,
   0.94,
   0.94,
   0.93,
   0.93,
   0.93,
   0.93,
   0.93,
   0.93,
   0.92,
   0.71,
   0.52,
   0.38,
   0.28,
   0.2,
   0.15,
   0.11,
   0.08,
   0.06,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-toggle.wav",
   "m4a": "sounds/retro-toggle.m4a"
  }
 },
 {
  "id": "retro-notify",
  "name": "Retro notify",
  "category": "retro set",
  "set": "retro",
  "action": "notify",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "notification",
   "alert",
   "chime",
   "set"
  ],
  "description": "A two-note notification. Part of the retro set.",
  "source": "synth",
  "duration": 0.76,
  "peaks": [
   0.5,
   0.5,
   0.5,
   0.5,
   0.5,
   0.5,
   0.5,
   0.5,
   0.94,
   0.97,
   0.99,
   1,
   0.88,
   0.75,
   0.64,
   0.61,
   0.58,
   0.56,
   0.55,
   0.54,
   0.53,
   0.52,
   0.51,
   0.46,
   0.36,
   0.28,
   0.21,
   0.17,
   0.13,
   0.1,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-notify.wav",
   "m4a": "sounds/retro-notify.m4a"
  }
 },
 {
  "id": "retro-success",
  "name": "Retro success",
  "category": "retro set",
  "set": "retro",
  "action": "success",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "success",
   "done",
   "complete",
   "set"
  ],
  "description": "A major arpeggio up to the octave. Part of the retro set.",
  "source": "synth",
  "duration": 0.77,
  "peaks": [
   0.47,
   0.47,
   0.47,
   0.47,
   0.92,
   0.88,
   0.81,
   0.6,
   0.76,
   0.91,
   0.8,
   0.65,
   0.58,
   1,
   0.95,
   0.72,
   0.58,
   0.53,
   0.5,
   0.49,
   0.48,
   0.47,
   0.47,
   0.47,
   0.47,
   0.47,
   0.43,
   0.33,
   0.25,
   0.19,
   0.14,
   0.11,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-success.wav",
   "m4a": "sounds/retro-success.m4a"
  }
 },
 {
  "id": "retro-error",
  "name": "Retro error",
  "category": "retro set",
  "set": "retro",
  "action": "error",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "error",
   "fail",
   "wrong",
   "set"
  ],
  "description": "Two notes falling a tritone. Part of the retro set.",
  "source": "synth",
  "duration": 0.435,
  "peaks": [
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.98,
   0.66,
   0.39,
   0.24,
   0.14,
   0.09,
   0.05,
   0.98,
   1,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.99,
   0.86,
   0.65,
   0.47,
   0.34,
   0.25,
   0.18,
   0.13,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-error.wav",
   "m4a": "sounds/retro-error.m4a"
  }
 },
 {
  "id": "retro-open",
  "name": "Retro open",
  "category": "retro set",
  "set": "retro",
  "action": "open",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "open",
   "modal",
   "appear",
   "set"
  ],
  "description": "A rising pair with a lift of air. Part of the retro set.",
  "source": "synth",
  "duration": 0.31,
  "peaks": [
   1,
   0.94,
   0.67,
   0.52,
   0.41,
   0.51,
   0.48,
   0.43,
   0.39,
   0.38,
   0.35,
   0.28,
   0.34,
   0.3,
   0.16,
   0.3,
   0.36,
   0.34,
   0.33,
   0.32,
   0.32,
   0.32,
   0.31,
   0.31,
   0.31,
   0.31,
   0.31,
   0.31,
   0.27,
   0.2,
   0.15,
   0.11,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-open.wav",
   "m4a": "sounds/retro-open.m4a"
  }
 },
 {
  "id": "retro-close",
  "name": "Retro close",
  "category": "retro set",
  "set": "retro",
  "action": "close",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "close",
   "dismiss",
   "disappear",
   "set"
  ],
  "description": "A falling pair with air going down. Part of the retro set.",
  "source": "synth",
  "duration": 0.31,
  "peaks": [
   1,
   0.95,
   0.71,
   0.54,
   0.41,
   0.56,
   0.48,
   0.47,
   0.4,
   0.39,
   0.34,
   0.35,
   0.34,
   0.26,
   0.18,
   0.31,
   0.35,
   0.34,
   0.33,
   0.33,
   0.32,
   0.32,
   0.32,
   0.32,
   0.31,
   0.31,
   0.31,
   0.31,
   0.27,
   0.2,
   0.15,
   0.11,
   0.09,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-close.wav",
   "m4a": "sounds/retro-close.m4a"
  }
 },
 {
  "id": "retro-send",
  "name": "Retro send",
  "category": "retro set",
  "set": "retro",
  "action": "send",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "send",
   "sent",
   "message",
   "outgoing",
   "set"
  ],
  "description": "A quick rush up that ends in a tap. Part of the retro set.",
  "source": "synth",
  "duration": 0.12,
  "peaks": [
   0.36,
   0.94,
   1,
   0.81,
   0.67,
   0.6,
   0.5,
   0.41,
   0.35,
   0.29,
   0.25,
   0.21,
   0.18,
   0.15,
   0.13,
   0.11,
   0.09,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0.61,
   0.79,
   0.27,
   0.07,
   0.02,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-send.wav",
   "m4a": "sounds/retro-send.m4a"
  }
 },
 {
  "id": "retro-delete",
  "name": "Retro delete",
  "category": "retro set",
  "set": "retro",
  "action": "delete",
  "tags": [
   "retro",
   "8-bit",
   "chiptune",
   "game",
   "square",
   "pixel",
   "delete",
   "remove",
   "trash",
   "set"
  ],
  "description": "A tap that drops into two low notes. Part of the retro set.",
  "source": "synth",
  "duration": 0.32,
  "peaks": [
   1,
   0.14,
   0,
   0,
   0,
   0,
   0.4,
   0.4,
   0.4,
   0.4,
   0.4,
   0.4,
   0.4,
   0.4,
   0.38,
   0.22,
   0.37,
   0.37,
   0.43,
   0.38,
   0.41,
   0.41,
   0.4,
   0.4,
   0.4,
   0.4,
   0.39,
   0.4,
   0.38,
   0.29,
   0.21,
   0.16,
   0.11,
   0.08,
   0.06,
   0.04,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/retro-delete.wav",
   "m4a": "sounds/retro-delete.m4a"
  }
 },
 {
  "id": "mechanical-click",
  "name": "Mechanical click",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "click",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "click",
   "button",
   "press",
   "set"
  ],
  "description": "A button press. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.025,
  "peaks": [
   0.22,
   1,
   0.9,
   0.72,
   0.38,
   0.32,
   0.4,
   0.42,
   0.37,
   0.25,
   0.1,
   0.12,
   0.16,
   0.16,
   0.15,
   0.11,
   0.05,
   0.03,
   0.05,
   0.06,
   0.06,
   0.05,
   0.04,
   0.02,
   0.01,
   0.01,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-click.wav",
   "m4a": "sounds/mechanical-click.m4a"
  }
 },
 {
  "id": "mechanical-hover",
  "name": "Mechanical hover",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "hover",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "hover",
   "focus",
   "faint",
   "set"
  ],
  "description": "A faint hover or focus cue. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.03,
  "peaks": [
   0.27,
   1,
   0.72,
   0.48,
   0.66,
   0.65,
   0.25,
   0.32,
   0.34,
   0.29,
   0.11,
   0.15,
   0.17,
   0.15,
   0.09,
   0.04,
   0.07,
   0.07,
   0.07,
   0.04,
   0.02,
   0.02,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-hover.wav",
   "m4a": "sounds/mechanical-hover.m4a"
  }
 },
 {
  "id": "mechanical-toggle",
  "name": "Mechanical toggle",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "toggle",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "toggle",
   "on",
   "set"
  ],
  "description": "Two rising notes for a switch. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.185,
  "peaks": [
   0.78,
   0.63,
   0.49,
   0.39,
   0.27,
   0.21,
   0.15,
   0.12,
   0.09,
   0.07,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   1,
   0.81,
   0.65,
   0.51,
   0.4,
   0.33,
   0.27,
   0.22,
   0.18,
   0.14,
   0.11,
   0.09,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-toggle.wav",
   "m4a": "sounds/mechanical-toggle.m4a"
  }
 },
 {
  "id": "mechanical-notify",
  "name": "Mechanical notify",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "notify",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "notification",
   "alert",
   "chime",
   "set"
  ],
  "description": "A two-note notification. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.685,
  "peaks": [
   1,
   0.73,
   0.58,
   0.46,
   0.37,
   0.3,
   0.23,
   0.19,
   0.15,
   0.99,
   0.83,
   0.7,
   0.59,
   0.5,
   0.42,
   0.35,
   0.29,
   0.24,
   0.2,
   0.17,
   0.14,
   0.12,
   0.1,
   0.08,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-notify.wav",
   "m4a": "sounds/mechanical-notify.m4a"
  }
 },
 {
  "id": "mechanical-success",
  "name": "Mechanical success",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "success",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "success",
   "done",
   "complete",
   "set"
  ],
  "description": "A major arpeggio up to the octave. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.71,
  "peaks": [
   0.93,
   0.62,
   0.39,
   0.24,
   0.94,
   0.93,
   0.53,
   0.38,
   0.22,
   0.98,
   0.84,
   0.49,
   0.31,
   0.2,
   1,
   0.86,
   0.68,
   0.57,
   0.44,
   0.36,
   0.3,
   0.24,
   0.19,
   0.16,
   0.13,
   0.1,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-success.wav",
   "m4a": "sounds/mechanical-success.m4a"
  }
 },
 {
  "id": "mechanical-error",
  "name": "Mechanical error",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "error",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "error",
   "fail",
   "wrong",
   "set"
  ],
  "description": "Two notes falling a tritone. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.38,
  "peaks": [
   1,
   0.67,
   0.47,
   0.33,
   0.23,
   0.16,
   0.12,
   0.08,
   0.06,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0.99,
   0.82,
   0.66,
   0.52,
   0.41,
   0.33,
   0.27,
   0.21,
   0.17,
   0.14,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-error.wav",
   "m4a": "sounds/mechanical-error.m4a"
  }
 },
 {
  "id": "mechanical-open",
  "name": "Mechanical open",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "open",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "open",
   "modal",
   "appear",
   "set"
  ],
  "description": "A rising pair with a lift of air. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.295,
  "peaks": [
   0.02,
   0.05,
   0.1,
   0.19,
   0.28,
   1,
   0.83,
   0.57,
   0.58,
   0.34,
   0.35,
   0.27,
   0.14,
   0.12,
   0.08,
   0.05,
   0.84,
   0.81,
   0.63,
   0.51,
   0.4,
   0.33,
   0.26,
   0.21,
   0.17,
   0.14,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-open.wav",
   "m4a": "sounds/mechanical-open.m4a"
  }
 },
 {
  "id": "mechanical-close",
  "name": "Mechanical close",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "close",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "close",
   "dismiss",
   "disappear",
   "set"
  ],
  "description": "A falling pair with air going down. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.29,
  "peaks": [
   0.04,
   0.08,
   0.2,
   0.42,
   0.28,
   1,
   0.97,
   0.68,
   0.62,
   0.51,
   0.45,
   0.3,
   0.21,
   0.12,
   0.08,
   0.06,
   0.86,
   0.77,
   0.63,
   0.49,
   0.41,
   0.32,
   0.26,
   0.21,
   0.17,
   0.13,
   0.11,
   0.09,
   0.07,
   0.06,
   0.05,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-close.wav",
   "m4a": "sounds/mechanical-close.m4a"
  }
 },
 {
  "id": "mechanical-send",
  "name": "Mechanical send",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "send",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "send",
   "sent",
   "message",
   "outgoing",
   "set"
  ],
  "description": "A quick rush up that ends in a tap. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.125,
  "peaks": [
   0,
   0.01,
   0.02,
   0.03,
   0.03,
   0.05,
   0.05,
   0.07,
   0.07,
   0.05,
   0.07,
   0.06,
   0.05,
   0.09,
   0.08,
   0.09,
   0.05,
   0.06,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   0.65,
   0.38,
   0.19,
   0.09,
   0.03,
   0.01,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-send.wav",
   "m4a": "sounds/mechanical-send.m4a"
  }
 },
 {
  "id": "mechanical-delete",
  "name": "Mechanical delete",
  "category": "mechanical set",
  "set": "mechanical",
  "action": "delete",
  "tags": [
   "mechanical",
   "metallic",
   "industrial",
   "switch",
   "hardware",
   "delete",
   "remove",
   "trash",
   "set"
  ],
  "description": "A tap that drops into two low notes. Part of the mechanical set.",
  "source": "synth",
  "duration": 0.26,
  "peaks": [
   1,
   0.26,
   0.05,
   0.01,
   0,
   0,
   0,
   0.26,
   0.22,
   0.15,
   0.1,
   0.08,
   0.06,
   0.04,
   0.03,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.25,
   0.21,
   0.18,
   0.15,
   0.11,
   0.1,
   0.08,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mechanical-delete.wav",
   "m4a": "sounds/mechanical-delete.m4a"
  }
 },
 {
  "id": "key-mechanical",
  "name": "Mechanical key",
  "category": "keyboard",
  "tags": [
   "key",
   "keyboard",
   "mechanical",
   "thock",
   "press",
   "typing"
  ],
  "description": "One press on a mechanical keyboard.",
  "source": "seed-audio",
  "prompt": "A single crisp mechanical keyboard key press, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.328,
  "peaks": [
   0.06,
   1,
   0.22,
   0.11,
   0.09,
   0.09,
   0.11,
   0.09,
   0.08,
   0.03,
   0.05,
   0.05,
   0.04,
   0.04,
   0.3,
   0.31,
   0.16,
   0.19,
   0.1,
   0.05,
   0.09,
   0.09,
   0.1,
   0.12,
   0.1,
   0.08,
   0.02,
   0.06,
   0.05,
   0.05,
   0.04,
   0.05,
   0.05,
   0.03,
   0.01,
   0.02,
   0.03,
   0.03,
   0.02,
   0.02,
   0.05,
   0.06,
   0.1,
   0.15,
   0.08,
   0.07,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/key-mechanical.wav",
   "m4a": "sounds/key-mechanical.m4a"
  }
 },
 {
  "id": "key-laptop",
  "name": "Laptop key",
  "category": "keyboard",
  "tags": [
   "key",
   "keyboard",
   "laptop",
   "scissor",
   "quiet",
   "press"
  ],
  "description": "One soft press on a laptop keyboard.",
  "source": "seed-audio",
  "prompt": "One single key press on a MacBook laptop keyboard, a soft short plastic tap, nothing before or after it, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.323,
  "peaks": [
   0.04,
   0.46,
   0.27,
   0.14,
   0.08,
   0.06,
   0.05,
   0.05,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.03,
   0.04,
   0.02,
   0.02,
   1,
   0.55,
   0.54,
   0.56,
   0.42,
   0.23,
   0.09,
   0.12,
   0.15,
   0.11,
   0.06,
   0.04,
   0.04,
   0.05,
   0.03,
   0.05,
   0.07,
   0.47,
   0.71,
   0.51,
   0.27,
   0.17,
   0.09,
   0.12,
   0.09,
   0.08,
   0.05,
   0.04,
   0.02,
   0.02,
   0
  ],
  "files": {
   "wav": "sounds/key-laptop.wav",
   "m4a": "sounds/key-laptop.m4a"
  }
 },
 {
  "id": "typing-mechanical",
  "name": "Mechanical typing",
  "category": "keyboard",
  "tags": [
   "typing",
   "keyboard",
   "mechanical",
   "burst",
   "writing"
  ],
  "description": "A short burst of fast mechanical typing.",
  "source": "seed-audio",
  "prompt": "A short one-second burst of fast typing on a mechanical keyboard, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.278,
  "peaks": [
   0.14,
   0.06,
   0.05,
   0.04,
   0.17,
   0.05,
   0.05,
   0.04,
   0.27,
   0.49,
   0.09,
   0.13,
   0.29,
   0.25,
   0.25,
   0.33,
   0.45,
   0.41,
   0.46,
   0.54,
   0.34,
   0.62,
   0.46,
   0.23,
   0.13,
   0.89,
   0.24,
   0.08,
   0.11,
   0.2,
   0.25,
   0.21,
   0.28,
   0.44,
   0.2,
   0.16,
   0.14,
   0.52,
   0.08,
   0.05,
   0.05,
   0.02,
   1,
   0.17,
   0.08,
   0.07,
   0.18,
   0.32
  ],
  "files": {
   "wav": "sounds/typing-mechanical.wav",
   "m4a": "sounds/typing-mechanical.m4a"
  }
 },
 {
  "id": "typing-laptop",
  "name": "Laptop typing",
  "category": "keyboard",
  "tags": [
   "typing",
   "keyboard",
   "laptop",
   "soft",
   "burst"
  ],
  "description": "A short burst of soft laptop typing.",
  "source": "seed-audio",
  "prompt": "A short one-second burst of fast typing on a quiet laptop keyboard, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.808,
  "peaks": [
   0.08,
   0.92,
   0.87,
   0.22,
   0.16,
   0.08,
   0.07,
   0.55,
   0.26,
   0.09,
   0.06,
   0.38,
   0.31,
   0.14,
   0.05,
   0.04,
   0.02,
   0.06,
   0.31,
   0.92,
   0.23,
   0.17,
   0.08,
   0.26,
   0.12,
   0.27,
   0.13,
   0.08,
   0.04,
   0.06,
   0.05,
   0.58,
   0.62,
   0.25,
   0.2,
   0.13,
   0.66,
   1,
   0.37,
   0.27,
   0.19,
   0.06,
   0.09,
   0.06,
   0.09,
   0.07,
   0.02,
   0.03
  ],
  "files": {
   "wav": "sounds/typing-laptop.wav",
   "m4a": "sounds/typing-laptop.m4a"
  }
 },
 {
  "id": "spacebar",
  "name": "Spacebar",
  "category": "keyboard",
  "tags": [
   "spacebar",
   "key",
   "keyboard",
   "thump",
   "press"
  ],
  "description": "A spacebar press with its stabilizer rattle.",
  "source": "seed-audio",
  "prompt": "A single spacebar press on a mechanical keyboard, slightly hollow with a stabilizer rattle, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.45,
  "peaks": [
   0.05,
   0.06,
   0.09,
   0.4,
   0.41,
   0.53,
   0.62,
   0.3,
   1,
   0.91,
   0.59,
   0.2,
   0.22,
   0.43,
   0.43,
   0.18,
   0.3,
   0.31,
   0.03,
   0.19,
   0.23,
   0.07,
   0.14,
   0.16,
   0.19,
   0.19,
   0.05,
   0.05,
   0.1,
   0.15,
   0.15,
   0.07,
   0.14,
   0.14,
   0.08,
   0.03,
   0.03,
   0.02,
   0.02,
   0.03,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/spacebar.wav",
   "m4a": "sounds/spacebar.m4a"
  }
 },
 {
  "id": "mouse-click",
  "name": "Mouse click",
  "category": "keyboard",
  "tags": [
   "mouse",
   "click",
   "computer",
   "button",
   "press"
  ],
  "description": "A real computer mouse button click.",
  "source": "seed-audio",
  "prompt": "A single computer mouse left button click, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.048,
  "peaks": [
   0,
   0,
   0,
   0,
   0,
   0.02,
   0.04,
   0.05,
   0.04,
   0.05,
   0.06,
   0.05,
   0.05,
   0.09,
   0.35,
   1,
   0.84,
   0.92,
   0.56,
   0.26,
   0.11,
   0.23,
   0.16,
   0.1,
   0.09,
   0.07,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.01,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mouse-click.wav",
   "m4a": "sounds/mouse-click.m4a"
  }
 },
 {
  "id": "pen-click",
  "name": "Pen click",
  "category": "keyboard",
  "tags": [
   "pen",
   "click",
   "ballpoint",
   "retract",
   "desk"
  ],
  "description": "A ballpoint pen clicking.",
  "source": "seed-audio",
  "prompt": "A single ballpoint pen click, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.093,
  "peaks": [
   0,
   0.01,
   0.03,
   0.07,
   1,
   0.48,
   0.27,
   0.11,
   0.05,
   0.04,
   0.04,
   0.02,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/pen-click.wav",
   "m4a": "sounds/pen-click.m4a"
  }
 },
 {
  "id": "stapler",
  "name": "Stapler",
  "category": "keyboard",
  "tags": [
   "stapler",
   "staple",
   "office",
   "punch",
   "desk"
  ],
  "description": "A desk stapler punching through paper.",
  "source": "seed-audio",
  "prompt": "A single desk stapler pressed down, stapling paper, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.248,
  "peaks": [
   0.02,
   0.17,
   0.26,
   0.08,
   0.06,
   0.1,
   0.64,
   1,
   0.69,
   0.34,
   0.25,
   0.19,
   0.24,
   0.17,
   0.11,
   0.12,
   0.1,
   0.09,
   0.06,
   0.07,
   0.08,
   0.06,
   0.05,
   0.06,
   0.03,
   0.03,
   0.04,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/stapler.wav",
   "m4a": "sounds/stapler.m4a"
  }
 },
 {
  "id": "paper-crumple",
  "name": "Paper crumple",
  "category": "paper",
  "tags": [
   "paper",
   "crumple",
   "discard",
   "trash",
   "delete"
  ],
  "description": "A sheet of paper crumpled into a ball.",
  "source": "seed-audio",
  "prompt": "A sheet of paper being crumpled into a ball, short, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.153,
  "peaks": [
   0.1,
   0.11,
   0.22,
   0.35,
   0.41,
   0.79,
   0.81,
   0.64,
   0.6,
   0.56,
   1,
   0.58,
   0.39,
   0.7,
   0.54,
   0.16,
   0.41,
   0.21,
   0.86,
   0.47,
   0.59,
   0.08,
   0.21,
   0.3,
   0.1,
   0.34,
   0.25,
   0.32,
   0.23,
   0.47,
   0.08,
   0.14,
   0.06,
   0.03,
   0.05,
   0.04,
   0.09,
   0.23,
   0.18,
   0.22,
   0.06,
   0.03,
   0.05,
   0.02,
   0.03,
   0.03,
   0.03,
   0.02
  ],
  "files": {
   "wav": "sounds/paper-crumple.wav",
   "m4a": "sounds/paper-crumple.m4a"
  }
 },
 {
  "id": "page-turn",
  "name": "Page turn",
  "category": "paper",
  "tags": [
   "page",
   "turn",
   "book",
   "paper",
   "flip",
   "next"
  ],
  "description": "A single book page turning.",
  "source": "seed-audio",
  "prompt": "A single book page being turned, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.768,
  "peaks": [
   0.04,
   0.06,
   0.11,
   0.11,
   0.04,
   0.07,
   0.06,
   0.04,
   0.06,
   0.1,
   0.07,
   0.08,
   0.09,
   0.11,
   0.24,
   0.14,
   0.12,
   0.73,
   1,
   0.82,
   0.31,
   0.27,
   0.25,
   0.37,
   0.44,
   0.96,
   0.71,
   0.3,
   0.16,
   0.1,
   0.07,
   0.07,
   0.06,
   0.07,
   0.03,
   0.04,
   0.03,
   0.07,
   0.03,
   0.04,
   0.03,
   0.04,
   0.03,
   0.03,
   0.05,
   0.08,
   0.08,
   0.02
  ],
  "files": {
   "wav": "sounds/page-turn.wav",
   "m4a": "sounds/page-turn.m4a"
  }
 },
 {
  "id": "paper-tear",
  "name": "Paper tear",
  "category": "paper",
  "tags": [
   "paper",
   "tear",
   "rip",
   "remove",
   "cut"
  ],
  "description": "A quick tear of a paper strip.",
  "source": "seed-audio",
  "prompt": "A short quick tear of a strip of paper, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.343,
  "peaks": [
   0.07,
   0.07,
   0.12,
   0.08,
   0.18,
   0.17,
   0.22,
   0.36,
   0.32,
   0.27,
   0.27,
   0.24,
   0.29,
   0.24,
   0.23,
   0.2,
   0.29,
   1,
   0.93,
   0.53,
   0.82,
   0.05,
   0.04,
   0.02,
   0.01,
   0,
   0.01,
   0.02,
   0.06,
   0.02,
   0.1,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/paper-tear.wav",
   "m4a": "sounds/paper-tear.m4a"
  }
 },
 {
  "id": "trash-bin",
  "name": "Into the bin",
  "category": "paper",
  "tags": [
   "trash",
   "bin",
   "delete",
   "discard",
   "empty",
   "paper"
  ],
  "description": "A paper ball dropped into a metal bin.",
  "source": "seed-audio",
  "prompt": "A crumpled paper ball dropped into an empty metal trash bin, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.438,
  "peaks": [
   0.79,
   0.69,
   0.51,
   0.26,
   0.18,
   0.15,
   0.58,
   0.67,
   0.53,
   1,
   0.59,
   0.37,
   0.64,
   0.76,
   0.49,
   0.52,
   0.51,
   0.5,
   0.34,
   0.36,
   0.67,
   0.47,
   0.28,
   0.49,
   0.41,
   0.36,
   0.3,
   0.3,
   0.25,
   0.24,
   0.26,
   0.18,
   0.1,
   0.12,
   0.08,
   0.09,
   0.1,
   0.09,
   0.15,
   0.15,
   0.07,
   0.05,
   0.03,
   0.07,
   0.03,
   0.02,
   0.01,
   0.01
  ],
  "files": {
   "wav": "sounds/trash-bin.wav",
   "m4a": "sounds/trash-bin.m4a"
  }
 },
 {
  "id": "envelope-open",
  "name": "Envelope open",
  "category": "paper",
  "tags": [
   "envelope",
   "open",
   "mail",
   "letter",
   "inbox",
   "tear"
  ],
  "description": "A paper envelope being torn open.",
  "source": "seed-audio",
  "prompt": "A paper envelope being torn open, short, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.988,
  "peaks": [
   0.44,
   0.06,
   0.1,
   0.25,
   0.59,
   0.74,
   0.75,
   1,
   0.79,
   0.5,
   0.21,
   0.17,
   0.04,
   0.05,
   0.05,
   0.07,
   0.07,
   0.05,
   0.05,
   0.02,
   0.01,
   0.15,
   0.91,
   0.42,
   0.26,
   0.18,
   0.15,
   0.06,
   0.48,
   0.09,
   0.08,
   0.07,
   0.14,
   0.06,
   0.06,
   0.04,
   0.02,
   0.07,
   0.09,
   0.05,
   0.04,
   0.02,
   0.07,
   0.04,
   0.03,
   0.02,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/envelope-open.wav",
   "m4a": "sounds/envelope-open.m4a"
  }
 },
 {
  "id": "card-flip",
  "name": "Card flip",
  "category": "paper",
  "tags": [
   "card",
   "flip",
   "playing card",
   "reveal",
   "deal"
  ],
  "description": "A playing card flipped onto a table.",
  "source": "seed-audio",
  "prompt": "One playing card flicked face-up and slapped flat onto a wooden table, a single crisp papery snap, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.203,
  "peaks": [
   0.02,
   0.87,
   1,
   0.17,
   0.09,
   0.13,
   0.09,
   0.09,
   0.05,
   0.05,
   0.05,
   0.05,
   0.06,
   0.05,
   0.05,
   0.06,
   0.03,
   0.04,
   0.16,
   0.1,
   0.06,
   0.05,
   0.03,
   0.03,
   0.04,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0.01,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/card-flip.wav",
   "m4a": "sounds/card-flip.m4a"
  }
 },
 {
  "id": "rubber-stamp",
  "name": "Stamp",
  "category": "paper",
  "tags": [
   "stamp",
   "approve",
   "rubber",
   "thud",
   "confirm"
  ],
  "description": "A rubber stamp pressed onto paper.",
  "source": "seed-audio",
  "prompt": "A single rubber stamp pressed firmly onto paper on a desk, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.483,
  "peaks": [
   1,
   0.98,
   0.7,
   0.46,
   0.33,
   0.27,
   0.25,
   0.2,
   0.2,
   0.12,
   0.15,
   0.09,
   0.09,
   0.06,
   0.06,
   0.06,
   0.06,
   0.05,
   0.03,
   0.03,
   0.03,
   0.04,
   0.23,
   0.13,
   0.08,
   0.06,
   0.03,
   0.04,
   0.03,
   0.03,
   0.02,
   0.1,
   0.11,
   0.05,
   0.05,
   0.04,
   0.02,
   0.02,
   0.02,
   0.01,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/rubber-stamp.wav",
   "m4a": "sounds/rubber-stamp.m4a"
  }
 },
 {
  "id": "camera-shutter",
  "name": "Camera shutter",
  "category": "objects",
  "tags": [
   "camera",
   "shutter",
   "photo",
   "screenshot",
   "capture"
  ],
  "description": "A single camera shutter.",
  "source": "seed-audio",
  "prompt": "A single short camera shutter click, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.228,
  "peaks": [
   0.03,
   0.1,
   0.06,
   0.07,
   0.04,
   0.1,
   0.12,
   0.04,
   0.09,
   0.27,
   0.43,
   0.48,
   0.54,
   0.35,
   0.17,
   0.17,
   0.14,
   0.19,
   0.08,
   0.25,
   0.76,
   0.68,
   0.78,
   1,
   0.6,
   0.33,
   0.25,
   0.09,
   0.07,
   0.1,
   0.05,
   0.12,
   0.03,
   0.02,
   0.02,
   0.02,
   0.03,
   0.02,
   0.02,
   0.01,
   0.05,
   0.03,
   0.01,
   0.01,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/camera-shutter.wav",
   "m4a": "sounds/camera-shutter.m4a"
  }
 },
 {
  "id": "film-wind",
  "name": "Film advance",
  "category": "objects",
  "tags": [
   "camera",
   "film",
   "wind",
   "advance",
   "ratchet",
   "retro"
  ],
  "description": "A film camera advance lever winding.",
  "source": "seed-audio",
  "prompt": "A film camera advance lever being wound once, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.323,
  "peaks": [
   0.08,
   0.03,
   0.01,
   0.01,
   0.02,
   0,
   0,
   0.79,
   0.27,
   0.07,
   0.12,
   0.41,
   0.13,
   0.16,
   0.37,
   0.23,
   0.59,
   0.4,
   0.15,
   0.11,
   0.03,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0.18,
   0.07,
   0.01,
   0,
   0.01,
   0.02,
   0.01,
   0.41,
   0.45,
   0.57,
   0.18,
   0.02,
   0.11,
   1,
   0.52,
   0.12,
   0.05,
   0.03,
   0.01,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/film-wind.wav",
   "m4a": "sounds/film-wind.m4a"
  }
 },
 {
  "id": "light-switch",
  "name": "Light switch",
  "category": "objects",
  "tags": [
   "switch",
   "light",
   "toggle",
   "wall",
   "click"
  ],
  "description": "A wall light switch flipped.",
  "source": "seed-audio",
  "prompt": "A single wall light switch flipped on, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.158,
  "peaks": [
   0.02,
   0.93,
   1,
   0.29,
   0.23,
   0.2,
   0.14,
   0.09,
   0.08,
   0.07,
   0.06,
   0.06,
   0.04,
   0.04,
   0.04,
   0.04,
   0.03,
   0.04,
   0.05,
   0.07,
   0.07,
   0.07,
   0.08,
   0.07,
   0.05,
   0.04,
   0.03,
   0.03,
   0.04,
   0.05,
   0.06,
   0.07,
   0.07,
   0.07,
   0.06,
   0.06,
   0.04,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/light-switch.wav",
   "m4a": "sounds/light-switch.m4a"
  }
 },
 {
  "id": "door-knock-a",
  "name": "Door knock A",
  "category": "objects",
  "tags": [
   "knock",
   "door",
   "wood",
   "visitor",
   "attention"
  ],
  "description": "Three quick knuckle raps on a wooden door.",
  "source": "seed-audio",
  "prompt": "Someone knocking on a wooden door with their knuckles, knock knock knock, three quick raps, the classic sound of a visitor at the door, no other sounds",
  "duration": 0.478,
  "peaks": [
   0.74,
   0.57,
   0.27,
   0.16,
   0.1,
   0.05,
   0.04,
   0.05,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.02,
   0.01,
   0.01,
   1,
   0.16,
   0.11,
   0.08,
   0.07,
   0.04,
   0.03,
   0.04,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.44,
   0.51,
   0.17,
   0.13,
   0.07,
   0.08,
   0.05,
   0.04,
   0.03,
   0.03,
   0.02,
   0.02,
   0.01,
   0.02,
   0.01,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/door-knock-a.wav",
   "m4a": "sounds/door-knock-a.m4a"
  }
 },
 {
  "id": "door-knock-b",
  "name": "Door knock B",
  "category": "objects",
  "tags": [
   "knock",
   "door",
   "wood",
   "hollow",
   "visitor"
  ],
  "description": "Three raps on a hollow interior door, with more boom.",
  "source": "seed-audio",
  "prompt": "Sound effect of knuckles rapping three times on a hollow wooden interior door, quick sharp knocks with a short boomy wooden body resonance, dry, close, nothing else",
  "duration": 0.838,
  "peaks": [
   0.88,
   1,
   0.97,
   0.47,
   0.5,
   0.44,
   0.29,
   0.23,
   0.19,
   0.17,
   0.11,
   0.07,
   0.08,
   0.06,
   0.05,
   0.71,
   0.71,
   0.63,
   0.44,
   0.24,
   0.21,
   0.19,
   0.13,
   0.08,
   0.11,
   0.06,
   0.07,
   0.07,
   0.04,
   0.03,
   0.59,
   0.67,
   0.44,
   0.33,
   0.26,
   0.18,
   0.16,
   0.08,
   0.13,
   0.06,
   0.06,
   0.06,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01
  ],
  "files": {
   "wav": "sounds/door-knock-b.wav",
   "m4a": "sounds/door-knock-b.m4a"
  }
 },
 {
  "id": "glass-tap",
  "name": "Wine glass tap",
  "category": "objects",
  "tags": [
   "glass",
   "wine glass",
   "tap",
   "ring",
   "ting",
   "toast"
  ],
  "description": "A spoon tapping a wine glass.",
  "source": "seed-audio",
  "prompt": "A metal spoon tapping a crystal wine glass once, ringing, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.693,
  "peaks": [
   1,
   0.54,
   0.34,
   0.34,
   0.23,
   0.23,
   0.18,
   0.15,
   0.12,
   0.11,
   0.1,
   0.08,
   0.09,
   0.09,
   0.09,
   0.07,
   0.07,
   0.07,
   0.07,
   0.06,
   0.06,
   0.06,
   0.06,
   0.05,
   0.05,
   0.04,
   0.04,
   0.04,
   0.04,
   0.04,
   0.04,
   0.04,
   0.04,
   0.03,
   0.03,
   0.03,
   0.03,
   0.03,
   0.03,
   0.03,
   0.03,
   0.03,
   0.02,
   0.03,
   0.02,
   0.02,
   0.02,
   0.01
  ],
  "files": {
   "wav": "sounds/glass-tap.wav",
   "m4a": "sounds/glass-tap.m4a"
  }
 },
 {
  "id": "mug-tap",
  "name": "Mug tap",
  "category": "objects",
  "tags": [
   "ceramic",
   "mug",
   "cup",
   "tap",
   "clink",
   "coffee"
  ],
  "description": "A spoon tapping a ceramic mug.",
  "source": "seed-audio",
  "prompt": "A metal spoon tapping a ceramic coffee mug once, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.418,
  "peaks": [
   1,
   0.9,
   0.26,
   0.23,
   0.17,
   0.13,
   0.1,
   0.09,
   0.08,
   0.06,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/mug-tap.wav",
   "m4a": "sounds/mug-tap.m4a"
  }
 },
 {
  "id": "coin-drop",
  "name": "Coin drop",
  "category": "objects",
  "tags": [
   "coin",
   "drop",
   "money",
   "bounce",
   "metal"
  ],
  "description": "A coin dropped on a table, bouncing to rest.",
  "source": "seed-audio",
  "prompt": "A single coin dropped on a wooden table, bouncing and settling, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.373,
  "peaks": [
   1,
   0.15,
   0.03,
   0.49,
   0.09,
   0.46,
   0.24,
   0.08,
   0.39,
   0.13,
   0.04,
   0.38,
   0.2,
   0.08,
   0.13,
   0.05,
   0.14,
   0.1,
   0.06,
   0.06,
   0.06,
   0.04,
   0.02,
   0.02,
   0.03,
   0.01,
   0.01,
   0,
   0,
   0,
   0.1,
   0.01,
   0,
   0.04,
   0.08,
   0.02,
   0.01,
   0,
   0.1,
   0.02,
   0.01,
   0,
   0.05,
   0.01,
   0.01,
   0.02,
   0.03,
   0.01
  ],
  "files": {
   "wav": "sounds/coin-drop.wav",
   "m4a": "sounds/coin-drop.m4a"
  }
 },
 {
  "id": "coins-jingle",
  "name": "Coins",
  "category": "objects",
  "tags": [
   "coins",
   "money",
   "jingle",
   "payment",
   "pocket"
  ],
  "description": "A handful of coins jingling.",
  "source": "seed-audio",
  "prompt": "A small handful of coins jingling in a hand, short, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.688,
  "peaks": [
   0.46,
   1,
   0.37,
   0.33,
   0.66,
   0.51,
   0.38,
   0.34,
   0.31,
   0.26,
   0.2,
   0.36,
   0.31,
   0.31,
   0.36,
   0.35,
   0.23,
   0.3,
   0.19,
   0.31,
   0.33,
   0.16,
   0.26,
   0.28,
   0.18,
   0.16,
   0.19,
   0.18,
   0.14,
   0.1,
   0.21,
   0.21,
   0.11,
   0.08,
   0.34,
   0.19,
   0.18,
   0.11,
   0.19,
   0.1,
   0.13,
   0.09,
   0.09,
   0.07,
   0.03,
   0.02,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/coins-jingle.wav",
   "m4a": "sounds/coins-jingle.m4a"
  }
 },
 {
  "id": "cash-register",
  "name": "Cash register",
  "category": "objects",
  "tags": [
   "cash register",
   "money",
   "sale",
   "payment",
   "ding",
   "vintage"
  ],
  "description": "A vintage cash register ringing up a sale.",
  "source": "seed-audio",
  "prompt": "A vintage mechanical cash register bell ding with the drawer opening, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.578,
  "peaks": [
   0.05,
   0.24,
   0.06,
   0.02,
   0.28,
   0.06,
   0.26,
   0.29,
   0.2,
   0.86,
   0.99,
   0.59,
   0.38,
   0.24,
   0.27,
   0.35,
   0.92,
   1,
   0.65,
   0.62,
   0.65,
   0.43,
   0.24,
   0.24,
   0.36,
   0.19,
   0.12,
   0.1,
   0.11,
   0.1,
   0.08,
   0.06,
   0.05,
   0.08,
   0.07,
   0.07,
   0.06,
   0.05,
   0.03,
   0.03,
   0.02,
   0.03,
   0.02,
   0.02,
   0.03,
   0.03,
   0.02,
   0.02
  ],
  "files": {
   "wav": "sounds/cash-register.wav",
   "m4a": "sounds/cash-register.m4a"
  }
 },
 {
  "id": "keys-jingle",
  "name": "Keys",
  "category": "objects",
  "tags": [
   "keys",
   "keyring",
   "jingle",
   "metal",
   "access"
  ],
  "description": "A ring of keys jingling.",
  "source": "seed-audio",
  "prompt": "A ring of metal keys jingling briefly, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 2,
  "peaks": [
   0.08,
   0.14,
   0.03,
   0.02,
   0.01,
   0.18,
   0.02,
   0.06,
   0.08,
   0.01,
   0.01,
   0.1,
   0.11,
   0.17,
   0.1,
   0.15,
   0.02,
   0.01,
   0.02,
   0.19,
   0.07,
   0.06,
   0.06,
   0.03,
   0.22,
   0.14,
   0.05,
   0.34,
   0.07,
   0.18,
   0.56,
   0.14,
   0.1,
   0.16,
   0.12,
   0.14,
   0.21,
   0.21,
   0.14,
   1,
   0.5,
   0.26,
   0.31,
   0.2,
   0.08,
   0.04,
   0.05,
   0.02
  ],
  "files": {
   "wav": "sounds/keys-jingle.wav",
   "m4a": "sounds/keys-jingle.m4a"
  }
 },
 {
  "id": "zipper",
  "name": "Zipper",
  "category": "objects",
  "tags": [
   "zipper",
   "zip",
   "close",
   "bag",
   "pack"
  ],
  "description": "A short zipper pull.",
  "source": "seed-audio",
  "prompt": "A short quick zipper pull on a bag, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.373,
  "peaks": [
   0.04,
   0.06,
   0.05,
   0.08,
   0.09,
   0.09,
   0.09,
   0.12,
   0.11,
   0.21,
   0.31,
   0.29,
   0.29,
   0.28,
   0.34,
   0.48,
   0.41,
   0.49,
   0.72,
   0.94,
   0.68,
   0.71,
   0.85,
   1,
   0.72,
   0.83,
   0.91,
   0.86,
   0.56,
   0.28,
   0.22,
   0.18,
   0.49,
   0.23,
   0.19,
   0.11,
   0.05,
   0.04,
   0.03,
   0.02,
   0.06,
   0.05,
   0.01,
   0.02,
   0.01,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/zipper.wav",
   "m4a": "sounds/zipper.m4a"
  }
 },
 {
  "id": "bubble-wrap",
  "name": "Bubble wrap",
  "category": "objects",
  "tags": [
   "bubble wrap",
   "pop",
   "snap",
   "satisfying",
   "plastic"
  ],
  "description": "One bubble-wrap bubble popping.",
  "source": "seed-audio",
  "prompt": "A single bubble wrap bubble popped between fingers, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.108,
  "peaks": [
   0.01,
   0.01,
   0.01,
   0.28,
   1,
   0.87,
   0.66,
   0.46,
   0.34,
   0.29,
   0.23,
   0.23,
   0.23,
   0.16,
   0.11,
   0.04,
   0.04,
   0.04,
   0.03,
   0.01,
   0.01,
   0.01,
   0.01,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/bubble-wrap.wav",
   "m4a": "sounds/bubble-wrap.m4a"
  }
 },
 {
  "id": "cork-pop",
  "name": "Cork pop",
  "category": "objects",
  "tags": [
   "cork",
   "pop",
   "champagne",
   "celebrate",
   "bottle"
  ],
  "description": "A cork pulled from a bottle.",
  "source": "seed-audio",
  "prompt": "A single cork popping out of a wine bottle, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.288,
  "peaks": [
   0.04,
   1,
   0.26,
   0.13,
   0.22,
   0.2,
   0.51,
   0.65,
   0.53,
   0.66,
   0.52,
   0.62,
   0.7,
   0.88,
   0.77,
   0.78,
   0.77,
   0.97,
   0.66,
   0.6,
   0.66,
   0.83,
   0.41,
   0.19,
   0.15,
   0.12,
   0.07,
   0.15,
   0.11,
   0.05,
   0.45,
   0.26,
   0.72,
   0.65,
   0.11,
   0.08,
   0.06,
   0.05,
   0.02,
   0.02,
   0.02,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/cork-pop.wav",
   "m4a": "sounds/cork-pop.m4a"
  }
 },
 {
  "id": "water-drop",
  "name": "Water drop",
  "category": "objects",
  "tags": [
   "water",
   "drop",
   "drip",
   "liquid",
   "plink"
  ],
  "description": "A single water drop into a basin.",
  "source": "seed-audio",
  "prompt": "A single water drop falling into a small basin of water, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.113,
  "peaks": [
   0.01,
   0.03,
   0.1,
   0.71,
   1,
   0.71,
   0.67,
   0.51,
   0.19,
   0.19,
   0.22,
   0.15,
   0.12,
   0.1,
   0.07,
   0.08,
   0.05,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.02,
   0.01,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/water-drop.wav",
   "m4a": "sounds/water-drop.m4a"
  }
 },
 {
  "id": "scissors-snip",
  "name": "Scissors snip",
  "category": "app actions",
  "tags": [
   "cut",
   "scissors",
   "snip",
   "trim",
   "crop"
  ],
  "description": "One snip of scissors, for cut.",
  "source": "seed-audio",
  "prompt": "A single snip of metal scissors cutting paper, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.168,
  "peaks": [
   0,
   0.05,
   0.04,
   0.01,
   0.01,
   0.01,
   0,
   0.02,
   0.98,
   1,
   0.29,
   0.11,
   0.09,
   0.18,
   0.18,
   0.14,
   0.09,
   0.08,
   0.07,
   0.06,
   0.07,
   0.07,
   0.05,
   0.04,
   0.04,
   0.02,
   0.02,
   0.01,
   0.01,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/scissors-snip.wav",
   "m4a": "sounds/scissors-snip.m4a"
  }
 },
 {
  "id": "book-close",
  "name": "Book close",
  "category": "app actions",
  "tags": [
   "archive",
   "book",
   "close",
   "done",
   "thump"
  ],
  "description": "A hardcover book shutting, for archive.",
  "source": "seed-audio",
  "prompt": "A hardcover book being closed firmly, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.238,
  "peaks": [
   0.02,
   0.04,
   0.02,
   0.02,
   0.02,
   0.07,
   0.04,
   0.17,
   0.85,
   1,
   1,
   0.39,
   0.34,
   0.44,
   0.23,
   0.1,
   0.13,
   0.11,
   0.09,
   0.04,
   0.05,
   0.05,
   0.03,
   0.03,
   0.03,
   0.02,
   0.02,
   0.03,
   0.03,
   0.01,
   0.02,
   0.03,
   0.03,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/book-close.wav",
   "m4a": "sounds/book-close.m4a"
  }
 },
 {
  "id": "drawer-shut",
  "name": "Drawer shut",
  "category": "app actions",
  "tags": [
   "archive",
   "drawer",
   "file away",
   "close",
   "wood"
  ],
  "description": "A wooden drawer sliding shut, for file away.",
  "source": "seed-audio",
  "prompt": "A wooden desk drawer pushed shut quickly, a brief slide that ends in a firm wooden thud, starting immediately, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.624,
  "peaks": [
   0.03,
   0.04,
   0.05,
   0.04,
   0.05,
   0.04,
   0.04,
   0.04,
   0.04,
   0.03,
   0.02,
   0.02,
   0.05,
   0.04,
   0.06,
   0.05,
   0.04,
   0.03,
   0.03,
   0.03,
   0.01,
   0.98,
   0.99,
   1,
   0.7,
   0.47,
   0.43,
   0.27,
   0.25,
   0.17,
   0.17,
   0.16,
   0.14,
   0.09,
   0.08,
   0.05,
   0.04,
   0.04,
   0.05,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0
  ],
  "files": {
   "wav": "sounds/drawer-shut.wav",
   "m4a": "sounds/drawer-shut.m4a"
  }
 },
 {
  "id": "thumbtack-push",
  "name": "Thumbtack",
  "category": "app actions",
  "tags": [
   "pin",
   "thumbtack",
   "corkboard",
   "push",
   "save"
  ],
  "description": "A thumbtack pressed into cork, for pin.",
  "source": "seed-audio",
  "prompt": "A single thumbtack pushed into a cork board, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.183,
  "peaks": [
   0.02,
   0.05,
   0.06,
   0.03,
   0.05,
   0.96,
   1,
   0.5,
   0.47,
   0.43,
   0.37,
   0.1,
   0.16,
   0.15,
   0.1,
   0.1,
   0.12,
   0.11,
   0.13,
   0.08,
   0.1,
   0.13,
   0.1,
   0.07,
   0.05,
   0.06,
   0.05,
   0.04,
   0.06,
   0.06,
   0.03,
   0.04,
   0.03,
   0.01,
   0.01,
   0.02,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0.01,
   0,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/thumbtack-push.wav",
   "m4a": "sounds/thumbtack-push.m4a"
  }
 },
 {
  "id": "marker-squeak",
  "name": "Marker",
  "category": "app actions",
  "tags": [
   "highlight",
   "marker",
   "squeak",
   "draw",
   "mark"
  ],
  "description": "A marker drawing one short stroke, for highlight.",
  "source": "seed-audio",
  "prompt": "A felt marker drawing one short quick stroke on paper with a slight squeak, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.35,
  "peaks": [
   0.08,
   0.18,
   0.2,
   0.27,
   0.36,
   0.45,
   0.46,
   0.53,
   0.65,
   0.75,
   0.65,
   0.6,
   0.64,
   1,
   0.79,
   0.71,
   0.71,
   0.75,
   0.8,
   0.65,
   0.89,
   0.76,
   0.48,
   0.42,
   0.45,
   0.53,
   0.61,
   0.54,
   0.51,
   0.76,
   0.56,
   0.65,
   0.66,
   0.84,
   0.67,
   0.73,
   0.67,
   0.32,
   0.25,
   0.17,
   0.1,
   0.06,
   0.05,
   0.03,
   0.04,
   0.03,
   0.02,
   0.01
  ],
  "files": {
   "wav": "sounds/marker-squeak.wav",
   "m4a": "sounds/marker-squeak.m4a"
  }
 },
 {
  "id": "eraser-rub",
  "name": "Eraser",
  "category": "app actions",
  "tags": [
   "erase",
   "clear",
   "eraser",
   "rub",
   "undo"
  ],
  "description": "A pencil eraser rubbing, for clear.",
  "source": "seed-audio",
  "prompt": "A rubber pencil eraser rubbed back and forth on paper, short, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1,
  "peaks": [
   0.05,
   0.16,
   0.15,
   0.3,
   0.28,
   0.18,
   0.18,
   0.08,
   0.03,
   0.02,
   0.03,
   0.14,
   0.38,
   1,
   0.79,
   0.84,
   0.42,
   0.37,
   0.26,
   0.21,
   0.08,
   0.05,
   0.03,
   0.02,
   0.07,
   0.38,
   0.34,
   0.49,
   0.53,
   0.3,
   0.56,
   0.3,
   0.17,
   0.04,
   0.02,
   0.11,
   0.11,
   0.47,
   0.67,
   0.62,
   0.34,
   0.1,
   0.01,
   0.07,
   0.09,
   0.14,
   0.16,
   0.17
  ],
  "files": {
   "wav": "sounds/eraser-rub.wav",
   "m4a": "sounds/eraser-rub.m4a"
  }
 },
 {
  "id": "pencil-scribble",
  "name": "Pencil scribble",
  "category": "app actions",
  "tags": [
   "draw",
   "pencil",
   "scribble",
   "sketch",
   "write"
  ],
  "description": "A quick pencil scribble, for draw.",
  "source": "seed-audio",
  "prompt": "A quick short pencil scribble on paper, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 1.158,
  "peaks": [
   0.25,
   0.19,
   0.05,
   0.04,
   0.13,
   0.31,
   0.21,
   0.2,
   0.12,
   0.04,
   0.02,
   0.26,
   0.28,
   0.26,
   0.14,
   0.05,
   0.14,
   0.26,
   0.17,
   0.14,
   0.06,
   0.2,
   0.16,
   0.12,
   0.04,
   0.19,
   0.07,
   0.02,
   0.11,
   0.17,
   0.11,
   0.04,
   0.01,
   0.27,
   0.22,
   0.07,
   1,
   0.58,
   0.23,
   0.05,
   0.24,
   0.27,
   0.15,
   0.19,
   0.33,
   0.3,
   0.13,
   0.03
  ],
  "files": {
   "wav": "sounds/pencil-scribble.wav",
   "m4a": "sounds/pencil-scribble.m4a"
  }
 },
 {
  "id": "sticky-note-peel",
  "name": "Sticky note",
  "category": "app actions",
  "tags": [
   "note",
   "sticky note",
   "peel",
   "new",
   "post-it"
  ],
  "description": "A sticky note peeled off a pad, for new note.",
  "source": "seed-audio",
  "prompt": "A sticky note being peeled off a pad, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.258,
  "peaks": [
   0.03,
   0.07,
   0.14,
   0.15,
   0.27,
   0.42,
   0.51,
   0.56,
   0.38,
   0.55,
   0.82,
   0.76,
   0.76,
   0.63,
   0.64,
   0.57,
   0.78,
   0.61,
   0.41,
   0.33,
   0.37,
   0.28,
   0.46,
   0.29,
   0.33,
   0.19,
   0.2,
   0.14,
   0.16,
   0.15,
   0.1,
   0.03,
   0.02,
   0.31,
   1,
   0.44,
   0.12,
   0.04,
   0.03,
   0.02,
   0.03,
   0.01,
   0.02,
   0.02,
   0.01,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/sticky-note-peel.wav",
   "m4a": "sounds/sticky-note-peel.m4a"
  }
 },
 {
  "id": "tape-pull",
  "name": "Tape pull",
  "category": "app actions",
  "tags": [
   "attach",
   "tape",
   "stick",
   "pull",
   "clip"
  ],
  "description": "A strip of tape pulled off a roll, for attach.",
  "source": "seed-audio",
  "prompt": "One single quick pull of adhesive tape off a roll, a short clean sticky rip under one second, nothing else, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.653,
  "peaks": [
   0.04,
   0.01,
   0,
   0.23,
   0.44,
   0.57,
   0.47,
   0.56,
   0.55,
   0.75,
   0.65,
   0.5,
   0.61,
   0.58,
   0.51,
   0.53,
   0.52,
   0.59,
   0.47,
   0.61,
   0.47,
   0.68,
   0.4,
   0.44,
   0.43,
   0.63,
   0.52,
   0.53,
   0.69,
   0.6,
   0.55,
   0.44,
   0.58,
   0.69,
   0.53,
   0.7,
   0.88,
   0.65,
   0.83,
   1,
   0.88,
   0.47,
   0.51,
   0.17,
   0.06,
   0.02,
   0.01,
   0
  ],
  "files": {
   "wav": "sounds/tape-pull.wav",
   "m4a": "sounds/tape-pull.m4a"
  }
 },
 {
  "id": "folder-drop",
  "name": "Folder drop",
  "category": "app actions",
  "tags": [
   "file",
   "folder",
   "drop",
   "save",
   "organize"
  ],
  "description": "A paper folder dropped on a stack, for file.",
  "source": "seed-audio",
  "prompt": "A manila paper folder dropped flat onto a stack of papers on a desk, isolated foley sound effect, close mic, dry studio recording, no background noise, no music, no voice, no speech",
  "duration": 0.518,
  "peaks": [
   0.04,
   0.04,
   0.05,
   0.03,
   0.03,
   0.04,
   0.03,
   0.04,
   0.05,
   0.03,
   0.02,
   0.02,
   0.05,
   0.05,
   0.05,
   0.06,
   0.13,
   0.23,
   0.25,
   0.2,
   0.14,
   1,
   0.91,
   0.24,
   0.3,
   0.21,
   0.26,
   0.24,
   0.33,
   0.12,
   0.08,
   0.07,
   0.05,
   0.06,
   0.02,
   0.02,
   0.02,
   0.05,
   0.02,
   0.02,
   0.02,
   0.08,
   0.07,
   0.03,
   0.02,
   0.02,
   0.01,
   0.01
  ],
  "files": {
   "wav": "sounds/folder-drop.wav",
   "m4a": "sounds/folder-drop.m4a"
  }
 },
 {
  "id": "door-knock-c",
  "name": "Door knock C",
  "category": "objects",
  "tags": [
   "knock",
   "door",
   "wood",
   "visitor",
   "attention",
   "code"
  ],
  "description": "Three knuckle raps on a door, made in Web Audio.",
  "source": "synth",
  "duration": 0.446,
  "peaks": [
   1,
   0.46,
   0.22,
   0.14,
   0.06,
   0.02,
   0.03,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   1,
   0.6,
   0.43,
   0.15,
   0.06,
   0.06,
   0.02,
   0.01,
   0.01,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0.86,
   0.38,
   0.13,
   0.12,
   0.05,
   0.02,
   0.02,
   0.01,
   0,
   0,
   0
  ],
  "files": {
   "wav": "sounds/door-knock-c.wav",
   "m4a": "sounds/door-knock-c.m4a"
  },
  "code": "(k) => {\n    k.space({ decay: 0.35, mix: 0.12, tone: 3000 });\n    for (const [t0, g] of [[0.01, 1], [0.18, 0.92], [0.355, 0.8]]) {\n      const t = t0 + (k.rand() - 0.5) * 0.008;\n      k.noise({ t, d: 0.004, g: 0.35 * g, filter: { type: 'bandpass', f: 3000, q: 0.8 } });\n      k.noise({ t, d: 0.03, g: 0.5 * g, filter: { type: 'bandpass', f: 800, q: 3 } });\n      for (const [f, gg, d] of [[95, 0.55, 0.14], [168, 0.45, 0.11], [262, 0.3, 0.08], [405, 0.18, 0.05]]) {\n        k.tone({ f: f * 1.04, to: f, glide: 0.02, t, a: 0.001, d, g: gg * g });\n      }\n    }\n  }"
 }
]