Files
pi-multifx-pedal/requirements.txt
T
shawn 1c5b728e8b Build: Web UI + mDNS (pedal.local)
FastAPI web server with REST + WebSocket, 5 Jinja2 HTML pages,
mobile-friendly dark theme CSS, page-specific JS controllers,
and Avahi mDNS service advertisement for pedal.local.

Files:
  src/web/server.py          — FastAPI app with 17 REST endpoints + /ws WebSocket
  src/web/__init__.py         — Package init with WebServer, WebServerDeps exports
  src/web/templates/*.html    — Dashboard, Presets, Models, IRs, Settings (base)
  src/web/static/style.css    — Dark mobile-first CSS (80-82% max-width)
  src/web/static/websocket.js — Auto-reconnecting WebSocket manager
  src/web/static/app.js       — Dashboard live updates + REST helpers
  src/web/static/presets.js   — Bank/preset CRUD modal UI
  src/web/static/models.js    — NAM model list/load/upload
  src/web/static/irs.js       — IR file list/load/upload
  etc/avahi/pi-multifx-pedal.service — Avahi service advertisement
  scripts/setup-mdns.sh       — One-shot mDNS setup (avahi, hostname, restart)
  main.py                     — Wire WebServer into boot/shutdown
  requirements.txt            — Add fastapi, uvicorn, jinja2, python-multipart
  tests/test_web.py           — 36 tests (pages, REST, WebSocket, errors)

All 36 tests pass.
2026-06-08 00:57:26 -04:00

38 lines
603 B
Plaintext

# Pi Multi-FX Pedal — Requirements
# Core audio
jackclient-python>=0.5.5
numpy>=1.24
# NAM inference (on RPi 4B aarch64)
# libtorch via nam Python package
neural-amp-modeler>=0.8.0
# IR convolution
# scipy for wav/IR file loading
scipy>=1.10
# UI
RPi.GPIO>=0.7.1
adafruit-circuitpython-ssd1306>=2.12
adafruit-circuitpython-neopixel>=6.3
pillow>=10.0
# MIDI
python-rtmidi>=1.5
pyserial>=3.5
# Config & presets
pyyaml>=6.0
orjson>=3.9
# Web UI
fastapi>=0.110
uvicorn[standard]>=0.27
jinja2>=3.1
python-multipart>=0.0.9
websockets>=12.0
# Testing
pytest>=7.0
pytest-asyncio>=0.21
pytest-mock>=3.11