plugdata-team / plugdata

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

Feature - Adding independent access from&to Midi ports in plug-ins. #1248

Open KPY7030P opened 10 months ago

KPY7030P commented 10 months ago

Currently, most DAWs do not sufficiently support MIDI protocols and cannot send some signals to external devices. Also, large developers do not always and do not really listen to the opinion of users, for this reason, requests remain unsatisfied for many years.

PlugData (plugins) as a development and experimentation environment can extend the possibilities of any host and as I think it is part of the overall logic and philosophy of the project. At the moment there are only three ways for a plugin to interact with the environment : _1. host > plugin

  1. plugin > host
  2. host > plugin > host._ Thus the PlugData behavior is completely dependent on the DAW and cannot reveal all its possibilities.

What can be done?

I suggest adding support for external devices to PlugData (plugins), just as it is currently implemented in the standalone version. _1. host > plugin

  1. plugin > host
  2. host > plugin > host_ + _4. host > plugin > outMIDI
  3. plugin > outMIDI
  4. inMIDI > plugin > host
  5. inMIDI > plugin
  6. inMIDI > plugin > outMIDI And multiple variations such as "host > plugin > outMIDI + host"_. This is achieved already inside the patch by duplicating and customizing inMIDI and outMIDI.

What will this do?

  1. Enthusiast support and the ability to customize old synthesizers directly from DAW in real time (e.g. switch presets or change the sound directly from the song track).
  2. Ability to control events in DAW using external devices with signal pre-processing in PlugData.
  3. Ability to automate and synchronize multiple devices from one track from DAW
  4. Possibility of connection to local network with the help of rtpMIDI(windows) or similar utilities
  5. Ability to connect homemade devices based on single-board computers, sensors, third-party programs and other unusual devices.
  6. Control of light and similar equipment synchronously with the track
  7. possibility of receiving several sources of midi signal, processing and sending to the track in DAW or elsewhere to control different parameters of one track from different devices. Especially in case of multichannel tracks in Bitwig.
  8. many other things ⸜( ° ᗜ ° )/

Is it possible to realize this?

At the moment there are several projects based on JUCE that have both standalone versions and plugins. These projects have an implementation of sending and receiving MIDI signals from external devices in both implementations (standalone and plugins): Element:https://github.com/kushview/element Architect: https://www.loomer.co.uk/architect.html CtrlR: https://github.com/RomanKubiak/ctrlr

timothyschoen commented 10 months ago

This would be cool, and it can be done. But it would require a bit of rewriting for the MIDI handling. I'll see if I can make some time for this next release, since I do like the idea.

KPY7030P commented 8 months ago

It would be really cool to see this in the near future!

In fact, this is the only thing that stops me from completing the project, since plugdata is the link between my daw and the hardware) I would like to see support for RTP-MIDI in the future (if it is not already there :), but this is more my imagination. Although I can collect all the data and offer it as a suggestion.

dromer commented 8 months ago

@KPY7030P just use a separate RTP-MIDI daemon and route both your DAW and Plugdata Standalone through there?

Kicking this ticket is not going to make any specialized features happen faster, though.

KPY7030P commented 8 months ago

@dromer Using a separate RTPMIDI is not a problem, which is why I wrote that this is more my fantasy than something similar to a request. But using standalone plugdata does not solve many problems, for example, such as the problems of supporting full-fledged midi data in many DAWs. I described it above. 😉

giovannidistefano commented 2 months ago

Hi I use an umi 3 Logidy to check my Pure Data patch. I can do the same thing if I use Plugdata as a standalone, but if I use it as a Plugin in Ableton Live this is not possible for me, because in the Setting there are no midi inputs to enable. Is there a possibility that this will be possible in the future ? Thank you very much Giovanni