If you tag your albums with genre tags per individual track, it is not possible to filter complete albums on their genre.
A filter or an auto-playlist based on genre will then only return tracks, not full albums.
To make that possible, I have created a script (well, two of them) that will create an
tag, consistent for all the album's tracks, derived from the individual track's genres.
So when using that tag for filters or playlists, complete albums will be returned.
The script uses these rules for deciding on what genres to use for this Album genre tag:
All genres that exist in at least 70% of the tracks are used.
If there are no genres that meet that condition, the threshold is lowered to 30%.
If there are also no genres that meet the 30% condition, all genres are used.
For releases that contain only two tracks, all genres for these two tracks are used.
The album genres are ordered by the frequency of them occurring in the album's tracks.
This requires Picard's Persistent Variables plugin.
Both scripts must be added individually, so do not join them together in one script.
So in MusicBee you'll need to create a custom tag that uses that tag as the source.
$set(_004_total_album_genres_count,$get_a(total))$set(_005_repeats,%_004_total_album_genres_count%))$set(_006_aggregated_genres_flat,$rreplace(%_003_aggregated_genres%,;\\s,\,))$while($lt(%_loop_count%,%_005_repeats%),$set(_007_aggregated_genres_flat_corrected,$rsearch(%_006_aggregated_genres_flat%,^.[^\,]*\,?))$set(_006_aggregated_genres_flat,$rreplace(%_006_aggregated_genres_flat%,^.[^\,]*\,?,))$copymerge(_007_aggregated_genres_flat_corrected_b,_007_aggregated_genres_flat_corrected,keep_duplicates))$setmulti(_007_aggregated_genres_flat_corrected_multi,$replace(%_007_aggregated_genres_flat_corrected_b%,\,,))$set(_008_genres_count,$lenmulti(%_007_aggregated_genres_flat_corrected_multi%))$setmulti(_009_unique_genres,$unique(%_007_aggregated_genres_flat_corrected_multi%))$set(_010_unique_genres_count,$lenmulti(%_009_unique_genres%))$foreach(%_007_aggregated_genres_flat_corrected_multi%,$set(_count_%_loop_value%,$add($if2($get(_count_%_loop_value%),0),1)))$unset(_011_tagcounts)$foreach($unique(%_007_aggregated_genres_flat_corrected_multi%),$setmulti(_011_tagcounts,%_011_tagcounts%; %_loop_value%_$get(_count_%_loop_value%)))$cleanmulti(_011_tagcounts)$set(_012_tagcounts,$rreplace(%_011_tagcounts%,\(?<=_\)\(\\d\)\(?=;|\$\),0\\1))$set(_012_tagcounts,$rreplace(%_012_tagcounts%,\(?<=_\)\(\\d\\d\)\(?=;|\$\),0\\1))$setmulti(_013_tagcounts,$rreplace(%_012_tagcounts%,^\(.[^_]*\)_\(\\d\\d\\d\),\\2_\\1))$while($lt(%_loop_count%,$sub(%_010_unique_genres_count%,1)),$setmulti(_013_tagcounts,$rreplace(%_013_tagcounts%,\(?<!_\\d\\d\\d\);\\s\(.[^_]*\)_\(\\d\\d\\d\(?=\$|;\)\),; \\2_\\1)))$setmulti(_014_tagcounts_reverse,$reversemulti($sortmulti(%_013_tagcounts%)))$set(_026_track_perc_required_70,$truncate($sub($mul(%totaltracks%,10),$mul(%totaltracks%,3)),-1))$set(_027_track_perc_flatten_70,\,$rreplace(%_014_tagcounts_reverse%,;\\s,\,))$set(_028_track_perc_list_70,\,001|\,002|\,003|\,004|\,005|\,006|\,007|\,008|\,009|\,010|\,011|\,012|\,013|\,014|\,015|\,016|\,017|\,018|\,019|\,020)$set(_029_track_perc_list_to_remove_70,$rreplace(%_028_track_perc_list_70%,\\|\,$rreplace($rreplace(%_026_track_perc_required_70%,^\(\\d\)\$,0\\1),^\(\\d\\d\)\$,0\\1).*,))$set(_030_track_perc_for_regex_70,$rreplace(%_029_track_perc_list_to_remove_70%,^\(.*\),\(\\1\)))$set(_031_track_perc_keep_70,$rreplace(%_027_track_perc_flatten_70%,%_030_track_perc_for_regex_70%,~))$set(_032_track_perc_keep_70,$rreplace(%_031_track_perc_keep_70%,~.*,))$set(_033_track_perc_keep_70,$rreplace(%_032_track_perc_keep_70%,\\d\\d\\d_,))$set(_033_track_perc_keep_70,$rreplace(%_033_track_perc_keep_70%,^\,,))$setmulti(_034_track_perc_result_70,$rreplace(%_033_track_perc_keep_70%,\,,; ))$setmulti(_035_track_perc_result_70,$replace(%_034_track_perc_result_70%,@, ))$setmulti(_criterion_result,%_035_track_perc_result_70%)$if(%_criterion_result%,,$set(_036_track_perc_required_30,$truncate($sub($mul(%totaltracks%,10),$mul(%totaltracks%,7)),-1)))$if(%_036_track_perc_required_30%,$set(_037_track_perc_flatten_30,\,$rreplace(%_014_tagcounts_reverse%,;\\s,\,))$set(_038_track_perc_list_30,\,001|\,002|\,003|\,004|\,005|\,006|\,007|\,008|\,009|\,010|\,011|\,012|\,013|\,014|\,015|\,016|\,017|\,018|\,019|\,020)$set(_039_track_perc_list_to_remove_30,$rreplace(%_038_track_perc_list_30%,\\|\,$rreplace($rreplace(%_036_track_perc_required_30%,^\(\\d\)\$,0\\1),^\(\\d\\d\)\$,0\\1).*,))$set(_040_track_perc_for_regex_30,$rreplace(%_039_track_perc_list_to_remove_30%,^\(.*\),\(\\1\)))$set(_041_track_perc_keep_30,$rreplace(%_037_track_perc_flatten_30%,%_040_track_perc_for_regex_30%,~))$set(_042_track_perc_keep_30,$rreplace(%_041_track_perc_keep_30%,~.*,))$set(_043_track_perc_keep_30,$rreplace(%_042_track_perc_keep_30%,\\d\\d\\d_,))$set(_043_track_perc_keep_30,$rreplace(%_043_track_perc_keep_30%,^\,,))$setmulti(_044_track_perc_result_30,$rreplace(%_043_track_perc_keep_30%,\,,; ))$setmulti(_045_track_perc_result_30,$replace(%_044_track_perc_result_30%,@, ))$setmulti(_criterion_result,%_045_track_perc_result_30%),)$if(%_criterion_result%,,$set(_046_all_more_than_once,$rreplace(%_027_track_perc_flatten_70%,\,001,~))$set(_047_all_more_than_once,$rreplace(%_046_all_more_than_once%,~.*,))$set(_048_all_more_than_once,$rreplace(%_047_all_more_than_once%,\\d\\d\\d_,))$set(_049_all_more_than_once,$rreplace(%_048_all_more_than_once%,^\,,))$setmulti(_050_all_more_than_once,$replace($replace(%_049_all_more_than_once%,@, ),\,,; ))$setmulti(_criterion_result,%_050_all_more_than_once%))$if($eq(%_026_track_perc_required_70%,1),$setmulti(_051_all_unique_genres,$replace(%_009_unique_genres%,@, )),)$if(%_051_all_unique_genres%,$setmulti(_criterion_result,%_051_all_unique_genres%),)$set(_000_push,@$replace(%_criterion_result%,; ,@)@)$set(_001_push,$rreplace(%_000_push%,\(^.*\(?=@Soul\)@?\)\(Soul\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Electronic\)@?\)\(Electronic\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Folk\)@?\)\(Folk\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Latin\)@?\)\(Latin\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Metal\)@?\)\(Metal\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Jazz\)@?\)\(Jazz\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Classical\)@?\)\(Classical\(?=?\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@House\)@?\)\(House\(?=?\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Hip hop\)@?\)\(Hip hop\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Rock\)@?\)\(Rock\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_001_push,$rreplace(%_001_push%,\(^.*\(?=@Pop\)@?\)\(Pop\(?=@\)@\)\(.*\),\\1\\3\\2))$set(_002_push,$rreplace(%_001_push%,@{2\,},@))$set(_003_push,$rreplace(%_002_push%,^@,))$set(_004_push,$rreplace(%_003_push%,@\$,))$setmulti(album_genres,$replace(%_004_push%,@,; ))
P.S.