MoreRSS

site iconJeff KaufmanModify

A programmer living in the Boston area, working at the Nucleic Acid Observatory.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Jeff Kaufman

Making a Custom Mixer Interface for the 1818VSL

2026-10-25 21:00:00

Now that LLMs have made many kinds of coding a matter of saying what you're looking for, many more programs make sense. This weekend it was audio mixing software, customized for my use case (live sound for contra dancing) and hardware (a specific obsolete audio interface).

In 2011 PreSonus released the 1818VSL, an 8-channel audio interface, with low-latency mixing software. I wrote:

All I really need is a box with some amplifying inputs that send tracks from the mic to the laptop and some outputs that let me send mixes back out again. Then any sort of complex eq, compression, or other effects can happen in software on the laptop. So I got one: it's a Presonus AudioBox VSL1818, with eight usable inputs and eight usable outputs.

At the time I did worry about how long I could expect it to be supported:

Less future proof. My old board is almost twenty years old and is still fully compatible with modern gear. In twenty years will I be able to attach this box to a computer at all?

This was indeed a problem: in order to get the latency down, PreSonus had written a custom kernel driver. This integrated very deeply with the laptop's operating system, so that it could mix and apply effects as quickly as possible. In 2015-09, when Apple released OS X 10.11, they made a ton of changes, including completely rewriting the USB driver system (IOUSBFamily to IOUSBHost) and adding System Integrity Protection. This broke their integration, and PreSonus deprecated the mixing software.

I was pretty grumpy about this, since this was why I bought it, and fell back to just using it as an audio interface.

Now that computers will just do things if I explain what I want, though, it seemed like a good time to pick this back up. I asked Opus 5.5:

I have a PreSonus Audiobox 1818VSL, which I've connected to this computer. 12+ years ago I would use it as a hardware dsp mixer [sic] for live sound, but then Mac changed something, PreSonus didn't update their drivers, and since then I've only been able to use it as a class-compliant 8-channel audio interface. I'd like to get it working as a mixer again, and I'm hoping you can put in the engineering time that the PreSonus folks were unwilling to invest.

I've set up you up so you can test this by connecting the output of the 1818vsl (channel 1) to the input of a 2i2, and the output of the 2i2 to the input of the 1818vsl (channel 1). I'd recommend testing that this works correctly using both as regular audio interfaces before moving on.

In this folder I've put PreSonus_AudioBox_Installer_v1_3_5653.exe which looks to me like the last version of the windows installer that supported using the device for dsp mixing.

Looking at the windows driver, Claude pretty quickly realized that the 1818vsl isn't a hardware DSP mixer. Apparently I did know this back in 2012 (and PreSonus was clear about), but I'd forgotten. It's also confused a lot of people over the years [1][2].

Which means I wanted something else: software I can run on my Mac that will use the lowest latency the combined system reports, with eight analog channels in and out, and presents a mixing interface. Historically the right way to do this would probably be to find software that does it already, but these days I can just ask for something that does exactly what I want.

The first step was figuring out how small a buffer it can reliably handle. I patched each output back into each input, and Claude ran a series of dropout tests for me:

It was able to run without dropouts or other issues at 48 kHz buffering 32 samples per channel, which after some additional fixed device latency came in at 4.8ms round trip. This is equivalent to having a speaker an extra ~5ft from your head, so while it's not nothing it's still in the range where it doesn't get in the way of good playing.

I then asked it to make me a mixer interface. I've now used several digital mixer interfaces, and had several ideas I wanted to try. The big one is per-output color. Here's the faders controlling the mains:

And here's them controlling Aux 3:

All the portions that depend on whether the mains vs Aux 3 are selected change color (ex: faders), while the portions that always mean the same thing stay the same (ex: mutes). This addresses the biggest issue I've seen with people using digital mixers, where they get confused about which output they're controlling. Not just newbies: I've had very experienced people trying to adjust the mains and ending up changing my monitor. It's an easy mistake to make in most UIs: just one small indicator that means the difference between whether a fader controls mains vs the monitor. And the indicator isn't near the fader.

