Examples¶
See the repo for some examples.
Here is a nice saturator, for example (9_saturator.py in the repo):
# Use pitch wheel to control saturation level
import torch
import pyphonic
# This adds oomph to EDM drums
# DEW_POINT = 0.9
# SHIFT = 0
# FOLDBACK_POINT = 0.8
# COMP_GAIN = 1.1
# This is a Brit guitar amp
DEW_POINT = 0.1
SHIFT = 0.005
FOLDBACK_POINT = 0.8
COMP_GAIN = 3.0
modified_dew_point = DEW_POINT
def process_torch(midi, audio):
global modified_dew_point
for cc in midi:
if cc.type == "pitch_wheel_change":
modified_dew_point = DEW_POINT * ((cc.velocity + 127) / 127)
print(modified_dew_point)
audio[audio < DEW_POINT * audio.min()] = DEW_POINT * audio.min() + SHIFT
audio[audio > DEW_POINT * audio.max()] = DEW_POINT * audio.max() + SHIFT
audio[audio > FOLDBACK_POINT] = FOLDBACK_POINT - audio[audio > FOLDBACK_POINT]
audio[audio < -FOLDBACK_POINT] = -FOLDBACK_POINT + -audio[audio < -FOLDBACK_POINT]
return midi, audio * COMP_GAIN