I've mostly worked with Puredata patches in the Bela. I usually create a new Puredata project in the IDE, then I
rsync it to my Ubuntu desktop, edit
_main.pd there, - and then I
rsync the updated project back to
When I worked with a Bela.io unit with "Bela release image, v0.2.0b, 15 December 2016", I noticed that when I
rsync the updated Puredata patch from desktop to Bela, the IDE would recognize the change, and would offer to rebuild the project through a popup in the IDE. If you said yes to that, then a rebuild process would be initiated - which I would recognize by the message "Linking ..." somewhere in the Bela console log.
Then I worked with a unit with "Bela image, v0.3.1, 8 November 2017" - this one initially behaved the same; however, then I did
./scripts/update_board -y from a Bela git folder via
ssh (as noted in https://forum.bela.io/d/675-getting-internet-sharing-from-ubuntu-18-04-to-bela-io/4); and from that point on, the IDE stopped responding to changed Puredata patches being
rsynced to the board. That is, I'd
rsync the updated PD patch, the IDE would not react at all with a popup, and if I pressed Run, it would just say:
... without any mention of "Linking...", which indicated to me there is no actual rebuild.
It is at this point I understood, that (I guess) when you press Run, Bela actually compiles your
_main.pd by referencing to libPD into an executable with the same name as the project name, so you get e.g.
/root/Bela/projects/TestPD/TestPD executable in the folder
/root/Bela/projects/TestPD/ - and this is what actually runs and creates audio on the Bela (and probably sends messages to the IDE); the IDE merely shows a visual representation of the corresponding
_main.pd in HTML.
So, at this point, I realized I have to
ssh to the Bela, and delete the
/root/Bela/projects/TestPD/TestPD executable manually, each time I'd want to trigger a rebuild of the executable; in that case, the rebuild is indicated by:
I thought this was a consequence of running
./scripts/update_board -y instead of flashing a new image, so I ignored that for a while.
But now, I went back to the v0.2.0b unit, and performed a full update to "Bela image, v0.3.6b, 23 October 2018" - including both flashing the SD card, and flashing the eMMC (using the Beaglebone eMMC procedure). And now, even with this fresh state, I get no rebuild triggering when I
rsync updated PD patches. I've also tried drag-and-dropping updated
_main.pd from Desktop to the Bela IDE browser window; this does get detected, with a popup with:
The file _main.pd already exists in this project. Would you like to overwrite it?
If I choose Overwrite, Bela briefly shows an "Updating ... " message in the console which disappears, and then if I click the Run button, I get this:
make: Nothing to be done for 'all'.
... meaning that, as no "Linking..." is present, that no rebuild was triggered, which is confirmed by the
make message - even if there was explicit confirmation of the IDE that a new PD patch had been drag-and-dropped.
Since there is a probability that this "auto-rebuild" functionality might break, could I suggest adding a "Force rebuild" button for the currently loaded project somewhere in the IDE? I guess, for the case of PD patches, it would stop whatever code may be Run-ning on the Bela, would delete the executable corresponding with the project, and would trigger a full rebuild.