The other things are smaller, and most are things I've seen somewhere before even if they're not universal:

  • EQ and compression available on the outputs, not just the inputs. Useful when a specific monitor is causing a problem.

  • Easy access to zero the board when switching quickly to a new band (and easy to revert if you realize you need to go back).

  • Give people the option to control just their own monitor via their phone. [3] To keep it simple, they only get levels; no compression or EQ.

  • Faders spend their travel in the useful region: just -20 to +10; below that they go to -inf. For live sound I have no reason to bring someone down below -20, they can just be off.

  • You edit names in place instead of opening a different dialog.

  • No on/off switches for EQ or compression. I've seen people struggle to figure out why their EQ isn't doing anything, because it's switched off.

  • EQ and compression show summary lines on the channel view, so you can quickly see how you have each one set.

  • No insert effects, buses, groups, routing matrix, or pan. I never use these, and they make things more complicated. I did include delay, for down-hall fills.

Here's the EQ screen:

And compression:

I also added a "feedback" screen which shows frequency plots for all eight inputs at once, so you can quickly identify which one might be making whale noises:

Right now the app only works with the 1818VSL, which is an obsolete piece of hardware I happen to have, but it's open source and if you'd like to (use a model to) add support for other hardware in your own copy, feel free!


[1] SoundOnSound: "Like most multi-channel interfaces, the Audiobox has a software utility to control the routing and monitor mixing that take place on its onboard DSP chip. The notable feature of PreSonus' Virtual Studio Live is that it replicates pretty closely the features and functionality of the company's Studio Live mixers; in essence, the Audiobox's DSP is a Studio Live mixer without the physical controls."

[2] Full Compass: "26 x 18 ultra-low latency DSP mixer"

[3] On my phone Firefox was good, but on Chrome I got ERR_TOO_MANY_RETRIES even though the "nearby devices" permission was already granted. I exported a net log and saw ERR_LOCAL_NETWORK_PERMISSION_MISSING, and tcpdump on my Mac didn't see incoming connections. To fix it, I needed to go into Settings > Apps > Chrome on my phone, force stop Chrome, turn off and back on the Permissions > Nearby devices setting, force stop it again, and then reopen. Claude's guess is that a permission granted before Android 17 didn't cover local network access, and toggling it makes Android grant it fresh.

Comment via: facebook, mastodon, bluesky

A Term for a Kind of Human Economic Obsolescence?

2026-10-21 21:00:00

AI keeps getting more capable. At some point, likely in the next 1-3 years unless we do something to stop it, we get to where AI systems are able to do everything almost anyone can do. This is often described as leading to a world with "no jobs", but I think this tends to confuse more than help.

One sense in which there might be no jobs is that there might be no people. This is a very real concern, [1] and is the primary reason I think we need to slow down or pause AI development, but isn't what I'm trying to talk about here.

Instead, when people say "no jobs", they're usually talking about a future where there are still people but humans are basically never the best way to go from "I have money" to "my problem is solved". The history of automation has had many rounds of taking some kinds of problem and moving it to machines or human-directed machines: almost all ketchup bottles are filled by machines, almost all dirt is moved by human-controlled machines. As long as there were other things that needed doing which humans could do better than machines, though, humans have moved into other lines of work, and the futures envisioned by a 1930 Keynes in Economic Possibilities for our Grandchildren haven't come about. But this is changing fast, as the list of things we can do better than machines rapidly shrinks.

Words like "no jobs" or "economically obsolete" don't really apply in these futures, though, since I do still expect people to pay others to do things. When you go to a concert and close your eyes listening to a fantastic performance, there's a sense in which the performer is obsolete: the PA system could be (and sometimes is) putting out a recording instead of music live in the moment. But we care that there is a person up there entertaining us. People buy handmade things (or are tricked into thinking they are), and enjoy receiving services from people.

So I'd like some better terms for this potential world in which nothing humans do feeds into whether anyone is fed, has shelter, gets medical care, or has any other basic need met, but where people still do things for each other, sometimes for pay, because of a preference that some work be done by a human. Thoughts? I asked Opus 5.5, and its favorite phrasing was (sigh) "non-load-bearing".


