-
Notifications
You must be signed in to change notification settings - Fork 3
Home
What is Gibberwocky for Max?
A quick way to augment a Max patcher with live coded sequencing & modulations. Live coding happens in a browser-based text editor, following similar idioms as in the widely-used Gibber environment. Modulations can be messages, UI knob tweaks, and even arbitrary signal graphs.
Open Max's Package Manager, find & install the gibberwocky
package
Alternatively, download/checkout https://github.com/gibber-cc/gibberwocky.max into Documents/Max 8/Packages
(or My Documents/Max 8/Packages
on windows)
Make sure you have a recent version of Chrome (or Firefox or Safari (or maybe even Edge now)).
Add a [gibberwocky]
object to your Max patcher. Turn on audio in the patcher, if it isn't already on.
Send the [gibberwocky]
object a bang
to open the editor (alternatively, just open http://gibberwocky.cc/burble in your browser). In the editor's console, if it says "gibberwocky.max is ready to burble", you're all set!
Note: You might need to open port 8081 on your firewall.
Gibberwocky -> Max
-
message
=> messages/lists from [gibberwocky] 1st outlet -
param
=> messages to UI objects with scripting names -
device
=> messages to device objects (including sending midinotes and setting parameters) -
signal
=> audio outlets of [gibberwocky]
message("hello")("world")
...will send the message hello world
out of the gibberwocky 1st outlet. So will:
message("hello.world")
A message path of this kind can also be stored as an callable object, for re-use:
hello = message("hello")
hello("world")
// alternate filter cutoff between 100Hz and 10kHz every beat:
devices['synth']['cutoff'].seq([100, 10000], 1/4)
// midi note number:
devices['synth'].midinote( 60 )
// midi note number, midi velocity, duration in ms:
devices['synth'].midinote( 60, 120, 1000 )
Note, velocity, and duration can all be sequenced independently:
devices['bass'].midinote.seq( 60, 1/2 )
devices['bass'].velocity.seq( [16, 64, 127], 1/2 )
devices['bass'].duration.seq( [10, 100,500], 1/2 )
Generates Euclidean rhythms using the given divisors:
devices['drums'].midinote.seq( 36, Euclid(5,8) )