shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

285
active users

#Rust

31 posts28 participants4 posts today
Continued thread

There's definitely going to be a blog post about this, with some more backstory on ADPCM and the VOX format

I've been reading windytan's blog (windytan.com/2012/11/the-sound) lately and really enjoying the deep dives into how specific audio things work, and I think I want to do some of that.

absorptionsThe sound of the dialup, picturedIf you ever connected to the Internet before the 2000s, you probably remember how it sounded. But what do these sounds mean?
Continued thread

I found the original VOX ADPCM specification (multimedia.cx/mirror/dialogic-), and when that didn't sound quite like Audacity's implementation, I looked at the FFMPEG source (ffmpeg.org/doxygen/7.0/adpcm_8)

For some reason, FFMPEG seems to do it a bit differently than the specification. I'll have to look into that more and see what's going on, but for the time being, it works!

I implemented my own VOX ADPCM decoder!

I had mentioned (reillyspitzfaden.com/posts/202) wanting to use that format to interpret raw data as audio, and the Rust Symphonia crate (crates.io/crates/symphonia/0.3) didn't have the VOX variant and assumed the incoming data was properly formatted as an ADPCM file, rather than random data, so it was actually easier to do myself.

Here's how it sounds:

I was looking for an alternative to classic shell scripts, so I timed a Hello World program in different languages for fun. I thought you might want to know:

1 ms - #Bash
1 ms - #Perl
12 ms - #Python
33 ms - #Go (shebang calling `go run`)
38 ms - #C (shebang compiling to temporary file)
61 ms - #Rust (shebang compiling to temporary file)

Needless to say that this is a highly unfair and silly comparison. It's still interesting, though.

Replied to Kushal Das :python: :tor:

@kushal @kpcyrd don't blame yourself. It's dealing with something that's so dynamic as JSON within a strongly typed language. I actually like working with serde_json for dynamic stuff in #rust but when possible I would recommend converting to a typed struct as soon as possible

Oh look - it's a new blog post, an introduction to the USCD p-System Editor, *written on* the UCSD Pascal Editor:
markbessey.blog/2025/04/29/ucs

Yes, this means that my #Rust #psystem utility can successfully copy files off of the emulator disk image, and convert them into Mac-formatted text, from the frankly bizarre format that's native to the text editor.

markbessey.blog · UCSD Pascal: In depthPart 1: The Editor Note: This Blog Post was written in the USCD Pascal Editor, on an Apple II emulator. There may be a few more typos than usual. The p-System comes with an editor. It’s a ful…