new visualizer for ambient light, replace base_color algorithm

This commit is contained in:
Lucca Ketterer 2021-04-27 15:13:45 +02:00
parent 67a40ce98e
commit afd2fcb9af

View File

@ -40,9 +40,8 @@ def helpmenu():
print("-a ambient light") print("-a ambient light")
print("-t test function (debug)") print("-t test function (debug)")
def base_color(r,g,b): def base_color(color):
min_value = min([r,g,b]) return [i // min(color) for i in color]
return r//min_value, g//min_value, b//min_value
def visualizer(color): def visualizer(color):
r,g,b = hex_to_rgb(color) r,g,b = hex_to_rgb(color)
@ -66,10 +65,26 @@ def visualizer(color):
cava.stdout.close() cava.stdout.close()
sed.stdout.close() sed.stdout.close()
def get_base_color(color):
return [i / min(color) for i in color]
_r,_g,_b = 0,0,0 _r,_g,_b = 0,0,0
volume_amp = 1
def visualizer_cava_thread():
global volume_amp
cava = subprocess.Popen(["cava", "-p", "/etc/lc/cava.conf"], stdout=subprocess.PIPE)
sed = subprocess.Popen(["sed", "-u", "s/;.*;$//"], stdin=cava.stdout, stdout=subprocess.PIPE)
for line in sed.stdout:
volume_amp = int(line)
cava.stdout.close()
sed.stdout.close()
def visualizer_2(color, amp_strength):
global volume_amp
# amp_strength in percentage
amp_factor = (amp_strength*((volume_amp/500)-1)+1)
#print(amp_factor, color, volume_amp)
return [c*amp_factor for c in color]
def vibrant(r,g,b): def vibrant(r,g,b):
intensity = 50 # usabel range 1-100 max:1000 intensity = 50 # usabel range 1-100 max:1000
@ -95,13 +110,14 @@ def ambient_light_thread():
while True: while True:
# P-Regler # P-Regler
r,g,b = [w+((y-w)*0.08) for y,w in zip((_r,_g,_b),(r,g,b))] r,g,b = [w+((y-w)*0.1) for y,w in zip((_r,_g,_b),(r,g,b))]
if ((round(r),round(g),round(b)) == (_r,_g,_b)): if ((round(r),round(g),round(b)) == (_r,_g,_b)):
active_color = '\033[0;32;40m' active_color = '\033[0;32;40m'
else: else:
active_color = '\033[0;31;40m' active_color = '\033[0;31;40m'
print(active_color, round(r),round(g),round(b), '\033[0;37;40m') print(active_color, round(r),round(g),round(b), '\033[0;37;40m')
send(rgb_to_hex(int(r*brighness),int(g*brighness),int(b*brighness))) r_out,g_out,b_out = visualizer_2((r,g,b), 0.4)
send(rgb_to_hex(int(r_out*brighness),int(g_out*brighness),int(b_out*brighness)))
time.sleep(0.01) time.sleep(0.01)
ups_counter = 0 ups_counter = 0
@ -125,8 +141,11 @@ def color_correction(r,g,b):
def ambient_light(): def ambient_light():
t = Thread(target=ambient_light_thread) t1 = Thread(target=ambient_light_thread)
t.start() t1.start()
t2 = Thread(target=visualizer_cava_thread)
t2.start()
global _r,_g,_b global _r,_g,_b