____      _ _______   _____        _____  _____
            ____/   l____ ________  \_/    l____ __/_  _/  |  _/
            \_ _      _  Y   |   !   _ _    _   Y   |  |   |  |
             | l_____/   |   |   _  _j l____j   |   |  l___j  l______
           __j_____  ]   |   |   |   | |    |   |   |  |   _  ______
            __    |  |   |   |   |   | |    |   |   |  |   |  |   |
             |    !  |   !   |   !   | !    |   !   |  |   |  !   |
             |    ___j   ____j   ____j__    |   ____j___   |___   |
             l____jOol___jPrsl___joOoOol____j___joOoOoOl___joOl___j



                               raltron by fnuque
                                   evoke 2026



Original URL: https://fnuque.dk/raltron/

In celebration of "ral"'s 30-year anniversary.

ral was the first release by then new group subcult (later fnuque) in 1996.

(https://www.pouet.net/prod.php?which=90627)



CREDITS
-----------------------

Main code, visuals, synth
  revival

Music
  slide
  cs-jay

Gfx (logo)
  fairart

Jingler Synth Engine
  Blueberry

ASCII, Support
  presence

Support
  Kestralys



TOOLS
--------------
  jingler
  mashi
  Zynapse
  shader-minifier

raltron owes a lot to especially two tools:
- mashi by sagacity (https://github.com/datatrash/mashi)
- jingler by Blueberry (https://github.com/askeksa/Jingler)

mashi is a new compression tool for 64k javascript/web intros. It compresses
well and is super straightforward to use. I am grateful to sagacity for this
tool. His pouet post (https://www.pouet.net/topic.php?which=12973&page=1)
made me realize that javascript/web was a viable and straightforward platform
for PC 64kb. His post got me thinking about the benefits of web - I had
already abandoned win32 C++ because it compresses to big, and I was using a
custom scheme interpreter at that time. I was thinking that javascript and
scheme were not that far apart, and just going straight to js could save the
interpreter. And then there is the benefit of platform independence of course.
Trivial for people to run natively, which has been a bigger and bigger
problem for PC intros. And then it also supported wasm of course...

jingler is a synth engine. Originally intended for 4kb intros, it takes all
of the infrastructure writing out of synths, gives you a tiny runtime with a
new language (Zing) that you can just write your synths in. I was attracted
to jingler because I really felt it had a future, where my C++/Zig attempts
where not really pointing anywhere. Too big, too much infrastructure.
Blueberry went to great pains to support raltrons needs over the last year.
Thank you Aske. There are still some constraints in the custom language, but
overall jingler has been an extremely pleasent experience. I am very happy
to have a functional 64kb targeted synth again. And the wasm output just
jives so well with mashi.



OTHER PEOPLES CODE WE USED OR WERE INSPIRED BY
------------------------------------------------------

- Modem sound by reinder
The modem sound is a port of this amazing ditty
https://dittytoy.net/ditty/91185791e3
Which is again based on this original research by Oona Räisänen
https://www.windytan.com/2012/11/the-sound-of-dialup-pictured.html

- Power law panning by Rob Belcham
https://music.columbia.edu/pipermail/music-dsp/2002-September/050872.html

- Audio EQ Cookbook
https://www.w3.org/TR/audio-eq-cookbook/

- Hash without Sine shadertoy by Dave Hoskins
https://www.shadertoy.com/view/4djSRW

- MattiasCRT shadertoy by Mattias
https://www.shadertoy.com/view/Ms23DR

- Stateless Fight shadertoy by IQ
https://www.shadertoy.com/view/tslGz7

- Distance function reference by IQ
https://iquilezles.org/articles/distfunctions/

- Smoothen your functions blog post by c0de517e
https://c0de517e.blogspot.com/2014/04/smoothen-your-functions.html

- Noise - Basic - 1D shadertoy by IQ
https://www.shadertoy.com/view/3sd3Rs

- Noise - gradient - 3D shadertoy by IQ
https://www.shadertoy.com/view/Xsl3Dl

- Intersectors articles by IQ
https://iquilezles.org/articles/intersectors/

- GLSL rotation about an arbitrary axis by Neil Mendoza
https://www.neilmendoza.com/glsl-rotation-about-an-arbitrary-axis/


Thank you!