A DAW for the 21st century!
Vusic
is currently being developed as part of ENGG 4000
(Senior Design Project
). This means development will continue until at least April 2019; however, the project itself was started before the course began and will hopefully continue after its completion. Several core ideas have and continue to influence the development of the application:
Learning to use a DAW is often a painful process, even for experienced users. Additionally, the UI/UX in modern DAWs are often lacking. We aim to change this by levering the web technology that is available today and focusing on the UI/UX during planning and development.
Music can be an incredibly collaborative process. When two individuals are in the same room, collaboration is easy; however this is often not possible as collaborators are often geographically separated. By taking advantage of the real-time collaboration technology available today, we hope to enable producers and musicians to simultaneously collaborate, even when they are located on different continents.
With the advent of machine learning technology, several manual processes, such as vocal separation or audio to MIDI transcription, have the possibility to be completely automated. We aim to take advantage of this research to provide cutting-edge technology to musicians and producers today.
Here is an incomplete list of the major tasks that need to be completed. 🏃 indicates active development.
- Application layout
- Piano roll + patterns
- Basic synthesizers + integration with the piano roll
- 🏃 Automated vocal extraction
- 🏃 Automated piano note transcription
- Playlist
- Mixer + effects
- Automation clips
- 🏃 Real-time collaboration
- 🏃 VSTs
Bottom Tabs
Side Tabs
- Install Node Version Manager (NVM)
- Install Node and npm using NVM
- Install the dependencies:
npm i
Development occurs one of two places. Application development occurs in Electron
; however, Storybook
is used as an isolated component development environment. For many components, it is recommended that you create a story
within Storybook
to serve as active documentation.
Start the Electron
application in development mode.
npm run serve:electron
Start the Storybook
server.
npm run serve:storybook
The following command will build Vusic
for your current operating system. It is not very easy to build cross-platform. As such, we use Travis CI
to build for Linux, MacOS, and Windows at the same time. See the .travis.yml
file for more information.
npm run build
Currently, we are able to build the Electron
application; however, deployment and auto-update mechanisms have yet to be created. To build the application, run the following command:
npm run build:electron
GitHub Pages
deploys the website located in our docs
folder on the master
branch. To update this folder, you must first build the storybook website.
npm run build:storybook
After, you must create a PR into develop
and then another into master
. The site itself will deploy automatically once the PR into master
has been merged.
Currently, there is a small unit suite available. These tests make use of Vue Test Utils and can be initiated using the following command.
npm run test:unit
There is also an test:e2e
command; however, this test suite does not currently contain any tests.
First, replace of references of the version in package.json
and .travis.yml
to the new version. Then add and commit your changes.
Jacob Smith | Matt DeSilva | Amir Eldesoky | Alex ODonnell |
Software Engineering | Electrical Engineering | Electrical Engineering | Electrical Engineering |
GridSound was a great reference during development. For example, components such as Timeline.vue
and BeatLines.vue
were based off similar component implementations from gs-ui-components.
VS Code was also used as a reference during development. We are big fans of the structure and navigation tools (Shortcuts, Command Palette, etc) and wanted to implement similar features within Vusic
.