
markup.push({

LowPassFilterView: {
    "+": "GroupView",
    gxLayout: [
        "H:|-12-[cutoff]-12-|",
        "V:|-30-[cutoff]-16-|",

        "V:[cutoffLabel]-(-1)-[cutoff]&alignLeft",
        "V:[cutoffReadout]-(-1)-[cutoff]&alignRight",
    ],
    gxChildViews: {
        cutoff: {
            "+": "SliderView",
            gxValueKey: "nodeModel.cutoffFrequency",
            gxRangeMin: 50,
            gxRangeMax: 20000,
            gxKeystrokeStepSizeKeyPath: "nodeModel.stepSize",
            gxDefaultValue: 20000,
            axTitle: "Cutoff Frequency",
            axFormatter: "HertzFormatter",
        },
        cutoffLabel: labelView("Cutoff Frequency"),
        cutoffReadout: {
            "+": "ReadoutView",
            gxValueKey: "nodeModel.cutoffFrequency",
            gxFormatter: "HertzFormatter"
        }
    }
},

LowPassFilterPopover: {
    "+": "PopoverTemplate",
    gxTitle: "Low Pass Filter",
    axTitle: "Low Pass Filter",
    gxCanDrawSubviewsIntoLayer: true,
    gxWantsLayer: true,
    gxLayout: [ 
        "H:|-12-[self(284)]-12-|",
        "V:|-12-[self]-12-|",
        "V:|-41-[settingsContainer]-8-[presetsGroup]",
        "H:|-0-[settingsContainer]-0-|",
    ],
    gxChildViews:
    {
        title: "PopoverTitle",
        switch: "PopoverOnOffSwitch",
        presetsGroup: presetsGroup(),
        settingsContainer: {
            nsClass: "GXDrawView"
        }
    }
}

})
