PiDVS — a Raspberry Pi based DVS alternative

Are the days of laptops and DVS numbered? Of course not, but PiDVS offers the potential for just that with a Raspberry Pi based turntable solution.

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.

PiDVS Raspberry Pi DVS turntable DJ (2)
A collection of Raspberry bits and bobs that turns a turntable into standalone DVS with a touchscreen. That’s the PiDVS that is.

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.

Mark Settle
Mark Settle

The old Editor of DJWORX - you can now find Mark at WORXLAB

Articles: 1228

94 Comments

  1. 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.

    • 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

  2. 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.

  3. 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.

    • 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

        • 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.

  4. 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

  5. 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).

  6. 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.

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

          • 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.

  8. 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.

      • 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…

          • 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.

  9. 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.

  10. 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..

Leave a Reply