The platform

Release notes.

Updates to Harmonic Wave, newest first.

Latest: v0.11.534 ·

v0.11.534Host voices on ElevenLabs v4

Host narration and voice previews now use ElevenLabs' newest speech model, Eleven v4.

  • New and regenerated narration is made with Eleven v4. Existing narration keeps playing as it is until a line is edited or regenerated.
  • Voice previews are made with Eleven v4.
  • Voice settings now show Stability, Similarity and Speaker boost. Style and Speed are no longer shown: Eleven v4 has neither.
Link to this release ↗
v0.11.533Campaign reports show devices

Campaign reports now also break each day's delivery down by device, such as phones, computers, tablets and TV screens.

  • Each campaign's daily views, clicks, cost and conversions are now also shown split by the device they were served on.
  • Past days are filled in the next time a campaign's report is collected.
  • The existing daily totals are unchanged.
Link to this release ↗
v0.11.532Campaign reports show where ads ran

Campaign reports now break each day's delivery down by where the ads ran, such as YouTube, Discover or Gmail, so campaigns can be compared like for like.

  • Each campaign's daily views, clicks, cost and conversions are now also shown split by where the ads were served.
  • Past days are filled in the next time a campaign's report is collected.
  • The existing daily totals are unchanged.
Link to this release ↗
v0.11.530Campaign reports include new subscribers

Campaign reports now show how many YouTube channel subscriptions each campaign brought in, day by day, alongside views, clicks and cost.

  • Each campaign's daily report now includes the channel subscriptions that followed its ads.
  • Subscriptions are counted whether or not the campaign was set up to aim for them, so they no longer hide outside the conversions figure.
Link to this release ↗
v0.11.529Saving clears narration for removed media

When you swap or remove media in an experience, saving the experience now removes the narration recorded for the media that left, so the narration badge no longer stays red after you save.

  • Saving an experience removes narration clips for media or collections that are no longer in it.
  • The narration badge returns to normal after that save instead of reporting a clip queued for removal again.
Link to this release ↗
v0.11.528Voice library samples show when they are loading

Playing a voice from the voice library now pulses the play button until the sample starts, like every other play button, instead of showing the stop button straight away.

  • Voice library play buttons pulse while a sample loads and turn to stop once it plays.
  • Stopping a sample that is still loading no longer lets it start playing afterwards.
Link to this release ↗
v0.11.527Waitlist consent and one-click unsubscribe

Joining the waitlist now asks for permission to email you when Harmonic Wave opens, and every waitlist email can carry a link to unsubscribe.

  • The waitlist option on the contact form includes a box to agree to launch and update emails.
  • A new unsubscribe page lets anyone on the waitlist stop these emails with one click.
  • Unsubscribing covers every waitlist signup made with that email address.
Link to this release ↗
v0.11.526Pausing an experience takes its host off air

You can now edit a host once every experience using them is paused or in Draft. A host stays locked only while an audience can reach them through a published or private experience.

  • A host whose experiences are all paused or in Draft can be edited.
  • A host on any published or private experience stays locked, as before.
  • Unpausing re-voices the experience's narration, so listeners hear the updated host.
  • The On Air note and hover now say to pause the experiences or move them to Draft.
Link to this release ↗
v0.11.525Days with no ad delivery are recorded, and account deletion removes saved evidence

A campaign day with no delivery no longer leaves a gap that stops an experiment's results from being locked in. Deleting an account now also removes its saved evidence snapshots.

  • Once a day has ended, a campaign day with no delivery is recorded as zero instead of missing.
  • An unfinished or not-yet-collected day is never counted as zero.
  • Deleting an account removes its saved evidence snapshots along with its experiment records.
  • Experiment windows and report ranges are limited to one year.
Link to this release ↗
v0.11.524Experiment reads wait for the full flight, and account deletion is complete

An experiment's results can no longer be locked in from only part of its run. Deleting an account now also removes its experiment plans and saved results.

  • Locking in an experiment's evidence now requires results for every day of its run and lists any missing days.
  • Deleting an account removes its experiment plans and saved results along with its other advertising records.
  • Campaign and experiment messages no longer mention spending approvals that were retired earlier.
  • Guidance when an earlier campaign switch-on could not be confirmed is clearer about checking the campaign first.
Link to this release ↗
Older releases 226 versions
v0.11.523Campaign performance reports collect again

Collecting daily results for a live Google Ads campaign was failing because Google renamed one of the view metrics. Reports now collect impressions, clicks, cost, views and conversions again.

Link to this release ↗
v0.11.522Upload boxes stay highlighted while you drag a file over them

When dragging a file onto an upload box, the highlight could switch off as the file passed over the box's icon or text. It now stays on for as long as the file is over the box.

Link to this release ↗
v0.11.521Posters are protected the same way as banners

Saving an experience from a form that was opened before its poster existed could clear the poster. A save now keeps the stored poster unless you remove it yourself.

Link to this release ↗
v0.11.520Generated banners are no longer lost when you save an experience

If an experience's banner finished generating while its edit form was open, saving the form could remove the banner. The banner is now kept, and it is only removed when you remove it yourself.

Link to this release ↗
v0.11.519Standard Host voices play again

New voice clips for Standard Hosts, such as voice previews and fresh narration, were failing to generate after a change at our voice provider. They generate and play again. Placeholder labels on images still being created are now centered.

Link to this release ↗
v0.11.518Campaign budgets are set in Google Ads, with no extra approval step

Switching a campaign on no longer needs a separate spending approval or monthly limit in Harmonic Wave. Each campaign's daily budget and dates are set in Google Ads, and Google keeps it within them. Campaigns can still be switched on one at a time, as a group, or at a set time, and each is still checked against its plan before it goes live.

Link to this release ↗
v0.11.517Approve and switch on a whole group of campaigns in one step

Every campaign in an experiment or stage can now be approved in one step and scheduled to switch on in another, instead of one campaign at a time. The approved amount for each campaign is worked out automatically from its daily budget and dates, and the whole group must fit the month's spending limit or nothing is approved.

Link to this release ↗
v0.11.516Lock an experiment's verdict so it can always be reproduced

All the evidence behind an experiment's verdict can now be frozen in one step: the viewer retention for every variation and the ad delivery figures it was scored on. Scoring from the freeze gives the same answer every time, even after the ad platform revises its numbers.

Link to this release ↗
v0.11.515See each variation's delivery and spend in one place, and recognise campaigns by name

An experiment's delivery can now be collected and reviewed in one step, showing each variation's reach, views and spend with warnings for uneven delivery or overspend. Campaigns can carry a readable name alongside their reference. Experiment scoring now judges uneven delivery by reach against the true middle value, as the protocol specifies.

Link to this release ↗
v0.11.514Choose what a campaign optimises for, and switch campaigns on at a set time

A campaign plan can now name the conversion goals it may optimise toward; goals with nothing to count are refused, and the live campaign is checked against them. Campaigns can be scheduled to switch on at a chosen time, with every check re-run at that moment.

Link to this release ↗
v0.11.513Keep campaigns in step with changes made in Google Ads, and see what they optimise for

