problems with vibraphone~ from percolate

Apr 25, 2007 at 10:27pm

problems with vibraphone~ from percolate

Hello all-

I’m using vibraphone~ (one of PeRColate’s physical models). Actually, a whole bunch of them (I’ve tested 20-80), inside a poly~.

I’ve found that if I leave the patch sitting with no input for a few minutes, it will double (or more) in CPU usage, and the audio won’t work for awhile. Then if I send it a bunch of events, it will come back after making some crazy sounds, and CPU usage goes back down to normal.

I’m testing this on a macbook pro, latest versions of max/msp and percolate. I’ve tried changing vector size, no luck.

Does this happen to you? Any ideas? I’m wondering about the less-than-documented noteoff message inside the vibraphone~ help patch. Does anybody have experience with PeRColate’s physical models?

Any help would be greatly appreciated – it’s for a rapidly approaching installation. If I have to drop the vibraphone~ and write my own synth I want to start sooner than later! (hey – anybody have a good vibe patch?)

Thanks,
Kevin

(this will require that you have PeRColate installed, get it at http://www.music.columbia.edu/PeRColate/)
Main patch:

#P button 15 247 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 15 268 74 196617 s vibeNoteOff!;
#P number 263 330 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N vpatcher 993 44 1290 456;
#P outlet 98 316 15 0;
#P button 157 224 15 0;
#P button 59 238 15 0;
#P window setfont “Sans Serif” 9.;
#P newex 55 206 29 196617 gate;
#P newex 92 165 31 196617 == 1;
#N counter;
#X flags 0 0;
#P newobj 57 276 66 196617 counter;
#P newex 74 127 47 196617 zl iter 1;
#P inlet 89 52 15 0;
#P connect 3 0 4 0;
#P connect 5 0 2 0;
#P connect 4 0 5 0;
#P connect 0 0 1 0;
#P connect 1 0 4 1;
#P connect 1 0 3 0;
#P connect 2 0 7 0;
#P connect 6 0 2 3;
#P connect 0 0 6 0;
#P pop;
#P newobj 263 309 61 196617 p onesinlist;
#P newex 18 105 40 196617 uzi 51;
#P button 12 47 15 0;
#P newex 218 155 27 196617 int;
#P newex 139 219 37 196617 zl rev;
#P newex 224 134 93 196617 scale 0. 40. 110 0;
#P button 40 26 15 0;
#P message 67 84 97 196617 0.165904 5. 1. 13.;
#P message 71 37 78 196617 0.18 -5. 1. 30.;
#P message 41 63 90 196617 0.08 -5. 1. 10.;
#P number 384 160 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P button 384 104 32 0;
#P message 384 180 53 196617 target $1;
#N counter 1 20;
#X flags 0 0;
#P newobj 384 140 68 196617 counter 1 20;
#P user meter~ 147 305 205 318 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 user meter~ 147 317 205 330 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 newex 215 178 31 196617 mtof;
#P newex 139 199 54 196617 pack 0. 0.;
#P newex 139 289 72 196617 poly~ vibe 20;
#P toggle 102 298 15 0;
#P newex 139 331 72 196617 dac~;
#P flonum 297 113 74 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 172 69 88 196617 unpack 0. 0. 0. 0.;
#P flonum 253 113 42 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 209 113 42 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 148 113 59 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 164 40 144 196617 mxj net.udp.recv @port 9999;
#P connect 16 0 14 0;
#P connect 13 0 16 0;
#P connect 15 0 13 0;
#P connect 4 3 15 0;
#P connect 4 3 5 0;
#P connect 26 0 27 0;
#P connect 4 2 3 0;
#P connect 5 0 21 0;
#P connect 21 0 23 0;
#P connect 23 0 10 0;
#P connect 4 1 2 0;
#P hidden connect 8 1 11 0;
#P connect 8 1 6 1;
#P connect 10 0 9 1;
#P connect 0 0 4 0;
#P connect 17 0 4 0;
#P connect 18 0 4 0;
#P connect 19 0 4 0;
#P connect 4 0 1 0;
#P hidden connect 8 0 12 0;
#P connect 7 0 6 0;
#P connect 8 0 6 0;
#P connect 14 0 8 0;
#P connect 22 0 8 0;
#P connect 9 0 22 0;
#P connect 2 0 9 0;
#P connect 20 0 19 0;
#P connect 20 0 17 0;
#P connect 25 0 17 0;
#P connect 24 0 25 0;
#P connect 29 0 28 0;
#P window clipboard copycount 30;

poly~ patch (save as ‘vibe’):
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 15 42 74 196617 r vibeNoteOff!;
#P message 7 66 42 196617 noteoff;
#P message 225 127 39 196617 noteon;
#P button 123 97 15 0;
#P message 32 126 37 196617 0.99;
#P message 72 126 37 196617 0.86;
#P message 112 126 37 196617 0.98;
#P message 155 126 23 196617 3.;
#P message 183 126 31 196617 0.01;
#P newex 32 164 257 196617 vibraphone~;
#P newex 242 67 64 196617 unpack 0. 0.;
#N in 1;
#X comment list(float , float) frequency (hz) , pan (-1 to 1);
#P newobj 242 45 25 196617 in 1;
#N out~ 2;
#P newobj 298 247 39 196617 out~ 2;
#P newex 301 164 98 196617 scale -10. 10. 0. 1.;
#P newex 256 221 37 196617 pan0~;
#P newex 256 197 41 196617 *~ 0.3;
#N out~ 1;
#P newobj 256 247 39 196617 out~ 1;
#P connect 6 1 3 0;
#P connect 2 1 4 0;
#P connect 3 0 2 1;
#P connect 6 0 13 0;
#P connect 6 0 14 0;
#P connect 6 0 7 5;
#P connect 2 0 0 0;
#P connect 1 0 2 0;
#P connect 7 0 1 0;
#P connect 5 0 6 0;
#P connect 8 0 7 4;
#P connect 13 0 12 0;
#P connect 13 0 11 0;
#P connect 13 0 10 0;
#P connect 13 0 9 0;
#P connect 13 0 8 0;
#P connect 9 0 7 3;
#P connect 10 0 7 2;
#P connect 11 0 7 1;
#P connect 15 0 7 0;
#P connect 14 0 7 0;
#P connect 12 0 7 0;
#P connect 16 0 15 0;
#P window clipboard copycount 17;

#31590
Apr 25, 2007 at 11:45pm

On Apr 25, 2007, at 3:27 PM, Kevin Cox wrote:

>
> I’ve found that if I leave the patch sitting with no input for a
> few minutes, it will double (or more) in CPU usage, and the audio
> won’t work for awhile. Then if I send it a bunch of events, it will
> come back after making some crazy sounds, and CPU usage goes back
> down to normal.

Sounds like the developers need to account for denormalized floating
point numbers on x86. As a hack you could possibly just keep some
amount of activity happening so that it won’t trail down to these
super small numbers which have adverse performance characteristics on
x86.

Windows FAQ entry, but also applies to MacTel:
http://www.cycling74.com/twiki/bin/view/FAQs/
WindowsMaxMSP#What_is_the_denormal_problem_and

Forum search:

http://www.cycling74.com/cgi-bin/searchsite.pl?SearchText=denormal

More info online:
http://en.wikipedia.org/wiki/Denormal_number

http://ardour.org/node/139

-Joshua

#102902
Apr 26, 2007 at 3:05pm

Wow – I remember these being an issue years ago when the pentium 4 came out – people called it the “pentium 4 bug.” I assumed it had been ameliorated since.

I just tried it on Windows, and the same problem happens, so it must be the vibraphone~ external’s fault. PeRColate comes with source… guess I’m going to try to fix it. Uh-oh.

I tried periodically sending events, but I don’t think that’s going to work. Lots of crazy sounds happen.

I suppose my last resort would be to go through and make samples of every sound vibraphone~ might be making in real-time, and build a quick sample player. ugh. These sounds are just perfect for what I’m doing!

#102903
Apr 26, 2007 at 3:23pm

Ah, good ol’ PowerPC. No problems there. Guess I’ll be running a separate computer as an audio server… oy vey

#102904

You must be logged in to reply to this topic.