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

Sonora Music

  • 6 Devlogs
  • 13 Total hours

Sonora is a local music app, similar to apple music or spotify, but it is designed only for local music files. While I like apple music, it syncs all my local music everywhere, and is clunky when it comes to local files. Sonora will be macOS native only, due to the Apple AVFoundation frameworks used. It will be able to browse files and shuffle music, and possibly be able to make playlists that you can recall.

Open comments for this post

2h 57m logged

Devlog 6 - Sonora Music

So I left this project alone for a while to focus on other things, but i’m back!

I ended up fixing a few bugs here and there, and removing 2 themes I thought didn’t look great. I also added a fallback for that, so if you were using Sonora with that theme, and updated, your app won’t break.

I fixed a few memory leaks, mostly because I fell victim to a bunch of them while writing code and testing things. From what I can tell, it was because AVAudioPlayer wasn’t properly releasing itself. This meant that more instances accumulated over time, eating up more RAM and CPU.

I also did some visual polishing, by cleaning up unnecessary icons I added, and also just making the UI more refined. I pinned the playbar and controls to the bottom of the screen so that you can always see the controls, and fixed the broken color swatches for the themes so you can see what you are applying.

I’m getting close to being ready to ship this project, all I really have left to do is to decide if migrating to AVAudioEngine is worth it as it is an extremely intensive task, and will require lots of tedious work and debugging. The other thing I’ll consider is writing a windows build in Symphonia or some other thing so that this can be cross platform.

The main reason I am migrating is so that I can have more refined control of the signal chain and DSP (The chain that your audio passes through and how it is modified, say for an EQ). AVAudioPlayer is designed to just play audio easily, where I want more control and be able to implement the ability to add EQ down the line to further enhance the experience.

Hopefully the migration goes well, and I should be able to ship in the next week or two.

0
1
62
Open comments for this post

4h 55m 3s logged

Sonora Music – Pain Edition

After a week of absolute debugging hell, I finally located and fixed an issue that prevented audio from playing entirely. That took up most of my week, and I also forgot to reinstall Wakatime after I reset my laptop and lost 2-3 hrs there :(

While I was at it, I also added Shuffle and Repeat functionality, making the player a bit nicer to use. I’m currently experimenting with a few UI prototypes because I’d really like to add proper playlist creation and management in the future.

In terms of releases, I uploaded the first version to GitHub, then realised I built my backup one that didn’t have shuffle and repeat, or the customisation. After uploading the correct build, my next steps are just to update the Sonora Website (another Stardance project ofc)

Here’s what I want to tackle next:

  • Migrate the audio system to AVAudioEngine so I can implement more advanced audio features.

  • Add a 3-band EQ (This is why I need to migrate over to AVAudioEngine, as my current AVF Framework doesn’t have support for these types of things or DSP in general).

  • Implement a proper library and playlist view.

  • Create a few custom themes which are similar to the current palette.

  • Add a dedicated Settings page for things like themes, EQ controls, and other app parameters to keep the main UI less cluttered.

Overall, this update was mostly focused on bug fixes and polishing. Aside from the features above, I also designed a custom application logo and branded the DMG installer with a custom Sonora Music background, replacing the plain white installer window with something that actually matches the application’s style.

Hopefully, the next devlog is a little less about debugging and a little more about adding new features. Maybe? Please???

0
0
3
Open comments for this post

1h 17m 14s logged

I was able to add a working play bar to the app and got the controls to work so that you are now able to skip forward and back songs. I now want to remove that scroll bar on the side and pin the play controls to the bottom of the screen.

0
0
4
Open comments for this post

46m 40s logged

So I decided to pivot the whole application to be macOS native by using AVFoundation for Audio. I had too many issues with rodio which is used with rust. While this means it is only for macOS users, it does mean that I can focus on creating for only one OS, and I can develop easier and better. After implementing AVFoundation I am able to select a song using the UI I developed earlier, and then play the song. The next step is to add player controls and a time bar, and work on adding a shuffle feature.

0
0
3
Open comments for this post

2h 48m 29s logged

I added the main UI as a mockup. This is only the first page, the player window. Eventually I will add a few more pages and only after will I write the logic to play music.

0
0
7

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…