Hacker News new | past | comments | ask | show | jobs | submit login
Band releases album as kernel module (github.com/usrbinnc)
173 points by protomyth on April 23, 2014 | hide | past | favorite | 40 comments

I find the sound produced playing on gentoo a little warmer than other distros.

I'm afraid you're right. On Ubuntu I tried rolling my spin locks and ring buffers, but it just didn't produce the deep soundstage that I would expect from raw source.

Yeah, the analog hardware components that gcc runs it through really add warmth.

On ARM the tempo is considerably slower than on AMD64 and on SPARC it seems to play a lot more instruments at the same time.

Can't wait for the vinyl release of the kernel module.

I love that Greg Kroah-Hartman has made a couple of pull requests to this album:

"A number of coding style cleanups for the netcat kernel module": https://github.com/usrbinnc/netcat-cpi-kernel-module/pull/11

"netcat: allow multiple readers to work properly": https://github.com/usrbinnc/netcat-cpi-kernel-module/pull/13

He can now add "Assistant audio production engineer" to his already considerable CV.

Now I want to see people forking the project to do remixes.

Wut? That's the most pointlessly complex thing I've heard in quite a while. Awesome.

the album's track data in source files, that (for complexity's sake) came from .ogg files that were encoded from .wav files that were created from .mp3 files that were encoded from the mastered .wav files which were generated from ProTools final mix .wav files that were created from 24-track analog tape.

> from .ogg files [...] that were created from .mp3 files

Oh no. Mixing lossy compression algorithms is a very bad idea. Even at high bitrates, it tends to destroy certain kinds of sounds (eg, cymbals).

For audiophiles, they do offer their music in other formats. Such as high-bias cassette tapes.

I think that was deliberate.

That's part of the joke.

I showed this to a coworker and he said "I think he needs to implement some playback controls that can be twiddled with by echoing codes to a virtual file in /proc or /sys"

We've got a feature request open for that on github (the link above). I'm going to give it some thought when I have a chance outside work hours. Thanks for checking it out!

This isn't complex, it's just obfuscated.

I have never before seen a band brag about lossy-to-lossy transcodes...

You probably also haven't seen a band brag about releasing their album as a Linux kernel module, but here we are.

Their next album will be in Javascript.

You'll just have to configure a NetCatProvider, providing the class name and instantiation arguments as parameters, from which you can then create a NetCatFactory. This can be used to create singleton instances of the NetCatService class, from which you can use arbitrary proxies to bind transactions and get access to the audio stream.

What about Java? NetCatAbstractSingletonProxyFactoryBean

You might be conflating Angular with Javascript. I can't blame you given its coverage on HN.

Yes, I know.

It was a joke referencing that discussion.

If you want to listen to the tracks: http://netcat.bandcamp.com/

This music is very enjoyable. I'm working to it right now.

Album is not under a free license, so be wary of using proprietary kernel modules :)

Working on that today (between our real jobs)! https://github.com/usrbinnc/netcat-cpi-kernel-module/issues/...

In any case, if you use this in production machines for real, vaya con dios :)

For the lazy, I'm no fun:

  curl https://raw.githubusercontent.com/usrbinnc/netcat-cpi-kernel-module/master/tracks/trk3data.h | perl -ne 'print chr hex' | mplayer -

If you curl those tracks and like what you hear, you might want to check out our bandcamp page at http://netcat.bandcamp.com too

Making such overcomplicated nonsense while still having it sound good is a great achievement. My hat is well and truly off.

You really, really really should get a modular synthesizer involved for the next project. Fire packets directly into the CV inputs at ±12V and see what happens. Or run linux inside the instrument itself...

We actually shot a video on a modular video synth, to be released soon (gotta edit it).

I've thought about how cool a synth module would be that sends modulation voltage out based on wifi packets. It would be a nod to the Teenage Engineering OP-1 which has an FM radio for modulation.

It's possible to send out CV directly from software, you just need an audio interface with DC-coupled outputs (you can build a convertor trivially), and enough output gain.

Check out Silent Way for an example of an integrated solution.

I am disappointed that this doesn't use a tracker format[1] and software instruments. And fits into 4Kb. Maybe next album!

[1] https://en.wikipedia.org/wiki/Music_tracker

The album does use software instruments, but they are Native Instruments Kontakt/Absynth/etc.

I'd love to use a tracker, but I dunno how! But I do know how to play cello. So that's on there. Ok cool!

Odd, I pretty sure that wasn't the link I submitted.

Maybe a mod edited it? There was another submission of this link that never made it to the front page.

Don't know, IMHO jwz's article had a better title and was a better introduction than the actual project.

Clicky: http://www.jwz.org/blog/2014/04/band-releases-album-as-kerne...

But the text was just a direct quote.

Dammit, going senile, this was the one where only the title was better. The title github gives for things is not very descriptive.

Sorry, long - long day

(Thanks, wow every comment in every thread in the last two hours down voted - guess I'll sign off for a while)

Ok, I changed the title back to jwz's.

I've had a similar idea which I want to implement in the near future. Using a DSL, write some raw code which is coherent enough as lyrics. Run it on the cli and boom! Music!!

But the kernel thing sounds harder...

Very plan9'ish. Nice.

I love open source

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