Info — about bytebeat

Bytebeat music (or one-liner music) was invented in September 2011. Simple bytebeats are often 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 formula 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.

History of bytebeat

Original blog posts and videos from Viznut:
Online JavaScript players:

This webpage has a collection of bytebeat music found by SthephanShi, I may add my own compositions here too. Playback modes are:

  • Bytebeat — audio output is from 0 to 255, values outside this are wrapped, and non-integers are floored.
  • Signed Bytebeat — audio output is from -128 to 127, values outside this are wrapped, and non-integers are floored. This is an uncommon format, which comes from c allowing char to be signed or unsigned depending on the compiler.
  • Floatbeat — audio output is from -1.0 to 1.0, values outside this are clipped. This allows higher quality audio, and is common for other generative music.
  • Funcbeat — based on TinyRave, code is not an expression, and is only ran once. The returned function is ran with time in seconds, output is -1.0 to 1.0.

This website is made by SArpnt, and is a fork of bytebeat-composer by SthephanShi, which is a fork of 8-bit Generative Composer by Paul Hayes.

Library

Classic — C compatible code

Compact JS — compact JavaScript code

Big JS — big JavaScript code

Floatbeat — high quality output from -1.0 to 1.0

Funcbeat — statement based

SthephanShi — code SthephanShi created

SArpnt — code SArpnt created