Source code for harmonize.objects.filters.karaoke

from typing import overload

from harmonize.abstract import Filter

__all__ = (
    "Karaoke",
)


[docs] class Karaoke(Filter[dict[str, float]]): """ Represents a karaoke filter. Extended from :class:`harmonize.abstract.Filter` """ def __init__( self, level: float = 1.0, mono_level: float = 1.0, filter_band: float = 220.0, filter_width: float = 100.0 ) -> None: super().__init__({ 'level': level, 'monoLevel': mono_level, 'filterBand': filter_band, 'filterWidth': filter_width }) @overload def update(self, *, level: float) -> None: ... @overload def update(self, *, mono_level: float) -> None: ... @overload def update(self, *, filter_band: float) -> None: ... @overload def update(self, *, filter_width: float) -> None: ... @overload def update( self, *, level: float, mono_level: float ) -> None: ... @overload def update( self, *, level: float, filter_width: float ) -> None: ... @overload def update( self, *, level: float, filter_band: float ) -> None: ... @overload def update( self, *, mono_level: float, filter_width: float ) -> None: ... @overload def update( self, *, mono_level: float, filter_band: float ) -> None: ... @overload def update( self, *, filter_band: float, filter_width: float ) -> None: ... @overload def update( self, *, level: float, mono_level: float, filter_width: float ) -> None: ... @overload def update( self, *, level: float, mono_level: float, filter_band: float ) -> None: ... @overload def update( self, *, level: float, mono_level: float, filter_band: float, filter_width: float ) -> None: ...
[docs] def update(self, **kwargs) -> None: """ Update the values of the Karaoke filter object. Parameters ---------- **kwargs (dict): A dictionary containing the updated values for the filter. Returns ------- None """ if 'level' in kwargs: self.values['level'] = float(kwargs.pop('level')) if 'mono_level' in kwargs: self.values['monoLevel'] = float(kwargs.pop('mono_level')) if 'filter_band' in kwargs: self.values['filterBand'] = float(kwargs.pop('filter_band')) if 'filter_width' in kwargs: self.values['filterWidth'] = float(kwargs.pop('filter_width'))
[docs] def to_dict(self) -> dict[str, dict[str, float]]: """ Converts the Karaoke filter object to a dictionary. Returns ------- dict[str, dict[str, float]]: A dictionary containing the Karaoke filter values. """ return {'karaoke': self.values}