usrbinnc/netcat-cpi-kernel-module logo

usrbinnc/netcat-cpi-kernel-module

Free

Kernel module edition of the Cycles Per Instruction (2014) album.

FreeFree tier
Outputs: audio
Type
Open Source

About usrbinnc/netcat-cpi-kernel-module

A kernel module edition of the Cycles Per Instruction album by netcat (Brandon Lucia, Andrew Olmstead, and David Balatero), released April 2014. This open-source project allows users to compile a Linux kernel module that creates a /dev/netcat device. When loaded, the device outputs the album's audio data, which can be piped into audio players like mplayer or SoX. The repository contains the album's track data as source files (converted from multiple formats, ultimately from 24-track analog tape). It is a deliberately over-engineered, novelty approach to distributing and playing a music album, targeted at developers and Linux enthusiasts who enjoy tinkering with kernel modules.

Key Features

Compile a kernel module that creates a /dev/netcat audio device
Album track data embedded in source files (converted from .ogg, .wav, .mp3, mastered .wav, analog tape)
Supports piping audio to players like mplayer, SoX, ogg123
Community-tested on multiple Linux distributions (Ubuntu, Arch, Fedora, Debian, Gentoo, Slackware, Linux Mint)
FreeBSD port available from community contributor
Includes instructions for HTTP streaming from /dev/netcat

Pros & Cons

Pros
  • Open source and free to use
  • Active community support with tested configurations on many Linux distros and FreeBSD
  • Unique, creative way to distribute an album
  • Educational value for kernel module development
  • Includes detailed build and listening instructions
Cons
  • Requires building a kernel module, which is complex for non-developers
  • Building consumes several gigabytes of memory and takes a long time
  • Officially only tested on Ubuntu; other distros may require workarounds
  • Not a practical way to listen to music for everyday users
  • Kernel module approach is fragile and system-specific

Best For

Listening to the Cycles Per Instruction album in a technically excessive mannerNovelty art project demonstrating kernel module programmingLearning how to create a character device driver that outputs audio dataCommunity hobby project for Linux enthusiasts

FAQ

What is netcat-cpi-kernel-module?
It is a kernel module edition of the 2014 album 'Cycles Per Instruction' by the band netcat (Brandon Lucia, Andrew Olmstead, David Balatero). The module creates a /dev/netcat device that outputs the album's audio, which can be played via audio players.
How do I build and listen to the album?
Clone the repository, install dependencies (build-essential, vorbis-tools, linux-headers), run 'make' to compile the kernel module, then load it with 'sudo insmod netcat.ko'. Finally, pipe /dev/netcat into an audio player like 'ogg123 - /dev/netcat'.
What Linux distributions are supported?
The project was tested on Ubuntu, but community users have reported successful builds on Arch, Fedora, Debian, Gentoo, Slackware, Linux Mint, and a FreeBSD port is also available.
Why does building take so long and use so much memory?
The source files contain large static arrays with track data, causing the compiler to use several gigabytes of memory and take a long time to compile.