diff --git a/db/group.json b/db/group.json index bd73159..848c920 100644 --- a/db/group.json +++ b/db/group.json @@ -1 +1 @@ -{"1": {"name": "group1", "devices": ["e8f60a16fb00", "e8f60a170794"], "wifi_driver_display_name": "desk", "wifi_driver_num_leds": 59, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "output_brightness": 255}, "2": {"name": "group2", "devices": ["188b0e1560a8"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0}, "3": {"name": "group3", "devices": ["e8f60a16f288"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0}, "4": {"name": "group4", "devices": ["e8f60a16e79c"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0}, "5": {"name": "desk", "devices": ["188b0e1560a8"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": null}} \ No newline at end of file +{"1": {"name": "group1", "devices": ["e8f60a16fb00", "e8f60a170794"], "wifi_driver_display_name": "desk", "wifi_driver_num_leds": 59, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "output_brightness": 255}, "2": {"name": "group2", "devices": ["188b0e1560a8"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0}, "3": {"name": "group3", "devices": ["e8f60a16f288"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0}, "4": {"name": "group4", "devices": ["e8f60a16e79c"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0}, "5": {"name": "desk", "devices": ["188b0e1560a8", "e4b323c15c20"], "wifi_driver_display_name": null, "wifi_driver_num_leds": null, "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "FF0000"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": null}, "6": {"name": "winter top-left", "devices": ["a0b100000001"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "7": {"name": "winter top-centre", "devices": ["a0b100000002"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "8": {"name": "winter top-right", "devices": ["a0b100000003"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "9": {"name": "winter bottom-left", "devices": ["a0b100000004"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "10": {"name": "winter bottom-centre", "devices": ["a0b100000005"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "11": {"name": "winter bottom-right", "devices": ["a0b100000006"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "12": {"name": "winter top row", "devices": ["a0b100000001", "a0b100000002", "a0b100000003"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "13": {"name": "winter bottom row", "devices": ["a0b100000004", "a0b100000005", "a0b100000006"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "14": {"name": "winter left column", "devices": ["a0b100000001", "a0b100000004"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "15": {"name": "winter centre column", "devices": ["a0b100000002", "a0b100000005"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "16": {"name": "winter right column", "devices": ["a0b100000003", "a0b100000006"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}, "17": {"name": "winter grid (all)", "devices": ["a0b100000001", "a0b100000002", "a0b100000003", "a0b100000004", "a0b100000005", "a0b100000006"], "profile_id": "3", "wifi_color_order": "rgb", "wifi_startup_mode": "default", "output_brightness": 255, "pattern": "on", "colors": ["000000", "E8F4FF"], "brightness": 100, "delay": 100, "step_offset": 0, "step_increment": 1, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "wifi_driver_display_name": null, "wifi_driver_num_leds": null}} \ No newline at end of file diff --git a/db/palette.json b/db/palette.json index 113e00f..23edbdb 100644 --- a/db/palette.json +++ b/db/palette.json @@ -1 +1 @@ -{"1": ["#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#FF00FF", "#00FFFF", "#FFFFFF", "#000000", "#050500"], "2": [], "3": [], "4": [], "5": [], "6": [], "7": ["#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#FF00FF", "#00FFFF", "#FFFFFF", "#000000"], "8": [], "9": [], "10": [], "11": [], "12": ["#890b0b", "#0b8935"], "13": []} \ No newline at end of file +{"1":["#FF0000","#00FF00","#0000FF","#FFFF00","#FF00FF","#00FFFF","#FFFFFF","#000000","#050500"],"2":[],"3":[],"4":[],"5":[],"6":[],"7":["#FF0000","#00FF00","#0000FF","#FFFF00","#FF00FF","#00FFFF","#FFFFFF","#000000"],"8":[],"9":[],"10":[],"11":[],"12":["#890b0b","#0b8935"],"13":[],"14":["#E8F4FF","#9ECFFF","#5080C8","#FFFFFF","#B0DCFF","#0A1520","#FF8020","#071018"]} \ No newline at end of file diff --git a/db/preset.json b/db/preset.json index b910a21..fb2c436 100644 --- a/db/preset.json +++ b/db/preset.json @@ -1 +1 @@ -{"1": {"name": "on", "pattern": "on", "colors": ["#FFFFFF"], "brightness": 255, "delay": 100, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "2": {"name": "off", "pattern": "off", "colors": [], "brightness": 0, "delay": 100, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "3": {"name": "rainbow", "pattern": "colour_cycle", "colors": [], "brightness": 255, "delay": 100, "auto": true, "n1": 2, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1"}, "4": {"name": "transition", "pattern": "transition", "colors": ["#FF0000", "#00FF00", "#0000FF"], "brightness": 255, "delay": 300, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#000000", "manual_beat_n": 1}, "5": {"name": "chase", "pattern": "chase", "colors": ["#FFFF00", "#FF00FF"], "brightness": 8, "delay": 200, "auto": false, "n1": 30, "n2": 30, "n3": 30, "n4": 30, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [3, 4], "manual_beat_n": 1, "background": "#000000", "background_palette_ref": null}, "6": {"name": "pulse", "pattern": "pulse", "colors": ["#FF00FF"], "brightness": 255, "delay": 1000, "auto": false, "n1": 100, "n2": 0, "n3": 100, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [4], "background_color": "#ec0909", "background_palette_ref": 8, "manual_beat_n": 1, "background": "#050500"}, "7": {"name": "circle", "pattern": "circle", "colors": ["#FFA500", "#800080"], "brightness": 255, "delay": 200, "auto": true, "n1": 2, "n2": 10, "n3": 2, "n4": 5, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "8": {"name": "blink", "pattern": "blink", "colors": ["#FF0000", "#00FF00", "#0000FF", "#FFFF00"], "brightness": 255, "delay": 1000, "auto": false, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null, null]}, "9": {"name": "warm white", "pattern": "on", "colors": ["#FFF5E6"], "brightness": 200, "delay": 100, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "10": {"name": "cool white", "pattern": "on", "colors": ["#E6F2FF"], "brightness": 200, "delay": 100, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "11": {"name": "red", "pattern": "on", "colors": ["#FF0000"], "brightness": 255, "delay": 100, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "12": {"name": "blue", "pattern": "on", "colors": ["#0000FF"], "brightness": 255, "delay": 100, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "13": {"name": "rainbow slow", "pattern": "colour_cycle", "colors": [], "brightness": 255, "delay": 150, "auto": true, "n1": 1, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1"}, "14": {"name": "pulse slow", "pattern": "pulse", "colors": ["#FF6600"], "brightness": 255, "delay": 800, "auto": true, "n1": 2000, "n2": 1000, "n3": 2000, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "15": {"name": "blink red green", "pattern": "blink", "colors": ["#FF0000", "#00FF00"], "brightness": 255, "delay": 500, "auto": true, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "30": {"name": "rainbow slow", "pattern": "colour_cycle", "colors": [], "brightness": 255, "delay": 150, "auto": true, "n1": 1, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "2"}, "31": {"name": "DJ Rainbow", "pattern": "colour_cycle", "colors": [], "brightness": 220, "delay": 60, "n1": 12, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "2"}, "32": {"name": "DJ Single Color", "pattern": "on", "colors": ["#ff00ff"], "brightness": 220, "delay": 100, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "2"}, "33": {"name": "DJ Transition", "pattern": "transition", "colors": ["#ff0000", "#00ff00", "#0000ff"], "brightness": 220, "delay": 250, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "2"}, "34": {"name": "DJ Rainbow", "pattern": "colour_cycle", "colors": [], "brightness": 220, "delay": 60, "n1": 12, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "2"}, "35": {"name": "DJ Single Color", "pattern": "on", "colors": ["#ff00ff"], "brightness": 220, "delay": 100, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "2"}, "36": {"name": "DJ Transition", "pattern": "transition", "colors": ["#ff0000", "#00ff00", "#0000ff"], "brightness": 220, "delay": 250, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "2"}, "37": {"name": "tranistion2", "pattern": "transition", "colors": ["#FF0000", "#FFFF00", "#FF00FF"], "brightness": 128, "delay": 1000, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [0, 3, 4]}, "38": {"name": "Colour Cycle", "pattern": "colour_cycle", "colors": ["#FF0000", "#0000FF"], "brightness": 255, "delay": 100, "auto": true, "n1": 1, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null]}, "39": {"name": "flicker", "pattern": "flicker", "colors": ["#ae00ff"], "brightness": 255, "delay": 50, "auto": false, "n1": 100, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null], "background": "#000000", "manual_beat_n": 1}, "40": {"name": "flame", "pattern": "flame", "colors": ["#ffc800"], "brightness": 128, "delay": 50, "auto": true, "n1": 35, "n2": 2600, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null], "background": "#000000", "background_palette_ref": null, "manual_beat_n": 1}, "41": {"name": "twinkle", "pattern": "twinkle", "colors": ["#78C8FF", "#508CFF", "#B478FF", "#64DCE8", "#A0C8FF"], "brightness": 255, "delay": 100, "auto": true, "n1": 150, "n2": 20, "n3": 0, "n4": 10, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null, null, null], "background": "#000000", "manual_beat_n": 1, "background_palette_ref": null}, "42": {"name": "radiate", "pattern": "radiate", "colors": ["#a600ff"], "brightness": 255, "delay": 2000, "auto": false, "n1": 60, "n2": 200, "n3": 100, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null], "manual_beat_n": 1, "background": "#050500", "background_palette_ref": 8}, "43": {"name": "test meteor rain", "pattern": "meteor", "colors": ["#FF5000", "#0080FF"], "brightness": 200, "delay": 40, "auto": true, "n1": 50, "n2": 1, "n3": 200, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null]}, "44": {"name": "test scanner", "pattern": "meteor", "colors": ["#FF0000"], "brightness": 255, "delay": 30, "auto": true, "n1": 4, "n2": 2, "n3": 0, "n4": 0, "n5": 0, "n6": 2, "n7": 0, "n8": 0, "profile_id": "1"}, "45": {"name": "test gradient scroll", "pattern": "colour_cycle", "colors": ["#FF0000", "#00FF00", "#0000FF"], "brightness": 220, "delay": 60, "auto": true, "n1": 2, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "46": {"name": "test comet dual", "pattern": "meteor", "colors": ["#FFAA00", "#00AAFF"], "brightness": 200, "delay": 60, "auto": true, "n1": 8, "n2": 1, "n3": 3, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null], "background": "#0b000f", "manual_beat_n": 1}, "47": {"name": "test sparkle trail", "pattern": "sparkle", "colors": ["#88CCFF", "#FFFFFF"], "brightness": 200, "delay": 60, "auto": true, "n1": 24, "n2": 210, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null], "background": "#000000", "manual_beat_n": 1}, "49": {"name": "test plasma", "pattern": "plasma", "colors": ["#FF0066"], "brightness": 200, "delay": 60, "auto": true, "n1": 6, "n2": 2, "n3": 2, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "51": {"name": "test bar graph", "pattern": "bar_graph", "colors": ["#00FF00", "#102010"], "brightness": 200, "delay": 60, "auto": true, "n1": 60, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "53": {"name": "test strobe burst", "pattern": "strobe_burst", "colors": ["#FFFFFF"], "brightness": 200, "delay": 60, "auto": false, "n1": 2, "n2": 10, "n3": 100, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null], "background": "#000000", "manual_beat_n": 1}, "54": {"name": "test rain drops", "pattern": "rain_drops", "colors": ["#7cbdfe"], "brightness": 200, "delay": 60, "auto": true, "n1": 32, "n2": 3, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null], "background": "#000000", "manual_beat_n": 1}, "55": {"name": "test fireflies", "pattern": "sparkle", "colors": ["#FFD060", "#90FF90"], "brightness": 200, "delay": 60, "auto": false, "n1": 6, "n2": 8, "n3": 0, "n4": 0, "n5": 0, "n6": 2, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null], "background": "#000000", "manual_beat_n": 1}, "56": {"name": "test clock sweep", "pattern": "clock_sweep", "colors": ["#FFFFFF", "#202020"], "brightness": 200, "delay": 60, "auto": true, "n1": 1, "n2": 5, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "57": {"name": "test marquee", "pattern": "chase", "colors": ["#FFFFFF"], "brightness": 200, "delay": 60, "auto": true, "n1": 3, "n2": 2, "n3": 1, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1"}, "58": {"name": "test aurora", "pattern": "aurora", "colors": ["#2CC88C", "#5078FF", "#A050DC"], "brightness": 200, "delay": 60, "auto": true, "n1": 3, "n2": 40, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "59": {"name": "test snowfall", "pattern": "particles", "colors": ["#FFFFFF", "#B0DCFF"], "brightness": 200, "delay": 60, "auto": true, "n1": 20, "n2": 1, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "61": {"name": "test orbit", "pattern": "orbit", "colors": ["#FFFFFF", "#00B4FF", "#FF0077"], "brightness": 200, "delay": 60, "auto": true, "n1": 3, "n2": 1, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null]}, "62": {"name": "test palette morph", "pattern": "palette_morph", "colors": ["#FF0000", "#00FF00", "#0000FF"], "brightness": 200, "delay": 60, "auto": true, "n1": 1200, "n2": 200, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1"}, "63": {"name": "off", "pattern": "off", "colors": [], "background": "#000000", "brightness": 0, "delay": 0, "n1": 0, "n2": 0, "n3": 0, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "manual_beat_n": 1, "profile_id": "2", "palette_refs": [], "auto": true}, "64": {"name": "winter icicles", "pattern": "icicles", "colors": ["#F0F8FF", "#9ECFFF", "#FFFFFF"], "brightness": 220, "delay": 80, "auto": true, "n1": 14, "n2": 11, "n3": 1, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#0A1520", "manual_beat_n": 1}, "65": {"name": "winter blizzard", "pattern": "blizzard", "colors": ["#FFFFFF", "#CDE8FF", "#AACCF5"], "brightness": 220, "delay": 45, "auto": true, "n1": 110, "n2": 2, "n3": 140, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#050810", "manual_beat_n": 1}, "66": {"name": "winter rime frost", "pattern": "rime", "colors": ["#E8F4FF", "#FFFFFF", "#B8DCF8"], "brightness": 200, "delay": 120, "auto": true, "n1": 40, "n2": 18, "n3": 4, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#071018", "manual_beat_n": 1}, "67": {"name": "winter northern wave", "pattern": "aurora", "colors": ["#183050", "#5090C8", "#C8E8FF"], "brightness": 200, "delay": 90, "auto": true, "n1": 22, "n2": 210, "n3": 1, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#060C18", "manual_beat_n": 1}, "68": {"name": "winter candle glow", "pattern": "candle_glow", "colors": ["#FF8020", "#FFC080", "#FFA040"], "brightness": 180, "delay": 70, "auto": true, "n1": 4, "n2": 3, "n3": 120, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#0A0508", "manual_beat_n": 1}, "69": {"name": "winter starfall", "pattern": "particles", "colors": ["#FFFFFF", "#C8E8FF", "#FFF8E0"], "brightness": 220, "delay": 55, "auto": true, "n1": 16, "n2": 2, "n3": 12, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#040810", "manual_beat_n": 1}, "70": {"name": "winter ice sparkle", "pattern": "sparkle", "colors": ["#E8F4FF", "#B0DCFF", "#FFFFFF"], "brightness": 210, "delay": 50, "auto": true, "n1": 70, "n2": 165, "n3": 1, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#081018", "manual_beat_n": 1}, "71": {"name": "test northern wave", "pattern": "aurora", "colors": ["#204060", "#4080C0", "#D0F0FF"], "brightness": 200, "delay": 75, "auto": true, "n1": 18, "n2": 190, "n3": 2, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#050A14", "manual_beat_n": 1}, "72": {"name": "test candle glow", "pattern": "candle_glow", "colors": ["#FF7020", "#FFD090", "#FFB060"], "brightness": 190, "delay": 65, "auto": true, "n1": 3, "n2": 4, "n3": 100, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#080408", "manual_beat_n": 1}, "73": {"name": "test starfall", "pattern": "particles", "colors": ["#FFFFFF", "#B8D8FF", "#FFF0C0"], "brightness": 220, "delay": 50, "auto": true, "n1": 20, "n2": 3, "n3": 10, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#030610", "manual_beat_n": 1}, "74": {"name": "test ice sparkle", "pattern": "sparkle", "colors": ["#F0F8FF", "#A8D0FF", "#FFFFFF"], "brightness": 215, "delay": 45, "auto": true, "n1": 85, "n2": 150, "n3": 2, "n4": 0, "n5": 0, "n6": 1, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#06121A", "manual_beat_n": 1}, "75": {"name": "test icicles", "pattern": "icicles", "colors": ["#E8F4FF", "#88C0FF", "#FFFFFF"], "brightness": 220, "delay": 70, "auto": true, "n1": 12, "n2": 9, "n3": 2, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#081420", "manual_beat_n": 1}, "76": {"name": "test blizzard", "pattern": "blizzard", "colors": ["#FFFFFF", "#D0E8FF", "#B0C8F0"], "brightness": 220, "delay": 40, "auto": true, "n1": 95, "n2": 3, "n3": 128, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#040810", "manual_beat_n": 1}, "77": {"name": "test rime", "pattern": "rime", "colors": ["#E0F0FF", "#FFFFFF", "#A8D0F0"], "brightness": 205, "delay": 100, "auto": true, "n1": 35, "n2": 20, "n3": 5, "n4": 0, "n5": 0, "n6": 0, "n7": 0, "n8": 0, "profile_id": "1", "palette_refs": [null, null, null], "background": "#061018", "manual_beat_n": 1}} \ No newline at end of file +{"1":{"name":"on","pattern":"on","colors":["#FFFFFF"],"brightness":255,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"2":{"name":"off","pattern":"off","colors":[],"brightness":0,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"3":{"name":"rainbow","pattern":"colour_cycle","colors":[],"brightness":255,"delay":100,"auto":true,"n1":2,"n2":0,"n3":0,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1"},"4":{"name":"transition","pattern":"transition","colors":["#FF0000","#00FF00","#0000FF"],"brightness":255,"delay":300,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#000000","manual_beat_n":1},"5":{"name":"chase","pattern":"chase","colors":["#FFFF00","#FF00FF"],"brightness":128,"delay":200,"auto":false,"n1":30,"n2":30,"n3":30,"n4":30,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[3,4],"manual_beat_n":1,"background":"#000000","background_palette_ref":null,"mode":0},"6":{"name":"pulse","pattern":"pulse","colors":["#FF00FF"],"brightness":255,"delay":1000,"auto":false,"n1":100,"n2":0,"n3":100,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[4],"background_color":"#ec0909","background_palette_ref":8,"manual_beat_n":1,"background":"#050500"},"7":{"name":"circle","pattern":"circle","colors":["#FFA500","#800080"],"brightness":255,"delay":200,"auto":true,"n1":2,"n2":10,"n3":2,"n4":5,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"8":{"name":"blink","pattern":"blink","colors":["#FF0000","#00FF00","#0000FF","#FFFF00"],"brightness":255,"delay":1000,"auto":false,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null,null]},"9":{"name":"warm white","pattern":"on","colors":["#FFF5E6"],"brightness":200,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"10":{"name":"cool white","pattern":"on","colors":["#E6F2FF"],"brightness":200,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"11":{"name":"red","pattern":"on","colors":["#FF0000"],"brightness":255,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"12":{"name":"blue","pattern":"on","colors":["#0000FF"],"brightness":255,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"13":{"name":"rainbow slow","pattern":"colour_cycle","colors":[],"brightness":255,"delay":150,"auto":true,"n1":1,"n2":0,"n3":0,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1"},"14":{"name":"pulse slow","pattern":"pulse","colors":["#FF6600"],"brightness":255,"delay":800,"auto":true,"n1":2000,"n2":1000,"n3":2000,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"15":{"name":"blink red green","pattern":"blink","colors":["#FF0000","#00FF00"],"brightness":255,"delay":500,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"30":{"name":"rainbow slow","pattern":"colour_cycle","colors":[],"brightness":255,"delay":150,"auto":true,"n1":1,"n2":0,"n3":0,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"2"},"31":{"name":"DJ Rainbow","pattern":"colour_cycle","colors":[],"brightness":220,"delay":60,"n1":12,"n2":0,"n3":0,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"2"},"32":{"name":"DJ Single Color","pattern":"on","colors":["#ff00ff"],"brightness":220,"delay":100,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"2"},"33":{"name":"DJ Transition","pattern":"transition","colors":["#ff0000","#00ff00","#0000ff"],"brightness":220,"delay":250,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"2"},"34":{"name":"DJ Rainbow","pattern":"colour_cycle","colors":[],"brightness":220,"delay":60,"n1":12,"n2":0,"n3":0,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"2"},"35":{"name":"DJ Single Color","pattern":"on","colors":["#ff00ff"],"brightness":220,"delay":100,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"2"},"36":{"name":"DJ Transition","pattern":"transition","colors":["#ff0000","#00ff00","#0000ff"],"brightness":220,"delay":250,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"2"},"37":{"name":"tranistion2","pattern":"transition","colors":["#FF0000","#FFFF00","#FF00FF"],"brightness":128,"delay":1000,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[0,3,4]},"38":{"name":"Colour Cycle","pattern":"colour_cycle","colors":["#FF0000","#0000FF"],"brightness":255,"delay":100,"auto":true,"n1":1,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null]},"39":{"name":"flicker","pattern":"flicker","colors":["#ae00ff"],"brightness":255,"delay":50,"auto":false,"n1":100,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null],"background":"#000000","manual_beat_n":1},"40":{"name":"flame","pattern":"flame","colors":["#ffc800"],"brightness":128,"delay":50,"auto":true,"n1":35,"n2":2600,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null],"background":"#000000","background_palette_ref":null,"manual_beat_n":1},"41":{"name":"twinkle","pattern":"twinkle","colors":["#78C8FF","#508CFF","#B478FF","#64DCE8","#A0C8FF"],"brightness":255,"delay":100,"auto":true,"n1":150,"n2":20,"n3":0,"n4":10,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null,null,null],"background":"#000000","manual_beat_n":1,"background_palette_ref":null},"42":{"name":"radiate","pattern":"radiate","colors":["#a600ff"],"brightness":255,"delay":2000,"auto":false,"n1":60,"n2":200,"n3":100,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null],"manual_beat_n":1,"background":"#050500","background_palette_ref":8},"43":{"name":"test meteor rain","pattern":"meteor","colors":["#FF5000","#0080FF"],"brightness":200,"delay":40,"auto":true,"n1":50,"n2":1,"n3":200,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null]},"44":{"name":"test scanner","pattern":"meteor","colors":["#FF0000"],"brightness":255,"delay":30,"auto":true,"n1":4,"n2":2,"n3":0,"n4":0,"n5":0,"n6":2,"n7":0,"n8":0,"profile_id":"1"},"45":{"name":"test gradient scroll","pattern":"colour_cycle","colors":["#FF0000","#00FF00","#0000FF"],"brightness":220,"delay":60,"auto":true,"n1":2,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"46":{"name":"test comet dual","pattern":"meteor","colors":["#FFAA00","#00AAFF"],"brightness":200,"delay":60,"auto":true,"n1":8,"n2":1,"n3":3,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null],"background":"#0b000f","manual_beat_n":1},"47":{"name":"test sparkle trail","pattern":"sparkle","colors":["#88CCFF","#FFFFFF"],"brightness":200,"delay":60,"auto":true,"n1":24,"n2":210,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null],"background":"#000000","manual_beat_n":1},"49":{"name":"test plasma","pattern":"plasma","colors":["#FF0066"],"brightness":200,"delay":60,"auto":true,"n1":6,"n2":2,"n3":2,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"51":{"name":"test bar graph","pattern":"bar_graph","colors":["#00FF00","#102010"],"brightness":200,"delay":60,"auto":true,"n1":60,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"53":{"name":"test strobe burst","pattern":"strobe_burst","colors":["#FFFFFF"],"brightness":200,"delay":60,"auto":false,"n1":2,"n2":10,"n3":100,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null],"background":"#000000","manual_beat_n":1},"54":{"name":"test rain drops","pattern":"rain_drops","colors":["#7cbdfe"],"brightness":200,"delay":60,"auto":true,"n1":32,"n2":3,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null],"background":"#000000","manual_beat_n":1},"55":{"name":"test fireflies","pattern":"sparkle","colors":["#FFD060","#90FF90"],"brightness":200,"delay":60,"auto":false,"n1":6,"n2":8,"n3":0,"n4":0,"n5":0,"n6":2,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null],"background":"#000000","manual_beat_n":1},"56":{"name":"test clock sweep","pattern":"clock_sweep","colors":["#FFFFFF","#202020"],"brightness":200,"delay":60,"auto":true,"n1":1,"n2":5,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"57":{"name":"test marquee","pattern":"chase","colors":["#FFFFFF"],"brightness":200,"delay":60,"auto":true,"n1":3,"n2":2,"n3":1,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1"},"58":{"name":"test aurora","pattern":"aurora","colors":["#2CC88C","#5078FF","#A050DC"],"brightness":200,"delay":60,"auto":true,"n1":3,"n2":40,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"59":{"name":"test snowfall","pattern":"particles","colors":["#FFFFFF","#B0DCFF"],"brightness":200,"delay":60,"auto":true,"n1":20,"n2":1,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"61":{"name":"test orbit","pattern":"orbit","colors":["#FFFFFF","#00B4FF","#FF0077"],"brightness":200,"delay":60,"auto":true,"n1":3,"n2":1,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null]},"62":{"name":"test palette morph","pattern":"palette_morph","colors":["#FF0000","#00FF00","#0000FF"],"brightness":200,"delay":60,"auto":true,"n1":1200,"n2":200,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1"},"63":{"name":"off","pattern":"off","colors":[],"background":"#000000","brightness":0,"delay":0,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"manual_beat_n":1,"profile_id":"2","palette_refs":[],"auto":true},"64":{"name":"winter icicles","pattern":"icicles","colors":["#F0F8FF","#9ECFFF","#FFFFFF"],"brightness":220,"delay":80,"auto":true,"n1":14,"n2":11,"n3":1,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#0A1520","manual_beat_n":1},"65":{"name":"winter blizzard","pattern":"blizzard","colors":["#FFFFFF","#CDE8FF","#AACCF5"],"brightness":220,"delay":45,"auto":true,"n1":110,"n2":2,"n3":140,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#050810","manual_beat_n":1},"66":{"name":"winter rime frost","pattern":"rime","colors":["#E8F4FF","#FFFFFF","#B8DCF8"],"brightness":200,"delay":120,"auto":true,"n1":40,"n2":18,"n3":4,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#071018","manual_beat_n":1},"67":{"name":"winter northern wave","pattern":"aurora","colors":["#183050","#5090C8","#C8E8FF"],"brightness":200,"delay":90,"auto":true,"n1":22,"n2":210,"n3":1,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#060C18","manual_beat_n":1},"68":{"name":"winter candle glow","pattern":"candle_glow","colors":["#FF8020","#FFC080","#FFA040"],"brightness":180,"delay":70,"auto":true,"n1":4,"n2":3,"n3":120,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#0A0508","manual_beat_n":1},"69":{"name":"winter starfall","pattern":"particles","colors":["#FFFFFF","#C8E8FF","#FFF8E0"],"brightness":220,"delay":55,"auto":true,"n1":16,"n2":2,"n3":12,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#040810","manual_beat_n":1},"70":{"name":"winter ice sparkle","pattern":"sparkle","colors":["#E8F4FF","#B0DCFF","#FFFFFF"],"brightness":210,"delay":50,"auto":true,"n1":70,"n2":165,"n3":1,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#081018","manual_beat_n":1},"71":{"name":"test northern wave","pattern":"aurora","colors":["#204060","#4080C0","#D0F0FF"],"brightness":200,"delay":75,"auto":true,"n1":18,"n2":190,"n3":2,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#050A14","manual_beat_n":1},"72":{"name":"test candle glow","pattern":"candle_glow","colors":["#FF7020","#FFD090","#FFB060"],"brightness":190,"delay":65,"auto":true,"n1":3,"n2":4,"n3":100,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#080408","manual_beat_n":1},"73":{"name":"test starfall","pattern":"particles","colors":["#FFFFFF","#B8D8FF","#FFF0C0"],"brightness":220,"delay":50,"auto":true,"n1":20,"n2":3,"n3":10,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#030610","manual_beat_n":1},"74":{"name":"test ice sparkle","pattern":"sparkle","colors":["#F0F8FF","#A8D0FF","#FFFFFF"],"brightness":215,"delay":45,"auto":true,"n1":85,"n2":150,"n3":2,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#06121A","manual_beat_n":1},"75":{"name":"test icicles","pattern":"icicles","colors":["#E8F4FF","#88C0FF","#FFFFFF"],"brightness":220,"delay":70,"auto":true,"n1":12,"n2":9,"n3":2,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#081420","manual_beat_n":1},"76":{"name":"test blizzard","pattern":"blizzard","colors":["#FFFFFF","#D0E8FF","#B0C8F0"],"brightness":220,"delay":40,"auto":true,"n1":95,"n2":3,"n3":128,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#040810","manual_beat_n":1},"77":{"name":"test rime","pattern":"rime","colors":["#E0F0FF","#FFFFFF","#A8D0F0"],"brightness":205,"delay":100,"auto":true,"n1":35,"n2":20,"n3":5,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"1","palette_refs":[null,null,null],"background":"#061018","manual_beat_n":1},"78":{"name":"winter off","pattern":"off","colors":[],"brightness":0,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1},"79":{"name":"winter twinkle","pattern":"twinkle","colors":["#78C8FF","#508CFF","#B478FF","#64DCE8","#A0C8FF"],"brightness":220,"delay":100,"auto":true,"n1":150,"n2":20,"n3":0,"n4":10,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1,"palette_refs":[null,null,null,null,null]},"80":{"name":"winter icicles","pattern":"icicles","colors":["#F0F8FF","#9ECFFF","#FFFFFF"],"brightness":220,"delay":80,"auto":true,"n1":14,"n2":11,"n3":1,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1,"palette_refs":[null,null,null]},"81":{"name":"winter blizzard","pattern":"blizzard","colors":["#FFFFFF","#CDE8FF","#AACCF5"],"brightness":220,"delay":45,"auto":true,"n1":110,"n2":2,"n3":140,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1,"palette_refs":[null,null,null]},"82":{"name":"winter rime","pattern":"rime","colors":["#E8F4FF","#FFFFFF","#B8DCF8"],"brightness":220,"delay":120,"auto":true,"n1":40,"n2":18,"n3":4,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1,"palette_refs":[null,null,null]},"83":{"name":"winter aurora","pattern":"aurora","colors":["#183050","#5090C8","#C8E8FF"],"brightness":220,"delay":90,"auto":true,"n1":22,"n2":210,"n3":0,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1,"palette_refs":[null,null,null]},"84":{"name":"winter starfall","pattern":"particles","colors":["#FFFFFF","#C8E8FF","#FFF8E0"],"brightness":220,"delay":55,"auto":true,"n1":16,"n2":2,"n3":12,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1,"palette_refs":[null,null,null]},"85":{"name":"winter ice sparkle","pattern":"sparkle","colors":["#E8F4FF","#B0DCFF","#FFFFFF"],"brightness":220,"delay":50,"auto":true,"n1":70,"n2":165,"n3":1,"n4":0,"n5":0,"n6":1,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1,"palette_refs":[null,null,null]},"86":{"name":"winter cool white","pattern":"on","colors":["#E6F2FF"],"brightness":200,"delay":100,"auto":true,"n1":0,"n2":0,"n3":0,"n4":0,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"3","background":"#0A1520","manual_beat_n":1},"87":{"name":"winter ice chase","pattern":"chase","colors":["#E8F4FF","#5080C8"],"brightness":220,"delay":120,"auto":false,"n1":20,"n2":20,"n3":15,"n4":15,"n5":0,"n6":0,"n7":0,"n8":0,"profile_id":"3","background":"#071018","manual_beat_n":1,"palette_refs":[null,null]}} \ No newline at end of file diff --git a/db/profile.json b/db/profile.json index f45e4a2..11b0fcc 100644 --- a/db/profile.json +++ b/db/profile.json @@ -1 +1 @@ -{"1": {"name": "default", "type": "zones", "zones": ["1", "9", "8", "10"], "scenes": [], "palette_id": "1"}, "2": {"name": "test", "type": "zones", "zones": ["6", "7"], "scenes": [], "palette_id": "12"}} \ No newline at end of file +{"1":{"name":"default","type":"zones","zones":["1","9","8","10"],"scenes":[],"palette_id":"1"},"2":{"name":"test","type":"zones","zones":["6","7"],"scenes":[],"palette_id":"12"},"3":{"name":"Winter","type":"zones","zones":["11","12"],"scenes":[],"palette_id":"14"}} \ No newline at end of file diff --git a/db/sequence.json b/db/sequence.json index 41ecca8..f99ee9a 100644 --- a/db/sequence.json +++ b/db/sequence.json @@ -1 +1 @@ -{"1": {"name": "Pulse (manual)", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "6", "beats": 1}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "6", "beats": 1}], "step_duration_ms": 3000, "simulated_bpm": 120, "sequence_transition": 500, "loop": true}, "2": {"name": "Off (1 beat)", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "2", "beats": 1}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "2", "beats": 1}], "step_duration_ms": 3000, "simulated_bpm": 120, "sequence_transition": 500, "loop": false}, "3": {"name": "On (1 beat)", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "1", "beats": 1}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "1", "beats": 1}], "step_duration_ms": 3000, "simulated_bpm": 120, "sequence_transition": 500, "loop": false}, "4": {"name": "Rainbow \u2192 transition \u2192 off", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "3", "beats": 4}, {"preset_id": "4", "beats": 4}, {"preset_id": "2", "beats": 2}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "3", "beats": 4}, {"preset_id": "4", "beats": 4}, {"preset_id": "2", "beats": 2}], "step_duration_ms": 3000, "simulated_bpm": 100, "sequence_transition": 500, "loop": true}, "5": {"name": "Manual pulse + chase", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "6", "beats": 2}, {"preset_id": "5", "beats": 2}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "6", "beats": 2}, {"preset_id": "5", "beats": 2}], "step_duration_ms": 3000, "simulated_bpm": 120, "sequence_transition": 500, "loop": false}, "6": {"name": "RGB solid cycle", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "11", "beats": 2}, {"preset_id": "12", "beats": 2}, {"preset_id": "9", "beats": 2}, {"preset_id": "10", "beats": 2}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "11", "beats": 2}, {"preset_id": "12", "beats": 2}, {"preset_id": "9", "beats": 2}, {"preset_id": "10", "beats": 2}], "step_duration_ms": 3000, "simulated_bpm": 90, "sequence_transition": 500, "loop": true}, "7": {"name": "Winter trio", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "64", "beats": 8}, {"preset_id": "65", "beats": 8}, {"preset_id": "66", "beats": 8}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "64", "beats": 8}, {"preset_id": "65", "beats": 8}, {"preset_id": "66", "beats": 8}], "step_duration_ms": 3000, "simulated_bpm": 80, "sequence_transition": 500, "loop": true}, "8": {"name": "Fast rainbow", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "1", "beats": 1}, {"preset_id": "3", "beats": 4}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "1", "beats": 1}, {"preset_id": "3", "beats": 4}], "step_duration_ms": 3000, "simulated_bpm": 180, "sequence_transition": 500, "loop": true}, "9": {"name": "Off then on", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "2", "beats": 2}, {"preset_id": "1", "beats": 4}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "2", "beats": 2}, {"preset_id": "1", "beats": 4}], "step_duration_ms": 3000, "simulated_bpm": 120, "sequence_transition": 500, "loop": false}, "10": {"name": "Twinkle + flame", "profile_id": "1", "group_ids": ["5"], "lanes": [[{"preset_id": "41", "beats": 6}]], "lanes_group_ids": [["5"]], "advance_mode": "beats", "steps": [{"preset_id": "41", "beats": 6}], "step_duration_ms": 3000, "simulated_bpm": 110, "sequence_transition": 500, "loop": true}, "11": {"name": "radiate chase", "profile_id": "1", "group_ids": [], "lanes": [[{"preset_id": "42", "beats": 12}, {"preset_id": "5", "beats": 4}]], "lanes_group_ids": [[]], "advance_mode": "beats", "steps": [{"preset_id": "42", "beats": 12}, {"preset_id": "5", "beats": 4}], "step_duration_ms": 3000, "simulated_bpm": 120, "sequence_transition": 500, "loop": true}} \ No newline at end of file +{"1":{"name":"Pulse (manual)","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"6","beats":1}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"6","beats":1}],"step_duration_ms":3000,"simulated_bpm":120,"sequence_transition":500,"loop":true},"2":{"name":"Off (1 beat)","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"2","beats":1}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"2","beats":1}],"step_duration_ms":3000,"simulated_bpm":120,"sequence_transition":500,"loop":false},"3":{"name":"On (1 beat)","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"1","beats":1}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"1","beats":1}],"step_duration_ms":3000,"simulated_bpm":120,"sequence_transition":500,"loop":false},"4":{"name":"Rainbow \u2192 transition \u2192 off","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"3","beats":4},{"preset_id":"4","beats":4},{"preset_id":"2","beats":2}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"3","beats":4},{"preset_id":"4","beats":4},{"preset_id":"2","beats":2}],"step_duration_ms":3000,"simulated_bpm":100,"sequence_transition":500,"loop":true},"5":{"name":"Manual pulse + chase","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"6","beats":2},{"preset_id":"5","beats":2}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"6","beats":2},{"preset_id":"5","beats":2}],"step_duration_ms":3000,"simulated_bpm":120,"sequence_transition":500,"loop":false},"6":{"name":"RGB solid cycle","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"11","beats":2},{"preset_id":"12","beats":2},{"preset_id":"9","beats":2},{"preset_id":"10","beats":2}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"11","beats":2},{"preset_id":"12","beats":2},{"preset_id":"9","beats":2},{"preset_id":"10","beats":2}],"step_duration_ms":3000,"simulated_bpm":90,"sequence_transition":500,"loop":true},"7":{"name":"Winter trio","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"64","beats":8},{"preset_id":"65","beats":8},{"preset_id":"66","beats":8}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"64","beats":8},{"preset_id":"65","beats":8},{"preset_id":"66","beats":8}],"step_duration_ms":3000,"simulated_bpm":80,"sequence_transition":500,"loop":true},"8":{"name":"Fast rainbow","profile_id":"1","group_ids":[],"lanes":[[{"preset_id":"3","beats":4}]],"lanes_group_ids":[[]],"advance_mode":"beats","steps":[{"preset_id":"3","beats":4}],"step_duration_ms":3000,"simulated_bpm":180,"sequence_transition":500,"loop":true},"9":{"name":"Off then on","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"2","beats":2},{"preset_id":"1","beats":4}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"2","beats":2},{"preset_id":"1","beats":4}],"step_duration_ms":3000,"simulated_bpm":120,"sequence_transition":500,"loop":false},"10":{"name":"Twinkle + flame","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"41","beats":6}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"41","beats":6}],"step_duration_ms":3000,"simulated_bpm":110,"sequence_transition":500,"loop":true},"11":{"name":"radiate chase","profile_id":"1","group_ids":["5"],"lanes":[[{"preset_id":"42","beats":12},{"preset_id":"5","beats":4}]],"lanes_group_ids":[["5"]],"advance_mode":"beats","steps":[{"preset_id":"42","beats":12},{"preset_id":"5","beats":4}],"step_duration_ms":3000,"simulated_bpm":120,"sequence_transition":500,"loop":true},"12":{"name":"Winter cell cascade","profile_id":"3","group_ids":["17"],"lanes":[[{"preset_id":"80","beats":6}],[{"preset_id":"85","beats":6}],[{"preset_id":"81","beats":6}],[{"preset_id":"82","beats":6}],[{"preset_id":"83","beats":6}],[{"preset_id":"84","beats":6}]],"lanes_group_ids":[["6"],["7"],["8"],["9"],["10"],["11"]],"advance_mode":"beats","steps":[{"preset_id":"80","beats":6},{"preset_id":"85","beats":6},{"preset_id":"81","beats":6},{"preset_id":"82","beats":6},{"preset_id":"83","beats":6},{"preset_id":"84","beats":6}],"step_duration_ms":3000,"simulated_bpm":85,"sequence_transition":500,"loop":true},"13":{"name":"Winter row waves","profile_id":"3","group_ids":["17"],"lanes":[[{"preset_id":"81","beats":8},{"preset_id":"80","beats":8}],[{"preset_id":"83","beats":8},{"preset_id":"82","beats":8}]],"lanes_group_ids":[["12"],["13"]],"advance_mode":"beats","steps":[{"preset_id":"81","beats":8},{"preset_id":"80","beats":8},{"preset_id":"83","beats":8},{"preset_id":"82","beats":8}],"step_duration_ms":3000,"simulated_bpm":80,"sequence_transition":500,"loop":true},"14":{"name":"Winter column chase","profile_id":"3","group_ids":["17"],"lanes":[[{"preset_id":"87","beats":12}],[{"preset_id":"79","beats":12}],[{"preset_id":"84","beats":12}]],"lanes_group_ids":[["14"],["15"],["16"]],"advance_mode":"beats","steps":[{"preset_id":"87","beats":12},{"preset_id":"79","beats":12},{"preset_id":"84","beats":12}],"step_duration_ms":3000,"simulated_bpm":95,"sequence_transition":500,"loop":true},"15":{"name":"Winter full blizzard","profile_id":"3","group_ids":["17"],"lanes":[[{"preset_id":"81","beats":16}]],"lanes_group_ids":[["17"]],"advance_mode":"beats","steps":[{"preset_id":"81","beats":16}],"step_duration_ms":3000,"simulated_bpm":75,"sequence_transition":500,"loop":true},"16":{"name":"Winter showcase","profile_id":"3","group_ids":["17"],"lanes":[[{"preset_id":"80","beats":8},{"preset_id":"81","beats":8},{"preset_id":"82","beats":8},{"preset_id":"83","beats":8},{"preset_id":"84","beats":8},{"preset_id":"79","beats":8}]],"lanes_group_ids":[["17"]],"advance_mode":"beats","steps":[{"preset_id":"80","beats":8},{"preset_id":"81","beats":8},{"preset_id":"82","beats":8},{"preset_id":"83","beats":8},{"preset_id":"84","beats":8},{"preset_id":"79","beats":8}],"step_duration_ms":3000,"simulated_bpm":72,"sequence_transition":500,"loop":true}} \ No newline at end of file diff --git a/scripts/create_winter_profile.py b/scripts/create_winter_profile.py new file mode 100644 index 0000000..693fb2c --- /dev/null +++ b/scripts/create_winter_profile.py @@ -0,0 +1,419 @@ +#!/usr/bin/env python3 +"""Add Winter profile: 6-light 2x3 grid, presets, and sequences.""" + +from __future__ import annotations + +import json +from copy import deepcopy +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +DB = ROOT / "db" + +PROFILE_ID = "3" +PALETTE_ID = "14" +ZONE_PRESETS_ID = "11" +ZONE_SEQUENCES_ID = "12" + +# 2x3 grid device MACs (placeholders — assign real devices in the UI) +DEVICE_MACS = [ + "a0b100000001", # r0c0 top-left + "a0b100000002", # r0c1 + "a0b100000003", # r0c2 + "a0b100000004", # r1c0 bottom-left + "a0b100000005", # r1c1 + "a0b100000006", # r1c2 +] + +GROUP_CELL = { + "a0b100000001": "6", + "a0b100000002": "7", + "a0b100000003": "8", + "a0b100000004": "9", + "a0b100000005": "10", + "a0b100000006": "11", +} +GROUP_TOP_ROW = "12" +GROUP_BOTTOM_ROW = "13" +GROUP_COL_LEFT = "14" +GROUP_COL_MID = "15" +GROUP_COL_RIGHT = "16" +GROUP_ALL = "17" + +PRESET_OFF = "78" +PRESET_TWINKLE = "79" +PRESET_ICICLES = "80" +PRESET_BLIZZARD = "81" +PRESET_RIME = "82" +PRESET_AURORA = "83" +PRESET_STARFALL = "84" +PRESET_SPARKLE = "85" +PRESET_COOL_WHITE = "86" +PRESET_CHASE_ICE = "87" + +SEQ_CASCADE = "12" +SEQ_ROWS = "13" +SEQ_COLUMNS = "14" +SEQ_BLIZZARD_ALL = "15" +SEQ_ROTATION = "16" + + +def load_json(name: str) -> dict: + path = DB / f"{name}.json" + return json.loads(path.read_text(encoding="utf-8")) + + +def save_json(name: str, data: dict) -> None: + path = DB / f"{name}.json" + path.write_text(json.dumps(data, separators=(",", ":")), encoding="utf-8") + + +def preset_skeleton(name: str, pattern: str, colors: list, **extra) -> dict: + doc = { + "name": name, + "pattern": pattern, + "colors": colors, + "brightness": 220, + "delay": 80, + "auto": True, + "n1": 0, + "n2": 0, + "n3": 0, + "n4": 0, + "n5": 0, + "n6": 0, + "n7": 0, + "n8": 0, + "profile_id": PROFILE_ID, + "background": "#0A1520", + "manual_beat_n": 1, + } + doc.update(extra) + if "palette_refs" not in doc and pattern not in ("on", "off"): + doc["palette_refs"] = [None] * len(colors) + return doc + + +def seq_doc( + name: str, + lanes: list, + lanes_group_ids: list, + *, + loop: bool = True, + simulated_bpm: int = 90, +) -> dict: + steps = [step for lane in lanes for step in lane] + return { + "name": name, + "profile_id": PROFILE_ID, + "group_ids": [GROUP_ALL], + "lanes": lanes, + "lanes_group_ids": lanes_group_ids, + "advance_mode": "beats", + "steps": steps, + "step_duration_ms": 3000, + "simulated_bpm": simulated_bpm, + "sequence_transition": 500, + "loop": loop, + } + + +def main() -> None: + profiles = load_json("profile") + palettes = load_json("palette") + groups = load_json("group") + devices = load_json("device") + zones = load_json("zone") + sequences = load_json("sequence") + presets = load_json("preset") + + labels = [ + ("winter top-left", 0), + ("winter top-centre", 1), + ("winter top-right", 2), + ("winter bottom-left", 3), + ("winter bottom-centre", 4), + ("winter bottom-right", 5), + ] + + profiles[PROFILE_ID] = { + "name": "Winter", + "type": "zones", + "zones": [ZONE_PRESETS_ID, ZONE_SEQUENCES_ID], + "scenes": [], + "palette_id": PALETTE_ID, + } + + palettes[PALETTE_ID] = [ + "#E8F4FF", + "#9ECFFF", + "#5080C8", + "#FFFFFF", + "#B0DCFF", + "#0A1520", + "#FF8020", + "#071018", + ] + + for mac, (label, _idx) in zip(DEVICE_MACS, labels): + devices[mac] = { + "id": mac, + "name": label, + "type": "led", + "transport": "wifi", + "address": "", + "default_pattern": None, + "zones": [], + "output_brightness": 255, + "wifi_color_order": "rgb", + "wifi_startup_mode": "default", + } + + def group_row(gid: str, name: str, macs: list) -> None: + groups[gid] = { + "name": name, + "devices": macs, + "profile_id": PROFILE_ID, + "wifi_color_order": "rgb", + "wifi_startup_mode": "default", + "output_brightness": 255, + "pattern": "on", + "colors": ["000000", "E8F4FF"], + "brightness": 100, + "delay": 100, + "step_offset": 0, + "step_increment": 1, + "n1": 0, + "n2": 0, + "n3": 0, + "n4": 0, + "n5": 0, + "n6": 0, + "n7": 0, + "n8": 0, + } + + for mac, gid in zip(DEVICE_MACS, GROUP_CELL.values()): + group_row(gid, labels[DEVICE_MACS.index(mac)][0], [mac]) + + group_row(GROUP_TOP_ROW, "winter top row", DEVICE_MACS[:3]) + group_row(GROUP_BOTTOM_ROW, "winter bottom row", DEVICE_MACS[3:]) + group_row(GROUP_COL_LEFT, "winter left column", [DEVICE_MACS[0], DEVICE_MACS[3]]) + group_row(GROUP_COL_MID, "winter centre column", [DEVICE_MACS[1], DEVICE_MACS[4]]) + group_row(GROUP_COL_RIGHT, "winter right column", [DEVICE_MACS[2], DEVICE_MACS[5]]) + group_row(GROUP_ALL, "winter grid (all)", list(DEVICE_MACS)) + + presets[PRESET_OFF] = preset_skeleton("winter off", "off", [], brightness=0, delay=100) + presets[PRESET_TWINKLE] = preset_skeleton( + "winter twinkle", + "twinkle", + ["#78C8FF", "#508CFF", "#B478FF", "#64DCE8", "#A0C8FF"], + n1=150, + n2=20, + n4=10, + delay=100, + ) + presets[PRESET_ICICLES] = preset_skeleton( + "winter icicles", + "icicles", + ["#F0F8FF", "#9ECFFF", "#FFFFFF"], + n1=14, + n2=11, + n3=1, + delay=80, + ) + presets[PRESET_BLIZZARD] = preset_skeleton( + "winter blizzard", + "blizzard", + ["#FFFFFF", "#CDE8FF", "#AACCF5"], + n1=110, + n2=2, + n3=140, + delay=45, + ) + presets[PRESET_RIME] = preset_skeleton( + "winter rime", + "rime", + ["#E8F4FF", "#FFFFFF", "#B8DCF8"], + n1=40, + n2=18, + n3=4, + delay=120, + ) + presets[PRESET_AURORA] = preset_skeleton( + "winter aurora", + "aurora", + ["#183050", "#5090C8", "#C8E8FF"], + n1=22, + n2=210, + n6=1, + delay=90, + ) + presets[PRESET_STARFALL] = preset_skeleton( + "winter starfall", + "particles", + ["#FFFFFF", "#C8E8FF", "#FFF8E0"], + n1=16, + n2=2, + n3=12, + n6=1, + delay=55, + ) + presets[PRESET_SPARKLE] = preset_skeleton( + "winter ice sparkle", + "sparkle", + ["#E8F4FF", "#B0DCFF", "#FFFFFF"], + n1=70, + n2=165, + n3=1, + n6=1, + delay=50, + ) + presets[PRESET_COOL_WHITE] = preset_skeleton( + "winter cool white", + "on", + ["#E6F2FF"], + brightness=200, + delay=100, + ) + presets[PRESET_CHASE_ICE] = preset_skeleton( + "winter ice chase", + "chase", + ["#E8F4FF", "#5080C8"], + auto=False, + n1=20, + n2=20, + n3=15, + n4=15, + delay=120, + background="#071018", + ) + + grid_presets = [ + [PRESET_ICICLES, PRESET_TWINKLE, PRESET_BLIZZARD], + [PRESET_RIME, PRESET_AURORA, PRESET_STARFALL], + ] + flat = [p for row in grid_presets for p in row] + + zones[ZONE_PRESETS_ID] = { + "name": "Winter grid", + "names": [], + "group_ids": [GROUP_ALL], + "preset_group_ids": {}, + "presets": grid_presets, + "presets_flat": flat, + "default_preset": PRESET_TWINKLE, + "brightness": 200, + "sequence_ids": [], + "content_kind": "presets", + } + + sequences[SEQ_CASCADE] = seq_doc( + "Winter cell cascade", + [ + [{"preset_id": PRESET_ICICLES, "beats": 6}], + [{"preset_id": PRESET_SPARKLE, "beats": 6}], + [{"preset_id": PRESET_BLIZZARD, "beats": 6}], + [{"preset_id": PRESET_RIME, "beats": 6}], + [{"preset_id": PRESET_AURORA, "beats": 6}], + [{"preset_id": PRESET_STARFALL, "beats": 6}], + ], + [ + [GROUP_CELL[DEVICE_MACS[0]]], + [GROUP_CELL[DEVICE_MACS[1]]], + [GROUP_CELL[DEVICE_MACS[2]]], + [GROUP_CELL[DEVICE_MACS[3]]], + [GROUP_CELL[DEVICE_MACS[4]]], + [GROUP_CELL[DEVICE_MACS[5]]], + ], + simulated_bpm=85, + ) + + sequences[SEQ_ROWS] = seq_doc( + "Winter row waves", + [ + [ + {"preset_id": PRESET_BLIZZARD, "beats": 8}, + {"preset_id": PRESET_ICICLES, "beats": 8}, + ], + [ + {"preset_id": PRESET_AURORA, "beats": 8}, + {"preset_id": PRESET_RIME, "beats": 8}, + ], + ], + [[GROUP_TOP_ROW], [GROUP_BOTTOM_ROW]], + simulated_bpm=80, + ) + + sequences[SEQ_COLUMNS] = seq_doc( + "Winter column chase", + [ + [{"preset_id": PRESET_CHASE_ICE, "beats": 12}], + [{"preset_id": PRESET_TWINKLE, "beats": 12}], + [{"preset_id": PRESET_STARFALL, "beats": 12}], + ], + [[GROUP_COL_LEFT], [GROUP_COL_MID], [GROUP_COL_RIGHT]], + simulated_bpm=95, + ) + + sequences[SEQ_BLIZZARD_ALL] = seq_doc( + "Winter full blizzard", + [[{"preset_id": PRESET_BLIZZARD, "beats": 16}]], + [[GROUP_ALL]], + simulated_bpm=75, + ) + + sequences[SEQ_ROTATION] = seq_doc( + "Winter showcase", + [ + [ + {"preset_id": PRESET_ICICLES, "beats": 8}, + {"preset_id": PRESET_BLIZZARD, "beats": 8}, + {"preset_id": PRESET_RIME, "beats": 8}, + {"preset_id": PRESET_AURORA, "beats": 8}, + {"preset_id": PRESET_STARFALL, "beats": 8}, + {"preset_id": PRESET_TWINKLE, "beats": 8}, + ] + ], + [[GROUP_ALL]], + simulated_bpm=72, + ) + + zones[ZONE_SEQUENCES_ID] = { + "name": "Winter sequences", + "names": [], + "group_ids": [GROUP_ALL], + "preset_group_ids": {}, + "presets": [], + "presets_flat": [], + "default_preset": None, + "brightness": 200, + "sequence_ids": [ + SEQ_CASCADE, + SEQ_ROWS, + SEQ_COLUMNS, + SEQ_BLIZZARD_ALL, + SEQ_ROTATION, + ], + "content_kind": "sequences", + } + + save_json("profile", profiles) + save_json("palette", palettes) + save_json("group", groups) + save_json("device", devices) + save_json("zone", zones) + save_json("sequence", sequences) + save_json("preset", presets) + + print("Winter profile created:") + print(f" profile {PROFILE_ID}, palette {PALETTE_ID}") + print(f" zones {ZONE_PRESETS_ID} (presets 2x3), {ZONE_SEQUENCES_ID} (sequences)") + print(f" devices {', '.join(DEVICE_MACS)}") + print(f" groups {GROUP_CELL} + rows/cols/all") + print(f" presets {PRESET_OFF}-{PRESET_CHASE_ICE}") + print(f" sequences {SEQ_CASCADE}-{SEQ_ROTATION}") + + +if __name__ == "__main__": + main()