Re: [PD] Any Live Coders?

2010-09-13 Thread Claude Heiland-Allen

On 12/09/10 23:35, Andrew Faraday wrote:

Either way, I was wondering if anyone feels like sharing some of their mental 
templates for a live code approach.
Just to get the ball rolling, here's one of my favorites:


[mostly-incomprehensible ascii art snipped]

Thanks for the tip/reminder that [s~]/[r~]/[throw~]/[catch~] might be 
useful in a livecoding session - I've always been frustrated by having 
to connect things together, especially when needing to insert something 
in the middle of a chain.  Another good practice/hacky workaround 
for Pd livecoding is inserting extra [*~ 1] all over the place so you 
can break a stereo chain atomically later on.


Otherwise, I usually prepare some small abstractions for drums ([kick~] 
[snare~] [clap~] [hihat~] etc), as coding a reasonable sounding drum 
synth is hard (in fact I think I mostly 'borrowed' from Andy Farnell's 
stuff).


And some simple effects that are boring to code too, like delay-based 
[pitchshift~] and audio-rate [compress~] (my own invention that sounds 
too extreme, but stops everything clipping and I don't have to worry 
about levels so much).


One of my tricks when live coding (and more generally) is using 
arithmetic on beat counts, like [*] [+] [div] [mod] in various 
combinations.  Then using the resulting numbers as frequency multipliers 
(for harmonic series/scales).  For a (composed) EP that uses this 
technique, see:


http://www.archive.org/details/ClaudiusMaximus_-_Clouds_Are_Made_Of_Water

in particular the third track.

The same kind of thing works for slower oscillators, to get rhythms from 
waveshaping a [phasor~] (I think this might be what you were trying in 
the ascii diagram, perhaps?).


Another trick is to use delay effects to amplify your mistakes and make 
them seem intentional by repetition.  Pitchshifts in a feedback delay 
lines are fun too.


Anyway, I uploaded some older recordings this morning, four Pd 
livecoding sessions:


http://www.archive.org/details/ClaudiusMaximus_-_Livecoding_2008

