sonic-pi-net / sonic-pi

Code. Music. Live.
https://sonic-pi.net
Other
10.81k stars 922 forks source link

Installation broken on linux #2103

Closed edap closed 2 years ago

edap commented 5 years ago

I have followed the instruction and I have built sonic-pi from the master branch. Everything went smooth.

I have launched jack with qjackctl and then I have tried to launch the gui from sonic-pi/app/gui/qt using ./sonic-pi but I receive the following error:

terminate called after throwing an instance of 'boost::interprocess::interprocess_exception' what(): No such file or directory [1] 12310 abort (core dumped) ./sonic-pi

I am on Ubuntu Ubuntu 18.04.2 LTS. I can not use the Sonic PI version that come from the apt repository because the version 2.1 is too old and does not support OSC, that I need for my application.

edap commented 5 years ago

So, running sudo ./sonic-pi at least starts the splash screen, that it brakes after some second with this detailed error message:

Sonic Pi Boot Error Report

System Information

GUI Log

/home/dapx/.sonic-pi/log/gui.log

[GUI] - Welcome to the Sonic Pi GUI
[GUI] - ===========================
[GUI] -                            
[GUI] - {944497e1-343f-484f-bbb3-97a74535684f}
[GUI] - Discovering port numbers...
[GUI] - Port entry server-listen-to-gui : 51236 : 51236
[GUI] - Port entry gui-send-to-server : 51236 : 51236
[GUI] - Port entry gui-listen-to-server : 51237 : 51237
[GUI] - Port entry server-send-to-gui : 51237 : 51237
[GUI] - Port entry scsynth : 51238 : 51238
[GUI] - Port entry scsynth-send : 51238 : 51238
[GUI] - Port entry osc-midi-out : 51240 : 51240
[GUI] - Port entry osc-midi-in : 51241 : 51241
[GUI] - Port entry server-osc-cues : 4560 : 4560
[GUI] - Port entry erlang-router : 4561 : 4561
[GUI] - Port entry websocket : 4562 : 4562
[GUI] - Detecting port numbers...
[GUI] - GUI listen to server port 51237
[GUI] -    port: 51237 [OK]
[GUI] - Server listen to gui port 51236
[GUI] -    port: 51236 [OK]
[GUI] - Server incoming OSC cues port 4560
[GUI] -    port: 4560 [Not Available]
[GUI] - Scsynth port 51238
[GUI] -    port: 51238 [OK]
[GUI] - Server send to GUI port 51237
[GUI] -    port: 51237 [OK]
[GUI] - GUI send to server port 51236
[GUI] -    port: 51236 [OK]
[GUI] - Scsynth send port 51238
[GUI] -    port: 51238 [OK]
[GUI] - Erlang router port 4561
[GUI] -    port: 4561 [Not Available]
[GUI] - OSC MIDI out port 51240
[GUI] -    port: 51240 [OK]
[GUI] - OSC MIDI in port 51241
[GUI] -    port: 51241 [OK]
[GUI] - Websocket port 4562
[GUI] -    port: 4562 [OK]
[GUI] - Critical Error. One or more ports is not available.

Server Errors

/home/dapx/.sonic-pi/log/server-errors.log

Non-critical error: Could not load did_you_mean
Cannot lock down 82280346 byte memory area (Cannot allocate memory)
Cannot use real-time scheduling (RR/5)(1: Operation not permitted)
JackClient::AcquireSelfRealTime error
Non-critical error: Could not load did_you_mean
Cannot lock down 82280346 byte memory area (Cannot allocate memory)
Cannot lock down 82280346 byte memory area (Cannot allocate memory)
Cannot lock down 82280346 byte memory area (Cannot allocate memory)
Cannot lock down 82280346 byte memory area (Cannot allocate memory)
Non-critical error: Could not load did_you_mean
Non-critical error: Could not load did_you_mean
Non-critical error: Could not load did_you_mean
Cannot read socket fd = 6 err = Success
CheckRes error
JackSocketClientChannel read fail
Server is not running
Server is not running

Server Output

/home/dapx/.sonic-pi/log/server-output.log

Sonic Pi server booting...
Using primary protocol: udp
Detecting port numbers...
Listen port: 51235
  - OK
Scsynth port: 51237
  - OK
