From the very beginning, the WeTracker project has been dual purpose. Firstly to create a web based FastTracker II style music tool, and secondly, to provide a method to enable collaboration on music projects. All the work up to now has been dedicated to the first part, but with recent additions, I’ve started working on the very early stages of a second component to support the idea of collaboration.

To maintain separation of concerns, the back-end is an entirely separate service, running currently on a separate Heroku dyno. All communication between the front-end WeTracker app and the back-end is over a simple RESTful interface on HTTP.

Currently, the back-end is little more than a simple file server, but underneath, it lays the foundations for much more. The back-end is a totally separate NodeJS application, backed by MongoDB. It currently serves a simple list of demo songs. The songs are stored as compressed files in MongoDB’s GridFS filesystem, allowing it to store large files. The song files are backed by simple JSON metadata, stored in the MongoDB as documents. It’s possible to query the backend for the list of demo songs using the following REST query:

http://wetracker-be.herokuapp.com/songs

which will return a JSON list of all songs stored in the back-end database.

The WeTracker application has been updated with the first changes to integrate with this new service. The long empty “Browser” widget now lists these demo songs, by querying the back-end service at startup.

Browser

Double click on any of the demo songs to load it directly into the application.

The back-end service will continue to develop alongside the front-end application, ultimately it will provide a central location to store and share your productions. It will grow to include collaboration services such as chat and live shared editing of songs. Keep an eye here for future posts about this exciting aspect of the project.

Onwards and upwards…