xwax author here, nice to see it submitted to HN front page. Must be 20+ years now since I wrote the original code for DJ'ing live. Very happy to answer questions
In terms of beat mixing/matching, how does xwax compare to mixxx? They seem to be about the same age, but xwax seems a lot more lightweight/barebones compared to mixxx, is xwax perhaps not meant for end-users?
xwax /is/ meant for end-users, but right at the beginning it only had actual live professional use in mind. I was literally DJ'ing in clubs at the time and I wanted the digital equivalent of playing vinyl records.
I was collaborating with a friend on the early versions, to see if it could be commercialised to provide a "house" system for radio studios and clubs (much like the house provides CDJs or turntables). Today that's superseded by DJs bringing their own laptops, of course.
I don't know much about Mixxx these days; that project was always much better set up to grow through a range of contributors (eg. with its scripting engine). But I think it's technical architecture is probably quite different.
Whereas, xwax was designed from day 1 with the idea it was a realtime system with very tight latencies, taking input from one audio interface and responding to it on another. That was fun on Linux (and FreeBSD!) systems of the early 2000s.
From what I’ve read on Wikipedia, mixxx apparently uses the xwax source code. As does PiDeck. It would be really interesting to know what else uses it.
Amazing work. Thanks for sharing xwax with the world!
Are you aware of Rasteri’s SC1000? It uses a magnetic rotary sensor with a modified version of xwax instead of time-coded vinyl. I wonder if xwax has support for other DIY jog wheel controllers? I didn’t see anything in the docs.
GitHub - rasteri/SC1000: An open-source digital portable turntablist instrument
https://github.com/rasteri/SC1000/
«
the scratch wheel is handled by an Austria Microsystems AS5601 magnetic rotary sensor
»
I owe you a huge thanks! As a music + open source nerd, XWax was magic for my teenage turntablist brain. That era with Ms. Pinkys (https://mspinky.com/vinyl/) was just such a special time. <3
I used Final Scratch about 20 years ago. These days I use Recordbox DVS as all my kit is Pioneer.
The infinite music catalogue in digital format with the analogue feel of mixing vinyl is the perfect match for me. It’s been fun introducing friends to DJing by loading up anything they want into Rekordbox and seeing the delight on their faces after a first successful blend of their favourite music.
Using modern LDPC (or whatever error correction is most appropriate), and assuming a midrange stylus (budget ~ $99), and 100 year retention, I wonder how much data can you jam onto a 10", 2-sided record.
The records used by xwax have about 100 kilobytes of data on each side of a 12" record. However, the goals are very different here; it's designed to decode the position under specific conditions such as being moved very fast, in reverse and changing direction rapidly. There would be a more efficient encoding if your goal was to fit as much data as possible and relax the other requirements.
Yeah; I'm imagining the record sits in a basement for 100 years, and has mildew + scratches. Each error correction block has to be (I'd guess) at least 10x wider than a scratch, assuming the codes can correct 1 bit out of 10.
CDs use Reed Solomon, configured for a 1:10000 bit error rate, but NAND storage uses LDPC, which is much more robust.
Anyway, reading such a block would likely take the record player 10's-100's of milliseconds, and xwax seems to target 1ms.
I was a little confused when reading "Getting Started" page as it is not immediately obvious that you need a vynil player and a timecoded disc to use it.
And I am surprised that there was an open-source software for this.
I wonder if there is software to do scratches using a mouse or a MIDI slider? It looks like Mixxx might allow that using scripting.
Xwax is amazing. But what was more amazing to me was that the magic external box with Final Scratch was actually just a sound card and the rest was all software. Dunno if I am over simplifying but it was amazing to see that the time coded record and the software like xwax was all that was actually needed.
Acquiring one of these "ScratchAmp" boxes that was missing its software is what started the whole project. These earlier systems deserve a lot of credit. If I'd had access to the software I don't imagine I would have dug so deeply into the concept.
Leaving this here in hopes someone has an idea or wants to initiate a project.
I would love to be able to do DVS without a computer. I basically just want some piece of hardware with buttons (something like a groove box or https://1010music.com/product/blackbox) and I want to connect it it with usb-c to a one of those DVS mixers or a Reloop Flux.
I don't need anything fancy really. I basically just want to use my technics and this as a replacement / alternative for CDJs.
Been looking for something like this for years. The closest I know of is an iOS app that does DVS named djaypro
How do you propose that you'd select and load tracks? Or view time remaining. Even if you don't care about a waveform display, some sort of computer (ie. display) seems to become necessary at some point. Perhaps you could check the PiDeck project, which puts xwax into smaller hardware.
A friend of mine was doing Technics repair and customization and about 6 years back we started building a prototype of embedding a Pi with a 3.5" LCD in the body of a 1200. I build a custom Qt GUI for xwax that was controlled by a single rotary encoder with a push button. We could throw out a lot of the UI since it was only ever playing one track at a time. He eventually got called up to be Alle Farben's touring sound guy and we never picked it back up once he was back.
I first started using xwax in 2011. Been on and off until last year when my PC setup changed. Currently blocked from using it because the armbian won't recognize the Audio4DJ soundcard. I definitely need to put time into fixing that.
xwax is an open-source Digital Vinyl System (DVS) for Linux. It allows DJs and turntablists to playback digital audio files (MP3, Ogg Vorbis, FLAC, AAC and more), controlled using a normal pair of turntables via timecoded vinyls.
note to whomever downvoted this comment: quite often people are too lazy to actually click the link and read the target site for themselves, (and instead complain here in the comments...) so I quite often copy a summary sentence to this discussion section to give better context.