Re: [PD] ISO works combining PD and sculpture

2020-10-29 Thread Chris Chronopoulos
here are 3 I did:

Triangulation 
Methuselah's Muse 
Strange Attractor 

On Wed, Oct 28, 2020 at 10:18 PM Julian Brooks  wrote:

> Hello,
>
> As well as the treasure trove of pieces above...
> Some good stuff here:
> https://vimeo.com/search?q=cyrille+henry
>
>
>
> On Wed, 28 Oct 2020 at 21:31, Thomas Grill  wrote:
>
>> Hi,
>> all of our installations are Pd-based, some are sculptural:
>> https://rottingsounds.org/threads/auditorium/
>> best, Thomas
>>
>> > Am 26.10.2020 um 20:54 schrieb bbob :
>> >
>> > for my students, I'm looking for examples of work that combines PD and
>> sculpture (or installations)... i've got a few of the obvious
>> pd-sequencer-triggering-drum-solenoids to show them, what else?  links to
>> artist sites &/or videos appreciated.
>> > ___
>> > Pd-list@lists.iem.at mailing list
>> > UNSUBSCRIBE and account-management ->
>> https://lists.puredata.info/listinfo/pd-list
>>
>> --
>> Thomas Grill
>> http://g.org
>>
>>
>> ___
>> Pd-list@lists.iem.at mailing list
>> UNSUBSCRIBE and account-management ->
>> https://lists.puredata.info/listinfo/pd-list
>>
> ___
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
>
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] [PD-announce] Save the Date: Linux Audio Conference 2018

2018-03-01 Thread Chris Chronopoulos
does anyone know where i could find the proceedings from previous LAC's?

On Fri, Dec 22, 2017 at 2:33 PM, Henrik von Coler 
wrote:

> [Apologies for cross-postings] [Please distribute]
>
>
> *Save the date: Linux Audio Conference 2018*
>
> The 2018 Linux Audio Conference will take place at
>
> *c-base, Berlin*
> *7th -11th June 2018*
>
>
> The LAC 2018 will feature a full program of talks, workshops and music.
> The official call for papers and works will be sent shortly after the
> winter break -
> so use the quiet of the holidays to think about possible submissions.
>
> All relevant information will be made available on:
> http://lac.linuxaudio.org/2018/
>
>
>
> All the best,
>
> the LAC 2018 Organizing Team
>
>
>
>
> --
> Henrik von Coler
> Elektronisches Studio, Fachgebiet Audiokommunikation
> Electronic Music Studio, Audio Communication Group
>
> Technische Universität Berlin
> Fakultät I Geistes- und Bildungswissenschaften
> Institut für Sprache und Kommunikation
>
> Faculty I Humanities
> Institute of Speech and Communication
>
> Einsteinufer 17c, Sekr. EN 8, 10587 Berlin
> Germany
> Tel: +49 (0)30 314 22327 <+49%2030%2031422327>
> Fax: +49 (0)30 314 21143 <+49%2030%2031421143>vonco...@tu-berlin.de
> www.ak.tu-berlin.de
>
>
> ___
> Pd-announce mailing list
> pd-annou...@lists.iem.at
> https://lists.puredata.info/listinfo/pd-announce
>
> ___
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/
> listinfo/pd-list
>
>
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] MCP3208 external for Raspberry Pi

2017-10-05 Thread Chris Chronopoulos
awesome!

On Sun, Oct 1, 2017 at 3:11 PM, Malte Steiner  wrote:

> for upcoming concerts we needed analog inputs in Pure Data on a Raspberry
> Pi with the MCP3208 converter IC so I created an external for PD to handle
> the data in addition to the already existing MCP3008 one:
> https://github.com/HerrSteiner/wiringPD
>
> schematic and more tips around Raspberry Pi can be found on
> http://www.block4.com/index.php?id=167
>
> --
> Malte Steiner
> media artist | electronic musician
> http://www.block4.com
>
> E-mail:mktstei...@gmail.com
> phone: +49 (0) 1775522275 <+49%20177%205522275>
>
> ___
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/
> listinfo/pd-list
>
>
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] "sorry: only 5 args typechecked; use A_GIMME"

