// stringTracker port of "please someone remix this" by Decent-Manager to bytebeat

// stringTracker is eSlashMachine's custom "tracker" format, which pulls values from singular long arrays and strings, so outputs do not loop

// outputs are logged in console when compiled in JavaScript. Try it yourself: the source code is below the example which you hear when played.

// the outputs are huge and INSANELY laggy. sadly I'm not quite experienced enough to figure out a way to make the output code smaller and run faster, and it outputs vaguely formatted and I'm too lazy asf lol

C2 = 65.41,
Db2 = 69.30,
D2 = 73.42,
Eb2 = 77.78,
E2 = 82.41,
F2 = 87.31,
Gb2 = 92.50,
G2 = 98,
Ab2 = 103.83,
A2 = 110,
Bb2 = 116.54,
B2 = 123.47,
C3 = 130.81,
Db3 = 138.59,
D3 = 146.83,
Eb3 = 155.56,
E3 = 164.81,
F3 = 174.61,
Gb3 = 185,
G3 = 196,
Ab3 = 207.65,
A3 = 220,
Bb3 = 233.08,
B3 = 246.94,
C4 = 261.63,
Db4 = 277.18,
D4 = 293.66,
Eb4 = 311.13,
E4 = 329.63,
F4 = 349.23,
Gb4 = 369.99,
G4 = 392,
Ab4 = 415.30,
A4 = 440,
Bb4 = 466.16,
B4 = 493.88,
C5 = 523.25,
RR = 0,

// customizable parameters / sounds

CHAN3SOUND = (-((cbrt(t & 8191) * 4 & 3)) * (t / 4096 % 2 - 2.75) * 10) - 64,

CHAN4SOUND = ((t & 2 ? (random() - random()) : 0) * (t / 4096 % 2 - 2.75) * 20) + 32,

CHAN1 = (tan(sin((
t > 0 && t < 4096 ? (t / 192) * Ab3 :
t > 4096 && t < 8192 ? (t / 192) * C3 :
t > 8192 && t < 12288 ? (t / 192) * F2 :
t > 12288 && t < 16384 ? (t / 192) * F3 :
t > 16384 && t < 20480 ? (t / 192) * C3 :
t > 20480 && t < 24576 ? (t / 192) * F2 :
t > 24576 && t < 28672 ? (t / 192) * Ab3 :
t > 28672 && t < 32768 ? (t / 192) * C3 :
t > 32768 && t < 36864 ? (t / 192) * F2 :
t > 36864 && t < 40960 ? (t / 192) * F3 :
t > 40960 && t < 45056 ? (t / 192) * C3 :
t > 45056 && t < 49152 ? (t / 192) * F2 :
t > 49152 && t < 53248 ? (t / 192) * Ab3 :
t > 53248 && t < 57344 ? (t / 192) * C3 :
t > 57344 && t < 61440 ? (t / 192) * F3 :
t > 61440 && t < 65536 ? (t / 192) * F2 :
t > 65536 && t < 69632 ? (t / 192) * Bb3 :
t > 69632 && t < 73728 ? (t / 192) * C3 :
t > 73728 && t < 77824 ? (t / 192) * F2 :
t > 77824 && t < 81920 ? (t / 192) * F3 :
t > 81920 && t < 86016 ? (t / 192) * C3 :
t > 86016 && t < 90112 ? (t / 192) * Db2 :
t > 90112 && t < 94208 ? (t / 192) * Bb3 :
t > 94208 && t < 98304 ? (t / 192) * Db3 :
t > 98304 && t < 102400 ? (t / 192) * F2 :
t > 102400 && t < 106496 ? (t / 192) * G3 :
t > 106496 && t < 110592 ? (t / 192) * Eb3 :
t > 110592 && t < 114688 ? (t / 192) * Bb2 :
t > 114688 && t < 118784 ? (t / 192) * Bb3 :
1/32
48.75KB
t=0 thrown:
CHAN1: █

CHAN2: █

CHAN3: █

CHAN4: █

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 8-bit Generative Composer by @paul_hayes.
Forked by SthephanShi aka Viraya.

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