[1] The people building the models do not know how to reliably control them or how much we should trust them. As much as there is a plan, it's to almost entirely delegate resolving this problem to these same models we don't know how to control and don't know how much to trust. Here's Kelsey Piper writing after a visit to Anthropic:

The public is hotly debating whether AI is a normal technology — something that will transform our world like the internet did — or more like the arrival of postindustrial modernity to the Kingdom of Saudi Arabia in the 1950s: something that vaporized a culture overnight. The third option is that AI is more like the rise of humanity as seen from the perspective of livestock animals. (In this scenario, AIs are the humans, and we are the animals whose fate will make no sense to us.)

Anthropic believes that the second possibility is already baked in, and it's hoping to prevent the third — but its plan for preventing that looks more like hope and guesswork than something we should trust it with.

Comment via: facebook, lesswrong, mastodon, bluesky

Organizing a Van to EA Global

2026-10-20 21:00:00

Last weekend I organized a van down from Boston to NYC for EA Global:

I'm very happy I did this, and would definitely do it again. Being able to talk with folks both ways was like a bonus 8hr of the conference [1] and I had a very interesting ride each way.

Julia and I had been planning to drive down together, and I posted on the EA Boston mailing list and the FB group. I very quickly got more people than I had seats for in our Honda Fit, and decided to rent a 12-passenger van:

Hertz says it's a 12-passenger, though the two times I've rented one from them it's actually been a 15-passenger with zero trunk space. Essentially another row of seats where the trunk would be. This would be great for something in-town, is workable for my use case here where people have minimal luggage, and would be pretty awkward if folks had a lot of luggage since seats take up space that would otherwise be for bags.

I sent out an email in advance:

If you're receiving this email, you're on my list for a ride to the EAG conference venue, leaving 10am on Friday the 16th.

Please try hard not to be late, because you'll be delaying a large group and might get left behind, but if you are running late do text me at 617-871-0237. Feel free to ring the bell if you'd rather wait inside, but if you arrive before 9:30am I might not be back with the van yet.

We have a 12 passenger van [sic] and currently have 11 people. There should be a good amount of space for luggage [sic], but be reasonable: we're only there for the weekend.

