Raspberry pi and sonic pi 3.2 dev possible on raspbian stretch?

#1

Hi there,

Does somebody manage to install sonic pi 3.2 on a raspbian stretch on a rpi 3b+ ?
Just to know !

Cheers

1 Like
#2

Yes I have built 3.2dev from source on a Pi3 on stretch but I haven’t updated it for a month or so.

1 Like
#3

Hi,

Ok try today and it fails…

i try this method on a fresh raspbian installation

Installing with make install...

========================= Installation results ===========================
Makefile:1784 : la recette pour la cible « cmake_check_build_system » a échouée
make: *** [cmake_check_build_system] Erreur de segmentation

****  Installation failed. Aborting package creation.

Cleaning up...OK

Bye.

Could you tell me which method to you choose when it asks

Some packages may be built from source and installed manually.
How do you want to install these packages?
1 - install manually via. make install.
2 - make .deb packages via. checkinstall and install those via dpkg. (Only works on Debian)
Type quit to exit.

i 've tried 2 …

Do we have to delete some directories before trying another installation ?

Thanks for your always really appreciate help

#4

Hi,

Well i’m back to find a way to install sonic pi 3.2

I try the script from @matheynen Linux midi don't see my sh-01a have to change some paths. why paths are different !?


#Application/library versions built by this script.
SUPERCOLLIDER_VERSION=3.9.1
SC_PLUGINS_VERSION=3.9.0 # 3.9.1 is currently in pre-release and I've had issues installing it, but 3.9.0 seems to work fine.

#!/bin/bash

#Fail script on first error encountered
set -e
# Verbose
#set -x
AUBIO_VERSION=c6ae035 # v0.4.6
OSMID_VERSION=391f35f789f18126003d2edf32902eb714726802
RUGGED_VERSION=0.26.0

#Internal definitions
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SP_APP_SRC=${SCRIPT_DIR}
SP_ROOT=${SP_APP_SRC}/../../../../
OSMID_DIR=${SP_APP_SRC}/../../server/native/linux/osmid

CYAN='\033[1;36m'
NC='\033[0m' # No Color

echo "This script is modified version of the original build-ubuntu-app script. This has been tested on Debian Stretch (9)."
echo "In some cases users may need to install some of the dependencies by hand from source."
echo "We're working to make a one shot script solution for all Linux platforms."
echo "Original script made by Factoid and possibly other people, modified for Debian Stretch by SunderB."

installMethod=''

while [ "$installMethod" != "1" ] && [ "$installMethod" != "2" ]; do
		echo 'Some packages may be built from source and installed manually.'
		echo 'How do you want to install these packages?'
		echo '1 - install manually via. make install.'
		echo '2 - make .deb packages via. checkinstall and install those via dpkg. (Only works on Debian)'
		echo 'Type quit to exit.'
		read installMethod
		if [ "$installMethod" == "quit" ]; then
				return;
		fi
done

#Install dependencies for building supercollider, as well as qt5 and supporting libraries for gui
echo -e "${CYAN}Installing dependencies for building supercollider, as well as qt5 and supporting libraries for gui...${NC}"
sudo apt-get install -y \
     g++ ruby ruby-dev pkg-config git build-essential libjack-jackd2-dev \
     libsndfile1-dev libasound2-dev libavahi-client-dev libicu-dev \
     libreadline6-dev libfftw3-dev libxt-dev libudev-dev cmake libboost-dev \
     libqwt-qt5-dev libqt5scintilla2-dev libqt5svg5-dev qt5-qmake qt5-default \
     qttools5-dev qttools5-dev-tools qtdeclarative5-dev libqt5webkit5-dev \
     qtpositioning5-dev libqt5sensors5-dev qtmultimedia5-dev libffi-dev \
     curl python erlang-base
					
if [ "$installMethod" == "2" ]; then
		echo -e "${CYAN}Installing checkinstall...${NC}"
		sudo apt-get install checkinstall
fi

# Ruby Packages:
# ruby ruby-dev gem
# ------------------
# ruby - Interpreter for the ruby programming language
# ruby-dev - Header files for compiling extension modules for Ruby

