{
"$type": "site.standard.document",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://plyr.fm"
}
],
"index": {
"byteEnd": 52,
"byteStart": 45
}
}
],
"plaintext": "three (related) new features just dropped on plyr.fm!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "recommended tracks for playlists"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "recommended tags for tracks"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 40,
"byteStart": 28
}
}
],
"plaintext": "semantic search for tracks (experimental)"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "all fundamentally powered by the same thing, audio embeddings!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://tangled.org/zzstoatzz.io/plyr.fm/blob/main/docs/internal/backend/playlist-recommendations.md"
}
],
"index": {
"byteEnd": 42,
"byteStart": 38
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://huggingface.co/docs/transformers/en/model_doc/clap"
}
],
"index": {
"byteEnd": 77,
"byteStart": 73
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://modal.com/"
}
],
"index": {
"byteEnd": 86,
"byteStart": 81
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://turbopuffer.com/"
}
],
"index": {
"byteEnd": 103,
"byteStart": 92
}
}
],
"plaintext": "read more about how this works in the docs, but essentially i am running CLAP on modal with turbopuffer to store embeddings to power recommended tracks and semantic search"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://replicate.com/mtg/effnet-discogs"
}
],
"index": {
"byteEnd": 29,
"byteStart": 15
}
}
],
"plaintext": "and i am using effnet-discogs to do recommended tags for tracks."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "recommended tracks for playlists"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "when editing a playlist, a set of recommended tracks will appear based on the tracks in the existing playlist"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "for example, take this playlist that contains spoken word prayer, entirely in Portuguese:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.iframe",
"height": 219,
"url": "https://plyr.fm/embed/playlist/d171d9be-0111-430b-8e62-619ef45a692e"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://plyr.fm"
}
],
"index": {
"byteEnd": 38,
"byteStart": 31
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 76,
"byteStart": 69
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#didMention",
"did": "did:plc:rqbqpaaluty5v47jwciowpik"
}
],
"index": {
"byteEnd": 168,
"byteStart": 155
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://plyr.fm"
}
],
"index": {
"byteEnd": 199,
"byteStart": 192
}
}
],
"plaintext": "since all Portuguese prayer on plyr.fm is in this playlist, the most similar tracks are other (Public Domain) audiobooks excerpts that've been uploaded by @pyxorium.com - the heaviest user of plyr.fm :)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"aspectRatio": {
"height": 550,
"width": 1316
},
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreifftb5a3i6wxpzirunkkmra3mxm2f4rg6snfeopkgrdff4mfjyaqy"
},
"mimeType": "image/png",
"size": 121609
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "the current implementation works a bit differently depending on the number of tracks in the playlist to extend:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://labelbox.com/blog/how-vector-similarity-search-works/"
}
],
"index": {
"byteEnd": 23,
"byteStart": 18
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
],
"index": {
"byteEnd": 33,
"byteStart": 30
}
}
],
"plaintext": "just one: just do top_k where k=3 on the one track"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.elastic.co/docs/reference/elasticsearch/rest-apis/reciprocal-rank-fusion"
}
],
"index": {
"byteEnd": 39,
"byteStart": 36
}
}
],
"plaintext": "2-5 tracks: top_k on each track and RRF on the result"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "6+ tracks: K-means into <3 centroids, then RRF on centroids"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "\nhere's a video demo!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreiftbbkzusdmmrvwx44zqwsrxytssmatyx4dztsq2mp6di6z2go7qa",
"uri": "at://did:plc:vs3hnzq2daqbszxlysywzy54/app.bsky.feed.post/3meopiwuqdk23"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "recommended tags on tracks"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "at track upload time, you can select an option to accept auto-suggested tags\n"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"aspectRatio": {
"height": 84,
"width": 670
},
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreiflct2idq2wzrz5tymyfoini32r6djkz7i5qfnf2kfuukkvxn4czq"
},
"mimeType": "image/png",
"size": 12987
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "or instead in the track edit modal, you are presented relevant tags:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"aspectRatio": {
"height": 902,
"width": 1498
},
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreiatidoga4mg27sp57jkk6jhxjzyk2gi225v5gtk7x7njqy7cpw5qq"
},
"mimeType": "image/png",
"size": 114759
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://replicate.com/mtg/effnet-discogs"
}
],
"index": {
"byteEnd": 38,
"byteStart": 24
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
],
"index": {
"byteEnd": 117,
"byteStart": 84
}
}
],
"plaintext": "tracks are processed by effnet-discogs in the background on upload or on-demand via GET /tracks/{id}/recommended-tags. predictions (genre tag + confidence score) are cached keyed on audio content because someday i'm going to want to add support for swapping out the audio file for a given track you've already uploaded."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "another video demo!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreicsrdrgf3n2tvhgrbbqgo2wh5uwxubav6eyrh7zy6sww2ugjq66u4",
"uri": "at://did:plc:vs3hnzq2daqbszxlysywzy54/app.bsky.feed.post/3mec76autts2x"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 40,
"byteStart": 28
}
}
],
"level": 2,
"plaintext": "semantic search for tracks (experimental)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
],
"index": {
"byteEnd": 19,
"byteStart": 12
}
}
],
"plaintext": "hit 🔎 or Cmd + K to try it out"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"aspectRatio": {
"height": 974,
"width": 1200
},
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreicl6sbhgqsv7tv3jlwd7yp2zw7i57pzsr3s6y6m2cj7dv4fpj63aa"
},
"mimeType": "image/png",
"size": 174104
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "results here are not as good as i want yet. still working on this"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "as such, this is behind a per-user feature flag. if you'd like to try it and offer feedback, please lmk and i'm happy to open it up to you."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 24,
"byteStart": 0
}
}
],
"level": 2,
"plaintext": "listen to the changelog!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "mood search and auto-suggesting tags (and more)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.iframe",
"height": 165,
"url": "https://plyr.fm/embed/track/671"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "recommended tracks for playlists (and more)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.iframe",
"height": 181,
"url": "https://plyr.fm/embed/track/677"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#didMention",
"did": "did:plc:xbtmt2zjwlrfegqvch7fboei"
}
],
"index": {
"byteEnd": 64,
"byteStart": 51
}
}
],
"plaintext": "if you've any questions or concerns, please hmu at @zzstoatzz.io!"
}
}
],
"id": "019c50be-0ec0-7dd0-9b29-56bc7f4fa083"
}
]
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreifftb5a3i6wxpzirunkkmra3mxm2f4rg6snfeopkgrdff4mfjyaqy"
},
"mimeType": "image/png",
"size": 121609
},
"description": "sounds like a bunch of semantics",
"path": "/3meorjdln6s2w",
"publishedAt": "2026-02-12T19:55:21.308Z",
"site": "at://did:plc:vs3hnzq2daqbszxlysywzy54/site.standard.publication/3m5cmn65tvk2j",
"tags": [
"atproto",
"music",
"recsys",
"modal",
"clap",
"embeddings"
],
"title": "what's next?"
}