A change made to a prepared campaign's dates or budget in Google Ads can now be recorded as a new approved version once the live campaign is confirmed to match it exactly, so the campaign can be verified and managed again. A new view shows the conversion goals campaigns optimise toward, and flags a default goal that has nothing to count.

Link to this release ↗
v0.11.512Safer experiment launches

Campaigns meant for an experiment must start on or after the experiment's first possible day, measured on the ad account's own calendar. A campaign, or an experiment, can't be started while any of its ads is still under review or not approved.

Link to this release ↗
v0.11.511Agent tools accept structured settings sent as text

Tools that take a structured setting now also accept it when an agent sends it as text, provided it has exactly the expected shape. Anything else is still refused with a clear message.

Link to this release ↗
v0.11.510Set how an experiment will be judged before it runs

An experiment's success measure and decision rules can now be recorded before launch: which video each variation is, the point in each video to measure from, the result that counts as a win, and how much evidence is needed. Once signed the record cannot change, and results are measured and judged directly from it.

Link to this release ↗
v0.11.509Measure viewer retention at a point in the song, and lock the evidence

Retention for a video's paid viewers can now be read at chosen points measured from where its song starts, for example sixty seconds into the song, in a single request. The data behind a decision can then be locked, so later updates from YouTube cannot change a result that has already been read.

Link to this release ↗
v0.11.508See every ad's review status in one place

The campaign view now shows each ad's review and approval status from Google, including any policy that limits or blocks it, with a count across the account. Before a launch you can see at a glance whether every ad has been approved.

Link to this release ↗
v0.11.507Check a prepared campaign before it runs

A prepared, paused campaign can now be checked against its approved plan at any time, without starting it, and any setting that differs is named. Campaigns scheduled to start on the day they are created no longer read as a date mismatch.

Link to this release ↗
v0.11.506See exactly which videos, campaigns and experiments you're working with

Syncing a channel's videos now shows each video's title, privacy and length, not just a count. Two new account views list every campaign and every experiment in the connected Google Ads account, including ones created directly in Google Ads, with each experiment's arms, traffic split and campaigns.

Link to this release ↗
v0.11.504Compare up to four complete campaigns in one Google Ads experiment

A campaign experiment can now compare several complete campaigns that were each prepared and paused in advance, rather than only two versions of one campaign. Every campaign is checked against its approved plan before the experiment is created, before it is scheduled and again before anything is enabled, and what each one actually delivered is recorded separately.

Link to this release ↗
v0.11.503Google Ads request references kept for support

Google's reference for each Google Ads request is now kept with checks, refusals and failed reads, so any issue can be raised with Google support precisely.

Link to this release ↗
v0.11.502Google Ads experiment arms are confirmed from what Google can report

Google does not let applications read which video each experiment version swaps before the experiment is scheduled. Experiment arms are now confirmed from the details Google does report, and each version's video is confirmed on its own campaign once scheduled, before anything can be enabled.

Link to this release ↗
v0.11.501Google Ads experiments read their arms the way Google allows

Experiment arm checks could not run because they asked Google for information it does not return. Arms are now checked using what Google does provide, and each test version's video is confirmed on its own campaign before anything can be enabled.

Link to this release ↗
v0.11.500Clearer reasons when a Google Ads experiment step cannot read from Google

When an experiment step stops because Google would not return the information it needs, administrators now see which part of the request Google objected to, so the step can be corrected quickly.

Link to this release ↗
v0.11.499Google Ads approval check recognises how Google stores audience targeting

Google Ads stores a campaign's audience targeting in an expanded form, which the pre-enable check was reading as a change. The check now recognises that exact form as the approved targeting, while still stopping any campaign whose targeting has really changed.

Link to this release ↗
v0.11.498Clearer reasons when a Google Ads campaign no longer matches its approval

When a Google Ads campaign's targeting at Google differs from what was approved, administrators now see the targeting Google actually holds beside the refusal, so the difference can be understood instead of only named.

Link to this release ↗
v0.11.497Fix for Google Ads location and language targeting

Google Ads video campaigns now set their country and language targeting where Google expects it for this campaign type, after Google's request check refused the previous placement. The targeting chosen is unchanged and is still confirmed before any campaign is enabled.

Link to this release ↗
v0.11.496Fix for Google Ads campaigns with audience targeting

Google Ads campaigns that target audience interests were being rejected by Google when checked, because one targeting setting was sent in the wrong place. It is now sent and confirmed where Google expects it.

Link to this release ↗
v0.11.495Clearer reasons when Google Ads refuses a request

When Google Ads refuses a campaign or experiment request, administrators now see which part of the request Google objected to, even when Google gives no error code. This makes a refused check quick to diagnose and correct.

Link to this release ↗
v0.11.494Google Ads audience targeting for administrators

Administrators can now target Google Ads video campaigns by audience interests and include people whose age or gender Google cannot determine, so paid tests can keep the same audience as earlier promotions. Every targeting choice is checked with Google before it is used and confirmed again before anything is enabled.

Link to this release ↗
v0.11.493Google Ads video experiments for administrators (preparation and checks)

Administrators can plan controlled Google Ads experiments that compare two to four versions of a YouTube video, check each step with Google before anything is created, and stop an experiment at any time. Nothing runs or spends without separate, explicit approval for every version being tested.

Link to this release ↗
v0.11.492Connect Google Ads and choose an account for each YouTube channel

Settings now has a Google Ads tab next to YouTube, and each connected YouTube channel can be tied to one of your Google Ads accounts. Connecting a channel now asks for everything needed to upload, publish and read analytics in one approval.

Link to this release ↗
v0.11.491YouTube promotion on Google Ads (preparation only)

Administrators can connect a Google Ads account and prepare YouTube promotions for review. Campaigns are prepared paused, and nothing can run or spend without a separate, explicit spend approval.

Link to this release ↗
v0.11.490Private uploads to connected YouTube channels

Administrators can upload a finished video to a connected YouTube channel. Every upload starts private, and making a video public is a separate, deliberately approved step.

Link to this release ↗
v0.11.489Record YouTube Studio figures beside automatic analytics

Figures that are only available in YouTube Studio, such as unique and returning viewers and promotion results, can now be recorded alongside automatically collected analytics, with a note of where and when they were read.

Link to this release ↗
v0.11.488Stored YouTube analytics records are kept safe from routine cleanup

Routine storage cleanup could have removed the original records kept alongside collected YouTube analytics. Those records are now recognised and kept for as long as the analytics they belong to.

Link to this release ↗
v0.11.487Video titles and links in YouTube analytics

YouTube analytics now show each video by its title with a link to watch it, instead of an unreadable video code.

Link to this release ↗
v0.11.486Automatic YouTube report collection

YouTube reach reports for enrolled channels are now collected automatically every day, so channel history builds up without anyone remembering to fetch it. Each channel is enrolled deliberately, and collection for one account never holds up another.

Link to this release ↗
v0.11.485Tidier administrative host tools

Browsing the host cast moves into the administrative pool reading tool, and creating a host now has a single dedicated tool. Nothing a host is or does has changed.

