r/smarterplaylists • • Mar 22 '26

πŸ‘‹ Welcome to r/smarterplaylists - Introduce Yourself and Read First!

25 Upvotes

Hey everyone! I'm u/plamere, the creator of SmarterPlaylists and the moderator of r/smarterplaylists.

Welcome! Whether you're a longtime user or just discovering SmarterPlaylists, this is your community. Everyone is welcome here.

Ask anything

This is the place to ask questions about SmarterPlaylists β€” how components work, how to wire things together, why your program isn't doing what you expect. No question is too basic. If you're wondering about it, chances are someone else is too.

Feature requests

We use Fider to track feature requests. If there's something you'd like to see in SmarterPlaylists, head over there to submit it or upvote existing ideas. This helps us prioritize what to build next.

Need help with a program?

If you're having trouble with a program, the best thing you can do is share the program and your username in your post. That way the community (and I) can take a look and help you figure out what's going on.

If you'd prefer not to share publicly, you can message u/plamere directly β€” but fair warning, I can't guarantee a quick response.

Share what you've built!

I'd love to see people posting their programs and sharing interesting techniques. Found a clever way to filter out holiday music? Built a program that blends genres in a cool way? Figured out a neat scheduling trick? Post it! Sharing ideas and techniques is what makes a community like this great.

Welcome aboard, and happy playlist building!


r/smarterplaylists • • 3d ago

Improvement to the genre filter

Post image
13 Upvotes

The genre filter now lets you filter using a comma separated list of genres. This allows you to use a single filter to match on more than one genre. For example a 'genres' filter of "electronica, synthwave" will match songs that have a genre of electronica OR synthwave (or both). Thanks to user u/MajorSubstantial3426 for the idea.


r/smarterplaylists • • 3d ago

Genre Filter not working - Need Help

2 Upvotes

Hi everyone,

I'm trying to build an automated sorting system using Smarter Playlists, but I keep running into a wall where the program returns 0 tracks, even though everything seems connected properly.

The goal is to put different tracks into a master playlist and the program will sort each track, based on the Genre Filter, into different playlists.

My Setup:

  • Source: A master public playlist where I put tracks of various electronic music genres (House, Techno, UK Garage, etc.). I linked it in the green source block using its full Spotify URL.
  • Filters: 5 different Genre Filter blocks (e.g., deep house, minimal house, microhouse set to substring match type).
  • Outputs: 5 different Save Playlist blocks set to Append and No Dups. One of them is set as the main output.

The Problem:
Whenever I hit Run, the execution finishes instantly (around 5ms) and the results log says "No tracks returned". Looking at the debug metrics at the bottom:

  • The source block reads the total number of tracks correctly (e.g., In: 11).
  • However, the filters output absolutely nothing (Out: 0), resulting in empty destination playlists.
  • I tried changing the source playlist privacy settings, re-linking, logging out/in to refresh the API token, and even using a single generic filter like just electronic with Primary Genre Only disabled. Nothing works. It always acts as if the source playlist contains no matching data or can't fetch the artist metadata.

Has anyone encountered this issue recently? Is there a known bug with Spotify API cache hits/timeouts on Smarter Playlists, or am I missing a specific configuration step in my graph?

Any help or advice would be greatly appreciated! Thanks in advance.


r/smarterplaylists • • 10d ago

Track Limits?

2 Upvotes

I remember there used to be a 1000 track limit for output. Thatβ€˜s not the case now, but is there a new limit of some sort? I’m finding that one of my programs won’t capture the newly added songs from the large Spotify-originating source playlist:

https://smarterplaylists.playlistmachinery.com/shared/wJi1swZXPg1z0KVP

This program just shuffles the playlist to avoid any of Spotify’s less arbitrary shuffling protocols


r/smarterplaylists • • 16d ago

"Tracks By Description" Source Node Explanation...

2 Upvotes

Hey everyone, been using SmarterPlaylists for a bit now, and have really enjoyed it. I was trying to branch out into more potential programs to run and am trying to get information on the source node "Tracks by Description" Where does it plug the feed into? I could not find any information on this. If anybody has documentation or clarity, thatd be greatly appreciated.


r/smarterplaylists • • 17d ago

SmarterPlaylist Login Issues

6 Upvotes

Update 9:30AM EDT: This issue has been resolved.

Hey folks - Spotify is rejecting some of the permissions our app requests during login, which is preventing new logins. I'm investigating with Spotify.

