Forums > Jitter

jit.catch~ crashes Max 4.6 very often


zlp
July 18, 2008 | 4:27 pm

(Max 4.6, Jitter 1.6.3, Macbook Pro 2×2.4GHz)

I have a sprawling patch that uses one jit.catch~ object @mode 2. About 75% of the time, Max crashes when I open the patch. According to the crash logs (bottom of this post) the last operation in the crashed thread is always "max_jit_catch_perform + 451". If I remove jit.catch~ the crashes stop.

The patch is full of colls, abstractions, etc, so I haven’t posted it. (I know that’s lame, but I tried to strip it to a postable form and I couldn’t get it to crash.) It won’t crash on my friend’s machine (4.5), but will crash on my other machine with 4.6.

In my startup sequence, colls are loaded and rendering windows are built, then a few seconds later audio turns on, then a few seconds later the gl render bangs start. (There’s one sfplay~ but no files are triggered during startup.) The crashes happen when the gl chain gets banged. It is driving a jit.gl.graph object, using the undocumented @line_width option to make a thicker stroke, but that doesn’t seem to matter. If it survives startup, everything renders fine.

Besides startup, Max often crashes when I reinstantiate the jit.catch~ by adding new arguments.

This is getting frustrating, and the gl oscilloscope looks so good that I don’t want to "let go" of my jit.catch~!

-Zach

——————
section of crashlog:
——————

Exception: EXC_BAD_ACCESS (0×0001)
Codes: KERN_INVALID_ADDRESS (0×0001) at 0x6d49d118

Thread 23 Crashed:
0 com.cycling74.jit.catch~ 0x62720cbc max_jit_catch_perform + 451
1 com.cycling74.MaxAudioAPI 0x01da6b0f dspchain_tick + 83 (d_ugen.c:228)
2 com.cycling74.MaxAudioAPI 0x01da5551 ad_process + 392 (ad.c:1850)
3 com.cycling74.ad_coreaudio 0x15d504c0 coreaudio_twodevice_ioproc + 558
4 com.apple.audio.CoreAudio 0×91477872 HP_IOProc::Call(AudioTimeStamp const&, AudioTimeStamp const&, AudioBufferList const*, AudioTimeStamp const&, AudioBufferList*) + 240
5 com.apple.audio.CoreAudio 0x91476d9a IOA_Device::CallIOProcs(AudioTimeStamp const&, AudioTimeStamp const&, AudioTimeStamp const&) + 274
6 com.apple.audio.CoreAudio 0x91476b21 HP_IOThread::PerformIO(AudioTimeStamp const&) + 1299
7 com.apple.audio.CoreAudio 0x91474f49 HP_IOThread::WorkLoop() + 953
8 com.apple.audio.CoreAudio 0x91474b8b HP_IOThread::ThreadEntry(HP_IOThread*) + 17
9 com.apple.audio.CoreAudio 0×91469171 CAPThread::Entry(CAPThread*) + 93
10 libSystem.B.dylib 0×90024227 _pthread_body + 84



zlp
July 19, 2008 | 5:53 am

(Replying to my own post)

I made a workaround, based on jit.poke~ and the stroke method of jit.gl.sketch (expertly explained in the "Twineball" patch from Jitter Recipes: Book 2.

It produces no crashes in the context of my patch.

For future searchers: The following patch is a gl oscilloscope with adjustable stroke width. The results are similar to the jit.gl.graph help patch, but achieved through different means. Enjoy.
-Zach

max v2;
#N vpatcher 399 111 1371 783;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 258 94 248 196617 based one "Twineball" from Jitter Recipes: Book 2;
#P comment 273 72 206 196617 (an alternative to jit.catch~ / jit.gl.graph);
#P comment 670 143 100 196617 TURN ON AUDIO;
#P toggle 29 262 15 0;
#P newex 29 241 35 196617 sel 27;
#P newex 29 221 40 196617 key;
#P newex 29 281 91 196617 prepend fullscreen;
#P newex 310 432 41 196617 – 0.5;
#P newex 310 387 58 196617 unpack 1 1;
#P newex 275 466 115 196617 pak strokepoint 0. 0. 0.;
#P newex 310 411 34 196617 / 64.;
#P message 823 542 108 196617 reset , glcolor 0 0 0 1;
#P newex 431 268 149 196617 jit.matrix scope1 1 float32 64;
#P message 504 509 404 196617 beginstroke line , strokeparam order 4 , line_width 12 , strokeparam color 0.9 0.9 0.9 1;
#P newex 431 315 170 196617 t b l b b;
#P newex 433 346 41 196617 jit.iter;
#P newex 418 615 264 196617 jit.gl.sketch character1 @blend_enable 1 @scale 2. 2. 2.;
#P message 431 533 54 196617 endstroke;
#P newex 431 508 38 196617 sel 63;
#P message 698 40 37 196617 loop 1;
#P newex 582 210 38 196617 *~ 64;
#P newex 582 187 67 196617 phasor~ 120;
#P newex 490 235 102 196617 jit.poke~ scope1 1 0;
#P user ezdac~ 621 133 665 166 0;
#P user meter~ 663 95 743 108 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P message 656 40 30 196617 open;
#P toggle 636 41 15 0;
#N sfplay~ 1 120960 0 ;
#P newobj 636 66 44 196617 sfplay~;
#P toggle 26 71 15 0;
#P newex 26 97 57 196617 qmetro 20;
#P newex 26 134 58 196617 t b b erase;
#P newex 26 187 219 196617 jit.gl.render character1 @erase_color 0 0 0 1;
#P newex 29 307 150 196617 jit.window character1 @fsaa 1;
#P comment 46 73 100 196617 TURN ON OPENGL;
#P user panel 22 64 135 32;
#X brgb 241 139 139;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P user panel 613 126 159 49;
#X brgb 241 139 139;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P user panel 627 32 164 32;
#X brgb 241 139 139;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P window setfont "Sans Serif" 20.;
#P comment 255 42 251 196628 openGL OSCILLOSCOPE;
#P connect 9 0 8 0;
#P connect 8 0 7 0;
#P fasten 7 2 6 0 79 173 31 173;
#P connect 7 0 6 0;
#P fasten 32 0 33 0 34 240 34 240;
#P connect 33 0 34 0;
#P connect 34 0 31 0;
#P connect 31 0 5 0;
#P fasten 22 1 29 0 453 372 315 372;
#P connect 29 0 27 0;
#P connect 27 0 30 0;
#P connect 30 0 28 1;
#P fasten 22 0 28 2 438 455 350 455;
#P fasten 28 0 21 0 280 599 423 599;
#P fasten 20 0 21 0 436 557 423 557;
#P fasten 24 0 21 0 509 586 423 586;
#P fasten 26 0 21 0 828 606 423 606;
#P fasten 7 1 25 0 55 160 436 160;
#P connect 25 0 23 0;
#P fasten 22 1 19 0 453 485 436 485;
#P connect 19 0 20 0;
#P fasten 23 1 22 0 489 339 438 339;
#P fasten 10 0 15 0 641 121 495 121;
#P fasten 23 2 24 0 542 367 509 367;
#P connect 16 0 17 0;
#P connect 17 0 15 1;
#P connect 10 0 14 0;
#P connect 11 0 10 0;
#P connect 12 0 10 0;
#P connect 18 0 10 0;
#P connect 10 0 14 1;
#P connect 10 0 13 0;
#P fasten 23 3 26 0 595 350 828 350;
#P pop;


Viewing 2 posts - 1 through 2 (of 2 total)