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.
Great job !
°1
Le 07.07.2015 09:24, Chris McCormick a écrit :
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.
interesting!
On Tue, Jul 7, 2015 at 5:45 PM, 01ivier@labomedia.net wrote:
Great job !
°1
Le 07.07.2015 09:24, Chris McCormick a écrit :
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.
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list