Warmuptill, is there a way to trigger the start of one macro from another macro? Here's my problem. I've set up a macro to turn off recording when A) the recording has been running for at least 20 minutes "And" B) the audio on a certain device falls below 10% for at least 2 minutes. I'm trying to stop the recording after a certain mic is muted after our pastor's sermon. The problem is sometimes at the beginning of the 20 minutes after recording is started, the mic can be off for more than 2 minutes, so in the logs, this condition throws a 1. Then after the 20 minutes of recording, that macro throws a 1, and since both conditions are now true, the recording stops right at the 20 minute mark. What I want is the macro that checks for the 2 minutes of silence not begin checking the volume until after at least 20 minutes of recording has happened (this is well into the sermon so no silence until after the sermon is over).
I did another test with the macros. This time I created 3 macros with the last one set to stop recording after at least 1 minute of silence (my audio source is muted all the time for the test). The first macro was set to pause the 3rd macro on startup (paused macro when startup scene is active). The second macro unpauses the 3rd macro after at least 2 minutes of recording. What I thought would happen is after 2 minutes of recording the 3rd macro would be unpaused and then only after at least 1 minute of silence the recording would stop. Instead the recording stopped after 2 minutes (as soon as the 3rd macro was unpaused).
The logs show the audio macro (the 3rd macro) is still keeping track of the time of silence even though it's paused. After 1 minute of silence it throws a 1. And after 2 minutes of recording, that macro throws a 1 and the recording stops.
Seems like a bug in the logic of your plugin. Any macro that's paused should not begin it's logic tests until it's unpaused. The audio macro should not throw a 1 until it's conditions have been met after unpausing.
With a background in industrial ladder logic, it seems to me that its concept of timers would be both a more elegant solution to this specific problem and very useful in general:
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
www.youtube.com
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
www.youtube.com
Or for a more detailed timing diagram:
Chain this and my other idea together, so that the rising and falling edges of the combinatoric logic output, each have their own delays before triggering their respective independent actions. A time of 00:00 means "instant" or no delay.
(Of course, this also means that the condition itself should not "latch" once it's satisfied, but continue to check always. khaver's log seems to indicate a latching behavior, if I understand correctly.)
An example ladder rung for a slightly complex macro might look like this, graphically:
The input to both timers in this example, is equal to [C7 AND (C8 OR C9)]. When that becomes true, the off delay becomes true immediately, and the on delay requires it to remain true for 1 minute. When that condition becomes false, the on delay becomes false immediately, and the off delay requires it to remain false for 5.5 minutes. The output of the on delay would then feed a rising-edge-triggered action, and the output of the off delay would feed a falling-edge-triggered action.
Each of the two timers could be set to 0 to make it instant, and each of the two actions could be set to do nothing if only the other edge is required. (it would be silly to have both actions do nothing, but there's no reason to forbid it either) The UI would then have 3 sections:
1. Condition
2. When True (rising edge), Delay and Action
3. When False (falling edge), Delay and Action