The One-File Wonder
FNote v1 was my first dive into a large-scale application, I don't use it anymore though due to FNote v2 being objectively better. It's built entirely in Python, using the standard tkinter
library for the GUI and python-vlc
for its powerful audio playback capabilities. This choice, however, came with a catch: users must have VLC Media Player installed on their system for it to work.
Reflecting my novice understanding of software architecture at the time, the entire application—every function, class, and UI element—is contained within a single Python file that's over 2100 lines long. It's a bit of a monolith, but it works!
Try It Yourself
You can download the full project from the GitHub repository. The release includes a pre-packaged executable with VLC already bundled, so you don't need to install anything extra.
Download from GitHub
Core Features
Despite its simple appearance, FNote v1 has a solid set of features that I wanted in a personal music player:
- Standard music player controls (play, pause, skip).
- Song importing and playlist management.
- Loop and Shuffle modes.
- Ability to run on startup, so music plays as soon as the PC boots.
- And its most unique feature...
The Killer Feature: Auto-Pause
The standout feature of FNote v1 is its ability to auto-pause when external audio is detected. If I'm listening to music and a YouTube video starts playing, FNote automatically pauses. When the video's audio stops, FNote seamlessly resumes the music. This feature alone took a solid two weeks of the one-month development cycle.
It was a complex problem that required a multi-AI approach. I struggled with several models until Deepseek-R1 managed to create a working prototype script. I then took that proof-of-concept to Gemini, which successfully integrated the functionality into the main tkinter application.