embedded support via Zephyr #152
Replies: 3 comments 1 reply
-
Hello! oh that would be amazing! I have some ESP32s and raspberry pi picos on which I could try it. https://github.com/celtera/libremidi/tree/master/include/libremidi/backends The steps are: 0/ Add the necessary steps to the build system, I try to have one file per back-end here: https://github.com/celtera/libremidi/tree/master/cmake referenced here: https://github.com/celtera/libremidi/blob/master/CMakeLists.txt#L59 1/ Add an enum here: https://github.com/celtera/libremidi/blob/master/include/libremidi/api-c.h and here: https://github.com/celtera/libremidi/blob/master/bindings/python/pylibremidi.cpp#L195 2/ Add a new backend here: https://github.com/celtera/libremidi/tree/master/include/libremidi/backends I recommend starting from a copy-paste of the JACK one which is very straightforward. 3/ Add a new header like this one: https://github.com/celtera/libremidi/blob/master/include/libremidi/backends/jack.hpp which centralizes the information of the backend 4/ Add the back-end here so that the library knows about it when enumerating backends: https://github.com/celtera/libremidi/blob/master/include/libremidi/backends.hpp 5/ Add the new configuration types here: https://github.com/celtera/libremidi/blob/master/include/libremidi/configurations.hpp And you should be good to go :) |
Beta Was this translation helpful? Give feedback.
-
Great, thank you! That seems pretty straightforward. I'm working on ESP32 and Picos as well. I haven't tried mixing C++ with Zephyr but I think with the C header it shouldn't be too difficult. I'll let you know once I get it going. |
Beta Was this translation helpful? Give feedback.
-
Awesome! Honestly I hadn’t even looked into it yet |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi @jcelerier, I'm really excited about the recent progress with this library! I was thinking about the possibility of getting it to work on embedded platforms, and it occurred to me that Zephyr RTOS might be a good fit, since it already has some Linux-like features built in and some MIDI support as well. Do you have any thoughts on how best to integrate new backends into libremidi?
Beta Was this translation helpful? Give feedback.
All reactions