Giter Site home page Giter Site logo

vcvrack-dockerbuild-v1's Introduction

vcvrack dockerbuild for the v1 development version

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 possible 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 libretech 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

compiled binary packages for all the mentioned architectures are available under releases

some thanks to:

  • andrew belt for starting and keeping vcvrack up - https://github.com/VCVRack/Rack
  • pronvit for bringing me to the idea to even try to run vcvrack on arm - https://github.com/mi-rack/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 ...

order of things to build all this:

requirement: docker installed and running, tested on ubuntu 18.04

  • docker-buildenv.sh (docker-buildenv-raspbian.sh)
  • prepare.sh
  • prepare-modules.sh
  • buildenv.sh (buildenv-raspbian.sh)

then inside of the docker container:

  • /compile/build.sh
  • /compile/build-modules.sh

then back outside of the docker container to create a dist folder with everything in it:

  • make-dist.sh

running rack

the dist folder can be copied anywhere, run ./Rack -d inside of it, some working opengl is required otherwise software rendering will eat up too much cpu cycles ... it is recommended to use jack for audio

IMPORTANT: in case you run into problems with those builds here, please create an issue in this git repo and not in the vcvrack repo, as the problems might be related to this build and not to vcvrack in general

changelog

version 1.1.6_13

  • plugins updated to the state of 21.08.2021 - library git commit: 7873f46d117cfe69d1fe77276ddbd7d724606b0f
  • 194 open source plugins included resulting in 2070+ vcvrack modules!

version 1.1.6_12

  • plugins updated to the state of 25.07.2021 - library git commit: 7aceb38f59a96d82436632782da174f7b35ccb66
  • 191 open source plugins included resulting in 2030+ vcvrack modules!
  • this time also with some builds for the upcoming debian bullseye (the regular builds are built on ubuntu bionic, but will also work on ubuntu focal)
  • it seems like the ubuntu 18.04 build also works well on bullseye

version 1.1.6_11

  • plugins updated to the state of 15.06.2021 - library git commit: 50da224d0e636048f4a021d6a4a2b8e0989c792d
  • 187 open source plugins included resulting in 2000+ vcvrack modules!

version 1.1.6_10

  • plugins updated to the state of 23.04.2021 - library git commit: 1b25c6a339e0e011c684dd162105eb912aca14f8
  • 185 open source plugins included resulting in 1970+ vcvrack modules!
  • vcvrack built from the diimdeep fork (https://github.com/diimdeep/Rack) which contains an option to disable the lights in the connectors and saves around 10% of cpu if that option is enabled - this helps a lot with the weak arm cpus compared to regular intel machines
  • myrisa plugins removed - i think they were work in progress only and now disappeared from github
  • there is a build optimized (via compiler options) for the amlogic s905x3 soc (which has a very small l1 cache lowering the performance of vcvrack quite a bit on this soc compared to similar ones), but it is not faster then the generic aarch64 build in the end - this version will most probably not run on other aarch64 socs as its built for armv8.2-a (vs. armv8-a usually)
  • the armv7l build is tuned (via compiler options) for the cortex a9 cpu cores of the odroid u2/u3/x/x2 - not yet tested if that really makes any difference - this version should still work well on any armv7 soc)

version 1.1.6_9

  • plugins updated to the state of 02.03.2021 - library git commit: 63ca0d7a762fd728a705827ed4f1adad6d5a9f97
  • 185 open source plugins included resulting in 1950+ vcvrack modules!
  • skjack disabled by default (but still included in plugins.off folder) as it always crashdumps on vcvrack exit and is not really recommended to be used anyway

version 1.1.6_8

  • plugins updated to the state of 19.12.2020 - library git commit: b80390a728d7d3be4346050bf442a12133919008
  • 179 open source plugins included resulting in 1930+ vcvrack modules!

version 1.1.6_7

  • november update

version 1.1.6_6

  • plugins updated to the state of 25.10.2020 - library git commit: cc6d26fe8c700fb21809e1811e865ff75d818ec4
  • 176 open source plugins included resulting in 1850+ vcvrack modules!
  • among them are some new modules still in development and thus not yet in the regular vcvrack library and some which were never submitted to it

version 1.1.6_5

  • plugins updated to the state of 25.08.2020 - library git commit: 5d2f6cd2ab4cd0ee2edc9a097630c945aff3cdeb
  • 162 open source plugins included resulting in 1700+ vcvrack modules!
  • among them are some new modules still in development and thus not yet in the regular vcvrack library and some which were never submitted to it

version 1.1.6_4

  • plugins updated to the state of 17.07.2020 - library git commit: 3d1069d8a08d0ad9d367a835a6aed93dafbd100c
  • 150 open source plugins included resulting in 1640 vcvrack modules!

