4 Twitter Votes


Project Name: Collaborative Sounds

Project URL: http://collsounds-nullset.rhcloud.com/

Have you ever wanted to get together with either friends or total strangers and work together to make something that sounds nice? Well with the Web Audio API and this project you'll be able to! Drag different "nodes" and generate, modify, and time sounds! This will be coded with a Node.js backend using Socket.IO for realtime updates, and probably some SVG for the graphics on the front end.

When you connect to the app, click participate and input a name and an optional room name. By default everyone goes to the "lobby" room. When you connect you will be presented with a draggable chat and a box with the available audio nodes. Drag node together and connect them to the outputs of other nodes. Click on the Output box and select the node you wan to connect to. Connecting to MainOutput will make it play the sound through your speakers. The Oscillator node is the only sound producer at the moment. You can change it's frequency, wave form, and detune it to make it slightly off sync with other oscillators. The gain node controls the volume of its input. The Delay node delays the sound from its input. The attack node turns the output on and off, the attack slider changes the frequency of this change.

There is also the option to just connect to a room and spectate with the "just listen" option. You can optionally omit a username for anonymous viewing.

Note: Please use Google Chrome as most browsers do not support the Web Audio API enough.

The libraries used for the app were express.js, socket.io, JQuery, and JQuery-UI.


Real Name:

Location: Ottawa, Ontario, Canada

Bio: I'm an aspiring programmer that likes making visual toys, games, and websites. I'm currently in love with Javascript and will be using Node for the app, but I have experience with Ruby for web apps, and Java for other things.


Real Name: Bryan Wu

Location: Canada

Bio: Fear! the single thing that man fears most is fear itself, and frankly, fortune favours the afraid. For fearsome monsters lurk in fathomless places where men dare not tread, save the foolish and faithful.


Real Name: Dejan

Location: Serbia



Real Name: Ian Frosst

Location: Ottawa, ON, Canada



Real Name: Mike Dalziel

Location: Canada



Need to try it out with more people. I couldn't seem to get some of the nodes to function at all. The modifiers like gain/delay/attack seemingly did nothing for me. It is a cool idea and I could see it being really fun with more options and more people sharing.


Real Name: Dominic McPhee

Location: Ottawa, ON

Bio: Pandacodium Co-Founder - Web & Mobile Developer


Even though this made some of the most horrendous sounds I have ever exposed my ears to, I had a blast while doing it. This is a fantastic idea, and you made great progress on it in the 48 hours. The real-time connection actually works very well. The chaining of instruments / effects was a great addition too. I would love to see this developed further. A sequencer and some form of keyboard/piano roll could make this actually capable of creating some awesome music with friends.


Real Name: Max Mackie

Location: Ottawa, Canada

Bio: Pandacodium Co-Founder, entrepreneur and board game addict


This app has amazing potential. It leverages realtime in a great way plus it entices people to collaborate to make some awesome stuff. Even though it just has the oscillator working, it was super fun (I just made a bunch of oscillators and played with the frequencies). Implementing a few more nodes, and possibly a way to save your session (or "room") would be great added features.

The design is simple and clean. A couple issues related to where the nodes spawn (kind of all on top of each other), but nothing deserving of anything less than 4 stars.

Overall, a great project and I really hope you guys continue working on this.


Real Name: Michael Hall

Location: The Sol System

Bio: Pandacodium guy. Also Web Developer and things.


I had quite a bit of fun with this, tried it with some friends and we had a blast just playing around with it.

I liked that the boxes could all move around easily, but I think it might have made more sense to have them not all start in the top-left corner. They also don't seem to retain their positions if you log in to an existing page.

Would like to see a few more node types, and possibly a way to import/export to midi or similar format.

Panel Judge


Real Name: Dumitru Glavan

Location: Kapellen, Belgium

Bio: http://be.linkedin.com/in/dumitruglavan


Loved the real-time app behavior. It moves fast and the UI feels great. Too bad there is only one sound that can be mixed atm... Great achievement in 48 hours!


Real Name: Andrew Kandalaft




This is definitely a great idea. Love how easy it is to just join a room, have a chat working, play around with the sounds. The best utility for this could be connecting external hardware and almost having a band rehearsal over the internet! There is definitely a real vision there.

All you need to do is freshen up the user interface, fix up all the sounds, add new musical features, and make sure rooms work well and you've got a pretty neat program.

There isn't really much more for me to say, I think you guys have the right idea. This is one of my favourite applications I've seen. I just personally felt it needed just a little bit more, such as a bit more of the things in the list above to give it a perfect score. I really hope you guys keep working on this and finish it up!


Real Name: Lance Lafontaine




I felt like visually, the UI was lacking. I'll agree that the project is a good idea, but I don't know how useful/popular this may be in the future.

Panel Judge


Real Name: Kenneth Keiter

Location: Portland, OR



Design / Ease of Use

From a design/usability standpoint, the demo was pretty rough -- but I definitely understand where you're going with it. The lack of drag-and-drop "wiring" made the demo difficult to use, and I wish you'd given it priority over chat, which I didn't find particularly useful without a large number of collaborators. I really enjoyed the fact that sliders moved on screen when other people moved them on their machines. It was entertaining to watch, but I think that in the long run you may need to help users better differentiate which users are manipulating which controls to prevent collisions.

Utility and Fun

I genuinely loved playing around with this. I could see having a great time working collaboratively with my friends on weird music projects, and the fact that you were able to demonstrate such a unique concept in such a short amount of time was fairly impressive!


I thought that this was a really great use of real-time technologies. Communication with the server seemed pretty snappy, and if there was any lag in interacting with other players I didn't notice it. Real-time communications are never realtime; there's always latency associated with transmission and processing -- good applications compensate for that with interaction that relies upon it only when it enhances the application. I think you did a really nice job of that in your project.


I hadn't seen anything quite like this before.


There were minor bugs, the UI wasn't complete, and it wasn't beautiful -- but it definitely got the concept across, and behaved pretty well during testing. A rating point was removed for a bug in which another user joined my room and caused about 12 blocks I'd configured on my canvas to suddenly disappear, which was incredibly frustrating. On the other hand, the fact that I was into it enough to set up 12 blocks is probably a good sign.

Great work overall, guys. I really hope this turns into something; I can see a lot of people (especially up-and-coming artists) using it.


Real Name: Trevor




Node "placement" shows over the chat window on the left. This is a problem since the backgrounds are transparent.

Panel Judge


Real Name: Marcel Turcotte

Location: Ottawa, ON, Canada

Bio: Associate Computer Science professor at the University of Ottawa.


Awesome project.

Some glitches here and there, such as the play/pause image not reflecting the true state of the component or an oscillator not showing at the beginning of the session.

Panel Judge


Real Name: Adrian Rylski




Interesting idea.