Repository navigation
Releases: socrtwo/adhush
Releases · socrtwo/adhush
Release list
v0.28.5
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
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.partfile 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
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.tsvbecomes v2
with anhourscolumn; 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
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
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 inblack_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_freechannels never
mute);ts_streamcapture +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 servefor 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
mypycannot find Pillow, whichadhush cutscene add --imageimports
optionally inside atry/exceptand which CI does not install. The
missing import is now ignored by configuration, andci.ymlruns the
Python checks on every branch push instead of onlymainand 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
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
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 = 0turns 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
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.tsvtravels 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 sbutton (phone Home, the
remote, the notification, the web page, IPCduck_forwith
extend: true) and a livem:ss lefton the status line.+30 son 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
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 initwrites 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
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.pdfis 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