2017-02-13 Thread Chris Chronopoulos
oh, i see. i thought the argument after A_DEFFLOAT was the default value of
the float. so it's a 0-termination - got it!

On Mon, Feb 13, 2017 at 4:03 AM, IOhannes m zmoelnig 
wrote:

> On 2017-02-12 22:23, Chris Chronopoulos wrote:
> > registered with class_new(..., A_DEFFLOAT) be sufficient for this simple
> > case? this worked for me on 0.43.4; why doesn't it work in 0.47?
> >
>
> oh.
>
> of course Pd can do *that* for you.
> the problem here is, that your code is just bogus:
> class_new() expects a variable number of arguments.
> but in C there is no way to determine the actual number of arguments
> passed to the function.
> So you need to somehow tell the called function when it should stop to
> expect more arguments.
>
> this can either be done by putting that number into one of the
> function-arguments. an example is the `dsp_add()` function. e.g.:
>
> dsp_add(clip_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
>
> the second argument (4) tells the dsp_add() function that there are 4
> more arguments to come.
>
> alternatively (if the data permits it), you can use a special
> "terminating") element with a magic value (usually this is just NULL);
> the function would then read it's arguments one by one until in
> encounters that special argument, after which it would stop.
> this is the case with the class_new() function. e.g.:
>
> clip_class = class_new(gensym("clip~"), (t_newmethod)clip_new, 0,
> sizeof(t_clip), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
>
> the varidiac part is "A_DEFFLOAT, A_DEFFLOAT" and it *must* be
> 0-terminated. so class_new() knows that there are only two (2) more
> valid arguments.
>
> it seems that with your call to class_new(), you were just "lucky" and
> the compiler you used back then with Pd-extended happened to insert a
> NULL value after your A_DEFFLOAT.
> so your statement "this worked for me on 0.43" should actually read:
> "this accidentally happened to work for *me* at some point".
>
> but really you were relying on undefined behaviour, and should just fix
> the original code.
>
> fgamsdr
> IOhannes
>
>
> ___
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/
> listinfo/pd-list
>
>
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] "sorry: only 5 args typechecked; use A_GIMME"

2017-02-12 Thread Chris Chronopoulos
thanks IOhannes, that's very helpful. by changing the callback signature to:

euclid_new(t_symbol *s, int argc, t_atom *argv)

i was able to get it working with A_GIMME. but one thing still bothers me:
this is the constructor for the class, and i really only want to support
instantiation with a single (float) creation argument. why should i have to
jump through the hoops of A_GIMME? shouldn't the following signature:

euclid_new(t_floatarg f)

registered with class_new(..., A_DEFFLOAT) be sufficient for this simple
case? this worked for me on 0.43.4; why doesn't it work in 0.47?

thanks again,

_chris

On Mon, Feb 6, 2017 at 3:57 AM, IOhannes m zmoelnig  wrote:

