Groovee 🎶✨
Abstract
Groovee is an online collaborative music composition platform designed to foster creativity and connection among musicians of all levels. With Groovee, users can collaborate on creating unique soundscapes either with strangers or friends, enhancing the joy of music creation through shared experiences. The platform allows users to contribute to a set of community compositions or create their own private projects to work on with select collaborators. With real-time updates, Groovee ensures that users feel connected and engaged as they build out their musical creations.
Author
Name: Olivia Ronda
Student number: 45876952
Functionality
Groovee will be an online web application where users can log in and add to compositions. It aims to place the focus on community collaboration in a low-stakes, fun environment.
Compositions
- The service will maintain a collection of open, community contributions that anyone can contribute to
- These compositions will periodically be completed and locked, with new community compositions being added in their place.
- Users can create their own compositions, either public and accessible to all Groovee users, or private with a maintained access list.
- User-created compositions require their creator to mark them as completed & locked.
- Compositions can be ‘themed’ - rather than presenting the user with every single sound and music composition element, each composition will only have a select number of elements available for use
- This keeps Groovee fun for all levels of musical ability
- Each composition has a fixed number of instrument tracks to maintain simplicity for users of all musical backgrounds.
- Each composition has a maximum number of sections a single user can add.
- This places the focus on collaboration instead of having one user take over everything.
- Real-time updates ensure changes made by one user are immediately visible to others.
- Only the creator of a contribution to a composition has editing rights to that contribution - users cannot ruin the work of others.
Sounds & Audio Effects
- A basic library of sounds & effects is provided.
- Users can build custom sound and effect libraries within the software.
- Sounds and effects can be created from scratch or combined from existing elements in the software.
- External sound & effect libraries can be imported
User Base
- Users can create and manage accounts with public profiles.
- Users can connect with other users and add them as friends.
- Users can display their finished compositions on their profiles.
- Contributions to community compositions are visible on their profiles.
Scope
For the MVP, the focus should be on adding to compositions in a collaborative, real-time environment and creating a base system for custom sound & effect libraries to build on. The following is a set of MVP features:
User Base
- Users can log in with a username and password
Community Compositions
- Able to be edited by any logged-in user
- Has a maximum of 5 instrument tracks
- Basic 4/4 time with available note durations ranging from semiquavers to whole notes
- Users can add a maximum of 8 bars worth of notes
- A single sound effect can be applied to a selected range of notes on a single instrument track
- All available sounds & effects can be used in the MVP (i.e. no ‘theming’)
- Updates are visible in real-time when multiple users are working on the same composition
Sounds & Effects
- An appropriate interface is created for custom sounds & effect to build upon
- A sound should be able to have a time value passed into it, and an audio file outputted
- An effect should take an audio input, transform it, and output an audio file
- Basic synth waves & percussive sounds are available initially
Quality Attributes
Availability
This is considered the most important attribute for this application. The application will allow users from all over the world to come together and collaborate on a soundscape. Therefore, the service must be accessible at all times. To make users feel connected, the composition functionality has to be real time - when a user makes a change, the result must be visible by all other users accessing the same composition.
Extensibility
To personalise the compositions, users will have the ability to create their own sounds and audio effects. This can happen either by editing parameters of existing sounds & effects within the application, or by connecting externally created libraries. In order to connect external libraries, there must be a standard interface created that will handle passing input to these external libraries and receiving their output.
Scalability
The application will allow a large number of users to work on compositions at the same time, or over the course of a composition’s lifetime. The application should be able to handle varying amounts of users making changes at once.
Evaluation
Availability
- Automated load testing to spin up multiple clients accessing one composition to verify realtime updates
- Service status monitoring to ensure the server is running and to log any errors that cause crashes
Extensibility
- Unit testing to verify sounds & effects can be created by users within the application, with the same parameters creating the same output every time
- Unit testing to verify external libraries can be connected to the application through a standard interface
Scalability
- Automated tests spinning up large numbers of clients at once
- Tests should consider large number of clients working on one project, working on multiple smaller collaborative projects, and working on individual projects