import settings import color_handler class FlatColor: name = "Flat Color" @staticmethod def loop(): pass @staticmethod def get_hsv(note, vel): return FlatColor.get_value("Color", return_hsv=True) color_handler.add(FlatColor) FlatColor.add_setting(settings.ColorSetting("Color", (170, 1, 1), is_hsv=True))
@staticmethod def loop(): pass @staticmethod def get_hsv(note, vel): hsv_lerp = NoteColor.get_value("Lerp Type") start_col = NoteColor.get_value("Start Color", return_hsv=hsv_lerp) end_col = NoteColor.get_value("End Color", return_hsv=hsv_lerp) increasing = NoteColor.get_value("Increasing") loops = NoteColor.get_value("Extra Loops") prog = (note / 87.0) if hsv_lerp: return helper.hsv_lerp(start_col, end_col, prog, increasing, loops) else: return helper.rgb_to_hsv(helper.rgb_lerp(start_col, end_col, prog)) color_handler.add(NoteColor) NoteColor.add_setting( settings.ColorSetting("Start Color", (0, 1, 1), is_hsv=True)) NoteColor.add_setting( settings.ColorSetting("End Color", (360, 1, 1), is_hsv=True)) NoteColor.add_setting(settings.BoolSetting("Lerp Type", True, "RGB", "HSV")) NoteColor.add_setting(settings.BoolSetting("Increasing", True)) NoteColor.add_setting(settings.IntSetting("Extra Loops", 0, 10))
def get_hsv(note, input_value): group = min(LedGroup.groups, key=lambda group: abs(group.note_average - note), default=None) if group: value = group.try_add(note, input_value) if value: return (LedGroup.calc_hue(value, group.hue), LedGroup.saturation, LedGroup.value) new_group = LedGroup(note, input_value) return (LedGroup.calc_hue(input_value, new_group.hue), LedGroup.saturation, LedGroup.value) @staticmethod def calc_hue(vel, hue): if LedGroup.get_value("Show Velocity"): return (hue + (vel * 120)) % 360 else: return hue color_handler.add(LedGroup) LedGroup.add_setting(settings.IntSetting("Group Range", 24, 48)) LedGroup.add_setting(settings.IntSetting("History Length", 10, 20)) LedGroup.add_setting(settings.NumberSetting("Group Timeout", 2.0, 10.0, 0.1)) LedGroup.add_setting(settings.BoolSetting("Random Hue", True)) LedGroup.add_setting(settings.IntSetting("Fixed Hue", 0, 360)) LedGroup.add_setting(settings.BoolSetting("Show Velocity", True))
vel_modifier = helper.renormalize(AdaptiveColor.vel_avg, 0.3, 0.9, 0, 1) if use_vel and use_speed: prog = (vel_modifier + delay_modifier * delays_weight) / (1 + delays_weight) elif use_vel: prog = vel_modifier elif use_speed: prog = delay_modifier else: prog = 0 if hsv_lerp: return helper.hsv_lerp(start_col, end_col, prog) else: return helper.rgb_to_hsv(helper.rgb_lerp(start_col, end_col, prog)) color_handler.add(AdaptiveColor) AdaptiveColor.add_setting(settings.ColorSetting("Start Color", (0, 255, 0))) AdaptiveColor.add_setting(settings.ColorSetting("End Color", (255, 0, 0))) AdaptiveColor.add_setting( settings.BoolSetting("Lerp Type", False, "RGB", "HSV")) AdaptiveColor.add_setting(settings.BoolSetting("Global Hue", True)) AdaptiveColor.add_setting(settings.BoolSetting("Use Velocity", True)) AdaptiveColor.add_setting(settings.BoolSetting("Use Play Speed", True)) AdaptiveColor.add_setting(settings.NumberSetting("Speed Weight", 0.5, 2)) AdaptiveColor.add_setting(settings.IntSetting( "History", 10, 30)).set_change_callback(AdaptiveColor.clear_history)
import color_handler class ColorOff: name = "Off" @staticmethod def loop(): pass @staticmethod def get_hsv(note, vel): return (0, 0, 0) color_handler.add(ColorOff)
import settings import color_handler import octaves class MatchOctave: name = "Match Octave" current_octave_note = 0 @staticmethod def loop(): pass @staticmethod def get_hsv(note, vel): high_note = octaves.last_octave_notes_preempt and octaves.last_octave_notes_preempt[ 1] if high_note and high_note <= MatchOctave.get_value("Cutoff Note"): MatchOctave.current_octave_note = high_note % 12 return (MatchOctave.current_octave_note * (360 / 12), 1, 1) color_handler.add(MatchOctave) MatchOctave.add_setting(settings.NoteSetting("Cutoff Note", 35))