Skip to content

Releases: zexk/wstudio

wstudio 1.0.0-beta.10

wstudio 1.0.0-beta.10 Pre-release
Pre-release

Choose a tag to compare

@zexk zexk released this 01 Sep 18:31

wstudio 1.0.0-beta.9

Choose a tag to compare

@github-actions github-actions released this 29 Jul 19:34

wstudio 1.0.0-beta.4

wstudio 1.0.0-beta.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Jul 07:54

Fourth beta of wstudio, a keyboard-centric DAW with a vim-modal terminal interface and a native GUI. The download archives include the curated four-track demo.wsj project.

Linux x86_64

The Linux build requires glibc and ALSA (libasound.so.2). Download and extract wstudio-linux-x86_64.tar.gz, then run:

cd wstudio-linux-x86_64
./wstudio demo.wsj          # TUI
./wstudio --gui demo.wsj    # GUI

PipeWire and JACK are supported natively alongside ALSA; wstudio picks the best available backend automatically (override with wstudio.o.audio_backend in init.lua).

Windows x86_64

Download and extract wstudio-windows-x86_64.zip, open PowerShell in the extracted directory, then run:

.\wstudio.exe demo.wsj
.\wstudio.exe --gui demo.wsj

Press space to start or stop playback. Run :help inside wstudio for the full keyboard reference.

macOS

Take wstudio-macos-arm64.tar.gz on Apple Silicon or wstudio-macos-x86_64.tar.gz on an Intel Mac. Extract it, then run:

cd wstudio-macos-arm64        # or wstudio-macos-x86_64
xattr -dr com.apple.quarantine .
./wstudio demo.wsj          # TUI
./wstudio --gui demo.wsj    # GUI

Unsigned builds

None of these archives are code-signed, so every platform's defences will object to them on first run. Check your download against SHA256SUMS before overriding anything.

  • Windows: SmartScreen shows "Windows protected your PC". Choose More info, then Run anyway. Defender may also quarantine or delete wstudio.exe outright on download, in which case restore it from Protection history or add the extracted directory to the exclusion list.
  • macOS: Gatekeeper refuses an unsigned, un-notarized binary. The xattr -dr com.apple.quarantine . above clears the download flag; otherwise right-click the binary and choose Open.
  • Linux: nothing to do.

Signing needs an Apple Developer ID and a Windows code-signing certificate, neither of which is in place during the beta.

What's new since beta.3

Lua can write music now

  • notes_get/notes_set and steps_get/steps_set reach piano-roll and drum-grid patterns, fx_list/fx_add/fx_params/fx_param_set reach FX chains on any track, the master bus, or a group, and clip_add/section_set lay out the arrangement
  • Enough to script euclidean rhythms, chord generators, humanize passes, and whole song structures; worked examples at the end of examples/init.lua

Synth

  • 32 modulation matrix rows (was 8), per-row unipolar mode, tempo-synced retriggerable slewable LFOs, per-note random modulation, band-limited wavetable playback, and a module-grid editor layout
  • m points the first free matrix row at the param under the cursor and jumps there, instead of stepping dest through every automatable param by hand
  • Instrument presets save their whole FX chain, and rack FX carry stable instance IDs so modulation survives a reorder

Drum grid, Elektron-style

  • Per-step tune, trig conditions, rolls, and micro-timing, plus per-pad loop length for polymeter
  • A blank init kit, which a fresh drum machine now starts on

Piano roll and note tools

  • FL-style mouse gestures in both frontends, left-edge note resize, velocity-lane dragging, cursor-pitch audition, blockwise visual selection, and chord-stamp inversions
  • :invert, :double, :fit, :dedupe, :normalize, :glue, :chop-notes, :flam, :arpeggiate, :limit, :discard-lengths, :snap-scale

Sampler, slicer, and browser

  • Per-pad tone filter and gated playback, :chop-random, :spread, :bpm-sync, waveforms tinted by frequency content, and regions drawn on the warped playback timeline
  • a auditions the file under the browser cursor, v bulk-loads a range of samples into consecutive pads, and the browser reopens where the last sample came from
  • f in the tracks view opens the preset picker directly, picking synth presets, drum kits, or SoundFont presets from the track's own instrument

Arrangement, groups, and navigation

  • Holding enter after stamping a clip keeps the cursor on it so h/l resize it live, mirroring the piano roll's note stamp
  • Mute and solo a whole group from its tracks-view row, with badges in the GUI
  • :recent opens a picker for the 10 most recently loaded or saved projects, and Tab cycling fuzzy-matches command names, so rsb finds restore-backup

GUI parity

  • Live MIDI input, matching the TUI
  • Held navigation keys repeat movement, parameter nudges, and prompt editing while edit and performance keys stay edge-triggered
  • Automation drags rebuild arrangement playback once on release instead of once per frame, keeping long arrangements responsive

