class_docstr: *MUSDB_HQ* :cite:`MUSDB18HQ` dataset.
  
  Args:
      root (str or Path): Root directory where the dataset's top level directory is found
      subset (str): Subset of the dataset to use. Options: [``"train"``, ``"test"``].
      sources (List[str] or None, optional): Sources extract data from.
          List can contain the following options: [``"bass"``, ``"drums"``, ``"other"``, ``"mixture"``, ``"vocals"``].
          If ``None``, dataset consists of tracks except mixture.
          (default: ``None``)
      split (str or None, optional): Whether to split training set into train and validation set.
          If ``None``, no splitting occurs. If ``train`` or ``validation``, returns respective set.
          (default: ``None``)
      download (bool, optional): Whether to download the dataset if it is not found at root path.
          (default: ``False``)
code: def __init__(
      self,
      root: Union[str, Path],
      subset: str,
      sources: Optional[List[str]] = None,
      split: Optional[str] = None,
      download: bool = False,
  ) -> None:
      self.sources = (
          ["bass", "drums", "other", "vocals"]
          if not sources
          else sources
      )
      self.split = split
  
      basename = os.path.basename(_URL)
      archive = os.path.join(root, basename)
      basename = basename.rsplit(".", 2)[0]
  
      if subset not in ["test", "train"]:
          raise ValueError("`subset` must be one of ['test', 'train']")
      if self.split is not None and self.split not in [
          "train",
          "validation",
      ]:
          raise ValueError(
              "`split` must be one of ['train', 'validation']"
          )
      base_path = os.path.join(root, basename)
      self._path = os.path.join(base_path, subset)
      if not os.path.isdir(self._path):
          if not os.path.isfile(archive):
              if not download:
                  raise RuntimeError(
                      "Dataset not found. Please use `download=True` to download"
                  )
              download_url_to_file(_URL, archive, hash_prefix=_CHECKSUM)
          os.makedirs(base_path, exist_ok=True)
          _extract_zip(archive, base_path)
  
      self.names = self._collect_songs()
  
file_path: audio/src/torchaudio/datasets/musdb_hq.py
imports: import os
  from pathlib import Path
  from typing import List, Optional, Tuple, Union
  import torch
  import torchaudio
  from torch.utils.data import Dataset
  from torchaudio._internal import download_url_to_file
  from torchaudio.datasets.utils import _extract_zip
label_desc: Use image node_id 1 to create a new MUSDB_HQ object from inherited base classes: Dataset with example: obj = MUSDB_HQ(root, subset, sources, split, download)