Please wait...

Yes or no?

Alert!

This is not the Dollchan player! That's this one. Credits to SthephanShi for making the basis site!

MissingNo, but it's true!

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 (-127 to 128). Floatbeat assumes output is -1.0 to 1.0.

This website is the fork of Bytebeat composer by StephanShi..
Forked by Chase T aka Chasyxx.

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

Custom functions 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: Using any of these functions makes your code exotic, entailing that it will not be added to the dollChan library.
They are just a novelty, and use them at your own risk. I would remove them (and the exotic modes) if it weren't for compatibility.

Favorites

– Codes you saved

All favorites are basically URLs stored as supercookies. These, some Google Analytics cookies added by GitHub Pages, and the settings supercookie are the only things persistently stored on your device to my knowledge.

    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

    All

    – all songs sorted by authors

    Settings

    14112000Hz would be ideal (the least common multiple of 32kHz, 44.1kHz, and 48kHz) but it's a shame it's so big.

    The song is block resampled from it's own samplerate to this samplerate. 48000 well covers your hearing.
    Changing this value from 48000 is likely to slow down or speed up some songs / some of their parts.
    If you want to go ultrasonic, I guess you can turn this up, but at that point you need specialized hardware.
    Turning this up can also provide better samplng (it made a piano sound more accurate, for instance), and it can quiet down some unintended frequencies when this samplerate isn't a multiple of the song samplerate.
    If you want to use the mic, set this to the result of the mic test (song actions) so that it works.

    Song actions