{
  "$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?"
}