> Passing such a symbol to jack_connect through [shell] ends with:
>
>   ERROR ardour:send\ 1/audio_out\ 1 not a valid port

But [shell] doesn't need symbols, you can pass a plain message to it such as [ardour:send 7/audio_in 1( without escaping spaces, with perhaps a [list trim]
Does that not work ?


Le ven. 26 mars 2021 à 16:06, Roman Haefeli <reduzent@gmail.com> a écrit :
On Fri, 2021-03-26 at 16:00 +0100, Roman Haefeli wrote:
> On Fri, 2021-03-12 at 19:20 +0100, Allister Sinclair wrote:
> > I don't know if an external exists for that but you could use
> > command
> > lines from pd.
> > (On linux I would use jack_connect and jack_disconnect commands
> > through the [ggee/shell] object.
>
> Now, that [ggee/shell] reports the proper exit code, this seemed a
> feasible approach. Not for long, though. There is no way around Pd
> prepending each symbol with a backslash. So, it is impossible to
> address a port like:
>
>   "ardour:send 7/audio_in 1"
>
> Passing such a symbol to jack_connect through [shell] ends with:
>
>   ERROR ardour:send\ 1/audio_out\ 1 not a valid port
>
> I remember a discussion going on github (can't find it right now)
> about
> whether the escaping with \ is an implementation detail that
> shouldn't
> be exposed to the user or the world outside of Pd. Now, I wonder
> whether it is [shell] not dealing properly with escaped characters in
> symbols, or whether the culprit is actually in Pd here.
>
> I'm not quite sure how to go on about this.


Ironically, when I want to execute the command from a real terminal, I
need to escape the port names with \:

  jack_connect pure_data:output_1 ardour:A-0/audio_input\ 1

Roman

_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list


--
Allister Sinclair