Compare commits
6 Commits
1df976bcae
...
4e2bb8aab9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e2bb8aab9 | ||
|
|
e960b18462 | ||
|
|
7ff9923113 | ||
|
|
a0cb1bae1b | ||
|
|
1a75cd4764 | ||
|
|
298f6f1c60 |
14
README.md
14
README.md
@ -20,13 +20,13 @@ in the same format, it will want a constant sample-rate and bitrate. You can
|
|||||||
have AtOM do that!
|
have AtOM do that!
|
||||||
|
|
||||||
Here's what I have for my tests:
|
Here's what I have for my tests:
|
||||||
| Directory | Format | Sample rate | Bitrate | Channels | FAT32 compat. | ASCII | Size |
|
| Directory | Format | Sample rate | Bitrate | Channels | Normalize | FAT32 compat. | ASCII | Size |
|
||||||
| --------- | ------ | ----------- | ------- | -------- | ------------- | ----- | ---- |
|
| --------- | ------ | ----------- | --------- | -------- | --------- | ------------- | ----- | ---- |
|
||||||
| 0-Full | Mixed | Mixed | Mixed | Mixed | No | No | 508G |
|
| 0-Full | Mixed | Mixed | Mixed | Mixed | No | No | No | 508G |
|
||||||
| 1-High | Opus | Same | 128 | Same | Yes | No | 101G |
|
| 1-High | Vorbis | Original | Quality 5 | Same | No | Yes | No | 136G |
|
||||||
| 2-Medium | Opus | Same | 64 | Same | Yes | No | 59G |
|
| 2-Medium | Opus | Original | 64 | Same | No | Yes | No | 58G |
|
||||||
| 3-Small | Opus | Same | 32 | Same | Yes | No | 30G |
|
| 3-Small | Opus | Original | 32 | Same | No | Yes | No | 30G |
|
||||||
| 4-MP3 | MP3 | 44100 | 128 | 2 | Yes | Yes | 114G |
|
| 4-MP3 | MP3 | 44100 | 128 | 2 | No | Yes | Yes | 113G |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
14
doc/config
14
doc/config
@ -47,6 +47,20 @@ Sections:
|
|||||||
Default: /var/lib/mpd/music
|
Default: /var/lib/mpd/music
|
||||||
* skip <directory>: String. Files in <directory> will be ignored. Note that
|
* skip <directory>: String. Files in <directory> will be ignored. Note that
|
||||||
<directory> can be any expression accepted by find.
|
<directory> can be any expression accepted by find.
|
||||||
|
* tag-guessing <expression>: String. Filenaming scheme to allow for guessing
|
||||||
|
tags from filenames and directories. The placeholders are the same as thosefor rename below:
|
||||||
|
%{album},
|
||||||
|
%{albumartist},
|
||||||
|
%{artist},
|
||||||
|
%{disc},
|
||||||
|
%{genre},
|
||||||
|
%{releasecountry},
|
||||||
|
%{title},
|
||||||
|
%{track},
|
||||||
|
%{year}.
|
||||||
|
* tag-guessing-trigger <tag>: String. Specify multiple times for multiple
|
||||||
|
tags.
|
||||||
|
If <tag> cannot be fetched by tag readers, guessing will be attempted.
|
||||||
|
|
||||||
[<some arbitrary string>]
|
[<some arbitrary string>]
|
||||||
Each section not named 'general' or 'source' will define a new destination.
|
Each section not named 'general' or 'source' will define a new destination.
|
||||||
|
|||||||
@ -49,6 +49,33 @@ skip /last
|
|||||||
skip /lastfm
|
skip /lastfm
|
||||||
skip /zzz-atrier
|
skip /zzz-atrier
|
||||||
|
|
||||||
|
# Tag guessing expresssion. Uses same values as "rename" below. This is used to
|
||||||
|
# guess tags from filenames and paths. This is useful for files with no tags but
|
||||||
|
# can lead to issues if a strict naming scheme is not used.
|
||||||
|
# Tag guessing disabled if unset (default).
|
||||||
|
# %{album},
|
||||||
|
# %{albumartist},
|
||||||
|
# %{artist},
|
||||||
|
# %{disc} (1 digit),
|
||||||
|
# %{genre},
|
||||||
|
# %{releasecountry} (2 letter code),
|
||||||
|
# %{title},
|
||||||
|
# %{track} (2 digits),
|
||||||
|
# %{year}.
|
||||||
|
#tag-guessing %{genre}/%{albumartist}/%{year}-%{album}-%{releasecountry}/%{disc}%{track}--%{artist}-%{title}
|
||||||
|
|
||||||
|
# Guess tags on missing infos:
|
||||||
|
#tag-guessing-trigger artist
|
||||||
|
#tag-guessing-trigger albumartist
|
||||||
|
#tag-guessing-trigger album
|
||||||
|
#tag-guessing-trigger releasecountry
|
||||||
|
#tag-guessing-trigger disc
|
||||||
|
#tag-guessing-trigger title
|
||||||
|
#tag-guessing-trigger track
|
||||||
|
#tag-guessing-trigger year
|
||||||
|
#tag-guessing-trigger genre
|
||||||
|
|
||||||
|
|
||||||
[Vorbis]
|
[Vorbis]
|
||||||
# Each section not named 'general' or 'source' will define a new destination.
|
# Each section not named 'general' or 'source' will define a new destination.
|
||||||
|
|
||||||
|
|||||||
@ -7,5 +7,11 @@ getConfigSource() {
|
|||||||
'skip')
|
'skip')
|
||||||
skippeddirectories+=( "$value" )
|
skippeddirectories+=( "$value" )
|
||||||
;;
|
;;
|
||||||
|
'tag-guessing')
|
||||||
|
tagguessing="$value"
|
||||||
|
;;
|
||||||
|
'tag-guessing-trigger')
|
||||||
|
tagguessingtriggers+=( "$value" )
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,16 @@ printConfig() {
|
|||||||
printed=1
|
printed=1
|
||||||
done
|
done
|
||||||
unset printed
|
unset printed
|
||||||
|
echo " |Tag guessing expression|$tagguessing"
|
||||||
|
for trigger in "${tagguessingtriggers[@]}"
|
||||||
|
do
|
||||||
|
(( printed )) \
|
||||||
|
&& echo -n ' | |' \
|
||||||
|
|| echo -n ' |Tag guessing triggers|'
|
||||||
|
echo "$trigger"
|
||||||
|
printed=1
|
||||||
|
done
|
||||||
|
|
||||||
for destination in ${destinations[@]}
|
for destination in ${destinations[@]}
|
||||||
do
|
do
|
||||||
cat <<-EOF
|
cat <<-EOF
|
||||||
|
|||||||
@ -51,6 +51,32 @@ path $sourcepath
|
|||||||
cat <<-EOCfg
|
cat <<-EOCfg
|
||||||
|
|
||||||
|
|
||||||
|
# Tag guessing expresssion. Uses same values as "rename" below. This is used to
|
||||||
|
# guess tags from filenames and paths. This is useful for files with no tags but
|
||||||
|
# can lead to issues if a strict naming scheme is not used.
|
||||||
|
# Tag guessing disabled if unset (default).
|
||||||
|
# %{album},
|
||||||
|
# %{albumartist},
|
||||||
|
# %{artist},
|
||||||
|
# %{disc} (1 digit),
|
||||||
|
# %{genre},
|
||||||
|
# %{releasecountry} (2 letter code),
|
||||||
|
# %{title},
|
||||||
|
# %{track} (2 digits),
|
||||||
|
# %{year}.
|
||||||
|
#tag-guessing %{genre}/%{albumartist}/%{year}-%{album}-%{releasecountry}/%{disc}%{track}--%{artist}-%{title}
|
||||||
|
tag-guessing $tagguessing
|
||||||
|
|
||||||
|
# Guess tags on missing infos:
|
||||||
|
#tag-guessing-trigger artist
|
||||||
|
#tag-guessing-trigger albumartist
|
||||||
|
EOCfg
|
||||||
|
for trigger in "${tagguessingtriggers[@]}"
|
||||||
|
do
|
||||||
|
echo $'tag-guessing-trigger\t'"$trigger"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
EOCfg
|
EOCfg
|
||||||
for destination in "${destinations[@]}"
|
for destination in "${destinations[@]}"
|
||||||
do
|
do
|
||||||
|
|||||||
@ -55,4 +55,58 @@ setupSource() {
|
|||||||
done
|
done
|
||||||
unset count
|
unset count
|
||||||
cd - >/dev/null
|
cd - >/dev/null
|
||||||
|
cat <<-EODesc
|
||||||
|
|
||||||
|
Tag guessing pattern:
|
||||||
|
This is a pattern that will be used to guess the tag names of files
|
||||||
|
that do not have any tags. The pattern is a string with the following
|
||||||
|
variables:
|
||||||
|
%{album} - The album name
|
||||||
|
%{albumartist} - The album artist name
|
||||||
|
%{artist} - The artist name
|
||||||
|
%{disc} - The disc number - 1 digit
|
||||||
|
%{genre} - The genre name
|
||||||
|
%{releasecountry} - The country of the release - 2 letter code
|
||||||
|
%{title} - The title of the track
|
||||||
|
%{track} - The track number - 2 digits
|
||||||
|
%{year} - The year or date of the album
|
||||||
|
EODesc
|
||||||
|
read \
|
||||||
|
-e \
|
||||||
|
-i"${tagguessing} \
|
||||||
|
-p'Pattern: ' \
|
||||||
|
tagguessing
|
||||||
|
cat <<-EODesc
|
||||||
|
|
||||||
|
Tag guessing trigger(s):
|
||||||
|
Tags whose absence will trigger tag guessing.
|
||||||
|
album - The album name
|
||||||
|
albumartist - The album artist name
|
||||||
|
artist - The artist name
|
||||||
|
disc - The disc number
|
||||||
|
genre - The genre name
|
||||||
|
releasecountry - The country of the release
|
||||||
|
title - The title of the track
|
||||||
|
track - The track number
|
||||||
|
year - The year or date of the album
|
||||||
|
EODesc
|
||||||
|
count=${#tagguessingtriggers[@]}
|
||||||
|
for (( i=0 ; 1 ; i++ ))
|
||||||
|
do
|
||||||
|
read \
|
||||||
|
-e \
|
||||||
|
${tagguessingtriggers[i]+-i"${tagguessingtriggers[i]}"}\
|
||||||
|
-p'Tag guessing trigger: ' \
|
||||||
|
value
|
||||||
|
if [ -n "$value" ]
|
||||||
|
then
|
||||||
|
tagguessingtriggers[i]="$value"
|
||||||
|
elif (( i < count ))
|
||||||
|
then
|
||||||
|
unset tagguessingtriggers[i]
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
unset count
|
||||||
}
|
}
|
||||||
|
|||||||
10
lib/tags/getInfos::guess
Normal file
10
lib/tags/getInfos::guess
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
getInfosGuess_version='guess-1'
|
||||||
|
tagreaders+=( "$getInfosGuess_version" )
|
||||||
|
getInfos::Guess() {
|
||||||
|
tagreader="$getInfosGuess_version"
|
||||||
|
local \
|
||||||
|
infos \
|
||||||
|
|
||||||
|
: #FIXME
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user