Scsynth send port: 51237
  - OK
OSC cues port: 4560
  - OK
Erlang port: 4561
  - OK
OSC MIDI out port: 51238
  - OK
OSC MIDI in port: 51239
  - OK
Websocket port: 4562
  - OK
Booting server...

Booting Sonic Pi
----------------

Booting on Linux
Jackd already running. Not starting another server...
Boot - Starting the SuperCollider server...
Boot - scsynth -u 51237 -m 131072 -a 1024 -D 0 -R 0 -l 1 -i 16 -o 16 -b 4096 -B 127.0.0.1
Started [12521] [-] scsynth -u 51237 -m 131072 -a 1024 -D 0 -R 0 -l 1 -i 16 -o 16 -b 4096 -B 127.0.0.1 [-] /tmp/sonic-pi-pids/12521
Boot - SuperCollider booted successfully.
Boot - Connecting to the SuperCollider server...
Boot - Sending /status to server: 127.0.0.1:51237
Boot - Receiving ack from scsynth
Boot - Server connection established
Studio - Initialised SuperCollider Audio Server v3.9.0
Studio - Resetting server
Studio - Studio - clearing scsynth
Studio - Studio - allocating audio bus
Studio - Studio - Create Base Synth Groups
Studio - Starting mixer
Studio - Starting scope
exec erl -noshell -pz "/media/data/Sources/Linux/sonic-pi/app/server/erlang" -s pi_server start 4561
Started [12553] [-] /usr/lib/erlang/erts-9.2/bin/beam.smp -- -root /usr/lib/erlang -progname erl -- -home /home/dapx -- -noshell -pz /media/data/Sources/Linux/sonic-pi/app/server/erlang -s pi_server start 4561 [-] /tmp/sonic-pi-pids/12553
Studio - Spawning o2m with:
    exec '/media/data/Sources/Linux/sonic-pi/app/server/native/osmid/o2m' -L -b -i 51238 -O 51239 -m 6
Started [12603] [-] sh [-] /tmp/sonic-pi-pids/12603
Studio - Spawning m2o with:
    exec '/media/data/Sources/Linux/sonic-pi/app/server/native/osmid/m2o' -b -o 51239 -m 6 'Sonic Pi'
Started [12607] [-] sh [-] /tmp/sonic-pi-pids/12607
Studio - Initialised MIDI subsystems
This is Sonic Pi v3.2.0-dev-2fc63 running on linux with ruby api 2.1.0.
Sonic Pi Server successfully booted.

Scsynth Output

/home/dapx/.sonic-pi/log/scsynth.log

# Starting SuperCollider 2019-07-16 13:26:05
Found 109 LADSPA plugins
JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 44100.000000, driver's block size = 1024
SuperCollider 3 server ready.
JackDriver: max output latency 46.4 ms
JackDriver: killed by jack

Process Log

/home/dapx/.sonic-pi/log/processes.log

No pids store found here: /tmp/sonic-pi-pids
Exiting
Creating pids store: /tmp/sonic-pi-pids
Started [12380] [-] ruby -E utf-8 /media/data/Sources/Linux/sonic-pi/app/gui/qt/../../../app/server/ruby/bin/sonic-pi-server.rb -u 51235 51236 51237 51237 4560 4561 51238 51239 4562 [-] /tmp/sonic-pi-pids/12380
Started [12521] [-] scsynth -u 51237 -m 131072 -a 1024 -D 0 -R 0 -l 1 -i 16 -o 16 -b 4096 -B 127.0.0.1 [-] /tmp/sonic-pi-pids/12521
Started [12553] [-] /usr/lib/erlang/erts-9.2/bin/beam.smp -- -root /usr/lib/erlang -progname erl -- -home /home/dapx -- -noshell -pz /media/data/Sources/Linux/sonic-pi/app/server/erlang -s pi_server start 4561 [-] /tmp/sonic-pi-pids/12553
Started [12603] [-] sh [-] /tmp/sonic-pi-pids/12603
Started [12607] [-] sh [-] /tmp/sonic-pi-pids/12607
samaaron commented 5 years ago

Looks like you're having an issue with jack.

However, I'd avoid building from master unless you want to help with development. Instead, I'd stick with one of the tagged releases to get you up and running.

edap commented 5 years ago

