From 10a1c21691562690cf1977fff7d3d58f6364653b Mon Sep 17 00:00:00 2001 From: Steve MacKinnon Date: Tue, 6 Aug 2024 14:01:34 -0400 Subject: [PATCH] Update readme --- README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e173d47..86aea57 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,19 @@ # Beat Sequence +Check it out at [beatsequence.com](https://beatsequence.com/) + +## Project Info + +This is a little beat maker pet project I built a few years ago as I was learning React. It was inspired a bit by the [Arturia BeatStep Pro](https://www.arturia.com/products/hybrid-synths/beatstep-pro/overview) hardware sequencer. It features synthesized kick, snare, closed hi-hat, sine osc, and square osc tracks all with basic parameter controls. The sequencer can be randomized, and each track has a "chance" parameter that controls the probability of each enabled step being triggered. + +Feel free to use this repo as a starting point + ## Dependencies - [Yarn](https://yarnpkg.com/): `brew install yarn` - [Parcel](https://parceljs.org/getting-started/webapp/): `yarn add --dev parcel` -## Running local server +## Running the dev server 1. Run `yarn install` 2. Navigate to [http://localhost:1234](http://localhost:1234) @@ -17,9 +25,10 @@ - Reusable components live in /shared-components - Making sound: - The audio engine and sequencer live in /engine - - The sequencer builds on top of Tone.js's sequencer by adding support for randomization and scale locking. But, Tone.js is responsible for driving the main sequence scheduler. - - The things that make sounds live in /generators. Generators also leverage Tone.js, which build on top of the WebAudio API. They all implement the generator interface, which has a single trigger() function that is called when they should play. + - The sequencer builds on top of Tone.js's sequencer by adding support for randomization and scale locking, but Tone.js is responsible for driving the main sequence scheduler. + - Sound generators live in /generators. Generators also leverage Tone.js, which build on top of the WebAudio API. They all implement the generator interface, which has a single trigger() function that is called when they should play. - State management: - - This app uses Redux toolkit to handle state. + - Uses Redux toolkit - State is typically fetched via the useAppSelector() hook and via useAppDispatch() - App-specific entities can be found in /entities +- The UI makes heavy use of [Mui](https://mui.com/) components