Hi Julian,

Thank you for your report. I am not the expert, just one of the current
maintainers if the cyclone set of objects. I think the object works, but
maybe not as the Max object. If this is the case I will try to fix it.

> Hello,
> 
> I am sorry to bother you but I have an important question about the
> buffir~ object.
> I hope you can help me with this. I am not too experiencd with PD but I
> try to make
> an Binaural-Renderer. I want to use the buffir~ object to convolve an IR
> to a signal.
> This works right now. But I want to change the IR used for convolving
> with the signal
> when the head orientation changes. I had a look at the MAX/MSP 5
> documentation
> as I understand this object was taken from MAX where the buffir~ object
> can be told
> to change the buffer~ object by using the set message. I tried this in
> PD but nothing
> happens. Obviously the IR is not loaded as there is no signal passing
> through the
> buffir~ object when using $1 as the name of the table and send a message
> [set tablename]
> to input 1 (the signal input where the clear message can be applied). Is
> this function
> not implemented in the PD buffir~ object? Or is there something I do wrong?

Note '$1' is not literary part of the name, just a placeholder of the
first element on the message (=list) you send to the object. If
something is wrong here, the console should contain an error message.
Also see the help on $-variables.
> 
> I would be verry happy if could help me with this question! If this is
> not implemented
> and can't be worked around do you have any ideas how to solve my problem?
> Thank you very much in advance!

The attached patch is an adaptation of the help-patch, including a
second buffer to switch to. Yo need to open it and draw non-zero values
to get a signal through. It looks like you also have to provide the
offset and length arguments, as leaving them out results in zero -
meaning no useful convolution takes place.

When I have time, I'll check the behaviour of the Max5 object. It might
work better or more user friendly. But first on the planning are some
weeks vacation :-).
> 
> Regards Julian Jochheim
> 

Greetings,

Fred Jan

