Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Slow CSV performance and Essential Graphics text style handling

Community Beginner ,
Aug 12, 2025 Aug 12, 2025

I've read multiple posts here over recent years complaining about the working performance when using .csv files and I'm still experiencing those issues in AE 25.0.1 (and AE 24.6.3 too). I inherited a project that is using some expressions to pull in the csv data into some essential graphics comps. The problem is so bad I'm about to scrap this entire project and rebuild it using an aescript plugin and not touch csv's again. Are there any other workarounds or updates coming soon that may help?

 

My setup:

Recent Windows 11 Intel/nvidia PC workstation that works perfectly in any other AE/C4D project. CSV (exported from a spreadsheet) that is less than 20kb. I don't touch or update the csv while AE is open. In the Essential Graphics comps my frame render time is around 200ms. In my main comp that has just that same EG comp and a precomp of the csv text data (that is freeze framed) has a frame render time of ~5 seconds. Performance in this project is generally slow (click and wait +1 second for AE to react) and at random this will go up to 63+ seconds per frame. I get the 5 second render time (there are a number of scripts that resize elements to match the csv text), but the random hang ups and slow interactions are just killing all time advantages of this setup. No issues rendering, just while working. Render times are about 12 seconds total per comp.

 

I'm also having issues with text style/formatting in the same setup. I'll change the paragraph alignment in the EG comp on 2 text layers and in the main comp only 1 will update. Or I'll edit the text in the main comp in the Essential Properties (fix typo, etc after turning off the expression to pull from the csv) and then that layer loses its paragraph alignment and/or font size. Sometimes. Sometimes layers will be fine. I have around 50 main comps run from about 5 EG comps in this project. Is there some workaround to reliably get my text styles to apply in my main comps when the EG comps act up? I've tried a couple expressions I found on here with no luck.

Bug Unresolved
TOPICS
Expressions , Performance , Scripting , Workflow
128
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Valorous Hero , Sep 03, 2025 Sep 03, 2025

You'll want to get the style from a specific text layer to ensure you're getting the correct style. In other words - do not rely on the Essential Graphics Panel to store your text styles

There is a 'systems approach to this' but since you've already started, simply use an expression line to get the text styling from a specific layer and it's best to declare a new value for setJustification(). 

So, perhaps something like this may work but take note the expression below does not perform a get text

...
Translate
6 Comments
Community Beginner ,
Aug 14, 2025 Aug 14, 2025

If anyone comes across this, Adobe AE support helped to find that it was the combo of .csv source text and using sourceRectAtTime() and valueAtTime(). Changing those to only evaluate at frame 0 solved 85% of the issue (so sourceRectAtTime(0)).

 

Still having issues with the text styling though...

Translate
Report
Valorous Hero ,
Aug 15, 2025 Aug 15, 2025

Here's some info on writing performant Expressions.

https://www.broadcastgems.com/post/how-to-write-performant-expressions-in-adobe-after-effects-develo...

And it's not possible to assist you if you don't provide all/any relevant details on your Text Styling issues and the code block you're using.


Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV
Translate
Report
Community Beginner ,
Sep 02, 2025 Sep 02, 2025

Thanks Roland, that link was very helpful! 

 

So for the style problem, I have an EG comp with several text layers. In the main comp I'm using the following code (or something similar) to reference the CSV and the sliders on my "control" layer that lets us select more options. Of the 5 or so text layers (that are all identical styles in the EG comp), one or two will not keep the paragraph formatting in the main comp. I don't know what in this code could even change any part of the text style.

 

posterizeTime(0);

var myColumnNumberAsInteger = thisComp.layer("CONTROLS").effect("HouseDetailsColumnNumber")("Slider").value;
var myColumnString = "Column" + myColumnNumberAsInteger.toString();

