<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>The problem is actually in the code:</div>
<div> </div>
<div>(SAMPLETYPE *)(((ulong)tempUnaligned + 15) & (ulong)-16);</div>
<div> </div>
<div>
<div>This line probably tries to align memory on the stack to 16 bytes boundaries for SSE code. The problem is that "ulong" is a typedef for "unsigned long". The code assumes that "long" always has the size of a pointer (4 bytes on 32 bit and 8 bytes on 64 bit), but on Windows it is always 4 bytes, so on 64 bit you get a size mismatch.</div>
<div> </div>
<div>A quick and dirty fix: find the relevant "#define" or "typedef" for "ulong" and set it to "unsigned long long" for 64 bit Windows:</div>
<div> </div>
<div>#ifdef _WIN64</div>
<div>#define ulong unsigned long long</div>
<div>#else</div>
<div>#define ulong unsigned long</div>
<div>#endif</div>
<div> </div>
<div>Please make a bug report to the upstream author.</div>
<div> </div>
<div>Christof</div>
<div style="margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style="margin: 0 0 10.0px 0;"><b>Gesendet:</b> Mittwoch, 30. Oktober 2019 um 00:46 Uhr<br/>
<b>Von:</b> "pat pagano" <shreeswifty@gmail.com><br/>
<b>An:</b> pd-list@iem.at<br/>
<b>Betreff:</b> Re: [PD] soundtouch~, slicerec/sliceplay for 64 bit windows?</div>
<div>
<div>
<div>
<div class="gmail_default" style="font-family: garamond , serif;"> </div>
<div class="gmail_default" style="font-family: garamond , serif;">I know that i am flailing with windows makefiles but i was hopeful that from trying to compile such an essential external for a few patches i've written with it I would learn compiling externals more clearly for pd and of course windows</div>
<div class="gmail_default" style="font-family: garamond , serif;"> </div>
<div class="gmail_default" style="font-family: garamond , serif;">here's what i get:</div>
<div class="gmail_default" style="font-family: garamond , serif;"> </div>
<div class="gmail_default" style="font-family: garamond , serif;">g++ -m64 -msse -DNT -DPD_LONGINTTYPE=__int64 -DMSW -Wall -Wextra -Wshadow -Wint-to-pointer-cast -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -march=core2 -msse -msse2 -msse3 -mfpmath=sse -I ./include -c *.cpp<br/>
FIFOSampleBuffer.cpp: In member function 'void soundtouch::FIFOSampleBuffer::ensureCapacity(uint)':<br/>
FIFOSampleBuffer.cpp:181:39: error: cast from 'soundtouch::SAMPLETYPE*' {aka 'float*'} to 'ulong' {aka 'long unsigned int'} loses precision [-fpermissive]<br/>
temp = (SAMPLETYPE *)(((ulong)tempUnaligned + 15) & (ulong)-16);<br/>
^~~~~~~~~~~~~<br/>
FIFOSampleBuffer.cpp:181:71: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
temp = (SAMPLETYPE *)(((ulong)tempUnaligned + 15) & (ulong)-16);<br/>
^<br/>
FIRFilter.cpp: In static member function 'static void* soundtouch::FIRFilter::operator new(size_t)':<br/>
FIRFilter.cpp:222:39: warning: unused parameter 's' [-Wunused-parameter]<br/>
void * FIRFilter::operator new(size_t s)<br/>
~~~~~~~^<br/>
RateTransposer.cpp: In static member function 'static void* soundtouch::RateTransposer::operator new(size_t)':<br/>
RateTransposer.cpp:109:44: warning: unused parameter 's' [-Wunused-parameter]<br/>
void * RateTransposer::operator new(size_t s)<br/>
~~~~~~~^<br/>
soundtouch~.cpp: In function 't_int* soundtouch_perform(t_int*)':<br/>
soundtouch~.cpp:91:39: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_soundtouch *x = (t_soundtouch *)w[1]; // pointer to object (struct instance)<br/>
^<br/>
soundtouch~.cpp:92:43: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_sample *signalvectorIn = (t_sample*)w[2]; // pointer to input signal vector<br/>
^<br/>
soundtouch~.cpp:93:44: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_sample *signalvectorOut = (t_sample*)w[3]; // pointer to output signal vector<br/>
^<br/>
soundtouch~.cpp: In function 't_int* soundtouch_perform2(t_int*)':<br/>
soundtouch~.cpp:115:39: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_soundtouch *x = (t_soundtouch *)w[1]; // pointer to object (struct instance)<br/>
^<br/>
soundtouch~.cpp:116:47: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_sample *signalvectorInLeft = (t_sample*)w[2]; // pointer to input signal vector<br/>
^<br/>
soundtouch~.cpp:117:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_sample *signalvectorInRight = (t_sample*)w[3]; // pointer to input signal vector<br/>
^<br/>
soundtouch~.cpp:118:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_sample *signalvectorOutLeft = (t_sample*)w[4]; // pointer to output signal vector<br/>
^<br/>
soundtouch~.cpp:119:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
t_sample *signalvectorOutRight = (t_sample*)w[5]; // pointer to output signal vector<br/>
^<br/>
soundtouch~.cpp: In function 'void soundtouch_tilde_setup()':<br/>
soundtouch~.cpp:312:67: warning: cast between incompatible function types from 'void* (*)(t_floatarg, t_floatarg)' {aka 'void* (*)(float, float)'} to 't_newmethod' {aka 'void* (*)()'} [-Wcast-function-type]<br/>
soundtouch_class = class_new(gensym("soundtouch~"), (t_newmethod)soundtouch_new,<br/>
^~~~~~~~~~~~~~<br/>
sse_optimized.cpp: In member function 'virtual double soundtouch::TDStretchSSE::calcCrossCorrStereo(const float*, const float*) const':<br/>
sse_optimized.cpp:96:17: error: cast from 'const float*' to 'ulong' {aka 'long unsigned int'} loses precision [-fpermissive]<br/>
if (((ulong)pV1) & 15) return -1e50; // skip unaligned locations<br/>
^~~<br/>
sse_optimized.cpp: In member function 'virtual void soundtouch::FIRFilterSSE::setCoefficients(const float*, uint, uint)':<br/>
sse_optimized.cpp:288:51: error: cast from 'float*' to 'long unsigned int' loses precision [-fpermissive]<br/>
filterCoeffsAlign = (float *)(((unsigned long)filterCoeffsUnalign + 15) & (ulong)-16);<br/>
^~~~~~~~~~~~~~~~~~~<br/>
sse_optimized.cpp:288:89: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
filterCoeffsAlign = (float *)(((unsigned long)filterCoeffsUnalign + 15) & (ulong)-16);<br/>
^<br/>
In file included from ./include/FIFOSamplePipe.h:51,<br/>
from RateTransposer.h:50,<br/>
from TDStretch.h:49,<br/>
from sse_optimized.cpp:69:<br/>
sse_optimized.cpp: In member function 'virtual uint soundtouch::FIRFilterSSE::evaluateFilterStereo(float*, const float*, uint) const':<br/>
sse_optimized.cpp:316:20: error: cast from 'float*' to 'ulong' {aka 'long unsigned int'} loses precision [-fpermissive]<br/>
assert(((ulong)filterCoeffsAlign) % 16 == 0);<br/>
^~~~~~~~~~~~~~~~~<br/>
TDStretch.cpp: In member function 'void soundtouch::TDStretch::acceptNewOverlapLength(int)':<br/>
TDStretch.cpp:724:49: error: cast from 'soundtouch::SAMPLETYPE*' {aka 'float*'} to 'ulong' {aka 'long unsigned int'} loses precision [-fpermissive]<br/>
pRefMidBuffer = (SAMPLETYPE *)((((ulong)pRefMidBufferUnaligned) + 15) & (ulong)-16);<br/>
^~~~~~~~~~~~~~~~~~~~~~<br/>
TDStretch.cpp:724:91: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br/>
pRefMidBuffer = (SAMPLETYPE *)((((ulong)pRefMidBufferUnaligned) + 15) & (ulong)-16);<br/>
^<br/>
TDStretch.cpp: In static member function 'static void* soundtouch::TDStretch::operator new(size_t)':<br/>
TDStretch.cpp:731:39: warning: unused parameter 's' [-Wunused-parameter]<br/>
void * TDStretch::operator new(size_t s)<br/>
~~~~~~~^</div>
</div>
<div class="gmail_quote">
<div class="gmail_attr">On Tue, Oct 29, 2019 at 1:51 AM IOhannes m zmölnig <<a href="mailto:zmoelnig@iem.at" onclick="parent.window.location.href='mailto:zmoelnig@iem.at'; return false;" target="_blank">zmoelnig@iem.at</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0.0px 0.0px 0.0px 0.8ex;border-left: 1.0px solid rgb(204,204,204);padding-left: 1.0ex;">On 10/29/19 5:49 AM, pat pagano wrote:<br/>
> I tired compiling them myself but i keep getting errors so i thought i<br/>
<br/>
it seems you have forgotten to attach the errors you get.<br/>
<br/>
gfamrds<br/>
IOhannes<br/>
<br/>
_______________________________________________<br/>
<a href="mailto:Pd-list@lists.iem.at" onclick="parent.window.location.href='mailto:Pd-list@lists.iem.at'; return false;" target="_blank">Pd-list@lists.iem.at</a> mailing list<br/>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" target="_blank">https://lists.puredata.info/listinfo/pd-list</a></blockquote>
</div>
<div> </div>
--
<div class="gmail_signature">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div><i><font size="4">Patrick Pagano B.S, M.F.A</font></i></div>
<div><i>Assistant Professor, </i>Interactive Media & Education
<div>
<div>Audio Projection & Performance Design </div>
</div>
<div>Howard Community College</div>
<div><i>Columbia, Maryland USA</i></div>
<div><i><a href="http://shreeswifty.github.io" target="_blank">http://shreeswifty.github.io</a></i></div>
<div><i>(352)226-2016</i></div>
<div> </div>
<div> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" target="_blank">https://lists.puredata.info/listinfo/pd-list</a></div>
</div>
</div>
</div></div></body></html>