Giter Club home page Giter Club logo

touchsequencer's Introduction

Touch Sequencer

Classes/Architecture

  • ofApp - the encapsulating class
  • Playhead - lines that move across the screen, triggering osc when they cross nodes. created by swiping finger.
  • PlayheadSeed - a (not drawn) data structure to store direction and velocity information during finger swipes. When released, they create Playheads that move in the average speed and direction of the finger swipe.
  • Node - visible points that trigger osc when they are crossed by playheads.
  • NodeSeed - a (not drawn_ data structure to store finger position when trackpad is being used to create Nodees. When release, they create nodes at last known position of the finger.
  • TouchManager - a wrapper class I made on top of a trackpad addon with methods to retreive new, existing, and removed touches from the trackpad.
  • OscSender- Sends OSC via UDP

Datastructures

  • Collections of Playhead, PlayheadSeed, Node, NodeSeed
  • std::map<Playhead*, std::map<Node*, float> > to store the last known projection coefficient of each node onto each playhead

Building

  • Open the XCode project, build release the release version, and open it.
  • The sequencer outputs OSC, so sound was rendered in Max for Live. Made this decision to allow control over other arbitrary timbres in the future. Also, it allowed me to focus my energy on making the playhead crossing over a node animation as satisfying as possible.

Usage, changing modes

  • 'n': node mode. tap to create nodes
  • 'p': playhead mode. swipe to create playheads
  • 'c': chill mode. touches are ignored

Future work

  • bpm synced metrnonomes
  • better looking playheads
  • nodes decay over time
  • playheads decay over time
  • pitch shift with arrow keys

touchsequencer's People

Contributors

doronrk avatar

Watchers

James Cloos avatar  avatar

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.