Week of the 09/15/2025 - #38
Contents
tech
- Shadertoy resources
- Commodore PET text demo
- Magazine archive
- Nanogems
- The origins of DEL (0x7F) and its Legacy in Amiga ASCII art
- P01 a.k.a. Mathieu ‘p01’ Henri
- EP-133 export to DAW
art
- Urban Sketching
Shadertoy resources
I’ve been looking a little more into Shadertoy and found some useful resources.
- Shadertoy Unofficial - This blog has lots of cool resources. Most of the following interesting bits I found there.
- Distance field outline mask - This example shows how to draw a bezier curve and other simple 2D paths.
- Programming tricks in Shadertoy / GLSL - Tips like: Drawing thick lines, Antialiasing, Drawing lines, Blending / compositing , etc
- Commodore 64 simulator - A simulation of a C64
- iResolution, iMouse, iDate, etc - iResolution, iMouse, iDate, etc in GLSL. Drawing text.
- The Book of Shaders - Some nice tricks and resources here.
Commodore PET text demo
This is an awesome Commodore PET text demo called “Back to the Pet” from 2023.
- YouTube Video - A good quality video of the demo running
- Demozoo entry - Here you can download the executable code.
- Meteorics - This demo was nominated for the “Best Oldschool Procution” category.
Magazine archive
- Zoomable Byte Magazine Archive - This is an awesome and very fast archive of all issues of Byte magazine. From the site: “This zoomable map shows every page of every issue of BYTE starting from the front cover of the first issue (top left) to the last page of the final edition (bottom right). The search bar runs RE2 regex over the full text of all 100k pages. The archive itself is not new, scans of BYTE have long existed on the Internet Archive and elsewhere on the net – but I hope seeing everything in single, searchable place offers a unique perspective.”
- VintageApple.org - Another archive with scanned issues of Byte, PC World Magazine, Macworld, Macuser, and many other Apple related books and manuals.
Urban Sketching
Another thing that I really enjoy is to do Urban Sketching. I follow many great artists in Instagram. Here are some sketches that I love.
In these two I love the way the artist (Matt Gibbons) give less detail to the background buildings which really makes the other buildings pop out.
This is from an Argentinian sketcher (William Trejo). Love how the people in front of the scene make the sketch come alive.
Love her pencil work. Mariia Ovsianikova
Nanogems
As you know by know I am a fan of sizecoding. There is a site called Nanogems where you can find some cool examples of sizecoding. Some have source code so here are some of the ones I liked:
- Kacifántos creatures in a chaotic dream by TomCat / Abaddon - Pouet entry There are two versions with the assembler code.
- Seeing The Light At The End Of The Tunnel - Pouet entry. Has source code. YouTube This entry is really remarkable. Need to understand the source code.
- Remnants - This is a pretty remarkable entry. Pouet entry It has source code and is based off this shadertoy entry
-
Shiftride - 128b MSDOS.
-
Downtown - Procedural generated graphics for ZX spectrum. Shader source code
- Drinking Fountain - 256b MSDOS procedural graphics. No source code but has Shader source code
- The Dick Laurent is Dead - 256b for ZX spectrum procedural graphics. Really cool but without source. Made by jokerteam.pl. Many cool procedural images there.
The origins of DEL (0x7F) and its Legacy in Amiga ASCII art
This is a very interesting and exhaustive article on the history of the DEL character in Amiga ASCII art. Here is the link
P01 a.k.a. Mathieu ‘p01’ Henri
Creative coder, Technical Speaker, Demoscener, JavaScript freak and size optimizer extraordinaire acting on the web platform and in Assembler on PC and Atari ST.
- Github profile - His github profile. He shares lot’s of source code.
- Demozoo profile - His profile in Demozoo.
- Website - His personal website with breakdowns of demos
EP-133 export to DAW
I have a Teenageengineering EP-133 K.O.II sampler/sequencer and I love it. It’s very easy to use and create tunes with it. It has the ability to export the samples / patterns / songs you create to a zip+tar
format so you save your projects and re-import them later. It is a browser based app. I had a peek at the zip+tar combo
and it seemed that it wouldn’t be hard to reverse-engineer the format. It had a basic structure and then it is as simple as creating some tests samples / projects and looking how it got saved. I didn’t have any time to try to do it but fortunately someone has already moved in that direction! A user called “Yura V” (https://github.com/phones24) has created a project to connect to the EP-133, download the file and export it to Ableton Live 11+, DAWproject and MIDI files. I am interested in maybe using the tool to create music for demos and export it into a format that is suitable to be included in the demos. I’ll review the code to understand the file format.
- EP-133 K.O. II: Export To DAW - Here’s the repo.
- EP-133 file formats data - He is documenting the formats here.
- The code which seems to parse the formats is here:
src/lib/parsers.ts
- From that file here was he know until know:
Pads format:
[
0 0,
1 0, // INSTRUMENT NUM
2 0, // INSTRUMENT NUM
3 0,
4 0, // TRIM LEFT
5 0, // TRIM LEFT
6 0, // TRIM LEFT
7 0,
8 0, // TRIM RIGHT
9 0, // TRIM RIGHT
10 0, // TRIM RIGHT
11 0,
12 0, // TIME STRETCH BPM
13 0, // TIME STRETCH BPM
14 248, // TIME STRETCH BPM
15 66, // TIME STRETCH BPM
16 100, // VOLUME (0-200)
17 0, // PITCH (negative: 254-255, zero: 0, positive: 1-12, )
18 0, // PAN (left: 240-255, center: 0, right: 1-16)
19 0, // ATACK (0-255), when in KEY/LEG mode
20 255, // RELEASE (0-255), when in KEY/LEG mode
21 0, // TIME STRETCH: 0 - OFF, 1 - BPM, 2 - BARS
22 0, // CHOKE GROUP: 0 - true, 1 - false
23 0, // PLAY MODE: ONE - 0, KEY - 1, LEG - 2,
24 60, // PAD ID ?
25 0, // TIME STRETCH BARS: 0 - 1, 1 - 2, 3 - 4, 255 - 1/2, 254 - 1/4
26 0 // PITCH DECIMAL PART
]
Patterns format:
{
"0": 0,
"1": 2, // bars
"2": 8, // notes count
"3": 0,
"4": 0, // position LB
"5": 0, // position HB
"6": 80, // N / 8 - pad number
"7": 60, // note
"8": 100, // velocity
"9": 43, // duration LB
"10": 0, // duration HB
"11": 0,
"12": 96,
"13": 0,
"14": 80,
"15": 60,
"16": 100,
"17": 44,
"18": 0,
"19": 245,
...
}
Here is a sample project
├── meta.json
├── projects
│ └── P06.tar
└── sounds
├── 006 lock kik.wav
├── 100 nt snare.wav
├── 104 snare mid.wav
├── 204 closed hat mid.wav
├── 209 hat closed 5x5.wav
├── 218 nt hh open.wav
├── 300 nt clap.wav
├── 333 cabase lm1.wav
├── 425 synth 4th hit.wav
├── 526 dr organ chord.wav
├── 539 exotic pluck.wav
├── 555 nt chordy.wav
├── 558 03d.wav
└── 651 sample.wav
The meta.json
looks like this:
{
"info": "teenage engineering - pak file",
"pak_version": 1,
"pak_type": "project",
"pak_release": "1.2.0",
"device_name": "EP-133 MIDI 1",
"device_sku": "TE032AS001",
"device_version": "2.0.0",
"generated_at": "2025-04-09T21:17:15.485Z",
"author": "computer"
}
And the P06.tar
has the following structure:
.
├── fx_settings
├── pads
│ ├── a
│ │ ├── p01
│ │ ├── p02
│ │ ├── ...
│ │ └── p12
│ ├── b
│ │ ├── p01
│ │ ├── p02
│ │ ├── ...
│ ├── c
│ │ ├── p01
│ │ ├── p02
│ │ ├── ...
│ └── d
│ ├── p01
│ ├── p02
│ ├── ...
├── patterns
│ ├── a01
│ ├── a02
│ ├── a03
│ ├── a04
│ ├── a05
│ ├── a06
│ ├── a07
│ ├── b02
│ ├── b03
│ ├── b04
│ ├── c01
│ ├── c02
│ ├── c03
│ ├── c04
│ ├── d01
│ ├── d02
│ ├── d03
│ └── d04
├── scenes
└── settings
7 directories, 70 files