richtamblyn / PGSparkLite

Web interface to Positive Grid Spark 40 Amp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PGSparkLite - Web Interface for the Spark 40 Amp

Overview

This is a Python based project that allows the user to send and receive configuration changes to and from a Positive Grid Spark 40 Amp (https://www.positivegrid.com/spark/) via a web browser.

PGSparkLite Interface

Written using the Flask framework and SocketIO, the intended target for this code is a Raspberry Pi Zero W that can host the interface, allowing other networked computers remote control of the connected Spark. It can also be setup on a Windows PC and accessed locally.

The realistic knobs and switch controls are possible thanks to the awesome G200KG Input Knobs library - https://g200kg.github.io/input-knobs/

What can it do?

The PGSparkLite web interface offers the current functionality:

4 preset selection buttons

These mirror the functionality of the buttons on the amp. Long pressing the preset button to save changes to the amp is also supported.

Set BPM tempo

The user can enter and set the BPM tempo for the delay effect.

Create/update/delete Chain Presets

The user can create their own Chain Presets. Chain Presets store the parameters for all the selected Pedals in the chain, their On/Off status and their visibility.

Create/update/delete Pedal Presets

The user can create their own Pedal Presets. Pedal Presets are associated with individual Pedals in the chain and recall parameters and On/Off status.

On/Off Switches

Each pedal in the chain can be switched on or off (even the amp!) via buttons on each Pedal section. Pedals that are switched off are grayed out to make it clear it is inactive. The On/Off state is maintained when stored in a Chain or Pedal preset.

Collapsible Pedal Sections

The pedal sections (gate, comp, drive, amp, mod, delay and reverb) can be minimised to reduce distractions and increase the space available in the browser window to reduce scrolling. Sections can be minimised regardless of whether they are on or off and their state is maintained when stored in a Chain Preset.

User Instructions

Guides to setting up PGSparkLite can be found in the Wiki:

Development Environment

This project was developed on a Raspberry Pi 4 (4GB RAM version) using the awesome Microsoft Visual Studio Code IDE. Launch configuration is included within the repository to allow you to run and debug the project locally.

Dependencies

  • Python 3.x
  • Flask 1.0.2
  • Flask-SocketIO 5.0.1
  • PySerial 3.4
  • Python3-bluez

External Dependencies

This project uses CDN servers to retrieve JQuery 3.5.1 and SocketIO 3.0.4 JavaScript libraries. If you wish to download the libraries separately to remove the requirement for an external internet connection, the references can then be modified in the /templates/layout.html file.

Future Development Ideas

  • Allow user to backup / restore Preset database
  • Allow user to import / export single ChainPresets / PedalPresets

Thanks

This project was inspired by the amazing work of:

About

Web interface to Positive Grid Spark 40 Amp

License:Apache License 2.0


Languages

Language:Python 62.9%Language:HTML 13.4%Language:JavaScript 12.3%Language:CSS 11.2%Language:Shell 0.1%Language:Batchfile 0.0%