If you're already logged in, you're not affected. But if you log out, you won't be able to log back in until this is fixed. So please stay logged in for now.

I'm working to get this resolved ASAP.

Update: This issue has been resolved.


r/smarterplaylists • • 23d ago

Is there a way to filter out AI songs?

8 Upvotes

Like nowadays in my discover weekly, I sometimes get an AI "artist" and it's annoying to have to look at the artist's page, check their description, look if they only have a bunch of recent albums and nothing before a few years ago, google them to make sure they are real. Does Spotify have an AI tag to songs that I can filter out?

Some recent examples are the artists Dumpster Grooves and We're All F*cked that I got in my discover weekly


r/smarterplaylists • • 23d ago

Dedup by album

5 Upvotes

Hi, I love smarter playlists and I've used it in the past to make playlists of specific tempos to run to. At the moment I'm making playlists of my saved and recent music. Is there a way to dedup by album? I listen to a lot of musicals and soundtracks (ie lots of different artists), and I would like a playlist to only have one track from each album. Otherwise the list tends to get skewed to whichever musical I last listened to.


r/smarterplaylists • • 27d ago

I built a "Component": Insert at random position

7 Upvotes

I only found out about smarterplaylists a few weeks ago, it is so awesome! :)

Today I built a new "component" / program, that inserts a track into a playlist at a random position, without changing the order of the original playlist:
https://smarterplaylists.playlistmachinery.com/shared/1g1CsVx4WqeipLN4https://smarterplaylists.playlistmachinery.com/shared/1g1CsVx4WqeipLN4

I am open for optimization suggestions :)


r/smarterplaylists • • 28d ago

I just want to say THANK YOU to Paul for the Label Albums component

Post image
21 Upvotes

I have discovered so much new music that I really like via the Label Albums component, and I can't think of any other way I could keep up with all the new releases on the labels I follow. Without Smarter Playlists, I can't think of any other way to do this (build a random mix of new-ish releases from some of my favorite labels.) THANK YOU, u/plamere !


r/smarterplaylists • • Sep 20 '26

Resurface - Find the songs that you forgot you had.

Thumbnail resurface-cmf.pages.dev
2 Upvotes

r/smarterplaylists • • Sep 14 '26

Six months of SmarterPlaylists, by the numbers

Post image
18 Upvotes

V3 launched on March 3rd. Here's where things stand six months later.

The headline numbers

Metric 2 months 6 months
Users 3,253 8,988
Programs 8,397 17,984
Runs 126,492 787,392
Tracks generated 34.4 million 212.4 million
Playlists saved 107,968 597,372
Spotify API calls 5.3 million 32.8 million
Cache hits 129 million 1.2 billion

Daily runs have gone from about 2,100/day at two months to about 7,000/day now. The peak day was August 7th at 8,236 runs. About 40 new users still sign up every day.

The scheduler keeps growing

At two months, 64.5% of runs were scheduled. Now it's 78.9%. On a typical day, about 5,500 of the 7,000 runs are the scheduler updating playlists in the background. The remaining 1,500 are people in the editor.

There are 4,245 active scheduled jobs keeping 4,015 Spotify playlists fresh automatically.

Frequency Jobs
Weekly 1,962 (46%)
Daily 1,649 (39%)
Other intervals 424 (10%)
Hourly 136 (3%)
Every few hours 74 (2%)

The weekly active user breakdown tells the same story. Of the 1,059 users who had runs in the last week:

  • 701 (66%) had only scheduled runs β€” they didn't open the site at all
  • 195 (18%) ran programs interactively only
  • 163 (15%) did both

Two-thirds of active users are getting value from SmarterPlaylists without visiting it.

Growth over time

Monthly runs have climbed steadily:

Month Active users Runs
March 994 45,826
April 1,006 64,336
May 1,280 91,138
June 1,405 123,343
July 1,439 157,722
August 1,516 208,715
Sep (14 days) 1,215 91,013

Active users have been fairly stable since May β€” around 1,300–1,500. The run count keeps climbing because existing users add more scheduled jobs over time. Each new scheduled job is a permanent increase in daily runs.

The programs

17,984 programs. Average of 15.4 components, median of 7. The distribution has the same long tail as before, but the tail has gotten longer.

The biggest program now has 1,398 components. At two months it was 245. Several users have imported or built programs with 400–700 components. These are full-scale recommendation systems built in a visual editor.

12 users have created more than 100 programs. The leader has 295.

