Pd-0.54 has been released, and we think that we finally have a way to double-precision processing (about 20 years after Csound...).
a double-precision external must:
[x] use t_float/t_floatarg/t_sample (instead of float) for all the interfacing with Pd
[ ] be compiled with -DPD_FLOATSIZE=64
[ ] use a special filename extension: .<os>-<cpu>-<floatsize>.<ext> with
<os>: being the operating system ("windows", "darwin", "linux",...)
<cpu>: the CPU-identifier, similar to the Debian arch specs (e.g. amd64 for x86_64, i386 for x86, arm64 for M1,...)
<floatsize>: size of floats in bits ("64")
<ext>: the system-native extension of dynamic libraries (dll for Windows, so for Un*xes)
the entire extension is lower-case, e.g.
.windows-amd64-64.dll
.linux-arm64-64.so
.darwin-fat-64.so (for universal binaries)
for now, I would suggest allowing to pass the extension to the buildsystem via some CMake variable (so you don't have to handle special cases like the s390x architecture manually)
it's already possible to pass some CPPFLAGS to the buildsystem, so the PD_FLOATSIZE define shouldn't be a problem.
Pd-0.54 has been released, and we think that we finally have a way to double-precision processing (about 20 years after Csound...).
a double-precision external must:
t_float
/t_floatarg
/t_sample
(instead of) for all the interfacing with Pdfloat
-DPD_FLOATSIZE=64
.<os>-<cpu>-<floatsize>.<ext>
with<os>
: being the operating system ("windows", "darwin", "linux",...)<cpu>
: the CPU-identifier, similar to the Debian arch specs (e.g.amd64
for x86_64,i386
for x86,arm64
for M1,...)<floatsize>
: size of floats in bits ("64")<ext>
: the system-native extension of dynamic libraries (dll
for Windows,so
for Un*xes) the entire extension is lower-case, e.g..windows-amd64-64.dll
.linux-arm64-64.so
.darwin-fat-64.so
(for universal binaries)for now, I would suggest allowing to pass the extension to the buildsystem via some CMake variable (so you don't have to handle special cases like the
s390x
architecture manually) it's already possible to pass some CPPFLAGS to the buildsystem, so thePD_FLOATSIZE
define shouldn't be a problem.