Exemplo n.º 1
0
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))
Exemplo n.º 2
0
    @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))
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
        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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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))