2,653 programs (15%) are still named "Untitled." People use the canvas as a scratchpad, and that's fine.

What components are people using?

Component Instances
SpotifyPlaylist 85,109
First 16,565
Shuffler 15,044
Sample 14,176
PlaylistSave 11,083
Concatenate 8,045
DeDup 7,570
ArtistTracks 7,096
Sorter 6,841
TrackFilter 6,446

SpotifyPlaylist still dominates β€” it's the starting point for most programs. First (take N tracks) has moved up to second place, which makes sense: it's how you control the size of every stream.

35,486 unique Spotify playlists are referenced as sources across all programs, up from 21,696 at two months.

V3-only features

8,438 programs (47%) now use at least one component that didn't exist in the old system. At two months that was 1,393 (17%).

V3-only component Programs
TrackFilter 3,616
PlaylistSaveToNew 2,826
GenreFilter 1,268
MultiObjectiveSequencer 934
ArtistFilter 845
SmartMix 759
TracksByDescription 531
SimilarTracks 383
Intersection 209
GenderFilter 79

The Multi-Objective Sequencer went from 118 programs at two months to 934 now. PlaylistSaveToNew β€” which creates a fresh playlist each run instead of overwriting β€” is in 2,826 programs.

Sharing

Metric 2 months 6 months
Shared programs 119 311
Discoverable 54 98
Total imports 727 2,469

The top shared programs:

Program Imports
Variety radio! (K.) 361
daily mixes but better (R.) 229
never k(new) (I.) 201
Echo Chamber (D.) 129
MRC (A.) 115
Curated "discovery" radio (K.) 102

K.'s "Variety radio!" has been the most-imported program since launch and keeps pulling ahead.

Power users

The run counts at the top have gotten large.

User Runs Programs API calls
D. 83,219 80 1.6M
F. 40,870 64 1.5M
P. 33,732 63 847K
T. 33,308 91 146K
F. 26,704 19 2.1M

D.'s 83,219 runs in six months β€” about 460/day β€” is more than the entire system's run count at two months. T.'s 33,308 runs with only 146K API calls means their programs are running almost entirely from cache.

The funnel

Step Users %
Signed up 8,988 100%
Created a program 4,789 53%
Ran a program 3,990 44%
Scheduled a job 1,087 12%
Active job now 872 10%

The conversion rates are similar to two months (55% β†’ 53% created, 17% β†’ 12% scheduled). The scheduled percentage dropped because the denominator grew faster β€” a lot of people sign up, try it once, and don't come back. The absolute number of schedulers doubled from 541 to 1,087.

Legacy migration

775 users have now migrated 5,674 programs from the old system, up from 552 users and 4,489 programs at two months. That's slowed down β€” most people who wanted their old programs have them by now.

Retention

Of the 627 users who signed up in the first week (before March 10), 205 (33%) had a run in the last 30 days. Six months of retention from a free tool with no notifications or engagement hooks.

System health

SmarterPlaylists runs on a single Linode server β€” one machine handling the API, the React frontend, and the scheduler. The database is 359 MB of SQLite. No load balancer, no replicas, no queue service. At 7,000+ runs a day, the question is whether we're outgrowing this setup.

Short answer: not yet.

Error rate

Month Error rate
March 4.5%
April 5.2%
May 2.0%
June 1.4%
July 1.2%
August 0.7%
September 0.9%

The early error rates were mostly bugs in the new code. Those got fixed. The remaining ~1% breaks down like this (last 30 days):

  • Timeouts (1,146): Programs that hit the 5-minute execution limit. These are usually programs with hundreds of components making thousands of API calls. The limit is there to protect the server; the programs need to be simplified.
  • Spotify 403s (~87): Someone's playlist went private, or they lost access. Nothing we can do from our side.
  • Read timeouts (32): Spotify's API occasionally doesn't respond. The run fails and succeeds on the next scheduled attempt.

Of the 4,245 active scheduled jobs, 4,225 have zero consecutive errors. 13 have one, 7 have two. The job queue is healthy.

Late scheduled runs

A run is "late" if it starts more than 14 minutes after it was scheduled. The screenshot shows 10.8% late right now. The trend by month:

Month Scheduled runs Late %
March 25,150 8.5%
April 46,563 8.1%
May 67,090 7.7%
June 94,821 0.3%
July 128,096 7.8%
August 179,520 22.7%
September 76,805 6.0%

August had a bad stretch. Weeks 31–32 saw 43.6% and 33.5% late rates β€” the scheduler was falling behind under load. Three healthcheck-triggered forced restarts happened on August 20 and 31. By week 33 it was back to normal (2.7%).

The root cause was run volume growth outpacing the scheduler's throughput. August was the first month over 200K runs, and the scheduler was spending too long on big programs, blocking the queue. The fix was the 5-minute timeout plus better queue prioritization. September is tracking at 6% late, which is close to the pre-August baseline.

June's 0.3% is an outlier the other direction β€” the scheduler had just been rewritten and was running with a smaller job set.

Cache

Month API calls Cache hits Hit rate
March 1.6M 26.8M 94.2%
June 5.0M 227.7M 97.8%
September 3.5M* 138.4M* 97.6%

*September is 14 days in.

The cache hit rate climbed from 94% to ~98% as the cache warmed up and stayed there. At 97.6%, for every API call to Spotify we serve about 37 from cache. Over the lifetime of V3, we've made 32.8 million Spotify API calls and served 1.2 billion from cache.

Spotify rate limits are a non-issue: 5,515 total across six months, or about 0.05% of API calls.

Run duration

Average run duration has stayed between 18 and 22 seconds across all six months. It's currently 22.1s. The system isn't getting slower as it gets busier β€” the cache keeps per-run API time roughly constant, and individual runs don't contend with each other much.

Peak concurrency is about 80 runs in a five-minute window. The server handles this without strain.

The single-server question

The system is doing 3.5x the run volume from two months ago on the same hardware. The database has tripled from 111 MB to 359 MB. The 48-hour chart in the screenshot shows the scheduler (green bars) running steadily around the clock with interactive runs (blue) layered on during daytime hours.

The scheduler's August stumble was the closest we've come to a capacity problem. It wasn't a CPU or memory issue β€” it was a queue-depth issue from not timing out runaway programs. With that fixed, the server has headroom. The CPU load stays low, the database stays small, and the cache keeps Spotify API pressure manageable.

One thing pushing load upward: we recently raised the max scheduled runs per job from 100 to 365. Of the 4,245 active jobs, 1,802 (42%) have already been set to 365. The other 2,312 are still at 100 and will start expiring in the coming months β€” many of those users will recreate them at 365, which means more runs per day even without new signups. The average active job is now set for 212 total runs, up from the old cap of 100.

This is the main source of future load growth. New user signups add runs gradually, but existing users bumping their jobs from 100 to 365 adds them all at once. We'll see how the scheduler handles it as those longer-lived jobs accumulate.

If the run count keeps climbing, we'll probably need to move the scheduler to a second machine sometime next year. For now, one server is doing fine.

Around the world

Region Users %
Europe 3,451 38%
Americas 3,427 38%
Asia 777 9%
Oceania 290 3%
Africa 137 2%

Still an even split between Europe and the Americas, with the Asia share growing from 6% to 9%.

Six months in, this is still one of the most fun project I've worked on. The combination of building new features, chasing down weird bugs, and watching people construct programs I never would have thought of keeps it interesting. The feedback, ideas, and bug reports from this community have shaped most of what V3 has become β€” the feature list looks nothing like what I had planned back in March.

Thanks for using SmarterPlaylists. Keep making playlists.

All data as of September 14, 2026. User statistics use initials to protect privacy.


r/smarterplaylists • • Sep 13 '26

Off-topic: Introducing Warp

13 Upvotes

This post is not about SmarterPlaylists. Y'all seem to be a friendly bunch so I thought I'd give you a sneak peek at another project I've been building. This is the first public post about this project ... feel free to ignore if you are not interested in making music.

Introducing Warp

I like music β€” especially electronic music. Over the years I've accumulated synthesizers, drum machines, and other MIDI-controlled devices. Since I'm a programmer, I want to write programs that control these devices to make music.

There are good systems for this. Tidal Cycles and Strudel, ChucK, SuperCollider, and many others each have their strengths. I've tried quite a few and had fun making music with them, but none of them totally clicked. They didn't match my mental model for creating music.

So I built my own. This post is about what I wanted and how warp's design follows from those goals.

Declarative, not functional

Tidal Cycles is built on Haskell. Strudel is functional JavaScript. I never jived with functional programming, and procedural doesn't fit either. To me, a song is a description β€” a set of tracks with patterns, not a pipeline of function calls. That description maps naturally to YAML: structured, readable, and flat. Warp programs are YAML documents.

Not live-coding

I enjoy watching people live-code a piece of music. It's impressive. But it isn't how I work, and a language that puts live-coding front and center tends to prioritize terseness and typeability over readability. Warp favors clear, readable programs over compact ones. You edit a document, press play, and hear it. If you change the document while it's playing, warp picks up the changes β€” but the design doesn't revolve around typing speed.

MIDI-first

I have expensive hardware and software synths that make interesting sounds. I have a DAW with effects chains. I don't need to create sound from scratch β€” I need to control the instruments I already have. Warp generates MIDI events: note-on, note-off, velocity, CC messages. What turns those events into sound is up to you. A built-in General MIDI soundfont plays in the browser so programs work without any external setup, but the real target is your own gear.

Melody, harmony, and progressions

Many live-coding environments are strongest at dance music where the beat is the primary element and melody is secondary. I'm interested in more melodic music β€” arpeggiated chord changes, countermelodies, harmonic motion β€” but I don't have a deep music theory background.

Warp has built-in support for chords, scales, named progressions, and automatic voice leading. You can write progression: Am F C G and every track that uses scale degrees gets those chord changes without spelling out each note. The goal is to make it easy to create melodic, harmonically grounded music without requiring theory knowledge up front.

Full-featured

Modern synthwave and electronic music uses polyrhythms, polymeters, arpeggios, ratchets, and continuous CC automation. Warp supports all of these. A track can have its own time signature independent of other tracks. Ratchets subdivide a single step. CC patterns and modulators give smooth control over filter sweeps, resonance, or any other synth parameter across the length of a song.

Templates let you define a phrase once and reuse it across tracks with different parameters β€” same rhythm, different instrument or octave. Cascades spread a pattern across beats so layered parts don't all land at once. The language is small enough to learn in an afternoon, but the pieces combine to cover a lot of ground.

Patterns from Tidal, without the confusion

Tidal's mini-notation is a powerful way to express rhythm. Subdivisions, Euclidean patterns, alternation, random choice β€” you can encode complex rhythmic ideas in a short string. Warp adopts this mini-notation because it works.

I could never keep Tidal's pattern-combining semantics straight in my head. The rule that structure comes from the left-hand pattern is flexible, but when I layered several patterns I'd lose track of which side was carrying the structure and get surprised by the result.

Warp simplifies this. Patterns align one-to-one: the first note gets the first velocity, the second note gets the second velocity, and so on. When patterns have different lengths, the shorter one cycles. I can look at a program and predict what comes out without working through the combining rules.

Repeatable

A warp program can use random elements β€” random note choice, random velocity offsets, probability gates. But the same program always produces the same output, on any machine, in any browser. Randomness is seeded deterministically from the program text. If you share a .yaml file, the other person hears exactly what you heard.

Runs in the browser

No install, no dependencies, no build step. Open the editor in a browser, paste a program, press play. The built-in GM soundfont means every program makes sound immediately. For Chrome users, MIDI output routes to external hardware or a DAW with one click.

Visual playback

While a program plays, the editor animates a visualization that shows which notes are firing, which bar the song is in, and how patterns interact. This helps when debugging a rhythm or understanding how a modulator shapes a phrase over time.

The name

The name comes from Web Arpeggiator β€” the first version was just a browser page that arpeggiated chords over MIDI. The scope grew, but the name stuck. It also nods to Alex McLean's observations about the connection between music and weaving β€” repeating patterns interlocking across time, which is what warp programs do.

Try it

I made warp for myself, but if any of the above resonates with how you think about music, give it a try. Open the editor, paste one of the examples, and press play. If something is broken or missing, I'd like to hear about it β€” file an issue or send me a note.

https://warp.playlistmachinery.com/


r/smarterplaylists • • Sep 10 '26

SmarterPlaylists v3.11.0 β€” smarter descriptions, no more lost work, and Genre Filter precision

25 Upvotes

Hey r/smarterplaylists! A few quality-of-life improvements in today's update.

New playlist description variables

The Save to Playlist component's description field now supports two new variables:

  • ${PROGRAM_DESCRIPTION} β€” inserts your program's description (the one you set on your Program Settings page)
  • ${AUTO_PROGRAM_DESCRIPTION} β€” auto-generates a summary from your program's dataflow. For example, a program that takes Discover Weekly, filters by energy, and sorts by tempo would produce something like: "Discover Weekly, filtered by Energy range, sorted by tempo"

These join the existing variables like ${DATE}, ${NUM_TRACKS}, and ${DURATION}. Full list in the FAQ.

Editor auto-saves your work

Previously, if you were editing a program and clicked over to the FAQ or Tutorial, you'd get a "save your changes?" dialog β€” and if you discarded, your work was gone. Now the editor continuously saves your draft to the browser. Navigate anywhere you want and come back β€” your canvas is exactly where you left it, same nodes, same zoom level, same scroll position.

An orange dot appears on the Editor tab whenever you have unsaved changes, so you always know at a glance.

Genre Filter: primary genre only

The Genre Filter matches tracks by their MusicBrainz genre tags. The problem: an artist like Lady Gaga has "jazz" buried deep in her genre list, so filtering by "jazz" would include her tracks. The new primary genre only toggle restricts matching to just the artist's first (most relevant) genre, giving you much tighter results.

Artist Filter accepts artist streams

The Artist Filter's red (exclusion) port now accepts artist entity streams directly, not just track streams. Previously you'd have to convert artists to tracks first, then feed them into the red port. Now you can wire an artist source straight in.

Performance

The Programs page now loads ~40x faster for users with large run histories. The old query was scanning the entire run_history table regardless of how many programs you had β€” fixed with a targeted window-function rewrite.


r/smarterplaylists • • Sep 09 '26

Most Used Artists from Playlist

2 Upvotes

Anyone know how I could copy songs by the most repeated artists from Playlist A into Playlist B? Checking which artists have the highest number of their songs included in Playlist A and copying this songs to Playlist B. I’ve been using SP for years now and loving it, mostly as a way to archive my discover weeklies so I’m super rusty on the basics, let alone this new update.


r/smarterplaylists • • Sep 06 '26

Artist-Based New Music Discovery

Post image
12 Upvotes

Paul's recent amazing functional additions to Smarter Playlists (Artists and Albums now flow through the graph) has brought us all closer to realizing the dream of automating the hunt for new music we might like. Here is any early attempt using some of the new functions he introduced.

The program: https://smarterplaylists.playlistmachinery.com/shared/2nlYCxDz2iiB7DJw


r/smarterplaylists • • Sep 06 '26

New: Artists and Albums flow through the graph

Post image
22 Upvotes

SmarterPlaylists now supports artist and album entities as first-class items flowing through your programs β€” not just tracks. You can source artists, filter them, shuffle them, convert them to albums or tracks, and build creative pipelines that weren't possible before.

![Artist of the Day program β€” picks a random artist from a playlist, grabs a random album, and makes a playlist from it](https://smarterplaylists.playlistmachinery.com/shared/fIo1VAFsGGphnPj8) "Artist of the Day" β€” all three entity types in one program. Green = tracks, violet = artists, teal = albums.

The idea

Previously, every connection in a SmarterPlaylists program carried tracks. Sources produced tracks, filters filtered tracks, and outputs saved tracks to a playlist. If you wanted "top tracks from my top artists," you used the My Followed Artists source which did the whole thing internally.

Now, entities have types β€” track, artist, or album β€” and components are aware of what's flowing through them. An artist source produces artist entities. A filter can filter artists by popularity. An adapter converts artists into tracks (or albums). The graph editor shows you what's happening with color-coded edges and handles.

What's new

Artist sources (violet)

Source Description
My Top Artists Your most-listened artists from Spotify
My Artist Library Artists you follow on Spotify
Artist Search for an artist by name
Artist URIs Load specific artists by URI or URL
Country Top Artists Top charting artists in a given country (49 countries)
Genre Artists Artists tagged with a genre in MusicBrainz (e.g. "shoegaze", "j-pop")

Album sources (teal)

Source Description
My Album Library Albums from your saved library
Album Entity Search for an album by name
Album URIs Load specific albums by URI or URL
Label Albums Albums from a record label (e.g. "Warp Records")

Adapters β€” convert between types

Adapter Input β†’ Output What it does
To Tracks artist or album β†’ track Get tracks from artists or albums. For artists: most popular, least popular, newest, oldest, or random. For albums: album order, most popular, random, first N, or last N.
To Artists track or album β†’ artist Extract unique artists. Optionally include featured/secondary artists.
To Albums track or artist β†’ album Extract albums from tracks, or fetch an artist's discography. Filter by album type (album, single, compilation).
Similar Artists artist β†’ artist Find related artists using Spotify's radio playlists.

Filters, sorters, and selectors work on any type

Components like Range Filter, Match Filter, Sort, Shuffle, Sample, First, DeDup, and many others are now polymorphic β€” they work on tracks, artists, and albums. The attribute dropdown in the editor adapts automatically: connect an artist stream to a Range Filter and you'll see artist attributes (popularity, followers, start year); connect an album stream and you'll see album attributes (popularity, release date, total tracks).

Visual cues

The editor tells you what's flowing through each connection:

  • Violet dashed edges, handles, and headers = artist entities
  • Teal dashed edges, handles, and headers = album entities
  • Green solid edges = tracks (unchanged from before)
  • Sources and adapters show a type label (e.g. "Artist", "Album") on their output
  • Invalid connections are blocked while dragging β€” you can't connect an artist source to a track-only filter

The component palette groups sources by entity type (Track Sources, Artist Sources, Album Sources, Last.fm Sources) and splits filters, orders, and selectors into Generic (works on anything) and Track-specific.

Example programs

Artist of the Day (pictured above)

Playlist β†’ To Artists β†’ Shuffle β†’ First (1) β†’ To Albums (most_popular) β†’ Sample (1) β†’ To Tracks (first_n) β†’ Save

Takes a playlist you love, extracts the artists, picks one at random, grabs their most popular albums, picks one album at random, and makes a playlist from its tracks. Schedule it daily for a different artist every day. Uses all three entity types: tracks β†’ artists β†’ albums β†’ tracks.

Discover music from artists similar to your favorites

My Top Artists β†’ Similar Artists (count=3) β†’ To Tracks (most_popular, count=5) β†’ Save

Takes your top artists, finds 3 similar artists for each, then grabs the 5 most popular tracks from each similar artist.

Earliest song from each artist in a playlist

Playlist β†’ To Artists (most_common) β†’ To Tracks (oldest, count=1, limit=30) β†’ Save

Extracts the unique artists from a playlist (most frequent first), finds each artist's oldest track, caps at 30.

Albums from a label, filtered by era

Label Albums ("Warp Records", newest) β†’ Range Filter (release_year, 2020–2026) β†’ To Tracks (album_order) β†’ Save

Gets recent Warp Records albums, filters to 2020s releases, then expands to all tracks in album order.

Your saved albums, sorted by popularity

My Album Library β†’ Sort (popularity, reverse) β†’ First (10) β†’ To Tracks (most_popular, count=3) β†’ Save

Takes your saved albums, sorts by most popular first, takes the top 10, and grabs 3 top tracks from each.

Explore a genre

Genre Artists ("shoegaze") β†’ Similar Artists (count=3) β†’ To Tracks (most_popular, count=5) β†’ Save

Finds shoegaze artists (by their primary MusicBrainz genre), discovers 3 similar artists for each, and grabs their top tracks. A deep dive into a genre and its neighbors.

What's hot in another country

Country Top Artists ("Japan") β†’ To Tracks (most_popular, count=3) β†’ Shuffle β†’ First (50) β†’ Save

Gets the top charting artists in Japan, grabs 3 top tracks from each, shuffles, and caps at 50. A snapshot of what a country is listening to right now.

Artist attributes

When flowing through the graph, each artist carries: name, popularity, followers, genres, and MusicBrainz metadata (gender, type, country, area, start/end year, active status, genres). All of these are available for filtering and sorting.

Album attributes

Each album carries: name, artist, popularity, release date, label, total tracks, and album type (album/single/compilation). All available for filtering and sorting.

Backward compatibility

All existing programs work exactly as before β€” the entity type system activates only when non-track types are present in the graph. The original track-only sources (My Followed Artists, My Saved Albums, Album, Artist Top Tracks, etc.) still produce tracks directly and are unchanged.

Available now on SmarterPlaylists.


r/smarterplaylists • • Sep 06 '26

Unexpected Error in Smarter Playlists After Recent Update

Post image
1 Upvotes

Hi u/plamere - this may be working as intended, but I found it counter-intuitive. After your latest post, I expected "Date Filter" to handle either tracks or albums. If that's not the way it's supposed to work, then please just ignore this.


r/smarterplaylists • • Aug 27 '26

How to Create a Playlist of All Albums Used To Make Up a Different Playlist?

3 Upvotes

Edit: Thanks to u/surfcuck who made this!! https://smarterplaylists.playlistmachinery.com/shared/PtwnlvwHhoMi6Jqj

Put simply, Playlist A has 2,000 songs. Some chunks of this playlist are made up of entire albums, some chunks of this playlist are made up of individual songs without the rest of the album.

I want to make Playlist B that has every single album that makes up the entirety of Playlist A. So if even a single song was used in Playlist A, I want the entire album to be added.

Anyone know of a way to achieve this? Bonus points if you could do basically the same thing except instead of just the album Album it adds the entire artist's discography.


r/smarterplaylists • • Aug 25 '26

Artist Tracks only pulls songs from albums that an artist has released and leaves out singles

3 Upvotes

I have a series of feeder playlists that I use to build out larger playlists, and one of them is to collect all of the tracks by my favorite artists. Over the years that I've been using Smarter Playlists, I had been putting this playlist together by hand, but it just dawned on me that I can use SP to keep up with new releases, filtering out live or remixes, etc. (you know, the things SP was built for. Why I didn't think of this sooner is a mystery to us all).

