Giter Club home page Giter Club logo

cellseq's Introduction

cellseq v0.2.2

a cellular automata driven midi sequencer

dependencies

installation

  • clone repo $ git clone 'git://git.huck.website/cellseq'
  • enter directory $ cd cellseq
  • build and run $ cargo run
  • install $ cargo install --path .

usage

cellseq consists of two interactive grids, referred to as the map (on the right) and the mask (on the left). clicking inside either one toggles the selected grid square on or off.

when the play button (top left corner) is pressed, the current map will be ran as an iterative sequence of steps using the rules of conway's game of life to determine each step. each step is evenly spaced according to the set bpm and note division.

step_ms = 60000 / ( bpm / divisor )

during each step the current map will be compared with the mask, and any cells that are selected on both are 'triggered'. the vertical slider between the two boards determine the density of triggers that get turned into actual notes, allowing greater control over the amount of notes being generated.

the notes generated can be further refined using the controls at the bottom. selecting a scale will only allow notes in that scale, and the octave center and range controls how high and low the scale will extend. the two vertical sliders on the right give a range of velocities that will be generated.

for each trigger that becomes a note, cellseq checks if that note is already playing, in which case it sends a note-off. otherwise it sends a note-on for the selected midi channel. the voice count is limited to the selected number, and randomly chooses what voice to cut when the limit is hit.

by turning on the loop functionality a small portion of the sequence will be repeated ad infinitum. the length of this loop can be adjusted, and the start point is set when the toggle is turned on.

by using the save and reset buttons on the top row, you can remember and recall a map state, making it easy to test small changes in a base pattern. the clear map and mask buttons revert the respective board to an empty state.

the horizontal slider on the bottom gives a variable level of random 'soup' that can be generated on either the map or the mask according to the given probability.

cellseq's People

Stargazers

 avatar  avatar

Watchers

 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.