-
Notifications
You must be signed in to change notification settings - Fork 15
Getting Started
DAWG is a DAW built using Electron and the Web Audio API. The following guide will show you how to get DAWG running locally, 8000 point you in the direction of some of the key resources to understanding the structure of the application, and also link you to some other useful resources.
A screenshot of DAWG circa 2019.
First, you'll have to make sure you have Node
and npm
installed correctly (see package.json
for version information). If not installed, we recommend the following steps to getting them set up.
- Install Node Version Manager (NVM)
- Install Node and npm using NVM
Although these instructions use npm
, yarn
can also be used if desired.
Install the dependencies using the following command.
npm i --no-optional # same as "npm install --no-optional"
NOTE: We include the
--no-optional
flag as there is a certain optional sub-dependency that cannot be built on Windows (speaker).
Next, run the following command to ensure all your dependencies are built using the correct version of Node:
npm run install-app-deps
NOTE: This command may take some time but it rarely needs to be run after the initial npm install.
Application development occurs in Electron
. To start the Electron
application in development mode, use this command.
npm run serve
The following command will build DAWG
for your current operating system. It is not very easy to build cross-platform. As such, we use GitHub Actions
to build for Linux
, MacOS
, and Windows
at the same time. See the .github/workflows/build.yml
file for more information.
npm run build
Currently, there is a small unit suite available. It uses Karma (test runner), Puppeteer (Headless Chrome), Mocha (test framework) and Chai (assertion library). Use the following command to initiate the test suite:
npm run test:unit
Once you have your development environment running, It will be important to familiarize yourself with the structure of DAWG and how development occurs. The following is an incomplete list of the most important things to read.
↳ IDE Setup
↳ Tech
↳ Development Lifecycle
↳ How to Deploy
↳ Architecture