{ lib, pkgs, config, ... }: { programs.beets.settings = { xtractor = { # This option is not yet implemented, thus requiring the hook auto = true; dry-run = false; # Writes the bpm key to the media files write = true; threads = 0; # Also run for files, which already have the required keys force = true; quiet = false; keep_output = true; keep_profiles = true; output_path = "${config.xdg.dataHome}/beets/xtactor"; essentia_extractor = "${lib.getExe pkgs.essentia-extractor}"; extractor_profile = { highlevel = { svm_models = let m = pkgs.beetsExtraPlugins.xtractor.modules; in [ "${m}/danceability.history" "${m}/danceability.history.param" "${m}/danceability.history.results.html" "${m}/gender.history" "${m}/gender.history.param" "${m}/gender.history.results.html" "${m}/genre_dortmund.history" "${m}/genre_dortmund.history.param" "${m}/genre_dortmund.history.results.html" "${m}/genre_electronic.history" "${m}/genre_electronic.history.param" "${m}/genre_electronic.history.results.html" "${m}/genre_rosamerica.history" "${m}/genre_rosamerica.history.param" "${m}/genre_rosamerica.history.results.html" "${m}/genre_tzanetakis.history" "${m}/genre_tzanetakis.history.param" "${m}/genre_tzanetakis.history.results.html" "${m}/ismir04_rhythm.history" "${m}/ismir04_rhythm.history.param" "${m}/ismir04_rhythm.history.results.html" "${m}/mood_acoustic.history" "${m}/mood_acoustic.history.param" "${m}/mood_acoustic.history.results.html" "${m}/mood_aggressive.history" "${m}/mood_aggressive.history.param" "${m}/mood_aggressive.history.results.html" "${m}/mood_electronic.history" "${m}/mood_electronic.history.param" "${m}/mood_electronic.history.results.html" "${m}/mood_happy.history" "${m}/mood_happy.history.param" "${m}/mood_happy.history.results.html" "${m}/mood_party.history" "${m}/mood_party.history.param" "${m}/mood_party.history.results.html" "${m}/mood_relaxed.history" "${m}/mood_relaxed.history.param" "${m}/mood_relaxed.history.results.html" "${m}/mood_sad.history" "${m}/mood_sad.history.param" "${m}/mood_sad.history.results.html" "${m}/moods_mirex.history" "${m}/moods_mirex.history.param" "${m}/moods_mirex.history.results.html" "${m}/timbre.history" "${m}/timbre.history.param" "${m}/timbre.history.results.html" "${m}/tonal_atonal.history" "${m}/tonal_atonal.history.param" "${m}/tonal_atonal.history.results.html" "${m}/voice_instrumental.history" "${m}/voice_instrumental.history.param" "${m}/voice_instrumental.history.results.html" ]; }; }; }; hook = { hooks = [ { event = "import"; command = "echo Remember to run 'beet xtractor'!"; } ]; }; }; }