Joseph: Do not be embarrassed. Understanding the engine is relatively opaque IMO and info is scattered in different places.

Christof: IMO these kinds of important details should really by in m_pd.h. The API is pretty stable at this point, so it would pay to fill out the header. This was my approach with libpd:

https://github.com/pure-data/pure-data/blob/master/src/z_libpd.h

We originally had docs for libpd on a wiki page but once things stabilized I did the painful, but IMO necessary, step to move it into minimal header documentation. This also made it trivial to include basic docs when libpd was integrated into the pure-data repo.

On Aug 23, 2023, at 5:05 PM, pd-dev-request@lists.iem.at wrote:

Message: 1
Date: Wed, 23 Aug 2023 17:04:41 +0200
From: Christof Ressi <info@christofressi.com>
To: pd-dev@lists.iem.at
Subject: Re: [PD-dev] why must one never send a message from a perform
routine ?
Message-ID: <7a96c4d0-10ec-1d18-b016-df0304498623@christofressi.com>
Content-Type: text/plain; charset="utf-8"; Format="flowed"

Glad that I could help! Very little of this is really documented 
(accurately). Personally, I figured this out by reading the source code.

Ideally, we should improve the official documentation in 
http://msp.ucsd.edu/Pd_documentation/x3.htm#s1.0. Some things are 
outdated, misleading or just plain wrong (in particular the section 
"audio buffer size and block size"). I just put this on my 
(ever-growing) TODO list.

Christof

--------
Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com