Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 5 days 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 (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-09T11:58:27.000Z (about 1 year ago)
- Last Synced: 2023-10-10T10:28:57.430Z (about 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 OverviewIn 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)![Test Results](https://user-images.githubusercontent.com/91121660/273556800-9c4a7900-ed94-4655-9dcb-da86aa20a2b4.png)
## 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.