/MMJS

Final Project at Makers Academy - Single page music-making app.

Primary LanguageJavaScript

Music Makers

Build Status

Heroku

A single page application for creating multi-dimensional audio tracks. Visit the app, Synethesthesia, here and make your own music.

Installation Instructions

git clone

$ npm install

How To Run

$ npm start

Run Test Suite

$ npm start

$ npm test - For E2E testing suite

$ npm run jest - For unit testing suite

Tech Stack

  • React - A Javascript library for building UI.

  • MIDI.js - An instrumental library.

  • Nexus UI - A library to build music components.

  • Cypress - for E2E testing.

  • Jest - for unit testing.

  • Heroku hosted

  • Travis CI

  • Trello - for project management.

MVP Requirements

  1. A single page app for a guest user.
  2. User can play notes for a single instrument.
  3. User can set their own tempo.
  4. A grid for note assignment.
  5. A play / pause button that when clicked loops the tune through.

User Stories

1. As a musician,
so that I can lay down a simple track,
I want to visit a page and see a sequencer.
2. As a musician,
so that I can intuitively use the sequencer,
I require each row to be mapped to a single note.
3. As a musician,
so I can make a simple melodies first,
I would like the default instrument to be a glockenspiel.
4. As a musician,
so I can concentrate on making simple melodies first,
I would the sequencer to be set to a 120bpm tempo with a range of three octaves.
5. As a musician,
so that I can use the the sequencer intuitively,
I want to see low range notes appear at the bottom of the grid.
6. As a musician,
so I can see which notes I've selected,
I would like the relevant grid field to change colour.
7. As a musician,
so I can play back the rad tune I've made,
I would like a play button to loop through my song.