{
builders: [PatchController.Builder],
pages: PatchController.PageSetup,
gridLayout: [PatchController.Constraint.Row],
prefix?: PatchController.Prefix,
effects?: [PatchController.Effect]
}try .paged(prefix: $0.xq("prefix"), color: nil, border: nil, $0.x("builders"), effects: $0.xq("effects") ?? [], layout: [.grid($0.arr("gridLayout").xformArr(Constraint.gridRowRules))], pages: $0.x("pages")) }),
{
pages: PatchController.PageSetup,
builders: [PatchController.Builder],
prefix?: PatchController.Prefix,
effects?: [PatchController.Effect],
layout?: [PatchController.Constraint]
}try .paged(prefix: $0.xq("prefix"), color: nil, border: nil, $0.x("builders"), effects: $0.xq("effects") ?? [], layout: $0.xq("layout") ?? [], pages: $0.x("pages")) }),
let obj = try $0.obj(4) return try .index($0.x(1), label: $0.x(2), $0.fn(3), color: obj.xq("color"), border: obj.xq("border"), obj.x("builders"), effects: obj.xq("effects") ?? [], layout: obj.xq("layout") ?? []) }),
["palettes", PatchController, Int, SynthPath, String, String]try .palettes($0.x(1), $0.x(2), $0.x(3), $0.x(4), pasteType: $0.x(5), effects: []) }),
{
builders: [PatchController.Builder],
prefix?: PatchController.Prefix,
color?: Int,
border?: Int,
effects?: [PatchController.Effect],
gridLayout: [PatchController.Constraint.Row]
}try .patch(prefix: $0.xq("prefix"), color: $0.xq("color"), border: $0.xq("border"), $0.x("builders"), effects: $0.xq("effects") ?? [], layout: [.grid($0.arr("gridLayout").xformArr(Constraint.gridRowRules))]) }),
{
builders: [PatchController.Builder],
simpleGridLayout: [PatchController.Constraint.Item],
prefix?: PatchController.Prefix,
color?: Int,
border?: Int,
effects?: [PatchController.Effect]
}try .patch(prefix: $0.xq("prefix"), color: $0.xq("color"), border: $0.xq("border"), $0.x("builders"), effects: $0.xq("effects") ?? [], layout: [.simpleGrid(try $0.x("simpleGridLayout"))]) }),
{
gridBuilder: [PatchController.PanelItem],
prefix?: PatchController.Prefix,
color?: Int,
border?: Int,
effects?: [PatchController.Effect],
layout?: [PatchController.Constraint]
}try .patch(prefix: $0.xq("prefix"), color: $0.xq("color"), border: $0.xq("border"), [.grid($0.x("gridBuilder"))], effects: $0.xq("effects") ?? [], layout: $0.xq("layout") ?? []) }),
{
builders: [PatchController.Builder],
prefix?: PatchController.Prefix,
color?: Int,
border?: Int,
effects?: [PatchController.Effect],
layout?: [PatchController.Constraint]
}try .patch(prefix: $0.xq("prefix"), color: $0.xq("color"), border: $0.xq("border"), $0.x("builders"), effects: $0.xq("effects") ?? [], layout: $0.xq("layout") ?? []) }),
["fm", [DXAlgorithm], PatchController, Object]Create a controller with an FM algorithm visualization component. Pass an array of DXAlgorithm that define the structure of each of the algorithms offered by the synth. The passed PatchController will be created multiple times, one for each operator in the algorithms. The final Object is for configuration (TODO).
["fmFn", [DXAlgorithm], Function, Object]Same as the previous rule, except a Function is passed in place of a PatchController. The Function will be called once with each index value of each operator (0 up to the number of operators minus 1), and the Function should return a PatchController.
["oneRow", Int, PatchController, Function?]return try .oneRow($0.x(1), child: $0.x(2), indexMap: $0.fnq(3)) }),