Polytunes is a interactive music pad highly inspired by an electronic music device called Tenori-on and by collaborative creative apps using meteor that often allow to draw with friends. We were aiming at creating a new kind of creative collaboration app, so we decided to target music.
What it does
The goal of this project was to build a sequencer without any third-party component such as flash, or any sound files, using only HTML5 WebAudio API. Because Polytunes mathematically calculates note within musical scales, it is easy for everyone to create melodies without prior theoretical knowledge about music. Not only it enables people to witness other's creativity in realtime thanks to Meteor, but it also gives everyone the ability for several players to collaborate on the same piece of music.
It can be used as a teaching tool to learn about musical scales, harmony, rythm or collaborative creation, as a creative tool to compose melodies, or just as a fun game that matches words or drawings to music.
How we built it
Challenges we ran into
The only difficulty we had to face was that one of our collaborator, that had to leave the hackathon early, was so addicted to Polytunes that he actually couldn't stop playing event at home. Because we had no way of contacting him beside drawing pixel art style words with Polytunes, it made it very difficult for us to create the presentation screen capture video.
What we learned
We were all beginners with meteor but we found that it was very easy to use to quickly build a responsive and dynamic web-app.
What's next for Polytunes
We'd like to add the ability to create public and private rooms which url can be shared with friends or on social networks. We currently used a lot of default settings that would be settable by user, such as tempo, pitch, musical scale, board size, etc. We also would love to build Polytunes as a native app for mobile devices that could allow both solo offline and collaborative online play.
Meteor package used
meteor-base # Packages every Meteor app needs to have mobile-experience # Packages for a great mobile UX mongo # The database Meteor supports right now blaze-html-templates # Compile .html files into Meteor Blaze views session # Client-side reactive dictionary for your app jquery # Helpful client-side library tracker # Meteor's client-side reactive programming library standard-minifiers # JS/CSS minifiers run for production mode es5-shim # ECMAScript 5 compatibility for older browsers. ecmascript # Enable ECMAScript2015+ syntax in app code grigio:babel stylus artwells:accounts-guest accounts-ui accounts-password check random mvrx:bluebird grove:call-async mizzao:timesync u2622:persistent-session lookback:tooltips