Help! on creating a rolling text effect

purgatoryEDIT.letterSelector.vuo (3.3 KB)

I have trying to create a rolling effect for text, similar to the old boards at the airports. I have found a way to cycle through letters and then stop only when the correct arrives. This is all good for one letter or smaller texts, but I would need this to work with diffrent lenghts of text and possibly to a lentgh of up to 80-100 characters. I’ve tried to use the build list, but couldn’t get the thing to work properly.

This subcomposition can be then attached to a source text and a “cycle through list” with the alphabet in the list.

Included here is version with the subcompostion included for a 6 letter word (SAMPLE). It shows how it should work. Having 80 copies of this seems a bit excessive, so I would appriciate if someone can point me towards a more elegant sollution.

SAMPLE text roll.vuo (18.6 KB)

1 Like

Hej Jernej,

Check out the joined composition to see if this mimics the effects enough or if you’re looking for a different effet.
This is made using shuffle list.

Cheers

Text Shuffle.vuo (5.4 KB)

2 Likes

Thank you for this pointer. There are a few interesting approaches in here that will definetley give me more ideas. This was not exactly what I was aiming for, I would like for the text to go through the alphabet a bit like the mechanical boards, but if I can’t make it work this could be a great secong option.

1 Like

Mmm. Sorry, rolling from A down the alphabet until the correct character is set seems trickier than I thought. Gave it some tests but couldn’t come with a working solution.
Should be a way though ;)

I know there should be a way. I was able to get it work for 1 letter at a time. The itteration part is where I’m stuck.

Here’s a version with iteration:

Text Roll Test - simple.vuo (5.5 KB)

When you tried converting your composition to use iteration, you may have run into a problem where, once you reach the match for the “A”, the rest of the letters would stop rolling. That would be because of the Became True node. If you have a separate instance/copy of the Became True node for each letter, then it can keep track of the state for that one letter. But once you collapse down to a single instance of Became True that’s being executed repeatedly in a loop, then you’re passing all of the letters through it in succession, and it can’t keep track of any one letter.

The above composition solves the problem by realizing that you don’t really need to keep track of each letter’s state (i.e., has it reached its match or not). You can decide what to display just by comparing the target letter to the current rolling letter. (This assumes the rolling letters go through the alphabet in ascending order.)

Below is a second version that illustrates how you’d solve the problem if you did need to keep track of each letter’s state. Each time the Build List node goes through the word, the letters’ states are stored. Then the next time through the word, they’re fed back in, one letter at a time. This gives the subcomposition enough information to decide what to display without it having to keep track of any state internally.

Text Roll Test - stored states.zip (3.3 KB)

Thank you! I will need some time to revise and dive deep to understand the logic. This is a great example for myself to understand better the logic of VUO.

2 Likes

Damn Jayme, that’s elegant !
And while I didn’t even get the process loop part to work, I wouldn’t have guessed Is Less Than to work with characters and know B is less than A ;)
Nice

2 Likes