Meta query: get posts with value in a multidimensional array

You can’t, at least not efficiently. You best bet is to use the LIKE statement, but it would fail for searches like “title”, “link”, “mp3” 🙂

I suggest you build your own serialization method. For example, store the tracklist as a string like this:

Track1 title
Track2 title

Notice the new line character (\n). Use it to split the string into an array when you need to use the meta value.

Then you can have something like:

..
'meta_query' => array(
    array(
      'key'   => 'tracklist',
      'value' => 'Starway to Heaven',
      'compare' => 'LIKE',
    )
  )
...

The download links can go into a separate meta record.