Link to this release ↗
v0.11.484Fewer, clearer administrative YouTube tools

The administrative YouTube tools are reorganised into four: two for channel connections and two for data, each split into reading and changing. Nothing they do has changed.

Link to this release ↗
v0.11.483Channel figures are kept as observations, not as a running total

Performance figures from a connected channel are now stored so they can be queried, with every reading kept exactly as it was received. YouTube revises figures for days afterwards, so a later correction never quietly rewrites what was seen at the time.

Link to this release ↗
v0.11.482Asking a connected channel for figures on demand

Performance figures for a connected channel can now be requested directly for a date range, answered immediately, alongside the daily files collected in the background.

Link to this release ↗
v0.11.481Reading back what has been collected, including what is missing

An administrator can read the report captures held for a creator, with a summary of which periods are present and which could not be collected. Reading never fetches anything.

Link to this release ↗
v0.11.480Collecting channel reports, and removing them with the channel

The Platform can now download and keep the report files a connected channel produces, each recorded with what it measures and the period it covers. Disconnecting a channel or deleting an account removes those files.

Link to this release ↗
v0.11.479Asking YouTube to start producing reach reports

An administrator can now see which standing report requests exist on a connected channel, and create one. YouTube produces nothing until such a request exists.

Link to this release ↗
v0.11.478Finding out what a connected channel can report

Groundwork for channel reporting: the Platform can now ask a connected channel which performance reports it offers, before anything is collected.

Link to this release ↗
v0.11.477Groundwork for connecting more than one service

Internal change with no difference to how the Platform behaves today. Connecting an account is now built as a shared mechanism with a small, well-defined part supplied per service, so a second service can be added without rebuilding the parts that keep credentials safe.

Link to this release ↗
v0.11.476YouTube leads the Integrations tabs, and the control you click is the one that responds

YouTube is the first tab under Integrations, and starting a connection now shows its progress on the link or button actually clicked.

Link to this release ↗
v0.11.475Connect a channel from the empty panel

When no channel is connected, the panel offers a connect link in the box itself rather than only in the header.

Link to this release ↗
v0.11.474Dismiss the YouTube result message

The message shown after connecting or disconnecting a channel can be closed.

Link to this release ↗
v0.11.473Connecting a channel no longer opens a second tab

Approving a channel at Google happens in the tab you are already in, and returns you to the same place, instead of leaving two dashboard tabs open.

Link to this release ↗
v0.11.472Remove a disconnected channel from the list

A disconnected channel can be cleared from the list instead of waiting for it to age out, and an unconfirmed withdrawal of Google access is reported separately so clearing the record cannot hide it.

Link to this release ↗
v0.11.471The channel list shows the spinner, not a line of text

While the YouTube channel list loads it shows the same spinning indicator used elsewhere in the dashboard.

Link to this release ↗
v0.11.470The channel list uses the same loading indicator as everything else

While the YouTube channel list is loading it now shows the standard loading indicator used across the dashboard.

Link to this release ↗
v0.11.469YouTube Channels

The heading on the YouTube panel in Integrations is capitalised.

Link to this release ↗
v0.11.468Reconnect and Disconnect read as links

The two actions on a connected channel are plain links rather than buttons, so the channel row reads as one block instead of a row of controls.

Link to this release ↗
v0.11.467The channel row puts its actions under the channel and its state on the right

Reconnect and Disconnect move beneath the channel identifier, the connection state moves to the right of the row, and the two panel buttons swap order.

Link to this release ↗
v0.11.466The YouTube channel actions move up beside the heading

Connect a channel and Refresh list now sit to the right of the YouTube channels heading, and the note about Google approval reads as part of the introduction rather than as a separate line below the buttons.

Link to this release ↗
v0.11.465The connected channel's picture is larger again

The channel picture on a connected YouTube channel goes to 64 pixels.

Link to this release ↗
v0.11.464A connected channel's picture is larger

The channel picture on a connected YouTube channel is bigger, closer in height to the channel name and status beside it.

Link to this release ↗
v0.11.463A connected channel shows its picture

The channel image on a connected YouTube channel was being blocked by the site's own content security policy and showed as a broken image.

Link to this release ↗
v0.11.462The empty YouTube panel keeps its message centred inside a left-aligned box

Refines the previous change: the box sits at the left of the panel, and the icon and message stay centred within it.

Link to this release ↗
v0.11.461The empty YouTube panel lines up with the rest of the panel

The message shown when no channel is connected starts at the same left edge as the heading, the buttons, and the text around it, instead of sitting centred in the middle of the panel.

Link to this release ↗
v0.11.460The YouTube panel says what connecting a channel actually does

Connecting a channel no longer describes itself as publishing. The panel states that approval happens at Google, that a channel can be disconnected at any time, and that connecting does not authorize publishing.

Link to this release ↗
v0.11.459The integration switch sits below the Settings tabs, not beside them

The ElevenLabs and YouTube switch in Integrations is now a small control of its own rather than a second row of tabs competing with the Settings tabs above it.

Link to this release ↗
v0.11.458One integration at a time, and approval opens in its own tab

Integrations settings now separates ElevenLabs and YouTube into their own tabs, and starting a YouTube connection opens Google's approval screen in a new tab rather than replacing the dashboard.

Link to this release ↗
v0.11.457A temporary shelf for files other services fetch

Files placed under temp/ in media storage are kept for seven days and then removed, instead of being swept as orphans within the hour.

Link to this release ↗
v0.11.456Both pictures say they are coming

While a Host is being made, the Style card shows a shimmer on the lifestyle shot as well as the portrait.

Link to this release ↗
v0.11.455Removing a Host puts it back on the shelf

Deleting your own Host returns it to the pool the same day instead of holding it for 60 days.

Link to this release ↗
v0.11.454Songs know their chords

Song media gains a Chords attribute beside BPM and Key, and catalog picks arrive with all three filled in.

Link to this release ↗
v0.11.453Modal buttons stand level

Cancel and its red sibling in confirmation dialogs now render at the same height.

Link to this release ↗
v0.11.437Downgrading clears the branding it paid for

Custom branding is removed on downgrade rather than hidden. Re-upgrading returns the ability to set colours, not the colours.

Link to this release ↗
v0.11.436Custom branding ends when the plan does

A custom theme set on Pro used to keep rendering after a downgrade. It now falls back to the Harmonic Wave defaults.

Link to this release ↗
v0.11.435Translucent colours work, and the default border is #1C232B

A colour pasted as rgba() saved and then did nothing. It now works on every colour field, not just the border.

Link to this release ↗
v0.11.434One set of brand colours, and the panel is it

The default colours were written in three places and two disagreed. The Branding panel's values are now the brand's, and the panel, the share page and the player all read them from one file.

Link to this release ↗
v0.11.433A slow render is no longer timed out by earlier retries

The time limit on a talking-head render counted everything since the request was made, including failed attempts and the waits between them. A render that was proceeding normally could be abandoned because of time spent before it started. The limit now measures the render itself.

Link to this release ↗
v0.11.432Talking-head renders name the uploaded file correctly

