Skip to content

Releases: denis-stepanov/advent

1.6.1

22 May 20:54
54eb2aa
Compare
Choose a tag to compare

Bug fixes of v1.6 features:

  • #81: stuck "in action" flag;
  • #83: discordancy between manual mute and provided status;
  • #85: error on unmuting on timeout.

Also note status of Fedora 40 (currently not supported due to DejaVu aging denis-stepanov/dejavu#2).

1.6.0

30 Apr 23:28
c155216
Compare
Choose a tag to compare

Features:

  • #64: support for BroadLink Universal Remote (--tv_control broadlink), using a new dependency package broadlink. Device auto-detect on the network is supported. A new option --tv_codes could be used to point BroadLink support to the TV codes to use. See more info on setting this up in README;
  • #8, #75, #76: support for interactive controls, using a new dependency package sshkeyboard. A variety of commands is available, starting with possibility to emulate a hit and manipulate TV "in action" status. One could also adjust on the fly AdVent parameters "recognition interval" and "recognition confidence". Equally available are direct commands to TV for mute and volume increase / decrease, making AdVent a kind of TV remote. Finally, a graceful "quit" command is provided (previously quit required hard termination from shell). Hit h at run-time for the list of commands supported;
  • #8: support for new option --in_action which would allow starting AdVent with "TV muted" condition. This is mostly useful in the case of uni-directional controls. An equivalent interactive command would allow setting AdVent back in sync in the case of eventual de-sync from TV state;
  • #53: support for "inner" jingles. For complex ad breaks involving multiple jingles, a new option --exit_jingles allows specifying a number of exit jingles to be taken into account. This would be 1 by default, but could be increased. An equivalent interactive command is equally provided;
  • #55: db-djv-pg tool was made aware of git environment. In the case of operating inside a git repository, it will now inform git of certain file system changes it makes. Currently only rename operation on disk is concerned; it will stage file renaming for commit. Previously track renaming under git was quite a complex operation requiring manual rename and edit of the file concerned. A new option --no-git could be used to disable this new behavior;
  • #66: db-djv-pg tool will now print a number of fingerprints in a track during import / export operations. This could be of interest when exporting a new jingle, in order to quickly evaluate its quality (a good number should be above 1000).

Internal / refactoring:

  • tests with recent Fedoras (up to v39), PIP (up to v24) and PipeWire (up to v1.0.5). All three caused quite some disorder here and there;
  • fixed PIP 24 warning on unconventional DejaVu version (denis-stepanov/dejavu#1). This change requires reinstalling DejaVu from a new tag (see README for more info). If your PIP is < 24, you are not concerned;
  • as a side effect of BroadLink addition TV support modules had to be refactored. A concept of uni-directional (HarmonyHub, BroadLink) and bi-directional (Nil, PulseAudio) controls has been implemented. The interface did not change functionally, but function signatures did change, so if you have had your own TV control module implemented, its interface would need to be adapted;
  • volume input parameter for PulseAudio was constrained to percentage of volume. Previously nearly any valid parameter accepted by pactl was possible, but it was hard to maintain that functionality in line with other controllers.

Documentation:

  • improved description of recognition options;
  • a new guide on recognition tuning in the case of unstable results;
  • new fancy presets;
  • example of 2 hours long recognition session.

1.5.0

22 Dec 01:23
Compare
Choose a tag to compare

Features:

  • #44: a comprehensive exercise of AdVent engine performance testing and tuning. As a result, default number of threads was lowered from 4 to 2, and the default listening interval was decreased from 3 to 2 seconds. Overall, this results in twice as less CPU usage and faster reaction in default configuration. Detailed results are documented in README;
  • significant boost to the database tool (db-djv-pg):
    • #4: support for directory tree scanning. It is now possible to pass folders to the import command thus eliminating the need for a complex xargs command. In the case of export, a new option -d will now create a tree DB/<country>/<channel>/<track> matching the format of the advent-db repository;
    • #34: a new option -s to import/export commands will now allow for hard synchronization between source and target. When used, it will overwrite all the tracks in target which have a SHA1 different from the source, as well as will delete all tracks in target which do not have equivalent in the source;
    • #35: support for smart overwrite: overwrite on import / export (-o option) will now only be done if SHA1 hashes of a source and a target do not match. One can still force overwrite with a new option -O;
    • #3: support for rename command allowing renaming of tracks in the database or on disk (for the latter specify the .djv file extension);
    • #36: support for dbinfo command showing a lot of information about Dejavu database and AdVent metadata in it. -c option will additionally run consistency checks on the database;
    • #42: support for vacuum command which optimizes database performance. An additional option -f will perform "hard" vacuuming by rebuilding all the tables. Operations modifying the database will now internally execute VACUUM at the end of transaction.
    • #57: long operations will now be displayed using nice progress bars, thanks to the amazing alive-progress package;
  • documentation was augmented with a table of presets for recognition options, as well as with "other uses" section;
  • fix deprecation warning from the latest PIP 22.3 on Fedora;
  • deprecate Logitech Harmony Hub and announce forthcoming support for BroadLink Universal Remote;
  • various internal refactoring.

1.4.0

21 Sep 20:44
Compare
Choose a tag to compare

Features:

  • #13: add support for microphone as input. Actually, it has been implicitly supported from day one - just never tested nor documented;
  • #14: add support for --action option allowing to select TV action between mute and lower_volume (new feature). Mute action remains a default;
  • #14: add support for --volume option allowing to specify target volume for the lower_volume action. See documentation for volume specifier formats;
  • #10: add support for --mute_timeout option allowing to specify in seconds a TV action timeout, after which TV volume is restored to its original value. The default is 600 s (10 mins); 0 disables timeout;
  • #37: incorporate results of Dejavu tuning, providing for about two times better recognition in expense of increased CPU load. This feature requires a new Dejavu release 0.1.3-ds1.3.0 and regeneration of jingles database (v20220909 or later). As a consequence, the default for hit confidence --rec_confidence is restored from 5% to 10%;
  • #40: treat jingles without entry/exit flags as non-actionable instead of always actionable;
  • various internal refactoring.

1.3.0

27 Aug 22:43
c74e3f2
Compare
Choose a tag to compare

Features:

  • #28: add support for option --rec_confidence allowing to specify hit threshold;
  • #26: decrease default hit confidence from 10% to 5%;
  • #27: print : instead of o on matches with 0% confidence;
  • #20: get rid of a GDK error in headless environment (requires new Dejavu release).

1.2.0

19 Aug 23:26
d0c72bc
Compare
Choose a tag to compare

Features:

  • #6: support for option --num_threads allowing to specify the number of recognition threads to run;
  • #6: support for option --rec_interval allowing to specify Dejavu recognition window;
  • #5: incorporate results of threads profiling.

1.1.0

17 Aug 19:31
4051a71
Compare
Choose a tag to compare

Features:

  • #18: support --tv_control nil (TV control having no effect), which is useful in testing and jingle fingerprinting;
  • #9: new option --log to log all events into a file. Levels events and debug are supported;
  • minor improvements in startup reporting (app version and TV control in effect are now reported). Jingle ID is no longer reported during a hit because it has no practical use and may vary from one database to another.

1.0.1

15 Aug 22:18
Compare
Choose a tag to compare

Bug fixes:

  • #1: fix "AttributeError: module 'os' has no attribute 'waitstatus_to_exitcode'" when using PulseAudio TV control

1.0.0

10 Aug 21:25
68c9352
Compare
Choose a tag to compare

First public release. Main features:

  • support for general purpose Linux boxes (Fedora) and for Raspberry Pi;
  • support for PulseAudio input and for digital audio connection to TV (using a HiFiBerry sound card);
  • support for Logitech Harmony Hub to control TV;
  • a tool to share contents of a Dejavu database;
  • PIP-compatible packaging;
  • documentation.