Skip to content

Releases: socrtwo/adhush

v0.28.5

Choose a tag to compare

@github-actions github-actions released this 20 Sep 05:47

Changed

  • Android: the remote is its own tab (Home, Remote, TV, Methods, Log;
    Help moves to the ? in the toolbar) and is drawn like a TV remote: a
    dark body with rounded ends, power, input and mute on top, a number
    pad, the volume and channel rockers either side of a round D-pad with
    OK in the middle, then menu, transport, the colour keys and the rest,
    every key a dark pill or circle with one line of white text.
  • Android: no button anywhere wraps its label any more. Every button is
    one line tall and its text shrinks to fit; the Log page's buttons read
    Save, Share and Clear, the memory buttons Share memory and Import
    memory, and the Home page's action row is Test TV and Set-up wizard.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.28.4

Choose a tag to compare

@github-actions github-actions released this 19 Sep 15:33

Changed

  • Android buttons change only when something real happened; the press
    animation of 0.28.3 is gone. A button that started a job (a model
    download, Test TV, an AI test, an import, saving the log) stays blue
    and disabled with the job's progress as its label until the job ends,
    so it cannot be pressed twice; then green with a tick or red with a
    cross, and the label the outcome calls for.

Fixed

  • Model downloads can no longer leave a short file installed as if it
    were whole. The bytes go to a .part file with the expected size kept
    beside it; a download that stops short is an error saying how far it
    got, the button reads Resume with the percentage, and the next press
    continues from there. Only a part of exactly the expected size is moved
    into place, and a model counts as installed only when every byte is
    there. The speech model is unpacked into a folder of its own and moved
    into place whole. Delete partial model downloads in the ⋮ menu throws a
    stopped download away.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.28.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 22:57

Added

  • Jingle families (ADR 0027): a learned sting is also recognised
    transposed by up to two semitones and stretched by up to ten per cent
    in tempo, at a higher bar, so a channel's per-show re-cuts of its house
    sting count as the sting they resemble. The vote reason names the
    variant. Both cores.
  • Segment stingers (stinger, ADR 0027): the whoosh or hit a channel
    drops on the cut into a segment or a break — a short noisy burst over
    the bed, then the level moves. Default weight, inert until it fires,
    decays over 2.5 s; ignores our own duck. On by default in the Python
    core; on the phone it rides on the Loudness method.
  • The hour of day (ADR 0027): every jingle remembers the local hours
    it opened breaks in; heard again at one of those hours it is trusted a
    break early and matched a little more loosely. jingles.tsv becomes v2
    with an hours column; v1 files still load, and the shared memory
    carries the hours between phones.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.27.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 19:19

Added

  • The other TV families (ADR 0026): Android TV / Google TV (paired
    once with the six-character code, the phone's own certificate kept),
    Hisense VIDAA (its MQTT broker; the four-digit code on newer sets),
    and Philips JointSpace 1 and 6 (a PIN once on the Android-based sets).
    All three read the volume back, so they duck to an exact level. The
    wizard's Find my TV tries them like the rest and shows one code row
    when a set asks for one; the remote works over all three.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.24.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 05:17

Added

  • What comskip, MythTV and the Auto-Cut VCRs knew (ADR 0023), all
    inert until they have evidence, all in the default set:
    rating_bug — the parental-rating box after a break is positive
    programme evidence (Python HDMI path and the phone camera);
    ad_units — gaps on the 15-second ad-unit grid hold a mute through
    the middle of a pod (both cores; on the phone it rides on Quiet gaps);
    uniform separators in black_frame — a white flash or colour card
    counts like black; cutscene — captured intro/outro frames
    (adhush cutscene add), an "in" frame ducks alone, an "out" frame is
    the show back; stereo_width — the mono/stereo switch, measured by the
    capture backends before their downmix (capture.stereo); watermark
    — ATSC A/335 / DVB-TA presence lost when a local spot replaces the
    marked picture (experimental: written from the spec's shape, not a
    live feed).
  • Three feeds (ADR 0024): schedule — XMLTV programme boundaries
    (a grace window after a start dilutes mutes; ad_free channels never
    mute); ts_stream capture + scte35 — an HDHomeRun or DVB transport
    stream's in-band splice cues, parsed in-process, authoritative where
    they survive; crowd — an opt-in shared feed of break times on the
    same channel with k-anonymous hashing, adhush crowd serve for the
    server.
  • Programme evidence comes from any detector that has it
    (Detector.program_present); wall time reaches every detector
    (Detector.tick); cues are a third event type (CueEvent).

Fixed

  • The release run built every binary and then refused to publish: strict
    mypy cannot find Pillow, which adhush cutscene add --image imports
    optionally inside a try/except and which CI does not install. The
    missing import is now ignored by configuration, and ci.yml runs the
    Python checks on every branch push instead of only main and pull
    requests, so the next such drift appears on the push rather than at the tag.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 14:52

Added

  • Android set-up wizard (ADR 0022): offered once on first run and always
    on the Home page. It asks how the phone reaches the TV (and asks the set
    its volume), where the phone sits, the channel, ticker and captions;
    listens to fifteen seconds of the show and ten of the room with the TV
    muted; looks through the camera for eight seconds; then suggests every
    method, the duck level, the camera target and zoom and the local AI size
    with a reason each, writes them, and opens the Methods page for review.
    Numbers only, never audio or pictures.
  • docs/ideas-backlog.md: fourteen ranked ideas from a search of comskip,
    MythTV, the ATSC/DVB watermark specs, patents and peer projects.

Fixed

  • Every count of the phone's methods now says ten: the Help "Choosing
    methods" topic (eight), its lists of weak and strong methods (the clock
    and the jingle were missing), the Help header, the Android README's
    screens section (six) and the local-AI print guide (eight; PDF
    regenerated).

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 17:15

