Text to wave table diffent words on notes

Can I get text to wave table to play a different part of the text depending on the note or different texts depending on a note. I’m trying to play a chant which needs to have words repeated in various orders. I can change where the voice text starts but got no further. Thank you.

This is sort of tricky to accomplish and it has to be done in steps.

The essence of it is, you will use some parameter to offset the wavetable LFO start (which is changing where the voice text starts, as you describe) and use a second LFO to restrain the play-through of the first LFO to a specific range.

The first step is to set an LFO to control the wavetable position on your TTWT. Now, figure out how many “words” or chunks you want the TTWT to have, and set the LFO to have that many points in its grid (in my example, it’s 8 nonsense syllables, so I used 8 grid lines… if you wanted to use 3 words, you’d divide the LFO grid into thirds). You need to draw the LFO curve so that one word fits into each of the subdivisions you’ve drawn (this is necessary because TTWT will not necessarily produce words of equal length). The idea here is that you will get one word for each equal “fraction” of the wavetable. You can’t really do this otherwise, without further complications.

Next, set your first LFO to freeze, so it doesn’t move on its own.

Now take a second LFO and generate a ramp from 0-1, and map it to the phase slider of the first LFO. If you did this right, your second LFO will “play” your first LFO. Now you want to use your Mod Remap to restrict the depth/range of this LFO so that it only covers one “slice” of your first LFO (if you used 8 syllables, the 2nd LFO covers exactly 1/8th the 1st LFO range. If you used 3 words, it covers exactly 1/3rd the first LFO range. etc). You can set this LFO to loop, or to stop at the end, or whatever. It will traverse the single word in whatever way you want.

What you have got so far is a patch that plays the first word of your TTWT. Now the magic part: you’ll pick some other STATIC parameter, and ALSO map that to the phase of the first LFO. In the example I provide, I used velocity, so I could program the different syllables independently of the notes in question. You could use Oct Note as well (so each note played a different word), or use a Macro, or Note Random, or anything else. As long as the value doesn’t change over time. The parameters at the bottom right are great for this (velocity takes in the note velocity, Oct Note does a remap based on which note you play but it wraps around every octave, and random chooses a random value every new note)

In the mod remap of THIS parameter, you want to set up a constant grid with the same number of X any Y divisions as the number of words in your LFO, and draw a step pattern. That way, no matter what PRECISE value the velocity/note/etc sends, it gets “snapped” to the nearest word start point.

So now, you can manipulate this second parameter to choose where to start your TTWT LFO, and it will progress across the duration of exactly one word only, based on your second LFO. If you want some words to be longer, you could also automate/map the rate of the second LFO to make that happen

e.g. Let’s say you used velocity to select a word. If you have 3 words, which are “let’s”, “get”, “mechanical”, and you wanted “mechanical” to take twice as long to say as the others, you would also map velocity to LFO 2’s rate, and use the remap for that connection so that it was some given speed for the first 2/3rds, and then for the last 1/3rd it was slower. That way when you play the “mechanical” velocity, you select that word at LFO 1 AND select that slower play-through speed at LFO 2.


Syllabic.vital (463.4 KB)

A demonstration. This uses 8 evenly-timed syllables, but I could do something different depending on what precisely you needed. I also use Macro 1 to control the vocoder formant of the chant.

Let’s Get Mechanical.vital (390.0 KB)
And here’s how you’d use the variable-rate LFO to make some words take longer than others.

Thank you, not entirely sure how it works but I have played with some of the parameters to change the start point. From this it will be possible to understand it.