This is a SwiftUI-based dynamic UI renderer for Faust DSP JSON metadata. It parses the Faust UI JSON structure and displays corresponding SwiftUI controls like sliders, toggles, buttons, bargraphs etc.
- β JSON-driven layout
- β
Live binding via
@ObservedObjectwith aFaustUIViewModel - β
Dynamic layout from
vgroup,hgroup,tgroupprimitives - π UI-to-DSP input controls (
hslider,vslider,checkbox,button...) - π DSP-to-UI output monitors (
hbargraph,vbargraph) - π Style metadata (
knob,menu,radio...) - β Load default values from JSON layout to ViewModel
let jsonData: Data = ... // Faust UI JSON from libfaust
let ui = try JSONDecoder().decode([FaustUI].self, from: jsonData)
FaustUIView(ui: ui, viewModel: FaustUIViewModel())| Type | Description | Implemented |
|---|---|---|
vgroup |
Vertical group | β |
hgroup |
Horizontal group | β |
tgroup |
Tabbed group | β |
hslider |
Horizontal slider | β |
vslider |
Vertical slider | β |
nentry |
Number entry box | β |
button |
Momentary push button | β |
checkbox |
Toggle button | β |
hbargraph |
Horizontal bargraph | β |
vbargraph |
Vertical bargraph | β |
| Style | Description | Implemented |
|---|---|---|
knob |
Rotary knob | β |
menu{...} |
Dropdown menu | β |
radio{...} |
Radio button menu | β |
led |
LED-style output | β |
numerical |
Numerical value display | β |
| Key | Description | Implemented |
|---|---|---|
style |
Widget style | β |
unit |
Display value unit | β |
scale |
Value scaling | β |
tooltip |
Tooltip | β |
hidden |
Hidden components | β |