/ Interface / ChucK VM Panel

Flexible Layouts . Integrated Docs
ChucK VM Panel . Workspace Panel
Code Editor . Graph Editor . Grid Editor
Live Coding with Strudel
Image Editor . SoundPlayer
Log Panel . Graphical Plots



Wherein we present the ChucK VM Panel interface.

This ChucK VM panel gives a view into and control over what's going on in ChucK's brain. You can have multiple VM Panels and each is associated with a ChucK session running on your computer.

A single panel is usually sufficient to "do ChucK".

ChucK Basics

The basics:

For more details check out ChucK docs.

Referring to the panel image above you can see the following:

In order for Fiddle to populate the ChucK VM Panel, it must ensure that a status-monitoring program is running in ChucK's brain. The Fiddle Runtime not only monitors ChucK VM activity but also implements the "Live" editing capabilities that make ChucK really hum.

VM Panel Operations

Stop

Probably the most common use of the VM Panel is to stop ChucK. The panel's Stop button has the effect of terminating all active shreds and shutting down ChucK entirely. As mentioned above, you can terminate individual shreds with its x button.

Clear

The Clear button is a subset of Stop in that it only terminates shreds that aren't part of the Fiddle Runtime.

Start

The Start button is used to start the Fiddle Runtime. This button is useful but not absolutely necessary since it is automatically "pressed" when you launch your ChucK program from the Code Editor or the Graph Editor. Since each VM Panel is associated with a single ChucK session, pressing Start repeatedly will have no effect, other than to print a notification to the Log Panel.

probe

The probe button is used to diagnose computer-specific configuration details of interest to ChucK and ChucK programmers. The button is seldom-used but convenient for debugging interesting behavior. The output of the probe command is delivered to the Log Panel and looks something like this (note: this is output on a Windows 10 computer).

The most common use for this output is to determine MIDI input and output device numbers and discussed here.

chuck --probe:
[chuck]: found 3 device(s) ...
[chuck]: ------( audio device: 1 )---------------
[chuck]: device name = "Default Device"
[chuck]: probe [success] ...
[chuck]: # output channels = 2
[chuck]: # input channels = 0
[chuck]: # duplex Channels = 0
[chuck]: default output = YES
[chuck]: default input = NO
[chuck]: natively supported data formats:
[chuck]: 8-bit int
[chuck]: 16-bit int
[chuck]: supported sample rates:
[chuck]: 4000 Hz
[chuck]: 5512 Hz
[chuck]: 8000 Hz
[chuck]: 9600 Hz
[chuck]: 11025 Hz
[chuck]: 16000 Hz
[chuck]: 22050 Hz
[chuck]: 32000 Hz
[chuck]: 44100 Hz
[chuck]: 48000 Hz
[chuck]: 88200 Hz
[chuck]: 96000 Hz
[chuck]: 176400 Hz
[chuck]: 192000 Hz
[chuck]:
[chuck]: ------( audio device: 2 )---------------
[chuck]: device name = "Speakers (Realtek(R) Audio)"
[chuck]: probe [success] ...
[chuck]: # output channels = 2
[chuck]: # input channels = 0
[chuck]: # duplex Channels = 0
[chuck]: default output = NO
[chuck]: default input = NO
[chuck]: natively supported data formats:
[chuck]: 8-bit int
[chuck]: 16-bit int
[chuck]: supported sample rates:
[chuck]: 4000 Hz
[chuck]: 5512 Hz
[chuck]: 8000 Hz
[chuck]: 9600 Hz
[chuck]: 11025 Hz
[chuck]: 16000 Hz
[chuck]: 22050 Hz
[chuck]: 32000 Hz
[chuck]: 44100 Hz
[chuck]: 48000 Hz
[chuck]: 88200 Hz
[chuck]: 96000 Hz
[chuck]: 176400 Hz
[chuck]: 192000 Hz
[chuck]:
[chuck]: ------( audio device: 3 )---------------
[chuck]: device name = "1 - C27F398 (AMD High Definition Audio Device)"
[chuck]: probe [success] ...
[chuck]: # output channels = 2
[chuck]: # input channels = 0
[chuck]: # duplex Channels = 0
[chuck]: default output = NO
[chuck]: default input = NO
[chuck]: natively supported data formats:
[chuck]: 8-bit int
[chuck]: 16-bit int
[chuck]: supported sample rates:
[chuck]: 4000 Hz
[chuck]: 5512 Hz
[chuck]: 8000 Hz
[chuck]: 9600 Hz
[chuck]: 11025 Hz
[chuck]: 16000 Hz
[chuck]: 22050 Hz
[chuck]: 32000 Hz
[chuck]: 44100 Hz
[chuck]: 48000 Hz
[chuck]: 88200 Hz
[chuck]: 96000 Hz
[chuck]: 176400 Hz
[chuck]: 192000 Hz
[chuck]:
[chuck]:
[chuck]: ------( chuck -- 1 MIDI inputs )------
[chuck]: [0] : "2- A-Series Keyboard"
[chuck]:
[chuck]: ------( chuck -- 3 MIDI outputs )-----
[chuck]: [0] : "Microsoft GS Wavetable Synth"
[chuck]: [1] : "2- A-Series Keyboard"
[chuck]: [2] : "2- A-Series Keyboard MIDI OUT"
[chuck]:
[chuck]: ------( chuck -- 1 mouse device )------
[chuck]: [0] : "Mouse"
[chuck]:
[chuck]: ------( chuck -- 1 keyboard device )------
[chuck]: [0] : "Keyboard"

vmoptions

This entry field allows to to specify launch-time parameters for ChucK. For example, you can request a particular audio driver by entering something like this:

--driver:ASIO

Here are the command-line options that ChucK accepts. Note that the otf capabilities are the domain of Fiddle and adding them to the launch commands may result in unpredictable behavior.

OSC port

This entry field allows you to override the default mechanism for selecting the OSC port used to communicate to ChuCk. When set to 0 the OSC port is determined dynamically and this allows you to have multiple ChucK VM's operating simultaneously. In some cases you may which to run other OSC control scripts to communicate with ChucK and in that case may wish to nominate a specific and consistent OSC port.

home .. topics .. interface .. reference .. examples .. tipjar