The etiquette for the van is that if you want to read / sleep / work you sit towards the back, while if you want to chat you sit towards the front (I won't be reading, sleeping, or working).

Since the trip down runs through lunchtime, we'll probably stop somewhere quick around noon, or you can pack a lunch.

Cost per person-trip is ~$25. [sic] I'm happy to cover costs, but if you'd feel better about chipping in my Venmo is @Jeff-T-Kaufman .

I had been thinking of parking on the street in Hell's Kitchen or getting into the Upper West Side, since that's free and arriving Friday during the day seemed pretty doable for parking. But when I actually got there I decided I'd rather have the time than the money, and parked in a garage for $200 (since the van is oversize). This meant moving to street parking on Sunday morning, but since by then the streets were minimally restricted that was easy and free.

Total cost was $830:

Expense Amount
Rental $494
Parking $200
Gas $103
Tolls $33
Total $830

The rental was on the high end: checking now for the weekend of November 13th it would only be $146, and usually when I look it's much cheaper than $494 for a weekend. This came to $38/person-trip instead of the $25 I put in the email (when I already knew the van would be $494), mostly driven by the parking cost. This is around bus cost, and much cheaper than train.

I got $305 in Venmo contributions, so total cost to me was $525. Julia ended up traveling separately, because with her work she needed to be there earlier and stay later. So I would likely have paid $279 to take Amtrak (given my constraints on departure timing), and have asked my work to reimburse $279 of the van rental. I think of the remaining $246 as well spent!

We had 12 people down, counting me, and 10 back. Different people since the times only fit some schedules. On the way down one of the people was someone who had missed their train, and it was nice that we had space to include them. Dropping off and picking up at the venue also saved people some time and hassle.

Lots of good conversations both ways, and a bit of a throwback to twenty years ago when I did a lot of renting vans to drive friends to dances.


[1] Since this was an EA event some pickiness is appropriate: I expect the hourly value was lower for the van, so we shouldn't fully count this as bonus time. In one direction, this was a group of EAs who happened to want a ride from Boston; they weren't selected for being useful to each other the way people choosing 1:1s at the conference would be. For example, there wasn't anyone I could go deep on biosecurity with, or evaluate as a potential hire. In the other direction, there's value in building up a shared culture and in talking about things outside your specialty. So I'd put these hours somewhere between an EAG and one of the EA meetups we host.

Comment via: facebook, lesswrong, the EA Forum, mastodon, bluesky

Telephoto Camera: Pixel 10 Pro vs 11 Pro

2026-10-10 21:00:00

I'm not sophisticated enough to have noticed improvements in the main phone camera in the past 5-10 years, but distance shots are still not very good. The next generation Pixel Pro was supposed to have an improved "telephoto" camera, and when Google Fi offered me a sufficiently good deal [1] I decided to upgrade.

Going from the 10 Pro to the 11 Pro the telephoto camera goes from a 1/2.51" sensor to 1/1.95", and since this is a diagonal measurement this means bringing in ~65% more light. But does it actually take better pictures?

I wandered around taking pairs of pictures, all at 10x. Of this, 5x is optical zoom and the remaining 2x is cropping: I'm showing the pictures as Google Photos gives them to me. All hand-held: while a tripod would likely improve high-zoom pictures, I'm interested in real-world performance which is all going to be hand-held. Every set is the 10 followed by the 11 (taken back-to-back), cropped to 1100x1100.

I started with some well lit things; here's our garden, ~35ft away:

Some construction near our house, ~45ft away:

A neighbor's roof, ~90ft away:

Now some things that are less well-lit. These are in our bedroom with the window open for natural light but only indirect.

A picture Sarah Hirsch painted, ~10ft away:

Our curtains:

Moving to a room with even less light, a poster on the spare room wall, also ~10ft away:

There's some kind of algorithmic cleanup going on, which is especially visible in the words. Is the extra detail in the pictures from the new phone due to it doing a better job of capturing the scene, or is it just making details that look nice? Let's give it an eye exam!

I made a little sheet of random handwritten letters. I could have printed a chart but I hate printers and printers hate me I expect AI-based image processing would overperform on printed text, especially in standard fonts, due to being heavily trained on it. I attached the sheet to the wall:

Just like my own eyes, as the phone gets farther from the sheet it will have more trouble distinguishing the letters, and this will let us see the extent to which it looks better via real details vs made up ones. To get a sense of how hard this is, the top to the bottom of the top "g" is 7/8". Testing with eyes, at 22ft you can just barely make out some of the top-line letters but Lily and I both had mistakes, while at 11ft we could reliably read the top line letters but Lily had several mistakes on the next line.

For this comparison I added Julia's phone, a Pixel 10a, because she didn't object. It would have been better to go back re-do the first part of this post, but I'm too lazy; please pass along a plausible excuse to the peer reviewers. Here's 7ft:

The 10a is already struggling, which makes sense because it doesn't have any optical zoom: it's just cropping to zoom in. Looking at the letters in the bottom row, I think it's running the same image processing and just has less to work with? The letters are already getting a little unnatural in how they're depicted.

The same three at 11ft:

The 10a shows the "t" at the beginning of the second line as a "c", and the third and fourth lines are illegible. The 10 Pro has the third letter of the final line, "a", as "o". The 11 Pro looks noticably better than the 10 Pro, and doesn't seem to have made anything up.

At 22ft:

This is not what the 10a is good at, and we're no longer getting anything useful from it. For the other two this is a real test, just at their level of ability. The top two lines are right for both, but the 11 Pro is clearer. On the 10 Pro, the third line is semi-legible scribbles, and there are some misleading ones: in the third row the last four letters come out as an AI-hallucinated "i g n 5" instead of "s g a s". On the 11 Pro the third line is correct, and it's only the fourth line where it starts swapping letters. Even then, it gets 11/15 correct [2].

It looks to me like the automated cleanup is a common factor across the three Pixels, and the 11 Pro is giving the algorithms more to work with. But I also wouldn't trust any of these phones in cases where correctly capturing details at the limit of the camera's resolution was important.

Overall, this seems like a nice improvement, and worth the hassle of needing to sell my old phone!


[1] Google Fi was offering enough of a discount on a Pixel 11 Pro to bring the cost down below what I think I can sell my 10 Pro for. Specifically, they listed it at $1,100 with a $650 discount, bringing it down to $450 ($477 including tax), and I think my 10 Pro will sell for ~$500. The 11 Pro does have less memory than the 10 Pro (12 GB vs 16 GB, due to the AI-induced shortage) but it still seemed likely worth upgrading for the improved camera and other smaller benefits of running a newer phone. The memory decrease isn't ideal, but looking at how I use my phone I'm not expecting to notice.

[2] I read "t p o t f h p b f a g - r q p" instead of "t y a t f h p b f c g m r q p" which is four mistakes out of fifteen letters.

Comment via: facebook, lesswrong, mastodon, bluesky

Porcus Poem

2026-10-08 21:00:00

The kids have been excited about Pig Latin a lot lately. I noticed that there are a few words that are also English words, or homophones thereof. With some help from Claude, especially in figuring out which words would work well and in checking my work, here's a poem about a pie and a naughty plover:

I weigh ache bay, each pay I pay,
Oh say eats whey, each way ice lei,
Away ate play, eye way: a prey
I'll weigh, eat whey, all way: a day.

Oh whey, oh neigh! I may I pay!
Away outstay, overplay ate whey
All whey of whey, I may I pay!
Ooh, yay, I slay eat tray outlay!

I weigh, eat whey, all whey, ashtray,
I weigh, underplay, all whey, eyes pay!
Eat sway, eat stray, I weigh eat whey!
Oh say, Old Bay? Owe whey, I may!

I weigh Amway oh say outstay!
I weigh I flay? Oh neigh, away!
I weigh a stay, I weigh I lay,
I weigh owes day all whey a day!

reveal English...
I bake peach pie
So sweet each slice
A plate I pray
I'll eat all day.

Oh, no! My pie!
A stout plover ate
All of my pie!
You sly treat lout!

I eat all trash,
I plunder all pies!
Sweet treats I eat!
So bold? Oh my!

I am so stout!
Why fly? No way!
I stay, I lie,
I doze all day.

Note that this doesn't quite work in my dialect, since "way" and "whey" are not homophones, but since it works for almost all of my readers I liked it better with "whey".

Comment via: facebook, lesswrong, mastodon, bluesky

Clipboard Normalizer in Mac App Store

2026-09-28 21:00:00

Several months ago I wrote a program to normalize your clipboard, removing fonts / colors / sizes and mostly leaving semantic information: anything that can't be represented in Markdown was dropped. Now that I can have walk me through things, however, I've made it available as a free app on the Mac App Store:

It's now a single menu bar app, which offers a few options:

In addition to normalizing your clipboard, it can also convert copied rich text to markdown and back again.

Video demo:

youtube

It's amazing how much software development has changed in the last few months. In December, when I made the first version, it was simple enough that I think I still wrote it by hand (with some asking questions to Claude) and then Claude walked me through using Platypus to package the script as a Mac app. This time I just said I wanted it in the Mac App Store and Claude rewrote it to be compatible. This included:

  • Replacing Pandoc (GPL and so incompatible the App Store TOS) with SwiftSoup.
  • Writing Swift code to wrap SwiftSoup.
  • Merging the separate "Normalize Clipboard" and "Markdownify Clipboard" apps into a single menu bar app.
  • Making it show a little toast describing what it had just done, including an FYI if you tried an impossible conversion.
  • Adding tests, including ones for XSS and others for very strange formatting.
  • Fixing a few edge cases the old one mishandled.
  • Walking me through the App Store review process.

I needed to provide a little guidance, in telling it where I wanted to draw the line on which formatting to keep, and I did notice a few small conversion bugs.

It failed the review process the first time, mostly because I was lazy and skipped Claude's recommendation to make a demo video. The second time it got through fine.

Comment via: facebook, lesswrong, mastodon, bluesky