Inspiration
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
We used meteor to enable real-time collaboration and a Javascript library called Wad that is a wrapper around HTML5 WebAudio API.
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
Built With
- html5
- javascript
- meteor.js
- webaudio
Log in or sign up for Devpost to join the conversation.