gestok / beat-machine

Beat Machine is a ReactJS app that utilizes WebAudioAPI to playback beats with multiple tracks and options.

Home Page:https://gestok.github.io/beat-machine/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Beat Machine

The Beat Machine

Description

Beat Machine is a ReactJS app that utilizes WebAudioAPI to playback beats with multiple tracks and options. It is inspired by FreeCodeCamp's Drum Machine certificate challenge and FL Studio's main beatmaking component.

Features

  • Offers up to 8 tracks
  • User can edit the BPM, Step size and overall Volume
  • User can edit the labels of each track
  • User can load his own sounds using base64 data strings
  • A track can be muted/unmuted
  • Each track has its own Panning and Volume options
  • Uses Web Audio API

May add in the future

  • Save/Load beat sequence in local storage
  • Export/Import beat sequence in JSON
  • Reset Button to remove any active pads

Known Issues

  1. Latency/Lagging - When loaded with multiple tracks and a lot active pads, there is a noticeable latency on playback. This can be avoided by using WebAudioAPI buffers to schedule the notes but this is a thing I might work later on.
  2. Mobile Performance - As of this commit, the mobile performance is just terrible.
  3. Responsive - As of this commit, the app is not responsive and there is no reason to make it as long as there is issue 2.

About

Beat Machine is a ReactJS app that utilizes WebAudioAPI to playback beats with multiple tracks and options.

https://gestok.github.io/beat-machine/


Languages

Language:JavaScript 93.2%Language:HTML 6.8%