Code Monkey home page Code Monkey logo

react-sequencer's Introduction

React Sequencer

React sequencer is an interactive web instrument that allows users to create unique drum loops and rhythms. This project is built on React, Teoria.js and Tone.js.

Try it out here!

Install Locally

Clone this repo and install the dependencies:

git clone https://github.com/jaqarrick/react-sequencer
cd react-sequencer
npm i

Start the dev server with npm start or yarn start.

Build

The sequencer's main functionality stems from the song function in App.js. When startStopLoop is called the Tone transport loop begins and song is called, which increases a beat counter. playInstruments will fire triggerAttackRelease on every instrument who's beat signature matches the counter.

Components

The UX/UI is divided into unique React components. The controls directory contains components for Controls.js, which allows users to play/pause the sequencer, add a new instrument, and open additional options defined in SequencerOptions.js.

The selector directory is divided into a beat visualizer and a beat selector. Selector.js also includes effects and note options, defined in SelectorOptions.js

New Features in Version 2.0

  • Sample upload: allow for users to upload their own samples to use in the sequencer.

More Features to be implemented

  • Mobile support.
  • More instrument effects.

Issues

  • Audio becomes distorted after continued use. This is bug that I've noticed frequently when using Tone with multiple instruments and could be memory/CPU related.

Attribution

This project relies heavily on Yotam Mann's Tone.js, a framework built on the Web Audio API.

The note selection in SequencerOptions.js also uses Jakob Miland's Javascript music theory library TeoriaJS.

react-sequencer's People

Contributors

dependabot[bot] avatar jaqarrick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

react-sequencer's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.