https://github.com/simonapiz/beatmix
A drum machine web app that allows you to create musical patterns and save them as presets.
https://github.com/simonapiz/beatmix
api codecademy-solutions javascript
Last synced: about 1 year ago
JSON representation
A drum machine web app that allows you to create musical patterns and save them as presets.
- Host: GitHub
- URL: https://github.com/simonapiz/beatmix
- Owner: SimonaPiz
- Created: 2023-10-09T08:35:01.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-09T11:58:27.000Z (over 2 years ago)
- Last Synced: 2025-02-13T06:23:54.581Z (over 1 year ago)
- Topics: api, codecademy-solutions, javascript
- Language: JavaScript
- Homepage:
- Size: 963 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# Beat Mix
A drum machine web app that allows you to create musical patterns and save them as presets.

## Table of Contents
* [General Info](#general-information)
* [Technologies Used](#technologies-used)
* [Usage](#usage)
* [Acknowledgements](#acknowledgements)
## General Information
### Project Overview
In this project, I wrote functions to implement logic for a beat-making music machine.
The application can loop over a 16-step grid of four drum types and play them when they are activated.
- ✔ [issue #2 - function toggleDrum](https://github.com/SimonaPiz/BeatMix/issues/2)
I also wrote the functionality to invert each row of drums, clear each row of drums, or clear the entire board.
- ✔ [issue #3 - function clear](https://github.com/SimonaPiz/BeatMix/issues/3)
- ✔ [issue #4 - function invert](https://github.com/SimonaPiz/BeatMix/issues/4)
Finally, I build the functionality to retrieve and save presets to a server.
- ✔ [issue #5 - function presetHandler](https://github.com/SimonaPiz/BeatMix/issues/5)
▶ You can view a video demonstration of the final app here: [BeatMix](https://s3.amazonaws.com/codecademy-content/programs/build-apis/solution-videos/BeatMix480.mov)
### Implementation Bonus
As a bonus, I implemented a function to play multiple synthesizer tones at once.
- ✔ [issue #7 - bonus function](https://github.com/SimonaPiz/BeatMix/issues/7)
### Test Results
- ✔ [issue #8 - test code](https://github.com/SimonaPiz/BeatMix/issues/8)

## Technologies Used
- "body-parser": "^1.17.2",
- "chai": "^4.1.1",
- "chai-things": "^0.2.0",
- "cors": "^2.8.4",
- "express": "^4.15.4",
- "mocha": "^5.1.1",
- "morgan": "^1.8.2",
- "nodemon": "^1.11.0"
## Usage
Run `npm install` to install the dependencies of this project.
```
$ npm install
```
Run `npm run start` to begin your server. You'll see `Server listening on port 4001` in the terminal.
```
$ npm run start
```
To see the application simply open **index.html** in a web browser.
## Acknowledgements
This project comes from the Codecademy's [Create a Back-End with JavaScript](https://www.codecademy.com/learn/paths/create-a-back-end-app-with-javascript) course.