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:
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