It turns out programs output some things to StandardOutput, and other things to StandardError. So the StandardError stream may contain verbose output as well as errors. To display errors properly, I now search the StandardError stream for the word "error", and then display the entire line containing that word. Yes, it's an ugly hack, and it's not perfect, but "error" is fairly universal word for all error messages, so at least I'll print those messages. I also created another flag "Verbose" which will display the entire StandardError stream, which will include detailed output from some external programs. Yes another hack, but it works.
In the year since my last post, I've upgraded AATB with many new features and bug fixes. The latest version 5.7.4 has the following new features:
Added ALAC compression, removed it, but then added it back again (but now treat it like other lossy compression codecs, as FLAC is the only lossless compression needed). If you need ALAC, it's supported for compression only.
Added function to join WAV files together into one combined WAV file. This is useful when wanting to edit an entire live concert, then retrack it later.
Discovered the latest FLAC version 1.3.4 breaks compatibility with the SHNtool function, so I reverted back to 1.3.2.
Modified algorithms considerably to derive concert and track metadata, including incorporating many new data structures into the Dir class.
Cleaned up algorithms and code to increase efficiency, including not reading metadata multiple times when compressing to more then one audio compression format simultaneously, and not deriving metadata for raw audio.
Enabled printing output from the StandardError stream for external processes with the verbose flag "--hh|--verbose". This helps a lot when trying to find processing errors.
Added several new exception handling sections for file handling code, to prevent program dumps.
Added capability to convert Apple AIF files to WAV format.
Added capability to rename WAV files to correspond with a setlist in the info.txt file.
Upgraded .NET to version 7.0, which should be supported for the next 5 years at least.
I've incorporated lots of other bug fixes, and this release should be very stable. If you experience any exceptions or crashes, please create a ticket so I can address it.
Chris... read more
AATB is fairly mature at this point, so this is pretty close to the final version, unless I come up with some other features.
I've added ALAC, and other codecs can be added, but doing so is not trivial, and requires adding and modifying several blocks of code. I've updated it with code optimizations, added support for creating sub-directory names for compressed audio as title case (first letter of word capitalized) or lower case, otherwise they just follow the spelling and case of the parent directory. I've also spent some time to comment it properly to make the code more readable for others. I have updated the .NET underpinnings several times over the life of the project. Earlier this year I upgraded the project from .NET 4.8 to .NET 5.0 which didn't seem too much of a change, but it turned out to be cumbersome to modify the project. In the end I created another project and restored the AATB files from backup. So I was a little apprehensive about updating it again to Visual Studio 2022 and .NET 6.0 this month, but both of those changes turned out to be easy, no problems at all.
Some more info on my methods. All metadata in the info.txt file is for tagging only. This is to reduce confusion, the sub-directory names will match the parent directory name, minus spaces and adding punctuation to align with my template. Yes there are other ways to do this, I picked one way and I'm sticking with it.
AATB is easy to use with the command line interface, and you can process lots of concerts or CDs in short order, with no mistakes in compression, md5 checksums or playlists. Eventually I will make a graphical Windows version an allow you to choose the source and destination directories, but it won't be as efficient as using the command line, so I will have to create another program entirely. I use it all the time to archive CDs and live concert recordings. If you have any feedback on your experience with this program, please write a review.
Chris Cantwell
I've released the final version of "4.0". Lots of bug fixes. This version allows you to inport artist and track metadata from a previously venerated CD cue sheet file (.cue). I used the standard for cue sheets. I tested it with cue sheets generated by Exact Audio Copy, and also a cue sheet generated by aatb itself. Here's an example. Note: CD Frame = 1/75 sec. The index time starts at 0, and is cumulative.
FILE "My Bloody Valentine - Loveless.wav" WAVE
TRACK 01 AUDIO
TITLE "Shallow Grave"
PERFORMER "My Bloody Valentine"
INDEX 01 00:00:00 (Min:Sec:Frames)
TRACK 02 AUDIO
TITLE "Wait For Me"
PERFORMER "My Bloody Valentine"
INDEX 01 04:32:67 (Min:Sec:Frames)
AATB looks for "TRACK dd AUDIO" string, then takes the next sucessive TITLE and PERFORMER tags to be the track name and artist, respectively. It just loads all the track informatino in sequence, adn then checks at the ensd to make sure the list of tracks and the actual number of audio files are the same, otherwise it aborts the process and just uses the file names to generate track metadata.
Chris
Opus is the newest lossy codec, and it seems to work pretty well. However it has some issues:
1. It is not widely supported as ogg-vorbis, although I can play it back in VLC and on my iPad.
2. Tracknumber is missing from metadata options
3. Metadata is not viewable in Windows Explorer
4. The MediaTab plugin to Windows Explorer will not recognize opus files
Try it out if you want to experiment. The program opusenc.exe must be located in the path, this is one of the utilties in the "Audio Tools" archive.
aatb --compress --ogg -u... read more
Welcome to the Audio Archive Toolbox project, a front end to various tools for audio archivists
I'm a proliferate audio archivist (aka "taper", from back in the days of actual magnetic tape..) who has been recording live music since 2000. These days tapers record digitally to flash media. In order to make the resultant files useful they need to edited, and then archived by compressing the files in one of several formats, both lossy (non-reversible) and lossless (reversible). I won't get into the pros and cons of different compression formats here, but suffice to say lossy compression formats were created to save storage space, by using pyscho-acoustic algorithms to remove audio that would be masked by louder parts of the recording and not normally be audible. Feel free to research more on this topic.... read more