Vcvrack for 32 & 64bit ubuntu on arm and on raspbian buster v1.0.0

hello,

just in case someone else is interested too in playing around with vcvrack v1 on linux arm (32bit and 64bit ubuntu 18.04 and raspbian buster) i have uploaded my build scripts, patches and some binary builds at:

https://github.com/hexdump0815/vcvrack-dockerbuild-v1

i use those to build vcvrack on armv7l, aarch64 and raspbian buster. the binary releases you can find under “releases” on github.

changelog for version 1.0.0:

  • support for vcvrack v1.0.0
  • support for some first 20 plugins for v1
  • only support arm 32bit and 64bit builds for now (intel and macos ones are no longer required, as they already contain threading, framerate limiting etc.)
  • added a precompiled version for raspbian buster besides the already provided ubuntu 18.04 version
  • lots of minor fixes and improvements

here is the readme from it:

this is my dockerbuild setup to easily build vcvrack v1 arm in both 32bit and 64bit versions - all that on ubuntu 18.04 and raspbian buster. it contains all the patches i used to get it built especially on arm (for instance using the simde project to translate the sse code to arm neon code as good as possible in a semiautomatic way).

for building this you should have at least 2gb of ram (it works with 1gb ram on an arm board, but it will swap like crazy and is not really recommended - better use an arm machine with 2gb of ram like an odroid c2, odroid xu4, asus tinkerboard etc.) - all builds are assumed to be done native (cross compiling would require some changes on the scripts).

regarding running vcvrack on arm don’t get too excited: the performance of the usual arm sbc boards is way lower than the performance of a contemporary or older intel machine, but anyway with some optimizations and watching out for well performing plugins in vcvrack it is quite useable with small to medium sized patches. quite a bit of audio tuning is required and one should use a sampling frequency of 32khz preferrably, as this saves quite a few cpu cycles compared to 44.1khz or higher and still gives good quality sound. the biggest problem though is finding properly working opengl on those arm boards - it is often slow, broken or non existent and it took me quite some effort, tuning and patchig to get it working.

my reference systems are:

  • orbsmart s92 tv box - rockchip rk3288 4x1.5ghz 2gb ram - running ubuntu 18.04 armv7l with a self compiled linux 5.1.5 kernel with mali and other patches (it is similar to an asus tinkerboard) - usb audio PCM2704 (from ebay)
  • a95xr2 tv box - amlogic s905w 4x1.2ghz 2gb ram - running ubuntu 18.04 aarch64 with a self compiled linux 5.1.5 kernel with mali and other patches (it is similar but a bit slower than an odroid c2, khadas vim or libreteck potato board) - usb audio PCM2704 (from ebay)
  • raspberry pi 3b - broadcom soc 4x1.2ghz 1gb ram - running ubuntu 18.04 aarch64 (not 32bit raspbian!) with a self compiled linux 5.0.20 kernel and self compiled latest mesa vc4 - native headphone jack audio

some thanks to:

  • andrew belt for starting and keeping vcvrack up - https://github.com/VCVRack/Rack
  • evan nemerson for his wonderful simde project, which makes it possible to somehow translate the intel sse code to arm neon with a limited effort - https://github.com/nemequ/simde
  • and to all the others involved in vcvrack, its plugins, its community and people involved in the opensource community making things like this possible

watch out for updates - there should be some coming during the next weeks and months … and maybe have a look at the sonaremin as well: https://github.com/hexdump0815/sonaremin

maybe all this is useful for others as well …

best wishes - hexdump

2 Likes

a new version (v1.1.0) is ready and based on vcvrack v1.1.0 - as usual available at https://github.com/hexdump0815/vcvrack-dockerbuild-v1/releases … lots of changes, a lot more plugins, some notes about running it on raspbian and so on - the changelog speaks for itself i guess:

changelog for version 1.1.0

  • upgraded vcvrack to version v1.1.0
  • more included plugins (all 51 currently available open source plugins plus 21khz, bidoo and lindenberg research - resulting in a total of 686 vcvrack modules!)
  • added notes for running vcvrack on raspbian
  • bring back support for building on and for x86_64 linux (64bit), i686 linux (32bit) and macos (64bit, tested on sierra) - please be aware that the linux intel builds start iconified like the linux arm builds by default (for possible low cpu usage automation scenarios)
  • add support for building on and for windows in 32bit and 64bit mode
  • given up on the bridge module - it is no longer developed and one can use the one from the v0 builds if required
  • known problems:
    – it looks like that the windows 32bit version simply does not work - it gives an assertion when loading the template patch in jpommier-pffft (the first assertion in pffft_transform_internal in case anyone wants to debug and fix this)
    – the FrozenWasteland plugin does not load (plugin.json not matching), some others not on macos and on windows (see readme-macos.txt and readme-windows.txt)

on the officially supported platforms please use the offical versions of vcvrack - my builds are just here in case someone wants to have the same environment when developing patches for the sonaremin and for the officially not supported arm platforms.

a new version of the sonaremin based on this version will follow in a few days …

have a nice weekend and best wishes - hexdump

i have created a new build: https://github.com/hexdump0815/vcvrack-dockerbuild-v1/releases/tag/v1.1.0.1

same as last build (still based on vcvrack v1.1.0 as v1.1.1 has no really significant changes relevant here), but with updated plugins and more new plugins added - now 64 plugins are included resulting in 772 vcvrack modules … only arm 32bit and 64bit builds plus the build for raspbian …

there are now some notes on running the raspbian build on a raspberry pi at https://github.com/hexdump0815/vcvrack-dockerbuild-v1/blob/master/readme-raspbian.txt

best wishes - hexdump