Giter Site home page Giter Site logo

andrefcasimiro / midikrew Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 6.9 MB

A fully fledged music sequencer built with React, Redux, Web AudioContext API and Firebase

Dockerfile 0.23% HTML 1.65% CSS 0.39% JavaScript 97.72%
react node redux drum sampler drummachine music music-composition

midikrew's Introduction

This project was bootstrapped with Create React App.

Version 0.2 now live

https://midikrew.firebaseapp.com/

Midikrew is a music sampler online with saving / exporting abilities. You can produce electronic tracks and save them to a .json file

Future roadmap includes the possibility of adding your own samples and hold a permanent reference to them using cloud storage, and you will be able to save your projects on a json database so you can share them with other members of the community!

midikrew's People

Contributors

andrefcasimiro avatar andrefcasimiroawayco avatar

Stargazers

 avatar

Watchers

 avatar

midikrew's Issues

3 - Add SequencerManager

Add the sequencer manager which will be the whole song divided into sections (sequences), each one with an array of instruments that can also vary (user may add or delete instruments).

Sequencer Manager should then have:

  • Array of sequences
    • Sequence itself (Each row is an instrument)
    • Number of steps in this sequences
  • Array of instruments
    • Each instrument holds a sample

#1 - Implement header bar (logo and navlinks)

  1. Design for mobile first.
  2. Navbar should contain App logo and links
  3. Links should be different for visitors and users

Visitors should see:
Settings, Login, Create Account

Users should see:
Project, Settings, Account, Log out

2 - Implement Authentication with Firebase

User should be able to
| Create account
| Login
| Logout

Integrate this feature using Firebase Auth System and possible a Redux solution to keep track of the user login.

0.2 - Improve Adding Instruments

  • Improve code for adding instruments (Modals)
    • We should be able to select instruments individually for each pack, and listen to a preview of each

4 - Add bpm support and sample library packs

Add bpm support
This should be stored in the redux tree and all the components that use this should be notified (probably just the sequence manager, which controls the interval velocity)

Add sample library easy addition
We already have the menu for drums and bass. Let's add support here to add various default packs with just one click

5 - Add copy and past feature, add serialization to Save / Load projects

We should now go ahead and add the possibility to copy and past patterns.
This should take into account every fx applied to each step!

Furthermore, let's add save and load feature:

  • We can serialize all sequences in the song
  • They contain a list of instruments (we will store the file path)
  • On Load, we must asynchronously load each sample and store it in the redux tree
  • Every array of steps in a given sequence must remember the fx applied!

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.