The uploaded source frame was referenced by the wrong label, so the provider rejected it. Corrected.

Link to this release ↗
v0.11.431Talking-head renders send the files instead of linking to them

The first live render failed because the provider could not fetch the images it was pointed at, even though the links worked. The files are now sent directly, which removes the whole problem and means nothing has to stay reachable while a render is queued.

Link to this release ↗
v0.11.430One place asks for an angle

Two parts of the dashboard built their own request for a new angle. They have been merged into one, so a fix cannot land on a path the button never takes.

Link to this release ↗
v0.11.429The Signature set cannot appear in the set picker

The band was inventing a set from any job it saw queued, including one queued against the Host's press kit.

Link to this release ↗
v0.11.428The Generate button sends the set it named

The dialog's Go button took a different code path than the one fixed in 0.11.427, and that path sent no set at all.

Link to this release ↗
v0.11.427The set you picked is the set that gets shot

Choosing a set no longer expires. A background refresh was resetting the selection every twelve seconds, so an angle requested for one set could land in another.

Link to this release ↗
v0.11.426Costly renders ask before they spend

A render could quietly replace a host's trained look, or run against a very long piece of narration, without anyone being asked. Both now stop and say what it would cost and what it would replace, and go ahead only once confirmed. A short first render is unchanged and asks nothing.

Link to this release ↗
v0.11.425The voice you audition is the voice that narrates

The host preview and the saved narration built their voice direction slightly differently, so in principle you could audition one read and ship another. They now build it identically, and a check keeps them that way.

Link to this release ↗
v0.11.424Editing a host's voice refreshes the narration that used it

Rewriting a host's accent or voice description changed the preview but not the narration already saved — the saved clips looked unchanged, because how a voice is directed was not something the check looked at. It is now, so the affected clips refresh on the next regeneration instead of quietly serving the old read.

Link to this release ↗
v0.11.423Narration sounds like the host you auditioned

A host with an accent read their preview in that accent and then narrated the experience without it. The preview and the narration were built by different paths, and only one of them was passing along the description that tells the voice how to speak. Regenerated narration now carries it too.

Link to this release ↗
v0.11.422Talking-head renders find the frame they were asked for

The frame picker looked for a naming style the stored images do not use, so it reported that a host had no usable frames when every one of them was there. It now matches what is actually stored, and never picks the empty-room plate that sits beside each angle.

Link to this release ↗
v0.11.421Check on a single piece of generated work, not just the queue

The queue view answers whether everything is healthy, which is a different question from what your own request is doing. Work that takes several minutes looked identical to work that had quietly stalled. You can now ask about one job and get the step it is on, when it will next be picked up, and where the finished file went.

Link to this release ↗
v0.11.420Narration audio is labelled with the format it actually is

Different voices record in different audio formats, but every narration clip was saved and served as though it were the same one. Players are forgiving enough that this mostly went unseen — anything that trusted the label rather than the file was being told the wrong thing. Clips now carry the format they were recorded in.

Link to this release ↗
v0.11.419The SEO card shows the real share image without opening the panel

The SEO card kept showing the Harmonic Wave default until you opened the SEO panel, which made it look as though no share card existed. The card was fine; the editor asked for it once, before it had finished building, and never asked again.

Link to this release ↗
v0.11.418Angle counts line up down the set picker

The counts were centred as whole phrases, so the numbers landed in a different spot on every row. The number and the word now hold their own columns and read straight down.

Link to this release ↗
v0.11.417The set picker fits its angle counts

An eight-character count was enough to fold a set name onto two lines. The menu is wider, the name cannot wrap, and the counts sit centred in a column of their own.

Link to this release ↗
v0.11.416The set picker says how many angles each set has

Choosing a set used to mean picking between a small plate and a number. Each row now says how many camera angles the set holds, which is the thing that actually makes one set a different choice from another.

Link to this release ↗
v0.11.415Admin tooling for shooting a Host's sets and angles

Administrators can now shoot a new set, or add one more camera angle to an existing set, for any Host directly. Previously this could only be reached through an experience, so a Host in the shared pool could not be given a set at all.

Link to this release ↗
v0.11.414The voice note points at plans, not at a key you do not have

The Text-to-Speech panel used to answer "want a custom voice?" with "add an ElevenLabs key", which only helps if you already have an ElevenLabs account. For everyone else it now points at the plans page, and it calls the included voice the standard one rather than the free one.

Link to this release ↗
v0.11.413The set and angle waits match the Create Host layout

The dialog shown while a set or an angle is being made now uses the same arrangement as creating a Host: the turning steps first, then the progress bar, then the note about closing it. Each step is labelled with one word so the three sit level.

Link to this release ↗
v0.11.412Shooting an angle shows its third step

The wait for a new camera angle now names all three pieces it is working through rather than stopping at two.

Link to this release ↗
v0.11.411Waiting for a set or an angle shows what is being made

Building a set or shooting an angle now shows the same turning steps as creating a Host, naming each piece as it is worked on. The wording no longer suggests you come back to the dialog, because it closes itself and the set band takes over.

Link to this release ↗
v0.11.410Set images are named landscape and portrait

Generated set images were filed under names that stated an exact resolution they did not actually have. They are named for the frame instead: landscape and portrait. Existing images keep their names and are unaffected.

Link to this release ↗
v0.11.409Add Media by Link matches the catalog browser

The divider above the buttons in Add Media by Link stopped short at both sides while the same footer in the catalog browser ran the full width. They match now.

Link to this release ↗
v0.11.408Generated images record their size

Generated artwork is now stored with its pixel dimensions, so the platform knows the real shape of every image it holds rather than assuming.

Link to this release ↗
v0.11.407The waiting plates match the pictures that replace them

While a camera angle was being shot, the placeholder was a different width from the photograph that landed in its place, so the row shifted. They match now.

Link to this release ↗
v0.11.406The Add Key dialog fits its content

Add Key was as wide as the dialogs that hold two cards, and its label field stopped short of the right edge. It is narrower now and the field runs the full width.

Link to this release ↗
v0.11.404A Host keeps the same outfit across both frames of a shot

The landscape and portrait versions of the same camera angle could come back with different trousers. The whole outfit now carries between them.

Link to this release ↗
v0.11.403The Add Key dialog looks like every other dialog

Add Key had no close button and a differently styled title. It now uses the same header as the rest of the dashboard's dialogs.

Link to this release ↗
v0.11.402A camera angle shows itself being shot

Adding an angle to a set that was already finished left the set looking untouched until the shot landed minutes later. The new angle now appears straight away in its slot, focused, showing it is being made.

Link to this release ↗
v0.11.401Dialogs behave the same way across the dashboard

Dialogs were sized, shown and hidden three different ways depending on which one you opened. They now share one behaviour. The Add Key dialog matches the button that opens it, and adding a camera angle no longer shows a working state on the music bed, which it does not touch.

Link to this release ↗
v0.11.400Every dialog's buttons are the same size

Buttons in the generate dialogs were noticeably smaller than the ones in Create Host, because different dialogs were picking up different sizing. They all match now.

