LINUX.ORG.RU

История изменений

Исправление 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 и тупо подставил значения в фильтры :) Топорнейше.

Ругуляторов тона и оконечного НЧ не делал, Без пробы на реальной гитаре пока нет смысла.

Топорных дел мастер Акакий Акакиевич Челобака.