Git Product home page Git Product logo

musicmappr's Introduction

MusicMappr

What does it do?

MusicMappr finds chunks of songs that are similar, and clusters them accordingly. You can visualize these clusters and play them back at will. This is for music lovers who are curious about the structures inherent to their favorite songs.

How does it work?

MusicMappr uses a hodge-podge of HTML5 features as well as some clustering and visualization techniques from machine learning. Using the WebAudio API, it extracts raw samples from a song. Then, it divides those samples into chunks and performs a fourier transform on each chunk to extract frequency data (dividing the work into multiple WebWorkers to speed up the process). Then, MusicMappr uses the T-SNE algorithm to visualize differences between the high dimensional fourier features in 2-d space. Finally, it runs K-means clustering to show the clusters that arise from T-SNE. More info is in our NIME paper and YouTube demo.

How do I get it to work?

MusicMappr is a work in progress. Right now it is confirmed to work on Chrome and Firefox, but no other browsers. Make sure you have the latest version of one of these browsers.

Where can I try it? Go to http://fatsmcgee.github.io/MusicMappr/ for a live demo! Not guaranteed to be the latest version.

New features!

Hit us up if you're interested, or just submit pull requests!

  • Recording audio using the WebAudio API. It would be dope to record audio straight into MusicMappr and then see the samples for it!
  • Beat detection (http://tech.beatport.com/2014/web-audio/beat-detection-using-web-audio/). Right now we just chop up a song according to the sampling frequency.
  • Mobile support. Making an app out of this would be awesome!
  • Prettyfying the UI. Going all Material Design on this shit!

Citing this work

E. Benjamin, and J. Altosaar. MusicMapper: Interactive 2D representations of music samples for in-browser remixing and exploration. 15th International Conference on New Interfaces for Musical Expression. (2015). PDF.

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.