> On 2017-02-06 07:42, Chris Chronopoulos wrote:
> > Code is attached. Any suggestions? What's this typechecking/A_GIMME
>
> Pd has special, "optimized" functions to check the types of arguments.
>
> basically, if you have a callback function (and from a pure "C"
> perspective, the class-methods of an objects are callback functions),
> you must correctly call that function.
> that is: if the callback function expects a symbols and then a float
> ("void foo_mess(t_myobject*x, t_symbol*s, t_float f)"), you must
> actually call it with a symbol and then a float ("foo_mess(x, s2,
> 2.3)"), to ensure that the compiler will put the correct bits at the
> right positions.
>
> now in Pd, an external can wish for "any" function signature of the
> callback it wishes for, but it is the task of Pd (core) to actually call
> that callback function correctly.
> since "any" signature is pretty broad and it is tedious to write special
> callback callers for all the possibilities, it offers a (slightly less
> convenient) generic solution for "non-standard" callbacks: pass a list
> of atoms (aka A_GIMME)
> messages with more that 5 atoms are "non-standard", and therefore you
> must use A_GIMME.
>
> the function signature of an A_GIMME is:
>   int argc, t_atom*argv
> you then can iterate over the  atoms in the  array, and use
> them whoever you please (mainly: check that each element is of correct
> type, and use atom_getfloat() resp atom_getsymbol() to acccess the values).
>
> i suspect (without having looked at your code), that you were simply
> changing the type to A_GIMME when registering the callback (in the
> class_addmothod() function), but then didn't bother to change the
> function signature of the actual callback function.
>
> so if your callback signature is:
>  void foo_mess(t_myobject*x, t_symbol*s, t_float f);
> and you register it with
>  class_addmethod(x, (t_method)foo_mess, gensym("foo"), A_GIMME, 0);
>
> then the system will end up calling foo_mess with the following arguments:
> - the first 4 bytes are the address to the object (good)
> - the next 4 bytes are an int value (bad because you are expecting the 4
> bytes to be the address of a symbol)
> - the next 4 bytes being the address of some t_atom-array (bad, because
> you are expecting it to be 4 bytes of an ieee758 floating point number)
> (for the sake of simplicity the above example assumes a 32bit system)
>
> if you then happen to dereference so-acquired symbol, it will hopefully
> go kaboong (hopefully insofar as it will go kaboong without launching
> the missilies first)
>
>
> mfgasdr
> IOhannes
>
>
> ___
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/
> listinfo/pd-list
>
>
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] "sorry: only 5 args typechecked; use A_GIMME"

2017-02-05 Thread Chris Chronopoulos
Hi list,

Some time ago I wrote an external for generating euclidean rhythms. It
worked in pd-extended (0.43.4), which I was using at the time. Now I've
moved over to vanilla 0.47.1, and when I try to instantiate it, I get the
following error:

class euclid: sorry: only 5 args typechecked; use A_GIMME
objectmaker_euclid: only 5 arguments are typecheckable; use A_GIMME
Bad arguments for message 'euclid' to object 'objectmaker'

So I tried what it suggests, with A_GIMME, 0, and now I can instantiate it,
but it doesn't work. As soon as I feed it a bang, Pd crashes with terminal
output "Floating point exception".

Code is attached. Any suggestions? What's this typechecking/A_GIMME
business about anyway?

_chris
#include "m_pd.h"  
#include 
#include 
 
void euclid(char* head, int nhead, char* tail, int ntail, char* outstr)
{

if ((ntail <= 1) || (nhead==0)) {  // flatten and return

strcpy(outstr, "\0"); // clear out string

int i;
for (i=0; icounter; // tmp var to avoid reentrance
t_int i = (x->rotation + cnt) % x->nsteps;
if (x->data[x->density][i]=='1') outlet_bang(x->x_obj.ob_outlet);
if (++x->counter == x->nsteps) x->counter=0;
}

void* euclid_new(t_floatarg f)  
{  
t_euclid* x = (t_euclid*) pd_new(euclid_class);

// initialize data space
x->nsteps = f;
x->counter = 0;
x->density = 0;
x->rotation = 0;

// allocate the main data structure (beat grid)
x->data = (char**) malloc((x->nsteps+1)*sizeof(char*));
int i;
for (i=0; i < x->nsteps+1; i++) {
x->data[i] = (char*) malloc(x->nsteps+1*sizeof(char));
}

// populate beat grid
for (i=0; i <= x->nsteps; i++) {
euclid("1", i, "0", x->nsteps-i, x->data[i]);
}

// inlets
x->x_in2 = inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("density"));
x->x_in3 = inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("rotation"));

// outlets 
x->x_out = outlet_new(&x->x_obj, &s_bang);
 
return (void *)x;  
}

void euclid_free(t_euclid* x)
{
int i;
for (i=0; i < x->nsteps+1; i++) {
free(x->data[i]);
}
free(x->data);

inlet_free(x->x_in2);
inlet_free(x->x_in3);
outlet_free(x->x_out);
} 
 
void euclid_density(t_euclid *x, t_float f)
{
x->density = f;
if (f < 0) x->density = 0;
if (f > x->nsteps) x->density = x->nsteps;
} 

