00:00:00
1|1|000
🔎
🔊 85%
📐 Arrange
🎚 Mixer
🥁 Step Seq
Tracks — 0
Track
Name—
Type—
Volume—
PanC
Instrument
Waveform
Cutoff
Resonance
Detune
Envelope (ADSR)
10ms
100ms
60%
300ms
FX
Reverb
Delay
Drive
Automation
Show Lane
Parameter
Region
Name—
Bar—
Length—
Notes—

Step Sequencer

0%
Piano Roll
No region selected
Virtual MIDI Keyboard A-K = white keys, W/E/T/Y/U = black | Z/X = octave
Octave: 4

🎙 Audio Input

1.0x
Punch In/Out
💡 Tip: Drag & drop .wav / .mp3 onto any audio track lane to import.
Add New Track
🎹
Software Inst
🎤
Audio Track
🥁
Drummer
🎸
Bass
🌊
Synth Pad
↩
Aux / Bus

🎛 Pitch & Time

✦ Pitch Correction

0 st
0 ¢
Off

⏱ Time Stretch

1.00×
BPM → 128
0 st
💡 Select an audio region first.
Pitch and stretch are non-destructive — original preserved.

📁 Projects & Storage

Storage backend
Saved projects

🎛 MIDI Controller

Connecting to MIDI devices…
Incoming CC
Mappings
Add Mapping
Duplicate ⌘D
Loop Fill
Open Piano Roll E
Rename…
Change Color
Mute Region ⌘M
Delete ⌫

⚠ Runtime Errors

⚙ ui_shout Studio
📖 README
⚙ Settings
⌨ Shortcuts
✦ About

ui_shout Studio

A browser-native DAW. No install. No account. No limits on ideas.

What is this

ui_shout Studio is a full digital audio workstation that lives in a single HTML file. It runs entirely in your browser using the Web Audio API — no server, no plugins, no electron wrapper. Open the file, make music.

It was built for people who think in Logic Pro X but want something they can open on any machine, share with a URL, or hack directly.

Getting started

Transport

  • Press Space to play/stop. Enter rewinds to zero.
  • Set BPM in the top toolbar number field.
  • Click the timeline ruler to move the playhead.
  • Toggle Cycle to loop between the yellow markers.

Tracks

  • Click + Track to add a track. Choose MIDI, Bass, Pad, Drummer, or Audio.
  • Drag the ⠿ handle to reorder tracks.
  • Click a track header to select it — its instrument loads in the Inspector panel.
  • M = mute, S = solo. Vol and pan sliders are on each track header.

Regions

  • Double-click an empty lane to create a region.
  • Drag a region to move it. Drag the right edge to resize.
  • Double-click a region to open it in the Piano Roll.
  • Right-click a region for: duplicate, rename, colour, mute, delete.
  • With S (scissors tool) active, click a region to split it at that beat.

Views

📐 Arrange

The main timeline. All your tracks and regions live here. Drag regions, resize them, open them in the piano roll.

🎚 Mixer

One channel per track. Volume fader, pan knob, EQ, reverb, delay sends. The master bus has a limiter.

🥁 Step Sequencer

16-step grid for drums and rhythm parts. Each row is a different sound. Syncs to transport BPM. Independent play button or locked to main transport.

Piano Roll

  • Click in Draw mode to add a note. Drag to set length.
  • Switch to Select mode to drag, resize, or delete notes.
  • Quantize, transpose, and octave shift via the toolbar inside the roll.
  • Notes are stored per-region — each region has its own sequence.

Inspector (I)

Per-track instrument settings: wave shape, ADSR envelope, filter frequency, resonance, distortion drive, reverb send, delay send, detune.

Changes are live — you hear them immediately during playback.

Recording

  • Click 🎙 Input to configure your mic input.
  • Arm a track (🔴 button on track header), then press R or the rec button.
  • Punch in/out markers set the record region. Recorded audio appears as a waveform region.

Browser-only perks unique

Portable project

Encodes your entire project (MIDI regions, settings, BPM) into a URL. Paste it anywhere — recipient opens it and the project loads automatically. No server involved.

🌐 Tab Rec

Captures audio from any browser tab — YouTube, Spotify, a reference track, a synth plugin running in another tab. Routes it live into a new track. Completely impossible in a native DAW without a virtual audio device.

☀ Wake

Requests a screen wake lock so your display stays on during a session. Releases automatically when the tab hides.

〰 Scope

