arteme / pod-ui

A modern GTK+ UI for controlling Line6 POD family of devices via MIDI. Supported devices: POD 1.0, POD 2.0, POD Pro, PocketPOD, PODxt, PODxt Pro, PODxt Live, Bass PODxt, Bass PODxt Pro, Bass PODxt Live
https://arteme.github.io/pod-ui/
GNU General Public License v3.0
31 stars 2 forks source link

POD HD Desktop Support #57

Open pablooku opened 5 days ago

pablooku commented 5 days ago

Hi,

Recently purchased a POD HD Desktop, the "black bean" one, and I tried to use the program with no luck.

So the main question is:

How can i Help?

I'm software developer, but never worked with Rust. Tried to clone the mod-xt module as base code, but don't know how to continue.

I can provide you any device data you can need.

Thanks in advance!!

arteme commented 5 days ago

Dear @pablooku ,

POD HD family is a whole different beast, I'm afraid. POD HD is not mentioned in the MIDI controls reference nor is there any mention of MIDI in the user manual, which makes me think that it is controlled in a different way over USB.

That in itself is not the biggest challenge, typically, it is still commands with parameters framed in a certain way. The bigger challenge is figuring out this protocol. There is "POD HD edit" app, if I remember correctly. One would have to connect the POD to a computer running "POD HD edit" and try tweaking controls one-by-one while recording USB traffic.

Wireshark is a great tool for protocol capture and analysis and it works with USB traffic in Linux, macOS and sometimes in Windows.

Once you figure out the basic control change messages, you'll need to figure out the buffer dumps. In early PODs MIDI CC indices have noting to do with the position of the same data within the dump. In PODxt, MIDI CC indices are offsets into the dump buffer - the data is laid out exactly how the CC indices go. With POD HD, you'd have to figure this out.

Some controls, like amp and cab change trigger a "get edit buffer" request and "edit buffer data" reply - that is because amps have their own presets, which kick in when the amp is selected and override some of the previously selected settings.

Whether this will all fit into the structure of pod-ui, I do not know, but I'm sure it is possible to hack it into a pod-hd-ui with enough time. All in all, this would be a long, but fun project, I think ;)