12.2. Common problems

12.2.1. My composition isn’t working and I don’t know why.

The first step is to take a deep breath and relax! OK, now the second step is to understand the problem. Here are some questions to ask yourself (or go through with a friend or collaborator):

  • What do you expect the composition to do?

  • What is the composition doing instead?

  • Where in the composition does the problem begin?

Using the tools provided the Vuo Editor, try to narrow down the problem. Figure out exactly which nodes aren’t working as you expect. Then try some of the more specific troubleshooting steps in the rest of this section.

12.2.2. Some nodes aren’t executing.

If a node doesn’t become opaque in Show Events mode, or if its port popover says Last Event: (none observed), then the node isn’t executing. If a node isn’t executing, that means events aren’t reaching it. Here are some things to check:

  • Is there a trigger port connected to the node? Trace backward through your composition, starting at the node that isn’t executing, and looking at the cables and nodes feeding into it. Do you find a trigger port? If not…

    • Add a node with a trigger port, such as Fire on Start, and connect the trigger port to the node that isn’t executing.

  • Is the trigger port firing? Check the trigger port’s popover (or connect a Count node, as described above). If the trigger isn’t firing…

    • Check the node description for the trigger port’s node. Make sure you understand exactly when the trigger is supposed to fire.

    • Check the trigger port’s event throttling, which is displayed in the port popover. If it says drop events, try changing it to enqueue events. (See the section Controlling the buildup of events.)

  • Are events from the trigger port reaching some nodes but not others? Trace forward through your composition, from the trigger port toward the node that isn’t executing, and find the last node that’s receiving events.

    • Look at the input ports on that last node. Do they have walls or doors? (See the section Event walls and doors.) Check the node’s description to help you understand when and why the node blocks events. To send events through the node, you may need to connect a cable to a different input port.

    • Look at the output ports on that last node. Are they trigger ports? Remember that events into input ports never travel out of trigger ports. To send events through the node, you may need to connect a cable to a different output port.

12.2.3. Some nodes are executing when I don’t want them to.

A node executes every time an event reaches it. If you don’t want the node to execute at certain times, then your composition needs to block events from reaching the node. For more information, see the section Common patterns - How do I….

12.2.4. Some nodes are outputting the wrong data.

If your composition is outputting graphics, audio, or other information that’s different from what you expected, then you should check the data flowing through your composition. Here are some things to check:

  • Where exactly does the data go wrong?

    • Check each port popover along the way to see if it has the data you expected.

    • Add some nodes to the middle of the composition to help you check the data (for example, a Render Image to Window node to check the data in an image port).

  • Is there a node whose output data is different than you expected, given the input data?

    • Read the node description carefully. The node might work differently than you expected.

12.2.5. The composition’s output is slow or jerky.

This can happen if events are not flowing through your composition often enough or quickly enough. Here are some things to check:

  • Is each trigger port firing events as often as you expected? Check its port popover to see the average number of events per second. If it’s firing more slowly than you expected…

    • Check the node description for the trigger port’s node. Make sure you understand exactly when the trigger is supposed to fire.

    • Check for any nodes downstream of the trigger port that might take a long time to execute, for example a Fetch Image node that downloads an image from the internet. Change your composition so those nodes receive fewer events. (See the section Common patterns - How do I….)

    • Check the trigger port’s event throttling, which is displayed in the port popover. If it says drop events, try changing it to enqueue events. (See the section Controlling the buildup of events.)

    • Check the event throttling of each other trigger port that can fire events through the same nodes as this trigger port. If the other trigger port’s event throttling is enqueue events, try changing it to drop events.

  • Is each node receiving events as often as you expected? If not…

    • Check if there are any event doors that might be blocking events between the trigger and the node. (See the section Event walls and doors.)

  • Is the composition using a lot of memory or CPU? You can check this in the Activity Monitor application. If so…

    • Check if any parts of the composition are executing more often than necessary, and try not to execute them as often. (See the section Common patterns - How do I….)

    • Export the composition to an application. When run as an application instead of in Vuo Editor, compositions use less memory and CPU.

    • Quit other applications to make more memory and CPU available.

    • Run the composition on a computer with more memory and CPU.