{
  "format": "subfork.graph/1",
  "thumbnail": "data:image/jpeg;base64,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",
  "definition": {
    "version": "0.1.0",
    "name": "Music Visualizer",
    "description": "Uploads bounded audio, probes it on a media worker, and renders six responsive browser-side Web Audio visualizations without external network calls.",
    "nodes": [
      {
        "node_instance_id": "audio_file",
        "node_id": "n_asset",
        "node_version": "1.0.0",
        "title": "Upload music",
        "params": {
          "artifact_id": ""
        },
        "exposed_outputs": [
          "artifact",
          "filename",
          "media_type",
          "size_bytes"
        ],
        "outputs_visibility_configured": true
      },
      {
        "node_instance_id": "probe",
        "node_id": "n_media_probe",
        "node_version": "1.0.0",
        "title": "Probe audio on media worker",
        "params": {
          "max_bytes": 50000000,
          "timeout_seconds": 15
        },
        "exposed_inputs": [
          "artifact"
        ],
        "inputs_visibility_configured": true,
        "exposed_outputs": [
          "info"
        ],
        "outputs_visibility_configured": true
      },
      {
        "node_instance_id": "scene_mode",
        "node_id": "n_text_value",
        "node_version": "1.0.0",
        "title": "Initial visualization",
        "params": {
          "text": "radial"
        }
      },
      {
        "node_instance_id": "sensitivity_value",
        "node_id": "n_range_value",
        "node_version": "1.0.0",
        "title": "Beat sensitivity",
        "params": {
          "value": 55
        }
      },
      {
        "node_instance_id": "accent_color",
        "node_id": "n_color_value",
        "node_version": "1.0.0",
        "title": "Accent color",
        "params": {
          "color": "#ff4ecd"
        }
      },
      {
        "node_instance_id": "secondary_color",
        "node_id": "n_color_value",
        "node_version": "1.0.0",
        "title": "Secondary color",
        "params": {
          "color": "#7c4dff"
        }
      },
      {
        "node_instance_id": "page_data",
        "node_id": "n_json_template",
        "node_version": "1.0.0",
        "title": "Build visualizer data",
        "params": {
          "template": {
            "probe": "{{ inputs.probe_info }}",
            "visualizer": {
              "scene": "{{ inputs.scene }}",
              "sensitivity": "{{ inputs.sensitivity }}",
              "accent": "{{ inputs.accent }}",
              "secondary": "{{ inputs.secondary }}"
            },
            "audio": "{{ inputs.audio }}"
          }
        },
        "custom_inputs": {
          "probe_info": "json",
          "scene": "str",
          "sensitivity": "float",
          "accent": "str",
          "secondary": "str",
          "audio": "artifact"
        },
        "exposed_inputs": [
          "audio",
          "probe_info",
          "scene",
          "sensitivity",
          "accent",
          "secondary"
        ],
        "inputs_visibility_configured": true
      },
      {
        "node_instance_id": "page_json",
        "node_id": "n_json_stringify",
        "node_version": "1.0.0",
        "title": "HTML-safe visualizer data",
        "params": {
          "html_safe": true
        }
      },
      {
        "node_instance_id": "page",
        "node_id": "n_html_template",
        "node_version": "1.0.0",
        "title": "Render beat visualizer",
        "params": {
          "template": "<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Pulse Canvas</title><style>\n:root{color-scheme:dark;--ink:#f9f4ff;--panel:#080611cc;--line:#ffffff22}*{box-sizing:border-box}html,body,main{width:100%;height:100%;min-width:0;min-height:0;margin:0;overflow:hidden}body{background:#020208;color:var(--ink);font:12px/1.2 system-ui,sans-serif}main{position:relative;isolation:isolate}canvas{display:block;width:100%;height:100%;background:#020208}.chrome{position:absolute;z-index:2;left:clamp(8px,2vw,20px);right:clamp(8px,2vw,20px);bottom:clamp(8px,2vw,18px);display:flex;align-items:center;gap:8px;pointer-events:none}.title{margin-right:auto;color:#ffffff88;font:600 10px/1 ui-monospace,monospace;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 8px #000}.controls{display:flex;align-items:center;gap:5px;padding:5px;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 8px 30px #0008;backdrop-filter:blur(10px);pointer-events:auto}button{height:30px;border:0;border-radius:7px;background:transparent;color:#d9d1e6;padding:0 9px;font:600 10px/1 system-ui,sans-serif;cursor:pointer}button:hover{background:#ffffff12;color:#fff}button[aria-pressed=true]{background:#ffffff1d;color:#fff;box-shadow:inset 0 0 0 1px #ffffff1c}.play{width:32px;padding:0;display:grid;place-items:center}.play svg{width:14px;height:14px;fill:currentColor}.modes{display:flex;gap:2px}.error{position:absolute;z-index:3;inset:auto 12px 58px;padding:9px 11px;border:1px solid #ff668855;border-radius:8px;background:#16060ddd;color:#ffc2cf;font:11px ui-monospace,monospace}.hidden{display:none}@media(max-width:620px){.chrome{align-items:flex-end}.title{writing-mode:vertical-rl;transform:rotate(180deg);margin:0 auto 2px 0}.controls{max-width:calc(100% - 28px);overflow-x:auto}.modes{min-width:max-content}button{padding-inline:7px}}\n</style></head><body><main><canvas id=\"view\" aria-label=\"Beat-reactive music visualization\"></canvas><div id=\"error\" class=\"error hidden\" role=\"alert\"></div><div class=\"chrome\"><span class=\"title\">Pulse Canvas</span><div class=\"controls\"><button class=\"play\" id=\"playback\" type=\"button\" aria-label=\"Play\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path id=\"play-icon\" d=\"M8 5v14l11-7z\"/></svg></button><div class=\"modes\" id=\"modes\" aria-label=\"Visualization style\"><button data-mode=\"radial\">Radial</button><button data-mode=\"equalizer\">Blocks</button><button data-mode=\"spectrum\">Dots</button><button data-mode=\"ribbons\">Ribbons</button><button data-mode=\"wave\">Wave</button><button data-mode=\"console\">Console</button></div></div></div><audio id=\"audio\" preload=\"metadata\"></audio></main>\n<script id=\"page-data\" type=\"application/json\">{{ inputs.page_json }}</script><script>\n\"use strict\";const $=id=>document.getElementById(id),audio=$(\"audio\"),canvas=$(\"view\"),ctx=canvas.getContext(\"2d\"),playback=$(\"playback\"),playIcon=$(\"play-icon\"),errorBox=$(\"error\"),modeButtons=[...document.querySelectorAll(\"[data-mode]\")];const pageData=JSON.parse($(\"page-data\").textContent),config=pageData.visualizer||{};let ac,analyser,source,freq,wave,raf,w=1,h=1,dpr=1,pulse=0,level=0,bass=0,lastBeat=0,baseline=0,mode=({rings:\"radial\",bars:\"equalizer\"}[config.scene]||config.scene||\"radial\");const allowed=new Set(modeButtons.map(b=>b.dataset.mode));if(!allowed.has(mode))mode=\"radial\";const sensitivity=Math.max(0,Math.min(100,Number(config.sensitivity)||55));\nfunction resize(){const box=canvas.getBoundingClientRect();w=Math.max(1,box.width);h=Math.max(1,box.height);dpr=Math.min(devicePixelRatio||1,2,1600/w,1200/h);canvas.width=Math.max(1,Math.round(w*dpr));canvas.height=Math.max(1,Math.round(h*dpr));ctx.setTransform(dpr,0,0,dpr,0,0)}\nfunction clear(alpha=.28){ctx.fillStyle=`rgba(2,2,8,${alpha})`;ctx.fillRect(0,0,w,h)}function bin(i,count=freq.length){return freq[Math.max(0,Math.min(freq.length-1,Math.floor(i/count*freq.length)))]/255}function hue(i,n,offset=0){return `hsl(${(offset+i/n*300)%360} 100% 58%)`}\nfunction radial(now){clear(.38);const cx=w/2,cy=h/2,r=Math.min(w,h)*(.14+pulse*.015),outer=Math.min(w,h)*.43,count=Math.max(72,Math.min(220,Math.floor(w/4)));ctx.lineCap=\"round\";for(let i=0;i<count;i++){const a=i/count*Math.PI*2-Math.PI/2,v=bin(i,count),inner=r,reach=inner+(outer-inner)*(.12+v*.88);ctx.strokeStyle=hue(i,count,now*.012);ctx.globalAlpha=.35+v*.65;ctx.lineWidth=Math.max(1,w/700);ctx.beginPath();ctx.moveTo(cx+Math.cos(a)*inner,cy+Math.sin(a)*inner);ctx.lineTo(cx+Math.cos(a)*reach,cy+Math.sin(a)*reach);ctx.stroke()}ctx.globalAlpha=1}\nfunction equalizer(){clear(.46);const cols=Math.max(16,Math.min(42,Math.floor(w/22))),rows=Math.max(8,Math.min(18,Math.floor(h/20))),gap=Math.max(2,w/250),cw=(w-gap*(cols+1))/cols,ch=Math.min(18,(h*.72-gap*(rows-1))/rows),base=h*.88;for(let x=0;x<cols;x++){const value=bin(x,cols),lit=Math.round(value*rows);for(let y=0;y<rows;y++){const yy=base-y*(ch+gap)-ch,active=y<lit;ctx.fillStyle=active?(y>rows*.82?\"#ed5b16\":y>rows*.62?\"#ffd33d\":`hsl(${125-y*2} 78% 54%)`):\"#07100a\";ctx.globalAlpha=active?1:.55;ctx.fillRect(gap+x*(cw+gap),yy,cw,ch)}}ctx.globalAlpha=1}\nfunction spectrum(now){clear(.34);const cols=Math.max(34,Math.min(86,Math.floor(w/8))),rows=Math.max(18,Math.min(44,Math.floor(h/8))),dx=w/(cols-1),dy=h*.72/(rows-1),bottom=h*.86,r=Math.max(1.3,Math.min(3.4,w/260));for(let x=0;x<cols;x++){const value=bin(x,cols),lit=Math.round(value*rows),glow=Math.max(0,value-.74);for(let y=0;y<rows;y++){ctx.globalAlpha=y<lit?.48+.52*y/rows:.07;ctx.fillStyle=y/rows>.55?\"#ff31c7\":\"#644dff\";ctx.beginPath();ctx.arc(x*dx,bottom-y*dy,r+(y===lit-1?glow*3:0),0,Math.PI*2);ctx.fill()}}ctx.globalAlpha=1;const gx=(now*.03)%w;const grad=ctx.createRadialGradient(gx,bottom-h*.25,0,gx,bottom-h*.25,h*.18);grad.addColorStop(0,\"#ffffff88\");grad.addColorStop(1,\"#ffffff00\");ctx.fillStyle=grad;ctx.fillRect(0,0,w,h)}\nfunction ribbons(now){clear(.2);const lines=Math.max(18,Math.min(48,Math.floor(h/9))),samples=Math.max(70,Math.floor(w/5)),t=now*.00035;ctx.lineWidth=Math.max(1,w/900);for(let j=0;j<lines;j++){const depth=j/(lines-1),base=h*(.12+depth*.78),amp=h*(.035+.13*bin(j,lines))*(.45+depth*.75);ctx.strokeStyle=`hsla(${292+depth*32} 100% ${55+depth*18}% / ${.18+depth*.68})`;ctx.beginPath();for(let i=0;i<samples;i++){const x=i/(samples-1)*w,q=i/(samples-1),v=bin(i,samples)-.5,y=base+Math.sin(q*8+t*5+j*.11)*amp+v*h*.16*(.3+depth);i?ctx.lineTo(x,y):ctx.moveTo(x,y)}ctx.stroke()}}\nfunction waveform(now){clear(.24);const lines=Math.max(12,Math.min(30,Math.floor(h/14))),samples=Math.max(90,Math.floor(w/4)),center=h/2;ctx.lineWidth=Math.max(1,w/1000);for(let j=0;j<lines;j++){const p=j/(lines-1),offset=(p-.5)*h*.5,amp=h*(.09+.08*Math.sin(p*Math.PI));ctx.strokeStyle=hue(j,lines,now*.01);ctx.globalAlpha=.2+.75*(1-Math.abs(p-.5)*1.35);ctx.beginPath();for(let i=0;i<samples;i++){const x=i/(samples-1)*w,v=wave[Math.floor(i/samples*wave.length)]/128-1,y=center+offset+v*amp+Math.sin(i*.045+now*.0015+j*.12)*amp*.32;i?ctx.lineTo(x,y):ctx.moveTo(x,y)}ctx.stroke()}ctx.globalAlpha=1}\nfunction consoleView(now){clear(.5);const pad=Math.max(14,w*.04),top=h*.12,mid=h*.48,bottom=h*.82,cols=Math.max(28,Math.min(64,Math.floor(w/10)));ctx.fillStyle=\"#d82bdc22\";for(let x=0;x<cols;x++)for(let y=0;y<12;y++){ctx.beginPath();ctx.arc(pad+x*(w-2*pad)/(cols-1),top+y*(mid-top)/11,1,0,Math.PI*2);ctx.fill()}const gradient=ctx.createLinearGradient(pad,0,w-pad,0);gradient.addColorStop(0,\"#ff45e6\");gradient.addColorStop(.5,\"#a634ff\");gradient.addColorStop(1,\"#ff45e6\");ctx.strokeStyle=gradient;ctx.fillStyle=\"#d420dd33\";ctx.lineWidth=1.5+pulse*2;ctx.beginPath();for(let i=0;i<cols;i++){const x=pad+i/(cols-1)*(w-2*pad),v=wave[Math.floor(i/cols*wave.length)]/128-1,y=(top+mid)/2+v*h*.22;i?ctx.lineTo(x,y):ctx.moveTo(x,y)}ctx.stroke();for(let i=0;i<cols;i++){const v=bin(i,cols),bw=(w-2*pad)/cols*.62,bh=v*(bottom-mid);ctx.fillStyle=i%3?\"#ff49eb\":\"#fff\";ctx.fillRect(pad+i*(w-2*pad)/cols,bottom-bh,bw,bh)}for(let i=0;i<8;i++){ctx.globalAlpha=.28+(i%4===Math.floor(now/180)%4?.7:0);ctx.fillStyle=\"#ff38e1\";ctx.beginPath();ctx.arc(w/2+(i-3.5)*16,bottom+22,3,0,Math.PI*2);ctx.fill()}ctx.globalAlpha=1}\nfunction measure(now){analyser.getByteFrequencyData(freq);analyser.getByteTimeDomainData(wave);let sum=0,low=0,cut=Math.max(4,Math.floor(freq.length*.12));for(let i=0;i<freq.length;i++){const v=freq[i]/255;sum+=v;if(i<cut)low+=v}level=sum/freq.length;bass=low/cut;baseline=baseline*.94+bass*.06;const gain=1.8-sensitivity/100*1.1;if(bass>Math.max(.12,baseline*1.42)*gain&&now-lastBeat>180){pulse=1;lastBeat=now}else pulse*=.89}\nfunction frame(now){measure(now);if(mode===\"radial\")radial(now);else if(mode===\"equalizer\")equalizer();else if(mode===\"spectrum\")spectrum(now);else if(mode===\"ribbons\")ribbons(now);else if(mode===\"wave\")waveform(now);else consoleView(now);raf=requestAnimationFrame(frame)}\nfunction showError(reason){errorBox.textContent=reason instanceof Error?reason.message:\"Unable to start audio visualization.\";errorBox.classList.remove(\"hidden\")}async function start(){try{if(!ac){ac=new AudioContext();analyser=ac.createAnalyser();analyser.fftSize=512;analyser.smoothingTimeConstant=.7;source=ac.createMediaElementSource(audio);source.connect(analyser);analyser.connect(ac.destination);freq=new Uint8Array(analyser.frequencyBinCount);wave=new Uint8Array(analyser.fftSize)}await ac.resume();if(!raf)frame(performance.now())}catch(reason){showError(reason)}}async function toggle(){try{if(audio.paused){await start();await audio.play()}else audio.pause()}catch(reason){showError(reason)}}function syncPlay(){const paused=audio.paused;playIcon.setAttribute(\"d\",paused?\"M8 5v14l11-7z\":\"M7 5h4v14H7zm6 0h4v14h-4z\");playback.setAttribute(\"aria-label\",paused?\"Play\":\"Pause\")}\nfunction loadAudio(){try{const reference=pageData.audio;if(!reference||typeof reference.artifact_id!==\"string\"||!reference.artifact_id)throw new Error(\"A valid audio artifact is required.\");audio.src=\"/_subfork/artifacts/\"+encodeURIComponent(reference.artifact_id)}catch(reason){showError(reason)}}loadAudio();playback.addEventListener(\"click\",()=>void toggle());audio.addEventListener(\"play\",()=>{syncPlay();void start()});audio.addEventListener(\"pause\",syncPlay);audio.addEventListener(\"ended\",syncPlay);modeButtons.forEach(button=>button.addEventListener(\"click\",()=>{mode=button.dataset.mode;modeButtons.forEach(item=>item.setAttribute(\"aria-pressed\",String(item===button)))}));modeButtons.forEach(button=>button.setAttribute(\"aria-pressed\",String(button.dataset.mode===mode)));new ResizeObserver(resize).observe(document.body);resize();clear(1);syncPlay();\n</script></body></html>"
        },
        "custom_inputs": {
          "page_json": "str"
        },
        "exposed_inputs": [
          "page_json"
        ],
        "inputs_visibility_configured": true,
        "exposed_outputs": [
          "html"
        ],
        "outputs_visibility_configured": true
      },
      {
        "node_instance_id": "response",
        "node_id": "n_html_response",
        "node_version": "1.0.0",
        "title": "Visualizer HTML response"
      }
    ],
    "edges": [
      {
        "source_node_id": "audio_file",
        "source_output": "artifact",
        "target_node_id": "probe",
        "target_input": "artifact"
      },
      {
        "source_node_id": "scene_mode",
        "source_output": "text",
        "target_node_id": "page_data",
        "target_input": "scene"
      },
      {
        "source_node_id": "sensitivity_value",
        "source_output": "value",
        "target_node_id": "page_data",
        "target_input": "sensitivity"
      },
      {
        "source_node_id": "accent_color",
        "source_output": "color",
        "target_node_id": "page_data",
        "target_input": "accent"
      },
      {
        "source_node_id": "secondary_color",
        "source_output": "color",
        "target_node_id": "page_data",
        "target_input": "secondary"
      },
      {
        "source_node_id": "audio_file",
        "source_output": "artifact",
        "target_node_id": "page_data",
        "target_input": "audio"
      },
      {
        "source_node_id": "probe",
        "source_output": "info",
        "target_node_id": "page_data",
        "target_input": "probe_info"
      },
      {
        "source_node_id": "page_data",
        "source_output": "value",
        "target_node_id": "page_json",
        "target_input": "value"
      },
      {
        "source_node_id": "page_json",
        "source_output": "text",
        "target_node_id": "page",
        "target_input": "page_json"
      },
      {
        "source_node_id": "page",
        "source_output": "html",
        "target_node_id": "response",
        "target_input": "html"
      }
    ],
    "graph_outputs": {
      "html": {
        "node_instance_id": "page",
        "output_name": "html"
      },
      "probe_info": {
        "node_instance_id": "probe",
        "output_name": "info"
      },
      "audio": {
        "node_instance_id": "audio_file",
        "output_name": "artifact"
      },
      "response": {
        "node_instance_id": "response",
        "output_name": "response"
      },
      "visualizer_config": {
        "node_instance_id": "page_data",
        "output_name": "value"
      }
    },
    "metadata": {
      "template": {
        "category": "media",
        "status": "media-worker-probe",
        "summary": "Uploaded audio is probed on a capability-routed media worker and visualized in the browser.",
        "requires": {
          "nodes": [
            "n_color_value",
            "n_range_value",
            "n_text_value",
            "n_asset",
            "n_media_probe",
            "n_json_template",
            "n_json_stringify",
            "n_html_template",
            "n_html_response"
          ],
          "panels": [
            "html",
            "json",
            "audio",
            "logs"
          ],
          "capabilities": [
            "artifact-storage",
            "media-worker"
          ],
          "secrets": []
        }
      },
      "canvas": {
        "positions": {
          "audio_file": {
            "x": 40,
            "y": 120
          },
          "probe": {
            "x": 340,
            "y": 40
          },
          "page": {
            "x": 1250,
            "y": 260
          },
          "response": {
            "x": 1550,
            "y": 260
          },
          "page_data": {
            "x": 650,
            "y": 260
          },
          "page_json": {
            "x": 950,
            "y": 260
          },
          "scene_mode": {
            "x": 40,
            "y": 520
          },
          "sensitivity_value": {
            "x": 40,
            "y": 680
          },
          "accent_color": {
            "x": 340,
            "y": 520
          },
          "secondary_color": {
            "x": 340,
            "y": 680
          }
        },
        "recommended_panels": [
          {
            "kind": "html",
            "binding": {
              "nodeInstanceId": "page",
              "outputName": "html"
            }
          },
          {
            "kind": "json",
            "binding": {
              "nodeInstanceId": "probe",
              "outputName": "info"
            }
          },
          {
            "kind": "audio",
            "binding": {
              "nodeInstanceId": "audio_file",
              "outputName": "media"
            }
          }
        ]
      }
    }
  },
  "tags": [
    "media",
    "audio"
  ]
}
