[chuck-users] benchmarking UGens

Atte André Jensen atte.jensen at gmail.com
Wed Mar 11 15:45:13 EDT 2009


Kassen wrote:

> Well, even if the difference is slight I do think my idea has some merit.

Agreed.

> Comand line argument syntax is documented in VERSIONS.txt in your ChucK 
> dir as well as in a example or two in the examples dir. Regardless of 
> the exact numerical outcome using those should simplify the testing 
> process which has advantages in itself. For one thing the outcome of a 
> more simple test should be more simple to analyse.

Never used that, but now I have :-) If you could

The test now uses Your Way (TM), differences goes like this:

Old style

file                                   x10    x50   x100
--------------------------------------------------------
00_wait.ck                             1.5    1.7    1.7
01_PulseOsc.ck                         2.7    8.5   18.5
01_SawOsc.ck                           3.0   10.2   22.5
01_SinOsc.ck                           5.0   28.0   44.5
01_SqrOsc.ck                           2.7    8.7   19.2
01_TriOsc.ck                           3.0   10.2   22.5
02_SndBuf.ck                           2.5    7.7   15.5
02_SndBuf_loaded_not_playing.ck        1.5    2.0    3.0
02_SndBuf_loop.ck                      5.2   24.2   51.0
03_Gain.ck                             2.5    7.5   14.7
03_Pan2.ck                             5.0   24.0   49.2
05_Delay.ck                            3.2   13.5   30.7
05_Echo.ck                             3.5   14.7   39.7
06_BPF.ck                              4.0   10.2   20.5
06_BRF.ck                              3.0   10.2   20.5
06_HPF.ck                              3.0   10.0   21.5
06_LPF.ck                              2.7   10.0   20.5
07_JCRev.ck                           12.2   75.2   97.2
07_NRev.ck                            18.7   97.0   97.2
07_PRCRev.ck                           7.2   45.5   93.2
08_Chorus.ck                           7.2   37.7   79.5
90_SinOscLPF.ck                        6.5   32.5   67.5

New style:

file                                   x10    x50   x100
--------------------------------------------------------
00_wait.ck                             1.5    1.5    1.5
01_PulseOsc.ck                         2.8    8.3   18.2
01_SawOsc.ck                           2.5   10.2   22.0
01_SinOsc.ck                           4.1   21.5   43.2
01_SqrOsc.ck                           2.6    8.5   24.3
01_TriOsc.ck                           3.0   10.2   22.0
02_SndBuf.ck                           2.5    7.3   14.7
02_SndBuf_loaded_not_playing.ck        1.5    2.0    2.5
02_SndBuf_loop.ck                      5.4   24.7   52.5
03_Gain.ck                             2.5    7.2   14.0
03_Pan2.ck                             5.0   24.5   49.2
05_Delay.ck                            3.2   13.2   28.7
05_Echo.ck                             3.6   12.8   40.5
06_BPF.ck                              2.8    9.7   20.4
06_BRF.ck                              3.0   10.0   20.4
06_HPF.ck                              2.8    9.7   20.5
06_LPF.ck                              2.4   10.0   20.2
07_JCRev.ck                           12.7   75.7   97.2
07_NRev.ck                            18.2   97.5   97.7
07_PRCRev.ck                           6.3   45.2   92.0
08_Chorus.ck                           7.2   33.3   81.7
90_SinOscLPF.ck                        6.7   32.5   67.0

One thing that clutters up the picture is that I also changed the script 
to take three measurements and throw away the largest and smallest 
value, which should (and seems to have) get rid of the worst jitter.

Besides that they don't look that different, or...

Anyways, this is the content of for instance 01_SinOsc.ck, do you think 
it looks sane?

0 => int instances;
if(me.args()) me.arg(0) => Std.atoi => instances;
repeat(instances){
     SinOsc s => dac;
     0 => s.gain;
}
1::week => now;

-- 
Atte

http://atte.dk    http://modlys.dk


More information about the chuck-users mailing list