Let's get some unrestricted midi in and out of m4l devices!

Learn about building and using Max for Live devices.
leighhunt
Posts: 31
Joined: Mon Mar 30, 2009 9:41 am
Location: London UK
Contact:

Let's get some unrestricted midi in and out of m4l devices!

Post by leighhunt » Thu Sep 16, 2010 8:59 pm

Hi all.
I am pleased to have finished my first pair of max externals, specifically designed for use within max4live, . This is no 'ready made' live device, these are only max objects which, if you take a look at the help patches, will enable you to build max4live devices with full access to sending and receiving midi events - notes/cc/program change/channel aftertouch/poly aftertouch/pitchbend and sysex from outside of Live, and without channel restrictions. These objects can equally be used in maxmsp, but differ only slightly from maxmsp's midiin and midiout objects.
Unfortunately for you windows users, these are mac only, and I have no plans to delve into windows midi frameworks, sorry. For windows developers, any source code would be of limited use as generally the code is quite simple. The head scratchy bit was doing all the coremidi integration... especially as I'd never looked at mac os frameworks before a couple of weeks ago.
Feedback is most certainly welcome on useability, robustness and feature requests.
I'm also interested as to how anyone might end up using these in their max4live devices, if indeed you do.

Kind regards
Leigh

http://web.mac.com/leighhunt/iWeb/Site/downloads.html

@broc - I'll get the send/receives tidied up early next week all being well and you can give them a good old run for their money! hehe!
@bulo - We'll have no talk of devils here Sir... Diddy metal!
@ amounra93 and Bjorn - Thanks very much for your input.
@ flowdesigner - sorry, I was so busy doing these, I didn't have the headspace to deal with too many betatesters!
Enjoy xx

amounra93
Posts: 432
Joined: Sat Jan 24, 2009 8:16 pm
Location: Arcata, CA
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by amounra93 » Thu Sep 16, 2010 11:21 pm

Yay! I think a number of users are going to be pretty happy about Leigh's new externals....I've been testing them for a little while, and everything seems to work well....for those of you that were participating in the other threads about this, here's your (mac only) solution.

I'm going to drop this thing into Monomodular for the next revision. Very STOKED!

Thanks so much for making this wonderful tool, and for making it open source and free. You rock, you are my hero, and you definitely get a raise ;)

NOW, who is going to make an implementation for Windows, so all those poor souls out there stuck in PC land have a solution as well?
http://www.aumhaa.com for Monomod and other m4l goodies.

bulo
Posts: 434
Joined: Sat Sep 09, 2006 7:57 pm
Location: France
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by bulo » Fri Sep 17, 2010 12:16 am

Eeeevvviiiillllll :twisted:
My tongue spits english like a frog and my head is currently searching for a comprehensive language.
And I shit here

broc
Posts: 1151
Joined: Mon Jul 26, 2004 8:37 am

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by broc » Fri Sep 17, 2010 9:55 am

No devil or evil, just clever programming. Congrats!

leighhunt
Posts: 31
Joined: Mon Mar 30, 2009 9:41 am
Location: London UK
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by leighhunt » Fri Sep 17, 2010 10:43 am

good good - me no like devils, or evil ! lol

broc
Posts: 1151
Joined: Mon Jul 26, 2004 8:37 am

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by broc » Fri Sep 17, 2010 10:50 pm

leighhunt wrote:These objects can equally be used in maxmsp, but differ only slightly from maxmsp's midiin and midiout objects.
Can you please explain the differences (and reasons) in more detail?
Would it be possible for the user to build abstractions which are fully compatible with Max?

How about 1-byte real time messages like MIDI clock and MTC?
For example, I have a MTC generator built in Max.
Running it in M4L would turn Live into a MTC master (which currently is a missing feature).

leighhunt
Posts: 31
Joined: Mon Mar 30, 2009 9:41 am
Location: London UK
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by leighhunt » Sun Sep 19, 2010 3:57 pm

Hi Broc,
I'll start a new topic as I have updated to include MTC/clock.
Cheers,
Leigh

3dot...
Posts: 9996
Joined: Tue Feb 20, 2007 11:10 pm

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by 3dot... » Wed Sep 22, 2010 1:14 pm

umm.... we can do this already using osc..or through mxj...
what am I missing? (windows user)
Image

hoffman2k
Posts: 14718
Joined: Tue Jun 15, 2004 6:40 pm
Location: Belgium
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by hoffman2k » Wed Sep 22, 2010 1:24 pm

