How heart-rate-based music actually works
Connect a Bluetooth heart-rate monitor to FeelFlow Radio and the music starts responding to how your body is doing, not just the mood you picked when you set up your station. How does AI radio work? covers the basics — heart rate is one of two ways to steer a station, alongside picking a mood manually, and both feed the same underlying scale. This article goes further into the part that article only summarizes: what actually happens between a heart-rate reading and a track being generated for you.
The problem with a raw number
A pulse reading on its own doesn’t say much. 90 BPM is a hard effort for someone whose resting heart rate is 45 — most likely a trained athlete — and completely unremarkable for someone whose resting rate is closer to 75. Reacting to the raw number would mean treating those two very differently-loaded states as the same thing.
FeelFlow Radio doesn’t use the raw number. It converts a reading into relative load: how far your current heart rate sits above your own resting baseline, measured against your own range up to your estimated maximum. That’s the Heart Rate Reserve method — sometimes called the Karvonen method — and it’s the standard way exercise physiology compares effort across people with different fitness levels, rather than assuming one BPM value means the same thing for everyone.
Where the baseline comes from
Relative load only works if the resting baseline is right. FeelFlow Radio gets there in three steps:
- A starting estimate from age. When you set up the heart-rate feature, the app suggests a resting rate based on your age — a reasonable default, not a measurement. Estimated maximum heart rate uses the Tanaka formula (208 minus 0.7 × age) rather than the more familiar “220 minus age,” because it’s built on a meta-analysis across 351 studies and is noticeably more accurate for anyone over 40, where “220 minus age” tends to overstate effort by 5–10 beats.
- You can override it. If you know your own resting heart rate — a lot of people who already track fitness do — you can set it directly in your profile.
- The app learns it over time. Once there are enough readings (at least 50), FeelFlow Radio looks at the lowest 5th percentile of your actual measurements — not the single lowest one, since a Bluetooth monitor losing contact for a moment can report a false low reading that would otherwise throw the estimate off permanently.
The one rule that doesn’t bend: if you’ve set your resting heart rate yourself, the app never silently overwrites it, no matter what the learned estimate suggests. It can surface a suggestion — “your readings suggest 58, you’ve set 65, want to update?” — but the decision stays yours. Automatic learning only applies when you haven’t set a value manually.
Why the scale isn’t symmetric
Once relative load is calculated, it maps onto a score from -100 (as calm as the body gets) to +100 (near-maximal exertion), with 0 sitting at your resting rate. That mapping is deliberately asymmetric, because the body isn’t symmetric either.
Going up, most people have a wide range — roughly 100–150 beats between resting and maximum. Going down, the range is much narrower: heart rate rarely drops more than 10–20% below resting, even in deep sleep. Using the same scale in both directions would mean deep sleep barely registers — a reading a handful of beats below resting would land close to score 0, practically indistinguishable from an ordinary calm state. FeelFlow Radio measures the downward side against that narrower, realistic range instead, so genuinely deep rest shows up as genuinely deep rest in the score, not as a rounding error.
Why the music doesn’t jump around
A single heart-rate reading is noisy — footsteps, talking, standing up all move it briefly. If the station reacted to every reading individually, the music would change character every few seconds, which would be worse than not adapting at all.
Two things smooth that out. First, each new score is blended with the previous one rather than replacing it outright, so a brief spike doesn’t immediately flip the station’s character. Second, there’s a sensitivity setting (1–10) in your profile: low sensitivity means only sustained, larger changes move the music; high sensitivity reacts faster to smaller swings. It’s a dial, not a fixed behavior, because “calm background music that only shifts for a real change” and “music that tracks me closely” are both legitimate things to want.
The system also protects itself against bad data. A reading far outside plausible human range (a dropped Bluetooth connection reporting a garbage value) is discarded rather than acted on, and readings that are unusually far from your baseline or estimated maximum lower the system’s confidence in that specific reading, so an implausible single data point can’t swing the station on its own.
What this is — and isn’t
Worth restating plainly, because it’s easy to over-read a feature like this: FeelFlow Radio measures physiological activation — how far your heart rate is from your own resting state — not what you’re feeling. A state labeled “energetic” in the system describes an elevated, activated body, whether that’s from a brisk walk, an interesting conversation, or mild stress; the app doesn’t distinguish between those, and doesn’t claim to. There’s no medical claim anywhere in this feature. It’s a personalization input, in the same category as choosing a genre or a language — see how mood, genre, era and language shape a station for the rest of that set — not a health or wellness tool, and it isn’t a substitute for an actual heart-rate monitor used for training or medical purposes.
Setting it up
The heart-rate feature is available on both personal plans — there’s no separate tier for it. Setup is: pair a Bluetooth heart-rate monitor in the app, pick your genres and language as usual, and choose heart rate instead of a fixed mood as the station’s input. From there it runs on its own; there’s no calibration step to complete before it starts working, and the resting-rate learning happens quietly in the background as you use it.
Personal pricing is straightforward: Standard is 13,27 €/month for 5 hours of listening a day, Unlimited is 26,68 €/month for up to 18 hours a day, both billed quarterly, and both include the heart-rate feature along with every genre and language. Neither plan requires committing to it — a mood works exactly the same way in the system, and switching between the two is just a setting.
For a business reading this: most commercial setups stick with a fixed mood rather than a live heart-rate feed, for the reason covered in how does AI radio work? — a shared space calls for one consistent atmosphere, not one that shifts with a single person’s pulse. If that’s what you’re weighing, the business page has the setup and pricing for that case specifically.