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:

  1. MIDI learn mode on/off (0/1)

  2. MIDI on/off (0/1)

  3. Output of your pattrstorage object

  4. Assigned hilite color

  5. Unassigned hilite color

  6. logging mode on/off

The output of the midilearn object must be connected to the input of your pattrstorage object

FP's icon

Thx a lot. It could be great to add a pickup function.

Bruce Wayne's icon

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

enricopietrocola's icon

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?

Published

Creative Commons License