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
28 stars 2 forks source link

Feature Request - Poll Get Edit Buffer #55

Open M1DHB opened 1 month ago

M1DHB commented 1 month ago

This is a very nice application and I use it with a POD 2.0 which I control at the same time using an MPK Mini mk2 controller. (on Windows 10)

I would like to have the POD UI automatically poll the Get Edit Buffer function (once per second or something) so that I can see the changes I am making via the MPK Mini shown in the POD UI.

I know I can use the mouse and the POD UI as intended to do this but it is nice to be able to tweak the effects using physical knobs on the MPK. I also use pads on the MPK to switch Reverb etc off and on.

I did download the code and build it using the instructions and I see the new UI is nicer. Adding this feature myself is beyond me (I am a brute force and plenty of ignorance coder) and I thought others may find the suggested feature useful.

Thanks again for all your hard work it is much appreciated.

arteme commented 1 month ago

Great to hear, that you find this app useful!

This is an interesting idea. My only concern is that this may interfere with the internal workings of the POD. I.e. if an edit buffer request comes from the PC and at the same time comes another MIDI command (at the same time, or during the period however long it takes the POD to process this), this may make POD do weird stuff. I think I observed something similar when working on POD 2.0 support initially. PODXT may fare better with this. Worth a try, either way.

Another thought is -- we can add a "MIDI pass-through" mode. Your MIDI devices are daisy-chained and nether the PC nor the POD send the MIDI commands received on the MIDI IN port out to the MIDI OUT port. This is understandable, the POD is expecting to be the only device that is being controlled by MIDI commands. pod-ui was designed to mimic the way POD works. There is, however, no reason that we cannot echo MIDI commands coming in on MIDI IN to MIDI OUT. That way, you can have:

    .----------------------------------.
    v                                  |
[ MPK ] -----> [ PC ] ----> [ POD ] ---'

This way the CC commands sent by the MPK would control pod-ui on PC and the POD at the same time.

When you say, "the new UI", do you mean the default GTK theme? It is a bit more spacious than the theme that the release build of pod-ui use. It may be good for POD 2.0, but with PODxt, I run out of screen space showing all the controls. Maybe we can add a switch in the settings to select the theme too.

M1DHB commented 1 month ago

I think the idea of a midi pass-through is a much more elegant solution. I wondered if midi pass-through would enable me to do away with the midi router I need in Windows.

In my setup (W10) have the POD 2.0 connected to a Focusrite Scarlet 3rdGen. The Pod-ui input and output is set the use the Focusrite Midi ports. In order to get the MPK mini midi signal sent to the POD (via the Focusrite) I have to use a Midi Router (TXL20) I just route the MPK mini Out to the Focusrite IN. I don't route anything back to the MPK mini (it seems to ignore the POD anyway and its not an issue for me)

Re the "the new UI", I think I am looking at the default theme :). The theme in the release is just fine and I'm not sure the added complexity of giving us a choice is worth it. (the more we have the more we ask for!). Thanks Again

arteme commented 3 weeks ago

Can you also route MPK mini Out to pod-ui midi in?

Due to the design limitations, pod-ui will only create midi in/out ports not on app start-up, but when the app connects to the POD. Once it does, you can try routing MPK mini Out to both Focusrute IN and Pod-ui midi in...

M1DHB commented 3 weeks ago

I don't seem to have the pod-ui ports as an option midi. I have attached a screenshot of what I am seeing. (The Focusrite midi port names are a bit odd) but it works ok Pod-UI-1

arteme commented 3 weeks ago

Ok, so you're only able to route signals to physical ports. The pass-through functionality wouldn't help in this case. Let me think of something...

M1DHB commented 3 weeks ago

