January 9, 2024

status report

Time for a demo of the current state of the project. We have a library, context menus, super wiggly cables, and all the other stuff we’ve seen up to this point. Here it is, all coming together. I have a hard time believing this is all my work. I am beside myself, and so proud of what I’ve managed to accomplish in the last year.

January 3, 2024

zomg cables!

I’ve put this off long enough. No more excuses. Let’s have some proper cables.

December 21, 2023

the context menu

With the library up and running, there’s one last thing we need to support as much functionality as possible: the humble context menu.

December 11, 2023

the library

One of the final key components needed to have a meaningful experience with this thing is a way to load new modules into the patch: the library!

November 29, 2023

body colors

Went off on a little tangent today and figured out how to semi-reliably pull the “main” color from an SVG, to use as the color of the non-textured faces of the mesh the SVG is painted on (ie the back and sides of a module, as seen above). Here’s how it works, for the curious…

October 25, 2023

dealing with overlaps

Now that the modules can be moved around I’ve discovered some unexpected fuckery with the way I’m handling the placement of lights…

October 19, 2023

VR! (vrvrvrvrvrvrvrvr)

No more putting it off. Let’s get this thing running in VR. A partial to-do list: give some thought to performance, support a head-mounted display and motion controllers, adapt my existing controls to two independent hands, and…

August 11, 2023

scalable vector graphics

null

One of the biggest questions I had coming into this project was how I’d get the graphics from Rack into Unreal. On the Rack side, by default, everything is vector graphics. That’s handled by loading SVG files or drawing graphics dynamically with nanovg. Unreal, however, does not natively support vector graphics…

July 12, 2023

interaction, babyyy

Before complicating things with VR motion controllers, I want to make sure I have the basic logic behind user interaction in place using only a mouse pointer…

July 7, 2023

all worng

As I begin working on user interaction I quickly find that I have merely arranged the component parts in space, and nothing is actually attached to anything else. Initial attempts to rectify this situation lead to some amusing outtakes…

June 24, 2023

sketching out the geometry

Now that I’m confident I’m getting data into Unreal in a consistent and performant way, I’m adding some simple geometry sketches to get started on user interaction…

April 28, 2023

don’t say let there be lights don’t say let there be lights

a screenshot of a computer screen showing a software modular synthesizer app on one side, and a crude recreation of that interface, including glowing lights, in a game engine on the other side.

For the next step in sending data from Rack to Unreal, we’re going to start getting real-time with light updates. First, I need to get the position and size data for the lights over to Unreal like I’m doing for everything else, and while I’m at it…

April 18, 2023

rack -> unreal

a screenshot of a computer screen showing a software modular synthesizer app on one side, and a crude recreation of that interface in a game engine on the other side.

My custom module is now sitting in the virtual rack with the other modules, and—after a thousand debug statements and recompiles to figure out how and where to find the data—it is introspecting the state of the running Rack instance. It is gathering data about the other modules…

March 1, 2023

let's fn go (why am i doing this)

A grey and white cat sits on a wooden wristrest on a desk in front of a computer keyboard and monitor. the monitor displays several text editor windows showing source code. the cat is staring past the camera into the distance as if to say, 'I have no idea what I am doing.'

For as long as I can remember I have been fascinated by synthesizers and electronic music. I had seen modular synthesizers, and I must have intuited that their purpose was to give an artist lower-level control over the sounds they were making, but they mostly remained a mystery to me. Recently, at the yearly Bandcamp employees offsite, one of the special guests they flew out to talk with us was Suzanne Ciani…