Hacker News new | past | comments | ask | show | jobs | submit | zbuf's comments login

The best of the internet, engineering and humanity... all in one video.


And yet it disappeared off Hacker News almost immediately. I kind-of feel lucky to have stumbled upon it, what a gem of a video.


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.


I don't know of any these days, though in the past I received some great photos of packed large venues with xwax laptops on display.

Check the xwax built-in Jack module, likely to be the easiest way to bridge with other applications.


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.


Pre-dating xwax and Mixxx there was "TerminatorX", sounds like it might be what you're interested in.


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.


Serato DJ Pro and Traktor probably


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 »


It's something I have seen before! Seeing xwax reduced to very small hardware is interesting. Thanks for sharing here.


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


It was magical and very exciting seeing these things emerge!


Thank you for your contribution to open source music production/dj'ing!


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.


Interesting to see the implementation is basically a two-pass process: strlen() to count the source string, followed by a memcpy().

My intuition would be to give some importance to not looping on the source string radically beyond the length of the destination buffer.

https://sourceware.org/git/?p=glibc.git;a=blob;f=string/strl...


If you're thinking of an X11 GUI, I think perhaps you mean xfontsel?


No, I meant xlsfonts, as in the above man page I linked to.

It is a command line tool and can be used without a GUI. You can even query for the fonts on another X server's display (1). See this excerpt:

-display host:dpy This option specifies the X server to contact.

(1) - where the meaning of server and client is the reverse of that of traditional client server.


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


Not necessarily obscure, still rather useful. xterm & xv remain my daily tools, and xosview is still maintained here:

https://www.pogo.org.uk/~mark/xosview/


Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: