Every Noise at Once

@everynoise.bsky.social

everynoise.com and associated curiosity; see also @glennmcdonald.bsky.social

If you use NRbG with a Development Mode API key, things are supposedly about to get bad for that. If you're interested in alternatives, see the bottom of the page for a group you could join to discuss such things.

Presumably NRbG and Curio are now broken for newly created Spotify API keys. Due to the same petty new restrictions to the API I can't create a new API key myself, and thus can't even try them that way. But other people report hitting 429s and getting locked out almost immediately.

Planning ahead for the end of the year, which is STILL A MONTH AWAY: a thing for comparing a genre capsule for your year in music to a friend's. (And yes, in my test case, my "friend" is myself from another year.)

Sometimes I come across a very long playlist and I want a quick sense of how my own listening intersects with it. There are lots of ways to quantify this, but here's one of them in Curio query form (you can copy and paste the query from the alt-text):

?28pRQNZyF8cHagMgrpLBOR.other playlists.tracks
/my artist=(.artists:@1.id.artists)
||apoints=(.my artist.counts.points...._,(1),total),alignment=[=apoints*count]#alignment

People complain about Spotify's shuffle mode, and I never listen on shuffle so I don't care, but if you do, you can make your own in Curio: tracks....shuffle/artist;.1:@<=100 Run that on the query page, and then save the results as a playlist.

If you want to scrutinize algorithmic playlists Spotify makes for you, you can copy their tracks into normal playlists and then use Curio to run queries on those. E.g.: playlists:~<[DW 2025-06-27].other playlists .tracks.(.artists:@1).other artists /label=(.artist catalogs.catalog.label)#count

Screenshot of my playlist list showing:
 DW 2025-06-27 Synthwave   30
 DW 2025-06-27 Alt   30
 DW 2025-06-27 Pop   30
 DW 2025-06-27 J-Pop   30
 DW 2025-06-27 Metal   30Screenshot of my Curio query page, showing this query:

playlists:~<[DW 2025-06-27].other playlists.tracks.(.artists:@1).other artists
/label=(.artist catalogs.catalog.label)#count

returning results like

283	label	count↓	of
1	Independent	3	of [...3]
2	Art Gates Records	2	of [...2]
3	Artistfy Music	2	of [...2]
4	FRIENDSHIP.	2	of [...2]
5	QOOLONG	2	of [...2]
6	recordJet	2	of [...2]
7	1964251 Records DK2	1	of [Anteeter]
8	2019 We are Suburban	1	of [Rebecca Lou]
9	2023 maddy irene ©️	1	of [maddy irene]
10	2023 Wormholedeath Records	1	of [Conspiracy of Blackness]
11	2074559 Records DK2	1	of [Re:O]
12	2080792 Records DK	1	of [DIGITAL LOVE]
13	210485 Manhatten Discs	1	of [DIGITAL LOVE]
14	2285049 Records DK	1	of [Crimson Crisis]
15	3105988 Records DK	1	of [Caldera]
16	3151900 Records DK2	1	of [The Hunt]
17	3304016 Records DK	1	of [DJ MIX-ICON]
18	3677236 Records DK2	1	of [Queen of Dreams]
19	3947540 Records DK2	1	of [DIGITAL LOVE]
20	5880853 Records DK2	1	of [Diamond Riot]
21	655386 Records DK	1	of [Gone Are the Days]

Here, for example, is ?? in a Curio query that gets a playlist and some albums, annotates the track, album and artist overlaps between them (in that order of priority), and flags the tracks in each album that were previously released (by that artist) before their album appearances.

|artistkey=>(.artists:@1.id),
 songkey=>(....artistkey,name,concatenate),
 albumkey=>(....artistkey,(.album.name),concatenate)

?(6tHWkiFaXkuGFGrA5BGjkw.other playlists/),
 (4NDg5ffB2LRsI64Ojj979x,2KcDTzr3qk1nL5KClxHAUt.other albums
  ??old songs=(
    .(??this .artists:@1.artist catalogs.catalog:release_date<(this.release date))
    .tracks/id=(.songkey)
  )
  ||<tracks,old=(.songkey.old songs)
 /)
||<of,<tracks,artistkey=(.artistkey),songkey=(.songkey),albumkey=(.albumkey)

??songindex=(/id=(.of.tracks.songkey):count>1||match=~track)
??albumindex=(/id=(.of.tracks.albumkey):count>1||match=~album)
??artistindex=(/id=(.of.tracks.artistkey):count>1||match=~artist)
|<of,<tracks,
  matchsong=(.songkey.songindex),
  matchalbum=(.albumkey.albumindex),
  matchartist=(.artistkey.artistindex),
  match=(.matchsong;matchalbum;matchartist.match)
DACTAL.org@dactal.org · last yr.

The new ?? label operation has the same labeling options as a ? start operation, but relative to, and without changing, the current list: tracks|others=(??this .artist.tracks:-(this)) This replaces the more limited special-casing of "=_" in starts: tracks|others=(?this=_ .artist.tracks:-(this))

Today's tiny DACTAL tweak that probably affects nobody: in an aggregation, semicolons explicitly identify aggregators. So this query is a count of counts; the first "count" is a property (of groups), the second "count" is the aggregator. tracks/artist...count;count