The script I wrote seems to work fine on my end.
I took yours and made some adjustments:
You only need to declare the shape array once, then you can reuse it.
The error that was thrown was an undeclared function – setParameterOfZones() –
I tried this out and it worked:
If it doesn’t work on your side, you might have to check your program structure and parameter connections.
Your filter shape menus from the macro page should be connected to the script parameters and not the zone parameters for example.
filterShapes={
{name="LP24", index=0},
{name="LP12", index=2},
{name="BP12", index=4},
{name="BP24", index=5},
{name="HP24", index=10},
{name="HP12", index=12},
}
function getFilterShapeNames()
filterShapeNames={}
for i=1,#filterShapes do
filterShapeNames[i]=filterShapes[i].name
end
end
getFilterShapeNames()
last = {}
function filterShapeChanged()
this:setParameter('FilterShapeOSCs', FilterShape)
this:setParameter('FilterShapeWA', FilterShape)
end
defineParameter("FilterShape",nil,1,filterShapeNames,filterShapeChanged)
function filterShapeOSCsChanged()
this.parent:getZone("Synth Zone"):setParameter("Filter.ShapeA",filterShapes[FilterShapeOSCs].index)
end
defineParameter("FilterShapeOSCs",nil,1,filterShapeNames,filterShapeOSCsChanged)
function filterShapeWAChanged()
this.parent:getZone("Wavetable"):setParameter("Filter.ShapeA",filterShapes[FilterShapeWA].index)
end
defineParameter("FilterShapeWA",nil,1,filterShapeNames,filterShapeWAChanged)