Reimagining musical composition as a a network graph between notes: a refreshing collaboration between the randomness of computer networks and the creativity of human minds.

What it does

MusicGraph is a network consisting of nodes and edges, each representing musical notes in compositions and their relationships with each other. In this sandbox-esque music editor, we allows nodes to be placed that represent notes, which are then linked together to allow them to be played relationally.

What makes MusicGraph unique is that it's not just a music editor: you are in charge of creating a musical map. With this map, the computer then plays music utilizing the creative freedom of randomness.

How we built it

Base of the project: Node.js, frameworks (Express.js and Jade). Client-side: Tone.js, Bootstrap, HTML/CSS/JS. Server: Google Cloud to host our server Domain:

Challenges we ran into

Difficulty getting used to the Javascript environment, as well as debugging in general. Learning how to accurately traverse through the network was also difficult because there many advanced concepts such as asynchronous calls and object-oriented programming.

Accomplishments that we're proud of

Having a working, deployed, and innovative prototype that can actually make some pretty good songs!

What we learned

We learned how to effectively use Node.js and the many tools that come with it, as well as how to use google cloud to professionally deploy our web app.

What's next for Music Graph

Music Graph is not just a music editor: it's also a more unique way to create music. If given more time, we want to refine its overall music creation and add more features. We also want to refine the instruments and the sounds and improving the depth traversal of nodes. Most importantly, we want to improve the UI to make it more friendly to users not familiar with music creation (e.g. its professional terms) but interested in that field, as Music Graph will also be able to encourage interest in music :D

(If is not working, please use the backup link:

Share this project: