Cathi Newlin - sketches in clay
  • Home
  • Artist
  • Art
  • Buy
    • Clay Tools
    • Textiles
    • Shop Local
  • Lately...
  • CERF+ Grant Blog
  • Yo!
    • Holler at Me
    • Newsletter
  • PDVoice Buddy project
​PDVOICE BUDDY — CHANGELOG
A light that stays on while your voice is carrying

Newest first. Version numbers are informal; this is a prototype, not a
shipped product.

Written for whoever picks this project up next — including future me. Where a
decision was reversed, the reason is recorded rather than quietly erased,
because the reversals are the most useful part of a document like this.


=============================================================================
0.4 — THE CONVERSATIONAL FLOOR
Current. Android and Windows.
=============================================================================

Prompted by a Parkinson's physician's assistant reviewing the app. Her
correction was the most substantive external feedback the project has had.

THE PROBLEM SHE IDENTIFIED
    Up to 0.3 the dot measured one thing: is the voice above the room? That
    works in a restaurant and fails badly in a quiet living room, where a
    whisper is comfortably above the background and lights the dot. The app
    was rewarding the exact habit it exists to correct.

    Being audible and projecting at a normal conversational volume are not
    the same goal, and the app was only pursuing the first.

WHAT CHANGED
    The dot now requires the voice to clear TWO bars at once:

        1. Above the room, by a margin      (handles noisy places)
        2. Above an absolute dB level       (handles quiet places)

    Whichever is higher governs. The room decides in a restaurant; the
    absolute level decides in a silent room.

    The five sensitivity steps now carry a dB target across the normal
    conversational band:

        Gentle  ~57 dB    just below conversational, for starting out
        Easy    ~60 dB
        Normal  ~63 dB    the default
        Firm    ~66 dB
        Strong  ~69 dB

ADDED
    - Microphone calibration in Settings: a live approximate dB readout with
      ±1 dB nudges and a Reset. Intended for a clinician with a real sound
      level meter, not for the patient.
    - Placement guidance in the manual: about an arm's length. This became
      load-bearing the moment an absolute level was introduced.

HONEST LIMITATION, RECORDED DELIBERATELY
    A phone or tablet microphone has no absolute reference, its gain varies
    by model, and its reading falls off with distance. The dB numbers are
    approximations, not measurements, and will not match a real meter. This
    is stated in the app's manual as well as here. It must never be presented
    as measurement.

TESTS
    One existing test — "the absolute scale is irrelevant" — asserted exactly
    the assumption this release overturns. Rewritten rather than deleted, so
    the change of mind stays legible:

        the relative half alone ignores absolute scale   (kept, narrowed)
        a whisper in a silent room does not light the dot (new)
        in a noisy room the room sets the bar             (new)
        the bar is whichever threshold is higher          (new)

DOCUMENTATION FIX
    Part 4 of the manual opened with "the last two you should leave alone",
    which by position pointed at Open at login and the car setting — telling
    the reader to ignore the driving-safety control. Now names Microphone
    calibration explicitly. Counting by position was the mistake; sections
    move, names don't.


=============================================================================
0.3 — SPANISH, AND A LANGUAGE SETTING
=============================================================================

ADDED
    - Full Latin American Spanish translation of both apps, usted throughout
      on the grounds that these are mostly older adults being addressed by a
      health tool.
    - A Language setting: Automatic / English / Español.

TWO DECISIONS WORTH KEEPING
    One build, not two. The tablet follows the device language by default, so
    there is nothing to choose and no second download.

    "English" and "Español" are never translated — each appears in its own
    language always. Someone hunting for Spanish on an English-configured
    tablet has to recognise "Español" on sight, whatever the app is currently
    showing. Only "Automatic" translates.

    The setting exists because a device set up in English by a family member
    must not decide what language the person using it reads.

TRANSLATION CHOICES FLAGGED FOR PROOFREADING
    - "Small pill" → "barra pequeña", deliberately NOT "píldora". Pill-as-
      shape does not survive translation for an app aimed at people taking
      daily medication.
    - "Heard" → "Se oye". It is the reward state and should read as "you're
      coming through", not as a technical report.
    - "I'm driving" → "Voy conduciendo", with "manejando" flagged as possibly
      more natural across much of Latin America. Safety-critical, so left
      for a native speaker to settle.

    A proofreading sheet accompanies this, written for a fluent speaker with
    no technical knowledge. All strings still awaiting review.

NOT TRANSLATED
    The user guide, feedback survey, install notes and website copy. A few
    thousand words; worth doing only if Spanish-speaking testers materialise.

ALSO
    - Under the hood: every hardcoded string moved into resource files on
      Android and a lookup table on desktop. Nothing user-visible, but it is
      what made translation possible at all.
    - The pill's text-fit test measured the English word. Fixed to measure
      the actual word, or "Más fuerte" would silently vanish.


=============================================================================
0.2 — DESKTOP AND TABLET BROUGHT INTO LINE
=============================================================================

