sysmidi: add initial macOS support for midi input/output #1196

Open
emidoots wants to merge 1 commit from sysmidi into main
emidoots commented 2024-04-19 04:09:58 +00:00 (Migrated from github.com)

This is the very very early-stages (i.e. hacky experiment!) midi synthesizer I made over last holiday season and showed in https://www.youtube.com/watch?v=b8WDjaZC1C8

Known issues:

  • (merge blocker) Code in general needs much cleanup
  • (merge blocker) src/sysmidi/examples/input.zig uses the old sysaudio API for writing the synthesized music out to the audio device, so needs to be upgraded. Or, perhaps just use the current examples/piano to support midi input and move my more complex synth elsewhere.
  • (merge blocker) I would like to rewrite the example I showed in that video with a very janky terminal UI to instead be a simple Mach GUI application. Should not be that hard, and likely would make the code much more reasonable/sane.
  • Windows support would be nice-to-have, not sure which APIs are best here.
  • Linux support would be nice-to-have, not sure which APIs are best here.
  • WASM support via WebMIDI would be nice-to-have
  • By selecting this checkbox, I agree to license my contributions to this project under the license(s) described in the LICENSE file, and I have the right to do so or have received permission to do so by an employer or client I am producing work for whom has this right.
This is the very very early-stages (i.e. hacky experiment!) midi synthesizer I made over last holiday season and showed in https://www.youtube.com/watch?v=b8WDjaZC1C8 Known issues: * [ ] (merge blocker) Code in general needs much cleanup * [ ] (merge blocker) `src/sysmidi/examples/input.zig` uses the old sysaudio API for writing the synthesized music out to the audio device, so needs to be upgraded. Or, perhaps just use the current `examples/piano` to support midi input and move my more complex synth elsewhere. * [ ] (merge blocker) I would like to rewrite the example I showed in that video with a very janky terminal UI to instead be a simple Mach GUI application. Should not be that hard, and likely would make the code much more reasonable/sane. * [ ] Windows support would be nice-to-have, not sure which APIs are best here. * [ ] Linux support would be nice-to-have, not sure which APIs are best here. * [ ] WASM support via WebMIDI would be nice-to-have - [x] By selecting this checkbox, I agree to license my contributions to this project under the license(s) described in the LICENSE file, and I have the right to do so or have received permission to do so by an employer or client I am producing work for whom has this right.
This pull request has changes conflicting with the target branch.
  • build.zig
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin sysmidi:sysmidi
git switch sysmidi

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff sysmidi
git switch sysmidi
git rebase main
git switch main
git merge --ff-only sysmidi
git switch sysmidi
git rebase main
git switch main
git merge --no-ff sysmidi
git switch main
git merge --squash sysmidi
git switch main
git merge --ff-only sysmidi
git switch main
git merge sysmidi
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hexops/mach!1196
No description provided.