Here's something the Chair and Bela teams have been working on for a few months: a proof-of-concept web interface to Pd.
https://github.com/BelaPlatform/pure-data-web-GUI
This leverages the refactored communication protocol effort by Iohannes in order to obtain a "toolkit-agnostic Core<->GUI Communication" (https://github.com/pure-data/pure-data/discussions/1695), which resulted in https://github.com/pure-data/pure-data/pull/1765 . This is part of a broader project outlined in https://github.com/pure-data/pure-data/pull/1693 .
Now, this pure-data-web-GUI repo comprises three components:
- pd: is started with -guiport so that it doesn't start its own GUI
- the "shim": a very thin layer of websocket that forwards messages to/from Pd and the browser
- the "frontend": the actual HTML5 stuff, written using the svelte framework.
For now, you can try it out with docker following the instructions included in the repo. The easiest way is to run it with the Pd it comes with (which is run inside docker and thus doesn't have audio/MIDI I/O capabilities), but you can easily connect it to your own Pd server instance (assuming it comes from this branch https://github.com/giuliomoro/pure-data-1/). The docker containers are used to simplify the development effort, but ultimately this can be packaged up in a self-contained app (even for Android, if required), or you can have it run embedded (e.g.: on a Bela board) while displaying the GUI in a web browser (which is actually our primary goal).
It is by no mean complete or perfect, but I hope it shows that there is a tcl-tk-compatible, non-tcl-tk future possible for Pd. As it is, it even allows (well, with a lot of effort on the user side, but very little effort was put into it from the dev side) to patch on a touchscreen.
You may be wondering how this differs from the purr-data web GUI. Good question. This is a complete rewrite and it aims to use "stock" Pd as a backend server, by means of a communication protocol that has been refactored (by Iohannes) such that Pd no longer sends out raw tk messages, but rather tcl-compatible commands that are higher level and also easier to parse in other languages (the parser here is written in js). So right now you can run the same Pd binary (from this branch) deciding at runtime if using a tcl GUI or a web GUI. Nifty. The aim is eventually to upstream this communication protocol into vanilla, to make it easier to swap GUI frontends. Hopefully this can eventually help other forks with custom GUIs such as PlugData so that they don't have to maintain their own fork of Pd.
Best,
Giulio
+1 form me. Thank you for being the test bunny on this and taking the time to gather our different viewports on how this could work. I am looking forward to some canvas widget reimplementation on iOS...
> On Mar 17, 2023, at 6:25 AM, pd-list-request(a)lists.iem.at wrote:
>
> Message: 4
> Date: Fri, 17 Mar 2023 13:18:56 +0800
> From: Chris McCormick <chris(a)mccormick.cx <mailto:chris@mccormick.cx>>
> To: Giulio Moro <giuliomoro(a)yahoo.it <mailto:giuliomoro@yahoo.it>>, Pd-list <pd-list(a)lists.iem.at <mailto:pd-list@lists.iem.at>>
> Subject: Re: [PD] [PD-dev] A web frontend for Pd
> Message-ID: <ed039d5f-9a5e-4eb6-4cdd-8013f679e965(a)mccormick.cx <mailto:ed039d5f-9a5e-4eb6-4cdd-8013f679e965@mccormick.cx>>
> Content-Type: text/plain; charset=utf-8; format=flowed
>
> On 17/3/23 5:02 am, Giulio Moro via Pd-dev wrote:
>> Here's something the Chair and Bela teams have been working on for a few
>> months: a proof-of-concept web interface to Pd.
>>
>> ?https://github.com/BelaPlatform/pure-data-web-GUI <https://github.com/BelaPlatform/pure-data-web-GUI>
>
> Amazing! Thank you for sharing this!
>
> Chris.
--------
Dan Wilcox
@danomatika <http://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>
New Master in Composition with Focus on AI - HfM Trossingen
Application period March 1 - April 1, 2023
Starting in October 2023, the University of Music (HfM) Trossingen
(Germany) will offer a master's degree program that is unique in Europe
and aims to train a new generation of artistically and technically
competent composers, sound artists, and music designers, especially by
critically exploring the creative possibilities of AI-based technologies.
This program (Master of Music in Composition) builds on the music
technology teaching foundations of the HfM Trossingen and takes place in
close cooperation with Furtwangen University. The students are taught by
an internationally renowned team of researchers and experienced artistic
practitioners, first and foremost Prof. Dr. Luc Döbereiner and Prof. Dr.
Joachim Goßmann. In addition, this course is being developed within the
framework of a cross-university project funded by the BMBF (KISS -
Artificial Intelligence Service and Systems), whose long-term goal is to
establish a center of excellence for the sustainable development of AI.
As part of the master's program, interested students with prior musical
and/or technical experience at the bachelor's level can choose one of
three concentrations: Music Design, Instrumental Composition, or
Electroacoustic Composition. Available modules of study range from
Digital Lutherie, Experimental Sound Synthesis, and Interface Design to
Sound Ecology and Digital Ethics. In addition, a new space for the
conception, experimentation and realisation of artistic projects
("Latent Space" - Space for Artistic Research and Design in Music and
AI) is being created.
The entrance examination consists of two phases. In the first phase, in
addition to the general application documents, the following documents
must be submitted (via Post, USB-stick with max. file-size of 1 GB):
Motivation letter (max. 1 page)
Curriculum vitae including chronological overview of
musical/artistic development
Media documentation of own works with explanation (min. 2 pages)
Exposé - description of the planned artistic project (max. 3 pages)
After reviewing the documents, the examination committee selects
candidates for an in-person examination in Trossingen. This second phase
consists of an interview about the submitted work and the exposé
(approx. 30 min).
Further information about the program, application requirements can be
found on the following page: https://www.hfm-trossingen.de/ai-in-music
contact: l.doebereiner(a)doz.hfm-trossingen.de
_______________________________________________
Pd-announce mailing list
Pd-announce(a)lists.iem.at
https://lists.puredata.info/listinfo/pd-announce
> From: Alexandre Torres Porres <porres(a)gmail.com>
> To: pd-announce(a)lists.iem.at
> Cc:
> Bcc:
> Date: Mon, 6 Mar 2023 22:52:25 -0300
> Subject: [PD] [PD-announce] taking over completion-plugin and releasing
> version 0.48.0
> Hi, I forked completion-plugin and released an update (0.48.0), which is
> in deken.
>
> See https://github.com/porres/completion-plugin/releases/tag/v0.48.0
>
> cheers
>
Many thanks Alexandre, very useful for lazy and forgetful users like me!
It works like a charm on my PD 0.51.4 on Windows 10 laptop.
I already found some objects I didn't know existed :-)
Dario
Thanks for confirmation that this does indeed work. I took the liberty to add this info to mac/README.txt when the question comes up in the future:
https://github.com/pure-data/pure-data/commit/68dd3428d5f37fed32b94451fbeea… <https://github.com/pure-data/pure-data/commit/68dd3428d5f37fed32b94451fbeea…>
> On Mar 1, 2023, at 12:00 PM, pd-list-request(a)lists.iem.at wrote:
>
> Message: 2
> Date: Tue, 28 Feb 2023 22:25:40 +0000
> From: Pierre Alexandre Tremblay <tremblap(a)gmail.com <mailto:tremblap@gmail.com>>
> Cc: Pd-List <pd-list(a)lists.iem.at <mailto:pd-list@lists.iem.at>>
> Subject: Re: [PD] Attaching Xcode debugger
> Message-ID: <82F63261-F4C1-4F86-AFBB-2E889FC059C5(a)gmail.com <mailto:82F63261-F4C1-4F86-AFBB-2E889FC059C5@gmail.com>>
> Content-Type: text/plain; charset="utf-8"
>
> Ok I got it to work - there was on colon missing in the article, so here are my steps to make the downloaded Pd linkable to the debugger:
>
> 1) extract the current pd executable entitlements (don?t forget the colon before the path as this is an option to remove the blob)
>
> codesign -d /Applications/Pd-0.53-0.app/Contents/Resources/bin/pd --entitlements :/tmp/pd-entitlement.xml
>
> 2) open /tmp/pd-entitlement.xml should start it in Xcode. Add this key to it and save
>
> <key>com.apple.security.get-task-allow</key>
> <true/>
>
> 3) replace the entitlement back with this code:
>
> codesign -s - --deep --force --options=runtime --entitlements /tmp/pd-entitlement.xml /Applications/Pd-0.53-0.app/Contents/Resources/bin/pd
>
> Voil?! Link pd (not Pd) to your debugger and you?re as happy as me!
--------
Dan Wilcox
@danomatika <http://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>
ELSE 1.0-0 rc7 with Live Electronics Tutorial is out. These ELSE updates
are only happening this often to pair up with PlugData releases, which is
rocking hard (expect a PlugData release announcement soon) - btw, this
means I'm not really following my release plans towards a my release...
On breaking changes, I'm highlighting that I'm removing the recently added
support for pd-lua. It is still available in PlugData though! I couldn't
really get into it and Albert Graef is really active in its development. So
now plugdata users have to download it separately for vanilla, and yes, I
uploaded the latest version (0.11.6) to deken as well. I thought I could
maybe create my own pd-lua variant but I gave it up. I'd still like to
offer something like ofelia does, but it's way beyond my limits and way
down in my priorities. By the way, Albert also started porting ELSE to Purr
Data, check it out ==>
https://github.com/agraef/purr-data/releases/tag/2.19.2+ELSE
There are also many bug fixes and new features. Let me highlight that most
of my oscillators now have built-in "Soft Sync" capabilities! They can also
optionally take pitch in MIDI, which helps with exponential FM. As for new
objects, I'm including [beats~], a bpm detection based on aubio. Seb shader
also included a new [keycode] object that responds to computer keyboard
keys with layout independence and I'm using it for another object
([keymap]) that turns your computer keyboard into a MIDI keyboard input.
For last, I'm also including [plaits~], which is based on the PLAITS module
from Mutable Instruments. More clones from Mutable Instruments are coming
and I have to say I have big plans in 2023 to also design eurorack inspired
abstractions (like MAX's Beap and Automatonism). This should be a submodule
in ELSE and available in PlugData too, but will have its own name and
repository (it is called *Modular EuroRacks Dancing Along* *[M.E.R.D.A.]*).
I also have a new chapter in my tutorial about 'CV' (Control Voltage). So,
yeah, I'm going modular...
ELSE 1.0-0 RC7 is up on deken for Linux/mac/windows 64 bit versions. I'm
having issues building for raspberry pi (same for pd-lua) but can upload it
if someone helps me with that. Total number of objects is now 474 and total
number of examples in the tutorial is 498 (expect me to go beyond 475
objects and 500 examples in the next update). Here's a full changelog:
https://github.com/porres/pd-else/releases/tag/v1.0-rc7
If you've read this far, you probably care about this project of mine. May
I ask you then to consider supporting me on
PATREON --> https://www.patreon.com/porres?l=en
I promise to focus on issues and request from subscribers and this already
happened for this release, where I was able to improve [else/bicoeff]
thanks to 'Esa Ruoho'. I also promise to take motivation from patreon
support to keep collaborating to Pd Vanilla as well :) as in my tedious and
long revisions of the documentation and other stuff.
Cheers
_______________________________________________
Pd-announce mailing list
Pd-announce(a)lists.iem.at
https://lists.puredata.info/listinfo/pd-announce