Turntables have been able to play digital music for a very long time. DVS has been a thing for well over a decade, and assorted turntables like Gemini’s CDT-05 and Numark’s short-lived X2 hybrid let you play digital files in a more familiar workflow. But these options depended on using a laptop or buying a dedicated unit. So when Sam Spreadborough sent me details of his final year university project called PiDVS (a name that tells you what it is), my attention was grabbed.

What is PiDVS?
It’s exactly as it sounds — essentially a Raspberry Pi based solution that brings fully standalone DVS use to turntables or CDJs. It’s based on a Pi 3 model B running Raspberry Jessie on a 1.2Ghz ARMv8 with just 1Gb RAM, with an official Raspberry 7″ touchscreen. The audio is handled by an Audio Injector sound card, and as an added benefit, there’s a Teensy processor to handle MIDI. And all of this is run via Sam’s own custom software using JUCE, XWAX timecode decoding, plus other open source solutions to fill in the gaps.
For more technical details about the hardware and software, I urge you to check out the manual right here.
Before you lose your minds, I must point you to the last line of the manual:
“There are currently no plans to release this commercially.”
Wait… what? If ever there was a commercially viable product, it’s this. The scope is here for a manufacturer to buy this idea and incorporate it right into a turntable. And can you imagine this hanging off the back of a portablist turntable? The proof of concept is done — it clearly works and is just gagging to be turned into a commercially viable product. Off the shelf component price is around £150 plus Sam’s software, making this an easily doable home-brew project too. I should insert the obligatory Peter Griffin “why are we not funding this?” image right about now.
SUMMING UP
PiDVS is a fully standalone DVS solution for a turntable with networking and MIDI, but you’ll still need one per deck), that also has the planned potential to let you share music from a single USB device. It’s an amazing feat for a university project, and we’re really keen to see where this ends up — hopefully in the hands of everyone.
We wish Sam every success with PiDVS and with his degree. I’m torn about wanting him to get a job in the industry or going it alone. Talent has a tendency to be buried inside big companies and sparks of brilliance like this often end up forgotten, in a box, on a shelf, in a warehouse. Hopefully someone will see the commercial potential of PiDVS and help Sam take it further.
Bloody good work Sam. Colour us deeply impressed.




