GabTag, an audio tagging tool
GabTag is a Linux audio tagging tool written in GTK 3, which makes it very suitable for GTK based desktop users. It is also the first Linux application I wrote.
The program allows users to select several files and modify their tags. It's also possible to let GabTag automatically find tags and lyrics for an audio file using MusicBrainz and lyrics.wikia.com database.
Some features have been developped but the application can still be improved.
- Add, modify or delete basic tags (title, album, artist, genre)
- other strings tags and labels
- Cover tag
- Modify several files at the same time.
- MP3 File handled
- Flac File handled
- bold font on modified tags and files
- Automatic completion of tags (from online data)
- Lyrics (from online data)
- Multi-folder modification
- Acoustic ID integration
Issues encontered during development
The issues i enconutered are mostly caused by the lack of documentation regarding gtk3 software development.
1) setting up Travis-ci
The hardest thing for me has been to set up Travis-ci, I first set up a Travis-org ci (a deprecated version of Travis-ci) instead of the classic Travis-ci. Hence, I was not able to transfer my project in the newer version of Travis-CI. Then, I had to create a new GitHub repository to fix that. Eventually, I also struglled to find out that Travis need the python3-gi package and the PygObject pip package to be able to test the project.
2) make the grid box scrollable
The second issue I encountered was linked to the layout. To make my grid layout scrollable, I had to put it inside a GtkAspectFrame and a GtkViewport. Anyway my layout is still not completely satisfying because i always need to resize the size of my panel when I'm using Gabtag.
3) using GdkPixbufProlog
Last but not least, this issue which is still not fixed is with gdkpixbuf class. It is a bit surprising how showing an image can be hard in gtk. I had to use an external API called Pillow to show a byte image.
Even more surprising, for some image, the gtk pixbuf is not showing a scaled version of it but a deformed version of it. This issue is only apparing on my application so I hope I will be able to quickly fix it.
If you get a solution for those issues, you can send my an email to firstname.lastname@example.org. Otherwise, I hope my experience can help you.
I am proud of my work and hope to keep improving Gabtag. This experience sharped my skills in :
- Python Development
- Continious Integration
- Object oriented programming
- Flatpak packaging
- Reverse engineering