[PD] about fiddle~

Jamie Bullock jamie at postlude.co.uk
Fri Jan 11 17:09:21 CET 2008


Hi,

On Fri, 2008-01-11 at 13:57 +0100, matteo sisti sette wrote:

> Another question about fiddle.
> I'd like to be able to distinguish between a signal with a pitch and a
> signal without a picth. It seems to me that fiddle always outputs its
> "best guess" no matter how reliable it is.

Actually that's not quite true. fiddle~ doesn't output anything at all
from its first outlet unless it's pretty certain a pitch has been found.

However, it does continuously output the first estimated peak location
it uses to make its pitch calculation from its third outlet. It will
also output 0 as a peak location if it can't find a peak, so you can
make a pitched vs unpitched certainty estimator like the one in the
attached patch giving 3 certainty levels (0.5 is unsure). 

> I thought I may use the third outlet and evaluate whether it outputs a
> very randomly-varying number; however, with a [noise~] as input, it
> mostly outputs values between 90 and 110 and some 0 every once in a
> while.....

With the default fiddle~ settings, it seems to output 0 about 15% of the
time, which seems quite a lot to me.

Anyhow, I think this is a case of using the wrong tool for the job.
Pitch/f0 estimators (PDAs) are designed to find pitch in a signal, not
to measure noisiness. There are other tools to measure this - I find
spectral irregularity to be quite a good noisiness metric, but there are
several others. If you are interested in this, perhaps take a look at
the libxtract feature extraction library, which comes with PD external
that wraps its functionality.

Jamie

-- 
www.postlude.co.uk
-------------- next part --------------
#N canvas 561 209 560 371 10;
#X obj 166 36 noise~;
#X obj 168 99 fiddle~;
#X obj 222 35 osc~ 440;
#X obj 203 142 sel 0;
#X obj 230 165 t b;
#X msg 230 192 0.5;
#X msg 203 165 0;
#X msg 168 166 1;
#X obj 168 140 t b;
#X obj 153 219 f;
#X obj 153 288 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 153 245 sel 1 0.5 0;
#X obj 174 287 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 195 287 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144
-1 -1;
#X obj 223 68 *~ 0;
#X obj 167 69 *~ 0;
#X obj 352 32 hsl 128 15 0 1 0 0 empty noisiness empty -2 -6 0 10 -262144
-1 -1 12700 1;
#X obj 99 142 tgl 15 0 empty metro-start empty 0 -6 0 10 -262144 -1
-1 1 1;
#X obj 100 165 metro 20;
#X text 363 14 pitch <-> noise;
#X text 134 307 pitch <-> noise;
#X obj 1 32 loadbang;
#N canvas 3 50 141 300 invert 0;
#X obj 45 86 -;
#X obj 45 40 t b f;
#X msg 45 64 1;
#X obj 45 14 inlet;
#X obj 45 121 outlet;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 1 1 0 1;
#X connect 2 0 0 0;
#X connect 3 0 1 0;
#X restore 349 54 pd invert;
#X msg 1 64 \; pd dsp 1 \; noisiness 0.5 \; metro-start 1;
#N canvas 3 50 450 300 counter 0;
#X obj 338 173 + 1;
#X obj 303 173 f;
#X obj 303 150 t b;
#X obj 303 107 inlet;
#X obj 303 217 outlet;
#X connect 0 0 1 1;
#X connect 1 0 0 0;
#X connect 1 0 4 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X restore 270 163 pd counter;
#N canvas 6 75 450 300 counter 0;
#X obj 338 173 + 1;
#X obj 303 173 f;
#X obj 303 150 t b;
#X obj 303 107 inlet;
#X obj 303 217 outlet;
#X connect 0 0 1 1;
#X connect 1 0 0 0;
#X connect 1 0 4 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X restore 343 164 pd counter;
#X obj 270 216 /;
#X floatatom 373 201 5 0 0 0 - - -;
#X floatatom 326 202 5 0 0 0 - - -;
#X obj 270 244 * 100;
#X floatatom 270 287 5 0 0 0 - - -;
#X text 311 286 % definitely noise;
#X connect 0 0 15 0;
#X connect 1 0 8 0;
#X connect 1 2 3 0;
#X connect 1 2 25 0;
#X connect 2 0 14 0;
#X connect 3 0 6 0;
#X connect 3 0 24 0;
#X connect 3 1 4 0;
#X connect 4 0 5 0;
#X connect 5 0 9 1;
#X connect 6 0 9 1;
#X connect 7 0 9 1;
#X connect 8 0 7 0;
#X connect 9 0 11 0;
#X connect 11 0 10 0;
#X connect 11 1 12 0;
#X connect 11 2 13 0;
#X connect 14 0 1 0;
#X connect 15 0 1 0;
#X connect 16 0 15 1;
#X connect 16 0 22 0;
#X connect 17 0 18 0;
#X connect 18 0 9 0;
#X connect 21 0 23 0;
#X connect 22 0 14 1;
#X connect 24 0 26 0;
#X connect 24 0 28 0;
#X connect 25 0 26 1;
#X connect 25 0 27 0;
#X connect 26 0 29 0;
#X connect 29 0 30 0;


More information about the Pd-list mailing list