Link to this release ↗
v0.11.397Fixed: an empty dialog stuck on the dashboard

A Generate Sets & Angles dialog appeared over the dashboard and would not go away. It is hidden until you open it.

Link to this release ↗
v0.11.395The Generate dialog matches the rest of the dashboard

The set and angle picker now uses the same dialog as the other generate screens: the Host's name in a left-aligned title with a close button, the two cards side by side, and Cancel and Go in the bottom right.

Link to this release ↗
v0.11.394Choosing what to generate is now a proper picker

The Generate dialog on the set band presents two cards, each with an icon and a short explanation of what it makes and roughly how long it takes. Pick one, then press Generate.

Link to this release ↗
v0.11.393Generate asks whether you want a new set or a new angle

The Generate control on the set band now asks which you want: another room for your Host, or one more camera position inside the room you already have. Either choice shows a progress bar while it starts, and the band takes over from there.

Link to this release ↗
v0.11.391The narration warning stays in its own row

In the narration panel the explicit-language warning appeared under the whole panel instead of inside the row it belonged to, and it stayed on screen after switching tabs. It now sits inside the row below the player, and goes away with the row.

Link to this release ↗
v0.11.390Narration panel warns too, and failed saves say why

Editing a liner in the narration panel showed no explicit-language warning while typing. It does now. Separately, saves from that panel could fail on the server and still report success, and a failure that was reported gave a generic message instead of the reason. Both fixed.

Link to this release ↗
v0.11.389The collection liner warns as you type too

A few fields were not showing the explicit-language warning while typing, including the collection Liner and the Host voice description. They were still refused on save, but nothing said so at the field. They warn now.

Link to this release ↗
v0.11.388"Bloody" is fine too

The explicit-language check was refusing "bloody", which broke writing about real records. It no longer is.

Link to this release ↗
v0.11.387"Hell" is fine to say on air

The explicit-language check was refusing "hell", which is ordinary broadcast speech and, on a music platform, catalogue as well. It no longer is.

Link to this release ↗
v0.11.386Field warnings sit below the field

On fields that carry a button inside them, such as the Liner, the explicit-language warning appeared inside the field's border instead of below it, and the field showed no red outline. Both now match every other field.

Link to this release ↗
v0.11.385Shorter, clearer messages that fit on screen

A long notification stretched across the whole window as one unbroken line. Notifications now wrap, and the explicit-language message is short enough to read at a glance: what is wrong, and where. An experience description is also no longer described as something a Host says, since nobody reads it aloud.

Link to this release ↗
v0.11.384Explicit language is flagged as you type, everywhere public

The check used to happen only on save, so a field would accept a word and refuse it later, which read as being allowed. Fields now mark themselves as you type. The same check also covers public descriptions, bios and SEO text, not just narration. Lyrics, transcripts and titles are untouched.

Link to this release ↗
v0.11.383Every Pro prompt offers a way to act on it

Some Pro feature prompts only had an OK button, leaving nothing to do about them. All of them now carry View Plans alongside OK, matching the limit dialogs.

Link to this release ↗
v0.11.382Every media type's narration is covered

The explicit-language check missed the prose fields on Sound Effect and the four other-media types, which had no covered narration field at all. Every media type is now covered, and the coverage is checked automatically so a new type cannot arrive without it.

Link to this release ↗
v0.11.381Hosts stay clean on air

Anything spoken aloud in a Host's voice -- liners, station IDs, sign-offs, the story before a track -- is now checked for explicit language when you save it, and refused with a message naming the word. Your media is unaffected: an explicit track is still explicit, and lyrics are never filtered.

Link to this release ↗
v0.11.380Generating a set is a Pro feature

Building a new set for your Host now carries the same Pro badge and upgrade prompt as generating scripts. Free accounts see what the feature is and what it costs rather than a button that quietly fails.

Link to this release ↗
v0.11.379The music bed keeps showing the set is still being made

A music bed is ready long before the rest of a set, so it sat there looking finished beside artwork that was still arriving, which read as a set that was done apart from some pictures. The bed now stays in the working state until the whole set is finished, and stays playable throughout.

Link to this release ↗
v0.11.378A set being built says so in the set list too

In the dropdown you pick a set from, a set still being made showed a flat grey square, which reads as a set with no picture rather than one whose picture is on its way. It now shows the same working state the band does.

Link to this release ↗
v0.11.377A new set appears the moment you ask for it

Pressing Generate left you looking at the set you already had until the first piece of the new one finished, which could be most of a minute of nothing appearing to happen. The new set now stands up straight away and shows each piece arriving in place.

Link to this release ↗
v0.11.376The set band shows the set being built

While a set was being made the Generate control stopped spinning partway through and went back to looking pressable, and the band kept showing the set you already had. It now spins until the set is done, refuses a second press, names the active set in its heading, and lands on the set being built so you can watch it arrive.

Link to this release ↗
v0.11.375The share-image slot shimmers across the whole slot

While a share card was being made, the working indicator on the slot rendered as a small square in the top-left corner instead of sweeping across it. It now covers the slot, matching every other slot that is waiting on artwork.

Link to this release ↗
v0.11.374Finish says Finish

The last button in the setup flow read "Go to the final step", which described where the wizard was going rather than what you were doing. It says Finish, in both the first-run and create-an-experience flows.

Link to this release ↗
v0.11.373Preview buttons and a clearer wait for new artwork

Starting a second preview while one was already playing left the new button looking inert, even though it was loading. It now shows the same working state as the first. On the dashboard home, a show whose artwork is still being made says so, instead of showing the stand-in image.

Link to this release ↗
v0.11.372Only the song you picked stays selected

Stepping back to the host screen and forward again made every song in the shelf look selected. Only the one you chose is highlighted now.

Link to this release ↗
v0.11.351Your host's picture shows while your experience is being built

On the final step of First Steps the host tile was blank while the song beside it showed its cover. The host's picture now shows throughout, using the same portrait you saw when you chose them.

Link to this release ↗
v0.11.350Media opens as a grid

The media library now opens in grid view like experiences, collections and hosts, so covers are visible at a glance. If you have already switched it to list, that choice is remembered and nothing changes for you.

Link to this release ↗
v0.11.347Preview plays on the first tap, and going back keeps your host

The preview button on a host card pulsed but stayed silent until you tapped it twice. Going back to change what you typed also threw away the host you had chosen and fetched a new set. Both are fixed, and the last button now says Done, because by then your experience is already built.

Link to this release ↗
v0.11.346Asking for a particular host now gets you one

Say you want a female host, or a warm southern one, and that is the host you are offered first. Asking for a man could previously return a woman, because the genre you had already been matched on counted for more than anything else you said.

Link to this release ↗
v0.11.345Hosts are matched on how they sound, and tapping one just selects them

Describe the host you want and we now match on each host's own voice and background, not only on the kind of show they present. Choosing a host no longer starts their voice playing: tap the card to choose, tap the play button to listen, the same way the song step works.

Link to this release ↗
v0.11.342Hosts are offered in the order that fits what you asked for

Tell us about the kind of host you want and the music they will present, and the hosts you are shown are ordered by how well they match, rather than at random. The setup question now asks for both, because both are what the match is made on.

