![](https://secure.gravatar.com/avatar/a316ef30d03fa69b73d2c0155c54d75d.jpg?s=120&d=mm&r=g)
I started with the pan example with a gain setting added to prevent my head from getting blown off: // white noise pan Noise n => Pan2 p => dac; .4 => n.gain; while(true) { Math.sin( now / 3::second * 2 * pi ) => p.pan; 10::ms => now; } I wanted to generalise this to several outputs, so I recoded it: // white noise pan without using Pan2 Noise n; n => Gain gleft => dac.left; n => Gain gright => dac.right; .4 => n.gain; 5::second => dur period; while(true) { (Math.sin( now / period * 2 * pi ) +1) / 2 => float amount; amount => gleft.gain; 1-amount => gright.gain; 10::ms => now; } I made sure I had all 8 outputs turned on my soundcard by running this in one window: chuck --out(8) --loop Then, in a second window I fed it the shreds. The two above worked fine. So, I tried this: // white noise four-channel "pan" Noise n; n => Gain gfl => dac.chan(1); n => Gain gfr => dac.chan(2); n => Gain grl => dac.chan(3); n => Gain grr => dac.chan(4); .4 => n.gain; 5::second => dur panperiod; 6::second => dur fadeperiod; while(true) { (Math.sin( now / panperiod * 2 * pi ) +1) / 2 => float panamount; (Math.sin( now / fadeperiod * 2 * pi ) +1) / 2 => float fadeamount; panamount * fadeamount => gfl.gain; (1-panamount) * fadeamount => gfr.gain; panamount * (1-fadeamount) => grl.gain; (1-panamount) * (1-fadeamount) => grr.gain; 10::ms => now; } And got this: NullPointerException: (UGen link) in shred[id=1:x.ck], PC=[33] I have no idea how to use this to diagnose the issue. I am using the latest win32 ASIO build. -- robin