Hi all,
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 root@192.168.7.2:Bela/projects/
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:
Building project...
Build finished
Running project...
... 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:
Bela stopped
Building project...
Linking...
...done
Build finished
Running project...
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:
Overwriting file
The file _main.pd already exists in this project. Would you like to overwrite it?
[Cancel] [Overwrite]
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:
Building project...
make: Nothing to be done for 'all'.
Build finished
Running project...
... 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.