Skip to content

Instantly share code, notes, and snippets.

@xavriley
Created December 4, 2017 08:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xavriley/1b4d17fef90b7b168f234119572d90ce to your computer and use it in GitHub Desktop.
Save xavriley/1b4d17fef90b7b168f234119572d90ce to your computer and use it in GitHub Desktop.
Sonic Pi on Docker on Heroku research

locally:

developer@5b0666c5c640:~$ jackd -r -t 100000  -d dummy -r 44100
jackd 0.124.1
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
JACK compiled with System V SHM support.
loading driver ..
creating dummy driver ... dummy_pcm|44100|1024|23219|2|2
^Cjack main caught signal 2
no message buffer overruns
developer@5b0666c5c640:~$ jackd -r -t 100000  -d dummy -r 44100 &
[1] 13
developer@5b0666c5c640:~$ jackd 0.124.1
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
JACK compiled with System V SHM support.
loading driver ..
creating dummy driver ... dummy_pcm|44100|1024|23219|2|2
jack_wait
^C
developer@5b0666c5c640:~$ jack_wait -c
running

on Heroku

~ $ jackd -r -v -t 100000  -d dummy -r 44100 &
[1] 6
~ $ jackd 0.124.1
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

getting driver descriptor from /usr/lib/x86_64-linux-gnu/jack/jack_net.so
getting driver descriptor from /usr/lib/x86_64-linux-gnu/jack/jack_dummy.so
getting driver descriptor from /usr/lib/x86_64-linux-gnu/jack/jack_alsa.so
getting driver descriptor from /usr/lib/x86_64-linux-gnu/jack/jack_oss.so
getting driver descriptor from /usr/lib/x86_64-linux-gnu/jack/jack_alsa_midi.so
getting driver descriptor from /usr/lib/x86_64-linux-gnu/jack/jack_firewire.so
Cannot create RT messagebuffer thread: Operation not permitted (1)
Retrying messagebuffer thread without RT scheduling
Messagebuffer not realtime; consider enabling RT scheduling for user
JACK compiled with System V SHM support.
server `default' registered
registered builtin port type 32 bit float mono audio
registered builtin port type 8 bit raw midi
loading driver ..
creating dummy driver ... dummy_pcm|44100|1024|23219|2|2
clock source = system clock via clock_gettime
new client: dummy_pcm, uuid = 8589934593 type 1 @ 0x1ccff60 fd = -1
new buffer size 1024
resizing port buffer segment for type 0, one buffer = 4096 bytes
resizing port buffer segment for type 1, one buffer = 2048 bytes
start poll on 3 fd's
registered port system:capture_1, offset = 4096
registered port system:capture_2, offset = 8192
registered port system:playback_1, offset = 0
~ $ ls -lah /dev/shm
total 4.0K
drwx------ 3 u24543 dyno   60 Dec  4 08:52 .
drwxr-xr-x 5 root   dyno 4.0K Dec  4 08:47 ..
drwx------ 3 u24543 dyno   60 Dec  4 08:52 jack-24543
[1]+  Segmentation fault      jackd -r -v -t 100000 -d dummy -r 44100
~ $ chmod 777 /dev/shm/jack-24543/default/jack
jack_0              jack_ack_0          jack-ack-fifo-24-0  jack-ack-fifo-24-1
~ $ chmod 777 /dev/shm/jack-24543/default/jack*
~ $ ls -lah /dev/shm/jack-24543/default/jack*
srwxrwxrwx 1 u24543 dyno 0 Dec  4 08:52 /dev/shm/jack-24543/default/jack_0
srwxrwxrwx 1 u24543 dyno 0 Dec  4 08:52 /dev/shm/jack-24543/default/jack_ack_0
prwxrwxrwx 1 u24543 dyno 0 Dec  4 08:52 /dev/shm/jack-24543/default/jack-ack-fifo-24-0
prwxrwxrwx 1 u24543 dyno 0 Dec  4 08:52 /dev/shm/jack-24543/default/jack-ack-fifo-24-1
~ $ jack_wait -c
connect(2) call to /dev/shm/jack-24543/default/jack_0 failed (err=Connection refused)
attempt to connect to server failed
not running
@xavriley
Copy link
Author

xavriley commented Dec 7, 2017

This turns out to be some kind of race condition between booting jackd and booting sonic-pi-server.rb. If you issue jack_wait -c (or try to establish a connection to jack before it is ready) this appears to crash the process... I think

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