Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request for Jack MIDI API support #728

Open
mxa opened this issue Aug 13, 2019 · 5 comments

Comments

@mxa
Copy link
Contributor

commented Aug 13, 2019

With all the various audio and MIDI APIs which Pd can be configured with [1], one is missing [2]: Jack MIDI [3]. On Linux the list of applications not supporting Jack MIDI is getting shorter [4]. Since Jack MIDI supports time stamped MIDI messages, timing would greatly be improved. It's a continuous issue and source of frustration [5]. Currently MIDI message processing is depending on the audio blocksize. When using a large audio blocksize, the MIDI processing is getting imprecise. In a presentation [6] by Chris Chronopoulos at Linux Audio Conference 2019 it was shown how MIDI timing can be drastically improved by using the timestamping of Jack MIDI (the comparison graphs are not part of the published paper, but are in the available video of the presentation [7]). Jack MIDI support could be part of a future Pure Data milestone.

[1] ./configure --help
[2] https://lists.linuxaudio.org/archives/linux-audio-user/2019-September/112212.html
[3] https://lists.puredata.info/pipermail/pd-list/2008-07/063528.html
[4] http://jackaudio.org/api/group__MIDIAPI.html
[5] Pure Data Facebook group post screenshot:
facebook post
[6] https://lac.linuxaudio.org/2019/doc/chronopoulos.pdf
[7] Time: 16:28 https://lac.linuxaudio.org/2019/media/lac19-streaming-day1-05-chronopoulos-sequoia.mp4

@mariobuoninfante

This comment has been minimized.

Copy link

commented Aug 27, 2019

@mxa

This comment has been minimized.

Copy link
Contributor Author

commented Aug 27, 2019

Now the presentations are online, see 16:28 in the presentation video for a comparison of ALSA MIDI (jittery) and timestamped Jack MIDI (sample accurate timing).

@mxa

This comment has been minimized.

Copy link
Contributor Author

commented Aug 28, 2019

It seems there could be issues with SysEx, worth checking it out
https://github.com/jackaudio/jackaudio.github.com/wiki/Proposal_MIDI_API_Extension_For_System_Exclusive_Messages

I'm not sure how this issue in Jack MIDI relates to a API support in Pd. Anyways Jack MIDI will probably be used mostly for inter-application control, so Sysex data will typically not be encountered.

@mariobuoninfante

This comment has been minimized.

Copy link

commented Aug 28, 2019

@mxa It's more about making the users aware of the fact that SysEx are not supported.
What do you exactly mean with inter-application control?
SysEx can be really useful (ie data transfer, dump, custom protocols, etc.), and a lot of MIDI instruments use it even to control parameters

@umlaeute umlaeute added the feature label Sep 9, 2019
@mxa

This comment has been minimized.

Copy link
Contributor Author

commented Sep 19, 2019

Slightly related is that MIDI 2.0 supports time stamping, this would be another feature to support this in Pd and hook it into the Pd scheduler. https://juce.com/discover/stories/introducing-midi-2-0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.