MIDI Learn for Max
A simple to use - plug-n-play - MIDI learning system for Max/MSP projects.

Features
Supports all enabled MIDI devices
Supports routing of multiple MIDI controllers to single object in Max/MSP
Supports single MIDI controller to control multiple objects in Max/MSP
Intuitive graphical interface for hiliting objects in Max to arm them for learning
Supports persistent storage of learned assignments
How to use from a user's perspective
Enable MIDI learn mode
Mouse-click on an object in your Max/MSP GUI to hilite the object and arm it for MIDI learn.
An item hilited pink has no current assignments
An item hilited green has a current assignment
Items can have multiple assignments
Example of an item hilited and ready for controller input

Once an item is hilited and receives MIDI controller input, this assignment is saved and the item is unhilited.
An item that is hilited with green already has a controller assigned to it, however, it is possible to assign multiple controllers to a single object.

* If multiple items are hilited and a MIDI controller value is registered, it will respond to any of the MIDI controllers

Shift clicking on any green hilited object will remove all currently stored assignments
Note: Persistance is automatic (i.e., saving to disk is automatic)

How to use from a developer's perspective
The MIDI learn system is encapsulated into a single Max patcher which uses a js object (and a javascript file). The included project shows an example of how this patcher can be used.
This implementation requires that your project use the Max/MSP pattr system, specifically the pattrstorage system. All objects that are recognized by the pattstorage system are automatically included in the MIDI learn system.
The inputs of the midilearn object inputs are as follows:
MIDI learn mode on/off (0/1)
MIDI on/off (0/1)
Output of your pattrstorage object
Assigned hilite color
Unassigned hilite color
logging mode on/off
The output of the midilearn object must be connected to the input of your pattrstorage object
Download this tool
Thx a lot. It could be great to add a pickup function.
Good Afternoon,
Im looking for someone to help me create a Tranpose MaxforLive patch. You seem like you have a pretty good handle on how to code in Max.
Would you be able to help me out?
This is what Im trying to do:
Ive been looking for and trying to figure out how to create a Transpose Device.
This device would:
-have an up and down functionality (2 buttons)
-each button would transpose up or down 1 semitone from the current position
Basically just like the “Pitch” Midi Effect, but instead of a knob control…its split into 2 button controls (up/down)
Please let me know if you can help or steer me in the right direction. So far Ive been trying to learn the process from youtube, but I think im missing a few critical programming elements to finish it.
Thanks in advance for your help, Bruce
Is there a way to map properly [pictctrl] and [pictslider] objects?
Added to the pattr they get mapped but the input is always 0.
Any fix?
Author