You can build the O2O project as it ships from the Bela IDE and even run it from within it, but it won't process any audio. This is C++, so the program will start execution from the main() function. In most Bela project, there is no main() function, so the default one is used under the hood, which in turn calls setup(), render(), cleanup(). In this project, there is a main() function and so the default one won't be called and setup(), render() and cleanup() won't run.
If you want a single program to run both the OLED(and optionally OSC) stuff AND the audio, then you wouldn't run two different processes and you would simply set the one program to run on boot from the IDE. If you previously enabled running the program as a separate service, you should disable that.
nickcamillo I think I need to run the OLEDs as a background service because I get dropped audio frames when I try to update the screens directly via the C++ api from within my render.cpp during audio playback.
This is not because you are running them from within the same process, rather because you are doing something from the audio thread that takes too long and/or are running non real-time-safe code from within the audio thread. You should reduce computation in the audio thread and push any long or non real-time-safe computations to a different thread. If you were to share your code I could probably help with that.