Git Product home page Git Product logo

chordinate's Introduction

Chordinate

Chordinate live

Chordinate is a web-application that offers a light-weight instrument to encourage musical creativity and social play. The project was a chance to grow as a web-developer working under deadline.

Chordinate

BIG THANKS: Chordinate was visually designed by Rachel Needle -- a truly brilliant artist and generous friend (Product Designer @ Apple). Thank you and thanks to those who took time to check out the app.

Design Docs

Keyboard

Keyboard The app is built around the keyboard which determines the URL depending on if it is in recording or playback state.

Songs

Notes are built by mapping a list of keyboard keys through a function that generates frequencies to create AudioContext nodes.

const makeTones = keys => {
  let tones = {};
  keys.forEach((key, idx) => {
    tones[key] = 329.63 * Math.pow(2, (idx/12));
  });
  return tones;
};

Songs are then saved in with note-keys in an array of slices which can be played back by storing the difference from the time the song started and the time the note or chord was played.

slices:
[
  { notes: [ 'a' ], timeSlice: 1250191 },
  { notes: [], timeSlice: 1255000 },
  { notes: [ 'a', 's' ], timeSlice: 1265180 }
  { notes: [], timeSlice: 1279511 }
]

Sharing

Sharing

Songs go to a feed that sorts by age, likes and plays. Songs are searchable and clicking a username will show all the user's songs.

The features for a minimum-viable-product were:

  • New account creation, login, and guest/demo login
  • CRUD Tunes via Synth
  • Share tunes via feed
  • Discoverable tunes
  • User Pages

Future features

I hope to add more to user interaction with friends and follows. I also hope to fill out the keyboard with scales and instruments. Layering songs and also live jam-sessions--plenty of room for growth.

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.