---
1
...%

			

Info

− about bytebeat
Bytebeat music (or one-liner music) was invented in September 2011. They're generally a piece of rhythmic and somewhat melodic music with no score, no instruments, and no real oscillators. It's simply a single-line formula 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:
Blog posts #1
Blog posts #2
YouTube video #1
YouTube video #2
YouTube video #3

This website is a live editing bytebeats player. It has a collection of bytebeat music I found on the internet, and also the music I created.
You can choose between bytebeat, signed bytebeat and floatbeat formats.

Bytebeat: expects output is an unsigned 8bit value (0 to 255).
Signed bytebeat: assumes output is a signed 8bit value (-128 to 127).
Floatbeat: assumes output is -1.0 to 1.0.

This website is the fork of 8-bit Generative Composer by @paul_hayes.
Forked by SthephanShi aka Viraya.

Custom functions by Chasyxx include:
  • bitC: (X,Y,Z) => X&Y?Z:0
  • br: (T,SIZE) => Bit reverses SIZE bits of T, discards the other bits
  • sinf, cosf, tanf: (X) => sin, cos, tan but inputting t will output the same freqency as t by itself. AKA the function loops around every 256 "steps" instead of every 2pi steps
  • regG: (T,regEx) => takes a string of T's bits, and tests against regEx for a match. Outputs a boolean.
Note from Chasyxx (modified by BSquareII):
Using any of these functions makes your code exotic, meaning that it won't be added to the dollchan.net library.
They're just a novelty, so please use them at your own risk.

Classic

− C-compatible bytebeat code

JS-256

− JS bytebeat code under 256 bytes

JS-1k

− JS bytebeat code under 1 kilobytes

JS-big

− JS bytebeat code over more than 1 kilobytes

Floatbeat

− assumes output is -1.0 to 1.0

Floatbeat-big

− floatbeat code over more than 1 kilobytes

Funcbeat

− statement based

postfix

− bytebeat code, but it's created using RPN (Reverse Polish Notation)

Settings