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

Draft: Jack support #74

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

Draft: Jack support #74

wants to merge 8 commits into from

Conversation

ylm
Copy link

@ylm ylm commented Apr 1, 2021

Initial effort to integrate JACK into ORCA since portmidi doesn't support it.
A forseeable issue is the use of jack ringbuffer. It doesn't use memory barriers which are required by some architectures.
Open for discussion. Plan to have dynamic port creation too.

@neauoire neauoire requested a review from cancel April 2, 2021 01:51
@Krasjet
Copy link

Krasjet commented Apr 2, 2021

JACK's ringbuffer, unfortunately, is a problem. I opened an issue about an overbound read bug a while ago. Raspberry Pi (ARM architecture) is notably affected by it:

https://www.youtube.com/watch?v=dLdTDMsz7tg

but this bug is extremely rare. I hope it gets fixed soon.

zix's ringbuffer implementation handles memory ordering properly. Maybe it can be used as a temporary solution. Though notice that JACK's MIDI itself internally uses ringbuffer, so this problem has to be fixed in JACK.

@ylm
Copy link
Author

ylm commented Apr 3, 2021

After using this branch for a bit, there's an issue in how the midi events gets timestamped, so I need to get that ironed out first. An alternative would be to swap portmidi with RtMidi which now has a C interface and support many more backends (JACK being one of them).

@ylm ylm marked this pull request as ready for review April 13, 2021 21:38
@plexus
Copy link

plexus commented Oct 29, 2023

@ylm did that last commit fix the issue you mentioned in your previous comment? I've been running this branch and so far haven't encountered any issues.

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

Successfully merging this pull request may close these issues.

3 participants