looping device: live.observer creating errors despite using deferlow
Hi there,
I’ve created a device which will play scenes in a loop. I’ve attached an annotated version. I’ll explain how it works in a second.
However the problem I’m having is that despite using deferlow after my live.observer I’m still getting “Setting the id cannot be triggered by notifications. You will need to defer your response.” I only get the error message occasionally. And sometimes, but not always, it seems to create a problem and my patch breaks.
To use the device in Live I create midi clips in the first track. I have one clip for each scene. The clips can be any length but not looping.
When started with the button in the device, the first scene is fired and the device begins using live.observer to observe the playing position of the clip in the first track. Once the end of the clip is reached, I send a bang to the beginning of the device and the next scene is fired. The process repeats.
I have a counter which ensures I’m looping through the first 4 scenes automatically. But I can manually advance scenes by hitting the button. Doing this generally creates the error I mentioned above.
I’ve also read this post and the referenced article: https://cycling74.com/forums/%22setting-the-id-cannot-be-triggered-by-notifications-you-will-need-to-defer-your-response-%22
…but I couldn’t find any practical solutions after doing so.
Do any M4L experts here have advice?
Much appreciated,
Ted
Hi Ted, I'm not certain of this, but you might need [deferlow] after the [live.path] objects since you're using their middle outlets (which send notifications in a manner similar to live.observer).
BTW, are you sure that you want to be using the middle outlet instead of the left anyway? I was poking around with this (shameless self-promotion: http://www.maxforlive.com/library/device.php?id=4925 ) and when you're using the middle outlet for the [live.path] object you'll see it sends the id out when you (presumably) don't want to trigger your current scene.
I like the concept for this device :)
HTH,
Tyler
Thanks Tyler - great suggestions.
Unfortunately when I try to use the left outlets for live.path and/or put deferlow after the live.path nodes I still get the errors (though even more frequently).
Ted
Any other thoughts from anyone?
I've just tested your device and it works well for me without any error message (using Max 7 on MacBook Pro 2017). So there seems to be a subtle problem depending on the Max version or system. As I've once noticed strange behaviour of the [if] object in time-critical situations you could try replacing it by [==]->[select 1].
Thanks Broc. Good suggestion for using select. I just gave it a shot but still have the same problems.
I also tried installing Max 7 but when trying to use it with Ableton Live 10, Ableton gives me an error message which indicates I have to use version 8. Argh.
Hi Broc,
For what it's worth here's how I implemented your suggestion. Maybe I did something wrong?
Thanks,
Ted
Yes, your implementation is what I meant.
Another shot in the dark: insert deferlow after [live.object] getting the length.
Nope, no luck with that either. I've tried deferlow in most places unfortunately.
Given that you don't have issues in 7 do you think this is a bug? Do the cycling74 folks check these forums? I'm a noob here so I'm not sure.
For me it looks like a bug in Live 10/Max8. At the top of the forum website go to SUPPORT > REPORT A PROBLEM.
Excellent. Thanks so much for your guidance. I'll report back here when I get a response.
FWIW I also wasn't able to reproduce the problem with your original patch (using Max 8 + Live10) and a very trivial live set. The only way I could induce that error was if clip_slot N was targeted by your device and didn't have a clip in it and then I dragged a clip into that slot (or moved the clip out of the currently selected slot).
One other (have to ask) thing that comes to mind: you are certain that this is the only device in your set which might be sending that error message, right?
Thanks Tyler. Yes, this is the only device in my set.
So here's what's interesting and perhaps may explain why you and Broc are not seeing errors.
If I create a new M4L midi effect, paste the code into it and then run it, I don't get an error.
But as soon as I save it, restart Live and then load the amxd file, I get the error. Really, really strange.