faust-带lfo波形切换和合成器波形切换的demo(音量lfo和音色波形切换,合成器音色波形切换)
import("stdfaust.lib"); // 0 1 2 3: sin,tri,saw,square wave_shape = hslider("合成器波形选择[style:knob]",0,0,3,1); // 0 1 2 3: sin,tri,saw,square lfo_type = hslider("lfo波形选择[style:knob]",0,0,3,1); volume_lfo_rate = hslider("lfo_rate",0,0,16,1); // 切换音量lfo的波形类型 volume_lfo_osc = (os.osc(volume_lfo_rate), os.triangle(volume_lfo_rate), os.sawtooth(volume_lfo_rate), os.square(volume_lfo_rate)):ba.selectn(4,lfo_type); // 切换振荡器的波形 process = (os.osc(440) * volume_lfo_osc, os.triangle(440) * volume_lfo_osc, os.sawtooth(440) * volume_lfo_osc, os.square(440) * volume_lfo_osc):ba.selectn(4,wave_shape);
ai优化版
import("stdfaust.lib"); wave_shape = hslider("合成器波形选择[style:knob]",0,0,3,1); lfo_type = hslider("lfo波形选择[style:knob]",0,0,3,1); volume_lfo_rate = hslider("lfo_rate[style:knob]",1,0.1,20,0.1); volume_lfo_depth = hslider("lfo_depth[style:knob]",0.5,0,1,0.01); // 改进的LFO波形选择 - 确保所有波形都有合适的范围 volume_lfo_osc = ( os.osc(volume_lfo_rate), // 正弦波: -1 to 1 os.triangle(volume_lfo_rate), // 三角波: -1 to 1 os.sawtooth(volume_lfo_rate), // 锯齿波: -1 to 1 os.square(volume_lfo_rate) // 方波: -1 to 1 ): ba.selectn(4,lfo_type); // 将双极性信号转换为单极性,并应用深度控制 // 这样可以确保所有波形类型都有可听的效果 unipolar_lfo = (volume_lfo_osc + 1) / 2; // 转换为0-1范围 modulated_lfo = (1 - volume_lfo_depth) + unipolar_lfo * volume_lfo_depth; //final_mod_lfo = // 切换振荡器的波形 process = ( os.osc(440), os.triangle(440), os.sawtooth(440), os.square(440) ): ba.selectn(4,wave_shape) * hgroup("volume_lfo_demo",modulated_lfo);
浙公网安备 33010602011771号