Link to this release ↗
v0.11.341One line while we find your hosts, not three loaders

Finding hosts for your music is a quick lookup, so the step now says so once and gets out of the way. The rotating status messages and the second spinner underneath them were written for a slower version of this step that made artwork on the spot.

Link to this release ↗
v0.11.340Choosing a host is instant now

Picking your host in First Steps no longer sits through several seconds of staged loading. That pacing existed to cover artwork being drawn; hosts already exist, so the step now moves as fast as the answer arrives. The host cards also show more of each host's description.

Link to this release ↗
v0.11.339Your host is yours when you finish, not when you pass through

Choosing a host in First Steps no longer assigns one the moment you move to the next step. Nothing is set up until you finish, so you can go back and change your mind as many times as you like — and leaving partway through no longer leaves a host behind you never asked for. The host choices are now a swipe row that matches the song step.

Link to this release ↗
v0.11.338Choosing your first host reads properly on a phone

The host cards in First Steps were three tall columns squeezed into a third of the width each. They now read like the song step on the same screen — a square portrait on the left, the name and description beside it, one host per row. The preview button gets its pulse and stop states back, and Back returns you to the music you described instead of to your name.

Link to this release ↗
v0.11.337First Steps introduces you to the hosts who present your music

Describe the music you play and Harmonic Wave now works out the genre and brings out the hosts who already present it — each with their own look, personality and voice. Setting up your first host is a choice between real people rather than a request to have one made.

Link to this release ↗
v0.11.332New hosts say their language, and the Host panel gets simpler

A host's voice description is written when the host is created, and it did not always say what language they speak — the one thing the voice tools most need to know. New hosts now state it. The Host panel also drops the generated poster and header gallery: those pictures are made for particular experiences, and a shared host appears in many, so the panel could only ever show part of the set.

Link to this release ↗
v0.11.328Hosts speak English, and now they say so

A host with an accent could start a line in English and finish it in another language. Hosts speak English — that was always true, but nothing in the product said it, so nothing kept it true. Now every host records the language they speak, shows it, and the voice tools only offer voices that match.

Link to this release ↗
v0.11.327Hosts stop sharing a wardrobe

Hosts of the same genre were turning up in the same outfit, because a genre had only two or three to draw from. Each host personality now has its own way of dressing, and in an experience the room they are in decides what they wear.

Link to this release ↗
v0.11.326Every experience gets its own room

Experience banners were all being set in the same handful of places. Each genre has ten authored settings and only the first was ever used, so shows in the same genre kept coming back as the same room.

Link to this release ↗
v0.11.325Faster Host creation

Creating a Host is quicker and less likely to time out. The personality filters now span the full width of the list, and a few requests that used to fail quietly now say what went wrong.

Link to this release ↗
v0.11.324Hosts arrive with their voice

Every Host is now created with their voice already set, so the one you hear while choosing is the one that ships. Host personalities also show the accent they speak with, and the list can be filtered by it.

Link to this release ↗
v0.11.302Set panel polish

The play button on the new Set panel was landing in the wrong corner, its music bed showed a heading instead of the genre, and the panel's dividers were not drawing.

Link to this release ↗
v0.11.301An experience's artwork now belongs to the experience

The poster, banner and share card generated for an experience were being filed with your Host's identity images instead of with the experience itself — which also meant they were left behind when the experience was deleted. They now live with the experience and are removed with it. The experience form also gains a Set panel showing the room your Host is shot in and the music bed that plays under them.

Link to this release ↗
v0.11.300Artwork appears as it finishes, without a refresh

The poster and banner were saved correctly but the experience form showed empty slots for them, and new artwork only appeared if you reloaded the browser. Both are fixed — the images render, and they now appear in place the moment each piece is ready. The share card's button also matches the experience: Watch Now where there is something to watch.

Link to this release ↗
v0.11.299The experience poster no longer stalls before it starts

A new experience's poster could sit for nine minutes doing nothing before any work actually began. Saving the experience kicked off a small background task that accidentally picked up the poster and started generating it inside a request that was about to end, so the work was abandoned with nothing to show for it. Posters now start when they are meant to.

Link to this release ↗
v0.11.298Host sets are shot in a room that suits the genre

A set's location was being built from the description of how a Host looks rather than from the genre they present, so most of them came back as the same nondescript studio. Every genre now draws on its own collection of locations, and a Host's second set is shot somewhere different from their first.

Link to this release ↗
v0.11.297Artwork arrives in about a minute, and the share card shows your poster

A new experience's artwork could sit for ten minutes before anything happened, and the share card was composing with a blank space where the poster belongs. Both are fixed — the pieces now arrive in about a minute. Each new set is also shot somewhere different in your Host's world instead of reusing the same room, and its music bed is now written as a variation on the genre's reference track.

Link to this release ↗
v0.11.295A proper page for paused experiences, and grid views by default

Opening the link to a paused experience showed a bare line of text on a white page, which read like something had broken. It now gets a real page that says the experience is paused and that the link still works. Pausing also now locks the Host the same way publishing does — pausing keeps your links alive, so a Host edited during a pause comes back sounding wrong to the same audience.

Link to this release ↗
v0.11.294A quieter View experiences link

The link in the ON AIR message now matches the colour of the sentence it finishes rather than standing apart from it.

Link to this release ↗
v0.11.293Jump straight to your experiences from a locked Host

The message on a Host who is ON AIR tells you to move their experiences to Draft, and now carries a View experiences link so you can go and do it in one click.

Link to this release ↗
v0.11.292A tidier ON AIR badge and message

The ON AIR badge is back in the corner of a Host's card where it started, and the message explaining the lock is shorter. It no longer opens with the name of the experience — it tells you how many you need to move to Draft, which is the part you act on.

Link to this release ↗
v0.11.291New experiences stay in Draft until their artwork is ready

Creating an experience used to hold you on a screen while its artwork was made, and could take a couple of minutes. You now land on your Experiences list straight away and watch each piece arrive. The experience stays in Draft until its poster, banner and share card are all finished, then publishes itself — so a problem partway through leaves you a draft to retry instead of a live experience with missing artwork.

Link to this release ↗
v0.11.290Save Profile waits for an actual edit again

Opening a Host to look at them lit up Save Profile as though something had changed. It stays off until you edit something. Previewing a voice inside the Voice panel also no longer raises the player bar — the panel already names the Host and the voice — and the portrait slot has dropped its reassurance note.

Link to this release ↗
v0.11.289Changing the Host no longer makes the song step jump

Picking a different Host reloads the curated songs for their genre, and the panel used to shrink and spring back while it did — moving the buttons under your cursor. It now holds its height and shows a loader in the space the songs are about to fill. Switching Hosts also closes any preview that was playing.

Link to this release ↗
v0.11.282ON AIR — a Host presenting a live experience is read-only

When a Host is presenting an experience listeners can reach, they now carry an ON AIR badge and their profile is locked. Editing one mid-broadcast changed what those listeners heard and left their share cards showing the old name. Move the experience to Draft to make changes.

