Feature Request: Text Device

Hey Everyone,

one of the things I am missing from Videosync is the ability to overlay text. I asked Jean-Paul about it and while they seem open to it, it seems to me like a persuasion work to get this done.

So please like and reply if you feel like that would be useful to you.

Cheers

4 Likes

To anyone interested in overlaying text with Videosync, while we don’t have a native solution yet, I did make a prototype with Max/Jitter a while ago. The device outputs its texture to Spout/Syphon by default, so the only thing required to get it into Videosync is using an External In device:

Since this is a Max/Jitter approach, this won’t work when using Videosync in Networked Mode.

2 Likes

Yes, I am looking for the ability to trigger a text line in live performance with a specific MIDI note assignment with my MIDI controller. More specifically, I’d like to trigger English translations of non-English lyrics when I trigger a vocal sample in the non-English language with my MIDI controller. I will try out Jean-Paul’s Max device to see if I can do this. Thanks!

Turns out there were still a few bugs with the prototype device, which are now fixed:

  • Stored titles/messages are now recalled when reloading a Live Set.
  • The chosen font is now recalled when reloading a Live Set.

New link for v0.3

2 Likes

So cool that you are working on this!

thank you jean , this is lovely plugin everything is perfect, but when I automate the next text, it always seems like one text is left behind.

Hey Ashkan, thanks for bringing this up! I personally can’t really reproduce this, except when I set the Transition Time to something longer than 0.00ms (like 1.00s). Is this what you’re referring to?

thanks, i dont use transition time it is set to 0.00 ms. when i write a text for example A in 20 and write B in 21 after that when i play timeline A is Disappeared. i should write again A but Disappeared again

I only just checked this out, and I think it’s great. My only comment at this point would be good to allow a bigger overall background size, so that larger chunks of full-sized text can be scrolled across the screen in both X & Y directions.

I can reproduce this now, but can’t say when I’ll have time to look into fixing this. Either way, it’s on my radar now :slight_smile: - thanks for letting me know!

Hey Rob! Just checking, but have you tried increasing the Line Width (“Width” in the UI)?

1 Like

you mean here?

if so - yes. Is there any way of increasing the max size there?

I think what you want should already be achievable by using the Size/Scale, Position and Position Multiplier parameters, but correct me if I’m wrong :slight_smile:

1 Like

it’s highly likely that you’re not wrong :slight_smile: …but i will play around and see what I can do.

I understand your suggestion of using scale, but won’t that create some crunchy aliasing on the curves? Maybe I have misunderstood how this is generated. I will find out…

this is a rough demo of what i’m trying to achieve… I had to use the Transform to get the scale I wanted so the font edges are not as crisp as I’d like. You can see all my settings if this clip uploads properly. This is not an urgent request, but please let me know if I’m missing something obvious..:

_Screen Recording 2025-07-30 at 19.32.28

thanksssss, i am so happy

@Jean-Paul Thank you so much for working on this and sharing it!

This may not be the best place to report issues, but I noticed that when a title contains a comma, automating the title index causes the number of backslashes prepended to the comma to exponentially increase whenever the title is changed. I think this can be fixed by changing the update of the messages dictionary in titleEngine.js (line 35) to:

messages[messageIndex.toString()] = text.replace(/\\([",\\])/g, "$1");

For readability’s sake, it may also be a good idea to use an analogous regex when adding backslashes (lines 53–55):

message = message.replace(/[",\\]/g, "\\$&");

Since this is the only place I’ve shared the protoype, I think it’s the perfect place to share your findings :). It’s been quite a while since I’ve touched this device, and I’m not sure when I’ll be diving back into it just yet, but I welcome any feedback, so thank you!

1 Like

@Jean-Paul Thanks again for sharing this device!

I found another issue. The Title Index live.numbox has a Unit Style of Int, so it appears as an integer in Live, but its data type is actually Float. Because of this, the value output by the live.numbox is sometimes very slightly different from what’s displayed because of precision issues. For example, when the Title Index is 6, the value output by the live.numbox is 5.999999. That number is sent to a trigger object with an i type output. Unfortunately, trigger truncates numbers output from an i outlet instead of rounding them. The effect is that when the Title Index is displayed as 6, internally the index is actually 5.

I patched this by setting the type of the Title Index to Int (and changing the Exponent to 1). I should note that doing this will remove any pre-existing automation of the Title Index in Live.

1 Like

Thank you Nate! I think that should solve the issue that @Ashcome was experiencing!

I’ve gone ahead and done a small update, bringing us to v0.3. There is still much I’d like to go over and improve, but I think there is enough here to make it worth sharing another update. Download it here.
Based on the feedback in this thread (thank you @ridge!) I have tweaked some parameters, hopefully making the device more usable for a variety of cases.
I still welcome any feedback, as this gives me a good idea on how to further calibrate parameter ranges.

Changes for v0.3:

  • Changed the Title Index data type to Int. This should resolve the bug pointed out by @ashcome. Parameter range is now 1-128, and the exponent is now set to 1.
  • Messages consisting of multiple lines are now possible, and escape characters (like backslashes) are no longer needed.
  • Added a “Limit Line Width” toggle, that while disabled, makes the line width unlimited. While enabled, the Line Width can be limited to 10-3840px.
  • The Font Size parameter range is now 1-1000.
  • Letter spacing parameter range is now 0.10-100.
  • When using the device on Windows, “Syphon Out” now reads “Spout Out”.
  • Updated a few info texts.
3 Likes