Skip to content
This repository has been archived by the owner on Feb 17, 2024. It is now read-only.

Releases: smxi/acxi

3.3.29

30 Jun 03:43
Compare
Choose a tag to compare

This is another big trader release, lots of new features, mostly specialized but very useful. Note that the official 'release' 3.3.28 was skipped because all these changes sort of flowed into one another, and took a while, and a lot of testing, to get stable and reasonably reliable.

New features are:

  1. Added support for AAC and M4A. Note that if you want tags to transfer, use the m4a container format, if not, use aac. This requires using either the native ffmpeg aac codec, or the better regarded libfdk_aac codec. Only supports input type flac.

  2. --prefill / -E takes data from well structured and formatted info.txt files and transfers it to auto.tag file. Saves a lot of time. See --prefill-file filename for using alternate info file names, but I don't recommend doing that. Note that -E requires either -S or -M autotag creation options. See man page for required structures.

  3. Updated error handlers for using non compatible options together, that logic had been too loose, and permitted using options that could not be used together.

  4. For the obsessive, made man page 80 columns wide, ok, who cares? nobody, except people trying to work with command line tools in absurdly narrow terminal windows, but there you have it. We aim to please. General man and help cleanup and fixes as well. Have to update and fix docs once in a while, afterall!!

  5. Added default -C/-S/-M auto.tag create to generate 10, not 8, performer lines. Why not, sometimes groups are big.

  6. For larger collections, had forgotten to 'prune' excluded directories from list of files to go through, that leads to slow downs when the dataset is very large, that now prunes as expected. that's for File::Find operations.

  7. To compliment -E prefill, and speed up tagging even more, added -X/---infofix, which cleans up info.txt file in preparation for prefill of auto.tag. This is getting close to as much as can practically be done without implementiing machine learning, heh. But it's VERY fast now to process a standard show or recording. Any further speedups will result in much less time saved than these did. See man page for -X options and action explanations. d option fixes dates to ISO YYYY-MM-DD format; n fixes track numbers in file, which -E requires to be a specific format; t fixes upper/lower case track titles, wraps track times after title in parentheses if missing (-E ignores those when updating track titles), and w writes the changes to file. Without w, only what would have happened prints out in terminal, with w, the changes are written to file. Very effective and convenient.

And that's it, while this will never be done, the logic is now radically enhanced, and really has optimized the process of dealing with audio collection tagging while not resorting to the types of automated and often drastically wrong bulk taggers, which can never be reliable due to the randomness of user data and behavior, but the steps are now very optimized and generally require very little effort to yield excellent and reliable tagging results.

Enjoy, while most of these new features are very specialized, if you recognize what is being done and appreciate the ability to create high quality and reliable tagging, you may just be among the people who will benefit from these changes. If not, well, that's fine too, this wasn't made for you in that case, so you can move along, nothing to see here.

Bug fix!!! Oops... 3.3.26 flac > flac had issue.

23 Aug 04:56
Compare
Choose a tag to compare

Many thanks to issue #9 who pointed out that the small changes that made flac to flac conversion possible inadvertently broke flac to lossy conversions, which was obviously a bad thing.

Also added opus type to --ffmpeg, to make it complete for the free audio codecs. Rarely used, but now you can.

Used this mistake to refactor the validations a bit more to make it easier to avoid such mistakes in the future, and also updated the man page to add some new options and features which were not completely documented, or documented inconsistently.

Flac > Flac conversion, tiny update

18 Aug 17:46
Compare
Choose a tag to compare

DON'T USE THIS RELEASE!!! It's broken!!! Use 3.3.27 or current stable branch commit, which has this corrected!! Sorry about that.

Just because, well, sometimes in rare cases you might want to rerip flac files you got from some random place to a new set of flac files.

For example, if you get some old flacs, and just want to make sure they are actually up to date and with the quality level you want, you just run:

acxi -i flac -o flac -s [source] -d [destination] -q 8

and away you go, new flacs. Note, I came across a case where a very old flac file would not convert to a lossy format because there was something wrong with the flac formatting, the codec was too old that had been used to convert it, or something, in the end, with that one, I just used audacity, open file, export to itself as flac, then it all worked, but I thought, well, why not? Sometimes you have flacs you have little to no idea about how they were made, and maybe you prefer always having quality 8, as in the above example, and don't want to spend any time researching the old flac files.

As changes go, this may be the smallest one ever, I think I only had to add something like 4 to 8 characters in acxi, but might as well call it the current acxi re releases.

Bug fix release. -M used with --start exposed a small bug in auto.tag generation.

04 May 06:45
Compare
Choose a tag to compare

Found a small bug, if -M multidisc auto.tag file generated, and --start used that is not 1, the disc totals would not reflect the different --start value.

There was actually another bug in the logic, but it was only exposed when -M + --start were used together.

Point release - enforce -s/--source use for tagging/checksum options.

23 Apr 19:53
Compare
Choose a tag to compare

Only one change, but I realized I kept forgetting to set -s explicitly for -A, -C, -S, -M, -G, -T, -I, -V tagging or checksum options. That's actually quite dangerous to your collection, particularly when using something like -I or -T, and I'd made that mistake enough times to realize I had to enforce -s explicit use for these.

That's all, have a nice day.

Consistency enhancements for --tag and --clean, man, --exclude

12 Apr 19:24
Compare
Choose a tag to compare

