Linux / Ubuntu + Serato Vinyl Control System + Pure Data

1. März 2014

(English) How to use the external vinylcontrol in pure data to read out the values of a Serato Vinyl Control System unter Linux (Ubuntu).

Goal

Serato is one of the companies that offers turntables with a digital control system to read out values like the position of the stylus. The external vinylcontrol~ provides an interface for a Serato Vinyl Control System in pure data unter Linux (Ubuntu). This article will describe the compilation and installation of all components involved.

To compile it, use the following command:./build.sh pd gccThe first time you run this, a default system configuration file will be created (buildsys/config-lnx-pd-gcc.txt). The second time a default package configuration file will be created (config.txt).

If we leave the config files as they are, the following error may occur when you run the build script again:CPU you selected does not support x86-64 instruction setSolution: Uncomment the marked line in buildsys/config-lnx-pd-gcc.txt like this:# user defined optimization flags# (check if they match your system!)#OFLAGS=-O3# optimizations for Pentium 4#OFLAGS+=-march=pentium4Afterwards you need to clean and build again:./build.sh pd gcc clean./build.sh pd gcc

Last step: The global system installation of flext.sudo ./build.sh pd gcc install

Download and unpack the source files next to the flext installation and chance into this directory with your terminal. This would be the way to do it within the terminalwget "http://karhumusic.sesser.at/vinylcontrol/vinylcontrol.tar.gz"tar -xzf vinylcontrol.tar.gzcd vinylcontrol/

Building – this is the catch: use the flext build file to compile vinylcontrol~. Assuming flext is installed on the same folder hierarchy next to vinylcontrol:../flext/build.sh pd gccAgain, run it twice because at first the config file will be created.This step took me a while to figure out. I started editing the configuration files in the vinylcontrol folder and eventually got to the point where it compiled without errors. But I found no way to get rid of problems when starting the example file of the external. The „vinylcontrol~serano 2a 10“ box was dashed and this error message occured:undefined symbol: _ZN19flext_root_shared_dnwEmThis conversation pointed me into the right direction. Using the build file of flext seems to be a solution for other externals relying on flext as well.

sudo ../flext/build.sh pd gcc install

Test it by opening the example .pd file from the vinylcontrol~ library folder:pd vinylcontrol.pd