История изменений
Исправление
ChekPuk,
(текущая версия)
:
А тем временем я натыкал поразительный эффект, которого не ожидал. Как такое может быть?
Речь о павердраме, эффекте, который добавляет «пщщщщ» сольникам.
В петле комбфильтра сделал фильтр на smooth. Просто, но эффективно подавляет нежелательные бумчики и выделяет «ссс» :) Но этого мне показалось мало и я решил сделать смешивание смута зависимым от задержки комбфильтра. (Привожу код очищенный от остального, чтобы не мешал)
declare name "Powerdrum";
declare version "0.001";
declare author "Chelobaka";
declare description "based on freeverb params";
import("stdfaust.lib");
origSR = 44100;
mixx = hslider("Mix",1,0,2,0.001);
rever = _ <: par(i,8,lbcf(combtuningL(i)+spread,fb1,damp,i))
:> seq(i,4,fi.allpass_comb(1024, allpasstuningL(i)+spread, -fb2))
with{
spread = hslider("spread",0,0,1,0.0001);
fb1=hslider("lpc",0,0,1,0.0001);
damp=hslider("lpd",0,0,1,0.0001);
fb2=hslider("hpc",0,0,1,0.0001);
smooth(t) = _<: si.smooth(0.6896)*st,_: -: *(st)
with {
at = 1617/t;
sm = hslider("Smoothness",0,0,1,0.0001);
st = hslider("gain",1,0,2,0.001)*at;
};
// Filters parameters
combtuningL(0) = 1116;
combtuningL(1) = 1188;
combtuningL(2) = 1277;
combtuningL(3) = 1356;
combtuningL(4) = 1422;
combtuningL(5) = 1491;
combtuningL(6) = 1557;
combtuningL(7) = 1617;
allpasstuningL(0) = 556*ma.SR/origSR : int;
allpasstuningL(1) = 441*ma.SR/origSR : int;
allpasstuningL(2) = 341*ma.SR/origSR : int;
allpasstuningL(3) = 225*ma.SR/origSR : int;
// Lowpass Feedback Combfiler:
lbcf(dt, fb, damp, i) = (+: smooth(dt): @(tm)) ~ (*(1-damp) : (+ ~ *(damp)) : *(fb))
with {
tm = dt*ma.SR/origSR: int;
};
};
process = _<: rever,*(mixx):- ;
Параметры работающего эффекта примерно такие: mix 1, gain 1, lpd 0.7-1, остальные в ноль.
Это моноэффект (вроде как?). Так вот, на моём пробном наборе сольников всё работает как надо, но если его применить на стандартном драмсете из стандартного FluidR3_GM SF2банка, то ударные подавляются! КАКЭТА??? При чём всякие вжикалки и брюкалки из того же набора ударных есть и эффект именно тот, которого я ожидал.
Загвоздка в строке
at = 1617/t
Если сделать at = 1, то во всех комбфильтрах одинаковый эффект, без учёта задержки. Если сделать at = t/1617, то эффект не тот, но все ударные слышны! Но at = 1617/t подавляет барабаны и тарелки из FluidR3_GM. Они были обработаны freeverb и сложив стереосигнал в моно и наложив мою фильтрующую ахинею я вырезаю звук ударных?
Эх... если бы у меня было мозгов как у sadko4u и
James_Holden, я бы тогда бы чота понял. А так, кидаю непонятные порошки в чан и прячусь за ветошью в ожидании реакции :)
Исходная версия
ChekPuk,
:
А тем временем я натыкал поразительный эффект, которого не ожидал. Как такое может быть?
Речь о павердраме, эффекте, который добавляет «пщщщщ» сольникам.
В петле комбфильтра сделал фильтр на smooth. Просто, но эффективно подавляет нежелательные бумчики и выделяет «ссс» :) Но этого мне показалось мало и я решил сделать смешивание смута зависимым от задержки комбфильтра. (Привожу код очищенный от остального, чтобы не мешал)
declare name "Powerdrum";
declare version "0.001";
declare author "Chelobaka";
declare description "based on freeverb params";
import("stdfaust.lib");
origSR = 44100;
mixx = hslider("Mix",1,0,2,0.001);
rever = _ <: par(i,8,lbcf(combtuningL(i)+spread,fb1,damp,i))
:> seq(i,4,fi.allpass_comb(1024, allpasstuningL(i)+spread, -fb2))
with{
spread = hslider("spread",0,0,1,0.0001);
fb1=hslider("lpc",0,0,1,0.0001);
damp=hslider("lpd",0,0,1,0.0001);
fb2=hslider("hpc",0,0,1,0.0001);
smooth(t) = _<: si.smooth(0.6896)*st,_: -: *(st)
with {
at = 1617/t;
sm = hslider("Smoothness",0,0,1,0.0001);
st = hslider("gain",1,0,2,0.001)*at;
};
// Filters parameters
combtuningL(0) = 1116;
combtuningL(1) = 1188;
combtuningL(2) = 1277;
combtuningL(3) = 1356;
combtuningL(4) = 1422;
combtuningL(5) = 1491;
combtuningL(6) = 1557;
combtuningL(7) = 1617;
allpasstuningL(0) = 556*ma.SR/origSR : int;
allpasstuningL(1) = 441*ma.SR/origSR : int;
allpasstuningL(2) = 341*ma.SR/origSR : int;
allpasstuningL(3) = 225*ma.SR/origSR : int;
// Lowpass Feedback Combfiler:
lbcf(dt, fb, damp, i) = (+: smooth(dt): @(tm)) ~ (*(1-damp) : (+ ~ *(damp)) : *(fb))
with {
tm = dt*ma.SR/origSR: int;
};
};
process = _<: rever,*(mixx):- ;
Это моноэффект (вроде как?). Так вот, на моём пробном наборе сольников всё работает как надо, но если его применить на стандартном драмсете из стандартного FluidR3_GM SF2банка, то ударные подавляются! КАКЭТА??? При чём всякие вжикалки и брюкалки из того же набора ударных есть и эффект именно тот, которого я ожидал.
Загвоздка в строке
at = 1617/t
Если сделать at = 1, то во всех комбфильтрах одинаковый эффект, без учёта задержки. Если сделать at = t/1617, то эффект не тот, но все ударные слышны! Но at = 1617/t подавляет барабаны и тарелки из FluidR3_GM. Они были обработаны freeverb и сложив стереосигнал в моно и наложив мою фильтрующую ахинею я вырезаю звук ударных?
Эх... если бы у меня было мозгов как у sadko4u и
James_Holden, я бы тогда бы чота понял. А так, кидаю непонятные порошки в чан и прячусь за ветошью в ожидании реакции :)