hi list, over the last months, i've been programming a couple of abstractions to enhance faster and comfortable programming in pd. maybe they're useful for anyone else out there. some ideas arent't new, of course, and there might exist similar objects.
i called the collection "honk abstractions".
download: http://www.kreidler-net.de/honk.zip
documentation: http://www.kreidler-net.de/honk.html
or http://www.kreidler-net.de/honk.pdf
some of them require [at least] pd-extended 0.38
help is inside the patches.
it contents:
----GLUE----
linvert - inverts order of atoms of a list listerize-fifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: first in first out listerize-lifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: last in first out mergerize-fifo - turns a stream of symbols into one symbol, in order: first in first out mergerize-lifo - turns a stream of symbols into one symbol, in order: last in first out nbangs - sequence incoming bangs schange - like "change" but for symbols, outputs its input only when it changes
----TIME----
malibu - counts in a certain speed
zetro - random metronome
----MATH----
noreprand - exactly like "random", but without repetitions. outputs random numbers in given range.
----TABLES----
ntables - creates a certain number of tables in subpatch
----GUI-----
bak - like bang, but size can be given by argument dac - comfortable control of audio output display - displays a number or symbol in variable size hamp - comfortable horizontal potentiometer hr - like horizontal radio, but number of buttons can be given by argument gop - comfortable graph-on-parent control hs - horizontal slider with range as arguments sf - soundfile-player for different formats (wav, mp3, ogg) tok - like toggle, but size can be given by argument vamp - comfortable vertical potentiometer vr - like vertical radio, but number of buttons can be given by argument vs - vertical slider with range as arguments vum - quick-to-build VU-Meter
----MISC----
klist - text-based sequencer with absolute time destinations midi2symbol - MIDI tone numbers to german tone name conversion
----AUDIO GLUE----
compress~ - every amplitude that lies under a certain threshold will be amplified to a reference amplitude limit~ - every amplitude that lies over a certain threshold will be dampened to a reference amplitude pitchshift~ - granular transposition
----AUDIO OSCILLATORS----
sinesum~ - oscillator with various partials waveform~ - waveform oscillator (sine/saw/triangle/square/pulse/random)
regards, johannes
-- www.kreidler-net.de
Johannes~
These objects are very nice, and would be a great contribution to Pd-extended! Thanks so much for sharing them.
One thing that would be helpful for you to do is to create a simple object-help.pd file for each object. The reason this is preferred over the help being within the abstraction (which is still a nice thing to have) is simple.
When you open the abstraction by itself, it doesn't have all the nice functions of a loaded abstraction, rather it is like a normal patch. To really show off how someone can use your abstraction (and give them a nice point of departure to cut/paste into their own projects) it is customary and appreciated to write a simple wrapper patch (*-help.pd) that implements the abstraction "in the wild."
For instance, I had to create a new file called honktest.pd within your honk folder in order to test out your (very awesome) abstractions.
So that's just my own humble two cents (not worth much compared to the Euro as of now).
Again, thanks so much for sharing your tools!
~Kyle
On Dec 13, 2007 11:04 AM, Johannes Kreidler jkreidler@gmx.de wrote:
hi list, over the last months, i've been programming a couple of abstractions to enhance faster and comfortable programming in pd. maybe they're useful for anyone else out there. some ideas arent't new, of course, and there might exist similar objects.
i called the collection "honk abstractions".
download: http://www.kreidler-net.de/honk.zip
documentation: http://www.kreidler-net.de/honk.html
or http://www.kreidler-net.de/honk.pdf
some of them require [at least] pd-extended 0.38
help is inside the patches.
it contents:
----GLUE----
linvert - inverts order of atoms of a list listerize-fifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: first in first out listerize-lifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: last in first out mergerize-fifo - turns a stream of symbols into one symbol, in order: first in first out mergerize-lifo - turns a stream of symbols into one symbol, in order: last in first out nbangs - sequence incoming bangs schange - like "change" but for symbols, outputs its input only when it changes
----TIME----
malibu - counts in a certain speed zetro - random metronome
----MATH----
noreprand - exactly like "random", but without repetitions. outputs random numbers in given range.
----TABLES----
ntables - creates a certain number of tables in subpatch
----GUI-----
bak - like bang, but size can be given by argument dac - comfortable control of audio output display - displays a number or symbol in variable size hamp - comfortable horizontal potentiometer hr - like horizontal radio, but number of buttons can be given by argument gop - comfortable graph-on-parent control hs - horizontal slider with range as arguments sf - soundfile-player for different formats (wav, mp3, ogg) tok - like toggle, but size can be given by argument vamp - comfortable vertical potentiometer vr - like vertical radio, but number of buttons can be given by argument vs - vertical slider with range as arguments vum - quick-to-build VU-Meter
----MISC----
klist - text-based sequencer with absolute time destinations midi2symbol - MIDI tone numbers to german tone name conversion
----AUDIO GLUE----
compress~ - every amplitude that lies under a certain threshold will be amplified to a reference amplitude limit~ - every amplitude that lies over a certain threshold will be dampened to a reference amplitude pitchshift~ - granular transposition
----AUDIO OSCILLATORS----
sinesum~ - oscillator with various partials waveform~ - waveform oscillator (sine/saw/triangle/square/pulse/random)
regards, johannes
-- www.kreidler-net.de -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
More goodies. Thanks for making and sharing these Johannes.
On Thu, 13 Dec 2007 18:04:25 +0100 "Johannes Kreidler" jkreidler@gmx.de wrote:
hi list, over the last months, i've been programming a couple of abstractions to enhance faster and comfortable programming in pd. maybe they're useful for anyone else out there. some ideas arent't new, of course, and there might exist similar objects.
i called the collection "honk abstractions".
download: http://www.kreidler-net.de/honk.zip
documentation: http://www.kreidler-net.de/honk.html
or http://www.kreidler-net.de/honk.pdf
some of them require [at least] pd-extended 0.38
help is inside the patches.
it contents:
----GLUE----
linvert - inverts order of atoms of a list listerize-fifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: first in first out listerize-lifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: last in first out mergerize-fifo - turns a stream of symbols into one symbol, in order: first in first out mergerize-lifo - turns a stream of symbols into one symbol, in order: last in first out nbangs - sequence incoming bangs schange - like "change" but for symbols, outputs its input only when it changes
----TIME----
malibu - counts in a certain speed zetro - random metronome
----MATH----
noreprand - exactly like "random", but without repetitions. outputs random numbers in given range.
----TABLES----
ntables - creates a certain number of tables in subpatch
----GUI-----
bak - like bang, but size can be given by argument dac - comfortable control of audio output display - displays a number or symbol in variable size hamp - comfortable horizontal potentiometer hr - like horizontal radio, but number of buttons can be given by argument gop - comfortable graph-on-parent control hs - horizontal slider with range as arguments sf - soundfile-player for different formats (wav, mp3, ogg) tok - like toggle, but size can be given by argument vamp - comfortable vertical potentiometer vr - like vertical radio, but number of buttons can be given by argument vs - vertical slider with range as arguments vum - quick-to-build VU-Meter
----MISC----
klist - text-based sequencer with absolute time destinations midi2symbol - MIDI tone numbers to german tone name conversion
----AUDIO GLUE----
compress~ - every amplitude that lies under a certain threshold will be amplified to a reference amplitude limit~ - every amplitude that lies over a certain threshold will be dampened to a reference amplitude pitchshift~ - granular transposition
----AUDIO OSCILLATORS----
sinesum~ - oscillator with various partials waveform~ - waveform oscillator (sine/saw/triangle/square/pulse/random)
regards, johannes
-- www.kreidler-net.de -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hey Johannes,
Very nice set of abstractions, thanks! I thought it would be nice to be able to give a base name to [ntables] as in: [ntables 20 44100 basename] to have 20 tables named basename0, basename2,...etc. So I made a little change to do that, see attachement. It uses [$1$2( , so it will not work in older versions of pd (<0.39?).
gr, Tim
Johannes Kreidler wrote:
hi list, over the last months, i've been programming a couple of abstractions to enhance faster and comfortable programming in pd. maybe they're useful for anyone else out there. some ideas arent't new, of course, and there might exist similar objects.
i called the collection "honk abstractions".
download: http://www.kreidler-net.de/honk.zip
documentation: http://www.kreidler-net.de/honk.html
or http://www.kreidler-net.de/honk.pdf
some of them require [at least] pd-extended 0.38
help is inside the patches.
it contents:
----GLUE----
linvert - inverts order of atoms of a list listerize-fifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: first in first out listerize-lifo - like "serialize" but for symbols, turns a list of symbols into a list, in order: last in first out mergerize-fifo - turns a stream of symbols into one symbol, in order: first in first out mergerize-lifo - turns a stream of symbols into one symbol, in order: last in first out nbangs - sequence incoming bangs schange - like "change" but for symbols, outputs its input only when it changes
----TIME----
malibu - counts in a certain speed zetro - random metronome
----MATH----
noreprand - exactly like "random", but without repetitions. outputs random numbers in given range.
----TABLES----
ntables - creates a certain number of tables in subpatch
----GUI-----
bak - like bang, but size can be given by argument dac - comfortable control of audio output display - displays a number or symbol in variable size hamp - comfortable horizontal potentiometer hr - like horizontal radio, but number of buttons can be given by argument gop - comfortable graph-on-parent control hs - horizontal slider with range as arguments sf - soundfile-player for different formats (wav, mp3, ogg) tok - like toggle, but size can be given by argument vamp - comfortable vertical potentiometer vr - like vertical radio, but number of buttons can be given by argument vs - vertical slider with range as arguments vum - quick-to-build VU-Meter
----MISC----
klist - text-based sequencer with absolute time destinations midi2symbol - MIDI tone numbers to german tone name conversion
----AUDIO GLUE----
compress~ - every amplitude that lies under a certain threshold will be amplified to a reference amplitude limit~ - every amplitude that lies over a certain threshold will be dampened to a reference amplitude pitchshift~ - granular transposition
----AUDIO OSCILLATORS----
sinesum~ - oscillator with various partials waveform~ - waveform oscillator (sine/saw/triangle/square/pulse/random)
regards, johannes
-- www.kreidler-net.de
#N canvas 0 0 1022 710 12; #X text 461 217 Honk Abstractions -- Kreidler 2007; #X text 540 254 www.kreidler-net.de; #X obj 14 35 namecanvas $0-tab; #N canvas 49 18 659 727 $0-sub 0; #X obj 160 207 f; #X obj 160 235 + 1; #X obj 241 290 sel $1; #X obj 160 262 t f f; #X obj 160 346 spigot; #X msg 205 316 1; #X msg 243 316 0; #X obj 160 80 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 160 105 t b b; #X obj 160 29 loadbang; #X obj 160 54 t b b; #X obj 298 290 sel 200; #X floatatom 160 372 5 0 0 0 - - -; #X obj 390 483 $2; #X msg 185 177 -1; #X obj 441 483 makefilename pd-%s; #X msg 441 509 $1 clear; #X obj 13 459 makefilename pd-%s; #X obj 171 396 t b b f f b; #X obj 441 456 symbol $0-tab; #X obj 13 432 symbol $0-tab; #X obj 208 587 pack f s f; #X obj 208 645 s $0-tab; #X msg 208 615 obj 300 $1 table $2 $3; #X obj 208 547 * 22; #X obj 226 455 symbol $3; #X obj 226 427 t b f; #X obj 241 547 symbol; #X obj 226 484 pack s f; #X msg 226 511 $1$2; #X connect 0 0 1 0; #X connect 1 0 0 1; #X connect 1 0 3 0; #X connect 2 0 6 0; #X connect 3 0 4 0; #X connect 3 1 2 0; #X connect 3 1 11 0; #X connect 4 0 12 0; #X connect 5 0 4 1; #X connect 6 0 4 1; #X connect 7 0 8 0; #X connect 8 0 0 0; #X connect 8 1 5 0; #X connect 9 0 10 0; #X connect 10 0 7 0; #X connect 10 1 14 0; #X connect 10 1 19 0; #X connect 11 0 6 0; #X connect 12 0 18 0; #X connect 13 0 21 2; #X connect 14 0 0 1; #X connect 15 0 16 0; #X connect 18 0 8 0; #X connect 18 1 20 0; #X connect 18 2 24 0; #X connect 18 3 26 0; #X connect 18 4 13 0; #X connect 19 0 15 0; #X connect 20 0 17 0; #X connect 21 0 23 0; #X connect 23 0 22 0; #X connect 24 0 21 0; #X connect 25 0 28 0; #X connect 26 0 25 0; #X connect 26 1 28 1; #X connect 27 0 21 1; #X connect 28 0 29 0; #X connect 29 0 27 0; #X restore 14 12 pd $0-sub; #X text 465 34 ntables [number of tables] [table size];