Some small fixes, to make things a bit more consistent and intuitive.

  1. Added 'UNSET' value to --tag, so you can remove a single or more tags and their content, not just modify or add them.

  2. A slightly complicated logical puzzle, now --clean also removes excluded directories / files as expected, and subsequent sync acfions will not create the excluded directories, which was the case before this correction.

  3. Man page edits and fixes.

  4. Made 'unset' into 'UNSET' for --exclude to make it match other UNSET items re upper/lower case. Will transform to upper case internally so no actual change as far as users are concerned, but wanted to make things more overall consistent.

Small features, adjustments, improvements

10 Mar 02:44
Compare
Choose a tag to compare

Some small and convenient updates:

  1. Added --start [integer] to let you make tag file generation numbering start from 0 to any integer. This lets you match your tagged track numbers to file track numbers, say, starting at 00.flac, or starting at 05.flac, now the acxi generated auto.tag will reflect that as long as you use the --start [integer] when generating the test file. Note that if you forget, you can just run acxi -Ss./ --test --start 0 for example which will print out the disk/track numbers to terminal and you can just copy that into your auto.tag file if you already had started it.

  2. Another corner case feature, --recurse [integer], let's you run acxi only on the directory you want, going in from 0 to x levels. This has various utility, for instance, if you don't want to include a subdirectory of flacs, you would use -Ss./ --recurse 0 and it will only generate auto.tag data for the level you are in.

  3. Issue #8 requested a way to override default behavior to skip all '.' dot files, added --dot, --no-dot [override for if you use DOT=true in configuration file], and configuration item DOT, which takes true/false value. Since false is the default acxi behavior, the only value that makes sense to use there is true, otherwise don't use that configuration item.

Fixed a few small glitches, but nothing worth noting.

Bug fix, small enhancement

23 Jan 21:18
Compare
Choose a tag to compare

Another bug fix. Issue #7 noted I'd failed to properly filter the tag data in flac -> mp3 conversions. This led to encoding errors and I assume failures. Solution was simple, add filter_item to mp3 tagging. Tested and resolved issue, confirmed fixed.

Small enhancement, since it was trivial to do, added AIF lossless type to supported list of types to convert to flac. Basically just extends the shn->flac logic by adding AIF. In testing, realized that also, ffmpeg transfers the tags from AIF to FLAC seamlessly, so that was also nice to see.

Urgent bug fix release!

08 Jan 22:58
Compare
Choose a tag to compare

Thanks issue #6, soerenschneider, for reporting a bug that made acxi not start on Perl versions less than 5.028. Accidentally used a syntax that only works on 5.028 and newer Perls. Initialized a state array variable, which is only supported for hashes and arrays as of 5.028, before that perl will exit on start with error.

Also fixed a few help menu and man page glitches, typos, slightly wrong explanations, etc.

But this mainly is a fix to update the releases so the bug introduced with File::Find:prune in the 3.3.19 release won't impact anyone anymore who is getting the release version of acxi (generally, just use the latest commit though, and update acxi from here using the -U updater option), since acxi will not start if you have Perl older than 5.028.

New features, more tagging / flac meta data processing tools!

01 Jan 02:18
Compare
Choose a tag to compare

This turned into a big release, lots of new features, mostly around making tagging and image embedding faster and easier. Also some bug fixes that matter in corner cases.

  1. Expanded auto.tag to have 8 PERFORMER, 5 COMMENT, 4 SOURCE, items, and added CDDB and ISRC in case you want to add or preserve those CD database ID values. This should be enough lines to handle most common situations.
  2. Fixed -D checksum delete, better handling of weird ffp.txt and md5.txt type file names, now it will catch and delete more than before.
  3. Finally figured out how to fix an annoying error that would pop up when File::Find was trying to read files in a root only readable directory, like lost+found, now correctly using File::Find::prune for all non readable directories. Could not use this for non-readable files because I found cases of readable files tripping the non readable input warning message. Only shows the message for each directory once per update to avoid redundant messages.
  4. New feature! --image/-I takes file name, or full path, to image file to embed into flac files. This is a flac only feature. Note that I urge moving to opus if you like embedded album art, opus supports natively getting the meta data, including image blocks, from flac files, but ogg only supports the comment block, doing images with ogg is a pain and is probably never going to happen in acxi, unless someone provides a neat and clean patch.
  5. Another new feature, --tag/-T, which takes an argument of structure: "TAG1%:value^^TAG2%:value", where TAGx is the name of the FLAC comment field you want to replace or update or add. This lets you update for example all the files in a folder to have the same GENRE, or update artist/album name, or dates, whatever.
  6. Found an oversight, file name escaping was not being done on tagging, only syncing, so I made new escape_file and unescape_file subroutines, and now everything escapes and unescapes as expected. Tested on worst case file names i use for testing purposes.
  7. Added -R as shortcut for --remove-images now that --images is running, that can be useful. Note that --autotag and --image will never add images if the flac file already has image blocks in it, so -R is required to force the removal there.
  8. Added --remove-padding/-P option, to force attempt at padding removal on tagging updates. This really slows tagging down, and as far as I could tell, repeated tagging does not appear to change padding, so I made this a non default action for -A and -T actions.

And this makes acxi even more collection maintenance friendly, for easy imaging of your existing non imaged flac files, then subsequent conversion to opus, which then creates very nice and attractive opus files for your media player. Note that all ogg functionality remains, except for transferring the images from the flac files, that according to my research appears to be something the vorbis group has no interest at all in making a native feature of oggenc, no idea why, but that's how it seems to be heading as of now.