[PD-announce] lolPd

Chris McCormick chris at mccormick.cx
Tue Jul 7 09:24:59 CEST 2015


Hi!

Undoing decades of hard work by Miller, "lol" is a tiny domain-specific
language implemented in vanilla Pd, saving wrists everywhere by enabling
less mousey patching.

https://github.com/chr15m/lolPd

lol enables the quick creation of vertical-pipeline patches for
accomplishing the types of tasks that are easy in functional languages
and languages like Python with e.g. list-comprehensions.

For example, here is a lol one-liner that will output 16 random floats
between 0 and 1 - enter the following into an empty object box:

[lol range 16;
bng;
random 100;
/ 100;]

Hook that up to print statement and bang the input.

Here's another contrived example for generating 10 integers counting
upward, starting at whatever number is passed in:

[23(
 |
[lol tee value;
range 10;
concat value;
expr $f1 + $f2;]

Note that you can use native Pd objects such as [expr] as above wherever
they are compatible, which turns out to be quite often as Pd will
generally unpack lists sent to the left input for you.

Here is an example that will output 16 midi controller values the moment
it is created, and you can also pass in a number to generate a different
number of values on request (e.g. 32 here):

[32(
 |
[lol tee count;
loadbng;
concat count;
default 16;
range;
bng;
random 128;]

I made this because in recent times I have been doing a lot of
algorithmic sequencing and it is laborious to make patches that generate
sequences of numbers with a mouse.

Please feel free to contribute any "pipeline" objects to the project
that make your life easier!

Have fun!

Cheers,

Chris.

-- 
http://mccormick.cx/



More information about the Pd-announce mailing list