P.S. I added the pd-list in the reply, the main forum for issues like
this one (http://lists.puredata.info/listinfo/pd-list).
#N canvas 572 79 572 530 10;
#X obj 0 594 cnv 15 552 21 empty empty empty 20 12 0 14 -233017 -33289
0;
#X obj 0 336 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0
;
#N canvas 388 382 433 268 META 0;
#X text 0 31 LICENSE SIBSD;
#X text 0 139 LIBRARY cyclone;
#X text 0 49 DESCRIPTION converts all signal values to positive values
;
#X text 0 0 KEYWORDS signal buffer buffir buff FIR finite impulse response
convolution filter;
#X text 0 67 INLET_0 signal;
#X text 0 85 INLET_1 float;
#X text 0 103 INLET_2 float;
#X text 0 121 OUTLET_0 signal;
#X text 0 158 VERSION 0.1-alpha57;
#X text 0 176 AUTHOR Krzysztof Czaja;
#X text 1 194 RELEASE_DATE 2002;
#X text 2 213 WEBSITE http://suita.chopin.edu.pl/~czaja/miXed/externs/cyclone.html
;
#X text 2 245 HELP_PATCH_AUTHORS Christoph Kummerer. Revised by Jonathan
Wilkes for Pd-extended 0.42 to conform to the PDDP template. Alex Cleveland
updated this patch for Pd-l2ork version 2013.05.28. Fred Jan Kraan
adapted the patch to pd-extended 2015-02-02;
#X restore 503 597 pd META;
#X obj 0 419 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0
;
#X obj 0 456 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1
0;
#X obj 0 532 cnv 3 550 3 empty empty more_info 8 12 0 13 -228856 -1
0;
#N canvas 160 549 428 109 Related_objects 0;
#X obj 0 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 1 Related Objects;
#X restore 203 597 pd Related_objects;
#X obj 80 368 cnv 17 3 17 empty empty 1 5 9 0 16 -228856 -162280 0
;
#X obj 0 0 cnv 15 554 40 empty empty buffir~ 3 12 0 18 -204280 -1 0
;
#X text 106 344 signal;
#X text 164 343 - signal to pass to FIR;
#X text 106 427 signal;
#X obj 80 389 cnv 17 3 17 empty empty 2 5 9 0 16 -228856 -162280 0
;
#X text 106 369 float;
#X obj 80 428 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X text 106 391 float;
#X text 164 391 - Length (samples);
#X text 164 367 - Offset (samples);
#X text 164 426 - based on buffer \, offset \, length;
#X obj 378 147 loadbang;
#X obj 378 174 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 460 222 405 395 genRamp 0;
#X obj 84 238 sel 0 1;
#X obj 103 286 i;
#X obj 84 183 sel 1;
#X msg 32 136 clear;
#X obj 184 242 * 1;
#X obj 184 216 expr ((127. - $f1) / 127.);
#X obj 171 183 - 1;
#X obj 84 82 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 84 314 pack 0 0;
#X text 182 197 exponential ramp down from 1 to 0;
#X obj 84 60 inlet;
#X obj 84 348 outlet;
#X obj 84 215 cyclone/decide;
#X text 178 339 makes 50% zeros \, 25% exponential;
#X text 178 353 downward ramp \, 25% random;
#X obj 84 160 cyclone/decide;
#X obj 2 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X obj 84 136 cyclone/Uzi 128;
#X text 9 0 ramp generator;
#X obj 84 104 t b b;
#X obj 84 260 cyclone/urn 128;
#X connect 0 0 20 0;
#X connect 0 1 1 0;
#X connect 1 0 8 0;
#X connect 2 0 12 0;
#X connect 3 0 20 0;
#X connect 4 0 8 1;
#X connect 5 0 4 0;
#X connect 5 0 4 1;
#X connect 6 0 1 1;
#X connect 6 0 5 0;
#X connect 7 0 19 0;
#X connect 8 0 11 0;
#X connect 10 0 7 0;
#X connect 12 0 0 0;
#X connect 15 0 2 0;
#X connect 17 0 15 0;
#X connect 17 2 6 0;
#X connect 19 0 17 0;
#X connect 19 1 3 0;
#X connect 20 0 8 0;
#X restore 378 199 pd genRamp;
#X floatatom 265 111 0 0 0 0 - - -;
#X obj 80 78 noise~;
#X obj 82 234 *~ 0.05;
#X text 87 472 1) table;
#X text 164 471 - buffer (max size 256);
#X text 88 489 2) float;
#X text 164 489 - offset;
#X text 88 506 3) float;
#X text 164 506 - length;
#X text 103 542 buffir~ is a table based FIR (finite impulse response)
filter. an input signal is convolved with n samples of a buffer. Currently
the maximum number of points is 256;
#X obj 499 2 buffir~;
#X text 12 23 table based FIR (finite impulse response) convolution
filter;
#X obj 80 347 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X text 402 174 Generate new fir;
#X text 292 102 number of samples;
#X text 292 114 in impulse;
#X text 323 274 table is a 128-point downwards;
#X text 322 288 ramp with random values here and;
#X text 322 301 there with amplitude from 1 to 0;
#X obj 82 260 output~;
#X obj 268 90 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 7300 1;
#N canvas 595 601 430 354 voice 0;
#X obj 96 145 openpanel;
#X obj 96 219 soundfiler;
#X obj 96 96 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 74 27 loadbang;
#X obj 263 236 *~ 0;
#X obj 263 297 outlet~;
#X obj 263 185 phasor~ 0.77;
#X obj 0 0 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 4 2 Load and play the standard voice.wav file;
#X obj 96 170 pack s f;
#X obj 96 119 t b b;
#X obj 168 145 f \$0;
#X text 115 100 load an other sample;
#X msg 96 194 read -resize \$1 \$2-voice;
#X obj 263 266 tabread~ \$0-voice;
#X obj 95 243 table \$0-voice;
#X msg 74 74 read -resize voice.wav \$1-voice;
#X obj 74 50 f \$0;
#X connect 0 0 9 0;
#X connect 1 0 4 1;
#X connect 2 0 10 0;
#X connect 3 0 17 0;
#X connect 4 0 14 0;
#X connect 6 0 4 0;
#X connect 9 0 13 0;
#X connect 10 0 0 0;
#X connect 10 1 11 0;
#X connect 11 0 9 1;
#X connect 13 0 1 0;
#X connect 14 0 5 0;
#X connect 16 0 1 0;
#X connect 17 0 16 0;
#X restore 96 97 pd voice;
#N canvas 753 492 431 300 mux 0;
#X obj 127 68 inlet~;
#X obj 176 68 inlet~;
#X obj 230 69 inlet;
#X obj 127 231 outlet~;
#X obj 126 182 *~ 1;
#X obj 177 183 *~ 0;
#X obj 230 109 == 0;
#X floatatom 246 158 5 0 0 0 - - -, f 5;
#X obj 0 1 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 4 3 signal selector;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 5 1;
#X connect 2 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 6 0 4 1;
#X connect 6 0 7 0;
#X restore 81 128 pd mux;
#X obj 154 83 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 -1
-1 1;
#X text 77 56 Integral of buffer from offset to offset + length;
#N canvas 164 658 431 249 more 0;
#X obj 75 83 sig~ 1;
#X text 271 85 Length (samps);
#X msg 64 56 clear;
#X floatatom 247 85 0 0 0 0 - - -;
#X floatatom 155 63 0 0 0 0 - - -;
#X text 56 38 clears input history only;
#X text 181 62 Offset (samps);
#X obj 64 221 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 8.96559 256;
#X text 263 138 Initial args:;
#X text 263 150 buffer \, offset(samps) \,;
#X text 263 162 length(samps);
#X obj 64 197 cyclone/Snapshot~ 100;
#X obj 2 2 cnv 15 425 20 empty empty empty 3 12 0 14 -204280 -1 0;
#X text 6 4 Example using variable offset;
#X obj 64 150 cyclone/buffir~ \$0-fir_buf 0 32;
#X connect 0 0 14 0;
#X connect 2 0 14 0;
#X connect 3 0 14 2;
#X connect 4 0 14 1;
#X connect 11 0 7 0;
#X connect 14 0 11 0;
#X restore 447 88 pd more buffir;
#X obj 378 226 cyclone/peek~ \$0-fir_buf;
#X obj 377 248 table \$0-fir_buf 128;
#X obj 241 246 table \$0-anotherTable;
#X obj 171 284 f \$0;
#X obj 171 257 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 17 283 f \$0;
#X obj 17 256 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 82 182 cyclone/buffir~ \$0-fir_buf 0 128;
#X msg 17 309 set \$1-fir_buf 0 128;
#X msg 171 310 set \$1-anotherTable 0 128;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 48 0;
#X connect 22 0 55 2;
#X connect 23 0 44 0;
#X connect 24 0 41 0;
#X connect 24 0 41 1;
#X connect 42 0 22 0;
#X connect 43 0 44 1;
#X connect 44 0 55 0;
#X connect 45 0 44 2;
#X connect 51 0 57 0;
#X connect 52 0 51 0;
#X connect 53 0 56 0;
#X connect 54 0 53 0;
#X connect 55 0 24 0;
#X connect 56 0 55 0;
#X connect 57 0 55 0;
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to