Audio Waveform Visualizer - Online See Your Sound
Visualize audio in real time from your microphone or uploaded audio file. See the waveform dance. Uses Web Audio API locally.
UD5 Toolkit
Real-time debug tool for Web Audio API β monitor state, visualize waveform & spectrum, detect autoplay policy
AudioContext is created in the suspended state and requires a user gesture (click, tap, keypress) to resume(). This is by design β it protects users from autoplaying audio and reduces data usage. Always call audioContext.resume() inside a user event handler.
let audioCtx;
document.addEventListener('click', () => {
audioCtx = new AudioContext();
// Now it will be 'running'
}, { once: true });resume() inside a click/touch handler. Use navigator.userActivation.hasBeenActive (Chrome 72+) to check if the user has interacted with the page.
suspend().AudioContext. This happens after calling close(). Always check audioContext.state before using it.
suspend() β Pauses audio processing temporarily. The context can be resume()'d later. All nodes and connections are preserved. Good for pausing audio when the tab is hidden.close() β Permanently destroys the AudioContext. All resources are released. You cannot resume a closed context β you must create a new one. Use this when you're completely done with audio to free system resources.
const ctx = new AudioContext();
if (ctx.state === 'suspended') {
console.log('Autoplay likely blocked');
// Show a "Click to enable audio" button
document.body.addEventListener('click', () => ctx.resume(), { once: true });
}navigator.userActivation?.hasBeenActive in modern Chrome. If it's false and your context is suspended, autoplay policy is the reason.
visibilitychange event and call suspend() when hidden and resume() when visible. For critical audio (e.g., music players), consider using a Service Worker with the Media Session API, though this has limitations.
OfflineAudioContext for rendering.
Visualize audio in real time from your microphone or uploaded audio file. See the waveform dance. Uses Web Audio API locally.
Select a state and year to see all public holidays. Works offline with built-in data. Plan your long weekends. Simple reference tool.
Type JavaScript expressions and see output like a real browser console. Supports console.log, error, warn. Use for quick testing without DevTools.
Set up multiple @layers and use revertβlayer to fall back. See the computed style and cascade resolution live.
See your current push subscription details. Trigger push and notificationclick events manually to debug.
Create errors with the cause option and see chained error objects. Learn error wrapping for better debugging.
Highlight elements with ariaβdescribedby and see the linked description text. Verify a11y annotations.
Set up a Shared Worker that shares state across multiple browser tabs. Counter and messaging demo. Advanced web.
Select any element on the test page and monitor its size changes with ResizeObserver. See log of all entries.
See the current Service Worker registration, its state, and scope. Send 'skipWaiting' and update. PWA debug.
Load an image and see the exact events fired (load, error, abort). Monitor progress. Dev helper.
Fill in a form and see the FormData object as JSON. Perfect for debugging multipart form submissions. Client-side.
Create promises that resolve or reject after a delay. See state changes and chain .then/.catch. Debug async code.
Test required, pattern, minlength etc. See validity states and custom error messages. Learn browserβnative validation.
Adjust root, margin, and threshold. See a live log of intersection events as you scroll. Debug lazy loading.
Inject dynamic messages into ARIA live regions and monitor how they trigger screen reader announcements. Debug a11y.
Start recording and watch for Long Tasks that block the main thread. See task duration and attribution. Improve Interaction to Next Paint.
Paste a `SetβCookie` header and see all attributes parsed: domain, path, MaxβAge, SameSite, Secure, HttpOnly. Debug cookies easily.
Connect oscillators, gain nodes, and filters with a visual graph. Hear the result in real time. Learn Web Audio interactively.
Touch the screen and see the exact coordinates, radius, and force of each touch point. Indispensable for mobile web devs.
See the current state of a Service Worker for your page: installing, waiting, active. Unregister or skip waiting. Developer utility.
Paste a list of JavaScript values and see them prettyβprinted as if in the browser console. Great for debugging.
Enter a JSON pointer expression (/foo/bar) to extract a value from your pasted JSON. Debug nested objects quickly.
Press any key and see the full KeyboardEvent object: key, code, keyCode, modifier status. Dev tool.
Paste HTML/CSS snippets or enter properties to test how zβindex and stacking contexts interact. Realβtime example.
Enter a regular expression and see a visual railroad diagram explaining the pattern. Learn and debug regex.