Package: mmusicc
mmusicc is a lightweight audio file and metadata control and synchronization program to transfer the changes made in a master music library to a derived music library. New files or albums are converted using ffmpeg. When the file already exits, the metadata is compared und updated if it has changed. The individual tags and their processing can be freely selected by each user via a configuration file. There will be a simple Autofill future that can be used to fix small consistency errors, the rules will be editable in the config file (to be implemented). To Synchronize multiple folders at once, the folder structure, directory- and file-names must be identical at source and target, this should be given when this tool is used to one-way sync the master directory. Data can also be exported to or imported from a database (implementation still very basic) e.g. for a metadata backup.mmusicc shall not replace a metadata editor and only provides methods for automated syncing of large music libraries.mmusicc’s source code is inspired by the two music tag programsquodlibetandpuddletagand uses some code fragments of those.Installation & Usagemmusicc is still under development and should not be used to overwrite master data. Using it for ‘slave’ data is perfectly fine. Multiple test confirm that the master files are not modified and only accessed. It is also tested that the program is deterministic.pipinstallmmusiccThe script is automatically installed on system. Use--helpfor usage info or see its output atusage on mmusicc.readthedocs.org. See also the following examples:# syncing a full library to mp3mmusicc-sMusic-tMusicMp3-f.mp3--ffmpeg-options"-codec:a libmp3lame -qscale:a 2 -codec:v copy"# syncing a full library to oggmmusicc--sourceMusic--targetMusicOgg--format.ogg--ffmpeg-options"-c:a libvorbis -q 6 -vn"# syncing a full library to opusmmusicc--sourceMusic--targetMusicOgg--format.opus--ffmpeg-options"-c:a libopus -b:a 192000 -application audio -vn"# converting one file to another format. The two commads are equivalentmmusicc-sfolder_source/song.flac-t.-foggmmusicc-sfolder_source/song.flac-tsong.ogg# saving metadata to databasemmusicc-sMusic-tdbdatabase.db# importing metadata from database,
# where only tags which got a value are imported leaving others untouchedmmusicc-tMusicMp3-sdbdatabase.db--lazy# syncing A to B, where all existing metadat is deleted,
# leaving only the white listet tags on filemmusicc-sA-tB-f.ogg-white-list-tagstracktitleartistdelete-existing-metadataSupported Formats/CodecsSupported Codecs anf Formats are displayed with--help(seeusage).Additional formats/codecs will be implemented on request.For now the only formats/codecs supported are, what I need for myself.RemarksCatching every special case of certain metadata formats and transferring it to a normalized dict is nearly impossible (especially with id3). Also different tagging program’s have certain specialities how certain uncommon tags are saved or if say are even displayed. Therefore some features are not yet or only partially supported:Only one Album Cover file is supported at the moment. More will raise Errors (will be fixed soon).Support for id3.PairedTextFrames was dropped, since it is not used much and I haven’t found a good way to handle them. They might come back in the future. They are used for ‘TIPL: Involved People List’, ‘TMCL: Musicians Credits List’. Some taggers use these field for e.g arranger.Version Milestonesversionmilestone0.1.0metadata working0.2.0mmusicc working (and first package distribution (test.pypi only))0.3.0comprehensive testing and verification (release on pypi)0.5.0interactive mode with text user interface (tui) to display changes0.7.0mmusicc can be run in graphical mode from tui (state machine)