I'm not sure why I don't see the pod-ui ports on the TXL20 Router. I can see loopMidi ports which I think are software ports. SO I've pointed the pod-ui input to a loopMidi port and set up the router as shown in the attached screenshot. With this setup the POD 2.0 can be controlled by the MPK mini and the pod-ui Also changes on the POD 2.0 are transmitted to the pod-ui and show up OK. Even Better;- Changes sent by the MPK mini to the POD 2.0 show up on the pod-ui So that's good news. I probably I have to start up the 3 apps (loopMidi, TXL20 router, pod-ui) in the right order to make it work. Autodetect is unhappy (Received device response on multiple (6) ports so I have to setup the ports manually in pod-ui.

It feels like progress and I'll try a few different setups and keep you posted. Thanks Note:- I've updated the screenshot to show more informative loopMidi names and also added the connection to my DAW (Ardour) which how I might use the setup and it still works although its a bit fiddly to set up and there are some issues.

Routing2

Pod-UI-3

M1DHB commented 3 weeks ago

I was wondering why I could not get this working using loopMidi and the TXL20 Router before I raised this feature request and I think it was because pod-ui displays midi port names a bit strangely and I got a bit confused with my inputs and outputs.

I've attached a screen print showing the pod-ui Settings Box with the MIDI output dropdown showing. As you can see Port Names are a bit odd. The first one 3-MIDI is the Focusrite and the last two are loopMidi ports (4PodUI and 4Ardour). I can't tell which is which because when I select them in pod-ui I can't detect anything coming out of them, If I route either of them to the POD 2.0 via the Focusrite the POD doesn't receive anything. I have to select 3-MIDI in the pod-ui midi out to make it work. Update I managed to get the correct loop Midi port set in pod-ui input and routed this to the POD 2.0 via the Focusrite. I'm not sure why I couldn't get this to work yesterday. I'm not sure how stable this will be. Autodetect still does not work.

Please note I'm not writing all of this because I am unhappy with the application. It is really useful and I have been able to work around this issues. I just wanted you to have these details for your information. Thanks Again for a great application.

Pod-UI-3-MidiOutNames

arteme commented 3 weeks ago

I really appreciate the feedback, especially from Windows, which I do not use myself. I see, how the port list may be confusing. In Linux, MIDI ports at least have numbers in the name like "pod-ui 129:1" that are unique client/connection identifiers. I'll check if we can get any other port info on Windows somehow, but we may be slightly limited by what the underlying MIDI library provides.

M1DHB commented 3 weeks ago

It's interesting that pod-ui can get the input port names OK but can't resolve the output port names in the same way.

I saw some comments about the winrt API whiche may be relevant. https://learn.microsoft.com/en-us/answers/questions/875117/winrt-midi-api-returns-invalid-midi-port-names

I could try the other Windows release build? I'll do that anyway:)

I tried to find the port names using windows Device Manager but they don't show up correctly either. Other applications such as Ardour and TXL20 Router display the correct names so I tried to find a simple open source application tot see what method was used (if possible)

I found this. But I think it only looks for Outputs. (It's in the name SendMIDI https://github.com/gbevin/SendMIDI PS C:\Users\Gary\Desktop\Tools\MIDI> .\sendmidi list Microsoft GS Wavetable Synth 4Ardour 4Pod-UI MPK Mini Mk II 3- Focusrite USB MIDI PS C:\Users\Gary\Desktop\Tools\MIDI>

M1DHB commented 3 weeks ago

gbeven has produced a receivemidi.exe as well as the above PS C:\Users\Gary\Desktop\Tools\MIDI> .\receivemidi list 4Ardour 4Pod-UI MPK Mini Mk II 3- Focusrite USB MIDI PS C:\Users\Gary\Desktop\Tools\MIDI>

M1DHB commented 3 weeks ago

I tried the pod-ui-v1.4.0-win64 build which uses the other WinMM API and the port select in settings works ok. (see attached screenshots) This build has other issues though. Load All wont work and Get sort of works OK. I haven't had time to check anything else with this build. I think I would rather use the WinRT version now I can work around the ports issue.

WinMMBuild-MidiIn WinMMBuild-MidiOut