Initial Release - Beta 1.0.0


Veles - Beta V1.0 Release

This is the first release of my first application, a music player / tag editor / lyrics editor / downloader. Basically anything you would ever need when having local music files, to interact with them.

Open Source:

Veles is a tool entirely free and open source. You can view add or simply take from code depending on what you'd like to do. I have decided for this measure since my code being under the eye of the public, may lead to me learning better ways of doing some things in the way I write code, applications or games.

Development History:

General Development:

I started the development of Veles somewhere around the start of February 2022. I just wanted to experiment with some features of the Godot Engine regarding sound and audio. With my passion for music this quickly snowballed into whatever this thing turned out to be.

At the start all "Veles" or then called "Lyfoplayer" was an application that could replay a given song and switch to the next one by pressing a button. This quickly changed however as I wanted to make something bigger out of it. 

Around on 3rd of March a Version of this application was looking like this:

April 2th

This may look like I was somewhat far into development, BUT what you cannot see it that I did not have any idea what I was doing back then.

  • I did not use containers since I did not know what they were or even how to use them, meaning the apps window was not resizable or when you resized it everything scaled with which looked absolutely terrible

After I realized this and luckily learned from other apps made inside the Godot Engine (especially Pixelorama), I redid the entire application this took me multiple weeks to get the app back to working and probably cut a few months off my lifespan but, at the end the app started to go into the right direction and followed actual good practices regarding Node Structure.

After everything was restructured regarding UI-Containers, Veles was looking like this:



After that development started to go into the right direction again, until I realized how I was saving all the data of the songs and loaded covers did not scale up well AT ALL. When having more than a hundred songs Veles had to load multiple seconds on a good day to fetch all the data and covers to display them in the application. So, I worked out a new system, which goes something like this:

  • There is a Dictionary of all added songs. The key is the path of the song, since it is an unique identifier and all needed values such as titles are saved within and array within the title.
  • All the Data can be fetched by using the "AllSongs" Class, so I never had watch out if I was actually getting the right data and it was easily changeable afterwards.
  • When adding a folder to Veles all the Covers get compared to previously added covers, is the cover entirely unique it gets copied else it just saves a reference of the original copy as a "Coverhash". This reduces the file size massively since there are no duplicate covers saved anywhere. Also, because the covers are already extracted and copied to the user data they would not be needed to be extracted anymore when Veles was starting up
  • Cover-cache all the Covers including their Cover-cache are loaded into a Dictionary using a reduced image size. These images can then be used to display in each cover rectangle of a song. Since this is done on startup and the covers are using a reduced size this process is way faster than loading every single cover on their own.

This took me a bunch of time as well, but was essential for Veles to run with acceptable speeds.

After all that reworking development kept on going across the year hitting some minor bumps across the road.

Now after almost a year worth of work I'm finally happy enough with the product to let it out into the world to get some feedback for future updates.

Tagging and Integration of GDNative:

In the midst of development I decided that I wanted to integrate editing Tags of Songs, just like other applications such as MP3Tag. So, I found this C++ Library on the Conan Center and luckily enough a GDNative plugin by SamsFace allowed me to integrate said plugin into Veles. This part of Veles was pretty fun to make since I needed to integrate and on general work with a C++ library, which I had never done before. Also, there where very few snippets using this library, especially the C++ one, so I basically had to write everything myself without any help. The main annoyance with this integration always came from that if anything went wrong it straight up just crashed with some mystic error popup or just without one at all.

Apart from tagging, TabLib also was essential for Veles since it allowed me to fetch the embedded Covers out of multiple file formats.

Future Goals:

  • More Tagging options
  • Conversion between Image file formats when exporting covers
  • Displaying and editing multiple cover on one music file
  • Options for minor Image Manipulation on embedded Covers
  • Internal Code Refactoring (kind of a mess right now)
  • Color Presets (Light Theme, Dark Theme, . . .)
  • Integration of LastFM

I want to support this application many updates into the future and it's my goal to make Veles one of the best music tagging software and music players out there, if you have any ideas to improve or required changes for this project I'm always ready for suggestions.

Conclusion:

Thanks for reading this collection of random thoughts on my Veles, I hope could give you a quick inside on the background and future goals I have with this application.

If you have any question or thoughts I'd love to hear them, thanks for reading :)

Files

veles-linux-embed.zip 27 MB
Version 3 Dec 26, 2022
veles-linux.zip 27 MB
Version 4 Dec 26, 2022
veles-win10-embed.zip 25 MB
Version 2 Dec 26, 2022
veles-win10.zip 25 MB
Version 4 Dec 26, 2022

Get Veles

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.