Dear dev-list,
I believe this is my first post to this list so excuse my ignorance if any of this looks obvious to you!
We have recently moved to C++11 for compilation of several of our Pd objects. And since, we have weird behaviour problems and we suspect it’s due to under-the-hood optimisations… .
Has anybody had any experience with this?!
My second question would be on double-precision audio externals.. I see discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
Cheers,
Arshia Cont
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr wrote:
[...]
My second question would be on double-precision audio externals.. I see discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja katjavetter@gmail.com wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr wrote:
[...]
My second question would be on double-precision audio externals.. I see discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Hi Arshia, which compiler is it exactly that you use? Can you copy the options? best, Thomas
2015-06-02 14:35 GMT+02:00 Arshia Cont Arshia.Cont@ircam.fr:
Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja katjavetter@gmail.com wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr
wrote:
[...]
My second question would be on double-precision audio externals.. I see
discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
Thomas,
My clang version is Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) Target: x86_64-apple-darwin14.3.0 Thread model: posix
Before I give you the compilation flags, here is what it comes down to.. basically, the following code gives indeterministic behaviour due to memory misalignment when the atom pointer is passed to :
t_atom *boundmsg; // etc. boundmsg->a_type = A_SYMBOL;boundmsg->a_w.w_symbol = ss;
assert(boundmsg->a_w.w_symbol->s_name == atom_getsymbol(boundmsg)->s_name); // imagine that my assert works on char*! simplifying here
Here is an example of the compilation, following Katja’s blog on soundtouch~. I am using i386 on purpose here for testing.You can ignore capital letter flags that come from us:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch i386 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++1y -stdlib=libc++ -Wno-trigraphs -fshort-enums -Os -Wno-missing-field-initializers -Wmissing-prototypes -Wno-return-type -Wunreachable-code -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wmissing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wempty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wassign-enum -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DNDEBUG=1 -DDEPLOYMENT_VERSION=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.7 -g -fvisibility-inlines-hidden -Wno-sign-conversion -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/antescofo~.hmap -I/Users/acont/Devs/MyFlextProjects/antescofo/build/Deployment/include -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/DerivedSources/i386 -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/DerivedSources -Wmost -Wno-unknown-pragmas -Wno-four-char-constants -F/Users/acont/Devs/MyFlextProjects/antescofo/build/Deployment -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks -DNDEBUG=1 -DARCHI_MAC_OS=4 -DARCHI_LINUX=5 -DARCHI_WINDOWS=6 -DANTESCOFO_ARCHI=ARCHI_MAC_OS -DTARGET_PD=2 -DTARGET_STANDALONE_FILE=3 -DTARGET_MAXSDK=4 -DTARGET_ASCOGRAPH=7 -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/oscpack_1_1_0_RC2/ip -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/oscpack_1_1_0_RC2/osc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -DANTESCOFO_TARGET=TARGET_PD -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/pd-0.46-6/src -fvisibility=hidden -fcheck-new -MMD -MT dependencies -MF /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.d --serialize-diagnostics /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.dia -c /Users/acont/Devs/MyFlextProjects/antescofo/sources/Antescofo_PdClass.cpp -o /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.o
Arshia Cont
On 02 Jun 2015, at 21:43, Thomas Grill gr@grrrr.org wrote:
Hi Arshia, which compiler is it exactly that you use? Can you copy the options? best, Thomas
2015-06-02 14:35 GMT+02:00 Arshia Cont <Arshia.Cont@ircam.fr mailto:Arshia.Cont@ircam.fr>: Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja <katjavetter@gmail.com mailto:katjavetter@gmail.com> wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont <Arshia.Cont@ircam.fr mailto:Arshia.Cont@ircam.fr> wrote:
[...]
My second question would be on double-precision audio externals.. I see discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at mailto:Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev http://lists.puredata.info/listinfo/pd-dev
-- Thomas Grill http://grrrr.org http://grrrr.org/
Maybe I don't understand well, but your short code example is incorrect :
t_atom *boundmsg;
boundmsg->a_type = A_SYMBOL;boundmsg->a_w.w_symbol = ss;
because you are assigning fields of a not allocated structure : boundmsg here is just the undefined address of a potential storage.
This should work :
t_atom boundmsg; boundmsg.a_type = A_SYMBOL; boundmsg.a_w.w_symbol = ss;
Or :
t_atom *boundmsg = getbytes(sizeof(t_atom)); boundmsg->a_type = A_SYMBOL;boundmsg->a_w.w_symbol = ss;
Hope this helps, sorry if I'm off topic.
2015-06-03 10:00 GMT+02:00 Arshia Cont Arshia.Cont@ircam.fr:
Thomas,
My clang version is Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) Target: x86_64-apple-darwin14.3.0 Thread model: posix
Before I give you the compilation flags, here is what it comes down to.. basically, the following code gives indeterministic behaviour due to memory misalignment when the atom pointer is passed to :
t_atom *boundmsg; // etc. boundmsg->a_type = A_SYMBOL;boundmsg->a_w.w_symbol = ss;
assert(boundmsg->a_w.w_symbol->s_name == atom_getsymbol(boundmsg)->s_name); // imagine that my assert works on char*! simplifying here
Here is an example of the compilation, following Katja’s blog on soundtouch~. I am using i386 on purpose here for testing.You can ignore capital letter flags that come from us:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch i386 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++1y -stdlib=libc++ -Wno-trigraphs -fshort-enums -Os -Wno-missing-field-initializers -Wmissing-prototypes -Wno-return-type -Wunreachable-code -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wmissing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wempty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wassign-enum -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DNDEBUG=1 -DDEPLOYMENT_VERSION=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.7 -g -fvisibility-inlines-hidden -Wno-sign-conversion -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/antescofo~.hmap -I/Users/acont/Devs/MyFlextProjects/antescofo/build/Deployment/include -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/DerivedSources/i386 -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/DerivedSources -Wmost -Wno-unknown-pragmas -Wno-four-char-constants -F/Users/acont/Devs/MyFlextProjects/antescofo/build/Deployment -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks -DNDEBUG=1 -DARCHI_MAC_OS=4 -DARCHI_LINUX=5 -DARCHI_WINDOWS=6 -DANTESCOFO_ARCHI=ARCHI_MAC_OS -DTARGET_PD=2 -DTARGET_STANDALONE_FILE=3 -DTARGET_MAXSDK=4 -DTARGET_ASCOGRAPH=7 -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/oscpack_1_1_0_RC2/ip -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/oscpack_1_1_0_RC2/osc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -DANTESCOFO_TARGET=TARGET_PD -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/pd-0.46-6/src -fvisibility=hidden -fcheck-new -MMD -MT dependencies -MF /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.d --serialize-diagnostics /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.dia -c /Users/acont/Devs/MyFlextProjects/antescofo/sources/Antescofo_PdClass.cpp -o /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.o
Arshia Cont
On 02 Jun 2015, at 21:43, Thomas Grill gr@grrrr.org wrote:
Hi Arshia, which compiler is it exactly that you use? Can you copy the options? best, Thomas
2015-06-02 14:35 GMT+02:00 Arshia Cont Arshia.Cont@ircam.fr:
Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja katjavetter@gmail.com wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr
wrote:
[...]
My second question would be on double-precision audio externals.. I
see discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
-- Thomas Grill http://grrrr.org
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
Antoine,
Ignore details of my short code… the t_atom is actually correctly allocated..
What happens is that when boundmsg is accessed outside this score (using atom_getsymbol) the address of its struct members are NOT the same (we have verified this in different ways).
Miller suggested that “It looks like C++11 has decided that structure elements should all be 64-bit aligned. This would mean that you simply can’t link C++11 and Gnu C code together”
You could check it by printing out the pointers,
boundmsg->a_type boundmsg->a_w.w_symbol
These differ by 4 in Pd - if your compiler wants them to differ by 8, the two aren’t compatible.
I can’t seem to find a compiler flag in clang that globally sets the alignment!!! I can do that locally for each struct but this will make the object non-distributable… .
On 03 Jun 2015, at 10:33, Antoine Rousseau ant1rousseau1@gmail.com wrote:
Maybe I don't understand well, but your short code example is incorrect :
t_atom *boundmsg; boundmsg->a_type = A_SYMBOL;boundmsg->a_w.w_symbol = ss;
because you are assigning fields of a not allocated structure : boundmsg here is just the undefined address of a potential storage.
This should work :
t_atom boundmsg; boundmsg.a_type = A_SYMBOL; boundmsg.a_w.w_symbol = ss;
Or :
t_atom *boundmsg = getbytes(sizeof(t_atom)); boundmsg->a_type = A_SYMBOL;boundmsg->a_w.w_symbol = ss;
Hope this helps, sorry if I'm off topic.
2015-06-03 10:00 GMT+02:00 Arshia Cont <Arshia.Cont@ircam.fr mailto:Arshia.Cont@ircam.fr>: Thomas,
My clang version is Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) Target: x86_64-apple-darwin14.3.0 Thread model: posix
Before I give you the compilation flags, here is what it comes down to.. basically, the following code gives indeterministic behaviour due to memory misalignment when the atom pointer is passed to :
t_atom *boundmsg; // etc. boundmsg->a_type = A_SYMBOL;boundmsg->a_w.w_symbol = ss;
assert(boundmsg->a_w.w_symbol->s_name == atom_getsymbol(boundmsg)->s_name); // imagine that my assert works on char*! simplifying here
Here is an example of the compilation, following Katja’s blog on soundtouch~. I am using i386 on purpose here for testing.You can ignore capital letter flags that come from us:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch i386 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++1y -stdlib=libc++ -Wno-trigraphs -fshort-enums -Os -Wno-missing-field-initializers -Wmissing-prototypes -Wno-return-type -Wunreachable-code -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wmissing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wempty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wassign-enum -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DNDEBUG=1 -DDEPLOYMENT_VERSION=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.7 -g -fvisibility-inlines-hidden -Wno-sign-conversion -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/antescofo~.hmap -I/Users/acont/Devs/MyFlextProjects/antescofo/build/Deployment/include -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/DerivedSources/i386 -I/Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/DerivedSources -Wmost -Wno-unknown-pragmas -Wno-four-char-constants -F/Users/acont/Devs/MyFlextProjects/antescofo/build/Deployment -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks -DNDEBUG=1 -DARCHI_MAC_OS=4 -DARCHI_LINUX=5 -DARCHI_WINDOWS=6 -DANTESCOFO_ARCHI=ARCHI_MAC_OS -DTARGET_PD=2 -DTARGET_STANDALONE_FILE=3 -DTARGET_MAXSDK=4 -DTARGET_ASCOGRAPH=7 -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/oscpack_1_1_0_RC2/ip -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/oscpack_1_1_0_RC2/osc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -DANTESCOFO_TARGET=TARGET_PD -I/Users/acont/Devs/MyFlextProjects/antescofo/../Mutant-libs/pd-0.46-6/src -fvisibility=hidden -fcheck-new -MMD -MT dependencies -MF /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.d --serialize-diagnostics /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.dia -c /Users/acont/Devs/MyFlextProjects/antescofo/sources/Antescofo_PdClass.cpp -o /Users/acont/Devs/MyFlextProjects/antescofo/build/antescofo~.build/Deployment/pd_static.build/Objects-normal/i386/Antescofo_PdClass.o
Arshia Cont
On 02 Jun 2015, at 21:43, Thomas Grill <gr@grrrr.org mailto:gr@grrrr.org> wrote:
Hi Arshia, which compiler is it exactly that you use? Can you copy the options? best, Thomas
2015-06-02 14:35 GMT+02:00 Arshia Cont <Arshia.Cont@ircam.fr mailto:Arshia.Cont@ircam.fr>: Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja <katjavetter@gmail.com mailto:katjavetter@gmail.com> wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont <Arshia.Cont@ircam.fr mailto:Arshia.Cont@ircam.fr> wrote:
[...]
My second question would be on double-precision audio externals.. I see discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at mailto:Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev http://lists.puredata.info/listinfo/pd-dev
-- Thomas Grill http://grrrr.org http://grrrr.org/
Pd-dev mailing list Pd-dev@lists.iem.at mailto:Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev http://lists.puredata.info/listinfo/pd-dev
-- Antoine Rousseau http://www.metalu.net http://metalu.net/ __ http://www.metaluachahuter.com/ http://www.metaluachahuter.com/compagnies/al1-ant1/ __ http://al1ant1.free.fr http://al1ant1.free.fr/
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
I so wish these double precision float patches could be rolled into the main branch.
This issue of indexing into long arrays is the biggest thing impacting my PD joy I've found.
Unless I'm missing something, the onset inlet to [tabread4~] is not an acceptable solution, since it is only *added* to the value (address) on the left inlet. So instead of first encountering noise at 150,000 bytes into the array, we defer the problem to 300,000? This is just 7 seconds @ 44.1khz, and I want to work with audio files potentially 2 hrs long.
Thanks Katja for your work on this.
On Tuesday, June 2, 2015, Arshia Cont Arshia.Cont@ircam.fr wrote:
Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or
C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja katjavetter@gmail.com wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr wrote:
[...]
My second question would be on double-precision audio externals.. I see
discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
With a pair of single-precision floating-point numbers you can specify arbitrary sums to about 47 bits of precision. This is less than the 56 bits (I think) that a double precision number has, but it's enough, for instance, to specify locations in an hour-long soundfile at 96K down to less than 1/10000 of a sample.
This can be done, for instance, by making the first of the two numbers represent exactly a mmultiple of 256 (up to about (256 * 16,000,000) and the second one a value less than 256 with 16 bits of fraction (plus 8 of integer part).
This is in effect how the demo patch B16-long-varispeed work.s
But it's tricky to do - I should really put an abstraction in extra to help people do it :)
Miller
On Tue, Jun 02, 2015 at 04:14:22PM -0400, William Huston wrote:
I so wish these double precision float patches could be rolled into the main branch.
This issue of indexing into long arrays is the biggest thing impacting my PD joy I've found.
Unless I'm missing something, the onset inlet to [tabread4~] is not an acceptable solution, since it is only *added* to the value (address) on the left inlet. So instead of first encountering noise at 150,000 bytes into the array, we defer the problem to 300,000? This is just 7 seconds @ 44.1khz, and I want to work with audio files potentially 2 hrs long.
Thanks Katja for your work on this.
On Tuesday, June 2, 2015, Arshia Cont Arshia.Cont@ircam.fr wrote:
Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or
C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja katjavetter@gmail.com wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr wrote:
[...]
My second question would be on double-precision audio externals.. I see
discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
--
May you, and all beings be happy and free from suffering :) -- ancient Buddhist Prayer (Metta)
Don't forget to sign the
*Pledge to Resist*
*the Constitution Pipeline:*
- *The Pledge: TinyURL.com/Pledge2ResistCP
http://TinyURL.com/Pledge2ResistCP*
- *More info: TinyURL.com/Pledge2ResistCP1
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
Fwiw, on the external side of things, there is my hr library doing this: http://puredata.info/Members/thomas/hr best, Thomas
2015-06-02 22:44 GMT+02:00 Miller Puckette msp@ucsd.edu:
With a pair of single-precision floating-point numbers you can specify arbitrary sums to about 47 bits of precision. This is less than the 56 bits (I think) that a double precision number has, but it's enough, for instance, to specify locations in an hour-long soundfile at 96K down to less than 1/10000 of a sample.
This can be done, for instance, by making the first of the two numbers represent exactly a mmultiple of 256 (up to about (256 * 16,000,000) and the second one a value less than 256 with 16 bits of fraction (plus 8 of integer part).
This is in effect how the demo patch B16-long-varispeed work.s
But it's tricky to do - I should really put an abstraction in extra to help people do it :)
Miller
On Tue, Jun 02, 2015 at 04:14:22PM -0400, William Huston wrote:
I so wish these double precision float patches could be rolled into the main branch.
This issue of indexing into long arrays is the biggest thing impacting my PD joy I've found.
Unless I'm missing something, the onset inlet to [tabread4~] is not an acceptable solution, since it is only *added* to the value (address) on
the
left inlet. So instead of first encountering noise at 150,000 bytes into the array, we defer the problem to 300,000? This is just 7 seconds @ 44.1khz, and I want to work with audio files potentially 2 hrs long.
Thanks Katja for your work on this.
On Tuesday, June 2, 2015, Arshia Cont Arshia.Cont@ircam.fr wrote:
Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or
C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja katjavetter@gmail.com wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr
wrote:
[...]
My second question would be on double-precision audio externals.. I
see
discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles). That can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
--
May you, and all beings be happy and free from suffering :) -- ancient Buddhist Prayer (Metta)
Don't forget to sign the
*Pledge to Resist*
*the Constitution Pipeline:*
- *The Pledge: TinyURL.com/Pledge2ResistCP
http://TinyURL.com/Pledge2ResistCP*
- *More info: TinyURL.com/Pledge2ResistCP1
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
Hi,
I think you can link C++11 and GNU C code together because I'm doing that with Jamoma [1] which build both on Linux (with GCC 4.8 and 4.9) and Mac OS (with Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn). But I'm sorry Arshia have no clue about your error but you can check flags and all the build chain on github [2].
Cheers
Antoine
[1] : https://travis-ci.org/jamoma/JamomaPureData [2] : https://github.com/jamoma/JamomaPuredata
-- do it yourself http://antoine.villeret.free.fr
2015-06-03 12:58 GMT+02:00 Thomas Grill gr@grrrr.org:
Fwiw, on the external side of things, there is my hr library doing this: http://puredata.info/Members/thomas/hr best, Thomas
2015-06-02 22:44 GMT+02:00 Miller Puckette msp@ucsd.edu:
With a pair of single-precision floating-point numbers you can specify arbitrary sums to about 47 bits of precision. This is less than the 56 bits (I think) that a double precision number has, but it's enough, for instance, to specify locations in an hour-long soundfile at 96K down to less than 1/10000 of a sample.
This can be done, for instance, by making the first of the two numbers represent exactly a mmultiple of 256 (up to about (256 * 16,000,000) and the second one a value less than 256 with 16 bits of fraction (plus 8 of integer part).
This is in effect how the demo patch B16-long-varispeed work.s
But it's tricky to do - I should really put an abstraction in extra to help people do it :)
Miller
On Tue, Jun 02, 2015 at 04:14:22PM -0400, William Huston wrote:
I so wish these double precision float patches could be rolled into the main branch.
This issue of indexing into long arrays is the biggest thing impacting
my
PD joy I've found.
Unless I'm missing something, the onset inlet to [tabread4~] is not an acceptable solution, since it is only *added* to the value (address) on
the
left inlet. So instead of first encountering noise at 150,000 bytes into the array, we defer the problem to 300,000? This is just 7 seconds @ 44.1khz, and I want to work with audio files potentially 2 hrs long.
Thanks Katja for your work on this.
On Tuesday, June 2, 2015, Arshia Cont Arshia.Cont@ircam.fr wrote:
Thank you Katja for the swift response! We will wait for that then.
Any one running into run-time problems when compiling with C++11 or
C++14? We seem to have memory alignment issues… .
Arshia Cont
On 02 Jun 2015, at 14:23, katja katjavetter@gmail.com wrote:
On Tue, Jun 2, 2015 at 1:07 PM, Arshia Cont Arshia.Cont@ircam.fr
wrote:
[...]
My second question would be on double-precision audio externals.. I
see
discussions on class_new64 but can’t seem to find any trace of it in 0.46-6.. I dig into the archives to figure this one out first!
In 2011 I made a set of patch files for vanilla pd 0.43 to enable double precision builds (where t_float and t_sample are doubles).
That
can be found here:
https://github.com/pd-projects/pd-double
You could try it out for evaluation but Miller wants to scrutinize, test and improve the patch files before accepting them.
Katja
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
--
May you, and all beings be happy and free from suffering :) -- ancient Buddhist Prayer (Metta)
Don't forget to sign the
*Pledge to Resist*
*the Constitution Pipeline:*
- *The Pledge: TinyURL.com/Pledge2ResistCP
http://TinyURL.com/Pledge2ResistCP*
- *More info: TinyURL.com/Pledge2ResistCP1
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
-- Thomas Grill http://grrrr.org
Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev