aboutsummaryrefslogtreecommitdiff
path: root/weightonset
diff options
context:
space:
mode:
Diffstat (limited to 'weightonset')
-rw-r--r--weightonset/help-weightonset.pd261
-rwxr-xr-xweightonset/makefile106
-rwxr-xr-xweightonset/stink.wavbin213234 -> 0 bytes
-rw-r--r--weightonset/weightonset.c106
4 files changed, 0 insertions, 473 deletions
diff --git a/weightonset/help-weightonset.pd b/weightonset/help-weightonset.pd
deleted file mode 100644
index 99985ac..0000000
--- a/weightonset/help-weightonset.pd
+++ /dev/null
@@ -1,261 +0,0 @@
-#N canvas 31 64 901 594 10;
-#N canvas 1901 230 450 300 hasc 0;
-#X obj 65 62 inlet~;
-#X obj 196 184 block~ 1024;
-#X obj 55 106 rfft~;
-#X obj 56 150 hasc~;
-#X obj 56 188 outlet;
-#X obj 179 60 inlet;
-#X text 153 42 threshold (0-10+);
-#X text 43 -1 ...get a "highest apparent spectral component" value
-from the FFT;
-#X connect 0 0 2 0;
-#X connect 2 0 3 0;
-#X connect 2 1 3 1;
-#X connect 3 0 4 0;
-#X connect 5 0 3 2;
-#X restore 44 446 pd hasc;
-#X obj 128 374 bonk~;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array \$0-input 106595 float 0;
-#X coords 0 1 106594 -1 200 51 1;
-#X restore 287 337 graph;
-#X obj 128 398 t b b;
-#X obj 81 534 f;
-#X floatatom 96 515 5 0 0 0 - - -;
-#X floatatom 168 376 5 0 99 0 - - -;
-#X obj 81 554 print end-value;
-#X obj 43 352 tabplay~ \$0-input;
-#X floatatom 75 382 5 0 100 0 - - -;
-#X floatatom 75 424 5 0 0 0 - - -;
-#X obj 75 402 * 0.1;
-#N canvas 0 0 450 300 tw 0;
-#X obj 274 70 inlet;
-#X msg 274 91 0;
-#X obj 191 158 cup;
-#X obj 110 55 inlet;
-#X obj 110 80 t f b;
-#X obj 115 207 tabwrite \$0-hasc;
-#X obj 301 158 cup;
-#X obj 220 55 inlet;
-#X obj 220 80 t f b;
-#X obj 225 207 tabwrite \$0-weightonset;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 0 6 0;
-#X connect 2 0 5 1;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X connect 4 1 2 0;
-#X connect 6 0 9 1;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 8 1 6 0;
-#X restore 39 547 pd tw;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array \$0-hasc 1 float 3;
-#A 0 0;
-#X coords 0 511 1 -1 200 51 1;
-#X restore 287 408 graph;
-#N canvas 0 0 450 300 adapt 0;
-#X obj 128 44 inlet;
-#X obj 127 74 / 100;
-#X obj 129 108 t b f;
-#X msg 126 139 1;
-#X obj 132 170 -;
-#X obj 134 205 outlet;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 2 1 4 1;
-#X connect 3 0 4 0;
-#X connect 4 0 5 0;
-#X restore 168 395 pd adapt;
-#X floatatom 168 429 5 0 0 1 influence - -;
-#X obj 168 336 loadbang;
-#X obj 88 304 bng 15 250 50 0 empty empty load 17 7 0 10 -262144 -1
--1;
-#N canvas 211 176 325 300 loadfile 0;
-#X obj 44 28 openpanel;
-#X obj 44 47 t a b;
-#X obj 44 90 pack s s;
-#X msg 44 109 read -resize \$1 \$2;
-#X obj 44 128 soundfiler;
-#X obj 71 66 symbol \$0-input;
-#X floatatom 44 186 0 0 0 0 - - -;
-#X obj 44 166 i;
-#X msg 44 206 resize \$1;
-#X obj 44 226 s \$0-hasc;
-#X obj 44 147 / 1024;
-#X obj 44 5 inlet;
-#X obj 113 227 s \$0-weightonset;
-#X obj 243 27 loadbang;
-#X msg 119 27 ../sound/stink.wav;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 1 5 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 4 0 10 0;
-#X connect 5 0 2 1;
-#X connect 6 0 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 9 0;
-#X connect 8 0 12 0;
-#X connect 10 0 7 0;
-#X connect 11 0 0 0;
-#X connect 13 0 14 0;
-#X connect 14 0 1 0;
-#X restore 88 323 pd loadfile;
-#X obj 43 304 bng 12 250 50 0 empty empty play 15 6 0 10 -262144 -1
--1;
-#X obj 43 319 t b b;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array \$0-weightonset 1 float 3;
-#A 0 0;
-#X coords 0 511 1 -1 200 51 1;
-#X restore 287 478 graph;
-#X obj 116 435 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--257985 -1;
-#X text 56 49 The second value is multipled by the value in the second
-inlet (range 0-1) and added to the first value. Then \, the divider
-value (in order to work out the weighted average) is also multiplied
-by this value \, and added to it.;
-#X text 46 8 This object makes a moving average with successively less
-important values. The calculation initiates when the object is banged
-\, and the first value is the most influential.;
-#X msg 65 472 1;
-#X obj 130 473 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 195 528 print data;
-#X text 78 161 When the object is banged the right outlet sends a list
-of all the values that influenced the result since the last bang \,
-up to a limit of 1024 values.;
-#X obj 477 73 weightonset;
-#X text 476 58 V;
-#X text 476 54 |;
-#X text 476 44 |;
-#X text 476 34 |;
-#X text 452 20 floats in;
-#X text 506 58 V;
-#X text 506 54 |;
-#X text 506 44 |;
-#X text 685 338 ^;
-#X text 684 342 |;
-#X text 684 351 |;
-#X text 738 338 ^;
-#X text 737 342 |;
-#X text 737 351 |;
-#X text 801 338 ^;
-#X text 800 342 |;
-#X text 800 351 |;
-#X text 671 377 of successive inputs;
-#X text 475 89 |;
-#X text 475 99 |;
-#X text 475 109 |;
-#X text 475 119 V;
-#X text 452 141 influenced;
-#X text 464 130 onset-;
-#X text 465 153 value;
-#X text 538 89 |;
-#X text 538 99 |;
-#X text 538 109 |;
-#X text 538 119 V;
-#X text 531 132 data dump;
-#X text 537 143 on bang;
-#X msg 49 382 5;
-#X text 212 439 factor;
-#X text 202 415 successive;
-#X text 64 101 The influence of successive values is lessened by the
-inverse of the factor on the right inlet. So \, a value of 0.2 in the
-second inlet means that the second value after the bang is 20% as influential
-as the first \, and the third value is 20% of 20% (4%) as influential
-as the first.;
-#X floatatom 195 465 5 0 10 1 attack - -;
-#X text 509 200 influence factor = 0 : 1st float output only;
-#X text 510 188 attack length = 0 \,;
-#X text 535 166 EXAMPLES:;
-#X text 520 226 attack length = 0 \,;
-#X text 519 238 influence factor = 1: successive values are;
-#X text 232 475 phase;
-#X text 232 489 0-100;
-#X text 508 252 equally influential to the total \, but the list;
-#X text 492 31 successive influence factor (0-1);
-#X text 538 58 V;
-#X text 538 54 |;
-#X text 514 265 grows longer as the numbers are added. Therefore;
-#X text 506 278 the output responds less and less to input values.
-;
-#X text 513 291 This is an accumulating average between bangs.;
-#X text 511 313 attack length = 0 \,;
-#X text 634 366 (w) = weightings (influence values);
-#X text 509 393 the output is onset-weighted e.g. the most influential
-values are at the start of the series.;
-#X text 699 462 ^;
-#X text 698 466 |;
-#X text 698 475 |;
-#X text 769 462 ^;
-#X text 768 466 |;
-#X text 768 475 |;
-#X text 832 462 ^;
-#X text 831 466 |;
-#X text 831 475 |;
-#X text 680 501 of successive inputs;
-#X text 656 490 (w) = weightings (influence values);
-#X text 517 437 attack length = 3 \,;
-#X text 509 327 influence factor = 0.5: v1 w 1 \, v2 w 0.5 \, v3 w
-0.25 \, v4 w 0.125;
-#X text 86 200 If the attack phase is greater than 0 \, the values
-become successively more influential to the weighted average \, until
-the number of values is equal to the attack+1. The next value after
-the attack phase is the most influential \, then the influence factor
-kicks in and successive values become less influential.;
-#X text 557 71 creation args: influence factor \, attack;
-#X obj 96 495 weightonset 0.8 0;
-#X obj 10 381 dac~;
-#X msg 168 356 80;
-#X text 513 451 influence factor = 0.5: v1 w 0.125 \, v2 w 0.25 \,
-v3 w 0.5 \, v4 w 1 \, v5 w 0.5 \, v6 w 0.25...;
-#X text 525 43 attack phase (0-100+);
-#X obj 664 183 weightonset 0 0;
-#X obj 666 222 weightonset 1 0;
-#X obj 674 312 weightonset 0.5 0;
-#X obj 676 434 weightonset 0.5 3;
-#X text 509 517 the output is onset-weighted e.g. the most influential
-values are at the start of the series \, after the attack phase in
-which the values become successively more influential.;
-#X text 99 269 The weightings of values during the attack phase is
-the reverse of successive weightings after the attack:;
-#X text 226 294 weighting = influence pow(attack - index);
-#X connect 0 0 12 0;
-#X connect 0 0 98 0;
-#X connect 1 0 3 0;
-#X connect 3 0 22 0;
-#X connect 3 0 98 0;
-#X connect 3 1 4 0;
-#X connect 4 0 7 0;
-#X connect 5 0 4 1;
-#X connect 5 0 12 1;
-#X connect 6 0 14 0;
-#X connect 8 0 0 0;
-#X connect 8 0 1 0;
-#X connect 8 0 99 0;
-#X connect 8 0 99 1;
-#X connect 9 0 11 0;
-#X connect 10 0 0 1;
-#X connect 11 0 10 0;
-#X connect 14 0 15 0;
-#X connect 14 0 98 1;
-#X connect 16 0 100 0;
-#X connect 16 0 61 0;
-#X connect 17 0 18 0;
-#X connect 19 0 20 0;
-#X connect 20 0 8 0;
-#X connect 20 1 12 2;
-#X connect 25 0 98 0;
-#X connect 26 0 98 0;
-#X connect 61 0 9 0;
-#X connect 65 0 98 2;
-#X connect 98 0 5 0;
-#X connect 98 1 27 0;
-#X connect 100 0 6 0;
diff --git a/weightonset/makefile b/weightonset/makefile
deleted file mode 100755
index a530dea..0000000
--- a/weightonset/makefile
+++ /dev/null
@@ -1,106 +0,0 @@
-current:
- echo make pd_linux, pd_nt, pd_irix5, pd_irix6 or pd_darwin
-
-clean: ; rm -f *.pd_* *.o
-
-# ----------------------- NT -----------------------
-
-pd_nt: weightonset.dll
-
-.SUFFIXES: .obj .dll
-
-PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo
-VC="D:\Program Files\Microsoft Visual Studio\Vc98"
-
-PDNTINCLUDE = /I. /I\tcl\include /I..\..\src /I$(VC)\include
-
-PDNTLDIR = $(VC)\lib
-PDNTLIB = $(PDNTLDIR)\libc.lib \
- $(PDNTLDIR)\oldnames.lib \
- $(PDNTLDIR)\kernel32.lib \
- ..\..\bin\pd.lib
-
-.c.dll:
- cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
- link /dll /export:$*_setup $*.obj $(PDNTLIB)
-
-# ----------------------- IRIX 5.x -----------------------
-
-pd_irix5: weightonset.pd_irix5
-
-INSTALL_PREFIX=/usr/local
-EXT=pd_irix5
-.SUFFIXES: .pd_irix5
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-
-SGIINCLUDE = -I/usr/local/include
-
-.c.pd_irix5:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o
- rm $*.o
-
-# ----------------------- IRIX 6.x -----------------------
-
-pd_irix6: weightonset.pd_irix6
-
-INSTALL_PREFIX=/usr/local
-EXT=pd_irix6
-.SUFFIXES: .pd_irix6
-
-SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
-
-
-SGIINCLUDE = -I/usr/local/include
-
-.c.pd_irix6:
- cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c
- ld -elf -shared -rdata_shared -o $*.pd_irix6 $*.o
- rm $*.o
-
-# ----------------------- LINUX i386 -----------------------
-
-pd_linux: weightonset.pd_linux
-
-INSTALL_PREFIX=/usr/local
-EXT=pd_linux
-.SUFFIXES: .pd_linux
-
-LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-LINUXINCLUDE = -I/usr/local/include
-
-.c.pd_linux:
- cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
- ld --export-dynamic -shared -o $*.pd_linux $*.o -lc -lm
- strip --strip-unneeded $*.pd_linux
- rm $*.o
-
-# ----------------------- Mac OSX -----------------------
-
-pd_darwin: weightonset.pd_darwin
-
-INSTALL_PREFIX=/usr/local
-EXT=pd_darwin
-.SUFFIXES: .pd_darwin
-
-DARWINCFLAGS = -DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-.c.pd_darwin:
- cc $(DARWINCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
- cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o
- rm -f $*.o
-
-# ----------------------------------------------
-
-install::
- install -d $(INSTALL_PREFIX)/lib/pd/extra
-# install -m 644 *.$(EXT) $(INSTALL_PREFIX)/lib/pd/externs
- -install -m 644 weightonset.$(EXT) $(INSTALL_PREFIX)/lib/pd/extra
- install -m 644 *.pd $(INSTALL_PREFIX)/lib/pd/doc/5.reference
- install -m 644 *.wav $(INSTALL_PREFIX)/lib/pd/doc/sound
diff --git a/weightonset/stink.wav b/weightonset/stink.wav
deleted file mode 100755
index aec9986..0000000
--- a/weightonset/stink.wav
+++ /dev/null
Binary files differ
diff --git a/weightonset/weightonset.c b/weightonset/weightonset.c
deleted file mode 100644
index 44265a2..0000000
--- a/weightonset/weightonset.c
+++ /dev/null
@@ -1,106 +0,0 @@
-#include "m_pd.h"
-#include <math.h>
-
-typedef struct _datachunk
-{
- t_atom data[1024];
-} t_datachunk;
-
-typedef struct _weightonset
-{
- t_object x_obj;
- t_float multiplier, accumulator, divider, divaccum, weighted, increment;
- t_float length, attack;
- t_datachunk x_datachunk;
- t_outlet *waverage, *datachunk;
-} t_weightonset;
-
-t_class *weightonset_class;
-
-void weightonset_float (t_weightonset *x, t_floatarg fin)
-{
- if(x->length < 1024)
- {
- int len = (int)x->length;
- SETFLOAT(&x->x_datachunk.data[len], fin);
- if(x->length < x->attack)
- {
- int i;
- float weight = 1;
- x->increment = x->length - x->attack;
- for(i=0;i<x->increment;i++)
- {
- weight = weight*x->multiplier;
- }
- x->accumulator += fin*weight;
- x->divaccum += weight;
- x->weighted = x->accumulator / x->divaccum;
- outlet_float(x->waverage, x->weighted);
- }
- else if(x->length == x->attack)
- {
- x->divider = 1;
- x->divaccum += 1;
- x->accumulator += fin*x->divider;
- x->weighted = x->accumulator / x->divaccum;
- x->divider *= x->multiplier;
- x->divaccum += x->divider;
- outlet_float(x->waverage, x->weighted);
- }
- else
- {
- x->accumulator += fin*x->divider;
- x->weighted = x->accumulator / x->divaccum;
- x->divider *= x->multiplier;
- x->divaccum += x->divider;
- outlet_float(x->waverage, x->weighted);
- }
- x->length += 1;
- }
-}
-
-void weightonset_bang (t_weightonset *x)
-{
- int (len) = (int)x->length;
- outlet_list(x->datachunk, gensym("list"), len, x->x_datachunk.data);
- x->accumulator = 0;
- x->length = 0;
- if(x->attack > 0)
- {
- x->divider = 1;
- x->divaccum = 1;
- }
- else if (x->attack == 0)
- {
- x->divider = 0;
- x->divaccum = 0;
- }
-}
-
-void *weightonset_new(t_floatarg f1, t_floatarg f2)
-{
- t_weightonset *x = (t_weightonset *)pd_new(weightonset_class);
- x->multiplier = f1 != 0 ? f1 : 0.5;
- x->accumulator = 0;
- x->divider = f2 > 0 ? 1 : 0;
- x->divaccum = f2 > 0 ? 1 : 0;
- x->length = 0;
- x->attack = f2;
- floatinlet_new(&x->x_obj, &x->multiplier);
- floatinlet_new(&x->x_obj, &x->attack);
- x->waverage = outlet_new(&x->x_obj, &s_float);
- x->datachunk = outlet_new(&x->x_obj, &s_list);
- return (void *)x;
-}
-
-void weightonset_setup(void) {
- weightonset_class = class_new(gensym("weightonset"),
- (t_newmethod)weightonset_new,
- 0, sizeof(t_weightonset),
- 0, A_DEFFLOAT, A_DEFFLOAT, 0);
- post("input values become less and less important");
- post("as entropy brings alternative rewards");
- class_sethelpsymbol(weightonset_class, gensym("help-weightonset"));
- class_addbang(weightonset_class, weightonset_bang);
- class_addfloat(weightonset_class, weightonset_float);
-}