Skip to content

Given Midi music files, predict the artist. (+ project presentation)

Notifications You must be signed in to change notification settings

jcguidry/classical-music-artist-classification

Repository files navigation

Music Classification Mini-Project

Given Midi music files, predict the artist.

Project Objective

The primary aim of this project is to build a machine learning classifier capable of identifying whether a given MIDI file was composed by one of four classical composers: Bach, Beethoven, Schubert, or Brahms. The classifier should be able to process audio data in intervals of 15, 30, or 60 seconds, with a default setting of 30 seconds.

Data

The dataset consists of several hundred annotated MIDI files, corresponding to compositions from the four composers. The data is provided in data/raw/training/ and is originally sourced from Musicnet.

Data Format

  • MIDI files
  • Composition name precedes the first underscore in the file name
  • Composition artist (target) is given in as the parent folder name

Solution, Methods, and Results

Quickstart Guide

  1. Clone the Repository: Run git clone <repository_url> to clone the project.
  2. Run Setup Script: Navigate to the project directory and execute ./setup.sh. This creates a Python virtual environment named my_venv with proper dependencies.
  3. Activate Environment and Run Jupyter Notebook:
    • Option 1: Execute source my_venv/bin/activate followed by jupyter notebook.
    • Option 2: Use an IDE such as VS Code to activate the environment and run the Jupyter Notebook.

About

Given Midi music files, predict the artist. (+ project presentation)

Topics

Resources

Stars

Watchers

Forks