I think it could be a good idea to create two more hierarchical (category like) taxonomies, called Artists and Albums. This way, you’ll be able to query your posts based on taxonomy / term relationships.
Basically, what I’m saying is this:
- Artists -> custom hierarchical taxonomy
- List item -> custom hierarchical taxonomy
- Songs -> custom post type
- Genres -> -> custom tag taxonomy
Please refer to this link from the Codex for a better understanding:
http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters
Short example taken directly from the Codex link above, below:
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'movie_genre',
'field' => 'slug',
'terms' => array( 'action', 'comedy' ),
),
array(
'taxonomy' => 'actor',
'field' => 'id',
'terms' => array( 103, 115, 206 ),
'operator' => 'NOT IN',
),
),
);
$query = new WP_Query( $args );
UPDATE
How about creating two more custom post types, Artists and Albums, and having some metaboxes displayed on the Songs Custom Post Type (CPT) so that you can create a relationship between these ?
For example, in your Songs CPT, you could have a metabox or a custom field to hold the value for the Artists and for the Albums.
Does this make sense to you ?