-
Notifications
You must be signed in to change notification settings - Fork 48
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
base: master
Are you sure you want to change the base?
Conversation
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. |
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 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. |
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.