Where are the tagged releases? I have first run sudo apt-get install sonic-pi but the installed version is old (I think 2.1) and does not support OSC. Or, I was receiving an error for the line use_osc "localhost", 8000, that works fine on another machine.

samaaron commented 5 years ago

Yep, the version packaged with Debian is really old, sorry about that. I'm currently working on a kickstarter to help fund a repackaging of the latest release.

The releases are tagged in git itself. You can also see them here: http://github.com/samaaron/sonic-pi/releases

edap commented 5 years ago

Ok, many thanks for your efforts. I assume that to disinstall this installation I simply have to remove the folders aubio osmid sc3-plugins sonic-pi supercollider, correct?

samaaron commented 5 years ago

Hi, I think it depends on how they got there in the first place. If you installed them via a package manager, then you will likely need to uninstall them via the same package manager. If you installed them manually, then it should be safe to remove them.

edap commented 5 years ago

I have installed it using the script ./build-ubuntu-app. I am checking which packages were installed with that script. thanks ;)

mrvanes commented 5 years ago

@samaaron 'boost::interprocess::interprocess_exception' was #2104 and is now fixed.

rbckman commented 2 years ago

got this error on latest dev git build, sonic-pi runs for about three seconds and then it throws this error.

rbckman commented 2 years ago

now it lasted for about 7 seconds then termination :'(

terminate called after throwing an instance of 'boost::interprocess::interprocess_exception' what(): No such file or directory ./sonic-pi: line 20: 94362 Aborted $DIR/../app/build/gui/qt/sonic-pi

rbnpi commented 2 years ago

Can you give more info on what platform you are building on including version of OS? Also at the latest dev there is a whole lot of additional stuff that has to be done for a successful build that is not fully documented yet. eg installing particular version of elixir using asdf. The error can be caused for a variety of reasons.

rbckman commented 2 years ago

debian stable, alrite! was just checking around about that asdf. what version of eixir and erlang need it to be?

rbckman commented 2 years ago

actualy it thows an error when compiling about elrang and elixir. like this:

Compiling Erlang/Elixir files... ** (CompileError) config/config.exs:48: undefined function config_env/0 (stdlib 3.14) lists.erl:1358: :lists.mapfoldl/3 (elixir 1.10.3) expanding macro: Kernel.to_string/1 config/config.exs:48: (file) (elixir 1.10.3) expanding macro: Config.import_config/1 config/config.exs:48: (file)

rbnpi commented 2 years ago

I think you need to install later version of elixir and Erlang using asdf. The package you are currently using is too old see https://asdf-vm.com/guide/getting-started.html#_1-install-dependencies and also look at the script sonic-pi/app/pi-install-elixir.sh for details of doing it on an RPi. You need additional packages too. For RPI need

sudo apt-get update
sudo apt-get install -y build-essential libssl-dev git ruby-dev elixir erlang-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev supercollider-server sc3-plugins-server alsa-utils jackd2 libjack-jackd2-0 pulseaudio-module-jack librtmidi-dev cmake ninja-build

# Dependencies for building Erlang/Elixir via asdf...
sudo apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop

Also need packages for qtwebengine5 on Ubuntu I needed those listed below

rbn@ubuntu:~$ dpkg -l |grep webengine
ii  libqt5webengine-data                       5.12.8+dfsg-0ubuntu1.1                all          Web content engine library for Qt - Data
ii  libqt5webengine5:amd64                     5.12.8+dfsg-0ubuntu1.1                amd64        Web content engine library for Qt
ii  libqt5webenginecore5:amd64                 5.12.8+dfsg-0ubuntu1.1                amd64        Web content engine library for Qt - Core
ii  libqt5webenginewidgets5:amd64              5.12.8+dfsg-0ubuntu1.1                amd64        Web content engine library for Qt - Widget
ii  qtwebengine5-dev:amd64                     5.12.8+dfsg-0ubuntu1.1                amd64        Web content engine library for Qt - development files
ii  qtwebengine5-doc     
samaaron commented 2 years ago

We have improved our build process - especially for Linux - in addition to a complete overhaul of how we boot the system. Therefore, please feel free to re-open if this is still an issue with the recently released v4 of Sonic Pi - https://github.com/sonic-pi-net/sonic-pi/releases