All Projects → garrensmith → abletonpush

garrensmith / abletonpush

Licence: Apache-2.0 license
A library for working with the Ableton Push in the browser

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to abletonpush

Scribbletune
Create music with JavaScript
Stars: ✭ 3,509 (+7365.96%)
Mutual labels:  webmidi, webaudio, ableton
midi
An Observable based library for the use of Web MIDI API with Angular
Stars: ✭ 35 (-25.53%)
Mutual labels:  webmidi, webaudio
PicoAudio.js
A JavaScript library for playing MIDI (Standard MIDI File) on Web.
Stars: ✭ 28 (-40.43%)
Mutual labels:  webmidi, webaudio
muzikilo.js
A code driven synth for the browser
Stars: ✭ 20 (-57.45%)
Mutual labels:  webmidi, webaudio
resimulated
1st place at Revision 2020 (PC 64K Intro)
Stars: ✭ 18 (-61.7%)
Mutual labels:  webaudio
pacer-editor
Web editor for the Nektar Pacer MIDI controler
Stars: ✭ 16 (-65.96%)
Mutual labels:  webmidi
BS2-Web
Novation Bass Station II Web interface
Stars: ✭ 34 (-27.66%)
Mutual labels:  webmidi
OpenDeck
Software and hardware platform for simpler building of MIDI controllers with support for DMX.
Stars: ✭ 438 (+831.91%)
Mutual labels:  webmidi
microfreak-reader
An application to read and display the presets stored in the Arturia MicroFreak memory.
Stars: ✭ 32 (-31.91%)
Mutual labels:  webmidi
Bose-Frames-Web-SDK
A JavaScript version of the Bose Frames SDK
Stars: ✭ 74 (+57.45%)
Mutual labels:  webaudio
adsrnode
Advanced ADSR envelope node for WebAudio
Stars: ✭ 33 (-29.79%)
Mutual labels:  webaudio
elm-audio-graph
Declarative Web Audio in Elm
Stars: ✭ 14 (-70.21%)
Mutual labels:  webaudio
Shape-Your-Music
A web application for drawing music.
Stars: ✭ 106 (+125.53%)
Mutual labels:  webaudio
learn-push2-with-svelte
Learn chords, scales, and music theory on the Push 2, right inside your web browser!
Stars: ✭ 37 (-21.28%)
Mutual labels:  webmidi
tilt
Live coding bytebeat-style language for the web
Stars: ✭ 30 (-36.17%)
Mutual labels:  webaudio
wui
Collection of GUI widgets for the web
Stars: ✭ 44 (-6.38%)
Mutual labels:  webmidi
Introduction p5js
This is a french introduction to p5*js
Stars: ✭ 29 (-38.3%)
Mutual labels:  webaudio
webaudio-synth
WebAudio Polyphonic Synthesizer
Stars: ✭ 83 (+76.6%)
Mutual labels:  webaudio
jamhub
low-latency jamming space for musicians
Stars: ✭ 29 (-38.3%)
Mutual labels:  webaudio
cabl
Controller ABstraction Layer
Stars: ✭ 111 (+136.17%)
Mutual labels:  ableton

Ableton Push

abletonpush is a library for working with the Ableton Push in the browser. A working example can be found here. It is designed to allow a user to play notes and chords in the Isomorphic pad layout on the Push. The pad is setup in C Major scale and each pad pressed will be relative to that. The pads will be coloured to show the layout and pads will change colour when pressed.

Installation

The abletonpush module is distributed through npm and is compatible with webpack and browserify. You can install it:

npm install --save @garrensmith/abletonpush

Table Of Contents

Usage

abletonpush is only designed to run in the browser. It uses the webmidi library underneath. Currently only Google Chrome supports webmidi. With Google Chrome, web midi will work with http on a localhost port but for a production site it will require https.

import AbletonPush from 'abletonpush'

const abletonpush = new AbletonPush();

abletonpush.on('note:on', ({note, octave}) => {
  console.log(`note ${note}:${octave}` was pressed);
});

Once the library has connected to an Ableton Push it will colour the pads on the Push so that can be used as an Isomorphic keyboard.

Events

abletonpush is an eventemitter at its core. It sends events for any interaction with the Push device.

Event Description
push:connected A push deviced is connected
push:disconnected A push deviced is disconnected.
push:failed Failed to access the push's inputs and outputs
push:encoder:${name} A push encoder with the name has togged in a direction
push:encoder:${number} A push encoder with the number has togged in a direction
note:on A pad has been pressed
note:off A pad has been released
push:chord A major/minor chord was played (this is very experimental)

SetColourButtons

This sets the colours for the buttons just below the encoders. This can be used along with the buttonColours variable.

import AbletonPush from 'abletonpush';
import { buttonColors } from 'abletonpush';

const push = new AbletonPush();
push.setColourButtons(102, buttonColors.red);

Take a look at Ableton Push Midi interface for the correct button numbers

Logging

Passing logging: true when creating the AbletonPush object will enable logging.

const push = new AbletonPush({logging: true})

License

Apache license 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].