The Separator

By:

Name

5.0
1 People dig it
filters gain

Tags:

This is an effect I've always wanted to try that I built on DreamMaker FX. Essentially, the low guitar string notes are filtered and sent through a marching delay line and the higher notes pass through unaffected. You can create an automatic bass line without any controls.

Arduino Code
Knob and button functions
Screen Shot 2020-01-02 at 3.17.41 PM.png

Delay loop time

Low cutoff

Low note gain

Bypass

(nothing)

The Separator

Copy / paste this code into the Arduino IDE, download and run this effect

.

#include <dreammakerfx.h>

fx_biquad_filter    low_cutoff(250.0,              // Initial filter cutoff freq
                        1.0,                // Normal resonance
                        BIQUAD_TYPE_LPF,    // Filter type
                        BIQUAD_ORDER_8);

fx_compressor       compressor(-30,       // Threshold in dB
                                40,       // Ratio
                                20,       // Attack time (ms)
                                1000,     // Release time (ms)
                                1.0);     // Output gain

fx_pitch_shift      pitch_down(0.50);       // Pitch shift down by one octave


fx_delay            bass_delay(3000.0, 0.93);
fx_gain             bass_gain(2.0);

fx_mixer_2          mix2;                   // Mixer utility
                        
void setup() {
  // put your setup code here, to run once:
  pedal.init();

  pedal.route_audio(pedal.instr_in, low_cutoff.input);
  pedal.route_audio(low_cutoff.output, compressor.input);
  pedal.route_audio(compressor.output, bass_delay.input);
  pedal.route_audio(bass_delay.output, bass_gain.input);
  pedal.route_audio(bass_gain.output, mix2.input_1);

  pedal.route_audio(pedal.instr_in, mix2.input_2);
  pedal.route_audio(mix2.output, pedal.amp_out);

  // Left foot switch is bypass
  pedal.add_bypass_button(FOOTSWITCH_LEFT);
    
  pedal.run();

}

void loop() {
  // put your main code here, to run repeatedly:
  if (pedal.pot_left.has_changed()) {
    low_cutoff.set_freq(50 + pedal.pot_left.val*300.0);
  }

  if (pedal.pot_center.has_changed()) {
    float steps = round(pedal.pot_center.val * 8.0)/8.0;
    bass_delay.set_length_ms(500 + 2000 * steps);
  }

  if (pedal.pot_right.has_changed()) {
    bass_gain.set_gain(1.0 + pedal.pot_right.val*4.0);
  }




   // Run pedal service to take care of stuff
  pedal.service();

}

Rate this effect
MehOkayNiceGreatEpic!!!!

Your comment has been submitted

Leave a comment