musql
Years ago I was building my own music aggregation interface called musql, I called it the intentional play on music and SQL. Later I eventually moved to Apple Music largely because smart playlists got closer to this idea than anything else out there.
I am extremely picky about my music and even more about how it is played. Shuffle always felt intellectually lazy and static playlists are bad. What I wanted was a system driven by intent.
Assume you have the following in your music library;
- Beethoven, Piano Sonata No. 14 “Moonlight”, Adagio sostenuto
- Tchaikovsky, Symphony No. 6 “Pathétique”, Adagio lamentoso
- Bach, Goldberg Variations, Aria
- Mahler, Symphony No. 9, final movement
- Schubert, Piano Sonata D.960, first movement
In a traditional player you would probably dump these into a playlist called “Calm” or “Melancholy” and forget about it. musql treated them differently. Tags were never genres. Genre collapses too much nuance, especially in classical music. Tags describe emotional or conceptual intent.
Some examples;
- sad Tchaikovsky’s Pathétique finale, Mahler’s Ninth ending, and Schubert’s late sonatas all express sadness, but each in a different register. One is despair, one is farewell, one is quiet exhaustion.
- love Bach’s Aria from the Goldberg Variations, slow movements of Mozart piano sonatas, or the Benedictus from Beethoven’s Missa Solemnis. Love without excess, balanced and human.
- madness Beethoven’s Große Fuge, late Scriabin piano works, parts of Berlioz’s Symphonie fantastique. Structure stretched until it starts to hallucinate.
- sublime Beethoven Op. 111 second movement, Mahler’s slow movements, Bruckner adagios. Music that suspends time rather than fills it.
A track could carry many tags at once. The Schubert D.960 opening might be sad, intimate, sublime, and restrained. None of this pretends to be objective. It is simply how I listen.
In musql a playlist was never a list. It was a query.
For example:
All tracks tagged sad and sublime Exclude madness Prefer orchestral or solo piano Duration longer than 8 minutes
That playlist contained logic, not tracks. Today it might include Mahler 9 and Schubert. Tomorrow, when you add late Brahms or slow movements of Shostakovich, they appear automatically. Nothing is edited by hand. A playlist should evolve as your library evolves.
Another use case that I also liked was writing something like this:
You might write: Composer = Rachmaninoff Exclude years 1897 to 1900
Those years follow the failure of his First Symphony. He was blocked and depressed, and if you are building a playlist around confidence or emotional generosity, that period simply does not belong.
Or:
Composer = Richard Strauss Include works after 1905
Because you are here for Elektra, Salome, and Der Rosenkavalier, not the polite early tone poems.
Or even:
Composer = Beethoven Include works after Op. 90 Exclude early piano sonatas
Because tonight you want the fractured, inward, almost metaphysical Beethoven, not the classical prodigy.
I never wake up wanting “track 4”. I wake up wanting clarity, grief, restraint, transcendence, or sometimes controlled chaos.
musql was my attempt to let the player meet me at that level. #Programming #Music
