Inspiration
After learning about the newest updates Web Audio API to the I wanted to learn more about how to use audio samples in javascript. I wanted to create a tool that would be dedicated to pulling samples and editing them carefully.
What it does
The application acts like a sequencer (ex. Novation Launchpad). Users can grab audio from youtube videos and then tailor these clips for playback. The clips can be triggered by the number keys on the keyboard of clicking on the tool. The result was a virtual tool thats fun to use by itself and in conjunction with other instruments.
How I built it
I built a server-rendered web application in React and Flux and then pushed the directory from a Node.js server. I also created a backend that could fetch the audio from youtube videos
Challenges I ran into
Flux includes a lot of boilerplate that is prone to being written incorrectly. I spent most of the first day setting up the structure of the application so this was an area of challenge that slowed my work. I was also working on my own, so I had to keep an eye on every part of the application.
Accomplishments that I'm proud of
I am proud that I completed this project using flux and react -- its the first full scale application that I have deployed using react and the flux dispatcher.
What I learned
I learned how to combine unix tools / binaries with a node backend. While also learning how to build a frontend in React. I learned how to serve audio files through restful requests and I learned that there is a decent amount of latency in this process. I would like to optimize this process in the future and look into new solutions for this problem.
What's next for Sample Sequencer
I would like to add a whole suite of tools including:
- add audio preview
- add other services (ex. Vimeo or Soundcloud)
- I would like to capture other streams of audio
- add the ability to save the sample
- ability to loop samples
- quantizing samples to beats
- metronome
- better filesystem name-schemes / a hashmap of names to video id codes
-> optimizations to the backend

Log in or sign up for Devpost to join the conversation.