You are browsing as a guest. Sign up (or log in) to start making projects!

Bye

@Bye

Joined June 5th, 2026

  • 6Devlogs
  • 4Projects
  • 0Ships
  • 0Votes
Nano!
Open comments for this post

2h 45m 55s logged

Added support for SubRip (.srt) files in the retimer. I had to make a generic subtitle object (ISubtitleFile) so I could keep .ttml support.

Most of the work was backend so I don’t have much to show. Instead of parsing an XML file, it reads through every line in the subtitle file and builds up a list of lines in the subtitle. It saves this back into a subrip file using those same rules. In theory this setup would make conversions easier,,, but i’ll need to spend a Lot of time properly implementing that haha

0
0
1
Open comments for this post

9h 39m 54s logged

I spent quite a while working on this one very specific tool, huh. So, I needed something to change the playback speed of subtitles: European releases of TV shows and movies run faster than the same show in the US when aired on TV or released on DVD. Most of the time this isn’t an issue (it’s most noticeable in music) but it is an issue when you’re trying to use subtitles from the internet that have been timed against the “wrong” version. So that’s what this does: it takes in the frame rate (speed) of the video the subtitles were timed against, the speed of the video you’re trying to match it with (so often 25 FPS -> 23.976 FPS when dealing with PAL subtitles on something released in NTSC regions). Currently, it only works with TTML files (specifically files following the EBU’s EBU-TT-D format but it shouldn’t matter) because that’s just the format I was able to find the subtitles I was looking for in. I need to add support for other formats like .SRT and .ASS, which I’ll do after this devlog as well as adding a conversion tool between at least those three.
I’m building ezsub as a PWA, mainly because I think things like these should be easily accessible online.

To do this, I’m using Blazor WebAssembly to run the app fully in the browser, and it’s been an… interesting experience. As you can see from the screenshot, the app isn’t very polished (it’s still using the default template Blazor provides) but it does work (note how the timestamps in the “after” window are slightly later than the ones in the “before” window, that’s what’s supposed to happen). That being said, I’m building this as if it was a standalone app rather than a website, so I’m going to have to make it its own landing page at some point :D

0
0
2
Open comments for this post

9h 19m 25s logged

This took far longer than I wanted…
I had a lot of trouble getting WPF to play nicely with my playlist system! So I decided to just focus on getting a song queue working. Which took ages, mainly because I’m still learning WPF, XAML and its MVVM architecture, and I ultimately decided to get the core of the player working before worrying too much about UI, something I’m doing far too much.
Now mixtapes has an internal queue system (this won’t be editable in the final program i think?) that it pulls songs from, which currently it shows in its UI. The foundation for playlists (which is how users will actually add music and rearrange the playback order) still needs to be made (I struggled so much trying to figure out how to do this)…

Also, I got to solve a lot of problems caused by SDL running on a different thread :D. The code that handles UI changes when a song finishes is triggered by SDL directly, and that tries to modify the queue. The ListView displaying the queue relies on a CollectionUpdated event to know that the queue changed, but that event has to be invoked on the UI thread. Which sucks. I think I fixed it the proper way (something called a SynchronizationContext in the Queue) but I’m expecting to run into stuff like this a Lot more lmao.

0
0
2
Open comments for this post

2h 59m 14s logged

I don’t know if videos are supported here so you’ll have to take my word for it that audio playback works.

I began writing the UI for Mixtapes! It’s currently using WPF (though I plan to port it to other platforms once I’m happy with the features) and it uses SDL to play back audio. Most of the time was spent writing wrappers for the various SDL3_mixer objects as mentioned in my last devlog. I’m surprisingly happy with how my wrappers are working.

Currently, it can read audio from a file (using SDL_mixer’s built in decoders, though I’ll have to bring in some external decoders because it doesn’t support all the codecs I’d like), and play it back. It also pulls the title and artist information (again using SDL and I need a better source of information). Next up will be making a playlist system!!

0
0
2
Open comments for this post

1h 25m 41s logged

Spent most of this time deciding the tech stack I wanted to use for this project. I knew I was going to be using .NET, so my main concern was finding a library that would make audio playback easy and crossplatform. I settled on SDL3 (and SDL3_mixer) because bindings for that were readily available, but I have to write a lot of wrappers around SDL because it uses a lot of nasty C things like pointers and stuff.
I ended up writing a little demo C# program to get my head around audio decoding and a couple concepts from SDL. Everything after this will be making the music player for real

0
0
2
Open comments for this post

3h 50m 18s logged

I got a proof-of-concept for what I want to make working: a small Windows program that accepts data from Forza Horizon 6 and displays it in it’s own little window.

Before starting anything, I had to decide what I wanted to make the UI in (and settled on WPF because I want to learn XAML), and then figuring out how to listen for UDP packets on some port from an Xbox on my network at the same time. It wasn’t that hard but took a lot of working out.

I had to write a struct for FH6’s data out format, the file for which is over 200 lines of just Properties.

I mentioned that this is a proof of concept. In its current state it isn’t very useful. I’d like to make it possible to move the data around, and properly visualise ALL of the data (yes, even if the Front Left tyre is in a puddle (real data point)). I need to expand support to FH4, FH5 and Forza Motorsport (and older if I can get my hands on them and they actually uhhh support data out).

You can’t see it in this screenshot but the latency between the stuff changing on screen and it changing in the program is very small. The game sends the data every frame so I’m trying to update it every frame too (though I may need to restrain it a little lol)

2
0
5

Followers

Loading…