Thing is, real vinyl effectively gives you an indication of what’s going on in the music, without which, it would be a massive hassle. I agree that scrolling waveforms are a luxury rather than necessity for this, and a low res screen with the track waveform with progress indicator, the name of the file, and some playlists access, would be all you need.
Yeah – just let a turntable be a turntable, running in absolute mode to allow for needle dropping, with the bare minimum of info on screen.
It makes sense for Sam to reach further than necessary. For every “I don’t need all that stuff” comment, there will be an equal number of “no loops or cues? EPIC FAIL” comments.
Sure, I see that. My point was that I would use this as an addition to vinyl, not as a substitue. I might have used this for maybe 5–10 songs in a 4-5 hour set. Thus, the size of the device is the key. But the features described by Dan Morse would off course be nice.
The project has a “through” mode, so you can use regular vinyl as well as digital files. I see this being useful in the way you describe; playing a hybrid set of “real” vinyl and digital music
Idea is brilliant and that guy deserve all the best.
Just a note on practical side; it is a jungle of cable: One power cord each unit + Lan cable to communication between deck + Normal Rca cable that pass in/out turntables-mixer. Moreover require many year until the software will be really “mature” (in other words: accepted to community). The only solution inside the market I can see is DJ PLAYER, that probably is much cheaper and more stable and clean.
I also think that if is not embedded solution in controller/gears (like Pioneer or Denon) the idea to have standalone DVS can be only (for the moment and the market) on iPad maybe. Just my 2 cents.
I totally agree! It is a mess of cables. The only way I can see this project working is by embedding it inside of a turntable (a la Pioneer CDJ 2000). However, consider the number of clubs that cannot/will not upgrade their old CDJs (post USB era), and think that a standalone product would integrate nicely as a cheaper alternative to upgrading to full USB CDJs. With the project being DVS, it will naturally work with anything that outputs timecode
I wish somebody would work on the cable issues. This is one of the reasons why we like the play differently approach with the model one. Those DB25 connectors do so much in one cable. http://www.pssl.com/Hosa-DTR805-Snake-Cable-DB25-To-8-x-RCA-165Ft
Making it work on 1 screen that is integrated into a pioneer-sp1 like midi device would the way that I’d like to see it.
Numark Serato will came with something like this soon or later
https://www.numark.com/product/dashboard https://uploads.disquscdn.com/images/600aee4d459dd2b191ee1e1885803b94f9d126bb2879a5f559813d0b56d08f44.jpg
Check this…
http://djtechtools.com/2014/04/08/forget-the-laptop-numarkakai-tease-software-embedded-dj-controllers/
THIS PLACE LOOKS SO MUCH BETTER
Great proof of concept! Keeping in mind that if someone does decide to make this a commercial product they will have to pay royalties to N2IT who holds the DVS patent. I believe this is one of the reasons the Serato DJ DVS plugin is so expensive compared to all the other plugins. As a DIY job, having to pay royalties is circumvented as it is made from off the shelf parts with open-source code.
that’s a bit untrue.
http://who-invented-digital-vinyl.co.uk/
I see, I must of gotten my wires crossed so to speak. I can remember that NI had to pay royalties for FS and thought that Serato was the same. There was also the M-Audio Torq lawsuit form years back too however as far as I know M-Audio won that one.
Trond, what you need already exists and is called pideck.
https://djworx.com/pideck-dvs-touch-screen-for-your-turntable/
That’s with raspi. There’s also the dj player pro, utilizing your ipad/phone.
It’s so nice to look back at old stories and see how much better they look in the new site.
Khhh, true, true…Liking the upgrade.
Do you know if these are related projects?
They’re related in that PiDeck is an adapted version of XWAX and the PiDVS uses XWAX code to perform the timecode decoding. Other than that, they are seperate projects
Hi Sam,
Why not to collab with them?
That’s an interesting idea! Once my dissertation is handed in I’ll look at that
it will be amazing. Also the fpcga guy I’ve posted at fb has am interesting approach for the screen ;)
I asked my question before I read your answer – Lol!! What is the difference between the Pideck & PiDVS?
My project offers advantages over the PiDeck project in that it supports full touch interaction, has cues and loops, through the use of a network cable is able to share beatgrid information and display that as a beatcounter for beatmatching… it supports album artwork and key analysis and can switch between vinyl types on the fly.
The PiDeck system is really good in that it launches straight from booting the Raspberry Pi and is more stable. As it’s a dissertation project, it’s naturally still very alpha stage in development.
so you just use timecode.c?
I wrote a C++ wrapper class for the timecoder files, yeah!
If you’re interested to know, I used:
– debug.h
– lut.c
– lut.h
– timecoder.c
– timecoder.h
Isn’t this exactly the same thing as the Pideck, just a (slightly) different name?
It’s a similar concept; PiDeck runs an adapted version of XWAX and my project is custom built code.
i’m totally impressed by your gui, beatgrids and browser. all areas that xwax is lacking in.
Thank you! I went through a few different designs and changes based on user test feedback. The bulk of the code was written using the JUCE framework, including the GUI. JUCE has a great UI builder built in to the “Projucer” (https://www.juce.com/releases/projucer-juce-4)
Afais pideck is just basic play (absolute mode?), no sync, cue points, loops etc, while piDVS is offering that kind of stuff in addition.
Hi, PiDeck supports absolute and relative mode and one cue point, but the sync and loops are for the DJ to provide :-) As for what piDVS is ‘offering’ that’s a moot point, since the software is not available to anyone yet. Please see https://github.com/pideck/pideck-distro/releases to download PiDeck.
We should at least club together & buy him a new screen. The one on the right decks looks like it’s had a serious kicking!
:-)
It fell off my desk whilst writing my dissertation. Fail
The fundamental things apply, as time codes Pi….
Ahem, sorry.
Does it have absolute mode or works only in relative mode?
I’ve coded for Relative mode, however due to dissertation time restraints I haven’t worked on getting Absolute mode working. Its on my list of things to add
what about the scroll track? the less i have to touch the screen the better.
When I was user testing, a few people said they disliked touch screens so I made a USB MIDI scroll wheel using an Arduino Teensy. The project is fully MIDI compatible, so any hardware that outputs MIDI could be used to control anything (after a little extra coding).
I could see the Novation Dicer being used to control cue points and loops, as well as track selection.
Sam, can this work two decks on one raspi/screen?
Another q: the soundcard used has no phono preamp (though you say it has phono ins, prolly mean phono connectors) so how the phono signal is handled? Normally it would require phono preamp.
Technically there is no reason why it couldn’t work with two decks on one screen, however that would involve re-writing the code to support that. Whilst developing the software, I imagined it working as an embedded system inside a turntable so that would mean one deck per screen.
The Audio Injector doesn’t have a phono preamp. XWAX has software preamp functionality, so I adapted that to my system. XWAX takes care of the digital amplification and filtering needed. The only downside is that at super slow speeds, the playback can sound distorted, however during normal playback works just fine. I tested the system on a Audio Technica ATLP120USB turntable that has line level output and the project works like a charm.
Another reason an embedded system would be the way to go.
I’m just wondering, would you be licensing this project under the GPL? Also, if you are using LAN instead of 802.x have you thought of using Odroid C2s, I’m pretty sure they’ll run Ubuntu.
I don’t currently have any plans to release the code, although I’m not against the idea.
The Odroid C2s are nice looking pieces of kit. I mostly went with a Raspberry Pi because I had one already.
Also, if you are thinking of embedding this into a deck were you thinking of adding MIDI controls to the deck? If so, would you be using GPIO, teensy or have you seen the Brain Jr.? Pretty sure it has Linux support.
If I did it, I’d built the turntable from scratch rather than adapt one.
I built a USB midi scroll wheel using a teensy, but I’d do it properly on a embedded system
Hi Sam, would love to do the same but for transforming a basic Deck MIDI controller like the Denon SC2000 to a standalone digital music player like the Pioneer XDJ-700/1000, btw allowing it to either play tracks directly (use case 1) or send DVS signal while still routing the MIDI messages (except the Jog wheel one) to a computer software like Rekordbox (use case 2). It means that I shouldn’t need the software phono preamp part or the MIDI scroll teensy adapter as I’ll already have a device capable of sending MIDI messages. The reason of the second use case (DVS+MIDI+computer) would be to use any MIDI controller with Rekordbox or Serato which do not support MIDI mapping of jog wheels and still have the option to play directly from the deck (use case one).
An interesting idea! If you’re adept with C++ I’d recommend checking out the JUCE framework. Its geared towards audio and MIDI software projects, and would have all the support for the functionality you’re describing https://www.juce.com/features
The PiDeck project has support for encoders and midi signals so it could be possible to adapt the code to make it work. A collab between projects could be amazing…
Sam, please take my money. I need this in my life.
Ha! Thanks. I’d like to make it a commercial product… will need some help to do it first
Well done Sam, I hope your dissertation comes out well. As you see there are quite some positive reactions. I hope it will be released either partially open source or commercially. The Audio Injector card needs to be bought separately, I’m looking after it. Oh and and awesome update is that this could also work with the coaxial outputs on the CDJ-800 (and up). Less wires. I havn’t found yet an coaxial input for the Raspberry Pi. If you find one please tell me.
Using this kind of thing with a sound card that has a SPDIF output to send to a digital mixer is a great idea… as long as you have a decent sounding digital mixer already. A Behringer U-Control UCA222 would kinda be a good fit, but its inputs don’t have a phono preamp and the digital output is Toslink fiber optic, not an RCA connector for a coaxial cable like DJ mixers use so another adapter would be needed. I think if this was to be a commercial success they’d have to find someone to manufacture a sound card specifically for it. It would need 2 RCA inputs with a phono preamp, 2 RCA analog line level outputs, and an RCA coaxial SPDIF output.
An excellent idea! The software will work without a phono preamp, but you smart to lose precision at ultra low pitches (e.g -98%). I have tested it on line level and it works great. The JUCE framework has support for all this so it would be a fairly straightforward thing to include.
You misunderstood me. The soundcard should have coaxial INPUT not output. So CDJ-800 (or else) coax OUT to soundcard COAX in. RCA stereo is a bit outdated if we have digital sound these days.
Haha yes, I did misunderstand you. A coaxial input to the Pi wouldn’t offer much advantage. As long as the software can accurately read the timecode signal the quality of the input does not matter, but the quality of the output does matter.
Yeah maybe the timecode signal would not benefit of digital quality. But small coaxial wires are better than 2 RCA. Digital output isn’t such a problem as the Justboom Zero HAT have digital out already, but not digital in. Also, if the digital INPUT has multiple channels for input we need only one wire for two decks.
If it doesn’t work with turntables (which requires analog stereo input), I don’t think it would appeal to many people. If you have CDJs already, why do you want this?
I think having phono and digital outputs is the way to go. Be is right; the quality of the input isn’t mission critical. XWAX actually has pretty good filtering and error detection built in to it, and I added my own error correction code in to polish things up a little. Needles can get dirty and dusty and that is going to be your biggest area for low input signal quality.
Because CDJ’s are also good for timecode. Timecode CD’s don’t cost a lot. Especially the lower end versions of the CDJ are affordable, they lack the memorystick input (which the Pi can do) but have big jogwheels buttons plus looping/repeat etc. which the turntables don’t have. Timecode on CDJ is/was quite big. It isn’t as good as HID mode on CDJ-900 and up but for scratching it has no needle wear etc.
All the cue loop functionality without proper midi command rear these buttons is unnusable due to “sticker drift” issue inherent in how DVS work. So adding a Raspi system like this on top of that without the proper button rewiring (which is far from plugnplay solution) will be a source for ranting more than a wish come reality. That’s the true reason behind midi cdjs (and HID for the platters).
Very interesting this. Never heard of it.
One of the latest improvements in SDJ try to fix the wow-flutter side of this related to turntables (another drawback with vinyl vs digital encoders that you can find in controllers)
https://www.digitaldjtips.com/2017/03/serato-dj-introduces-anti-drift-stabiliser-for-dvs/
Can we download the software to test it or use it?
Unfortunately not. It may be something that can happen in the future.
Sam, nice work on the project; a great little feature set. Best of luck with your degree!
Thanks, Mark!
This is neat. The UI looks well designed and I appreciate that Sam actually did user experience testing.
If your goal is for DJs to show up with just a single USB drive for their set, I think the most flexible way to do that would be to make Mixxx capable of exporting and importing its metadata and analysis information with music files (it can already export music files). Mixxx is free and cross platform, so it would be easy for DJs to prepare their analyses, cue points, and loops on their own computer at home and take a USB drive to a venue. Then you could play both decks from a single computer as several commentors here are asking for. That would cut down the hardware required to a single computer, screen, and sound card. If you find a supplier for the touch screen and sound card, put it together with a single board computer like a Raspberry Pi and wrap it into a nice case I think it could have commercial potential. Plus, you’d already have a community around it and get all the features from 15 years of Mixxx development including controller support, color coded waveforms, gain normalization, keylock, quantize, master sync, effects, library search queries, and more. If you’re interested in making this happen, please post on the Mixxx email list ( https://lists.sourceforge.net/lists/listinfo/mixxx-devel ) or forums ( http://mixxx.org/forums/ ).
Thanks for your message. The system actually does all metadata analysis when it first scans the USB so all a user needs to do is pop the music file in a folder on their USB. The only thing it doesn’t do, as you mention, is allow a user to pre-program loops and cues. A few people have mentioned doing a single unit, and they would work really well built in to a mixer I think (like the Thud Rumble mixer). I’ll add myself in to the email list now
I think it would work better as a stand alone device. Few people would want to buy a whole other mixer to use this, but if it just works with any mixer and turntables it would have more appeal.
Thank you! Thats a useful thought
I’ve actually found a few videos online of people who have managed to get Mixxx running on a Raspberry Pi. I think with a nice touch friendly skin on it that would be great
Yes, Mixxx can run on Raspberry Pis. There is an experimental OpenGL ES renderer for the waveforms that was made for that purpose. I haven’t tested how well it runs myself.
We may actually have a student working on making Mixxx more touch friendly as a Google Summer of Code project this year. It will take more than just a new skin; there will be some modification of the skin system needed too. The use case we were thinking of was DJing with just a touchscreen laptop rather than a small touch screen plus an external mixer. If we plan it well, it could be possible to use the same skin for both cases.
All we need is one monitor, one raspi, one 4in- 4out soundcard, boxed at 45 degrees. Add a thru switch for regular vinyl. USB for dicers. Voila – The DVS BOX.
Someone has actually adapted PiDeck to do just that! You wanna find yourself a good 3D printed case and download that. Also I think i remember reading somewhere that PiDeck supports MIDI?
https://www.youtube.com/watch?v=uXUdDT7uld0
That’s pideck themselves there. It’s not boxed as I suggest. I imagine something that’d look like the Pipo mini computer.
You can do it with djplayer since iPad 1…
You can, but I’m talking about a boxed all in one device that would sit next to/above the mixer, plug tts in it, plug it to the mixer. And it’s way cheaper btw with option to plug your music sticks/hdds – can’t do that on ipad.
An old iPhone 4s it’s not so expensive if you put in balance features vs price including cheap soundcard for FOUR decks. It supports from dropbox to deezer so pendrive is not so overhelming but I agree it will be desirable. There are lots of thing you can’t do on this starting not being avairable to buy or try it…
….yet! (I’m working on it!
Cool but it’s still not avairable neither… fix that too (please) ;)
Yeah, but that’s used, I speak new and as a suggestion to the people that work this stuff – to box it. Only concern I have is the raspi cpu capacity when running 2 decks with all the non basic features (cues etc). If no glitches it can be a winner, for me even with the basics only.
The basic version of this (cues, etc) open to anyone to make their own is pideck. There is info in their gitub of people making it working with 2 tt. Also you can find mixxx on tablet vids if you search properly.
The point is piDVS is a great concept but only a concept for the moment since there is no clear future at this point (I know Sam wants to make something with it but until it happens it is what it is) so if you want a “DVS ina box” solution you have some real options at your fingertips now until Sam make a decision and piDVS materializes itself. As I’m not trying to dismiss nobody I offer my help to anyone interested on this topic since I expent over a decade trying to make this alive…
http://www.digitalvertigo.co.uk/forum/index.php?showtopic=39494
;)
I appreciate all the input, guys! I need to finish my degree first (only a month left!) and then I can fully concentrate on making this a product for everyone. It’s my intention to get this in the hands of everyone
Yes, I’m aware of pideck and 2 tts on 1 raspi, just no experience how stable it is and is it noticeably weaker than the two raspi configuration. Anyway, to have it boxed, a 4 in 4 out soundcard is needed that would be raspi mountable / specific, like the Audio injector, but afaik such card does not exist yet (?). Audio injector had Octo multichanel soundcard on Kickstarter but don’t know if that succeeded?
For the mixxx on android…Afaik the latency is a problem, as explained on Superpowered.
Yeah I know the issue with Android but I think these aren’t android based, no? I thought it was linux tablet without android since these seem working realtime but maybe I’m wrong idk. As a comparision dedicated linux distro is how work new mpc live/x and things like Pioneer Toraiz. In our field the stanton scs.4d also. It’s more than doable but less than profitable, almost in the brand’s eyes. I will research into raspi 4 io channel interface and link any finding to these dv forum topic. Let’s hope anytime in the future all of this becomes reality and keeps it cheaper than regular branded solutions.
I thought vinyl was killing dejaying?
And what about Hardkernel odroid c2? Would this run on these boards? Have couple of them so could test it.
If someone would make something pocket sized that I can throw to my bag along with vinyl records, for example 2-deck DVS device with touchscreen and basic MIDI (i.e Dicers), I would buy it instantly.
My degree finishes in a month, so after that I can fully concentrate on making this a commercial product. Ill be working with some product designers to work out some form-factor options, so watch this space.
Cheers! Keep up the good work!
Since this is a thesis project, You most likely don’t own the commercial rights, but Your University does…???
I definitely own it
been looking to create my own dvs since i got my numark portable turntable. very very interesting.. i will be very interested in giving a test to your code and checking it out..
Any updates on this? Love the UI.