# Bytebeat Web App (WIP)

A small web application to make 🔥 noise and music

Bytebeat is a genre of music where the sound is created by *a formula that defines a waveform as a function of time*. The genre arose from the realization that even small simple programs could produce complex and interesting music. The app is mostly complete, but still requires some proper documentation to make it more accessible. I wanted the design to reflect the simplicity and "fundamental" nature of bytebeat, hence the extremely sparse and simple UI. I tried to reflect this throughout all aspects, from interface to implementation.

Try it here.

Here is a brief overview:

____ __ __ __ / __ )__ __/ /____ / /_ ___ ____ _/ /_ / __ / / / / __/ _ \/ __ \/ _ \/ __ `/ __/ / /_/ / /_/ / /_/ __/ /_/ / __/ /_/ / /_ /_____/\__, /\__/\___/_.___/\___/\__,_/\__/ /____/ ~ WEB APP ~ ╭──────────────────╮ │ PROGRAM OVERVIEW │ ╰──────────────────╯ - Programs are written in reverse polish notation - All values are integers, eg 7 / 2 will return 3 - The app is caSe iNsenSItive - Samplerate is 8,000 Hz and has a bitdepth of 8 bits, by default ╭───────────────────────╮ │ OPERATORS AND METHODS │ ╰───────────────────────╯ T Time T (0-2147483647) + Addition 1 2 + (3) - Subtraction 2 1 - (1) * Multiplication 2 2 * (4) / Division 7 2 / (3) % Modulo 7 2 % (1) & AND 1 0 & (0) | OR 1 0 | (1) ^ XOR 1 1 ^ (0) ~ NOT 1 ~ (0) >> Shift bits right 2 1 >> (1) << Shift bits left 1 1 << (2) ABS Absolute value 0 5 - ABS (5) MIN Smallest of two values 1 2 MIN (1) MAX Largest of two values 1 2 MAX (2) SIGN Return sign of value 999 SIGN (1) POW Exponentiation 2 3 POW (8) MULT Multiply a value by itself 8 MULT (64) SWAP Swap order in stack 1 2 SWAP (2 1) SIZE Current stack size 1 2 3 4 SIZE (4) GET Get item at stack position 1 2 3 4 3 GET (1) BREAK End execution here 1 BREAK 2 3 (1) MOUSEX Mouse x position MOUSEY Mouse y position GYRO Rotational speed T GYRO * GYROX In X axis GYROY In Y axis GYROZ In Z axis ACCEL Speed T ACCEL * ACCELX In X axis ACCELY In Y axis ACCELZ In Z axis VOL Set volume 50 VOL Value between 0-100 HZ Set sample rate 8000 HZ Range 8,000-96,000 Hz BIT Set bit depth 8 BIT Accepts between 1-16 bits

If you are interested in learning more about bytebeat, I recommend checking out these resources: