Page 1 of 1

EXEC_SEND_TCP send macro as text

Posted: 29 Sep 2022 13:33
by Maartenvn
Hello

I am trying to send track streaming metadata from one ProppFrexx instance to another, when the master instance is in OnAir mode (line input is open).
To do this I am sending a command to the master when OnSongTitleChanged is triggered on the slave using EXEC_SEND_TCP.

Right now I am using this command:

Code: Select all

EXEC_SEND_TCP ip:port|AUTHORIZATION password${CRLF}${CRLF}EXEC_COMMAND2 ${inputmixer1mute}|Equals(0)|STREAMING_SETSONGTITLE ${streaminglastsongtitle}${CRLF}${CRLF}
The problem is that all macro's get replaced before sending the command, causing ${inputmixer1mute} to be false before sending the command.
Is there a wat to send ${inputmixer1mute} as a string, such that it gets replaced on the master instance, rather than on the slave instance.

Thank you in advance!

Re: EXEC_SEND_TCP send macro as text

Posted: 29 Sep 2022 18:23
by radio42
All macros can only be replaced on the sender (sending ProppFrexx), as the receiver doesn't even need to be another ProppFrexx instance.
But even if it is (as in your scenario), it wouldn't make sense in your case, e.g. think of the ${streaminglastsongtitle} macro: for this one it wouldn't make sense to have it replaced on the receiver side ;-)
If you want to send the song title depending on the input mixer mute state, do the conditional execution beforehand, like this:

Code: Select all

EXEC_COMMAND2 ${inputmixer1mute}|Equals(0)|EXEC_SEND_TCP ip:port|AUTHORIZATION password${CRLF}${CRLF}|STREAMING_SETSONGTITLE ${streaminglastsongtitle}${CRLF}${CRLF}

Re: EXEC_SEND_TCP send macro as text

Posted: 30 Sep 2022 12:50
by Maartenvn
Hi Bernd

I am not sure if I can use the command like that for our use-case. The slave should set the stream title of the master with it's own streaming title, only if the master input mixer is unmuted.

* ${inputmixer1mute} should be replaced by the master (thus the receiver of the commandstring)
* ${streaminglastsongtitle} should be replaced by the master (thus the sender of the commandstring, this works right now out of the box)

To elaborate more on why we need this, we have 2 computers, both running ProppFrexx: a non-stop instance and a live studio instance. The audio of the live studio is fed into the non-stop instance and some software is used to mute/unmute the input channel and stop the playback of the non-stop.
Only when the input is unmuted on the non-stop should the STREAMING_SETSONGTITLE, send by the live studio, be executed.

So the command that should be sent by the live studio instance (or another TCP client) to the non-stop instance should be:

Code: Select all

EXEC_COMMAND2 ${inputmixer1mute}|Equals(0)|STREAMING_SETSONGTITLE "Song of Live Studio"
I essentially need a way to tell ProppFrexx to not replace a specific macro and send it as regular text so it can be replaced on the receiver end.

Thank you!

Re: EXEC_SEND_TCP send macro as text

Posted: 01 Oct 2022 13:28
by radio42
So if I understand you correctly, you want, that some macros should be evaluated locally (before sending it to the receiver; namely the ${streaminglastsongtitle} macro); and some other macros should be evaluated on the remote side (the receiver ProppFrexx instance; namely the ${inputmixer1mute} macro).

This is currently not possible; but I might look into adding a new macro-function: ${RCM:clientname|macroname}
This one could evaluate the given macroname on the specified remote client.
E.g. ${RCM:MyMaster|inputmixer1mute} - where 'MyMaster' is the name of the configured remote client as defined on the slave in the remote client monitor.

Re: EXEC_SEND_TCP send macro as text

Posted: 17 Oct 2022 22:16
by radio42
A new version 4.3.3.0-beta is out - which adds the mentioned macro function!
To update use "Check for Beta-Versions..."

Re: EXEC_SEND_TCP send macro as text

Posted: 22 Oct 2022 18:25
by Maartenvn
Thank you for implementing this!