Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laurenzbeck/music-processing-challenge

JKU special topics - Audio and Music Processing
https://github.com/laurenzbeck/music-processing-challenge

ai beats mir ml onsets signal-processing tempo

Last synced: 6 days ago
JSON representation

JKU special topics - Audio and Music Processing

Awesome Lists containing this project

README

        

![image_header](./studio.jpg)

πŸŽ›οΈπŸŽ§ - Audio and Music Processing - 🎼🎢


Special Topics - JKU Linz


Project Status: Inactive – The project has reached a stable, usable state but is no longer being actively developed; support/maintenance will be provided as time allows.
Open Iterative Studio Dashboard.


Python
Code style: black

---

## Project

This project was part of my master studies in Artificial Intelligence at the Johannes Kepler University in Linz.
During the Special Topics lecture on audio and music processing from Rainer Kelz, I took part in three challenges:

+ Onset Detection
+ Beat Detection
+ Tempo Detection

**Team:** NeuraBeats

## Installation

To install the projects dependencies and create a virtual environment, make sure that your system has python (>=3.9,<3.10) and [poetry](https://python-poetry.org/) installed.

Then `cd` into the projects root directory and call: `$poetry install`.

Alternatively, install the dependencies from the `requirements.txt` file with your python environment manager of choice.

I was not allowed to make the dataset public, which is why one needs to add the challenge dataset in the `data/raw/` directory.

## Project structure

```
.
β”œβ”€β”€ challenges # scripts and pipeline descriptions of the three challenges
β”‚ β”œβ”€β”€ beat-detection
β”‚ β”œβ”€β”€ onset-detection
β”‚ β”œβ”€β”€ tempo-estimation
β”‚ β”œβ”€β”€ train_val_split.py
β”‚ └── utils.py
β”œβ”€β”€ data
β”‚ β”œβ”€β”€ interim
β”‚ β”œβ”€β”€ processed
β”‚ └── raw # the train and test .wav files and labels are stored here
β”œβ”€β”€ dvc.lock
β”œβ”€β”€ dvc_plots
β”œβ”€β”€ dvc-storage # dvc storage backend (not included in this public repo)
β”œβ”€β”€ LICENSE
β”œβ”€β”€ models
β”œβ”€β”€ notebooks # exploratory programming
β”œβ”€β”€ params.yaml # configuration for the three challenges
β”œβ”€β”€ poetry.lock
β”œβ”€β”€ pyproject.toml # python environment information
β”œβ”€β”€ README.md
β”œβ”€β”€ reports # predictions and project reports
β”‚ β”œβ”€β”€ beat-detection
β”‚ β”œβ”€β”€ onset-detection
β”‚ └── tempo-estimation
└── requirements.txt
```

## Running the data pipelines

The three challenges were implemented as [dvc](https://dvc.org/) pipelines, which allows for a complete reprodicibility of every experiment, given that the datbackend storage is available. This is achieved by a git-centric approach, were not only the code is versioned with git, but also the configuration, the data, the artifacts, the models and the metrics.

The pipelines are defined by the `dvc.yaml` files in the `challenges` directory. To run them all, simply call `$dvc repro -P`.
If you want to execute the scripts manually, you could go through the stages in the `dvc.yaml` files and call the `cmd` value of every stage from the projects root.