Thanks again, Christof. Trying that, I’m getting this result:
➜ pd-cyclone-master make make-lib-executable=yes arch="arm64 x86_64"
++++ info: using Makefile.pdlibbuilder version 0.6.0
++++ info: using Pd API /Applications/Pd-0.52-1-arm64.app/Contents/Resources/src/m_pd.h
++++ info: making target all in lib cyclone
pd-lib-builder/Makefile.pdlibbuilder:815: *** Can not build library blob because lib.setup.sources is undefined. Stop.
I’ve searched for any mention of ‘lib.setup.sources’ and …
[View More]come up empty. Can anybody tell me how to set that correctly?
Thanks for your patience, all!
Phil Stone
UC Davis
P.S. My system is up and running on an M1 MacBook, and it is, by my very rough estimate, around 3X faster than my system running on x86-64 Pd. That is, setups which ate nearly all the processor available for audio, now don’t go above 33%. I’m *very* happy, and thinking up ways to use up this bandwidth bonanza.
Date: Fri, 25 Mar 2022 01:17:02 +0100
From: Christof Ressi <info(a)christofressi.com<mailto:info@christofressi.com>>
To: pd-list(a)lists.iem.at<mailto:pd-list@lists.iem.at>
Subject: Re: [PD] (no subject)
Message-ID: <98e3752a-6ac1-2a05-abe1-c79375703ec2(a)christofressi.com<mailto:98e3752a-6ac1-2a05-abe1-c79375703ec2@christofressi.com>>
> Is there a way, using pd-lib-builder, to build the ?unified? library
> for Cyclone?
Do you mean building everything as a single binary (instead of separate
binaries per object)? This can be done with:
$ make make-lib-executable=yes
Christof
> I?m currently working well enough for my own needs, but I?d like to
> supply a deployable library for Deken for cyclone-darwin (including
> arm64), and am not sure how to do that.
>
> Best,
>
> Phil Stone
>
> UC Davis
>
> IOhannes wrote:
>
> >On 3/24/22 15:44, Philip Stone via Pd-list wrote:
>
> >>/Thank you for the pointers. Running ?make? on its own does indeed
> build cyclone, and since I?m doing it on an M1 macbook, it generates
> arm64 executables, and ?install? puts them in ~/lib/cyclone. (? - Is
> that right?), and they actually work!/
>
> >>//
>
> >>/However, I was hoping to generate fat, single-library binaries for
> Deken, and I thought CMake might make that easier. >> I will look into
> the necessary flags for doing it with ?make?./
>
> //
>
> >```
>
> >make arch="arm64 x86_64 i386 ppc"
>
> >```
>
> >leave out the architectures you do not want or know (and those that the
>
> >compiler is not able to produce, which most likely includes all but the
>
> >first two)
>
> >mdfgasd
>
> >IOhannes
[View Less]
Thanks, IOhannes, that worked, using ‘arm64 x86-64’.
I now have all the objects individually deployed. Is there a way, using pd-lib-builder, to build the ‘unified’ library for Cyclone?
I’m currently working well enough for my own needs, but I’d like to supply a deployable library for Deken for cyclone-darwin (including arm64), and am not sure how to do that.
Best,
Phil Stone
UC Davis
IOhannes wrote:
>On 3/24/22 15:44, Philip Stone via Pd-list wrote:
>> Thank you for the pointers. …
[View More]Running ‘make’ on its own does indeed build cyclone, and since I’m doing it on an M1 macbook, it generates arm64 executables, and ‘install’ puts them in ~/lib/cyclone. (? - Is that right?), and they actually work!
>>
>> However, I was hoping to generate fat, single-library binaries for Deken, and I thought CMake might make that easier. >> I will look into the necessary flags for doing it with ‘make’.
>```
>make arch="arm64 x86_64 i386 ppc"
>```
>leave out the architectures you do not want or know (and those that the
>compiler is not able to produce, which most likely includes all but the
>first two)
>mdfgasd
>IOhannes
[View Less]
Hi Christof,
Thank you for the pointers. Running ‘make’ on its own does indeed build cyclone, and since I’m doing it on an M1 macbook, it generates arm64 executables, and ‘install’ puts them in ~/lib/cyclone. (? - Is that right?), and they actually work!
However, I was hoping to generate fat, single-library binaries for Deken, and I thought CMake might make that easier. I will look into the necessary flags for doing it with ‘make’.
Thanks again,
Phil
From: Christof Ressi <info(a)…
[View More]christofressi.com>
You have to set PD_INCLUDEDIR to point to Pd's "src" folder because the
build system needs to find the header files.
That being said, cyclone's build system could have some code to set some
reasonable default values. That's what I do in my CMake based Pd
externals, so I know it's possible :-)
---
On the other hand, cyclone also supports the pd-lib-builder build
system. Just cd into the top level folder (containing "Makefile") and
type "make". pd-lib-builder should be able to find the Pd header files
automagically.
Christof
[View Less]
Hello,
I hope this is a proper question for the general list. It borders on being something for the ‘dev’ list, but is very basic, I’m afraid. I’m trying to compile darwin-arm64 or perhaps ‘fat’ binaries for Cyclone. When I run CMake on the ‘cyclone’ source, I get this :
The C compiler identification is AppleClang 13.1.6.13160021
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.…
[View More]xctoolchain/usr/bin/clang - skipped
Detecting C compile features
Detecting C compile features - done
CMake Error at CMakeLists.txt:9 (message):
Please provide a path to the pure-data source files.
These are the first eleven lines of cmake.txt, where the error originates:
cmake_minimum_required (VERSION 3.0)
project (cyclone C)
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(BUILD_SINGLE_LIBRARY "Compile everything into one single library." OFF)
set(PD_INCLUDE_DIR "" CACHE PATH "Path to pure-data sources (this can be the pure-data/src folder in the sources of libpd)")
if (NOT PD_INCLUDE_DIR)
message(FATAL_ERROR "Please provide a path to the pure-data source files.")
endif()
------------------------
What ‘pure-data source files’ is this referring to? Please forgive my compiling-newbie question!
Best,
Phil Stone
Davis, CA
[View Less]
>[dir( -> [pdcontrol]. Not very intuitive, I know...
>
>We have been discussing to add such functionality to the [file] object
>family, where it would make more sense. See
>https://github.com/pure-data/pure-data/issues/1539.
>Christof
Thank you very much, Christof! I didn’t think of [pdcontrol].
Phil
mid-March 2022: I'm finally getting back to normal and returning to
projects I was working on before the pandemic. 2 years of shifting
priorities... ya know
The project I was working towards is doing long-length
cross-covariance and deconvolution calculations in a "fast-forward" pd
instance and then passing the results back to a real-time process,
with minimal risk to real-time
A pd process that is running in fast forward does not poll and so does
not listen for connections of some kinds. …
[View More]When fast forward is turned
off by the patch, it starts using the regular scheduler and starts
listening again.
At the time, 2 years ago, I had gotten this kind of behavior from
batch mode and communication through shmem and some signal handlers
(raisestop, sigcont). With [ggee/shell] to start/stop the processes
and send sigcont, it rounded out an (linux-specific, and very kludgey)
solution. A batch mode process could wake up, read some shmem ID's
and be told what to do, transfer data in, do some calculations, write
the output to other shmem ID's, and then sleep again. To make the
programming a bit easier to read, it was also possible to send lists
using FUDI over shmem.
My conclusion there was that shmem can be used for asynchronous
inter-process communication with minimal risk to real-time. It's very
good as a fundamental object--it does not block, it does not
synchronize.
Notable limitations:
1. Every process needs to know/use the same size for shmem ID's.
2. Once allocated, a shmem cannot be re-sized.
3. Writing to/from an extremely large array all at once poses a risk
to real-time.
I'd like to write a pair of management abstractions for using fast
forward and shmem, then, that make it easy to stage in/out large,
variable-length data
Anybody else have best practices for IPC when using fast forward?
Having a listener on the 2nd process between computing sprints in the
"fast forward" process completely changes how I can do things.
other: is there a good way to start/stop processes other than
[ggee/shell]? cross-platform?
Chuck
[View Less]
Yeah, this makes the most sense: try the user value, if it's too low, then use the hardware value and print a notice. At the very least, Pd will keep working. :) I do something similar in a work project that uses Portaudio and CoreAudio.
> On Mar 22, 2022, at 4:33 PM, pd-list-request(a)lists.iem.at wrote:
>
> Message: 4
> Date: Tue, 22 Mar 2022 16:33:24 +0100
> From: Christof Ressi <info(a)christofressi.com <mailto:info@christofressi.com>>
> To: pd-list(a)lists.…
[View More]iem.at <mailto:pd-list@lists.iem.at>
> Subject: Re: [PD] Pd 0.52-1 - frozen dsp and gui in ubuntu 20.04
> Message-ID: <9abb25f0-6838-daf3-031f-8e1cf801ba8f(a)christofressi.com <mailto:9abb25f0-6838-daf3-031f-8e1cf801ba8f@christofressi.com>>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
>> Of course, now the displayed settings doesn't always reflect the setting used internally.
> We could post a little notice that the delay setting has been capped.
> Probably also for the ASIO backend. But that's just cosmetics.
>
> @umlaeute: should I push the quick fix below to develop?
>
> Christof
--------
Dan Wilcox
@danomatika <http://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>
[View Less]