110.modular
Contents
System Requirement[edit]
110.modular has been built in and for Max/MSP 4.1 on Mac OS 9 around new year 2007/2008.
it requires the abstractions libraries 110-MAX and 110-MSP to run, but it uses (almost) no third party externals, to ensure best compatibility and easy maintainance.
third party externals currently used by some modules are:
- lorenz (mzed, not available for all platforms)
- mtof~ (percolate, only required for OS 9)
- scramble and sort, renamed to jmc.scramble and jmc.sort (jmc, only required for OS 9)
- atoi and itoa (only required for OS 9)
- granola~ (eric lyon, not available for all platforms)
- flame (if you know what this is, you already have it installed)
- In Mac OS 9 110.modular also requires the pak object (i.e. you must have jitter.)
- future modules might require mousetrack (you can find this under "quasi objects" in the various pluggo distributions.)
- on windows you will finally need quicktime in order to be able to open the (currently) .pct format pictures.
known bugs in Max 5: background pictures are off for 1/1 pixels, minor init error for waveform object. Max 6 is untested.
Data Types[edit]
when composing in 110.modular we work with the following symbolic types of data between the modules:
a step
...which is a single integer and is used as trigger containing its own index. steps are mainly used to represent position in time, relative position, or forms of relation to other steps.
the majority of modules, for example the sequencer gates, will just wrap input when it is outside their internal range, so that you may also send 17 or -5 into a 16-step sequencer gate.
a note
...which is regulary a float, but also may be an int if you are working with a chromatic scale only. it is representing a note number equal to the midi note specification. but unlike midi notes, you may also use numbers smaller than 0. or bigger than 127. in 110.modular. there is no "note on", "note off", "velocity" or "duration" value for a note, unless you add it yourself (probably in the final part of your composition/patch.)
a chord
...which is a list of notes.
start and stop
...which are two special messages sent from the master module only. the master module´s start command tells clocks in other modules to start running. the master module´s stop command stops other clocks across the runtime, and it also and resets a bunch of parameters in many other modules to their initial state (such as a counters, which are reset to 0 on stop.)
a stream of successive notes is called a melody, and a group of a given amount of successive notes is called a phrase. these two symbolic "data types" play a role in certain processes such as the "phr" modules.
of course there is also "modulation data" or "controller data" beeing used, mainly by GUI elements and "generators". it is regulary in the range of 0.-1., in some cases also "bipolar" from -1.-1.. theoretically it may be anything, of course.
the use of symbols, lists or quasi lists (such as "set 1 0.66") are avoided where possible, but there might be the one or other exception in the future.
Download[edit]
Discussion[edit]
for any questions, comments, bug reports, please use the "discussion" wiki page, the 110.modular mailing list, or email me directly.
Modules (System)[edit]
master ¥ |
pager ¥ |
scriptor ¥ |
Modules (Data)[edit]
A-1201 ¥ |
A-1212 ¥ |
A-1213 ¥ |
A-1600 blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. |
A-1601 ¥ |
A-1602 blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah. |
A-1603 ¥ |
A-1609 ¥ |
A-1610 ¥ |
A-1611 ¥ |
A-1613 ¥ |
A-1616 ¥ |
A-1617 ¥ |
A-1619 ¥ |
A-1620 ¥ |
A-1646 ¥ |
A-1652 ¥ |
A-1655 ¥ |
A-1677 ¥ |
A-1680 ¥ |
A-1691 ¥ |
A-32-V ¥ |
A-3232 ¥ |
A-6464 ¥ |
alea produces random numbers within a given range |
antenna up to 8 dynamic receives |
asmuchasgate a gate which passes data from the first input as often as something else has been sent into the second input before. |
automobil ¥ |
B-1616 a full featured sequencer module with its own clock. |
beatshift ¥ |
binoctgen the binary octal generator supplies 2 rows of 8-digit binary numbers, which are sent out as list in order to control the settings in other modules |
broadcast up to 8 dynamic sends |
canon ¥ |
capybara a simple parameter output for the capybara |
casc-2 the cascader is a little utility which lets you easily create a bigger sequencer gate out of two small sequencer gates |
casc-4 the 4x cascader cadscades up to 4 sequencer gates |
cc-keywise creates controller data according to the key input. |
cc-voices creates controller data according to the number of notes in the incoming chord |
cconv-2100 combiconvert lets you add a slider or XY slider and scale, reverse and delay up to 8 different modulation data from the input. |
chbasekeyspray finds the lowest note in a chord and then distributes the incoming chord to different outlets, according to the key of the lowest note. |
chintersector ¥? |
chirikov a generator which calculates 2 modulations from a periodically pertubated pendulum model |
chleadkeyspray finds the highest note in a chord and then distributes the incoming chord to different outlets, according to the key of the lowest note. |
chmugressor ¥ |
chordbase outputs the lowest note in a chord |
chordbreak iterates the notes contained in chord |
chordcloud ¥ |
chorddisplay a keyboard display |
chordecho ¥? |
chordhilo ¥? |
chordinvert inverts a chord around its median |
chordlenspray distributes chords to different outputs according on the amount of notes they contain |
chordmerge ¥? |
chordmirror mirrors a chord around its highest or lowest note |
chordmultiply multiplies the notes from two chords with each other (while the lowest note of the left input is made the base octave) |
chordreduct randomly thins out chords by filtering out some of the notes |
chordsort sort or scramble the order of notes in a chord list |
chordtrans simple addition/transposition for chords (or any list of numbers) |
chordunzip removes any other note from a chord list, builds a second chord from the removed notes and gives it out at the second output |
chordvoicer fattens chords by adding a set of given primes to all notes contained in the chord |
ckey5 a simple keyboard controller |
compounder ¥? |
conditgate the conditional gate offers a bunch of different if/then/else constructs after which you can filter the input. |
conditional the conditional composer offers a bunch of different if/then/else constructs after which you can modify the input or any other data |
conditsplit the conditional splitter offers a bunch of different if/then/else constructs after which you can route the input to one of two outputs. |
conductor the conductor is a multiple counters object |
continuum a floating point keyboard controller with velocity, portamento, and scaling, which got its name from the haken audio continuum |
contramel contramelodica is a sophisticated melody modulator which offers four different algorithms for changing the input melody according to the intervals/transitions it contains. |
count the basic counter object |
datadelay a microdelay for every kind of data |
datamorph datamorph mixes the input of 2 sources by choosing single messages based on probability |
datamorph4 datamorph-4 mixes the input of 4 sources in a 2x2 grid by choosing single messages based on probability |
datarecorder ¥ |
dataslide a simple floating point number interpolator similar to the [slide] object. |
decoder ¥? |
deltagate a gate which opens or closes depending on the amount of time between the last two inputs. |
deltameter ¥ |
deltasplit ¥ |
deltaswitch ¥ |
depot-16 ¥ |
depot-4 ¥ |
distributor ¥ |
dkey5 ¥ |
dlfo ¥ |
dur-keywise ¥ |
dur-voices ¥ |
dŸrer ¥ |
eithergate ¥ |
envcontrol ¥ |
escher ¥ |
euclid ¥ |
eventcapt ¥ |
eventcleaner ¥ |
eventdensity ¥ |
eventreader ¥ |
exscalabur ¥ |
groupgate ¥ |
groupsplit ¥ |
groupswitch ¥ |
harmdetector ¥ |
harmfingers ¥ |
indices ¥ |
indicesvst indices vst automatically strips the parameter implementation (parameter name and parameter number) from plug-in dragges onto it. the paramter names will be available in menus for you to select from. incoming controller data in the form of single floats will now be prepended with the right index, ready to be sent to the [vst~] object. |
infinitecount a counter which starts counting at 1 and will not end counting up in the foreseeable future. |
infiniteloop a counter which loops a given range of numbers. |
instrument ¥ |
interpolatedchord ¥ |
intervalfinder outputs the interval of the last two notes received. |
inverseparam reverses the direction of a range of 0.-1. |
invertaround mirrors incoming notes around a dynamic point. |
justine justine is that fine girl from next door which translates your chromatic scale notes of a given key to note numbers representing a just scale tuning version of the same notes and key. |
keyfilter ¥ |
keystats the key statistics module counts the running total per chromatic key and displays the cumulative percentage graphically. |
klimbim the klimbim module is capable of creating linear chord progressions of the input, even when the input chord is broader than one octave. |
koblontio a set of controller knobs. |
L-1609 ¥ |
lazyfingers ¥ |
led-16 ??? |
lorenz a generator based on the lorenz function, which offers three relational modulation outputs. |
magicnet magicnet is a geometrically organized rythm generator. |
mapper maps a range of numbers to another. |
mapperpro mapper pro offers mapping and various different methods of distortion of ranges of numbers. |
markov WTF? |
matrix-4 ¥ |
memorium ¥ |
mi-cc-16 ¥ |
mi-note-16 ¥ |
mnoteprocessor the midi note processor module lets you process chords in midi form (i.e. as successive notes) by 1.) converting them to a parallel format (i.e. a list of note numbers), and 2.) splitting them into note on and note off events. after processing the data, it has to be fed back into the mnoteprocessor module, where the data is - delayed for a few ms - formatted back to midi data. |
modulate modulating the modulator: influence modulation data with other modulation data, and control the amount how much. |
mtof-16 16 instances of mtof in one object. |
multiplesrem the multiples remover cleans out doubles in chord lists. |
nervfingers the nervous fingers module modifies melodies by adding additional events. |
nodalrythm nodalrythm offers a simple visually controllable markov chain and can be used as a counter object for 8 steps. the 9th step is a "chain output", which can be connected to further instances of nodalrythm for creating bigger networks. |
note-to-vst formats single note number events from 110.modular to a midi note event list ready for the [vst~] object. |
notechooser the note chooser is a register where you enter a few note numbers in order to trigger them individually. |
notecloud the notecloud module produces a cloud of note numbers with gaussian distribution, a given range, intensity, center note, and with a given range for the time between the notes. |
noteout ¥ |
notepass ¥ |
noteslide ¥ |
notewalker ¥ |
nthgate the nth gate passes only every nth input. |
nthop ¥ |
nthsplit the nth splitter routes every nth input data to the alternate output |
overtones a preset management module. currently dysfunct. |
P-1001 ¥ |
packer a dynamic list packing object for up to 8 floats |
palindrome the palindrome is a counter which can count in up/down or palindrome style. |
param-keywise ¥ |
paramutate a set of sliders which automutate when triggered by an input. |
parsons this realtime version of the parsons encoder analyses melodies and outputs the digits 0, 1, or 2 as single numbers according to the last interval direction in the melody. |
phrhilo ¥ |
phrintervalhilo ¥ |
phrmean ¥ |
phrprimefilter ¥ |
phrrandmemb ¥ |
phrtochord ¥ |
physical ¥ |
plusminus general addition and substraction. |
polycount an automatic polyrhythmic counter module with three signatures/speeds. |
primefilter removes successive primes or octaves from a melody. |
probagate passes input or not based on probability. |
probasplit routes input to two different outputs based on probability. |
probaswitch switches between two inputs based on probability. |
procrastinator a shift register with up to 32 registers and only the last output active. |
pushodd pushes every other input behind its sucessor: input #1 will be stored in a register and will become output #3 when triggered by input #3, while inputs #2 and #4 will be passed without delay. |
pwheel ¥? |
quickmidi 16 master continous controller midi inputs, which are available globally (actually its implementation across modules is still missing) |
rampage a ramp processor with retrig. |
recount recount counts only a few numbers and only once when it is triggered. if it is triggered again before the current counting process is finished, the current counting process will be replaced by the new one. |
reichcount the steve reich counter is a modifier built around a translation table of up to 128 integers. each time a user defined loop of n steps has been received, the reich counter swaps two steps within a given range of numbers and of a certain distance to each other with each other in its translation table, so that the next loop will be slightly different. |
rekeys a translation module which replaces each chromatic key with an other one. |
roulette outputs the input randomly at up to 16 different outputs. |
schoenberg ¥ |
shepard produces up to 8 shepard tone style modulation data streams plus additional data for fade-in fade-out options |
shiftreg a classic shiftregister with up to 16 registers/outputs. |
sliders sliders are essential. |
slipfingers slipfingers adds little errors such as forgotten or wrong notes to the input |
songpos shows you how long the master object already runs. |
spaceinv spaceinvaders is a little composition game where you can create endless melodies in a petri network based on custom note values and transition probabilities. |
speedlim whet the names says: contains a speedlim max object |
spreadfingers randomly shifts some of the input notes for octaves. |
stepdelay a sequencer gate which passes all steps, but allows you to set differeent microdelays per step. |
talkgate ¥ |
tempchord converts note numbers or chrods to note numbers or chrods of different tempered scales. offers 8 parallel channels. |
tempkey converts note numbers to note numbers of different tempered scales. offers 8 parallel channels. |
tengate a gate with up to 10 outputs. |
thuemorse the thue/morse generator converts input numbers (decimal base) to other bases, and then counts how often a certain digit appears, and output this number. a simple and effective way how to produce various self-similar series of integers in real time. |
timegate ¥ |
timesplit ¥ |
trig ¥ |
twogate a simple gate with two outputs |
varibang produces a bang with a chance of 50% when triggered |
varionoff produces 0 or 1 with a 50/50 chance when triggered |
vel-bystep ¥ |
vel-keywise ¥ |
vel-ramp ¥ |
vel-voices ¥ |
veldur the most simple way to add fixed or dynamic values for velocity and duration to a float or int number representing a note event. |
verhulst ¥? |
wackel the wackel module wackels you 4 streams of modulation data based on different random number distributions. |
white2nn a conversion table which lets you use only the white keys on a keyboard to play a chromatic scale. very useful for percussion or further conversion to exotic scales which own more or less than 12 notes per octave. |
xgate the xgate has two states: input 1 connected to output 1 and input 2 connected to output 2, and outputs switched. |
xy an XY controller pad |
zerofix this object might be terminated soon. |
zerokill a gate which filters out (note number) 0, for cases where 0 means rest. this object might be terminated soon. |