Skip to content

2026

v7.2: New Widgets

CsoundQt 7.2 brings a set of long-requested widget features: a brand new waveform widget, a scope that can display any Csound audio signal, and flat, fully themeable buttons. (Animating widgets from Csound with outvalue will be the subject of a separate post.)

Waveform widget

The new waveform widget draws the samples of a Csound f-table directly in the widget panel, so you can see exactly what a table (or a soundfile loaded into one) looks like while you work, zoom, pan, set a playback cursor, etc.

  • The f-table number is sent to the widget's channel; a second, string channel carries the cursor position (readable and writable from the orchestra).
  • Multichannel tables are drawn as one lane per channel, sharing a common time axis.
  • The mouse wheel zooms, Shift+wheel scrolls, and Ctrl+drag pans. The view follows the cursor when it moves out of sight.
  • The table is copied before the Csound instance is destroyed, so the waveform stays visible after the performance stops.
  • Try it with the updated example C Widgets/Waveform_Widget.csd.

Scope: monitor any audio channel

Until now a scope could only show what Csound sends to its audio outputs. The scope now has a second channel that names a Csound audio channel, making it easy to probe any signal, even if this signal is not sent to csound's outputs

instr 1
  asig oscils 0.8, 220, 0
  chnset asig, "scopechan"   ; publish the signal on an audio channel
endin

Set the scope's Audio Channel to scopechan and it will display that signal. All the usual scope options — zoom, trigger and display type — apply to monitored channels as well.

Scope widget monitoring a named audio channel

Flat buttons

Buttons can now opt into a flat style that is drawn by CsoundQt itself instead of the native platform widget. The result looks identical on every platform and is fully configurable: background colour, pressed background, text and pressed-text colours, border colour, border width and corner radius. Pushed colours default to the normal colours when left unset.

Enable Flat in a button's properties to try it — the updated C Widgets/Button_Widget.csd example now includes flat and flat-latched buttons.

Getting CsoundQt 7.2

Download the latest binaries from the releases page (AppImage, Flatpak, macOS .dmg and the Windows installer). The complete changelog is in the v7.2.0 release notes.

v7.2: Animating Widgets from Csound

Widgets are not only a way for Csound to receive input — they can also be driven and animated from the orchestra. Any widget property can be changed at runtime with a property message:

outvalue "<channel>/<property>", <value>

A property message never changes a widget's value, so you can move, resize, recolour or relabel a widget while it keeps controlling its Csound channel.

How it works

Send messages at a display rate (for example from a metro(30) block, as in the example) rather than every k-cycle. Both numbers and strings are supported:

; colour: a hex string
Scol = sprintfk("#%02x%02x%02x", 127+120*sin(kt*0.8), 90, 200)
outvalue "cutoff/color", Scol

; position: integers
outvalue "mover/x", int(kx)
outvalue "mover/y", int(ky)

; size, visibility, text ...
outvalue "meter/width", 240
outvalue "pulse/visible", (int(kt*1.5) % 2)
outvalue "pulse/text", sprintfk("t = %4.1f s", kt)

The channel name is the widget's channel (the one it already uses to talk to Csound)

Discovering the properties

Every widget's Properties dialog has a Show Properties button which lists all the properties that can be addressed, with a filter box for long lists:

A widget's Properties dialog with the Show Properties list, showing the property names that can be set from Csound

Example

The example C Widgets/Widget_Animation.csd animates colours, position, width, visibility and text from instrument 99, on top of a small synth whose amp slider and cutoff knob still work normally. Open it from the Examples → CsoundQt → C Widgets menu.

See the source: https://github.com/CsoundQt/CsoundQt/blob/csoundqt7/src/Examples/CsoundQt/C%20Widgets/Widget_Animation.csd

Getting CsoundQt 7.2

Download the latest binaries from the releases page (AppImage, Flatpak, macOS .dmg and the Windows installer). The complete changelog is in the v7.2.0 release notes.