Module music_df.read

Provides a function, read(), for reading a file into a music_df.

The allowed extensions are:

  • .mid or .midi for MIDI files
  • .krn for Humdrum .krn files. Note however that this won't work until I distribute my totable command-line tool.
  • .csv for CSV files
  • .xml, .mxl, .mscx, or .mscz for encoded MusicXML files
  • .txt or .rntxt for Roman numeral text files

Functions

def read(input_path: str, **kwargs) ‑> pandas.DataFrame
Expand source code
def read(input_path: str, **kwargs) -> pd.DataFrame:
    if any(input_path.lower().endswith(suffix) for suffix in (".mid", ".midi")):
        return read_midi(input_path, **kwargs)
    elif input_path.lower().endswith(".krn"):
        return read_krn(input_path, sort=True, **kwargs)
    elif input_path.lower().endswith(".csv"):
        out = read_csv(input_path, **kwargs)
        assert out is not None
        return out
    elif any(
        input_path.lower().endswith(suffix) for suffix in ("xml", "mxl", "mscx", "mscz")
    ):
        return read_xml(input_path, sort=True)
    elif any(input_path.lower().endswith(suffix) for suffix in (".txt", ".rntxt")):
        # Roman text
        return read_rntxt(input_path)
    raise ValueError(f"Unsupported file extension: {input_path}")