Text Reveal
A node that takes one string and grows it a little at a time every time a trigger arrives. With DJ ABCD you get D → DJ → DJ A → DJ AB … — what comes out of Out is always a substring starting from the head of the body. It does not draw anything, so you send it to something like Text Render to use it.
You either write the body directly into the field on the node, or feed it in through the Text input port (this is also where you receive lines from Text Queue or Lyric Sequence).
Unit (the Unit dropdown)
- Char (default) — one step per non-whitespace character. Whitespace comes out together with the character that follows it, so no silent step is created where only whitespace is added
- Word — one step per word, split on whitespace
The steps are recounted when you change the body or the unit, and the current position is kept, rounded back into range.
Advancing and looping
There are Total+1 stages, from 0 (empty) up to Total (the whole text).
- Next — advance one step
- Back — go back one step
- Reset — return to 0 (empty)
- Loop toggle (default ON) — with ON, the step after the whole text goes back to empty (which makes a one-step gap). With OFF it stops at both ends, empty and the whole text
The ◀ ▶ ⏮ buttons on the node do the same thing as Back / Next / Reset, and current/total is shown next to them.
Notes on the outputs
- Out — the substring from the head up to the current step. An empty string at 0
- Index — the number of steps emitted (0 is the empty state)
- Total — the total number of steps (0 if the body is empty, in which case sending Next / Back does nothing)
Where to use it: because advancing is a trigger, wiring it to an LFO’s Cycle Trigger or to a Clock gives you a BPM-synced typewriter display. Use Index / Total as a modulation source for color or size and you can build an effect that changes as it approaches the end.
Input ports
| Port ID | Type |
|---|---|
Text | string |
Next | trigger |
Back | trigger |
Reset | trigger |
Output ports
| Port ID | Type |
|---|---|
Out | string |
Index | int |
Total | int |
Scriptable members
| Path | Type |
|---|---|
textInput | string |
text | string |
unit | int |
currentLoop | bool |
Synapse Apps (scripting)
await synapse.modules.create({ type: "TextReveal" }) 









