@@ -50,8 +50,8 @@ fn main() {
5050 ]
5151 . into_iter ( )
5252 . sum :: < Sig < _ > > ( )
53- * knob ( "drum vol" ) . build ( ) )
54- . shared ( ) ;
53+ * 0.5 ) // knob("drum vol").build())
54+ . shared ( ) ;
5555 out. set_channel ( |channel| {
5656 let voice = key_events. clone ( ) . mono_voice ( ) ;
5757 let ( note, gate) = key_looper ( voice. triggered_note ( ) , clock. clone ( ) )
@@ -60,6 +60,12 @@ fn main() {
6060 . persist_with_name ( "keys" )
6161 . build ( )
6262 . ungated ( ) ;
63+ let vib_hz = knob ( "vibrato" ) . build ( ) * 20. ;
64+ let max = semitone_ratio_sig ( knob ( "vib scale" ) . build ( ) * 4. ) . shared ( ) ;
65+ let min = ( 1.0 / max. clone ( ) ) . shared ( ) ;
66+ let vib = sine ( vib_hz) . build ( ) . signed_to_range ( min, max) ;
67+ let lfo =
68+ sine ( 10.0 ) . build ( ) . signed_to_01 ( ) * knob ( "lfo" ) . build ( ) * 1000. ;
6369 let cutoff_hz =
6470 value_looper ( cutoff_hz. clone ( ) , clock. clone ( ) , lpf_space. clone ( ) )
6571 . persist_with_name ( "low_pass" )
@@ -68,27 +74,27 @@ fn main() {
6874 let env = adsr ( gate)
6975 . key_press_trig ( clock. clone ( ) )
7076 . a ( tempo_s. clone ( ) * knob ( "attack" ) . build ( ) * 4. )
71- . r ( tempo_s. clone ( ) * knob ( "release" ) . build ( ) * 4. )
77+ // .r(tempo_s.clone() * knob("release").build() * 4.)
7278 . s ( knob ( "sustain" ) . build ( ) )
7379 . d ( tempo_s. clone ( ) * knob ( "decay" ) . build ( ) * 4. )
7480 . build ( )
7581 . exp_01 ( 1. )
7682 . shared ( ) ;
77- let voice = ( saw ( note. freq_hz ( ) )
83+ let voice = ( saw ( note. freq_hz ( ) * vib )
7884 . reset_offset_01 ( channel. circle_phase_offset_01 ( ) )
7985 . build ( )
8086 * env. clone ( ) )
8187 . filter (
8288 low_pass:: default (
83- 10. + ( env. clone ( )
89+ lfo + ( env. clone ( )
8490 * cutoff_hz
8591 * 15000.
8692 * knob ( "cutoff_scale" ) . build ( ) ) ,
8793 )
8894 . q ( res. clone ( ) ) ,
8995 )
9096 . filter_enable (
91- true ,
97+ switch ( "band pass" ) . build ( ) ,
9298 band_pass:: centered:: default (
9399 knob ( "mid" ) . build ( ) * 1_000. ,
94100 knob ( "width" ) . build ( ) * 4. ,
@@ -111,6 +117,7 @@ fn main() {
111117 . feedback_ratio ( 0.5 ) ,
112118 )
113119 . filter ( reverb:: default ( ) . room_size ( 0.9 ) . damping ( 0.1 ) )
120+ . filter ( high_pass:: default ( 1. ) )
114121 + drums. clone ( )
115122 } ) ;
116123 thread:: park ( ) ;
0 commit comments