Please sign in to access this page
A Python module for interacting with LT guitar/bass amplifiers! The features of this series of modeling guitar amps and the desktop app they come with didn't fulfill my needs. Wanting to find a way to still do cool things with my guitar gear, I decided to hack it. This library allows anyone with a knowledge of Python to connect, interface, and interact with LT amplifiers, enabling the development of custom apps, clients, CLIs, and infinite other tools.
...
This project helps empower musicians and device-owners to take their devices' technical capabilities into their own hands. Through PyPI, the python package manager and `pip install ltamp`, it can be integrated with any python (3.9+) application. It's also the first time I used USB devices in my software, marking a learning experience (I used AI to help debug my faulty packet-handling code) It also blends my passions for music and software, serves as my foray into networking with physical devices (through USB HID in this case) devices, and has opened the door for future projects I am currently working on including:
...
- my own CLI and desktop app
- a Raspberry-pi-based footswitch slot controller (👀)
...
⭐ Star the GH repo and follow the org to stay up to date on releases, additional features, and new projects!
...
Note: This is a hardware-related project, which is why I have a demo video! I was clearly told I could do this on Slack because of my project's requirements.
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Added tests and a new procedure function - retrieve preset (needed for The Twist and included in ltamp.py v0.2.7). Testing should be quite helpful for ensuring i dont introduce regressions (which im very skilled at doing). Additionally, I want to add a couple utilities to do things like enumerate the presets saved to make using this module easier (for now i won't)
Commenting code and documentation always sucks but you know what makes it slightly better: those sweet sweet shells! 😋In addition to writing full class documentation for the LtAmp
, LtAmpAsync
, HidWrapper
, and HidDevice
classes, yesterday (when SoM was broken), I added new timeout configurability, remove unnecessary variable/functions, and generally cleaned up the code (and docs) significantly. These changes are included in the 7th release - version 0.2.5, which is now available on PyPI!
Made several hotfix releases to change naming (officially called LtAmp.py everywhere now), update directory structure to one that actually works (oops), and fix some imports. Then, today I added debug options to all of the main classes (hidwrapper, hiddevice, and ltampbase) to make it easier for me to develop and debug The Twist™️, my portable LT amp-augmentation platform. Using this new version, I will be able to better understand errors in the context of where they are occurring. Next up, unit tests and docs (i promise this time fr™️)
Created a new released and incremented semver to 0.2.0. There are now new product identification and connection status request protocols. Additionally, the project has been rebranded lt25.py --> LtAmp.py to reflect the increased confidence in compatibility with all LT-series amps. New features planned for v0.3.0 include multi-device support, better docs (still), and testing (again)
Since my last devlog, I added Async versions of the methods in the LT25 class (and verified they worked on Linux of course!). In other news, I created a GitHub action to automatically handle continuous deployment to PyPi, where version 0.1.2-alpha is now published! Still to do is to complete the protocol and add unit tests. Hoping to also add better docs in a GitHub wiki (with the video demo) today or tomorrow.
Create a video demonstration for the module! (Edited in Blender VSE with graphics made in MS paint :3)
In doing so, I realized how hard it is to demonstrate this project effectively (android phone as webcam + 4 window splits to the rescue!)
Also, I worked on the GitHub repo (metadata, etc. and made a little progress on v0.1.2, which should increase compatibility with LtAmp significantly!)
I developed the base version 0.1.1 of the library and published it to pypi! It can now be installed through pip install lt25
and used with Python >= 3.9.
Based on reverse engineering work published by others, I was able to use protobuf protocol schemas to create a Python package interface for a device which previously only had open source .NET tools.