An idea to help organize your music with extra metadata using a SQL Server Database. This repository searches through a folder and gathers metadata already in mp3 files to add to a database
2
stars
1
forks
source link
Usability Improvements: More Advanced Data Matching, Better Logging, Streamlined Configuration #14
The Artist Persons table was an aggregate of this data, now we have the original data in case it becomes necessary
Better splitting of person values
Many files have data such as Person 1; Person2; Person3 which should reasonably be split out into multiple rows. This was implemented with the following rules:
Separate names based on the following characters: ,, /, &, ;
If the string contains excatly 1 , and does not contain any other separators, this is likely a single person, written in a "professional" form (i.e. LastName, FirstName MiddleInitial.)
Added Album Art table
Any good music app needs to be able to read album art. This data is no captured after gathering the music metadata
Calculates the mode pixel color on the album art
Logging Changes:
A percentage complete is now logged to the console
All logs are output both to the console and to separate files
.wav files or files that should probably have more data can be found in files_with_limited_data.txt
Users should also query the database for NULL values to determine if files need more data
Duplicate files are now ignored, but logged to the skipped_duplicates.txt file
A longer form of what is output to the console about the progress of generation is logged to the generation.txt file. Here you can find how the tool selected data to put into the database based on the file.
Usability/Configs:
Make the music path configurable
The path is now explicitly an absolute path, but you can also get to the root of the repo by prefixing ../../ to your path
Allow generating only the album art or only the music metadata configurable
Allow deleting the database automatically at the start of generation to be configurable
Streamline the database configuration for EF by making a separate configuration field
Note that the initialize sql seemingly cannot be run because of the GO syntax and function creation, so the user will still have to initialize their database, then run the tool.
Data Changes:
Person 1; Person2; Person3
which should reasonably be split out into multiple rows. This was implemented with the following rules:,
,/
,&
,;
,
and does not contain any other separators, this is likely a single person, written in a "professional" form (i.e.LastName, FirstName MiddleInitial.
)Logging Changes:
.wav
files or files that should probably have more data can be found infiles_with_limited_data.txt
NULL
values to determine if files need more dataskipped_duplicates.txt
filegeneration.txt
file. Here you can find how the tool selected data to put into the database based on the file.Usability/Configs:
../../
to your pathGO
syntax and function creation, so the user will still have to initialize their database, then run the tool.