first setup of piano-visualizer on pianonix

This commit is contained in:
2025-11-11 09:55:32 +01:00
parent 9bcca96597
commit 48f53b3884
8 changed files with 195 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
{
lib,
python3,
fetchFromGitHub,
...
}: let
pythonPackages = python3.pkgs;
in
pythonPackages.buildPythonApplication rec {
pname = "piano-led-visualizer";
version = "1.6";
src = fetchFromGitHub {
owner = "onlaj";
repo = "Piano-LED-Visualizer";
rev = "v${version}";
sha256 = "sha256-SkNNu2pqVG40HBZZYJMCCKiRj1h1QdkteaPR3Ek2P7I=";
};
patches = [
./fix-log-dir.patch
];
propagatedBuildInputs = with pythonPackages; [
setuptools
numpy
pillow
flask
rpi-gpio
webcolors
psutil
mido
rtmidi-python
spidev
waitress
websockets
werkzeug
# rpi_ws281x
];
format = "setuptools";
preBuild = ''
cp ${./setup.py} setup.py
sed -i 's/PLACEHOLDER_VERSION/${version}/' setup.py
'';
postInstall = ''
mv -v $out/bin/visualizer.py $out/bin/piano-led-visualizer
'';
meta = with lib; {
description = "Piano LED Visualizer for Raspberry Pi";
homepage = "https://github.com/onlaj/Piano-LED-Visualizer";
license = licenses.gpl3;
maintainers = [];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,24 @@
diff --git a/lib/log_setup.py b/lib/log_setup.py
index 34f9156..e164d14 100644
--- a/lib/log_setup.py
+++ b/lib/log_setup.py
@@ -1,6 +1,7 @@
import logging
from logging.handlers import RotatingFileHandler
import sys
+import os
# Create a custom logger
logger = logging.getLogger("my_app")
@@ -10,7 +11,10 @@ logger.setLevel(logging.DEBUG)
# Create handlers
console_handler = logging.StreamHandler()
-file_handler = RotatingFileHandler('/home/Piano-LED-Visualizer/visualizer.log', maxBytes=500000, backupCount=10)
+
+log_path = os.path.expanduser('~/Piano-LED-Visualizer/visualizer.log')
+os.makedirs(os.path.dirname(log_path), exist_ok=True)
+file_handler = RotatingFileHandler(log_path, maxBytes=500000, backupCount=10)
# Set the level for handlers

View File

@@ -0,0 +1,24 @@
from setuptools import setup, find_packages
setup(
name="piano_led_visualizer",
version="PLACEHOLDER_VERSION",
py_modules=["visualizer"],
packages=find_packages(), # includes all packages with __init__.py
install_requires=[
"numpy",
"pillow",
"flask",
"rpi-gpio",
"webcolors",
"psutil",
"mido",
"rtmidi",
"spidev",
"waitress",
"websockets",
"werkzeug",
"rpi_ws281x",
],
scripts=["visualizer.py"],
)