# Qt Packages:
# libqwt-qt5-dev libqt5scintilla2-dev libqt5svg5-dev qt5-qmake qt5-default \
#    qttools5-dev qttools5-dev-tools qtdeclarative5-dev libqt5webkit5-dev \
#    qtpositioning5-dev libqt5sensors5-dev qtmultimedia5-dev
					
# Other languages and compilers:
# python erlang-base g++ 

# Other tools:
# git curl
# -----------------
# git - A version/revision control system
# curl - 

### IF YOU HAVE PROBLEMS WITH qwt
cd $SP_APP_SRC/../../../../
wget 'http://downloads.sourceforge.net/project/qwt/qwt/6.1.2/qwt-6.1.2.tar.bz2'
tar -xf qwt-6.1.2.tar.bz2
cd qwt-6.1.2
/usr/bin/qmake qwt.pro
make
sudo make install
sudo cp /usr/local/qwt-6.1.2/features/* /usr/lib/arm-linux-gnueabihf/qt5/mkspecs/features/

 #IF YOU HAVE PROBLEMS WITH qscintilla2
cd $SP_APP_SRC/../../../../
wget 'http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.9.2/QScintilla_gpl-2.9.2.tar.gz'
tar -xf QScintilla_gpl-2.9.2.tar.gz
cd QScintilla_gpl-2.9.2/Qt4Qt5/
/usr/bin/qmake qscintilla.pro
make
sudo make install

#Build supercollider from source
echo -e "${CYAN}Building supercollider from source...${NC}"
cd "${SP_ROOT}"
git clone --recursive https://github.com/supercollider/supercollider.git || true
cd supercollider
git checkout Version-${SUPERCOLLIDER_VERSION}
git submodule init && git submodule update
git submodule update --init
mkdir -p build
cd build
cmake -DSC_EL=no ..
make
echo -e "${CYAN}Installing supercollider...${NC}"
if [ "$installMethod" == "2" ]; then
		sudo checkinstall --pkgname=supercollider --pkgversion=1:${SUPERCOLLIDER_VERSION} --pkglicense=GPL-3.0 --pkggroup=sound --nodoc --default --install=no
		sudo dpkg -i supercollider_${SUPERCOLLIDER_VERSION}-1_amd64.deb
else
		sudo make install
fi
#This should install to /usr/local/

#Install sc3 plugins
#Build sc3 plugins and install to /usr/local/ so supercollider can find them
echo -e "${CYAN}Building sc3-plugins from source...${NC}"
cd "${SP_ROOT}"
git clone --recursive https://github.com/supercollider/sc3-plugins.git || true
cd sc3-plugins
git checkout Version-${SC_PLUGINS_VERSION}
git submodule init && git submodule update
git submodule update --init
cp -r external_libraries/nova-simd/* source/VBAPUGens
mkdir -p build
cd build
#cmake -DSC_PATH=../../supercollider -DCMAKE_INSTALL_PREFIX=/usr/local ..
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local --build . --config Release
cmake -DSC_PATH=../../supercollider ..
cmake --build . --config Release
make
echo -e "${CYAN}Installing sc3-plugins...${NC}"
if [ "$installMethod" == "2" ]; then
		sudo checkinstall --pkgname=sc3-plugins --pkgversion=1:${SC_PLUGINS_VERSION} --pkglicense=GPL-2.0 --pkggroup=sound --nodoc --default --install=no
		sudo dpkg -i sc3-plugins_${SC_PLUGINS_VERSION}-1_amd64.deb
else
		sudo make install
fi

#Install libaubio (apt-get version is too old)
echo -e "${CYAN}Building libaubio from source...${NC}"
cd "${SP_ROOT}"
git clone https://git.aubio.org/git/aubio/ || true
cd aubio
git checkout ${AUBIO_VERSION}
make getwaf
./waf configure
./waf build
sudo ./waf install

#Install osmid (for MIDI support)
echo -e "${CYAN}Building osmid from source...${NC}"
cd "${SP_ROOT}"
git clone https://github.com/llloret/osmid.git || true
cd osmid
git checkout ${OSMID_VERSION}
mkdir -p build
cd build
cmake ..
make
echo -e "${CYAN}Installing osmid...${NC}"
mkdir -p "${OSMID_DIR}"
install m2o o2m -t "${OSMID_DIR}"

#Build Erlang files
echo -e "${CYAN}Building Erlang files...${NC}"
cd "${SP_APP_SRC}/../../server/erlang"
#The current implementation of osc.erl uses Erlang features that require
#at least Erlang 19.1 to be installed. 16.04 LTS is currently at 18.3.
#If versions < 19.1 are installed, and we use the current code, the MIDI
#implementation breaks because the Erlang OSC router is failing.
ERLANG_VERSION=$(./print_erlang_version)
if [ -e "osc.erl.orig" ]; then
    # Handle, if the original file in the source tree ever gets updated.
    rm osc.erl.orig
    git checkout osc.erl
fi
if [[ "${ERLANG_VERSION}" < "19.1" ]]; then
    echo "Found Erlang version < 19.1 (${ERLANG_VERSION})! Updating source code."
    sed -i.orig 's|erlang:system_time(nanosecond)|erlang:system_time(nano_seconds)|' osc.erl
fi
erlc osc.erl
erlc pi_server.erl

#Build sonic-pi server extensions, documentation, and binary.
cd "${SP_APP_SRC}"

echo -e "${CYAN}Building sonic-pi server extensions...${NC}"
### If you're having trouble with rugged, this should install rugged and copy it to the Sonic Pi folder.
#sudo gem install rugged
#cp -a "/var/lib/gems/2.3.0/gems/rugged-${RUGGED_VERSION}/." "../../server/ruby/vendor/rugged-${RUGGED_VERSION}/" # You may need to change this path slightly

ruby ../../server/ruby/bin/compile-extensions.rb
echo -e "${CYAN}Building sonic-pi documentation...${NC}"
ruby ../../server/ruby/bin/i18n-tool.rb -t
cp -f ruby_help.tmpl ruby_help.h
ruby ../../server/ruby/bin/qt-doc.rb -o ruby_help.h
echo -e "${CYAN}Building sonic-pi binary...${NC}"
lrelease SonicPi.pro
qmake -qt=qt5 SonicPi.pro
make
echo -e "${CYAN}Done!${NC}"

The 2 method fails with a segment error…

The option 1 works until i got this sadly message (in french)

/usr/bin/ld : ne peut trouver -lqscintilla2_qt5
collect2: error: ld returned 1 exit status
Makefile:218 : la recette pour la cible « sonic-pi » a échouée
make: *** [sonic-pi] Erreur 1

So an idea to help to find this -lqscintilla2_qt5 ?
Thanks for your clever ideas !

#5

I’m not certain but change the 17 line in sonicPi.pro (a file in app/gui/qt/)

CONFIG += qt5scintilla2 qwt c++11 resources_big

Sinon il faut chipoter avec les liens symbolique, et oui I’m Belgian man living in Brussels

#6

ok thanks for the tip. It will be great to have feedback from others code Jedis. :slight_smile:
i will try next week !

ps : Nice town Brussels ! Salutation from Cherbourg (France) !

#7

Hi,

Back in town :slight_smile:

well, i get the latest version of sonic Pi 3.2.dev from github and try the “new” script. https://github.com/samaaron/sonic-pi/blob/master/app/gui/qt/build-rpi-app
and it fails…
So why publish a script that fails… ?
Good question no ?

as @matheynen suggested i did the changes into sonicPi.pro

TARGET = 'sonic-pi'
CONFIG += qt5scintilla2 qwt c++11 resources_big

QT += core gui concurrent network opengl widgets

# Linux only
unix:!macx {
  LIBS += -lrt -lqscintilla2_qt5
  QMAKE_CXXFLAGS += -std=gnu++11
  QMAKE_CXXFLAGS += -Wall -Werror -Wextra -Wno-unused-variable -Wno-unused-para$
  debug {
    QMAKE_CXXFLAGS += -ggdb
  }

but what about this line

LIBS += -lrt -lqscintilla2_qt5

do we have to change it and for which values ? Another good answer.

Thanks for your help.

#8
LIBS += -lrt -lqt5scintilla2

is the answer as said here https://github.com/samaaron/sonic-pi/issues/2032#issuecomment-480420882

So i manage to build but can’t manage to send sonic pi due to a qimage and memory and acess rights. I’ll will try again and again and again and again (A Forest - The Cure)

#9

In my script it’s the same. I let it like that