Added

  • aspect_change (ADR 0021, after comskip): the Python core's HDMI and
    screen-capture paths now watch the picture's shape. Dark, flat bars at
    the edges give the active picture's aspect ratio; the programme's shape
    is a rolling mode, and a spot that arrives pillarboxed or letterboxed
    votes for as long as it holds the other shape. Inert while the shape is
    the programme's, so it never dilutes the other detectors; never mutes
    alone. On by default and in the HDMI example configs; the synthetic
    fixtures gained a 4:3 ad for its ground truth.
  • Crest factor in loudness (ADR 0021, after beepscore): the
    peak-to-RMS ratio rides in the same short-term window against the same
    slow baseline, and a drop of 4 dB under the programme's — a spot
    compressed flat, however loud — adds up to half a vote. Python and the
    phone; crest_drop_db = 0 turns it off.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 16:39

Added

  • Method 10, break jingles (ADR 0020, after AdVent): the channel's own
    sting into and out of every break is learned from the breaks the
    detectors already end — three breaks opened by the same three seconds of
    sound promote it — and then ducks the set the moment it is heard, ahead
    of every other method. A closer heard while ducked counts as the
    programme coming back. Python core (jingle, on in the listener example)
    and the phone; jingles.tsv travels with the shared memory.
  • The ad badge during stream learning on Android: ML Kit reads the
    corners of the player once a second and "Ad", "Ad 1 of 3", "AD 0:15" or
    "Your video will resume" is ground truth for the break.
  • Learned break lengths: the break clock keeps a histogram of how long
    this channel's breaks run; a mute's ceiling becomes the 90th percentile
    plus 30 s once five breaks are known, and the status line shows "about
    m:ss left" during an automatic duck.
  • A countdown you can extend: manual ducks of 150, 180, 210, 240, 270
    and 300 s next to the 30–120 s ones, a +30 s button (phone Home, the
    remote, the notification, the web page, IPC duck_for with
    extend: true) and a live m:ss left on the status line. +30 s on an
    automatic duck holds it as a timed one.
  • A remote-control icon in the toolbar of every phone screen.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 15 Sep 18:08
cf6fbbe

Added

  • A release for every platform (ADR 0019): one-file binaries of the
    core for Windows x64, macOS (Apple silicon), Linux x64 and Linux arm64,
    each smoke-tested on its own runner; a Raspberry Pi bundle with the arm64
    binary, the listener config and the PDF guides; the Android APK, the web
    app (which is also the iOS install, through Add to Home Screen) and the
    wheel as before. adhush init writes a starter config and the profile
    library next to a binary. The web front end and the profiles travel
    inside the binary; ffmpeg is the one thing to install.

Downloads by platform

Platform File
Android (phone app) adhush-<ver>-android-debug.apk — sideload
iOS / any phone (web app) open http://<core>:8675/ in Safari or Chrome → Add to Home Screen; the page is in adhush-web-<ver>.zip
Windows 10/11 x64 adhush-<ver>-windows-x64.zip — adhush.exe (terminal) and adhushw.exe (silent, for the logon task)
macOS (Apple silicon) adhush-<ver>-macos-arm64.zip — Intel Macs: the wheel
Linux x64 / ChromeOS (Intel) adhush-<ver>-linux-x64.tar.gz
Linux arm64 / ChromeOS (ARM) adhush-<ver>-linux-arm64.tar.gz
Raspberry Pi 4 / 5 adhush-<ver>-raspberry-pi.zip — binary, listener config, the PDF guides
Any Python 3.11+ adhush-<ver>-py3-none-any.whl

Platform matrix and what each build can do: docs/release.md

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 15 Sep 15:50
758a232

Added

  • Android Learn from a stream (ADR 0018): with Android's playback
    capture the phone hears the live stream it is playing (MS NOW, Xfinity
    Stream, any channel's web player) and learns every break into the same
    memory it uses at the TV — fingerprints, and words with Speech on; no TV
    is touched. Started from the Methods page; the notification counts the
    breaks. docs/print/AdHush-guide-stream-learning.pdf is the guide.
  • Android memory that moves: Share this phone's memory zips the
    breaks, scripts and clock; Import memory from a file merges another
    phone's without doubling what is known.

Platform matrix: docs/release.md