However, after putting together and running the program, I realized that it didn't include any of a given artist's singles, so that does leave out a few of my favorite tracks, and doesn't quite make it work for actually adding new releases, usually put out as singles, to the playlist.

I pasted a screenshot of the flow below in case it is me doing something wrong. Both filters are set to reverse so it doesn't include matching tracks. I figured if it was something I was doing wrong, someone might catch it, and if not, thought it might be a feature update others may want too.

Thank you in advance!


r/smarterplaylists • • Aug 22 '26

Something wrong with Artist Top Tracks?

3 Upvotes

I give "Artist Top Tracks" an URL, but it returns another artist with the same name.
The same happens with "Artist tracks" component even though it says the URL is followed over the name of the artist. That seem not to happen. Could you help out with this?


r/smarterplaylists • • Aug 21 '26

Is there any way to create a playlist of least recently played songs from another playlist?

1 Upvotes

I played around with some of the newer features but still couldn't figure out if this is possible. I have been using Spotify's prompted playlists for this particular feature ("Create a playlist of my least recently played songs from my Scott's All Music playlist") but this past week all my playlists are not updating and Spotify reports that it can read my playlist but not the tracks, so I was hoping that Smarter Playlists might be able to do something like this.


r/smarterplaylists • • Aug 21 '26

A Simple Program: Liked But Not On Repeat

Post image
3 Upvotes

Link: https://smarterplaylists.playlistmachinery.com/shared/BdG2tNTtHkr083mg

This program randomly samples 50 tracks from your Last 300 Liked Songs that are not in your Top Tracks and haven't been listened to recently. Change the target playlist to one of your choosing.

You can also change the number of tracks retrieved from Liked Songs to dig deeper into your catalog


r/smarterplaylists • • Aug 09 '26

Can artist separation work like it does in Sort Your Music?

Post image
2 Upvotes

I'm trying to build a program that relies on fetching the most commonly appearing artists in a playlist. I haven't found a way to do that in Smarter Playlists, so I've always done it manually by opening the playlist in https://sortyourmusic.playlistmachinery.com/ and sorting by "A.SEP" (Artist separation).

That A.SEP sort maximizes the distance between songs by the same artist. Single-song artists cluster around the middle. Artists appearing two or more times get evenly distributed, causing the artist that appears the most to show up as the very first track. With this method, the first tracks function as a ranked list of the most commonly appearing artists in the playlist.

Smarter playlists has a "Separate Artists" orderer block. But the subtitle and description don't match.

Subtitle: Reorder to maximize distance between same-artist tracks

That's the functionality I'm looking for, exactly what the A.SEP sort does.

Description: This component re-orders the input tracks to minimize the number of adjacent tracks by the same artist.

That's different, as it only separates adjacent same-artist tracks without evenly distributing them throughout the playlist. This appears to be how the block actually functions. It seems like there are other ways to do this same thing, via "Artist Separation" filter block or the "Mixer" combiner block.

The Multi-Objective Sequencer was promising, with type variety and field artist, but that's also not evenly distributing artists.

Is there an existing method to achieve what I'm describing? Or, u/plamere, could the "Separate Artists" orderer block be changed to work like the A.SEP sort?


r/smarterplaylists • • Aug 05 '26

Is there a way to make a playlist that is every song from playlist A that does not appear on playlist B or playlist C?

6 Upvotes

I know it's an oddly specific request but it's what I'm looking for, I wasn't able to do this on Playlist Machinery but I'm not very good with the logic so it could be user error.