Skip to content
This repository has been archived by the owner on Apr 5, 2023. It is now read-only.

GUI interface #15

Open
cpyarger opened this issue Jan 21, 2020 · 8 comments
Open

GUI interface #15

cpyarger opened this issue Jan 21, 2020 · 8 comments

Comments

@cpyarger
Copy link
Contributor

This seems to be a great plugin, But configuration would be much easier with a GUI,

@lebaston100
Copy link
Owner

I know, i've been doing some research on how i could accomplish this, but i'm not a frontend dev, so building a python gui would have to be done by someone else.
But i'm thinking about/planning something that can do the same thing (even more) and has a GUI. But i have no ETA on that.

@cpyarger
Copy link
Contributor Author

I am going to take a look into what needs to be done for this. It has been a long time since I have done any python programming though, so it will probably be slow going.

@lebaston100
Copy link
Owner

I'm not expecting anything from anyone, but if someone volunteers for it i happily take the offer.

@cpyarger
Copy link
Contributor Author

https://github.com/cpyarger/Midi2OBS-Configurator is what I have so far. I am having some issues.

@cpyarger
Copy link
Contributor Author

if you are able to look over it and make any changes you think will help that would be much appreciated. Currently, I have it set up so that it will detect midi values, Those get tossed into a table. only once, and are filtered by note or CC when listening (i was unable to figure out how to query for both existing notes and CCs without the filtering based on the dropdown. I do apologize for the lack of commenting in the code.

@lebaston100
Copy link
Owner

It's starting to look like something. That's the point where i have zero knowledge. Have never used qt before. Also no apologizing for not commenting, i'm guilty here too.
So somethings i see "missing" that MIDItoOBS can do is having multiple devices and macro support (or basically binding multiple actions onto a single midi input action).
I guess you would have to write out some basic description on how everything should look and feel. Maybe having the list in the main windows but then having a popup window for editing with only the options that are needed for the action. A way to refresh all the lists that the scrpt pulls from obs(manual or automatic).
These are just some ideas i got while looking at it.

@cpyarger
Copy link
Contributor Author

Currently, I am leaving Multi-Device support hanging until I finish getting the interface done and have it working. with a single device. I decided to use the MIDO callback function for handling messages as they come in, unfortunately, that breaks multi-device support as the messages don't contain a device ID.

Macro support will be worked on after Multi-Device is working.

With my current iteration of the code, you can see where I am starting to head towards the software. I plan to integrate both halves of MidiToOBS into the GUI application. If a command does not exist in the application, it will be added. If it is not fully setup, for example, a fader connected to SetVolume without having a volume chosen, any incoming MIDI messages are ignored. If that line is fully setup you will see it controlling OBS.

Before multi-device is working, I plan to add a MIDI feedback option. I want to see my faders move when I adjust the volume in OBS, and want to see my buttons showing which scene is actually active.

I have moved away from making raw WebSocket calls and have started using
https://github.com/Elektordi/obs-websocket-py
Most of the work already exists there, and it already has the ability for me to register callback hooks for me to get started on feedback,

@lebaston100
Copy link
Owner

Awesome. So Multi-device functionality is basically provided by creating a new instance of the DeviceHandler class for every controller and then binding it to the same callback, but handing over the device id on creation. But only the main.py does it like that, for the setup it's still the other way.

If you want you can make this a totally independent application that has nothing to do with this one. That way you are not limited by my version.

I might have mentioned this somewhere already but i would have device feedback implemented if i had the hardware to test with.

I on my part started building a new "Version" of MIDItoOBS from scratch in nodejs that can intregrate in a already existing gui platform. Keeping it vague because i don't have a timeframe for it and don't want anybody waiting for it.
It won't make the old version obsolet but will rather be another system for more advanced users. For that i'm also using a wrapper.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants