mat1jaczyyy / apollo-studio

Apollo Studio is a standalone editor and live playback engine for RGB Launchpad light effects.
https://apollo.mat1jaczyyy.com
BSD 3-Clause "New" or "Revised" License
186 stars 23 forks source link

Possibility to detect all midi devices #464

Closed XayUp closed 9 months ago

XayUp commented 9 months ago

Reading here, I saw that Apollo studio only detects pre determined devices, i.e. "Real Launchpad" and this makes me a little unhappy. I'm the developer of the MultiPad and in it I added the function of using it as a controller, simulating a Launchpad, but this is only valid for MIDI messages because obviously it is detected as a device determined by Android (in my case, currently, Motorola One). This means that Apollo doesn't recognize my Android device in MIDI mode and so I can't use the functionality I added to my app.

conc1erge commented 9 months ago

Even if the phone is in a MIDI state and were to be recognized by design by Apollo Studio, Apollo Studio wouldn't know what to do with the information as it sends information via SysEx

Unless you're able to emulate receiving and sending SysEx messages and make Apollo think it's a usuable device, it's still impossible I think. That's why it's predetermined devices, so it knows you're using a compatible device.

mat1jaczyyy commented 9 months ago

I don't care about the name of your MIDI device, I only care about what you identify as when I send you a standard SysEx Device Inquiry message (you will SysEx respond with your identification bytes).

If you identify as a Launchpad Pro, even if you're not really a Launchpad Pro, Apollo will treat you as a Launchpad Pro

XayUp commented 9 months ago

I don't care about the name of your MIDI device, I only care about what you identify as when I send you a standard SysEx Device Inquiry message (you will SysEx respond with your identification bytes).

If you identify as a Launchpad Pro, even if you're not really a Launchpad Pro, Apollo will treat you as a Launchpad Pro

Yes, that's to be imagined, but that's the point of having it as if it were a "Developer Mode" where there's a space where you can connect to a MIDI device, even if it's not identified as an Apollo-supported device. There must probably be a way to circumvent this, but in the meantime I wonder if there would be such a possibility. Like Ableton, it detects everything that is MIDI and there you manually define what device it is, even if it's not really

XayUp commented 9 months ago

Even if the phone is in a MIDI state and were to be recognized by design by Apollo Studio, Apollo Studio wouldn't know what to do with the information as it sends information via SysEx

Unless you're able to emulate receiving and sending SysEx messages and make Apollo think it's a usuable device, it's still impossible I think. That's why it's predetermined devices, so it knows you're using a compatible device.

But at the end of it all, isn't data sent by USB? Just really wanted to test this out. But I'll see if there's a way to change the ID so it can be recognized as another device

mat1jaczyyy commented 9 months ago

Yes, that's to be imagined, but that's the point of having it as if it were a "Developer Mode" where there's a space where you can connect to a MIDI device, even if it's not identified as an Apollo-supported device. There must probably be a way to circumvent this, but in the meantime I wonder if there would be such a possibility. Like Ableton, it detects everything that is MIDI and there you manually define what device it is, even if it's not really

Ableton only sends out standard MIDI notes and all the devices interpret them similarly enough.

Apollo sends out SysEx RGB messages which are wildly specific for each device. How do you expect Apollo to know which SysEx message format to use if it doesn't know what kind of device it's working with? I can't just fire something at a MIDI port and hope it sticks.

XayUp commented 9 months ago

Ableton only sends out standard MIDI notes and all the devices interpret them similarly enoughII.

must imagine that he sends the messages somehow. I have only cited the example of manual device selection. Apollo sends out SysEx RGB messages which are wildly specific for each device. How do you expect Apollo to know which SysEx message format to use if it doesn't know what kind of device it's working with? I can't just fire something at a MIDI port and hope it sticks.

Yes, I understand very well, that's why I mentioned Ableton. I'm not talking about the mechanism of sending messages, but rather the selection of the type of device for that USB device that is recognized there as a MIDI. What I mean is that Apollo could detect all usb devices judged as a MIDI device it would ask "What midi device is this? Is it a Launchpad Pro? Specify to me for me to send the specific SysEx", and the SysEx received, in this case by the MultiPad, it will be my responsibility to handle in the correct way. I don't know if I could explain it well. But if you can't try, then you can close that issue. Thank you in advance for your attention.

mat1jaczyyy commented 9 months ago

Well you have to receive lights in SysEx form anyways, why is it so hard for you to receive a SysEx Device Inquiry and respond to it?

XayUp commented 9 months ago

Well you have to receive lights in SysEx form anyways, why is it so hard for you to receive a SysEx Device Inquiry and respond to it?

Okay, I think I'm going to study the C# language and other useful things to do this on my own like I did with Unipad. Thanks for the replies! <3