Greetings all. I was excited by what I’ve seen of the possibilities of Antescofo so I bought it right away and have begun reading the manual and trying out the tutorials. I’m a Max4Live owner and quickly realized it was not explicitly clear that this can be used in the context of Max4Live - will Antescofo necessarily require an upgrade to Max proper? Although I see nothing to rule it out so far, it would be nice to know if I may run into an impassable obstacle at some point. Thanks in advance for any clarification!
Hi. I have set up Antescofo in the context of Max4Live. There is nothing inherent that will stop it from working, but there is one issue that is a major nuisance. Max4Live has the caveat that sends/receive pairs can have arbitrary latency (even within the same patch). This means that if you use sends in your score to receives in your Max4Live patch, there can be an arbitrary delay*. I saw up to a 1 second delay when trying this. This limits the use of control changes to either those that have plenty of time, or those where timing is not completely critical. Also, you should make sure to not use any send/receive pairs internally in your Max4Live patches. The Antescofo tutorial patch uses sends, so if you base your patch off this, you should change sends to direct connections.
I updated the score to send OSC messages to Max4Live in place of using send/receive pairs. This is better, but is still not perfect. I have not come up with an ideal solution, and would be happy to hear any suggestions or ideas from anyone.
*Note that when I use the full version of Max as a standalone, without Ableton, everything works as expected without these arbitrary delays incurred whether using sends or OSC messages. If you don’t need Ableton, this may be the preferable solution.
WOW! A second of delay for send/receives in Max4Live is way off the standard for a correct software!!! I am actually not surprised that there is more delay due to computational embedding of Max into Live but this is way too much!
We will start investigating this further.
Meanwhile, note that you can convert ANY basic action (that ‘sends’ to a receiver in Max/Pd/M4L) to an OSC message. For example, the basic action foo some parameters
, sends ‘some parameters’ to ‘foo’ in the host program by default UNLESS you define ‘foo’ as a OSCSEND port as follows:
oscsend foo “localhost” :3002
where “localhost” can be any IP address and “3002” any port.
OSCSEND and OSCRECV templates are also available in AscoGraph’s CREATE menu.
Erratum:
To define ‘foo’ in foo some parameters
as an OSC message, the correct syntax is:
`oscsend foo “localhost” :3002
where “localhost” and “3002” are to be replaced by an IP address (if not localhost!) and a port number.
Additionally, you can add a prefix as the last parameter of OSCSEND (as discussed in this link)
Excellent, thank you both for your responses! I’m working through the tutorials right now; if it’s helpful I’ll let you know what latencies I experience when I get there.
Just for info, the following webpage lists limitations of Max in Live:
http://cycling74.com/docs/max6/dynamic/c74_docs.html#live_limitations
and as stated:
Communication between devices using send and receive is supported, but there may be some latency involved when sending data between devices.But I doubt that it'll be 1 second, otherwise there's a serious problem to be reported to Cycling'74 support!
To be fair, when I saw the ~1 second latency, I was triggering an action with no delay from a note input. The action involved launching 2 curves with a small grain size to smoothly ramp 2 controls on the Ableton side. So, the full chain was:
detect note -> launch curve -> send a continuous stream of controls to Max4Live -> have the Max4Live patch change 2 parameters in the mixer
It is possible the grain size I was using was too small, and the amount of control data sent overwhelmed a message queue somewhere. In other situations where it was a similar path to the above, but sending a single value instead of a control stream from a curve, I would sometimes (and inconsistently) see smaller but still noticeable delays.
Given the latency from the audio interface (set to 128 samples), then from Antescofo to Max4Live (with some send latency) through the control max patch to the Ableton parameter change, through the effects, and out through the audio interface to the monitors, there will be some small latency even under the best circumstances. However, based on the Antescofo demonstrations I have seen on the web, I would suspect that these inherent latencies (other than the Max4Live send) are small enough to not worry to much about. This is anecdotally supported by my test with a standalone-Max version where the latencies were not an issue, and that Ableton Live effects by themselves seem to have low latencies.
I intended to experiment with this, but have had to put this project on the side-burner in favor of some higher priority work. I am hoping I can get back to it next week. I’ll let you know what I find.
I appreciate your help!
Regards,
Kevin