3dot... wrote:umm.... we can do this already using osc..or through mxj...
what am I missing? (windows user)
Its a MIDI Driver inside a MFL device (like midiin in regular Max). No OSC/UDP converters needed. Since you can receive/send straight inside a device, Live's MIDI restrictions don't apply. No 3rd party apps and no virtual drivers required.

octopod
Posts: 70
Joined: Wed Aug 05, 2009 8:15 pm

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by octopod » Sat Sep 25, 2010 10:26 pm

This is fantastic! By the looks of things I should be able to create a full editor for my Virus B. Of course I need to get my finger out and learn a bit more Max first but I have a really good reason now. Thanks!

Edit: Can receive and send poly aftertouch, w00t!

ytsek
Posts: 196
Joined: Tue Jul 26, 2005 3:22 pm
Location: Rotterdam
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by ytsek » Mon Sep 27, 2010 9:48 am

We need this for Windows as well.

3dot...
Posts: 9996
Joined: Tue Feb 20, 2007 11:10 pm

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by 3dot... » Mon Sep 27, 2010 10:09 am

ytsek wrote:We need this for Windows as well.
+1 ... but it should outperform the osc option ...
(which isn't gonna be too hard I'm guessing)
did anyone try using the mxj to use Javas' Midi Library ?
I'm thinking this should work..
gonna try it out when I have the time..
Image

flowdesigner
Posts: 930
Joined: Sun Dec 21, 2008 5:58 am

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by flowdesigner » Fri Dec 03, 2010 6:33 pm

leighhunt wrote: Feedback is most certainly welcome on useability, robustness and feature requests.
I'm also interested as to how anyone might end up using these in their max4live devices, if indeed you do.
Hey,

Did you make any progress on using the Mackie C4 with M4L? Thanks

leighhunt
Posts: 31
Joined: Mon Mar 30, 2009 9:41 am
Location: London UK
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by leighhunt » Fri Dec 10, 2010 1:04 pm

Hey,

Did you make any progress on using the Mackie C4 with M4L? Thanks
[
Hi,
Unfortunately I've been rather flat out gigging recently.
I have done some work on C4 integration, but it relies entirely on my own 'parameter' system, which involves a bunch of homemade 'parameter' externals and parsing externals.
This is partly because I don't wish to cloud my brain with the whole python scripting / control surface interfacing learning curve, and also because I already had a system working in MaxMSP which works roughly as follows;

'Parameter' externals hold a storage/recall value and also a 'post modulation' realtime value, so as not to have to update the C4 lcds when modulating from, for example, an lfo source (long sysex messages updating at a fast rate rather clogs up the midi output and slows C4 lcd updating).
What I did was, when a parameter is assigned modulation in a 'mod matrix', so to speak (source/destination/amount etc), the leftmost digit on the lcd for each encoder displays an 'm' so I know it is being modulated.

When saving presets of parameters the 'pre modulated' value is stored.
This method works nicely for my way of thinking... possibly not for others....

The 'parsing' externals (one for each C4 'layer') are constantly updated so that when changing layers on the C4, no conversion of parameter value to ascii to sysex is required. All layers are constantly updated and convert to the sysex messages as and when 'pre modulation' values are changed in the system, thus when changing layers the lcds update much quicker.

This works nicely with M4L devices I have built, and I am slowly building M4L devices (one per track), that observe Ableton devices and load premade 'parameter' external abstractions that convert the Ableton devices to integrate them with the whole system.

Reading this back I'm not sure how better to explain if it sounds somewhat convoluted! sorry.

I might try over the new year period to put together a simple example of the system, but eventually there will be
1 - separate, unique externals for every parameter type (unique integer and floats for each min,max combination/unique menu type parameters) - so quite alot!
2 - just the one 'parsing' external (one instance per C4 layer).
3 - A 'modulation' external for binding modulation sources to the parameter externals (one instance per modulation source/destination).

As you can see, this is a long way off the python scripting way of going about things, but I've put so much time into it so far, with pleasing results, that I am going to stick with it.

Sorry if it's not the answer you were hoping for!

King regards,
Leigh

Valiumdupeuple
Posts: 1135
Joined: Mon May 31, 2010 12:36 pm
Contact:

Re: Let's get some unrestricted midi in and out of m4l devices!

Post by Valiumdupeuple » Sat Mar 05, 2011 7:53 pm

Hi!
Is there a chance to see something like a lh_ctrlin in the future?
To put it simple: I'm making a patch where the 8 knobs from my midi controller controls... 8 parameters. And I've noticed that, compared to ctrlin, using the CC informations that are coming from lh_midiin is not very reliable; i.e it has problems to correctly handle several differents CC that are transmitting informations simultaneously.

Cheers.
Jul

Post Reply