The following application is a simple 8-bit drum machine built with TypeScript, Parcel, Sass and ReactJS.
This project was made for the Front End Development Libraries Certification on Free Code Camp.
Users should be able to:
-
View the optimal layout depending on their device's screen size
-
Contain clickable "drum pads"
-
Trigger audio clips upon clicking or hitting the corresponding keystrokes shown on the "drum pads".
-
Display the name of the audio clip when triggered.
-
Change the volume of the drum machine
-
Give the user the option to swap between different themes
-
Show a modal explaining the application when clicking the "help" button
Desktop View
Mobile View
- Project URL: Github Repository
- Live App URL: Github Page
This project was based on the sample project provided by Free Code Camp as an example output and has a number of additional features to distinguish itself from the provided sample output, these include:
- The design was based off of designs made by Tom Piggott and Nikonov Dmitry.
- The application was built from scratch using ReactJS
- Utilizies TypeScript for type checking.
- Parcel was used to bundle all the files to reduce file size
- Has light and dark mode theming
- And is mobile responsive
You are going to need the latest version of NPM in order to install this project on your machine.
- npm
npm install npm@latest -g
- Clone the repository
git clone https://github.com/N-Nikolaev/drum-machine.git
- Install NPM packages
npm install
- Semantic HTML5 markup
- CSS custom properties
- CSS Grid
- Mobile-first workflow
- SASS - CSS Preprocessor
- Parcel - Web Application Bundler
- TypeScript - Static Typing Language
- ReactJS - JavaScript Library / Framework
- FontAwesome - Icon toolkit
- Sample Swap - Royalty Free Sound Clips
- Favicon.io - Favicon generator
Distributed under the MIT License. See LICENSE
for more information.
- FCC - Drum Machine Example Project
- React, Typescript and Sass with Parcel - Part 1
- How do I revert a Git repository to a previous commit?
- How To Create Vertical Text Using HTML and CSS
- How to detect Esc Key Press in React and how to handle it
- React with TypeScript Crash Course - 2021
- CSS Grid cheat sheet
- How can I adjust the volume of an audio file in JavaScript
- Style Input Range
- Github - Nikolay Nikolaev
- Frontend Mentor - @N-Nikolaev