Skip to content

GhostQ v1.1.0

Choose a tag to compare

@T04435 T04435 released this 22 Oct 09:14
· 15 commits to main since this release

GhostQ v1.1.0, live at https://ghostq.xyz. Everything that has gone live since v1.0.0, now tagged: real cities, the artist's own voice, and a vocals line that can rap.

What's new

  • Live at ghostq.xyz. Songs, their research and their sung MP3s are saved in Neon (Postgres plus Object Storage), so share links and the Library survive restarts.
  • Real cities. The crowd city now comes from Qloo's world heatmap: the most popular of the fans' top 30 areas, zoomed in, and named by OpenStreetMap. The old list of 17 cities is gone. When Qloo has no location data, the city question searches any city through Qloo.
  • The artist's own voice. Where the artist is from sets the language, slang and images; the crowd sets what the song is about. The artist's own Qloo themes, styles and influences shape the song too.
  • Vocals from the artist's data. The singer line has one to three voices, each with a gender, and rap, sung or both, pre-filled from the artist's data. Change it before singing, or pick Instrumental. With two or three voices, the verses take turns and the chorus is sung together.
  • Write another, or a new artist. Two buttons under every song. The brief folds into a summary line, and the story field now reads "What's it about? (optional)".
  • Plain errors when singing is blocked. Google Lyria sometimes blocks a harmless song under its content policy. GhostQ now says so plainly and offers Try again.

Fixes

  • An artist Qloo doesn't know is no longer matched to Qloo's top search result. The run asks for the sound instead.
  • Songs written before 22 Oct read their rap or sung from their saved Qloo tags.
  • On Vercel, the AI Gateway counts as configured (it authenticates per request), so production no longer reports a missing key.

How GhostQ uses Qloo

  • /search, pinned by the Spotify id, finds the artist and their own tags.
  • /v2/insights with urn:heatmap over the world, then zoomed into the strongest area, finds where the fans are. urn:demographics gives the age skew.
  • /v2/insights with urn:tag (themes, styles, genres), urn:entity:artist, urn:entity:movie, urn:entity:book and urn:audience, filtered by the crowd's place and ages, gives the song's subjects, sound and imagery.
  • /search for localities answers the city question. /v2/tags semantic search turns your own words into Qloo tags when Qloo doesn't know the act.

Known limits

  • There are no rate limits or spend caps yet.
  • When an artist is on Spotify but not on Qloo, GhostQ asks for their sound instead of reading their Spotify catalogue.
  • Where the artist is from, and their voices, still read MusicBrainz first. Qloo should come first wherever it has the data.
  • Lyria's content filter can still block a song; a retry often passes.

Under the hood

  • Commits follow Conventional Commits, enforced by a commit-msg hook. pnpm release-notes drafts notes from them.

Setup and keys: README. What's next: ROADMAP.md.

Licence: MIT.