Link to this release ↗
v0.11.280The waiting card matches the stage it is at

While your Host is being written the card says so; once the character is done and the pictures are coming, it says that instead. It used to cycle through both, so a card could claim it was writing the background minutes after that was finished.

Link to this release ↗
v0.11.279The pool only offers Hosts it can hand over

Picking a ready-made Host could say one was available and then report it had just been claimed, with nobody else having taken it. The shelf now counts only Hosts it can actually deliver.

Link to this release ↗
v0.11.278The waiting card says what is being made

While a new Host is being made, the card cycles through what is coming — style, voice, background — instead of holding the word Generating for the whole wait.

Link to this release ↗
v0.11.277Personality cards all read the same

The first three personalities were larger and carried an icon, from when the rest were hidden behind Show more. With the whole list on screen that only made the others look like afterthoughts, so every card is now the same.

Link to this release ↗
v0.11.276A Host is written for the person you picked

Your Host's heritage is now settled before their story is written, rather than being decided again while it is written. Same for the personality and gender you chose — what gets written is their name, style, voice and background.

Link to this release ↗
v0.11.275Your Host arrives as the person on the card

The gender and heritage shown on a personality card are now the ones your Host is made with, and the ones their portrait is rendered from. They were being treated as a suggestion, so the card could say one thing and the Host turn up as another.

Link to this release ↗
v0.11.274Every host personality at once, with filters

Choosing a host personality showed three and hid the rest behind Show more. All of them are on screen now, in one scrolling list, and you can narrow it by gender or heritage. The three suggested cards follow whatever you filter to.

Link to this release ↗
v0.11.273Host personality cards say who they are cast as

Choosing a host personality now shows you the gender and heritage that personality is cast as, before we make them. The gender on the card is also the gender your Host arrives with — it used to be picked at random, so a card could say one thing and the Host turn up as another.

Link to this release ↗
v0.11.218Choosing a host personality reads as what it is

When no ready-made Host is available you pick a personality and we make the host from it — the screen said you were choosing a host, which had not happened yet. The cards are back to their proper width too.

Link to this release ↗
v0.11.217The enlarged Host photo is labelled Lifestyle

Enlarging a Host's main photo captioned it Poster. It now reads Lifestyle, matching what the same image is called on the Host's own page.

Link to this release ↗
v0.11.216See both Host photos when choosing

Each ready-made Host card now shows their portrait alongside the main photo, with a magnifier to view either full size. On a phone the cards stack, so the photos are bigger than on a desktop.

Link to this release ↗
v0.11.215Host cards are one size, and Spanish voices are available

The ready-made Host cards no longer change size depending on how many are available. Spanish-speaking voices are now supported alongside the English ones.

Link to this release ↗
v0.11.214Host photos actually vary now

Every Host photo was coming back as the same shot — talking to camera with their hands up — no matter what the image was meant to show. The pose now follows what the photo is supposed to be.

Link to this release ↗
v0.11.213Choosing a ready-made Host returns you to your Hosts

A ready-made Host is complete the moment you choose them, so you land back on your Hosts list instead of an edit form with nothing to fill in.

Link to this release ↗
v0.11.212Fixed: the ready-made Host picker rendered broken

Host cards came apart on screen — the picture in one place, the name and description loose beside it. They render as proper cards again, three across and centred.

Link to this release ↗
v0.11.211Host cards show the right picture, and play on demand

Ready-made Host cards now show the marketing image, play the voice only when you press play, and stay centred however many are available.

Link to this release ↗
v0.11.210Ready-made Hosts show their face again

The cards for ready-made Hosts were showing a broken image and had lost the button that plays their voice. Both are back.

Link to this release ↗
v0.11.209Choose a ready-made Host from the pool

Creating a Host now offers both roads properly: pick somebody who is ready right now, or build your own. A pooled Host arrives complete — nothing to wait for.

Link to this release ↗
v0.11.208Create Host no longer closes on a stray click

Clicking beside the Create Host dialog used to close it, losing whatever you were part-way through. It now closes only from the X or Cancel.

Link to this release ↗
v0.11.207The generating carousel turns properly

The steps shown while a Host is written now rest at each one and turn between them, with the step behind the front hidden.

Link to this release ↗
v0.11.206More of the voice roster, and a better wait

Hosts now draw from the whole voice roster instead of favouring a handful, the Generate button carries the usual generate mark, and the wait shows what is being written as a turning carousel.

Link to this release ↗
v0.11.205The list view shows Hosts still being made too

A Host whose artwork is still being generated now shows a spinner in place of their picture in the list view, matching the grid.

Link to this release ↗
v0.11.204A clearer wait while your Host is written

Generating a Host now shows what is being written — name, style, voice, background — with a progress bar, and the Hosts page shows Generating on the card itself while the artwork is made.

Link to this release ↗
v0.11.203You can close the Create Host dialog while your Host is being made

The close button did nothing while a Host was being created. It works now — the Host carries on being made, and the Hosts page shows the progress.

Link to this release ↗
v0.11.202Fixed: creating a Host reported a timeout that had not happened

Creating a Host takes about half a minute, which was just over the limit the page allowed. It reported a timeout while the Host was being made perfectly well. Also, poster and lifestyle shots no longer land on the same hand gesture every time.

Link to this release ↗
v0.11.201Fixed: progress and failures were not being detected

The Hosts page could not actually tell whether artwork was in progress or had failed, so the banner was guesswork and a second Host could be started while the first was still being made. Fixed.

Link to this release ↗
v0.11.200Creating a Host from an identity works

Choosing an identity and creating a Host failed every time. Fixed.

Link to this release ↗
v0.11.199Hosts keep the identity you chose

A Host created from a chosen identity now carries that identity, and failures during creation are recorded so they can be diagnosed.

Link to this release ↗
v0.11.198Fixed: creating a Host from an identity failed

Choosing an identity and creating a Host returned a generic error instead of working. Fixed, and when a create genuinely cannot proceed the reason is now shown rather than a blanket message.

Link to this release ↗
v0.11.197First Steps offers ready-made Hosts first

Describe your music during setup and you are shown Hosts who are already made — their face, their name and their character — and choosing one is instant. Building your own is offered when there are not enough ready for your genre.

Link to this release ↗
v0.11.196You can see when a Host is still being made

A Host's artwork is made after they are created, and it carries on whether or not you stay on the page. The Hosts page now says when that is happening, the portrait fills itself in when it lands, and a Host that could not be finished offers you a retry or a way out.

Link to this release ↗
v0.11.195Host descriptions that read like a person wrote them

Every Host suggestion has been rewritten in plainer, warmer language, and a few have been renamed to sit better in their own genre.

Link to this release ↗
v0.11.194Clearer icons on the Host suggestions

Four icons were hard to read at the size they are shown and have been redrawn.

Link to this release ↗
v0.11.193Every Host suggestion has its own icon

Icons on the Create Host suggestions no longer repeat, so two Hosts shown together never wear the same mark.

Link to this release ↗
v0.11.192The Hosts you are shown match what you asked for

