SE - Syncing wav playback to VST host

Modular Synth design and releases (Reaktor, SynthEdit, Tassman, etc.)
RELATED
PRODUCTS

Post

Hi there,

I have just re-installed synth-edit on my machine again after demoing a while ago just playing around with the synth examples.

This time I am trying to make a wav player that will sync playback with a VST host.

I have managed to create a simple wav player with an ADSR envelope. This I am able to trigger via MIDI. The thing that I want to be able to do though have the wav synced purely to the playback of the host instead.

i.e. Play halfway through a song and have the wav play at the same time position of halfway through the wav (with this example the wav being as long as the song)

Is this possible with SE and if so, some pointers would be much appreciated?

Cheers

4tune

Post

Anybody have any knowledge or experience with this? :help:

Post

Hmm. What host are you using? Everything you've mentioned there is normally standard (and a damn sight easier to do!) in most hosts. :?

Anyway, if you're really wanting to do this the hard way it should be possible (at least in part, see later for likely problems) to make one using third party modules in particular Chris Kerry's (CK) "Host position" module and Dave Haupt's (DH) "Waveplayer2" and "Wavefile info" modules. The CK module is, as far as I am aware, the only way to make Synthedit VSTs to respond to host position. The DH Wavplayer2 module has extra controls for the start position of the sample that the standard SE Module doesn't have and the wavefile info module will give you the length of the wavefile in seconds.

What you will need to do is translate the CK modules "seconds" output into a figure that the DH module will understand (it uses a scale of 0-10, 0 being the start of the sample, 10 the end). This will require some maths and some clever switching to send this info only when it's needed (you don't want the startposition pin to be fed constant information, it's uneccessary and likely to create problems). You will also need to create a gate to trigger your sample each time you press play but that should be simple enough to construct.

The only thing I can't think of a simple way around is the fact you wish to use an ADSR on the sample. There's no easy way to restart an envelope at exactly the position you require. What will happen instead is the envelope will retrigger every time you restart the host. I would suggest instead simply adding a VCA to your VST and making this available for automation. That way you could use your hosts automation to adjust the volume in a much more controllable manner.

Hope that helps! :)
Image

Post

Thanks ezeeboogie,

This is more than helpful!

I am using renoise as a host and unfortunately this is one of the limitations of that host. i.e. It will only trigger samples and not start/ stop them at song position.

I will check out the CK module and try and polish my SE skills enough to get this done.

I can also live without the ADSR envelope so that is no prob.

Again cheers :)

4tune

Post

ezeeboogie wrote: What you will need to do is translate the CK modules "seconds" output into a figure that the DH module will understand (it uses a scale of 0-10, 0 being the start of the sample, 10 the end). This will require some maths and some clever switching to send this info only when it's needed (you don't want the startposition pin to be fed constant information, it's uneccessary and likely to create problems). You will also need to create a gate to trigger your sample each time you press play but that should be simple enough to construct.
Hi again ezeeboogie, having seen that the CK modules require a donation before you can try them, I am just trying to think this solution through first. The problems I am seeing with this is that when you have changing sample length / host song length, the scale all changes for sample position. This I am guessing causes a real headache problem.

Also I am wondering how accurate this method will be. Apparently the DH waveplayer2+ is sample accurate but if I am doing conversions in timeframes could this be not as accurate as if the source was sample accurate too?

Any ideas on this much appreciated.

Post

Hi there, I have managed to obtain the CK module to try (Thanks to Chris for this). The following scheme is what I have come up with so far:

Image

With this scheme the the wav will start and stop when the transport is started/ stopped in renoise but sync is be lost if navigating between pressing play and stop.

Any advice on the next steps would be much appreciated with regards to the switching / conversions etc.

Cheers

4tune

Post

:shrug:

I tried man...

and what if you change the tempo of the host...

What then ?
Last edited by Midiworks on Tue Sep 20, 2005 9:28 pm, edited 1 time in total.
Image
DSP with attitude

Post

Midiworks wrote::roll:
:shrug:
:?:

Post

I tried to tell you before that there is NOT any kind of time code
in your wav file.
So there is no way, no module that can or will sync to it.
i.e. Play halfway through a song and have the wav play at the same time position of
halfway through the wav (with this example the wav being as long as the song)

No way... unless you chop the wav into many small parts,
(each a quater or half or 1 bar long)
and than retrigger the correct piece at the correct song possition. :-/
Image
DSP with attitude

Post

Midiworks wrote:I tried to tell you before that there is NOT any kind of time code
in your wav file.
So there is no way, no module that can or will sync to it.
That's not what he's asking for.
No way... unless you chop the wav into many small parts,
(each a quater or half or 1 bar long)
and than retrigger the correct piece at the correct song possition. :-/
As opposed to moving the playback pointer to halfway into the WAV file? Why cant he do that?
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post

Ah hello rene (missed your handle on SEUG). I was guessing/ hoping that the module itself would be able to have a controllable `transport control` which it would use to play the wav.

My intention was never to get the song position from a wav which is why your first reply didn`t answer the question fully for me.
Where would you get a song possition from a wav ? ;)

Cheers
Rene
Anyhow if the current modules cannot work in this way (the way I`m guessing eXT does this) then they can`t..

The other replies I have received (from the module makers also via email) gave the impression that a workaround for this should be possible..

Post

whyterabbyt wrote: As opposed to moving the playback pointer to halfway into the WAV file? Why cant he do that?
Yes this is exactly what I was thinking could be possible before.

Post

Midiworks wrote::shrug:

I tried man...

and what if you change the tempo of the host...

What then ?
Tempo of the wav related to host is not the important part for this wav player for me. The syncing would be purely to time. As said before the model for this being eXT`s handling of this.

Post

whyterabbyt wrote: As opposed to moving the playback pointer to halfway into the WAV file? Why cant he do that?
So, you want a vst to control the host sync... ? :?


What kind of thing are you working on 4tune ?
Image
DSP with attitude

Post

Midiworks wrote:
whyterabbyt wrote: As opposed to moving the playback pointer to halfway into the WAV file? Why cant he do that?
So, you want a vst to control the host sync... ? :?
Not the host pointer (but I am assuming here what whyterabbyt is saying) the internal `pointer` of the waveplayer module in SE.
What kind of thing are you working on 4tune ?
For an example of functionality see eXT sequencer when synced to external (with eXT as VSTi/e in another host)..

Post Reply

Return to “Modular Synthesis”