plugdata-team / plugdata

Pure Data as a plugin, with a new GUI
https://plugdata.org
GNU General Public License v3.0
1.46k stars 62 forks source link

multitouch support #1295

Open jyg opened 9 months ago

jyg commented 9 months ago

Hello, Multitouch support is not fully implemented at the moment, although I know some people are working on it.

For example:

I understand this is a huge task. I could help to contribute for debugging on Linux, but I cannot retrieve the @alcomposer 's JUCE version that once enabled multitouch on Linux.

For the moment, I wonder if it would be possible to desactivate touch mode and signal Plugdata to the OS as Desktop mode app ? So that the OS converts mono-touch events in mouse events. My goal is to be able to use Plugdata on Microsoft Surface tablets, even in monoclick mode.

What do you think about this ?

alcomposer commented 9 months ago

Hey @jyg! Glad that there is interest in touch support for plugdata.

There are a few missconceptions in here. So I'll comment on what I know about how touch is supported in JUCE, to clear this up.

1) JUCE already converts touch to mouse. (What you are calling mono-touch?) What we need to do is make sure nothing in plugdata is accidentally using touch without us knowing. For example, some built in JUCE classes have touch activation that needs to be turned off with a set method. Which is what is happening here. So we kinda need to "test touch" in order to stop touch!

2) my JUCE fork is based on 7.0.5, and currently plugdata is using a modified 7.0.8. The changes are minimal to get this working, and that is kinda planned for plugdata 0.8.2 or 0.8.3

3) The infrastructure to activate touch on JUCE Linux X11 is now in place. So we are moving forward on this. There are some known bugs, and we still need to test on more Linux distros. If you would like to help here, please do.

4) I have personally already invested a huge amount of time working out how we can support multi-touch. So it's not like we are dragging our feet. Software takes time, and there are many moving pieces that we should work on slowly, and methodically.

5) we have only just finished the release of 0.8.1, and it's been a quite a huge job up till now. So I think going into the end of the year we may slow down the pace a bit.

If touch is really important in your use case, and if you are able to, and not already, consider supporting @timothyschoen at: https://github.com/sponsors/timothyschoen, and or support me to help out in this endeavor: https://www.patreon.com/alexmitchellmus

I have also blogged about touch support in JUCE on my Patreon.

jyg commented 9 months ago

Hi @alcomposer , thanks for all the clarifications. Please do not consider my request as a manifestation of impatience, I'm aware of the work you do and the time it takes. So, one more time, thanks for all the work that you , @timothyschoen and others are doing on Plugdata.

Regarding some points of your answer : 1) with "monotouch" I intend the first touch event that the OS transforms in mouse events for non touch-aware applications.

https://github.com/plugdata-team/plugdata/assets/1431894/bd81c339-ddf3-41e1-a5b7-af23a526750b

3) I would be happy if I could help with testing and debugging multitouch on linux, platform on which I can build and work. For now, the nightly builds don't respond to touch events (or so few) on my machine. I can test on MS Surface tablets of the music school where I work, but I cannot compile for Windows.

However, I think it is useful to document the status of multitouch support in Plugdata, and this thread may be the right place, unless there are discussions elsewhere, which I missed?