[PD] [PD-announce] jl lib

Christof Ressi christof.ressi at gmx.at
Thu Nov 8 17:54:37 CET 2018


in your case, casting definitly won't work in 64 bit Pd because a t_word is 64bit (the largest union member is a pointer) while a float is only 32 bit, so every other float would be garbage.

you *could* introduce an optional stride value in bytes to your API by which you advance the pointers. but I would start with simply copying the array data and profile.


> Gesendet: Donnerstag, 08. November 2018 um 16:50 Uhr
> Von: "Joseph Larralde" <joseph.larralde at gmail.com>
> An: "Christof Ressi" <christof.ressi at gmx.at>, Pd-List <pd-list at lists.iem.at>
> Betreff: Re: [PD] [PD-announce] jl lib
>
> Hmmm, that's what I was fearing.
> In my c++ lib I read the buffers/tables contents passing them as 
> pointers to floats/doubles.
> I'm not sure I can do this anymore with t_words, without either copying 
> the whole buffer to provide a simple pointer to it,
> or modifying the c++ API in some other way, using getters ore some other 
> trick.
> 
> Le 08/11/18 à 15:12, Christof Ressi a écrit :
> >> If one can just cast a t_word into a float or a double, things should go smoothly.
> > the proper way is to access the union member of t_word, e.g.:
> >
> > myarray[0].w_float;
> >   
> >   
> >
> > Gesendet: Donnerstag, 08. November 2018 um 14:40 Uhr
> > Von: "Lucas Cordiviola" <lucarda27 at hotmail.com>
> > An: "Joseph Larralde" <joseph.larralde at gmail.com>, "pd-list at lists.iem.at" <pd-list at lists.iem.at>
> > Betreff: Re: [PD] [PD-announce] jl lib
> >
> >   
> >   
> >
> > On 11/8/2018 10:00 AM, Joseph Larralde wrote:Hi Lucas,
> >
> > Thanks a lot for the hints !
> >
> > I'm curious to know how you compiled the win64 version.
> > >From what I remember, I installed msys2 and could only compile using the 32 bit version.
> > pd-lib-builder is ready to use 32 and 64 bit Pds if they are in the default location:
> >
> > 32bit: C:\Program Files (x86)\pd
> > 64bit: C:\Program Files\pd
> > If you like you can specify any other dir when calling make:
> > make PDDIR=your/path/to/pd
> >
> > On Msys2 you have to install the 64bit compiler (you probably did) :
> > pacman -S mingw64/mingw-w64-x86_64-gcc
> >   Later I added the [tonnetz] object to the library and had to add the "cflags = -std=c++11" line in the makefile
> > in order for it to compile (because of some c++ vector initializers I introduced in my underlying c++ lib).
> > Then I didn't push my investigations forward because ATM I was happy enough with the windows 32 bit version
> > and had a working fat external for mac.Just curious:
> > you don't get the "failed since it uses garray_getfloatarray while running 64-bit!" on OSX 64bit Pd?
> >   
> > That's good to know that I just need to add a "+" to the makefile to get the lib to compile for windows 64 bit,
> > and, apparently, to get all objects to work except gbend~ (if I understood correctly what you implied).
> > I opened "jl-objects.pd" and all objects get created, then i started testing at random and when I opened "gbend~" help I spotted the error in the console.
> >   
> > I'll try the changes that you suggested.
> > I hope I won't have to rewrite a part of my underlying lib's API.
> > If one can just cast a t_word into a float or a double, things should go smoothly.
> > I wish I could help you more but C code is not for me yet.
> >   
> > Cheers,
> > Joseph
> >    
> > Mensaje telepatico asistido por maquinas.
> > _______________________________________________ Pd-list at lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
> >
> 
>





More information about the Pd-list mailing list