ctgui is a collection of graphical user interfaces (GUIs) written in Pure Data Lua (pd_lua), specially designed to complement the Pure Data version of conTorchionist. While originally developed for conTorchionist's machine learning audio processing workflows, ctgui also provides general-purpose GUI objects that can be used in any Pure Data patch.
ctgui bridges the gap between complex audio processing functionality and intuitive visual control. It provides both specialized interfaces for conTorchionist's audio analysis tools and general-purpose widgets that enhance the Pure Data patching experience.
- ctgui.amb.directivity: Visual control for ambisonic directivity patterns
- ctgui.specradar: Spectral radar visualization and control
- ctgui.vu: VU meter with visual feedback
- ctgui.vulabel: Labeled VU meter
- ctgui.vuscale: Scalable VU meter display
- ctgui.slider: Vertical or horizontal slider for continuous parameter control
- ctgui.rslider: Range slider for controlling minimum and maximum values simultaneously
- ctgui.play: Play/pause button with visual state indication
- ctgui.record: Record button with visual state indication
- ctgui.clock: Clock display for timing information
- ctgui.numbox: Number box for numerical input/output
ctgui/
├── doc/ # Documentation files
│ ├── ctgui.slider.md
│ ├── easings.md
│ └── pd_arg_parser_README.md
├── help/ # Help patches for each GUI object
│ ├── ctgui-help.pd
│ ├── ctgui.amb.directivity-help.pd
│ ├── ctgui.play-help.pd
│ ├── ctgui.rslider-help.pd
│ ├── ctgui.slider-help.pd
│ ├── ctgui.specradar-help.pd
│ └── ctgui.vu-help.pd
└── src/ # Source code
├── colors.lua # Color definitions
├── pd_arg_parser.lua # Argument parsing utility
└── *.pd_lua # GUI object implementations
- Pure Data 0.54 or later, OR
- PlugData (any recent version)
- pd-lua external (usually bundled with Pure Data/PlugData)
ctgui uses CMake for building and installation:
# Configure the project
cmake -B build
# Build (copies files to distribution directory)
cmake --build buildTo install ctgui to your Pure Data externals directory (~/Documents/Pd/externals/):
cmake --build build --target install-puredataThe ctgui objects will be installed to:
~/Documents/Pd/externals/ctgui/
To install ctgui to your PlugData externals directory (~/Documents/plugdata/Externals/):
cmake --build build --target install-plugdataThe ctgui objects will be installed to:
~/Documents/plugdata/Externals/ctgui/
To install to both Pure Data and PlugData simultaneously:
cmake --install buildAfter installation, you can use ctgui objects in your patches:
-
Create a new Pure Data patch
-
Add the ctgui directory to your search path (if not automatically detected):
- In Pure Data:
Preferences → Path → Add...→ Select the ctgui directory - In PlugData: Usually automatic if installed in the Externals directory
- In Pure Data:
-
Create objects by typing their names in object boxes:
[ctgui.slider] [ctgui.rslider] [ctgui.vu] [ctgui.play] -
Right-click on any ctgui object and select Help to open its help patch with usage examples
ctgui was specifically designed to work seamlessly with conTorchionist's Pure Data externals:
- ctgui.specradar provides visual control for spectral trail analysis
- ctgui.amb.directivity controls ambisonics spatial directivity patterns
- ctgui.vu displays audio level meters for monitoring conTorchionist's audio processing
Example patch using ctgui with conTorchionist:
[adc~]
|
[torch.amb.spectrails~]
|
[ctgui.specradar]
Detailed documentation for each object can be found in:
- Help patches:
help/*.pd- Interactive examples for each GUI object - Documentation files:
doc/*.md- Technical documentation and implementation details
All ctgui objects use the shared colors.lua module, which defines a consistent color palette. You can customize the appearance by editing the color definitions in src/colors.lua.
ctgui is written in Lua using the pd-lua framework, which allows for rapid prototyping and easy customization. Each GUI object is a standalone .pd_lua file that can be modified independently.
- pd_arg_parser.lua: A helper module for parsing Pure Data object arguments consistently across all ctgui objects
- Pure Data by Miller Puckette
- pd-lua by Claude Heiland-Allen and contributors
- conTorchionist audio processing framework
Note: ctgui objects require pd-lua to be installed and working in your Pure Data or PlugData environment. If objects don't load, ensure pd-lua is properly installed.