Yes, a shame. I honestly expected this could get picked up as a mainstream news story over Christmas (except I think the actual story is older than this video);
Young people with talent and ingenuity, using modern skills and tools to acquire and maintain something with a history behind it.
I've bookmarked it for next time some old guy complains that young people aren't smart or motivated etc. etc.!
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.
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.
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.
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.
Fair, I was thinking that because its not actually an X11 GUI (though it is X11 of course)
Its fun to query or set information on a remote. The same applies to xdpyinfo, xset, xrandr and many more support the -display option (if they don't then set the DISPLAY environment variable).