The Windows app was rewritten so both platforms are genuinely the same app:
same measurement, same five sensitivity steps, same colours, same two shapes,
same wording. Previously they had drifted.

ADDED (DESKTOP)
    - The glowing dot, replacing the earlier ring.
    - Small pill and full screen, matching the tablet.
    - Pause and gear icons, matching the tablet.
    - Open at login.

The measurement model is now a deliberate line-for-line port between Kotlin
and Python, so the two cannot quietly diverge again.


=============================================================================
0.1 — ANDROID
=============================================================================

The version that first worked in someone's hand.

ADDED
    - Glowing dot, full screen, with a screensaver mode so a docked tablet
      becomes a permanent desk light with nothing to launch.
    - Floating pill that sits over other apps, draggable and remembered.
    - Five sensitivity steps, four colours.
    - Pause, and an ✕ on the pill that genuinely exits and releases the
      microphone.
    - Car mode: not in a car / passenger / driving.

CHANGED ALONG THE WAY
    - Ring → glowing dot. The ring's motion was not smooth enough to read at
      a glance, which is the entire job.
    - Pause/unpause text → pause and play icons.
    - A confirmation screen after choosing the floating pill was removed. It
      explained something the user could already see.
    - "Small pill" now defaults straight to the floating pill; previously you
      could end up with both on screen at once.

FIXED
    - The dot stuck on "Heard" and ignored the voice.
    - "Tap anywhere for settings" sat behind the Louder prompt.
    - The tray icon vanished when the window was closed (desktop).

THE CAR DECISION
    Originally logged as "works unchanged — a cradle is a dock." That was
    wrong, and reversing it was the most important call in the project.

    A dot pulsing in time with speech, mounted in a driver's eyeline, is
    unsafe and illegal in many jurisdictions. Split into passenger (dot stays
    on, nobody is steering) and driving (screen dark, short vibration only).

    A device cannot tell the two apart, so it asks, and the answer resets on
    every launch — a stale "passenger" must never survive into the next
    journey. Detecting the car automatically, via Bluetooth or activity
    recognition, remains the right answer and is not built.


=============================================================================
EARLIER — THINGS TRIED AND ABANDONED
=============================================================================

A TABLETOP PUCK
    The original concept. A plug-in device on a desk. Worked as an idea, but
    tied to one room and required building hardware.

A WINDOWS-ONLY DESKTOP APP
    Real, used, and the version that proved the idea. Still supported, but
    a computer is not where most conversations happen.

AN APPLE VERSION
    Attempted, abandoned. A volunteer with a Mac hit permission problems and
    there was no step-by-step guide for macOS. Revisit only if someone with
    a Mac and patience volunteers.

THE SCREENSAVER-ONLY APPROACH
    Briefly the recommended way to run it, until the obvious objection: it
    requires the device to be plugged in, so it does not travel. Kept as an
    option for a docked tablet, dropped as the primary route.

WHAT WAS DELIBERATELY REMOVED
    A daily percentage — "you were audible 64% of today". Cut. It reset
    whenever the service restarted, so it could not answer the only question
    worth asking ("how did the week go?"), and a score risks turning a
    reminder into a judgement. If it returns, it needs to survive restarts
    and be genuinely encouraging.


=============================================================================
KNOWN GAPS
=============================================================================

    - Driving mode is manual. Nothing detects a car. The user must select it
      each launch, and the manual says so plainly. This should be automatic.
    - No progress history of any kind. Deliberate for now, but it means the
      app cannot answer whether it helped over weeks.
    - Android and Windows only. No iOS, iPadOS or macOS.
    - Not in the Play Store, so installing means clicking past three Android
      warnings. Documented, but it loses people.
    - The dB calibration is a guess per device, correctable only by hand
      against a separate meter app.
    - Spanish is unreviewed by a native speaker.
    - Never tested in a genuinely noisy room. The adaptive half of the model
      is the app's central claim and it has not been properly challenged.


=============================================================================
STANDING PRINCIPLES
=============================================================================

Recorded because each was arrived at by getting it wrong first.

    Nothing is recorded, ever. Audio becomes one loudness number and is
    discarded. There is no recording to leak because none is made.

    The dot is for the corner of the eye. Anything that makes someone look
    directly at it — text, numbers, animation for its own sake — is a
    regression.

    Subtract before adding. No scores, no streaks, no notifications about
    the voice. The tool most likely to still be in use next month is the one
    that asks for the least.

    Do not overclaim. "Prototype", "free" and "not a medical device" stay on
    every page. Overselling a homemade tool to people managing a
    degenerative illness would be a genuine wrong, not merely bad marketing.

    The person is not a patient. They are someone who wants to be heard at
    dinner.

​Cathi Newlin
Sacramento, Ca
​916.891.2889
Get the Latest Updates


  • Home
  • Artist
  • Art
  • Buy
    • Clay Tools
    • Textiles
    • Shop Local
  • Lately...
  • CERF+ Grant Blog
  • Yo!
    • Holler at Me
    • Newsletter
  • PDVoice Buddy project