In this instance, I think your solution is to put the pitchchanger in an effects rack, then add another device to that rack in a second chain (a simple delay or an m4l device that allows you to compensate for the difference you're getting with the pitchchanger's output). Instead of using the Mix% on...

I don't use remote~ myself, so I can't testify to its efficacy. However: Js API calls are all low-priority (deferred), so, yeah, that's why you're seeing things queued and released. In addition, all of your js is happening in a single thread. I try to limit as much as possible the js-API interaction...

http://cycling74.com/forums/topic.php?id=23910 ;) a edit::Sorry, I was pressed for time earlier. I guess my simple opinion is that "Yes, Python is much faster". Whatever you're going to do with the API in javascript is going to have to be handed over to Python anyway (and there is much involved ther...

One thing: you need to override the handle_sysex() method of the ControlSurface module....it's just a placeholder in the super(), so it's hitting an assertion error and possibly derailing some other stuff. I'm not sure about the assertion error with build_midi_map....are you calling it directly from...

It will take just as long either way. It's mostly just a matter of which implementation is most convenient for your purposes. If you are only needing to receive notifications from a handful of id's, it's probably easier to set up button elements and override ControlElement._report_value.

It's slightly tricky. Yes, you have to explicitly forward the id's you want callbacks from using the ControlSurface.install_forwarding(), or do it manually using the Live.MIDIMap.forward_midi_note() method. If doing it the former way, you'll need to have a ButtonElement to assign the callback to. Al...

Just a quick note to let you know that b994 has been released. The new version contains, among other things, fixes for Max 6 compatibility. There are a lot of other additions as well, you can find out more over at my blog:

I always seem to be in a hurry when you're asking interesting questions like this....and now is no different. Here's the short of it (if I'm understanding you correctly): Any Live object sent between Python and Max is converted by MxDCore into the unique id you're looking for (if you send 'id', your...

Leigh, drop me some mail and I'll sort you out. I can't look at this extensively right now, but generally you have the right idea. There's some voodoo involved in order to get MxDCore to recognize the NotifyingControlElement's _value_notifications as a valid observable property. I'll have to look at...