version 1.1.6_3

  • plugins updated to the state of 22.05.2020
  • linux ubuntu versions compiled with gcc 8 instead of the default gcc 7 - seems to give about 1-2% less cpu usage
  • rack sdk files included in case anyone wants to build modules for the arm cpu versions
  • 141 open source plugins included resulting in 1550+ vcvrack modules!
  • stoermelder pack gamma added as one of them - this is not released to the vcvrack library, so do not rely on it - see: https://github.com/stoermelder/vcvrack-packgamma

version 1.1.6_2

  • plugins updated to the state of 08.04.2020 (bidoo perco works now with 32khz and surge-rack is 1.4beta)
  • 132 open source plugins included resulting in 1450+ vcvrack modules!

version 1.1.6.1

  • plugins updated to the state of 01.02.2020
  • 119 open source plugins included resulting in 1350+ vcvrack modules!

version 1.1.6

  • upgraded vcvrack to version v1.1.6
  • reverted framerate management (VCVRack/Rack@e631131) as it resulted in increased cpu usage in iconified mode - still to be analyzed why ...
  • reworked plugin building now based on the library repo
  • most plugins are now built with "-mfpu=neon" on armv7l and for raspbian too with a few exceptions (they result in a SIGBUS crash of vcvrack due to unaligned access if compiled with "-mfpu=neon")
  • 113 open source plugins included resulting in 1300+ vcvrack modules!

version 1.1.3.1

  • Bidoo plugin updated
  • new plugin: wiqid-anomalies
  • new plugin: trowaSoft
  • alternative 21Khz plugin build
  • 71 open source plugins included resulting in 887 vcvrack modules!

version 1.1.3

  • upgraded vcvrack to version v1.1.3
  • more included plugins (all 68 currently available open source plugins plus 21khz - resulting in a total of 869 vcvrack modules!)
  • introduce Rack.patch file with arch independent patches to avoid having to add them to all the arch patch files
  • vcvrack starts in iconified mode now on all platforms
  • some changes in vcvrack v1.1.2 and v.1.1.3 have been reverted to let all the plugins comple and run properly (see Rack.patch)

version 1.1.1

  • upgraded vcvrack to version v1.1.1
  • more included plugins (all 64 currently available open source plugins plus 21khz - resulting in a total of 772 vcvrack modules!)

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)

version 1.0.0

  • support for vcvrack v1.0.0
  • support for 20 modules 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

version 0.5.0

  • initial version

vcvrack-dockerbuild-v1's People

Contributors

hexdump0815 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vcvrack-dockerbuild-v1's Issues

/compile/build.sh step failing

Hey hexdump!

I am trying to install vcv on Manjaro armv8 (using the archlinux scripts in your repo)
Following the steps in the readme worked fine until I'm in the container and I run
/compile/build.sh
which errors out because something is 404ing:

make[1]: Entering directory '/compile/Rack/dep'
wget -c "https://bitbucket.org/jpommier/pffft/get/29e4f76ac53b.zip"
--2020-10-05 01:05:09--  https://bitbucket.org/jpommier/pffft/get/29e4f76ac53b.zip
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving bitbucket.org (bitbucket.org)... 18.205.93.0, 18.205.93.1, 18.205.93.2, ...
Connecting to bitbucket.org (bitbucket.org)|18.205.93.0|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-10-05 01:05:10 ERROR 404: Not Found.

I am completely new to VCV (haven't even run it before)... I'm guessing this is something wrong with their side though? It looked almost identical to this issue: https://github.com/VCVRack/Rack/issues/1833

Very slow SVG loading / startup on ARM (Raspberry Pi 400 @4x2.2GHz, 800MHz GPU clock)

I'm running VCV on the new Pi400 that just came out. It also runs the audio perfectly and other DAWs work without
trouble, but the startup (from ramdisk, to be sure it's not disk read issues) is slow.

processor : 2
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 117.57
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
CPU frequency 2.2GHz (orig. 1.5-1.8GHz)
GPU frequency: 800MHz (orig. 500MHz)
GPU Resolution: 2048x1536@45Hz (Qualia / LG iPad Screen)
Mount type: ramfs/tmpfs

Here is a video showing the problem:
https://www.youtube.com/watch?v=a3Ekn2y2r8E

list of issues created over time

this is to track issues which were created on module and other repos etc. while trying to get vcvrack and the modules working on armv7l/aarch64:

Not launching properly on Pi OS Bullseye

Just updated my Pi to latest Pi OS and now VCV won't launch at all. I think its a graphical issue as the default KMS mode has changed. Installed libgles-dev as I seem to remember having to install it before, no dice though, still not launching.

Does this build for ARMv8?

Have you had luck compiling this for boards based on 64-bit ARMv8?

I will try building this on a NVIDIA Jetson Nano in the coming days and am wondering if you have tried a similar board (maybe the Raspberry Pi 4) or have any tips?

Cool project.

Cheers

Loading rack modules

The build works fine, seems to be running smooth. However, none of the rack plugins are showing up to add in the Rack. Not sure if the directory isn't setting up right or I'm not running this correctly. The only modules that show up are the Core modules.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.