GithubHelp home page GithubHelp logo

notelab's Introduction

VandyHacks

Can machines learn to compose? (maybe)

INSPIRATION: We're all music lovers in this team, and also have a passion for artificial intelligence and machine learning. We wanted to build a web interface that allows users to listen to, learn, and play songs, while at the same time exploring genetic algorithms for music generation.

WHAT IT DOES: Users can watch their favorite songs be visualized in midi form, and even play along to learn that song. NoteLab is intended to be a better alternative to sheet music, and therefore a way to motivate future musicians to learn music. The end goal is to allow users to record and upload the songs they themselves play, and then the machine learning algorithm will write music in the same style as what the user played. To facilitate the learning process, we use parallel processing to distribute the job amongst 20 Odroids.

HOW WE BUILT IT: Each of our four members was assigned a different job to get to our end goal. The front end was built in Javascript, PHP, HTML, and CSS and designed to run entirely in the browser with a single midi device connected via USB. The genetic algorithm was written in Python and had two parts: the test of fitness and the breeding/mutation technique. The test of fitness uses a modified K-means with standard deviation to plot a 'location' of the average center of the training song. The breeding technique merges measures and notes of well-fit songs together and random mutations allow variety in the population. And finally, a method was devised to distribute processes amongst 20 Odroids to lighten the learning load.

CHALLENGES WE RAN INTO: The entire project was possibly too ambitious for a single weekend, and with only one man per job, it was tough to get everything to come together.

Once the genetic algorithm was generating music, we realized we needed smoothing algorithms to help the newly-generated song to converge, and this took some time to both design conceptually as well as implement.

WHAT WE LEARNED: We learned how to better work as a team under pressure and with very little sleep. We also learned how to coordinate source control to ensure we didn't step on each other's toes.

WHAT'S NEXT FOR NOTELAB: We have many features we'd like to implement, such as an entire social network for users to create profiles and interact with each other, a way to upload songs and save them to play later (or share with friends), a way to generate new music based on what users have played or even have in their 'favorites' library. There are a lot of different avenues to go with this central platform, and we can't wait to work on them more after the hackathon.

notelab's People

Contributors

sremedios avatar micahhauge avatar taylorharvin avatar kh-ra avatar

Watchers

 avatar  avatar

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.