# {py:mod}`simvx.core.audio_effect` ```{py:module} simvx.core.audio_effect ``` ```{autodoc2-docstring} simvx.core.audio_effect :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`AudioEffect ` - ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect :summary: ``` * - {py:obj}`GainEffect ` - ```{autodoc2-docstring} simvx.core.audio_effect.GainEffect :summary: ``` * - {py:obj}`LowPassFilter ` - ```{autodoc2-docstring} simvx.core.audio_effect.LowPassFilter :summary: ``` * - {py:obj}`HighPassFilter ` - ```{autodoc2-docstring} simvx.core.audio_effect.HighPassFilter :summary: ``` * - {py:obj}`BandPassFilter ` - ```{autodoc2-docstring} simvx.core.audio_effect.BandPassFilter :summary: ``` * - {py:obj}`NotchFilter ` - ```{autodoc2-docstring} simvx.core.audio_effect.NotchFilter :summary: ``` * - {py:obj}`DelayEffect ` - ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect :summary: ``` * - {py:obj}`ReverbEffect ` - ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect :summary: ``` * - {py:obj}`EQBand ` - ```{autodoc2-docstring} simvx.core.audio_effect.EQBand :summary: ``` * - {py:obj}`ParametricEQ ` - ```{autodoc2-docstring} simvx.core.audio_effect.ParametricEQ :summary: ``` * - {py:obj}`SoftClipEffect ` - ```{autodoc2-docstring} simvx.core.audio_effect.SoftClipEffect :summary: ``` * - {py:obj}`CompressorEffect ` - ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.audio_effect.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.audio_effect.__all__ :value: > ['AudioEffect', 'GainEffect', 'LowPassFilter', 'HighPassFilter', 'BandPassFilter', 'NotchFilter', 'D... ```{autodoc2-docstring} simvx.core.audio_effect.__all__ ``` ```` `````{py:class} AudioEffect(*, enabled: bool = True) :canonical: simvx.core.audio_effect.AudioEffect ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.AudioEffect.required_capability :type: typing.ClassVar[simvx.core.audio_protocol.Capability | None] :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect.required_capability ``` ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.AudioEffect.__init_subclass__ :classmethod: ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect.__init_subclass__ ``` ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.AudioEffect.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.AudioEffect.get_property_values ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect.get_property_values ``` ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.AudioEffect.effect_type :type: str ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect.effect_type ``` ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.AudioEffect.to_dict ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect.to_dict ``` ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.AudioEffect.from_dict :classmethod: ```{autodoc2-docstring} simvx.core.audio_effect.AudioEffect.from_dict ``` ```` ````` `````{py:class} GainEffect(*, volume_db: float = 0.0, enabled: bool = True) :canonical: simvx.core.audio_effect.GainEffect Bases: {py:obj}`simvx.core.audio_effect.AudioEffect` ```{autodoc2-docstring} simvx.core.audio_effect.GainEffect ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.GainEffect.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.GainEffect.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.GainEffect.required_capability ``` ```` ````{py:attribute} volume_db :canonical: simvx.core.audio_effect.GainEffect.volume_db :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.GainEffect.volume_db ``` ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.GainEffect.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.GainEffect.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.GainEffect.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.GainEffect.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.GainEffect.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.GainEffect.from_dict :classmethod: ```` ````` `````{py:class} LowPassFilter(*, cutoff_hz: float = 1000.0, q: float = 0.707, enabled: bool = True) :canonical: simvx.core.audio_effect.LowPassFilter Bases: {py:obj}`simvx.core.audio_effect._BiquadEffect` ```{autodoc2-docstring} simvx.core.audio_effect.LowPassFilter ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.LowPassFilter.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.LowPassFilter.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.LowPassFilter.required_capability ``` ```` ````{py:attribute} cutoff_hz :canonical: simvx.core.audio_effect.LowPassFilter.cutoff_hz :value: > 'Property(...)' ```` ````{py:attribute} q :canonical: simvx.core.audio_effect.LowPassFilter.q :value: > 'Property(...)' ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.LowPassFilter.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.LowPassFilter.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.LowPassFilter.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.LowPassFilter.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.LowPassFilter.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.LowPassFilter.from_dict :classmethod: ```` ````` `````{py:class} HighPassFilter(*, cutoff_hz: float = 1000.0, q: float = 0.707, enabled: bool = True) :canonical: simvx.core.audio_effect.HighPassFilter Bases: {py:obj}`simvx.core.audio_effect._BiquadEffect` ```{autodoc2-docstring} simvx.core.audio_effect.HighPassFilter ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.HighPassFilter.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.HighPassFilter.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.HighPassFilter.required_capability ``` ```` ````{py:attribute} cutoff_hz :canonical: simvx.core.audio_effect.HighPassFilter.cutoff_hz :value: > 'Property(...)' ```` ````{py:attribute} q :canonical: simvx.core.audio_effect.HighPassFilter.q :value: > 'Property(...)' ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.HighPassFilter.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.HighPassFilter.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.HighPassFilter.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.HighPassFilter.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.HighPassFilter.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.HighPassFilter.from_dict :classmethod: ```` ````` `````{py:class} BandPassFilter(*, cutoff_hz: float = 1000.0, q: float = 0.707, enabled: bool = True) :canonical: simvx.core.audio_effect.BandPassFilter Bases: {py:obj}`simvx.core.audio_effect._BiquadEffect` ```{autodoc2-docstring} simvx.core.audio_effect.BandPassFilter ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.BandPassFilter.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.BandPassFilter.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.BandPassFilter.required_capability ``` ```` ````{py:attribute} cutoff_hz :canonical: simvx.core.audio_effect.BandPassFilter.cutoff_hz :value: > 'Property(...)' ```` ````{py:attribute} q :canonical: simvx.core.audio_effect.BandPassFilter.q :value: > 'Property(...)' ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.BandPassFilter.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.BandPassFilter.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.BandPassFilter.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.BandPassFilter.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.BandPassFilter.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.BandPassFilter.from_dict :classmethod: ```` ````` `````{py:class} NotchFilter(*, cutoff_hz: float = 1000.0, q: float = 0.707, enabled: bool = True) :canonical: simvx.core.audio_effect.NotchFilter Bases: {py:obj}`simvx.core.audio_effect._BiquadEffect` ```{autodoc2-docstring} simvx.core.audio_effect.NotchFilter ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.NotchFilter.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.NotchFilter.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.NotchFilter.required_capability ``` ```` ````{py:attribute} cutoff_hz :canonical: simvx.core.audio_effect.NotchFilter.cutoff_hz :value: > 'Property(...)' ```` ````{py:attribute} q :canonical: simvx.core.audio_effect.NotchFilter.q :value: > 'Property(...)' ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.NotchFilter.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.NotchFilter.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.NotchFilter.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.NotchFilter.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.NotchFilter.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.NotchFilter.from_dict :classmethod: ```` ````` `````{py:class} DelayEffect(*, time_seconds: float = 0.25, feedback: float = 0.4, wet: float = 0.5, dry: float = 0.5, enabled: bool = True) :canonical: simvx.core.audio_effect.DelayEffect Bases: {py:obj}`simvx.core.audio_effect.AudioEffect` ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.DelayEffect.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect.required_capability ``` ```` ````{py:attribute} time_seconds :canonical: simvx.core.audio_effect.DelayEffect.time_seconds :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect.time_seconds ``` ```` ````{py:attribute} feedback :canonical: simvx.core.audio_effect.DelayEffect.feedback :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect.feedback ``` ```` ````{py:attribute} wet :canonical: simvx.core.audio_effect.DelayEffect.wet :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect.wet ``` ```` ````{py:attribute} dry :canonical: simvx.core.audio_effect.DelayEffect.dry :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.DelayEffect.dry ``` ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.DelayEffect.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.DelayEffect.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.DelayEffect.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.DelayEffect.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.DelayEffect.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.DelayEffect.from_dict :classmethod: ```` ````` `````{py:class} ReverbEffect(*, room_size: float = 0.5, damping: float = 0.5, wet: float = 0.3, dry: float = 0.7, width: float = 1.0, freeze: bool = False, enabled: bool = True) :canonical: simvx.core.audio_effect.ReverbEffect Bases: {py:obj}`simvx.core.audio_effect.AudioEffect` ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.ReverbEffect.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.required_capability ``` ```` ````{py:attribute} room_size :canonical: simvx.core.audio_effect.ReverbEffect.room_size :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.room_size ``` ```` ````{py:attribute} damping :canonical: simvx.core.audio_effect.ReverbEffect.damping :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.damping ``` ```` ````{py:attribute} wet :canonical: simvx.core.audio_effect.ReverbEffect.wet :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.wet ``` ```` ````{py:attribute} dry :canonical: simvx.core.audio_effect.ReverbEffect.dry :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.dry ``` ```` ````{py:attribute} width :canonical: simvx.core.audio_effect.ReverbEffect.width :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.width ``` ```` ````{py:attribute} freeze :canonical: simvx.core.audio_effect.ReverbEffect.freeze :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.ReverbEffect.freeze ``` ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.ReverbEffect.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.ReverbEffect.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.ReverbEffect.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.ReverbEffect.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.ReverbEffect.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.ReverbEffect.from_dict :classmethod: ```` ````` `````{py:class} EQBand :canonical: simvx.core.audio_effect.EQBand ```{autodoc2-docstring} simvx.core.audio_effect.EQBand ``` ````{py:attribute} type :canonical: simvx.core.audio_effect.EQBand.type :type: str :value: > 'peaking' ```{autodoc2-docstring} simvx.core.audio_effect.EQBand.type ``` ```` ````{py:attribute} freq :canonical: simvx.core.audio_effect.EQBand.freq :type: float :value: > 1000.0 ```{autodoc2-docstring} simvx.core.audio_effect.EQBand.freq ``` ```` ````{py:attribute} q :canonical: simvx.core.audio_effect.EQBand.q :type: float :value: > 1.0 ```{autodoc2-docstring} simvx.core.audio_effect.EQBand.q ``` ```` ````{py:attribute} gain_db :canonical: simvx.core.audio_effect.EQBand.gain_db :type: float :value: > 0.0 ```{autodoc2-docstring} simvx.core.audio_effect.EQBand.gain_db ``` ```` ````` `````{py:class} ParametricEQ(*, bands: list[simvx.core.audio_effect.EQBand] | None = None, enabled: bool = True) :canonical: simvx.core.audio_effect.ParametricEQ Bases: {py:obj}`simvx.core.audio_effect.AudioEffect` ```{autodoc2-docstring} simvx.core.audio_effect.ParametricEQ ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.ParametricEQ.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.ParametricEQ.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.ParametricEQ.required_capability ``` ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.ParametricEQ.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.ParametricEQ.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.ParametricEQ :canonical: simvx.core.audio_effect.ParametricEQ.from_dict :classmethod: ```{autodoc2-docstring} simvx.core.audio_effect.ParametricEQ.from_dict ``` ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.ParametricEQ.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.ParametricEQ.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.ParametricEQ.get_property_values ```` ````` `````{py:class} SoftClipEffect(*, drive: float = 2.0, output_gain: float = 1.0, enabled: bool = True) :canonical: simvx.core.audio_effect.SoftClipEffect Bases: {py:obj}`simvx.core.audio_effect.AudioEffect` ```{autodoc2-docstring} simvx.core.audio_effect.SoftClipEffect ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.SoftClipEffect.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.SoftClipEffect.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.SoftClipEffect.required_capability ``` ```` ````{py:attribute} drive :canonical: simvx.core.audio_effect.SoftClipEffect.drive :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.SoftClipEffect.drive ``` ```` ````{py:attribute} output_gain :canonical: simvx.core.audio_effect.SoftClipEffect.output_gain :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.SoftClipEffect.output_gain ``` ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.SoftClipEffect.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.SoftClipEffect.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.SoftClipEffect.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.SoftClipEffect.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.SoftClipEffect.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.SoftClipEffect.from_dict :classmethod: ```` ````` `````{py:class} CompressorEffect(*, threshold_db: float = -24.0, ratio: float = 4.0, attack_ms: float = 5.0, release_ms: float = 100.0, knee_db: float = 6.0, makeup_db: float = 0.0, enabled: bool = True) :canonical: simvx.core.audio_effect.CompressorEffect Bases: {py:obj}`simvx.core.audio_effect.AudioEffect` ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.__init__ ``` ````{py:attribute} required_capability :canonical: simvx.core.audio_effect.CompressorEffect.required_capability :value: > None ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.required_capability ``` ```` ````{py:attribute} threshold_db :canonical: simvx.core.audio_effect.CompressorEffect.threshold_db :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.threshold_db ``` ```` ````{py:attribute} ratio :canonical: simvx.core.audio_effect.CompressorEffect.ratio :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.ratio ``` ```` ````{py:attribute} attack_ms :canonical: simvx.core.audio_effect.CompressorEffect.attack_ms :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.attack_ms ``` ```` ````{py:attribute} release_ms :canonical: simvx.core.audio_effect.CompressorEffect.release_ms :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.release_ms ``` ```` ````{py:attribute} knee_db :canonical: simvx.core.audio_effect.CompressorEffect.knee_db :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.knee_db ``` ```` ````{py:attribute} makeup_db :canonical: simvx.core.audio_effect.CompressorEffect.makeup_db :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.audio_effect.CompressorEffect.makeup_db ``` ```` ````{py:method} __init_subclass__(**kwargs: typing.Any) -> None :canonical: simvx.core.audio_effect.CompressorEffect.__init_subclass__ :classmethod: ```` ````{py:method} __repr__() -> str :canonical: simvx.core.audio_effect.CompressorEffect.__repr__ ```` ````{py:method} get_property_values() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.CompressorEffect.get_property_values ```` ````{py:property} effect_type :canonical: simvx.core.audio_effect.CompressorEffect.effect_type :type: str ```` ````{py:method} to_dict() -> dict[str, typing.Any] :canonical: simvx.core.audio_effect.CompressorEffect.to_dict ```` ````{py:method} from_dict(data: dict[str, typing.Any]) -> simvx.core.audio_effect.AudioEffect :canonical: simvx.core.audio_effect.CompressorEffect.from_dict :classmethod: ```` `````