remove web and small improvements
This commit is contained in:
@@ -1,138 +1,20 @@
|
||||
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
|
||||
; mode = normal
|
||||
|
||||
# Accepts only non-negative values.
|
||||
framerate = 60
|
||||
|
||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||
# new as of 0.6.0 autosens of low values (dynamic range)
|
||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
|
||||
; autosens = 1
|
||||
; overshoot = 20
|
||||
|
||||
# Manual sensitivity in %. Autosens must be turned off for this to take effect.
|
||||
# 200 means double height. Accepts only non-negative values.
|
||||
sensitivity = 1000
|
||||
|
||||
# The number of bars (0-200). 0 sets it to auto (fill up console).
|
||||
# Bars' width and space between bars in number of characters.
|
||||
;bars = 128
|
||||
bars = 2
|
||||
; bar_width = 2
|
||||
; bar_spacing = 1
|
||||
|
||||
|
||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||
# the bandwidth of the visualizer.
|
||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||
; lower_cutoff_freq = 50
|
||||
; higher_cutoff_freq = 10000
|
||||
|
||||
|
||||
|
||||
[input]
|
||||
|
||||
# Audio capturing method. Possible methods are: 'pulse', 'alsa' or 'fifo'.
|
||||
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
|
||||
#
|
||||
# All input methods uses the same config variable 'source'
|
||||
# to define where it should get the audio.
|
||||
#
|
||||
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||
#
|
||||
# For alsa 'source' will be the capture device.
|
||||
# For fifo 'source' will be the path to fifo-file.
|
||||
; method = pulse
|
||||
; source = 19
|
||||
|
||||
; method = alsa
|
||||
; source = hw:Loopback,1
|
||||
|
||||
; method = fifo
|
||||
; source = /tmp/mpd.fifo
|
||||
|
||||
|
||||
|
||||
[output]
|
||||
|
||||
# Ouput method. Can be 'ncurses', 'noncurses' or 'raw'.
|
||||
# 'noncurses' is for systems that does not suport ncurses.
|
||||
# 'raw' is a 16 bit data stream of the bar heights that can be used to send to other applications.
|
||||
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
||||
method = raw
|
||||
|
||||
# Visual channels. Can be 'stereo' or 'mono'.
|
||||
# 'stereo' mirrors both channels with low frequencies in center.
|
||||
# 'mono' averages both channels and outputs left to right lowest to highest frequencies.
|
||||
; channels = stereo
|
||||
|
||||
# Raw output target. A fifo will be created if target does not exist.
|
||||
; raw_target = /dev/stdout
|
||||
|
||||
# Raw data format. Can be 'binary' or 'ascii'.
|
||||
data_format = ascii
|
||||
|
||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||
; bit_format = 8bit
|
||||
|
||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||
ascii_max_range = 1000
|
||||
|
||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||
; bar_delimiter = 59
|
||||
; frame_delimiter = 10
|
||||
|
||||
|
||||
|
||||
[color]
|
||||
|
||||
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires a
|
||||
# terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||
; background = black
|
||||
foreground = red
|
||||
|
||||
# Gradient mode, only hex defined colors are supported, background must also be defined in hex
|
||||
# or remain commented out. 1 = on, 0 = off. Warning: for certain terminal emulators cava will
|
||||
# not able to restore color definitions on exit, simply restart your terminal to restore colors.
|
||||
; gradient = 0
|
||||
; gradient_color_1 = '#0099ff'
|
||||
; gradient_color_2 = '#ff3399'
|
||||
|
||||
|
||||
|
||||
[smoothing]
|
||||
|
||||
# Percentage value for integral smoothing. Takes values from 0 - 100.
|
||||
# Higher values means smoother, but less precise. 0 to disable.
|
||||
integral = 20
|
||||
|
||||
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
|
||||
; monstercat = 1
|
||||
; waves = 3;
|
||||
|
||||
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
|
||||
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
|
||||
gravity = 200
|
||||
|
||||
|
||||
# In bar height, bars that would have been lower that this will not be drawn.
|
||||
; ignore = 0
|
||||
|
||||
|
||||
[eq]
|
||||
|
||||
# This one is tricky. You can have as much keys as you want.
|
||||
# Remember to uncomment more then one key! More keys = more precision.
|
||||
# Look at readme.md on github for further explanations and examples.
|
||||
1 = 1 # bass
|
||||
2 = 0
|
||||
3 = 0 # midtone
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
from flask import Flask, render_template
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
@app.route('/')
|
||||
def home():
|
||||
return render_template('index.html')
|
||||
|
||||
@app.route('/set/<int:color>')
|
||||
def set(color):
|
||||
return f'{color}'
|
||||
Executable
BIN
Binary file not shown.
+63
-3
@@ -5,6 +5,7 @@ import asyncio
|
||||
import pickle
|
||||
import re
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
async def scan_for_pi() -> dict():
|
||||
ip = socket.gethostbyname(socket.gethostname())
|
||||
@@ -71,9 +72,62 @@ def set_pixels(color):
|
||||
pi.send(color)
|
||||
pi.disconnect()
|
||||
|
||||
def visualizer(color, amp_strength=0.6):
|
||||
cava_config = '''
|
||||
[general]
|
||||
framerate = 60
|
||||
bars = 2
|
||||
|
||||
[output]
|
||||
method = raw
|
||||
data_format = ascii
|
||||
ascii_max_range = 1000
|
||||
|
||||
[color]
|
||||
foreground = red
|
||||
|
||||
[smoothing]
|
||||
integral = 20
|
||||
gravity = 200
|
||||
|
||||
[eq]
|
||||
1 = 1 # bass
|
||||
2 = 0
|
||||
3 = 0 # midtone
|
||||
4 = 0
|
||||
5 = 0 # treble
|
||||
'''
|
||||
|
||||
with open('/tmp/lc_cava.conf', 'w') as f:
|
||||
f.write(cava_config)
|
||||
|
||||
r = int(color[0:2], 16)
|
||||
g = int(color[2:4], 16)
|
||||
b = int(color[4:6], 16)
|
||||
|
||||
cava = subprocess.Popen(["cava", "-p", "/tmp/lc_cava.conf"], stdout=subprocess.PIPE)
|
||||
|
||||
for line in cava.stdout:
|
||||
cava_value = int(line.decode().split(';')[0])
|
||||
amp_factor = amp_strength * ((cava_value / 500) - 1) + 1
|
||||
# send(rgb_to_hex(int(r * amp_factor), int(g * amp_factor), int(b * amp_factor)))
|
||||
print(r,g,b, amp_factor, line)
|
||||
color = f'{int(r * amp_factor):02x}{int(g * amp_factor):02x}{int(b * amp_factor):02x}'
|
||||
print(color)
|
||||
set_pixels(color)
|
||||
|
||||
cava.stdout.close()
|
||||
sed.stdout.close()
|
||||
|
||||
|
||||
def main(arg):
|
||||
arg = ('help') if len(arg) == 0 else arg
|
||||
|
||||
# if len(arg) == 0:
|
||||
# from gui import app
|
||||
# import webview
|
||||
# webview.create_window('LED Controller', app)
|
||||
# webview.start()
|
||||
|
||||
match arg[0]:
|
||||
case "set":
|
||||
if len(arg) < 2:
|
||||
@@ -81,6 +135,9 @@ def main(arg):
|
||||
return
|
||||
set_pixels(arg[1])
|
||||
|
||||
case "off":
|
||||
set_pixels('000000')
|
||||
|
||||
case "search":
|
||||
ip_list = asyncio.run(scan_for_pi())
|
||||
pi_list = [PI(ip) for ip in ip_list]
|
||||
@@ -92,10 +149,13 @@ def main(arg):
|
||||
for pi in pi_list:
|
||||
print(pi)
|
||||
case "music":
|
||||
pass
|
||||
if len(arg) < 2:
|
||||
print("color argument missing")
|
||||
return
|
||||
visualizer(arg[1])
|
||||
|
||||
case _:
|
||||
print("lc [help|set|search|list]")
|
||||
print("lc [help|set|off|search|list]")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Input Field and Button</title>
|
||||
</head>
|
||||
<body>
|
||||
<input type="text" id="myInput">
|
||||
<button type="button" onclick="myFunction()">Submit</button>
|
||||
<script>
|
||||
function myFunction() {
|
||||
var input = document.getElementById("myInput").value;
|
||||
alert("Input value: " + input);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user