oneshotlm
Compare all models on this prompt →

Piano synth · qwen3.5-27b

Using the pre-provided tone.min.js (global Tone), build a playable piano keyboard controlled by mouse and computer keys that synthesizes notes with an ADSR envelope and visual key feedback.

⛨ sandboxed Open in new tab ↗
transcript · 8 messages
user

Using the pre-provided tone.min.js (global Tone), build a playable piano keyboard controlled by mouse and computer keys that synthesizes notes with an ADSR envelope and visual key feedback.

assistant
thinking
The user wants me to create a single-page web app with a playable piano keyboard using Tone.js. Let me first check what's in the current directory and examine the tone.min.js file to understand its API.
bash {"command":"ls -la /tmp/ws/"}
toolResult

total 344 drwxr-sr-x. 2 node node 25 Aug 1 20:27 . drwxrwsrwx. 3 root node 16 Aug 1 20:27 .. -rw-r--r--. 1 node node 349169 Aug 1 20:27 tone.min.js

assistant
thinking
Good, tone.min.js is present. Now let me create a single-page web app with:
1. A visual piano keyboard
2. Mouse click support to play notes
3. Computer keyboard support (mapping keys to piano keys)
4. ADSR envelope for sound synthesis
5. Visual feedback when keys are pressed

I'll use Tone.js's Synth or PolySynth with an ADSR envelope. Let me write the complete index.html file.
write /tmp/ws/index.html (15773 bytes)
toolResult

Successfully wrote 15773 bytes to /tmp/ws/index.html

assistant
thinking
The file has been created. Let me verify it exists and is complete.
bash {"command":"ls -la /tmp/ws/ && head -5 /tmp/ws/index.html && echo \"...\" && tail -5 /tmp/ws/index.html"}
toolResult

total 360 drwxr-sr-x. 2 node node 43 Aug 1 20:28 . drwxrwsrwx. 3 root node 16 Aug 1 20:27 .. -rw-r--r--. 1 node node 15779 Aug 1 20:28 index.html -rw-r--r--. 1 node node 349169 Aug 1 20:27 tone.min.js <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ... buildPiano(); buildKeyMap(); </script> </body> </html>

assistant
thinking
The file is created successfully. Let me provide a summary of what was built.

Created `index.html` - a fully self-contained piano keyboard app with: **Features:** - **Visual Piano Keyboard**: 25 keys (C3 to E5) with realistic white and black keys - **Mouse/Touch Control**: Click or tap any key to play - **Keyboard Mapping**: Computer keys map to piano notes (Z-M for lower octave, Q-T for upper) - **ADSR Envelope Controls**: Real-time sliders for Attack, Decay, Sustain, and Release - **Volume Control**: Adjustable master volume - **Visual Feedback**: Keys light up when pressed (pink for white keys, green for black keys) - **Polyphonic Sound**: Multiple notes can play simultaneously using Tone.PolySynth - **Reverb Effect**: Added spatial reverb for richer sound **Keyboard Layout:** ``` Lower Octave: Z X C V B N M , . / Upper Octave: Q W E R T Y U Black Keys: S D G H J L ; 2 3 4 6 7 ``` Open in a browser and click "Start Audio" to begin playing!

TAKE IT TO CODE

A single self-contained HTML file — copy it and open in any browser, or reuse the prompt with your own pi-agent run.

RUN

modelqwen3.5-27b
vendorQwen
harnesspi-agent
generated2026-08-01

EVALUATION

3/5 partial

Clean piano UI with ADSR sliders and keyboard mapping, but requires 'Start Audio' first; no visible key press feedback in captured frames.

Vision grade · anthropic/claude-sonnet-5

MEASUREMENTS

Raw readings from the capture, not a verdict — the grade above is the only judgement. Percentages are how much of the screen changed; the measure under-reports sparse motion on a dark background.

idle motion0.0%
on click0.0%
on drag0.3%
on wheel0.3%
on enter + space0.0%
on arrow keys0.0%
on w/a/s/d0.0%
frame spread69.3 / 255
console errors0
js errors none

METRICS

runtime71.1s
tokens in17k
tokens out5.2k
cached0
cost / run$0.0115