Supercollider on Beaglebone Black

Beaglebone_Black-Supercollider

Download the disk image and burn the microSD

This step might not be necessary on Rev-C BBBs.

Connect to your BBB from OSX

  • Connect the ethernet cable from the Mac to the BBB
  • Insert microSD card in the BBB slot
  • While pressing the boot button of the BBB (right above the card slot), power it up.  This will boot from the microSD instead of the eMMC
  • In OSX launch a terminal app and type ssh debian@beaglebone.local
  • Default password is temppwd
 

Resize storage (optional)

This step might not be necessary on Rev-C BBBs.
  • To expand the filesystem to use all the free space in the microSD use fdisk.  WARNING: This could cause data loss in the SD card
  • Type sudo fdisk /dev/mmcblk0 in the terminal.  You should end up in the fdisk prompt
  • Press d to delete a partition
  • Press 2 to select second partition
  • Press n to add a new partition
  • Press p to select primary
  • Type 2 to add partition number 2
  • Use default values after that.
  • Press 2 to write the new table.
  • Reboot with sudo shutdown -r now.  Remember to hold the boot button down while booting
  • Affter BBB reboots, reconnect with ssh debian@beaglebone.local
  • Type this in the command resize2fs /dev/mmcblk0p2
  • Reboot once more sudo shutdown -r now (rembember the boot button)
  • After logging back into the BBB, confirm that the drive is larger with df -h.  This should output something like
          Filesystem     Size     Used     Avail     Use%     Mounted on

          rootfs         7.2G     1.8G     5.2G      26%           /

Preparation

  • sudo dpkg-reconfigure tzdata # set timezone
  • sudo ntpdate pool.ntp.org # set time
  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install emacs build-essential git cmake alsa-base libasound2-dev libsamplerate0-dev libsndfile1-dev libavahi-client-dev libicu-dev libreadline-dev libfftw3-dev libxt-dev # this takes a while
  • sudo depmod # for alsa
  • sudo adduser debian audio
  • Grant audio users real-time privileges by editing /etc/security/limits.conf
          sudo emacs /etc/security/limits.conf
          Add these lines at the end of the file:
         @audio     -     memlock     1025288
         @audio     -     rtprio      99

          If this is not done regular users (such as ‘debian’) won’t be allowed to start jack (hence SC) with real-time, only root would be allowed to.

Install jack2

Jack2 needs to be built from source because the package comes configured with dbus and we don’t want that (it would not run without an X11 server running).
  • git clone git://github.com/jackaudio/jack2.git
  • cd jack2
  • ./waf configure --alsa
  • ./waf build # this takes a while
  • sudo ./waf install
  • cd ..
  • sudo rm -r jack2
  • sudo ldconfig
  • sudo reboot

Install Supercollider

  • sudo apt-get install supercollider supercollider-emacs

Setup USB sound card

Disable HDMI port and HDMI audio with emacs.
  • sudo emacs /boot/uEnv.txt
  • Uncomment the line after DISABLE HDMI comment by removing the # sign before it.  It should look like
          cape_disable=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
          WARNING: Make sure you do not to uncomment the line that disables both HDMI and eMMC
  • Save and exit (C-x C-c)
  • Next, tell ALSA that is OK to use a USB audio device as primary sound card by editing alsa-base.conf
    sudo emacs /etc/modprobe.d/alsa-base.conf
  • Find a line that has a comment “Keep snd-usb-audio from being loaded as the first soundcard”.
  • On the following line change index=-2 to index=-1
  • Save and exit (C-x C-c)
  • Plug in the USB sound card and reboot
  • Check that ALSA is choosing the USB sound card as the primary audio device with alsamixer.  If the top left corner says “Card: USB Sound Device” then it’s properly set.
  • Press ESC to exit alsamixer.
  • Get a wav file to test audio with wget http://www.paul.sladen.org/pronunciation/torvalds-says-linux.wav
  • Check if it sounds aplay torvalsd-says-linux.wav

Run Supercollider from emacs

  • emacs -sclang

Flashing the eMMC

If you want to flash the current state of the microSD to the eMMC you’ll have to edit /boot/uEnv.txt with emacs.
  • sudo emacs /boot/uEnv.txt
  • Look for a line that says ##enable BBB: eMMC Flasher:
  • and uncomment the following line (should be something like this): cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
  • sudo reboot #this takes quite long.  The only visual feedback of the eMMC flashing state are the blue leds that will be flashing in turns (just like Kitt).  Do not shut down or disconnect the power from the BBB!