Describe the music and the three Hosts offered are now the ones that fit your description, not the same three every time. Ask for slow jams for late evenings and you get a late-night Host; ask for something to move to and you get a different one.

Link to this release ↗
v0.11.191The three Hosts sit side by side

The Create Host picker shows its three suggestions abreast in a smaller window, so they read as a choice between three rather than a list to work down.

Link to this release ↗
v0.11.190One tag beside a Host's name

The identity and the support reference beside a Host's name are now a single tag rather than two.

Link to this release ↗
v0.11.189Three Hosts to choose from, each with a line about who they are

The Create Host picker now leads with three identities, each with an icon and a sentence describing the Host you would get. The rest are one click away, and every one of them explains itself too.

Link to this release ↗
v0.11.188Choose who your Host is

Creating a Host now means choosing an identity — twenty per genre, from Nashville Hitmaker to Front Porch Philosopher — and the whole character is built from that one choice. The screen appears instantly instead of taking about twelve seconds to write three options.

Link to this release ↗
v0.11.187Clearer wording when the pool has no Hosts for your genre

When the shared pool cannot serve the genre you described, the option now says so plainly and points you at building your own.

Link to this release ↗
v0.11.186Build your own shows the generate mark

The Build your own option now carries the same stars the rest of the app uses for AI generation, so it reads as generated rather than added by hand.

Link to this release ↗
v0.11.185The two ways to get a Host read as two choices

The step where you choose between the shared pool and building your own now shows two large cards with an icon on each, instead of two small text boxes.

Link to this release ↗
v0.11.184A proper wait while your Hosts are written

After you describe the music, the Create Host screen now clears and shows a loading indicator while it works, instead of leaving your answer on screen under a status line.

Link to this release ↗
v0.11.183Create a Host by choosing a character

Creating a Host now starts with the music you want them to present, then offers three written characters to choose between. Whichever one you pick is the one that gets built, and their artwork follows on its own.

Link to this release ↗
v0.11.182Regenerate describes the voice you chose

Regenerating a Host's voice description now describes the voice actually assigned to them, rather than writing from their character alone and inventing details that do not match what you hear.

Link to this release ↗
v0.11.181Hosts get the accent that suits them

A Host's voice description now names the accent that genuinely fits them. Until now it was limited to a neutral or soft American southern accent, which meant Hosts from other backgrounds were described with an accent that did not suit them at all.

Link to this release ↗
v0.11.180Better Host names

New Hosts can no longer be handed a name lifted from our own examples, and the naming now aims for a mix of single-word handles and two-part names instead of drifting toward one-word names for everyone.

Link to this release ↗
v0.11.179Voice descriptions lead with who is speaking

A Host's voice description now opens with their perceived gender and age, then describes how they sound. Previously those details could end up appended to the end as an afterthought.

Link to this release ↗
v0.11.178Removing a Host, explained properly

The confirmation for removing a Host said it was permanent and could not be undone. That was wrong: removing a Host frees your slot and returns them to the Harmonic Wave pool, where another creator may pick them up. Only your edits to their profile are lost. Mobile navigation also moves Hosts next to Experiences.

Link to this release ↗
v0.11.177Tidier Host artwork and voice library

The enlarge control now lives on the Host's Style images and only appears when you hover over one, instead of sitting permanently on top of the panel copies. The voice library also clears its filters when you close it, so it opens fresh next time.

Link to this release ↗
v0.11.176Voice description follows every voice change

Changing a Host's voice now updates their voice description no matter where you picked the voice from. Previously this only happened for voices chosen from the public library, so picking one from your own voices left the description describing a different voice.

Link to this release ↗
v0.11.175Your current voice is always first

The voice a Host is already using now sits at the top of the voice library every time you open it, whatever you search or filter for. Previously it was ordered by popularity like everything else, so a less widely used voice could be hundreds of rows down or missing from the results entirely.

Link to this release ↗
v0.11.174Changing a Host's voice takes effect immediately

Switching a Host to a different voice now clears the saved preview clip, so the preview plays the new voice straight away instead of replaying the old one. Voices you add from the library are also labelled with the voice's own name, so you can tell them apart from voices designed for a Host.

Link to this release ↗
v0.11.173Pick a voice, and the description follows

Choosing a voice for a Host now rewrites their voice description to match it, so the words and the audio finally agree. The voice you picked is named on the Host, the one already in use sorts to the top, and the library keeps loading as you scroll instead of making you press a button.

Link to this release ↗
v0.11.172Voices you pick stay tidy

Voices added from the voice library are now labelled as ours, so the clean-up tool in Settings can find and remove them when they are no longer attached to a Host. Previously they were invisible to it and would sit in your voice provider account indefinitely.

Link to this release ↗
v0.11.171Hosts that sound like themselves

Voice descriptions were coming out nearly identical for every Host, and the words they used barely overlapped with how the built-in voices are described — so the voice a Host was matched to was close to arbitrary. Descriptions now vary properly and are written in language that actually selects a voice.

Link to this release ↗
v0.11.170Hosts look like the Host you described

When you describe a Host you want, that description now reaches the artwork. Previously the written character was correct but the portrait was drawn from the styling notes alone, so details about the person themselves could be quietly lost. Host search also now matches on name and genre.

Link to this release ↗
v0.11.169Better voice browsing, faster Host artwork

The voice library now leads with the most widely used voices instead of burying them, and shows how many creators have adopted each one. The search and filters got a tidier layout. Separately, artwork for a new Host now starts promptly instead of occasionally stalling for several minutes before the first image appeared.

Link to this release ↗
v0.11.168Faster previews, more varied Hosts

Previewing a free voice is now instant the second time you play it, instead of being made from scratch on every click. And new Hosts are drawn with an eye on the ones you already have, so a run of Hosts created one at a time no longer drifts toward looking alike.

Link to this release ↗
v0.11.167A steadier voice library

The voice library window no longer resizes as you search. It holds one height and the results scroll inside it, so the search box and filters stay put under your cursor instead of jumping every time the number of matches changes.

Link to this release ↗
v0.11.166A voice library worth browsing

Browse Voice Library now searches the full public voice library instead of the handful of stock voices on your account. Search by name or style, and filter by accent, gender and age — so if you want a Host who actually sounds Jamaican, Irish or Southern, you can go and find one. Listening is free.

Link to this release ↗
v0.11.165Say hello to Hosts

Your DJs are now called Hosts. It is a name change only — every Host you already have keeps their name, voice, artwork and experiences exactly as they were. We also gave voice auditions a proper script, so a candidate now sounds the way it will actually sound on air.

Link to this release ↗
v0.11.164Your DJ, better looking

Every DJ now comes with their own set of artwork — a profile picture for the places we show them, and a lifestyle shot for when you are choosing who presents your experience. Both are made in the world of their music rather than against a plain backdrop. We also fixed DJ artwork that could stop loading, and refreshed the music beds behind every genre.

Link to this release ↗
v0.11.000Harmonic Wave v0.11

Add a DJ, bring in your music, and start authoring experiences. The Experience Player is coming soon — so you can build everything now, and share it for playback once the player lands.

Link to this release ↗