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

Bye

@Bye

Joined June 5th, 2026

  • 4Devlogs
  • 3Projects
  • 0Ships
  • 0Votes
Nano!
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.

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.

Replying to @Bye

0
1
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!!

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!!

Replying to @Bye

0
1
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

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

Replying to @Bye

0
1
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)

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)

Replying to @Bye

0
3

Followers

Loading…