Hi, this is conTorchionist (or its embryonic version, I would say):
https://github.com/ecrisufmg/contorchionist
It's a project that is in its very early stages, but I thought it was worth
announcing here, not so much for its current development stage, but because
it might be useful to others and also as a thank you to the community and
the developers who have created inspiring tools. Besides, obviously, Pure
Data, SuperCollider, and Python, I'm referring to libraries like FluCoMa,
timbreID, nn~, librosa, and others, which have been fundamental to the
development of conTorchionist.
Briefly, the idea is to have a nomadic and flexible library, based on
libtorch, that allows for the use of the same DSP (machine listening, but
also, in the future, other things related to synthesis/signal processing)
and ML processes in both real-time (PD, Max, SC) and non-real-time
(Python). Wrappers for other languages/environments should not be so hard
to code, as everything is interfacing a shared library (and libtorch shared
libraries). Another key idea is to have a widely used tool like
PyTorch/libtorch/torchaudio as a foundation, which greatly facilitates
development and integration with existing ML+ML experimentation workflows
and processes. The structure is heavily inspired by FluCoMa, but it is
probably simpler and follows a logic of core Processors and wrappers in
different languages (we have been prioritizing Pure Data, but we are
gradually creating things for Max, SC, and Python as well). Since we use
libtorch, conTorchionist also has some other potentially interesting
features, like using the GPU for calculations and DSP - CUDA
(Windows/Linux) or MPS (Apple Silicon).
We are taking it slow, so a lot is still missing (documentation, testing,
etc.). That's why we haven't published a versioned release or binaries yet.
We hope to do so soon after verifying the consistency of some things
regarding DSP calculations in PyTorch / torchaudio (which, in turn, use
librosa as a reference) and ensuring that the initial wrappers compile
properly on various operating systems (we have tested mainly on Linux and
macOS, so it's likely that some adjustments will be needed in the
CMakeLists for Windows).
I hope it will be useful and that we can gradually make things more
organized. At the moment, it's just me and a great student (Vinícius
Oliveira), plus some always quite hallucinatory and unreliable AI bots. ;)
The paper we presented this week, on SBCM, is here:
https://www.researchgate.net/publication/395473005_conTorchionist_A_flexibl…
Or if you prefer figures: https://ecris.cc/2025sbcm_contorchionist-slides/
<https://ecris.cc/2025sbcm_contorchionist-slides/>
Any feedback is appreciated, of course!
Best regards!
José Henrique Padovani
Hello,
I am happy to announce two websocket externals: [wsserver] and [wsclient]
The externals support binary and text-data.
Both externals are statically linked using OpenSSL 3.5.2 and Boost.Beast
1.88.0
Be aware: It uses the recently introduced function "pd_queue_mess" and
therefore needs Pd >= 0.56.0.
Please find it on deken for Linux, macos and Windows or on github:
https://github.com/i-n-g-o/websockets-pd
Cheers,
Ingo
Hello,
I am happy to announce an update to Rabbitcontrol for Pd.
Most notably version 2.0 handles threading properly and solves a bug on
macos by switching to Boost.Beast.
Be aware: It uses the recently introduced function "pd_queue_mess" and
therefore needs Pd >= 0.56.0.
It now comes as statically linked individual externals instead of one
library.
OpenSSL got updated to 3.5.2 and it is using Boost in version 1.88.0.
Getter functions are now prefixed with "get" to allow parameters like
"max", "min", "order", etc.
Please see the changelog for more details:
https://github.com/rabbitControl/pure-rabbit
The formerly included websocket externals got moved into their own
project. I will announce it in an extra email.
It is up on deken for Linux, macos and Windows if you want to try it out.
(Search for: rabbitcontrol, rabbit or rcp)
If you wonder what RabbitControl is you can find some information here:
https://rabbitcontrol.cc/
Cheers,
Ingo
Hi, after a test phase with Windows errors, it seems we solved the windows
compilation issues and here's the update I'm wrapping up for the PdMAXCon
in a few days! I just have to ship this, but I had a new [streamin~] and
[streamout~] objects for streaming and I'm leaving it out for now cause the
build for windows is still failing. Hold on for that. Note that older ELSE
versions are not working on Pd 0.56. This one requires 0.56-1!
My last update aimed at a PlugData update but that didn't happen yet,
though there's a PlugData 0.9-2 test release, based on 0.55-2. This new
ELSE update will hopefully come soon right after at PlugData 0.9.3, or
maybe even a newer update. I was hoping to better coordinate releases but
it's not happening :)
There's a lot of new stuff, but I'm mainly focusing on my MERDA modules,
which I'll show at PdMAXCon. They're coming out fancy with lots of stuff
and details I can't get into. There's lots of eye candy, like Implementing
a new mechanism for minimizing and maximizing the GUI or opening in a new
window. Added "tab" navigation for most knobs in the modules. This is just
the tip of the iceberg as there's lots of work to support this, so I made
several changes and updates to [knob] and [button]. The [knob] object also
gained several features and it became a feature-creep monster. Now I'm also
including mouse wheel scrolling, for one thing.
There's a new "Super Saw/Square" oscillator (a sum of 7 oscillators based
on JP-8000) abstraction object that also became a MERDA module. I wanna
highlight a new [mix~] object made for it that makes convenient mixing and
panning MC connections. There's also a cool [arpeggiator] abstraction, in
the next release I hope I'll have a new MERDA module with that included.
This is the main deal! There are 15 new objects, I'd like to also mention
mid/side encoding and stereo widening, and another one for envelope
following. Total number of objects now is 587! The tutorial now has 561
examples and an expanded subchapter about stereo imaging and improvements
to envelope following.
It's up in deken, let me know if something is wrong...
There are of course many many other numerous changes and fixes. Detailed
changelog in https://github.com/porres/pd-else/releases/tag/v.1.0-rc14
As of now, I started being more careful with breaking changes. I'm still
allowing old patches to run, but telling people to adapt to new stuff. For
instance, I had a [del~ in] and [del~ out] object now split into 2
([del.in~]/[del.out~])
thanks to a new functionality in Pd 0.56-0, but you can still call the old
[del~] object (for now). Like I've been saying, I'm just waiting for
PlugData 1.0 to call this a final release as well.
cheers
Alex