CLAP

  • :clap-gui opens plugin-owned floating GUI windows for CLAP instruments and focused effects from either frontend

Configuration

  • 18 more wstudio.o options: the :bounce tail length, bit depth, and default output paths; the master limiter's ceiling and release; the step count, pattern length, and swing a newly created instrument starts at; the terminal columns per piano-roll, drum, and arrangement cell; the completion popup height; the spectrum analyser's dB span; the waveform band-tint split points; and the GUI piano-roll row height, which now scales the roll up to a full 88 keys at small heights
  • Bookmarks, command history, instrument presets, and drum kits moved next to init.lua ($XDG_CONFIG_HOME/wstudio, or %APPDATA%\wstudio on Windows). Files left in the old ~/.config/wstudio location are still read, and move on the next save

Fixes worth calling out

  • Applying a synth preset bound its FX modulation to nothing, so a preset whose macro sweeps a reverb or delay parameter (warm-pad, pluck, and others) applied with that routing dead
  • :synth-preset applied stack garbage instead of the saved patch, and a saved kit reloaded as eight silent named pads instead of audio
  • TUI mouse clicks landed one row above the row that was clicked
  • Undo covered GUI synth, sampler, automation, step-painting, and recorded audio edits, all of which previously bypassed it
  • Several panics: / in the synth editor once the mod matrix grew to 32 rows, a long piano-roll loop, the bottom of the GUI keyboard, command history stepped past its newest entry, and a multi-lane undo entry after a track delete
  • gui_panel_border = 'square' now reaches every non-musical GUI element; track rows, badges, chips, FX slots, meters, plots, and canvases were hardcoded to rounded corners
  • Both frontends title themselves <project> - wstudio; the GUI window said "wstudio GUI prototype" and the TUI set no title at all
  • macOS audio capture read the default output device rather than the default input one, and a Mac with no input device started a stream that never delivered audio

Known beta limits

  • Project-file backups are recommended while the .wsj format continues to evolve.
  • Surround buses, polyphonic modulation, plugin-requested restarts, and plugin-requested thread pools are not supported yet.
  • The minimum terminal size is 80x14.

Verify downloads with SHA256SUMS. Please use the bug form for reproducible problems and Discussions for questions or broader workflow feedback.

Full changelog: v1.0.0-beta.3...v1.0.0-beta.4

wstudio 1.0.0-beta.3

wstudio 1.0.0-beta.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Jul 20:08

Third beta of wstudio, a keyboard-centric DAW with a vim-modal terminal interface and a native GUI. The download archives include the curated four-track demo.wsj project.

Linux x86_64

The Linux build requires glibc and ALSA (libasound.so.2). Download and extract wstudio-linux-x86_64.tar.gz, then run:

cd wstudio-linux-x86_64
./wstudio demo.wsj          # TUI
./wstudio --gui demo.wsj    # GUI

PipeWire and JACK are supported natively alongside ALSA; wstudio picks the best available backend automatically (override with wstudio.o.audio_backend in init.lua).

Windows x86_64

Download and extract wstudio-windows-x86_64.zip, open PowerShell in the extracted directory, then run:

.\wstudio.exe demo.wsj
.\wstudio.exe --gui demo.wsj

Press space to start or stop playback. Run :help inside wstudio for the full keyboard reference.

What's new since beta.2

Recording & time

  • Record-arm (r) plus real audio-input recording (ALSA/WASAPI) for Sampler tracks, count-in gated
  • WSOLA time-stretch: new stretch_ratio Sampler pad parameter
  • Master bus phase-correlation meter and BS.1770-style LUFS/dBFS loudness metering

Mouse & GUI

  • Real scroll-wheel support in the GUI (previously none anywhere)
  • Drag-paint and right-click erase/delete across drum, slicer, piano roll, and arrangement
  • Clickable mute/solo/arm badges in the tracks view, plus a contrast-aware layout pass
  • GUI FX view fixes: selected-parameter highlighting, predictable control sizing, EQ band improvements
  • Fuzzy-match fix in the GUI picker, auto-scrolling file browser, popular built-in color schemes

Instrument & track editing

  • :track-instrument (and I in the tracks view) swaps a live track's instrument in place, preserving notes when representations match
  • Soundfont preset picker (f) with key-range and bank/program display
  • Track creation, restore, and instrument-kind changes are now undoable

