i could easily eat you


hello
[KARA](https://ghost.computer) BECOMES DEVIANTI spent some time this week reading about twitterโs bluesky project trying to understand why jack wants Twitter to be a client of a decentralized social media protocol.
At first I thought: Jack doesnโt want to be responsible for speech, he wants to surf. Heโs banking on Twitter remaining the primary interface for most people and hoping the network will take care of moderation and he wonโt be phoned by senators anymore saying โwhy havenโt u blocked alex jones yetโ
But after reading one of the articles bluesky links to,
I think Jack wants the new protocol to be based on the blockchain. He likes bitcoin. So does Square, Inc. (https://twitter.com/jack/status/1108487911802966017).
This would help with his moderation problem, and his monetization problem. Interfaces earn bitcoin for having users, users earn bitcoin for retweets, that drives up the price of bitcoin and jack gets rich while he surfs.
Maybe it would be something less rainforest-burny like FileCoin or whatever. Iโll bet Bitcoin is jackโs preference, but it doesnโt even matter if itโs a brand new currency. jack would instantly have a huge amount of it, and its value would skyrocket.
I hope I donโt think about it anymore this week.
Iโve been sick all week, and now Abe seems to have got whatever Iโve had. Itโs a really annoying fever-y thing.
Last night I had a dream where I was working on a garden with somebody from work. We were laying bricks and digging holes at the bottom of a residential hill. There were other people from work beside us working on different gardens. I looked up, there was an aeroplane flying overhead. It seemed to be hanging heavily to one side, and I saw steam or smoke escaping from areas other than the exhausts.
โis that okay?โ i asked
โyeah, i think thatโs normalโ said my colleage
โi really donโt think thatโs OK,โ i thought (and didnโt say)
Then the aeroplane swung dramatically to the right, up to the top of the hill. It was coming down at us very fast now, parts of it breaking off and nearly hitting folks who jumped out of the way at the last moment.
I looked over at my colleague, who was looking but didnโt seem to have registered that we were going to die. Then I looked back at the aeroplane and woke up.
no reason to read into it
Last year me and Abe started working on some art together.
Itโs called today.

Each page has a picture made by Abe with Word โ97 in a Windows 98 Virtual Machine, and a looping sound by me.

office '97 logo

old windows logo
I make the sounds with a Nintendo Game Boy, a handheld compact cassette recorder and a teenage engineering op-1.

a game boy with a cat face on the screen

teenage engineering op-1 cow fx. a black cow silhouette with flashing neon pipes
You can view the next sound/picture pair by clicking the picture, eventually youโll loop around.
The most recent one is on the homepage/.
Thereโs an RSS feed you can subscribe to, and you can append .json to any page (including the root!) to get a JSON representation of that page. Feel free to do whatever you want with that. The sounds and pictures are all creative commons share-alike.
Originally it was just a few HTML files, but when it started to take shape I wrote some scrappy JavaScript to generate the pages from a JSON file.
But that meant it was a manual process to put something live, or even preview a pairing.
So then I put together an app to manage the page. It takes uploaded media and puts it in Linode Object Storage (which is like S3 but without giving money to jeff).
There are three concepts. **sounds**, **pictures** and **days**.
The page for sounds shows a grid of every sound that isnโt part of a day.

screenshot of the sounds page, showing three un-dayed sounds.
you can click one to preview it, and you can drag a .flac file onto the window to upload a new one. Itโll get a random name like spooky ocean. (adjectiveish noun).
The pictures page is a grid of all the pictures, paired or not.

screenshot of the pictures page. two used and one unused picture.
This is where you add the alt text, and also where you can select the Make a day of it button.
The make a day of it page is where you can preview how a particular picture will work with each available sound.

the โmake a day of itโ page
When you find something that works, you can give it a name and it will be the new homepage the very next moment.
The days page shows a grid of every day thereโs ever been.

the homepage of today manager showing days
Itโs scary to have delete buttons lying around, so those are hidden behind DANGER MODE, which can only be activated by manually adding ?danger=danger to the URL.
After deleting anything, youโre redirected back to the non-danger page.
ok, thatโs all. thanks.

password entry screen. it's the bad ending from bubble bobble.
โญโญโญโญโญ
=^.^=
DISCLAIMER: Sorry, this post is about boring code shit i just donโt want to learnt to do again later. Itโs only a few things but it took me days to get a handle on.
Using cmake instead of the arduino ide is really nice, it works well in both text editors (emacs and vscode) and you get context-aware completion, hover docs, etc.
$ cd ~/projects
$ git clone <https://github.com/a9183756-gh/Arduino-CMake-Toolchain>
$ mkdir cool_project
$ cd cool_project
$ touch main.cc
$ $EDITOR CMakeLists.txt
CMakeLists.txt:cmake_minimum_required(VERSION 3.19.0)
project(cool_project CXX)
add_executable(cool_project main.cc)
# `AUTO_PUBLIC` will automatically find and link the right libraries
# from your installed arduino libraries, just like the arduino IDE!
target_link_arduino_libraries(bleepbloopmachine AUTO_PUBLIC)
# this will add an `upload` target that you can use to build &
# upload to the microcontroller
target_enable_arduino_upload(bleepbloopmachine)
$ mkdir build
$ cd build
$ cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/projects/Arduino-CMake-Toolchain/Arduino-toolchain.cmake -D CMAKE_EXPORT_COMPILE_COMMANDS=1 ..
This will generate a compile_commands.json file that your editor can use to give you completion hints and docs.
If youโre using Code:
install the cmake tools extension.
Run the command CMake: Edit User-Local CMake Kits
add this kit to the array:
{
"name": "Arduino toolchain",
"toolchainFile": "/home/chee/projects/Arduino-CMake-Toolchain/Arduino-toolchain.cmake"
}
(change the toolchainFile path to the correct path for wherever you cloned the cmake arduino toolchain to in the very first step)
Run the command CMake: Select A Kit and select Arduino toolchain from the drop-down
Now you can use CMake: Build (F7) and CMake: Build Target upload to build and upload things to the microcontroller!
upload target workingSet the environment variable SERIAL_PORT_FILE to ttyACM0 (or whatever the microcontrollerโs serial port is on your computer) in the workspaceโs cmake.buildEnvironment setting:

Iโm working on a clone of Oliver Wittchowโs nanoloop for the Adafruit PyGamer.
The prototype was written in CircuitPython, which is a lovely language, but it doesnโt (yet) have support for the kinds of audio things I want to do.
It was helpful to use it to lay out the shape of the state object, and the controls and the UI.
The audio was unuseable, so Iโve rewritten it in C++.
Itโs coming along very well.
There are 4 sound channels available for use, using the fab Teensy Audio Library:
The **e**nv**e**lop**e** menu item letโs you change the attack, decay, sustain volume, amplitude and panning of your note block with cute visual indicators of each property.
There is a filter and a delay feature, and each channel can play at full speed, half speed or quarter speed. You can alter the bpm in the second menu.
Itโs a lot of fun.
The plans for the next session (this evening?) are:
**m**od menu item)/2 or /4 speed play twice or once during that time)Future plans are to introduce pattern chaining, pattern-length (per-channel), using square curves for attack and decay and chords (positive integer intervals).
The code is very bad and available here:
https://git.snoot.club/chee/bleepbloopmachine
Itโs already starting to diverge from nanoloop, and I hope it will continue to forge its own identity until it can stand strong as its own independent interesting instrument.