Listening back to them with a critical ear, I think in places I forgot 
the value of (self-)sabotage for making more interesting improvised 
music - getting locked into a groove (even if it's funky) isn't good if 
it goes on for too long.



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Any Live Coders?

2010-09-13 Thread Andrew Faraday

I'm mainly working on linux or Mac OS, don't usually find a particular 
difference. 
I've not come across freeframe or frei0r parameters, incidentally, what are 
they? 

 From: p...@digitalworlds.ufl.edu
 To: jbtur...@hotmail.com; pd-list@iem.at
 Date: Sun, 12 Sep 2010 22:18:44 -0400
 Subject: RE: [PD] Any Live Coders?
 
 I would love to mash up some ideas with you Andrew.
 I would like to use what you are suggesting for freeframe or frei0r paramters
 
 i will find the patch
 
 linux/osx/win??
 
 pp
 
 From: pd-list-boun...@iem.at [pd-list-boun...@iem.at] On Behalf Of Andrew 
 Faraday [jbtur...@hotmail.com]
 Sent: Sunday, September 12, 2010 6:35 PM
 To: pd-list@iem.at
 Subject: [PD] Any Live Coders?
 
 Hey All
 
 I've been interested in the possibility of live coding with pure data, 
 indeed, in the guise of running Pd workshops. I've taken the live coding 
 style, instant, step-by-step on and tend to throw Pd systems together 
 spontaneously in my spare time. Either way, I was wondering if anyone feels 
 like sharing some of their mental templates for a live code approach.
 
 
 
 Just to get the ball rolling, here's one of my favorites:
 
 
 [bpm]  (right outlet)
|
[phasor~]
|
[s~ something]
 
 (a few of these, multiplying and dividing the measure frequency, sends with 
 names like 1bar, 4bar, halfbar etc)
 
 [r~ something]
  |
 [expr~ $v1  xx] (between 0 and 1)
 and
 [expr~ $v1  xx] (same)
 
 and multiply the two expression outlets together with [*~]
 
 Mutiply the result of that by an audio signal, usually an oscillator. and out 
 to a [dac~]
 
 Then multiple copies of this with different values in the expression and 
 oscillators.
 
 
 Can then be edited by random or sequential variations on the pitch of the 
 oscillators, changing the figures in the expr~ figures.
 I'm quite fond of the possibility of changing the receive id's thus keeping a 
 sequence intact but doubling or halfing the speed of certain sequences within 
 it. Also the speed can be varied (which then effects the speed of the whole 
 patch).
 
 Also, slightly out of the way, you could use the phasor outlets directly 
 control oscillator pitches, volumes, or filter frequencies.
 
 This template does tend to work out differently each time I use it, also.
  ___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Any Live Coders?

2010-09-13 Thread Andrew Faraday

Hey Claude
Yeah, it was a little bit of a brain dump, so not very clear. Sorry.

 Thanks for the tip/reminder that [s~]/[r~]/[throw~]/[catch~] might be  
 useful in a livecoding session - I've always been frustrated by having  to 
 connect things together, especially when needing to insert something  in the 
 middle of a chain. 
I'd forgotten about throw and catch, although they are mighty useful when 
you're duplicating voices. 
Another good practice/hacky workaround  for Pd livecoding is inserting 
extra [*~ 1] all over the place so you  can break a stereo chain atomically 
later on.
I usually don't find issues with breaking chains, with Pd audio inlets summing 
audio you can usually make a connection via what you want to insert in your 
chain, then remove the original wire. While this does sometimes change the 
overall sound a bit, that's just slightly more interesting.
I do tend to avoid using my own abstractions in a live code, just to make the 
actual process a little more up-front and open to an audience. That being said, 
it does usually wind up, at least for a while, as some very basic synth sounds. 
Arithmetic on beat counts can be fun, especially if you're drawing from a 
central [metro], (incidentally another side-chain to the design I placed down 
at first, using the left outlet of [bpm] to make something at the same speed 
using control signals which you can then sync up) always worth doing some 
polymetrics (3 or 5 over four are nice, don't tend to go down to decimals). 
 The same kind of thing works for slower oscillators, to get rhythms from  
 waveshaping a [phasor~] (I think this might be what you were trying in  the 
 ascii diagram, perhaps?).
I wasn't doing waveshaping, as such. The two expr~ objects are using 
conditional logic, which outputs a 1 or a 0, multiplying these together means 
that when both read true, that outputs a 1 which makes for a the audio signal 
being described. So, if I have [expr~ $v1  0.1125] and [expr~ $v1  0] 
multiplied together, then this will output a 1 when whichever [phasor~] I feed 
into it is in the first 8th of it's progress. So essentially it's a simple 
sequencing system. 
 Another trick is to use delay effects to amplify your mistakes and make  
 them seem intentional by repetition. Pitchshifts in a feedback delay  lines 
 are fun too.
I must, must, MUST try this. I'm quite fond of delay lines, even quite simple 
ones. Tho have been looking for ways to vary them. :)
Self-sabotage? Do you mean in the sense of intentionally getting things wrong 
or simply in removing blocks of code to vary your sound? Because I do try to 
flatten my patch occasionally, especially on those occasions when I'm coding 
with someone else so one can pick up the slack while the other starts a new 
setup. 

Incidentally, I didn't mention the self-destruct ending to most of my 
live-codes. Two or three delays running at different speeds. Usually matching 
the initial speed, to this sounds pleasant with the running patch. Then I set 
the feedback on each to about 35% chain them together. Feed the last one into 
the first (by this point you've got a pretty muddy tone) and cut input to that. 
Then cut any direct output (except from the delay) and wait while this nasty 
tone gradually (very gradually) dies down. 
 
 Date: Mon, 13 Sep 2010 07:53:57 +0100
 From: claudiusmaxi...@goto10.org
 To: jbtur...@hotmail.com
 CC: pd-list@iem.at
 Subject: Re: [PD] Any Live Coders?
 
 On 12/09/10 23:35, Andrew Faraday wrote:
  Either way, I was wondering if anyone feels like sharing some of their 
  mental templates for a live code approach.
  Just to get the ball rolling, here's one of my favorites:
 
 [mostly-incomprehensible ascii art snipped]
 
 Thanks for the tip/reminder that [s~]/[r~]/[throw~]/[catch~] might be 
 useful in a livecoding session - I've always been frustrated by having 
 to connect things together, especially when needing to insert something 
 in the middle of a chain.  Another good practice/hacky workaround 
 for Pd livecoding is inserting extra [*~ 1] all over the place so you 
 can break a stereo chain atomically later on.
 
 Otherwise, I usually prepare some small abstractions for drums ([kick~] 
 [snare~] [clap~] [hihat~] etc), as coding a reasonable sounding drum 
 synth is hard (in fact I think I mostly 'borrowed' from Andy Farnell's 
 stuff).
 
 And some simple effects that are boring to code too, like delay-based 
 [pitchshift~] and audio-rate [compress~] (my own invention that sounds 
 too extreme, but stops everything clipping and I don't have to worry 
 about levels so much).
 
 One of my tricks when live coding (and more generally) is using 
 arithmetic on beat counts, like [*] [+] [div] [mod] in various 
 combinations.  Then using the resulting numbers as frequency multipliers 
 (for harmonic series/scales).  For a (composed) EP that uses this 
 technique, see:
 
 http://www.archive.org/details/ClaudiusMaximus_-_Clouds_Are_Made_Of_Water
 
 in particular

Re: [PD] Any Live Coders?

2010-09-12 Thread Pagano, Patrick
I would love to mash up some ideas with you Andrew.
I would like to use what you are suggesting for freeframe or frei0r paramters

i will find the patch

linux/osx/win??

pp

From: pd-list-boun...@iem.at [pd-list-boun...@iem.at] On Behalf Of Andrew 
Faraday [jbtur...@hotmail.com]
Sent: Sunday, September 12, 2010 6:35 PM
To: pd-list@iem.at
Subject: [PD] Any Live Coders?

Hey All

I've been interested in the possibility of live coding with pure data, indeed, 
in the guise of running Pd workshops. I've taken the live coding style, 
instant, step-by-step on and tend to throw Pd systems together spontaneously in 
my spare time. Either way, I was wondering if anyone feels like sharing some of 
their mental templates for a live code approach.



Just to get the ball rolling, here's one of my favorites:


[bpm]  (right outlet)
   |
   [phasor~]
   |
   [s~ something]

(a few of these, multiplying and dividing the measure frequency, sends with 
names like 1bar, 4bar, halfbar etc)

[r~ something]
 |
[expr~ $v1  xx] (between 0 and 1)
and
[expr~ $v1  xx] (same)

and multiply the two expression outlets together with [*~]

Mutiply the result of that by an audio signal, usually an oscillator. and out 
to a [dac~]

Then multiple copies of this with different values in the expression and 
oscillators.


Can then be edited by random or sequential variations on the pitch of the 
oscillators, changing the figures in the expr~ figures.
I'm quite fond of the possibility of changing the receive id's thus keeping a 
sequence intact but doubling or halfing the speed of certain sequences within 
it. Also the speed can be varied (which then effects the speed of the whole 
patch).

Also, slightly out of the way, you could use the phasor outlets directly 
control oscillator pitches, volumes, or filter frequencies.

This template does tend to work out differently each time I use it, also.

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list