Skip to content

Instantly share code, notes, and snippets.

@rogerallen
Last active November 9, 2017 23:26
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rogerallen/82dc82c9079eef6bc456 to your computer and use it in GitHub Desktop.
Save rogerallen/82dc82c9079eef6bc456 to your computer and use it in GitHub Desktop.
Jetson TK1 scsynth/overtone notes
Followed basic outline here:
http://supercollider.github.io/development/building-beagleboneblack.html
**********
Need to disconnect Pulseaudio (for now)
http://www.linuxplanet.com/linuxplanet/tutorials/7130/2
sudo vi /etc/pulse/client.conf
autospawn = no
daemon-binary = /bin/true
Now that you have purged all the startup and respawning scripts, how do you stop and start PulseAudio? Easy as pie:
$ pulseaudio --kill
# NOTE THAT YOU NEED TO DO THIS ALL THE TIME NOW
$ pulseaudio --start
**********
Step 3. There is an older Jack installed: libjack-jackd2-0:armhf. Don't use that it is broken. Wrote a bug to fix it.
See https://bugs.launchpad.net/ubuntu/+source/jackd2/+bug/1353832
and https://devtalk.nvidia.com/default/topic/765800/workaround-for-fatal-cannot-locate-cpu-mhz-in-proc-cpuinf/
**********
Step 4. Went back a revision to be sure Overtone would work. Tried 3.5 and that was just broken. 3.6 works. Need to try 3.7
git checkout 3.6
git submodule init && git submodule update
Here's the cmake that seems to work well for me
CC="gcc" CXX="g++" cmake -L \
-DCMAKE_BUILD_TYPE="Release" -DBUILD_TESTING=OFF \
-DSC_QT=OFF -DSC_WII=OFF -DSC_ED=OFF -DSC_IDE=OFF -DSC_EL=OFF -DSUPERNOVA=OFF \
-DLIBSCSYNTH=ON \
-DSSE=OFF -DSSE2=OFF -DNOVA_SIMD=ON -DNATIVE=OFF \
-DCMAKE_C_FLAGS="-mcpu=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard" \
-DCMAKE_C_FLAGS_RELEASE="-ffast-math -O3 -DNDEBUG" \
-DCMAKE_CXX_FLAGS="-mcpu=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard" \
-DCMAKE_CXX_FLAGS_RELEASE="-ffast-math -O3 -DNDEBUG" \
..
(-j4 failed for me with make)
make
sudo make install
sudo ldconfig
sudo reboot
**********
Make Overtone scsynth native localrepo
mkdir scsynth-3.6.6
mkdir -p native/linux/arm
cp /usr/local/lib/libscsynth.so.1.0.0 native/linux/arm/
mv native/linux/arm/libscsynth.so.1.0.0 native/linux/arm/libscsynth.so
cp /usr/local/lib/SuperCollider/plugins/* native/linux/arm/
get overtone/nativescsynth/availability.clj fixed up for arm
jar -cMf scsynth-3.6.6.jar overtone native
lein localrepo install scsynth-3.6.6.jar overtone/scsynth 3.6.6
**********
Start Jackd:
jackd -dalsa -dhw:1,0 -p128 -n3 -s &
**********
Start SuperCollider Server:
sclang
s.boot;
IMPORTANT! Go into System Monitor & nice scsynth to highest priority.
a={SinOsc.ar([400, 404], 0, 0.1)}.play;
a.free;
# when you finish
s.quit;
0.exit;
**********
setup project.clj
:dependencies [[org.clojure/clojure "1.5.1"]
[overtone "0.9.1" :exclusions [[clj-native]
[overtone/scsynth]]]
[clj-native "0.9.5"]
[overtone/scsynth "3.6.6"]
;;[shadertone "0.2.3" :exclusions [[hello_lwjgl/lwjgl]]]
;;[hello_lwjgl/lwjgl "2.9.1arm"]
]
**********
Run from terminal requires something in your LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/jre/lib/arm lein run
**********
M-x cider-connect
Remember to
(use 'overtone.core)
(connect-external-server)
@mozinator
Copy link

step 4

The reason that only 3.6 works is probably because overtone maps the internal datastructures here

supercollider/include/server/SC_WorldOptions.h
supercollider/include/plugin_interface/SC_World.h
supercollider/include/common/SC_Reply.h
supercollider/include/server/SC_WorldOptions.h

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment