Source code for voicebox.effects.pedalboard

__all__ = [
    "PedalboardEffect",
    "pedalboard_effects",
]

from dataclasses import dataclass
from typing import Sequence

import pedalboard

from voicebox.audio import Audio
from voicebox.effects.effect import Effect


[docs] @dataclass class PedalboardEffect(Effect): """ Wrapper around Pedalboard library plugins from Spotify. See the Pedalboard library documentation for the full list of plugins: https://spotify.github.io/pedalboard/reference/pedalboard.html Example: >>> from voicebox.effects import PedalboardEffect >>> import pedalboard >>> effects = [ >>> ..., >>> PedalboardEffect(pedalboard.Reverb()), >>> ] """ plugin: pedalboard.Plugin
[docs] def apply(self, audio: Audio) -> Audio: audio.signal = self.plugin.process(audio.signal, audio.sample_rate, reset=True) return audio
[docs] def pedalboard_effects( *effects: pedalboard.Plugin, ) -> Sequence[PedalboardEffect]: """ Creates a sequence of PedalboardEffect objects from Pedalboard plugins. Example: >>> from voicebox.effects import pedalboard_effects >>> import pedalboard >>> effects = pedalboard_effects( >>> pedalboard.Distortion(), >>> pedalboard.Reverb(), >>> ) """ return [PedalboardEffect(plugin) for plugin in effects]