about summary refs log blame commit diff stats
path: root/modules/home.legacy/conf/beets/plugins/xtractor/default.nix
blob: d4582c5fdc2eb2098339b925881dce340288794b (plain) (tree)























                                                                   
                                                       



































































                                                            
{
  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.models;
          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'!";
        }
      ];
    };
  };
}