Git Product home page Git Product logo

cs.2click's Introduction

cs.2click

A Better Audio Router for a Modular System.

What/why?

Audio routing in a context that involves even a moderate number of potential nodes can get messy very quickly. Matrices that map inputs and outputs become unreadable with just a handful of rows and columns, while input/output selection embedded within modules degenerates into a stream of potentially tens of clicks to get your basic routing set up. The aim here is to build a better way of routing, designed for speed, ease, and clarity, hopefully making on-the-fly routing a less tedious experience. The inspiration is the two-click pattern used in Ableton Live, where the first click indicates one end of a signal flow and the second the other (HT Sam Wolk).

Functionality

cs.2click animated demo

A simple interface of in- and output slots are provided by [bpatcher] modules cs.2click-inputs and cs.2click-outputs. These modules require a unique string as their first argument, naming the module. An optional second argument sets the number of slots that are available (between 1 and 8). If no second argument is provided, the modules default to a single slot.

Routing pairs are stored in a global dictionary named cs.2click-routing-pairs. This permits easy routing not only within a single Max patch, but also between patches.

The README.maxpat demonstrates basic functionality and also includes some information on getting up and running.

Preset storage & recall

An additional abstraction [cs.2click-presets] permits you to store numbered presets and recall them by sending a preset’s index number. An argument provided to [cs.2click-presets] sets a filename to which you can save your preset (as a JSON file) and it will automatically try to load that file when the patch is opened. A “save” message will write your current presets to disk (in the same directory as the patch containing the abstraction).

This mechanism is built on a central [dict] object, which contains the stored presets. Messages whose meaning is not defined by the abstraction (store, save, storagewindow, storage_close, integers/floats) are passed on to this [dict], permitting direct communication if desired. For example, using Max’s standard import/export messages one can load and save preset files that are not in the same directory as your patch.

Point 6 in the README.maxpat demonstrates the basic preset capabilities, and the readme-presets.json file contains some example presets.

Routing with messages

For cases where you need to control a system of cs.2click modules with messages, see the [cs.2click-remote] abstraction.

Installation

Download the latest release, to your Max packages folder. You can find this under ~/Documents/Max/Packages for Max 6 or ~/Documents/Max 7/Packages for Max 7.

I’d highly recommend using Nathanaël Lécaudé’s Max Package Downloader to help stay up-to-date with new version releases.

Compatibility

These modules have been tested with Max 6 and 7. They will not work with Max/MSP 5 or lower. Please report bugs under the issues tab above.

License

This software is free to use, modify, and redistribute under a GNU General Public License.

cs.2click's People

Contributors

delucis avatar

Watchers

 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.