1. Understanding Mumble Positional Audio

    27 Feb 2021

    In my last post, I discussed some of the process of building a mod for Valheim that adds support for Mumble Positional Audio. During the process of helping some users troubleshoot, it became clear that it's not a terribly well understood system, and Mumble itself doesn't offer much feedback on what's actually going on. Where each bit of data is available and processed isn't obvious, and can lead to misconceptions about how things work.

    Continue Reading
  2. Adding Mumble Support to Valheim

    21 Feb 2021

    I'm taking a detour from my usual Rust side projects to dabble in something new: Unity modding! I, like many others, have found myself addicted obsessed highly invested in Valheim, a multiplayer viking survival game that recently entered Steam Early Access. Lacking any built-in voice capabilities, players use other platforms to communicate. Mumble, an open-source voice chat program, has a cool feature where it can use in-game position data to make it sound like your friends' voices actually come from their characters. The trick is getting that data into Mumble.

    Continue Reading
  3. The Rest of the Keyboard

    6 May 2020

    This is going to be somewhat reminscent of that owl meme. I had plans for some more posts about a new codec abstraction, my async STM32 IO crate, and maybe the overall architecture, but one thing led to another, and now I have a complete project to talk about. I'll give an overview of the main points of interest so that the other rust/embedded posts aren't required reading. I'm also kind of writing to two audiences here, so if you're a Rust person, but not a keeb person, feel free to skip stuff and vice-versa.

    Continue Reading
  4. Building an Embedded Futures Executor II

    27 Jan 2019

    Part 2 of my embedded executor journey!

    Part 1 ended up getting a little long, so I cut it short while still missing some key features like more flexible task spawning and putting the executor to sleep when there's nothing needing to be polled. This time, we'll fill in those gaps!

    Continue Reading
  5. Building an Embedded Futures Executor

    26 Jan 2019

    Custom keyboard development part 3!

    After discovering that the embedded-hal ecosystem wasn't quite what I wanted it to be, I set out to build the abstractions that I wanted to use, namely: async-first and core::future compatible. The first thing on the list? A way to run the Futures of course!

    Side note: My project's landing page has got some more content these days!

    Continue Reading
  6. Embedded Rust Frustrations

    21 Jan 2019

    Part 2 of my custom keyboard project!

    I didn't mean for this to become its own post, but it kind of got away from me. I've had a blast getting my feet wet in embedded dev so far with Rust, but it hasn't been without its share of headaches. I'm sure most of my problems can be attributed to my lack of experience in this realm, but hopefully I'll be able to turn my frustrations into something interesting by parts 3 and 4!

    Part 1 can be found here: Bootstrapping My Embedded Rust Development Environment

    Continue Reading
  7. Bootstrapping My Embedded Rust Development Environment

    25 Nov 2018

    After watching James Munns' Something for Nothing talk at RustConf about all of the cool things in the embedded Rust world that have been going on, I decided to take a crack at some embedded work. I built an ErgoDox a while back and already had some basic understanding of how its keyboard controller operates, so I thought "why not design my own keyboard?"

    Continue Reading