История изменений
Исправление
Chelobaka,
(текущая версия)
:
Итак. Фауст (почему-то) заработал и я наконец смог воплотить несколько из задумок. Играюсь дальше (точнее с нуля). Пришёл к выводу, что для игры в саундинжинира оглайн редактор и песочница подходят лучше faustlive (в котором единственным плюсом является возможность перезапуска плагина прямо в джеке). Но встала проблема коммутации. Всё также требуется видеть форму синусоиды (в песочницу её не завезли и я сомневаюсь, что фауст могёт в графику в принципе), а для этого только запускать джек и плагины всякие спектроанализирующие в carla.
На системе запущен джек с пустышкой вместо драйвера и пульсаудио, на котором проброшен мост в джек. В файрфоксе запущен редактор, в пульсе вход фокса настроен на микрофонный вход, а выход на мост джека. В джеке запущена Карла с Example Scope (Mono) плагином, через который и пропускается вход с пульсы и отправляется на выход в пульсу.
Я тут всё это пишу, потому что я же всё это забуду и в следующий раз, когда сяду изображать умного человека опять начну всё искать. А так хоть в списке останется и я (может быть) воспользуюсь этим каментом как подсказкой :)
Итак. наконец услышал звучание моей махинирующей конструкции:
import("stdfaust.lib");
import("filters.lib");
process = stomp with {
volume = hslider("volume",1,0,1,0.01);
boost = hslider("boost",10,0,10,0.5);
hipass = 720;
lopass = 62;
freq = hslider("freq",200,1,200,1);
amplitude = hslider("amplitude",1,0,2,0.01);
sine = os.sinwaveform(freq)*amplitude;
slimiter(x,y) =x*coeff,y*coeff
with {
epsilon =1/(48000*1.0);
peak = max(abs(x),abs(y)):max~-(epsilon);
coeff = 1.0/max(1.0,peak);
};
booster = _*(boost);
overdrive(boosted) = sin(atan(filtered)) with {
filtered = boosted <: fi.highpass(1,hipass),fi.lowpass(1,(lopass/boost)): +;
};
stomp = sine <: slimiter <: booster, _ : overdrive , _ : _*volume, _*volume ;
};
Зачепатый лимитер спёр в примерах, это чтобы решить проблему со входом сигнала, что мы имели до этого. Хотя при теперешней системе перегруза он не выглядит таким уж нужным. Для симуляции мощного сигнала амплитуду можно усилить в два раза и видим, что сигнал не усилился выше единицы. Назовём его буффером, согласователем сопротивления.
Далее сигнал бустается и потом я тупо беру синус арктангенса усиленного сигнала(пропущенного через фильтры). Да, это работает в принципе не так, как диоды в овердрайве, но это гораздо проще конструкций сжатия сигнала превышающего порог, хотя при минимальном усилении форма итоговой синусоиды всё же отклоняется от оригинала. Но звук изменяется в ту сторону, что я хотел (пока(на синусоиде)).
Фильтры обратной связи... Подсмотрел тут - https://www.electrosmash.com/tube-screamer-analysis и тупо подставил значения в фильтры :) Топорнейше.
Регуляторов тона и оконечного НЧ не делал, Без пробы на реальной гитаре пока нет смысла.
Топорных дел мастер Акакий Акакиевич Челобака.
Исправление
Chelobaka,
:
Итак. Фауст (почему-то) заработал и я наконец смог воплотить несколько из задумок. Играюсь дальше (точнее с нуля). Пришёл к выводу, что для игры в саундинжинира оглайн редактор и песочница подходят лучше faustlive (в котором единственным плюсом является возможность перезапуска плагина прямо в джеке). Но встала проблема коммутации. Всё также требуется видеть форму синусоиды (в песочницу её не завезли и я сомневаюсь, что фауст могёт в графику в принципе), а для этого только запускать джек и плагины всякие спектроанализирующие в carla.
На системе запущен джек с пустышкой вместо драйвера и пульсаудио, на котором проброшен мост в джек. В файрфоксе запущен редактор, в пульсе вход фокса настроен на микрофонный вход, а выход на мост джека. В джеке запущена Карла с Example Scope (Mono) плагином, через который и пропускается вход с пульсы и отправляется на выход в пульсу.
Я тут всё это пишу, потому что я же всё это забуду и в следующий раз, когда сяду изображать умного человека опять начну всё искать. А так хоть в списке останется и я (может быть) воспользуюсь этим каментом как подсказкой :)
Итак. наконец услышал звучание моей махинирующей конструкции:
import("stdfaust.lib");
import("filters.lib");
process = stomp with {
volume = hslider("volume",1,0,1,0.01);
boost = hslider("boost",10,0,10,0.5);
hipass = 720;
lopass = 62;
freq = hslider("freq",200,1,200,1);
amplitude = hslider("amplitude",1,0,2,0.01);
sine = os.sinwaveform(freq)*amplitude;
slimiter(x,y) =x*coeff,y*coeff
with {
epsilon =1/(48000*1.0);
peak = max(abs(x),abs(y)):max~-(epsilon);
coeff = 1.0/max(1.0,peak);
};
booster = _*(boost);
overdrive(boosted) = sin(atan(filtered)) with {
filtered = boosted <: fi.highpass(1,hipass),fi.lowpass(1,(lopass/boost)): +;
};
stomp = sine <: slimiter <: booster, _ : overdrive , _ : _*volume, _*volume ;
};
Зачепатый лимитер спёр в примерах, это чтобы решить проблему со входом сигнала, что мы имели до этого. Хотя при теперешней системе перегруза он не выглядит таким уж нужным. Для симуляции мощного сигнала амплитуду можно усилить в два раза и видим, что сигнал не усилился выше единицы. Назовём его буффером, согласователем сопротивления. Далее сигнал бустается и потом я тупо беру синус арктангенса усиленного сигнала(пропущенного через фильтры). Да, это работает в принципе не так, как диоды в овердрайве, но это гораздо проще конструкций сжатия сигнала превышающего порог, хотя при минимальном усилении форма итоговой синусоиды всё же отклоняется от оригинала. Но звук изменяется в ту сторону, что я хотел (пока(на синусоиде)).
Фильтры обратной связи... Подсмотрел тут - https://www.electrosmash.com/tube-screamer-analysis и тупо подставил значения в фильтры :) Топорнейше.
Регуляторов тона и оконечного НЧ не делал, Без пробы на реальной гитаре пока нет смысла.
Топорных дел мастер Акакий Акакиевич Челобака.
Исходная версия Deleted, :
Итак. Фауст (почему-то) заработал и я наконец смог воплотить несколько из задумок. Играюсь дальше (точнее с нуля). Пришёл к выводу, что для игры в саундинжинира оглайн редактор и песочница подходят лучше faustlive (в котором единственным плюсом является возможность перезапуска плагина прямо в джеке). Но встала проблема коммутации. Всё также требуется видеть форму синусоиды (в песочницу её не завезли и я сомневаюсь, что фауст могёт в графику в принципе), а для этого только запускать джек и плагины всякие спектроанализирующие в carla.
На системе запущен джек с пустышкой вместо драйвера и пульсаудио, на котором проброшен мост в джек. В файрфоксе запущен редактор, в пульсе вход фокса настроен на микрофонный вход, а выход на мост джека. В джеке запущена Карла с Example Scope (Mono) плагином, через который и пропускается вход с пульсы и отправляется на выход в пульсу.
Я тут всё это пишу, потому что я же всё это забуду и в следующий раз, когда сяду изображать умного человека опять начну всё искать. А так хоть в списке останется и я (может быть) воспользуюсь этим каментом как подсказкой :)
Итак. наконец услышал звучание моей махинирующей конструкции:
import("stdfaust.lib");
import("filters.lib");
process = stomp with {
volume = hslider("volume",1,0,1,0.01);
boost = hslider("boost",10,0,10,0.5);
hipass = 720;
lopass = 62;
freq = hslider("freq",200,1,200,1);
amplitude = hslider("amplitude",1,0,2,0.01);
sine = os.sinwaveform(freq)*amplitude;
slimiter(x,y) =x*coeff,y*coeff
with {
epsilon =1/(48000*1.0);
peak = max(abs(x),abs(y)):max~-(epsilon);
coeff = 1.0/max(1.0,peak);
};
booster = _*(boost);
overdrive(boosted) = sin(atan(filtered)) with {
filtered = boosted <: fi.highpass(1,hipass),fi.lowpass(1,(lopass/boost)): +;
};
stomp = sine <: slimiter <: booster, _ : overdrive , _ : _*volume, _*volume ;
};
Зачепатый лимитер спёр в примерах, это чтобы решить проблему со входом сигнала, что мы имели до этого. Хотя при теперешней системе перегруза он не выглядит таким уж нужным. Для симуляции мощного сигнала амплитуду можно усилить в два раза и видим, что сигнал не усилился выше единицы. Назовём его буффером, согласователем сопротивления. Далее сигнал бустается и потом я тупо беру синус арктангенса усиленного сигнала(пропущенного через фильтры). Да, это работает в принципе не так, как диоды в овердрайве, но это гораздо проще конструкций сжатия сигнала превышающего порог, хотя при минимальном усилении форма итоговой синусоиды всё же отклоняется от оригинала. Но звук изменяется в ту сторону, что я хотел (пока(на синусоиде)).
Фильтры обратной связи... Подсмотрел тут - https://www.electrosmash.com/tube-screamer-analysis и тупо подставил значения в фильтры :) Топорнейше.
Ругуляторов тона и оконечного НЧ не делал, Без пробы на реальной гитаре пока нет смысла.
Топорных дел мастер Акакий Акакиевич Челобака.