Beginner Gen~ Issues
I’m trying to make a simple buffer-based lookup table using gen~, but there are two main issues making it difficult.
First, am I not supposed to be able to add and remove objects in a gen~ patcher while audio is turned on? I have crashed Max 6.0.4 half a dozen times in the past half hour just in the process of creating and removing blocks in a gen~ patcher. Max locks up and goes unresponsive.
Second, how do I refresh a buffer inside a gen~ patcher when the gen~ patcher is modified? It seems that once I edit a gen~ patcher, I need to close and reopen the parent patcher from scratch in order for the gen~ to reload the buffer contents from the parent. I say "seems" because I am not sure that’s exactly what’s happening. My lookup table will often start spitting out all zeros after I edit the gen~ patch and until I save and reload the entire patch from scratch. I am not making any changes to the buffer~ in the parent patch.
Here’s the current patch, for a reference:
----------begin_max5_patcher---------- 1208.3ocyYtzjahCD.9Lop7efhyNSPhG1dOs6k8TNlbZpTtjAYOJADTf7DOS pc9su5AuDFFisAhu.15QqVep6VRM+9ievvZaxQbtk4eY9nogwu4kXHKSThQY AFVwniAQnbYCsn3ekr8GVKJpigOxjkGkfB2hn6qpYWBkQQwXYs+SFAEUUE8P bxAVDlIEInrXRnrsbw+I.rpwpVxdIEqTTK4nX98liSN4UYs.3C1kkmhXAOQn 62jgCXptBW4vq2D36Kd4aKdB4OqEFWyHzJESV3+8wOHdyesX3P5P7Vb1aWNK fcwBP+rHmrmJDlo0N9B.65vhmhGNtqDu77OEKwIgXM0iOth+aWKWMxAudx0i 40dLcrvo8PvYwutNdJq2D5BjXc0YLyfZhBmUfmR9vGZRD9YbVNIg1zewvBkl 1nbilcRf0ejHkk+h5xHTUY10kkgelTJB2hREKYkCR87ZcgcxxB2Go+iqWyYF e8cePRjZPdjaerdQiGfVsLJI3m3PM8wJIESIzzLbNlxPrBEqt9P7NzgH1ldV OzavNT.t+t2sIjg09LRXBUnH58UTd4P9nIvSFKwSaNIaBEk1U2y4SmC4aQYB duMRyghaomjDoWW85L2mAQIwHFlQTpLztVtj3zLBkoOXXJhKlmxCxRhhzklp pm6ppPtsP.9WjP1S5t2hp3cfjVtfXUiqPxdbNqUgLz97VEosYilsZynB5U7t QGziPvclMgZU8NqwmFpvtYUMBWr5DQ1kUWOQBbsUtJNJ+lSBDz2dNF0QOKcG mDlQn2Bx.8frkZ84jfrV5S+qCo.WIRsG.RsmUjlihSivlwurIhaP92bGSbVp YdZDghE+MDezT0l7qm7vdHu+YH+hak9d1J3q1SyeH3GNq3e6gc6vYk3+Ke6q iOj8lZHCTmevesj0192c137vFfwOrAXJCaTZ3dmF0Pr4EX727x05lQFDt7l2 7pwAjDgA66P.RcPzfdnYdxgrfRyghMZLaoO7iovHzpyM9X0l3sa3SjvvVmPS cXlbwoiBuPSfKV08Gpp6d2o5fgp59ipp2vHJDyObMWNAurI.wuxTO1SUtOpM EdH9Htg+fUYrEKxWP+q06CoJQo15dvhx76p+TNU9imLg0SbtDbuixk.eZvkz 3vsk8yMEsVbKIlxC5ptLohZcjXpTTFW04mkbi55aMcgFsrV0StW3KPuMNo0a 0Ys9tkDt.Vq1pxY5xqWOD5SlfGFGB4eN6rqBPNPuG7DjQlyBGn3OuWFoFc.8 YgQ83PHuIkP1pqp6dtb1c0DZ6AFiuK4vmutCNS3clwaUpHsqN91L6Yb3UB+J L1W9RuSGn3beTfE0ukID659FAMSdq65IyPnOhkhw+7sl2b8F+RJSh6RAkbVI 4yxyYW4b0TB+ZHJ3sdlu1cMeq2ot+im3AVpxcc4yYa0UcTT45qIvdbNahypI 8vIt1.QnwUxE40WZHDUyzu2WABaeyiRPdxMNzu9VO21PPyls5zqZzw0L5boc BzKvrpWKGhdsZ1wk+fv0rSKugnV9yNsbGhZAmc0RLhvyoVd2mpEX1UK.bHqh tyudYOD8Z8eF8Bb10waagrXKoVe8boN09ql29KlexWKWJU9i+GXUIwAH -----------end_max5_patcher-----------
I’m on Win7 64, by the way.
1. Absolutely you should be able to add and remove objects while audio is on; this sounds like a bug. If it is possible for you to find a patch + edit that consistently causes the crash, and send it to us (with the crash report), that would be super useful for us to fix it. Thanks!
2. You shouldn’t need to refresh anything. This also looks like a bug – quite probably related. Seems like the binding of my_lut to LUT is lost when the patcher is recompiled. We’ll get that fixed for the next release, but in the meantime there are two workarounds:
a) use [buffer LUT] instead of [buffer my_lut LUT] if possible
b) otherwise send the message (my_lut LUT) to the gen~ to re-connect the buffer binding when it gets lost.
I’ve been trying to find a specific sequence of events to recreate the crashing, but sadly there is no consistency.
Last time it happened by creating a "+" object in the gen~ patch. I typed "+" in a new object box and clicked off of it in the window. It was not the first "+" object in the gen~ patch.
The time before that it was when connecting a patch cord to an "out" object in the gen~ patch.
Standard operations like that work most of the time, but a small fraction make Max lock up. If I am actively working in a gen~ patcher, I get a lock-up about once every five minutes. Windows then tells me the program has gone unresponsive.
The good news is that the second workaround you gave for the buffer binding works great!
Hi there, thanks for the feedback. I’ve not been able to reproduce the crash here yet, but will keep trying. If you could send me a crash report (or more than one!) that would help a lot.
In other news, the buffer bug has been fixed and will part of the next update.
Silly question, but how do I generate a crash report?
You can’t if you’re on Windows unfortunately. It’s an OSX feature. If you can provide any kind of general instructions for reproducing that would help a lot.