diff --git a/python_payload/apps/shoegaze/__init__.py b/python_payload/apps/shoegaze/__init__.py index 20da2b85b8a7066a9d2be5e1f69f30cd2241bdd5..d467e87453d0481f79a0cfb74128ecd772e0888d 100644 --- a/python_payload/apps/shoegaze/__init__.py +++ b/python_payload/apps/shoegaze/__init__.py @@ -13,7 +13,7 @@ import bl00mbox import leds import random - +import math import sys_display chords = [ @@ -52,56 +52,61 @@ class ShoegazeApp(Application): def _build_synth(self) -> None: if self.blm is None: self.blm = bl00mbox.Channel("shoegaze") - self.main_lp = self.blm.new(bl00mbox.plugins.lowpass) - self.main_fuzz = self.blm.new(bl00mbox.patches.fuzz) + self.main_fuzz = self.blm.new(bl00mbox.plugins.distortion) self.main_mixer = self.blm.new(bl00mbox.plugins.mixer, 2) self.git_strings = [ self.blm.new(bl00mbox.patches.karplus_strong) for i in range(4) ] self.bass_string = self.blm.new(bl00mbox.patches.karplus_strong) self.git_mixer = self.blm.new(bl00mbox.plugins.mixer, 4) - self.git_fuzz = self.blm.new(bl00mbox.patches.fuzz) - self.git_delay = self.blm.new(bl00mbox.plugins.delay) - self.git_lp = self.blm.new(bl00mbox.plugins.lowpass) - self.bass_lp = self.blm.new(bl00mbox.plugins.lowpass) - - self.git_mixer.signals.input0 = self.git_strings[0].signals.output - self.git_mixer.signals.input1 = self.git_strings[1].signals.output - self.git_mixer.signals.input2 = self.git_strings[2].signals.output - self.git_mixer.signals.input3 = self.git_strings[3].signals.output + # self.git_mixer.signals.block_dc.switch.ON = True + # self.main_mixer.signals.block_dc.switch.ON = True + self.git_fuzz = self.blm.new(bl00mbox.plugins.distortion) + self.git_delay = self.blm.new(bl00mbox.plugins.delay_static) + + self.git_lp = self.blm.new(bl00mbox.plugins.filter) + self.bass_lp = self.blm.new(bl00mbox.plugins.filter) + self.main_lp = self.blm.new(bl00mbox.plugins.filter) + self.git_lp.signals.cutoff.freq = 700 + self.git_lp.signals.reso = 10000 + self.bass_lp.signals.cutoff.freq = 400 + self.bass_lp.signals.reso = 12000 + self.main_lp.signals.cutoff.freq = 2500 + self.main_lp.signals.reso = 8000 + + for i in range(4): + self.git_mixer.signals.input[i] = self.git_strings[i].signals.output + self.git_strings[i].signals.reso = -2 + self.git_strings[i].signals.decay = 3000 + self.bass_string.signals.reso = -2 + self.bass_string.signals.decay = 1000 + self.git_mixer.signals.output = self.git_lp.signals.input + self.git_fuzz._special_sauce = 2 self.git_fuzz.signals.input = self.git_lp.signals.output + self.main_mixer.signals.input[0] = self.git_delay.signals.output self.bass_lp.signals.input = self.bass_string.signals.output - self.main_mixer.signals.input1 = self.bass_lp.signals.output + self.main_mixer.signals.input[1] = self.bass_lp.signals.output + self.main_mixer.signals.input_gain[1].dB = -3 + self.main_fuzz._special_sauce = 2 self.main_fuzz.signals.input = self.main_mixer.signals.output self.main_fuzz.signals.output = self.main_lp.signals.input self.main_lp.signals.output = self.blm.mixer + self.git_delay.signals.input = self.git_fuzz.signals.output self.git_delay.signals.time = 200 self.git_delay.signals.dry_vol = 32767 - self.git_delay.signals.level = 16767 self.git_delay.signals.feedback = 27000 - self.git_fuzz.intensity = 8 - self.git_fuzz.gate = 1500 - self.git_fuzz.volume = 12000 - self.git_lp.signals.freq = 700 - self.git_lp.signals.reso = 2500 - - self.bass_lp.signals.freq = 400 - self.bass_lp.signals.reso = 3000 - self.main_fuzz.intensity = 8 - self.main_fuzz.gate = 1500 - self.main_fuzz.volume = 32000 + self.main_fuzz.curve_set_power(8, 32000, 1500) + self.git_fuzz.curve_set_power(8, 12000, 1500) self.main_mixer.signals.gain = 2000 - self.main_lp.signals.reso = 2000 self.bass_lp.signals.gain = 32767 self.git_lp.signals.gain = 32767 - self.main_lp.signals.freq = 2500 self.main_lp.signals.gain = 2000 self.git_mixer.signals.gain = 4000 self.main_lp.signals.input = self.main_fuzz.signals.output @@ -111,10 +116,9 @@ class ShoegazeApp(Application): if self.blm is None: return if self.delay_on: - self.git_delay.signals.input = self.git_fuzz.signals.output - self.main_mixer.signals.input0 = self.git_delay.signals.output + self.git_delay.signals.level = 16767 else: - self.main_mixer.signals.input0 = self.git_fuzz.signals.output + self.git_delay.signals.level = 0 def _try_load_settings(self, path): try: @@ -153,7 +157,7 @@ class ShoegazeApp(Application): self.chord_index = i if self.organ_on and self._organ_chords[i] is not None: tmp = self._organ_chords[i] - tmp[0] -= 12 + # tmp[0] -= 12 self.chord = tmp else: self.chord = chords[i] @@ -247,14 +251,12 @@ class ShoegazeApp(Application): if petals[i].whole.pressed: self._git_string_tuning[k] = self.chord[k] - 12 self.git_strings[k].signals.pitch.tone = self._git_string_tuning[k] - self.git_strings[k].decay = 3000 self.git_strings[k].signals.trigger.start() self.git_strings[k].signals.pitch.tone = self._git_string_tuning[k] + detune if petals[0].whole.pressed: self.bass_string.signals.pitch.tone = self.chord[0] - 24 - self.bass_string.decay = 1000 self.bass_string.signals.trigger.start() leds.set_all_rgb(*colours.hsv_to_rgb(self.hue + self._rand_rot * 1.2, 1, 0.7))