Closed PhlegmingChee closed 2 years ago
Sorry, I no longer have the resources to support Raspberry Pi since they stopped funding me.
Could you try with a fresh image of their latest release on a clean SD card. Does that work?
Hi Sam, Sorry to learn that RPi Foundation is no longer funding this project.
So I did a clean Buster installation and Sonic Pi is no longer installed by default. I tried installing the 3.0.1 deb package but ran into some missing dependencies, namely ruby2, erlang-base, libqwt-qt5 and libqt5scintilla2. Deciding I will try to fix the dependencies later, I went ahead and tried installing from the default repository. That was successful but it installed version 2.10.
Buster doesn't seems to like the libqt5scintilla2-v12.5 library (i.e., no longer seems to be available in the repository) so 3.0.1 will not install in Buster.
Would it work if you changed the name of the package in the build file?
libqt5scintilla2-dev
-> libqscintilla2-qt5-dev
I think it's renamed slightly? https://packages.debian.org/search?keywords=libqscintilla2-qt5 https://packages.debian.org/buster/libs/libqscintilla2-qt5-13
Would it work if you changed the name of the package in the build file?
libqt5scintilla2-dev
->libqscintilla2-qt5-dev
I think it's renamed slightly? https://packages.debian.org/search?keywords=libqscintilla2-qt5 https://packages.debian.org/buster/libs/libqscintilla2-qt5-13
Doesn't work. I tried that too. dpkg reports that dependency is unmet for libqt5scintilla2-v12.5
Unfortunately I don't have the resources to work on the Pi version any more and the Raspberry Pi Foundation have been quite short about it all:
So I manually installed the scintilla lib with sudo apt-get install libqscintilla2-qt5-dev
before I did anything else and am trying to build with the (modified) build-debian-app script.
First time round, I tried with option 2, but it failed when it tried to build a deb for Supercollider - I think it's due to this bug: https://github.com/opencv/opencv/issues/8897#issuecomment-336597703
Now trying to build with option 1. (Pi 3B+)
Thanks glenpike for looking into this.
I am wondering if this doesn't call out for making Sonic-Pi a Docker image? It is something to think about as a way to freeze the build in "Stretch" so that we keep the dependencies contained in the image, which would allow it to run on "Buster" in the future.
Not sure that Docker wouldn't add more cruft, it may certainly hog resources on RPi <=3
My build from source failed with linker issues on Sonic-Pi, but I was at bleeding edge. Looking at the building from source doc. It looks like Buster has the versions of Supercollider, SC3 Plugin & Aubio binary packages that are needed. I'm going to try installing these, then rebuilding 3.1.0 tag - slow progress, but let's see.
Ran into issues with the rugged package similar to #1908 - can't figure out how to get around this, so calling it a night.
Right, as an aside, I've managed to get v3.1.0 building on ubuntu 18.04 with a modified build script and using system ruby gems where possible (I guess following dvzrv's comment in https://github.com/samaaron/sonic-pi/issues/1908#issuecomment-461632405).
It's in the branch here: https://github.com/glenpike/sonic-pi/tree/devendor-gems Maybe I will be able to try this on the Raspberry Pi and see if it behaves...
So I built it on Buster (not a clean install) with some messing around, but it seems to hang somewhere with server startup, then fails. I get to 'Boot - Server connection established', but then the 'Studio...' messages don't seem to appear. Will investigate further.
Relevant logs:
==> /home/pi/.sonic-pi/log/server-output.log <==
configuring for 44100Hz, period = 2048 frames (46.4 ms), buffer = 3 periods
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 3 periods for playback
Boot - Starting the SuperCollider server...
Boot - scsynth -u 4556 -m 131072 -a 1024 -D 0 -R 0 -l 1 -i 2 -o 2 -z 128 -c 128 -U /usr/lib/SuperCollider/plugins:/home/pi/sonic-pi/app/server/native/extra-ugens/ -b 4096 -B 127.0.0.1
Boot - SuperCollider booted successfully.
Boot - Connecting to the SuperCollider server...
Boot - Sending /status to server: 127.0.0.1:4556
Boot - Receiving ack from scsynth
Boot - Server connection established
==> /home/pi/.sonic-pi/log/gui.log <==
............................................................
[GUI] - Critical error! Could not boot Sonic Pi Server.
[GUI] - stopping UDP OSC Server...
[GUI] - UDP OSC Server no longer listening
[GUI] - Aborting. Sorry about this.
@glenpike thanks for investigating this.
For the record soon I will be announcing a kickstarter funding campaign which will have the explicit goal of funding the work to build the infrastructure to create automated releases for Raspbian (and hopefully other platforms).
So I think I found out where the problem is and possibly why - the Ruby server was never receiving an OSC message that the synthdefs had loaded.
Looking at the system versions of supercollider & sc3-plugins in Buster, it appears that they are mismatched:
sudo apt-cache show supercollider
Package: supercollider
Source: supercollider (1:3.8.0~repack-2)
Version: 1:3.8.0~repack-2+b1
Architecture: armhf
sudo apt-cache show sc3-plugins
Package: sc3-plugins
Source: supercollider-sc3-plugins
Version: 3.9.1~repack-3
Installed-Size: 51
The release doc's for SC 3.9.0 specifically state:
plugin binaries compiled for SuperCollider 3.8 will not work with SuperCollider 3.9 and vice versa.
So I am trying to compile from source, but didn't have much luck the first time round when I tried to start the server... This time I will make sure SC and the plugins are behaving first before trying Sonic Pi stuff.
Great progress, Glen. I'm not sure who maintains this stuff. Does SuperCollider's web site not give a hint? https://supercollider.github.io/
I submitted a but on Raspbian's system and had a reply from someone this morning - https://bugs.launchpad.net/raspbian/+bug/1836465 @samaaron I think Sonic Pi does depend on the plugins - is that right? If so, would you know if the fail at synthdefs loading would relate to this?
Finally... (although it's v3.1)
So, I managed to build Supercollider and SC3 Plugins from source - I used the Version-3.9.3 tag for both, following these instructions: https://supercollider.github.io/development/building-raspberrypi (I'd also installed additional libs from my tweaks to the ubuntu install, but some of these may be redundant (apart from aubio-tools
and possibly the change to the scintilla lib - libqscintilla2-qt5-dev
?)
One of the things I'd missed last night was not initialising or updating the submodules when I switched tags, so I had compile / link errors. I did install libyaml-cpp-dev
and libyaml-cpp0.6
, but these may be red-herrings.
Once I got supercollider working, the other issue was the path the Ruby server sets for the plugins (because this was compiled from source, it ends up in /usr/local/lib/SuperCollider/plugins/
, which is different from the path passed to '-U' in scsynthexternal.rb). I guess this can be set as a CMAKE option, but I have not looked - I just changed in the ruby file to make it work.
I've ordered some SD cards, so I will try with a clean install of Buster (and possibly retry an update from Stretch, but only if I have time)
just to facts:
I just installed a brand new raspian buster image into a rpi4 and it came with sonic pi already installed. just it was v2.10. I tried the .deb provided on the sonic-pi website and I was able to meet all dependencies except one from out the buster repos. This one is libqt5scintilla2-12v5. Same as reported above. After querying google for a while I found out that this is not a fault of the rpi foundation but more due to the debian foundation. They removed this lib from the official debian buster repo in the beginning of 2018. Due to this it is also missing in raspian buster. That would also mean you cannot run sonic pi v3 on debian buster for any platform because you cannot meet the dependencies.
The best would be for sonic pi to completely get rid of this dependency. I gues once it is gone in debian stable (which is now) the other distributions an derivates will sooner or later remove it too...
probably this is the reason for the downgrade to 2.10 in raspian too. I guess 2.10 was the last sonic pi release that did not have that dependency. So the rpi foundation chose that one to be able to still ship sonic pi with raspian buster.
So I've managed to build again on a clean Buster install (RPi 4 really helps speed things up!). Raspbian has fixed an issue with the Supercollider vs SC3-Plugins packages, so it's possible to install these with 'apt'. I think I got a fairly good build (with most gems installed with bundler) on my devendor-gems branch, but waiting on Xavier Riley to merge a PR for his ruby-aubio
package. If there is somewhere/someone who knows a bit more about making '.deb' src / other packages, I'd be happy to muck in, but I'm a n00b there. In a previous bug I saw the source package with patches, so I guess we can use the patches in there for the lib unless libaubio is fixed. FastOsc looks like it has been refactored a bit too, so I've had to freeze the version of that.
I need to test my script a few times, but people welcome to try.
I got sonic pi version 3.3.1 to work on raspbian buster with the following overclock.
Now it ts rather glitchy, but it works none the less.
We have completely overhauled the building and booting systems in the recently released v4
of Sonic Pi:
https://github.com/sonic-pi-net/sonic-pi/releases
Please do give v4 a try and feel free to create a new issue if you're still having problems. If there isn't a package available for your Linux distribution, then you should be able to self-compile using the following instructions:
https://github.com/sonic-pi-net/sonic-pi/blob/dev/BUILD-LINUX.md
So I did a dist-upgrade to Buster from Stretch on my Raspberry Pi 3 B+, but it seems to have borked Sonic Pi.
This is the error log:
Sonic Pi Boot Error Report
System Information
GUI Log
/home/pi/.sonic-pi/log/gui.log
Server Errors
/home/pi/.sonic-pi/log/server-errors.log
Server Output
/home/pi/.sonic-pi/log/server-output.log
Scsynth Output
/home/pi/.sonic-pi/log/scsynth.log
Process Log
/home/pi/.sonic-pi/log/processes.log