GithubHelp home page GithubHelp logo

aframires / freesound-loop-annotator Goto Github PK

View Code? Open in Web Editor NEW
19.0 3.0 1.0 97 MB

A web app for annotating Freesound loops, and the tools to analyse the dataset created.

License: Apache License 2.0

Python 0.63% HTML 0.04% Dockerfile 0.01% MATLAB 0.01% Shell 0.01% Jupyter Notebook 99.18% TeX 0.13%
loops freesound annotations

freesound-loop-annotator's Introduction

Freesound Loop Annotator

The Loop Annotator is a Flask web application that is meant to run locally in your computer. It is an annotation tool that was created for building a dataset of loops from Freesound.

The Loop Annotator is a Flask web application that allows to annotate loops from Freesound. With it, we created a dataset of Creative Commons loops, with professional quality and perfect for research!

This annotator is hosted online and accessible here.

The full dataset can be found in Zenodo.

The full paper, poster and presentation are available at ISMIR website and, in this page, we present some of the results that we were not able to include in the paper. If you use this work for research, please cite:

@inproceedings{ramires2020, author = "Antonio Ramires and Frederic Font and Dmitry Bogdanov and Jordan B. L. Smith and Yi-Hsuan Yang and Joann Ching and Bo-Yu Chen and Yueh-Kao Wu and Hsu Wei-Han and Xavier Serra", title = "The Freesound Loop Dataset and Annotation Tool", booktitle = "Proc. of the 21st International Society for Music Information Retrieval (ISMIR)", year = "2020" }

How to run locally

This application runs inside a docker container. To run the app you simply need to clone the repository and run docker compose:

git clone https://github.com/aframires/freesound-loop-annotator.git
cd freesound-loop-annotator
docker-compose up

Before doing that you'll need to download data files and edit docker-compose.yml so the correct data volume is mounted. Download corresponding zip file with the actual audio files from the Shared Google Drive as per the email instructions. Copy the file to the static folder and unzip. Rename the unzipped folder to FSL10K (if it is not already named like that). You should now have a directory structure like static/FSL10K/audio, static/FSL10K/ac_analysis, etc. You can now remove the downloaded .zip file.

Now start docker: docker-compose up

Use Google Chrome to navigate to this address: http://localhost:5000/fslannotator/

You'll be presented with loops to annotate. Fill in all the fields and click "submit". This will save your annotations and automatically move to the next loop.

Reloading http://localhost:5000/fslannotator/ will present you the last unnanotated loop, therefore you can safely close the browser at any time.

The annotations are stored using JSON files saved inside the annotations/ inside the FSL10K folder mounted in the container. Once all sounds are annotated, zip the annotations directory and please send the file as per the email instructions.

Before annotating, please check the genre taxonomy provided in here to familiarise yourself on how to annotate genres.

Running the Evaluation

In order to get the proposed benchmarks and evaluation metrics:

  • Download the dataset from Zenodo and add it inside the static folder of the directory.
  • Run the analyse_data.py file to obtain the inter-annotator agreement.
  • Run the benchmark.py file to obtain the statistics of the dataset (key, tempo distribution) and the benchmarking values.
  • Run the code provided in Jordan Smith's repo to obtain the music generation and decomposition evaluation.

freesound-loop-annotator's People

Contributors

aframires avatar dependabot[bot] avatar ffont avatar xavierfav avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ffont

freesound-loop-annotator's Issues

Handle error 500

Error 500 occurs when the user goes to a url which they should not have access to. This might happen if the user goes to /annotate without having logged in first.

For this, we should do a check if the user is authenticated or not and, if not, send him to the welcome page.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.