void euclid_rotation(t_euclid *x, t_float f)
{
x->rotation = f;
if (f < 0) x->rotation = 0;
if (f > x->nsteps) x->rotation = x->nsteps;
} 

void euclid_setup(void) {  

euclid_class = class_new(gensym("euclid"),  
(t_newmethod)euclid_new, (t_method)euclid_free,
sizeof(t_euclid), CLASS_DEFAULT,
A_DEFFLOAT, 16);  
//A_GIMME, 0);  

class_addbang(euclid_class, euclid_bang);  

class_addmethod(euclid_class, (t_method)euclid_density,
gensym("density"), A_DEFFLOAT, 0);

class_addmethod(euclid_class, (t_method)euclid_rotation,
gensym("rotation"), A_DEFFLOAT, 0);
}
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] Pd changelog?

2016-12-27 Thread Chris Chronopoulos
Perfect, thanks!

On Tue, Dec 27, 2016 at 6:01 PM, Christof Ressi 
wrote:

> It's in chapter 5.1 of the Pd HTML documentation: http://msp.ucsd.edu/Pd_
> documentation/x5.htm#s1
>
> Christof
>
>
>
> Gesendet: Dienstag, 27. Dezember 2016 um 23:31 Uhr
> Von: "Chris Chronopoulos" 
> An: Pd-List 
> Betreff: [PD] Pd changelog?
>
> Hi list,
>
> Is there anywhere I can find a changelog for the main Pd (vanilla)
> releases[http://msp.ucsd.edu/Software/]? I'm curious what changes have
> been made in recent versions.
>
> Thanks!
>
> _chris___ Pd-list@lists.iem.at
> mailing list UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list[https://
> lists.puredata.info/listinfo/pd-list]
>
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


[PD] Pd changelog?

2016-12-27 Thread Chris Chronopoulos
Hi list,

Is there anywhere I can find a changelog for the main Pd (vanilla) releases
? I'm curious what changes have been made in
recent versions.

Thanks!

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


Re: [PD] Granular Synthesis for Pd Eurorack Module

2015-05-18 Thread Chris Chronopoulos
How are you invoking the PD command? If you're using an external sound
card, you need to specify which one with the -audiodev flag. If it's a USB
interface, then it's probably -audiodev 3 you want, in my experience.

_chris
On May 18, 2015 1:51 PM, "Pagano, Patrick" 
wrote:

>  I am having one annoying issue.
>
> when i run the code i have with a gui the sound works but when i try to
> run pd -nogui i do not get any sound
>
> with the GUI it polls from the arduino and it makes sound i can adjustthe
> potentiometers and it sounds okay because the CPU is pegging at 97-100%
>
> when i run it with no gui it is listing at about 27%
>
> i cannot figure it out
>
>
>  has anyone had this problem before? surely there has got to be someone
> who has run into this?
>
> pd-043.2 on rpi 512 with ardunio Uno
>
> creative sound blaster Xfi GO! Pro USB sound card
>
>
>  HELP!!!
>
>
>
>
>   *Patrick Pagano B.S, M.F.A*
> Audio and Projection Design Faculty
> Digital Worlds Institute
> University of Florida, USA
> (352)294-2020
>   --
> *From:* Chris Clepper 
> *Sent:* Monday, May 18, 2015 11:57 AM
> *To:* Pagano, Patrick
> *Cc:* IOhannes m zmoelnig; pd-l...@mail.iem.at
> *Subject:* Re: [PD] Granular Synthesis for Pd Eurorack Module
>
>  For messing around the UDOO is fine, but totally unsuitable for
> incorporating in a manufactured audio product.  The Pd part is easy, the
> hardware is incredibly difficult.
>
> I actually design Eurorack modules with Tiptop Audio as my day job, and
> can tell you that making a module using an advanced ARM chip is no easy
> task.  The Nebulae is a quick, dirty hack and it has many issues.  Design
> from the ground up around an A9 or similar chip requires very advanced
> tools (we pay a huge annual sum for high end layout software) and about 10
> years of mixed signal PCB design experience.  Keeping the audio clean would
> take multiple revisions of a 10-12 layer board and you would need to make a
> Eurorack power supply that can handle the current of the digital parts.
>
>  It would take well into 6 figures to get a fully functional production
> ready prototype.
>
> On Mon, May 18, 2015 at 11:42 AM, Pagano, Patrick <
> p...@digitalworlds.ufl.edu> wrote:
>
>>  Looks great Chris, only thing that is weird is that it's a mic input
>> not a line in that i get with the creative card currently. Everything else
>> looks fancy. Would you like my address to send it? :-)
>>
>>
>>  I am going to take the idea to our Innovation Hub at University of
>> Florida and pitch the idea for the module, if it goes they might give me
>> some seed funding --then i can explore some different cards/boards. A
>> friend is lending his BeagleBone Black. Seriously if you want to throw in
>> with  us i'll give you p0ints later :-)
>>
>>
>>  conspiring for a pd Module,
>>
>>
>>   *Patrick Pagano B.S, M.F.A*
>> Audio and Projection Design Faculty
>> Digital Worlds Institute
>> University of Florida, USA
>> (352)294-2020
>>   --
>> *From:* Chris Clepper 
>> *Sent:* Monday, May 18, 2015 11:15 AM
>> *To:* Pagano, Patrick
>> *Cc:* IOhannes m zmoelnig; pd-l...@mail.iem.at
>> *Subject:* Re: [PD] Granular Synthesis for Pd Eurorack Module
>>
>>Have you seen the UDOO board that have multi-core A9 CPUs, analog
>> audio I/O and an arduino compatible microcontroller already?
>>
>> http://shop.udoo.org/usa/product/udoo-dual.html
>>
>>
>>
>> On Mon, May 18, 2015 at 11:00 AM, Pagano, Patrick <
>> p...@digitalworlds.ufl.edu> wrote:
>>
>>> Thank You all for your help so far
>>> I have looked at Granola~, granita, my-grainer, dsis_munger and granny a
>>> port of Sakonda's famous Grain2.0 patch by bill orcutt, all of which failed
>>> because of the problem with compilation that Iohannes who is always so
>>> helpful mentions.
>>>
>>> I have chosen to go with Martin's fabulous grainsamplerfx patch and
>>> modify it.
>>> I have also found that ProcesoV8 and Johann's Monolog-x are wonderful
>>> candidates for a true pure data module.
>>>
>>> I contacted Qu-bit Electronix with hopes of a complimentary board for my
>>> research but they are not in a position to help me. They make a wonderful
>>> product called Nebulae for Eurorack but it's just too expensive for my
>>> professor salary right now. I even asked if they had scratch and dent
>>> versions that they might let go of to no avail. It apparently takes pure
>>> data AND Csound code but it seems a little more bent towards Csound, but
>>> again this is just a quick observation.
>>>
>>> I have successfully connected an arduino uno to 6 potentiometers and
>>> poll them with Hans' Arduino2pd patch
>>> I am using a 1in/1out Creative Blaster go USB soundcard and Rpi see it
>>> and loads ALSA for it
>>>
>>> I am experimenting now with getting the tty to be the same when i run
>>> RPI without Xwindows, i have created a few lines in the inittab to
>>> hopefully select that port each time but it's not working correctly. when i
>>> boot into X i

[PD] high channel count audio output on the cheap?

2015-02-12 Thread Chris Chronopoulos
Hi all,

I've been looking for an inexpensive way to start playing around with the HOA
library <http://www.mshparisnord.fr/hoalibrary/en/> from within puredata.
But I've had trouble finding an audio interface with lots of analog outputs
(16 or more) that doesn't break the bank. The most promising candidate I've
found is maybe the Focusrite 18i20
<http://www.sweetwater.com/store/detail/Scarlett18i20>, but even that seems
like overkill: I don't need inputs, or pre-amps, or MIDI or ADAT, just
output. Anyone have any suggestions for a bare-bones, high-channel count
DAC? Preferably with USB or PCI interface, preferably Linux compatible?

Thanks in advance,

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