---
1

			

Info

– about bytebeat

Bytebeat music was invented in September 2011.

Classic simple bytebeats are generally a piece of rhythmic and somewhat melodic music with no score, no instruments, and no real oscillators. It's simply an expression that defines a waveform as a function of time, processed (usually) 8000 times per second, resulting in an audible waveform with a 256-step resolution from silence (0) to full amplitude (256). If you put that expression into a program with a loop that increments time variable (t), you can generate the headerless unsigned 8 bit mono 8kHz audio stream on output, like in this application. Since these directly output a waveform, they have great performance in compiled languages and can often be ran on even the weakest embedded devices.

Initially, expressions were typically written in C or were C-compatible, written in JavaScript. But bytebeat music has evolved over the years, and modern songs with complex JavaScript code are now popular. You'll find examples in the library on this site.

History of bytebeat

Original blog posts and videos from Viznut:

This website is a live editing bytebeats player, it has a collection of bytebeat music. Online JavaScript players:

  • by Bemmu and Rarefluid — this is one of the first players.
  • by Paul Hayes — also is one of the first. Dollchan Player is a very deeply modified fork of it.
  • by Greggman — a source of inspiration for creating Dollchan Player, but in turn, Greggman took the songs library from here.
  • by SArpnt — a fork of Dollchan Player, but in turn Dollchan took many technologies and ideas from SArpnt.

Playback modes are:

  • Bytebeat — output is an unsigned 8bit integer from 0 to 255, values outside this are wrapped, and non-integers are floored.
  • Signed Bytebeat — output is a signed 8bit integer from -127 to 128, values outside this are wrapped, and non-integers are floored.
  • Floatbeat — output is -1.0 to 1.0. Allows higher quality audio since it is not limited to 255 values, unlike the previous ones.
  • Funcbeat — the code is run only once and is not an expression, it expects the function to return. The returned function is ran with time in seconds, output is -1.0 to 1.0.

This project is made by SthephanShi, and is a fork of 8-bit Generative Composer by Paul Hayes.

Classic

– C-compatible Bytebeat, one variable (t)

JS-256

– JS Bytebeat code under 256 bytes

JS-1k

– JS Bytebeat code under 1 KB

JS-big

– JS Bytebeat code larger than 1 KB

Floatbeat

– assumes output is -1 to 1

Floatbeat-big

– Floatbeat code larger than 1 KB

Funcbeat

– statement based mode

Recent

– recently added, sorted by authors

All

– all songs, sorted by authors

Settings