Skip to content
Chasyxx edited this page Apr 5, 2023 · 2 revisions

Welcome to the EnBeat_NEW wiki!

This is your area for what everything does, and how to use the website.
Please note: anything labeled exotic in this wiki and on the website are features usually not used in bytebeat.

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 run on even the weakest embedded devices.

-StephanShi. History of bytebeat

Original blog posts and videos from Viznut:

Blog posts: #1, #2.

YouTube videos: #1, #2, #3.

This website is a live editing bytebeat player. It has a collection of bytebeat music StephanShi and I found on the internet, and also the music I and StephanShi created.
You can choose between bytebeat, signed bytebeat, and floatbeat formats. Bytebeat expects that the output is an unsigned 8-bit value (0 to 255), Signed bytebeat assumes that the output is a signed 8-bit value (-127 to 128), and Floatbeat assumes the output is between -1 and 1. Exotic modes are also included:

  • Logmode: Takes the output, takes the log base 2, and multiplied by 32. The result is wrapped around between 0 and 256.
  • LogHack: Logmode, but negative numbers start at 255 and go below based on the absolute value of the output, instead of being null.
  • Bitbeat: Takes the first bit of any value of any result.
  • 2048: This mode uses an unsigned 11-bit value (0-2047.)
  • Signed 2048: Expects -1023 through 1024. Coming soon!

Controls

Editor

The editor takes in C or JS code with an initial variable t. t is how much time has passed in samples. The code is not written in the usual way; Write like you are writing in a return function(JS) or a putchar function(C). (e.g.

a=t&t>>8, //Must be a comma here! Can't be a semicolon. Do not write var or let here, it is not needed.
a&1 // What is being outputted based on the "a" variable set earlier.

)

Note that the above example likely does not work in C; The player also accepts JS code.

Menu 1

Menu 1 contains various song options.

  1. The mode. These are the options listed above (e.g. bytebeat.)
  2. The sample rate. This is how often a simple is processed to go to the speakers. This is usually 8000, and the higher it is the faster t increases.
  3. The divisor. This is an exotic feature and just downsamples the audio. Note: The data in this input is not stored in the URL as of yet.

Menu 2

Menu 2 contains various buttons that do various things to your code.

  • Format: This formats your codes based on the commas and semicolons you used in your code. It avoids commas and semicolons in arrays and strings.
    Also: The number input next to this button indicates how many layers of parentheses a comma/semicolon can be in before it isn't formatted.
  • Minibake code: Turns the code into a minibaked format; Basically an obfuscation
  • Deminibake code: Takes minibaked code and deobfuscates it
Clone this wiki locally