Pattern editing commands

  • :quantize, :humanize (+ drum velocity jitter), :transpose, :legato, :vel-ramp, :reverse, :euclid/:rotate, :strum, :unmute/:unsolo, named Euclidean rhythm presets
  • Visual-mode transpose/slide/o/count-paste, J/K octave-drag on grabbed/stamped notes
  • Vim macros (q{a-z} record, [count]@{a-z}/@@ replay), backtick alternate jump, showcmd status chip, true hold-to-shape stamp via the kitty keyboard protocol, readline controls in prompts

Song/pattern mode

  • Tabbing back to tracks now correctly reverts song mode to pattern mode; T toggles it from the tracks view too, with a SONG/PATTERN badge

Lua API

  • Track management, transport, project lifecycle, and metadata-introspection APIs completed
  • Themes are now scriptable through Lua highlights; editor-context API added; session options expanded to Nix parity

CLAP & MIDI

  • CLAP effect parameters exposed in both frontends; host now services main-thread callbacks, parameter flushes, and dirty-state notifications
  • MIDI channel modes completed and documented; controller reset refreshed

Stability

  • A broad pass of undo/rollback ownership hardening (track create/restore/duplicate, instrument swap, rack retirement), overflow and capacity guards (MIDI timing, automation, command queue), and allocation-failure leak closures

Known beta limits

  • Project-file backups are recommended while the .wsj format continues to evolve.
  • Native CLAP plugin GUI windows, surround buses, polyphonic modulation, plugin-requested restarts, and plugin-requested thread pools are not supported yet.
  • The minimum terminal size is 80x14.

Verify downloads with SHA256SUMS. Please use the bug form for reproducible problems and Discussions for questions or broader workflow feedback.

Full changelog: v1.0.0-beta.2...v1.0.0-beta.3

wstudio 1.0.0-beta.2

wstudio 1.0.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Jul 18:00

Second beta of wstudio, a keyboard-centric DAW with a vim-modal terminal interface, now joined by a native GUI. The download archives include the curated four-track demo.wsj project.

Linux x86_64

The Linux build requires glibc and ALSA (libasound.so.2). Download and extract wstudio-linux-x86_64.tar.gz, then run:

cd wstudio-linux-x86_64
./wstudio demo.wsj          # TUI
./wstudio --gui demo.wsj    # GUI

PipeWire and JACK are now supported natively alongside ALSA; wstudio picks the best available backend automatically (override with wstudio.o.audio_backend in init.lua).

Windows x86_64

Download and extract wstudio-windows-x86_64.zip, open PowerShell in the extracted directory, then run:

.\wstudio.exe demo.wsj
.\wstudio.exe --gui demo.wsj

Press space to start or stop playback. Run :help inside wstudio for the full keyboard reference.

What's new since beta.1

  • Native GUI frontend (--gui), sharing the same project files and command set as the TUI
  • CLAP 1.2 plugin hosting: instruments and effects, external plugin discovery/picker, parameter automation, saved in the .wsj project
  • Native PipeWire and JACK playback backends (Linux was ALSA-only before)
  • SoundFont (.sf2) player instrument
  • Standard MIDI File import/export for piano-roll patterns
  • Factory preset library expanded to 100 presets
  • Arrangement, slicer, and drum-pattern editing refinements (clip cut/split, boundary hardening, chop/merge validation)

Known beta limits

  • Project-file backups are recommended while the .wsj format continues to evolve.
  • Native CLAP plugin GUI windows, surround buses, polyphonic modulation, and plugin-requested thread pools are not supported yet.
  • The minimum terminal size is 80x14.

Verify downloads with SHA256SUMS. Please use the bug form for reproducible problems and Discussions for questions or broader workflow feedback.

Full changelog: v1.0.0-beta.1...v1.0.0-beta.2

wstudio 1.0.0-beta.1

wstudio 1.0.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Jul 13:46

First public beta of wstudio, a keyboard-centric DAW with a vim-modal terminal interface. The download archives include the curated four-track demo.wsj project.

Linux x86_64

The Linux build requires glibc and ALSA (libasound.so.2). Download and extract wstudio-linux-x86_64.tar.gz, then run:

cd wstudio-linux-x86_64
./wstudio demo.wsj

PipeWire and PulseAudio desktop setups can use their ALSA default device.

Windows x86_64

Download and extract wstudio-windows-x86_64.zip, open PowerShell in the extracted directory, then run:

.\wstudio.exe demo.wsj

Press space to start or stop playback. Run :help inside wstudio for the full keyboard reference.

Known beta limits

  • Project-file backups are recommended while the format evolves.
  • Native PipeWire and JACK backends are not available yet.
  • Plugin hosting is not available yet.
  • The minimum terminal size is 80x14.

Verify downloads with SHA256SUMS. Please use the bug form for reproducible problems and Discussions for questions or broader workflow feedback.

Full changelog: https://github.com/zexk/wstudio/commits/v1.0.0-beta.1