Live oscilloscope on the master output. Tap it on mid-session to see what the signal is doing.

🎹 MIDI Export

Exports a standard type-1 .mid file — one MIDI track per project track, correct tempo, all note-on/off events and velocities. Opens in every DAW, notation app, and hardware synth on earth.

Saving

Three backends — choose on first launch or via the ⋯ button:

  • Browser storage — fast, no permissions, ~5MB limit. Fine for MIDI-only sessions. Audio regions may not survive reload for large sessions.
  • Local file — saves a real .uishout JSON file to your hard drive. Unlimited size. Audio regions preserved as base64 PCM. Requires Chrome or Edge 86+.
  • None — no auto-save. Use ⬇ Export WAV to keep your work.

Auto-save runs every 60 seconds when browser storage is active. File storage saves on every manual 💾 Save press.

MIDI control

Open the MIDI panel to map any hardware CC knob or fader to master volume, BPM, track volume, pan, filter, reverb, delay, or transport. Click Learn, wiggle the hardware control, done.

Snap to grid
Regions snap to beat divisions when dragged
Default zoom
Pixels per beat on the arrange view
BPM
Session tempo
Master volume
Output gain before limiter
Metronome
Click track during playback
Count-in
1–2–3–4 before recording starts
Loop / Cycle
Repeat between loop markers
Screen wake lock
Keep display on during session
Storage backend
Where projects are saved
Export WAV
Render full session to audio file
Export MIDI
Save all MIDI tracks as .mid file
Copy project JSON
Copy a portable project snapshot

Transport

KeyAction
SpacePlay / Stop
EnterRewind to zero
RRecord toggle
CCycle / Loop toggle
MMetronome toggle

Tools

KeyTool
PPointer (select + move)
WPencil (draw regions)
SScissors (split regions)

Panels

KeyPanel
EPiano Roll
KVirtual Keyboard
IInspector
TAdd Track dialog

Regions (when selected)

KeyAction
← →Nudge region by snap amount
Delete / BackspaceDelete selected region

Piano Roll

ShortcutAction
⌘Z / Ctrl+ZUndo
⌘⇧Z / Ctrl+YRedo
Click (draw mode)Add note
Click (select mode)Select note
Drag note edgeResize note

ui_shout Studio

Made in a browser. Runs in a browser. Ships as one file.

✦ The idea

Most DAWs are heavy. They ask you to install, account, activate, configure. ui_shout Studio asks nothing — you open a file and it works. It was designed in conversation, built iteratively, and lives entirely in ~3800 lines of HTML.

The name is the sound a UI makes when it finally does what you actually want.

Tech stack

  • Web Audio API — all synthesis, mixing, effects, recording, export
  • Canvas 2D — piano roll, waveform previews, oscilloscope, step sequencer
  • Web MIDI API — hardware controller mapping
  • File System Access API — native hard drive save/load (Chrome/Edge)
  • getDisplayMedia — tab audio capture
  • Screen Wake Lock API — display stays on during sessions
  • Zero dependencies — no framework, no bundler, no node_modules

What's inside

  • Full multi-track arrange view with regions, colours, labels
  • Piano roll with draw, select, quantize, transpose, velocity
  • Step sequencer — 16 sounds × 32 steps, synced to transport
  • 6 synth types: MIDI, Bass, Pad, Pluck, Piano, Drummer
  • Per-track: filter, reverb send, delay send, distortion, detune, ADSR
  • Shared reverb convolver + feedback delay bus
  • Mixer view with per-track faders, pan, sends
  • Automation lanes (volume, pan, filter, reverb)
  • Mic recording with punch in/out, comping takes
  • Undo/redo with full snapshot history
  • MIDI hardware CC mapping with learn mode
  • WAV export via OfflineAudioContext
  • MIDI file export (type-1 .mid)
  • Project sharing via URL hash encoding
  • In-app runtime error logger

Limitations (honest)

  • Browser storage ~5MB — audio regions need File storage backend
  • Tab Rec requires Chrome or Edge (getDisplayMedia with audio)
  • MIDI file export needs Chrome or Edge 86+ for File System access
  • No VST/AU plugins — synthesis is all native Web Audio nodes
  • No multicore rendering — OfflineAudioContext is single-threaded

✦ Future ideas

Collaborative sessions via WebRTC. AudioWorklet-based custom synths. Import MIDI files. Spectral view. Mobile touch support. A version that fits in a tweet.

All of them possible. None of them requiring an installer.