In a previous entry, I showed you the making of the sausage that is a TouchOSC remote control framework: iPhone sends to server, server changes values, everyone’s happy. It was mostly about configuring both OSX and linux to work with pyliblo and all that jazz, but this time around, it’s positioned to be something useful. The arc of this story will come together, I promise, but I need to set this down before moving on to the next phase.
In the PureData post, the idea was to control PureData parameters remotely, which would be fine if I had the patience to learn enough PureData to make something with useful and controllable parameters, but then I got another idea, this time involving Xwax, an open-source digital vinyl system, similar to Serato DJ DVS, Traktor Scratch, or Rekordbox DVS.
Long story short, physical vinyl records contain analog timecode instead of music, and clever software interprets the timecode to be the current playback position of a digital music file. There are a bazillion examples of this out there, and the tech is not new, it’s been commercially available since the early 2000s, so I won’t describe it in much more detail, other than it used to be a mess of proprietary hardware, software, and control vinyl, and the advent of class-compliant USB sound cards has changed that landscape, mostly for the better.
I have an old Serato Scratch Live sound card, the Rane SL1, and control vinyls, but their usefulness rots away with each update of OSX. I didn’t feel like shelling out $300 for a new 4×4 class-compliant sound card, but I still like to spin records.
That leaves Xwax. Xwax is freely available on Sourceforge, with a mirror on Github. There’s also PiDeck, which is a dedicated Linux distro for the Pi, containing a fork of Xwax optimized to work with the Raspberry Pi Touch Screen.
At this juncture, I just wanted to get PiDeck working so I could cease using my 2011 MacBook Pro as the brain of a digital vinyl system. I bought the Raspberry Pi touch screen and stuck it to my Pi 4. PiDeck worked just fine, with one glaring exception: the linux USB device drivers for the Pi 4’s Raspbian OS are buggy: they don’t let you access the second set of inputs and outputs on the Rane SL1, so you need two USB sound cards if you want two decks on the same Pi.
At this point, my options narrowed: I could buy two of the Behringer UCA202 cards with integrated phono input, or two UCA222’s with cheap Pyle 444 preamps, and either option was still about a quarter of that of a purpose-built DVS interface. But both were about double the cost of a Raspberry Pi 3 B+ on closeout at Target, so I got the Pi 3 and a 32GB microSD card instead. This gave me verified hardware to use for the project, and allowed me full use of my existing DVS interface.
For now, this is good enough. I can spin my digital music using my old hardware with a dedicated device. But this isn’t as far as it’s possible to go.
This idea, taken to its extreme, looks like this. You’ll need to understand Russian (Belarussian?) to get the most out of it, but it’s the most polished integration of vinyl and digital music that’s surfaced so far.