def filter(input):
    import numpy as np
    output = np.zeros(input.shape, dtype=np.float64)

    infilter = DoubleInPointerFilter(input, False)
    infilter.input_sampling_rate = sample_rate

    powerfilter = DoublePowerFilter(1)
    powerfilter.input_sampling_rate = sample_rate
    powerfilter.set_input_port(0, infilter, 0)
    powerfilter.memory = np.exp(-1 / (sample_rate * 1e-3))

    attackreleasefilter = DoubleAttackReleaseFilter(1)
    attackreleasefilter.input_sampling_rate = sample_rate
    attackreleasefilter.set_input_port(0, powerfilter, 0)
    attackreleasefilter.attack = np.exp(-1 / (sample_rate * 1e-3))
    attackreleasefilter.release = np.exp(-1 / (sample_rate * 100e-3))

    gainfilter = DoubleGainCompressorFilter(1)
    gainfilter.input_sampling_rate = sample_rate
    gainfilter.set_input_port(0, attackreleasefilter, 0)
    gainfilter.threshold = 0.5
    gainfilter.ratio = 4
    gainfilter.softness = 1

    applygainfilter = DoubleApplyGainFilter(1)
    applygainfilter.input_sampling_rate = sample_rate
    applygainfilter.set_input_port(0, gainfilter, 0)
    applygainfilter.set_input_port(1, infilter, 0)

    outfilter = DoubleOutPointerFilter(output, False)
    outfilter.input_sampling_rate = sample_rate
    outfilter.set_input_port(0, applygainfilter, 0)
    outfilter.process(input.shape[1])

    return output
Exemplo n.º 2
0
def filter(input):
  import numpy as np
  output = np.zeros(input.shape, dtype=np.float64)

  infilter = DoubleInPointerFilter(input, False)
  infilter.set_input_sampling_rate(sample_rate)

  powerfilter = DoublePowerFilter(1)
  powerfilter.set_input_sampling_rate(sample_rate)
  powerfilter.set_input_port(0, infilter, 0)
  powerfilter.set_memory(0)

  attackreleasefilter = DoubleAttackReleaseFilter(1)
  attackreleasefilter.set_input_sampling_rate(sample_rate)
  attackreleasefilter.set_input_port(0, powerfilter, 0)
  attackreleasefilter.set_attack(0)
  attackreleasefilter.set_release(np.exp(-1/(sample_rate*10e-3)))

  gainfilter = DoubleGainCompressorFilter(1)
  gainfilter.set_input_sampling_rate(sample_rate)
  gainfilter.set_input_port(0, attackreleasefilter, 0)
  gainfilter.set_threshold(0.0099)
  gainfilter.set_ratio(10000)
  gainfilter.set_softness(1)

  applygainfilter = DoubleApplyGainFilter(1)
  applygainfilter.set_input_sampling_rate(sample_rate)
  applygainfilter.set_input_port(0, gainfilter, 0)
  applygainfilter.set_input_port(1, infilter, 0)

  outfilter = DoubleOutPointerFilter(output, False)
  outfilter.set_input_sampling_rate(sample_rate)
  outfilter.set_input_port(0, applygainfilter, 0)
  outfilter.process(input.shape[1])

  return output
Exemplo n.º 3
0
data = data.reshape(-1, 1)
infilter = Int16InPointerFilter(data, True)
infilter.set_output_sampling_rate(sampling_rate)

hffilter = DoubleButterworthBandPassFilter()
hffilter.set_input_sampling_rate(sampling_rate)
hffilter.set_cut_frequencies(1000, 5000)
hffilter.set_order(5)
hffilter.set_input_port(0, infilter, 0)

derivativefilter = DoubleDerivativeFilter()
derivativefilter.set_input_sampling_rate(sampling_rate)
derivativefilter.set_input_port(0, hffilter, 0)

powerfilter = DoublePowerFilter(1)
powerfilter.set_input_sampling_rate(sampling_rate)
powerfilter.set_input_port(0, derivativefilter, 0)
powerfilter.set_memory(np.exp(-1 / (sampling_rate * 1e-3)))

fastattackreleasefilter = DoubleAttackReleaseFilter(1)
fastattackreleasefilter.set_input_sampling_rate(sampling_rate)
fastattackreleasefilter.set_input_port(0, powerfilter, 0)
fastattackreleasefilter.set_attack(np.exp(-1 / (sampling_rate * 1e-3)))
fastattackreleasefilter.set_release(np.exp(-1 / (sampling_rate * 50.e-3)))

slowattackreleasefilter = DoubleAttackReleaseFilter(1)
slowattackreleasefilter.set_input_sampling_rate(sampling_rate)
slowattackreleasefilter.set_input_port(0, powerfilter, 0)
slowattackreleasefilter.set_attack(np.exp(-1 / (sampling_rate * 5e-3)))
slowattackreleasefilter.set_release(np.exp(-1 / (sampling_rate * 50.e-3)))