var myStartingRowNumber = thisComp.layer("CONTROLS").effect("HouseDetailsRowNumber")("Slider").value;
var myGoodDetailsFirstRowNumber = myStartingRowNumber + 9;
var myGoodDetailsSecondRowNumber = myStartingRowNumber+ 10;
var myGoodDetailsThirdRowNumber = myStartingRowNumber+ 11;
var myGoodDetailsFourthRowNumber = myStartingRowNumber+ 12;

var myGoodDetail1 = comp("myCSVComp").layer("myCSVDataLayer")("Data")("Outline")(myColumnString)(myGoodDetailsFirstRowNumber);
var myGoodDetail2 = comp("myCSVComp").layer("myCSVDataLayer")("Data")("Outline")(myColumnString)(myGoodDetailsSecondRowNumber);
var myGoodDetail3 = comp("myCSVComp").layer("myCSVDataLayer")("Data")("Outline")(myColumnString)(myGoodDetailsThirdRowNumber);
var myGoodDetail4 = comp("myCSVComp").layer("myCSVDataLayer")("Data")("Outline")(myColumnString)(myGoodDetailsFourthRowNumber);
var myFinalString = ""
if (myGoodDetail1 !=""){myFinalString = myFinalString + myGoodDetail1}
if (myGoodDetail2 !=""){myFinalString = myFinalString + "\r" + myGoodDetail2;}
if (myGoodDetail3 != ""){myFinalString = myFinalString + "\r" + myGoodDetail3;}
if (myGoodDetail4 != ""){myFinalString = myFinalString + "\r" + myGoodDetail4;}
myFinalString.trim();

 

Translate
Report
Valorous Hero ,
Sep 03, 2025 Sep 03, 2025

You'll want to get the style from a specific text layer to ensure you're getting the correct style. In other words - do not rely on the Essential Graphics Panel to store your text styles

There is a 'systems approach to this' but since you've already started, simply use an expression line to get the text styling from a specific layer and it's best to declare a new value for setJustification(). 

So, perhaps something like this may work but take note the expression below does not perform a get text styling procedure but it does make use of expression caching to help speed up the Expression and it's got a setJustification() code snippet.

// Cache control values
var controls = thisComp.layer("CONTROLS");
var colNum = Math.round(controls.effect("HouseDetailsColumnNumber")("Slider").value);
var startRow = Math.round(controls.effect("HouseDetailsRowNumber")("Slider").value);
var justifyValue = Math.round(controls.effect("JustificationControl")("Slider").value);

// Build column string
var colString = "Column" + colNum;

// Access CSV data layer
var csvLayer = comp("myCSVComp").layer("myCSVDataLayer")("Data")("Outline")(colString);

// Define row offsets (+9 to +12)
var rowOffsets = [9, 10, 11, 12];
var details = [];

// Collect non-empty details
for (var i = 0; i < rowOffsets.length; i++) {
var row = startRow + rowOffsets[i];
var detail = csvLayer(row);
if (detail && detail !== "") {
details.push(detail.trim());
}
}

// Get current text style
var style = text.sourceText.style;

// Map slider to justification values
var justifications = ["alignLeft", "alignCenter", "alignRight", "alignJustified"];
var selectedJustification = justifications[justifyValue] || "alignLeft";

// Set text content and justification
style.setText(details.join("\r")).setJustification(selectedJustification);


 

Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV
Translate
Report
Community Beginner ,
Sep 03, 2025 Sep 03, 2025

That is very helpful! Thank you for the detailed response! I really appreciate your time on this.

Translate
Report
Valorous Hero ,
Sep 03, 2025 Sep 03, 2025
LATEST

You're most welcome. And I wanted to share this URL in my previous post but forgot about it as I was multi-multitasking. Here it is - https://ae-expressions.docsforadobe.dev/text/style/#textstylesetjustification

BTW, your original post was also about performance - has there been any improvement in this area?


HTH

Very Advanced After Effects Training | Adaptive & Responsive Toolkits | Intelligent Design Assets (IDAs) | MoGraph Design System DEV
Translate
Report