SynthMaker

Tempo Multiplier / Tempo Divider

Archive · 2012 12 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

iamnemo ·

Hello from Canada! A question for you SM experts: how easy would it be to create a VST hosting plugin (itself a VST) that would have a "tempo multiplier/divider" function?

It would then be possible to sync any VST inside of it to any fraction (1/2, 1/4, 2x, etc.) of the Host application tempo (e.g. Sonar). A lot of VSTi (e.g. NI West Africa) have nice arpeggiators built into them but no way to multiply the host tempo to play them slower (or faster). Sometimes it is not practical to set a fixed tempo because the song has many tempo changes itself. Each track could have a different tempo sync'ed to the Master Tempo of the main host (e.g. Sonar).

Been looking (as many others) for such a simple VST plugin for this purpose for a long time now to no avail...

Some discussions:

http://www.native-instruments.com/forum ... p?t=164592 http://www.native-instruments.com/forum ... stcount=18

Thanks for any help!!

CoreStyler ·

Hi! First of all, Synthmaker does not host VSTi. So you can't create a vst that host vst. You can create a synth with any kind of arp with all fractions, using code and PPQ to sync host. There are a lot of examples.. (but a bit of code is required synce green data here on sm is not accurate).

But the fact is that you can't host a plugin inside, you can create one but no way to do such things.

Maybe synthedit has a built-in vst hosting function. And, take a look of Sensomusic Usine.

Cheers

iamnemo ·

Thank you for your reply and suggestions. I've checked... no luck so far but good to know. I'm also looking into Plogue's Bidule and others.

Could you explain "synce green data here on sm is not accurate" please? I'm confused. Sorry if this is trivial... Thanks!

CoreStyler ·

Synthmaker is a VPL. "visual programming language" or environment. This mean that you have some part of code, called primtives, that combined (linked) create a complex operations. Like read files, manipulate audio etc. Green data (for SM and also code, since when you use a programming editor color changes based on kind of data.) mean integers, floats, strings, arrays.. This kind of data is easier to manipulate in synthmaker, and is visualized instantly. To do 5 * 100, you just need to connect 5 [integer or float] to the primitive that do the multiply operation, and then connect with 100 [integer of float]. If you add a float or integer at end of the visual schema, you got 500. (or 500,0 if float). Green data is not accurate because you won't get a perfect sync to the host using this way. (a bug of synthmaker, and error of other languages too)... And is also CPU intensive for an arpeggiator. (because values changes too rapidly).

Synthmaker allow low-level DSP programming via SM code or Assembly. By this way (but just a little for a simple arp) you get an accurate timing/syncing and less cpu usage from the arp.

As i said, Synthedit instead can host plugins. Should be possible to create a plugin, with hard-coded path of your vst you want to mod, that load the plugin inside your own plugin.. then you can create something as an effect. But, since you can't access the plugin source, you will never able to create a poly arp!. Since you can add parts only after the output of plugin. (same thing when you add a plugin to a mixer chain). To create something that is like an arp for a plugin you don't own the code, should be almost possible to create a pitch shifter that modulate the pitch based on a sequence. (lfo or midi). But this will be really hard if you (i can't help you) are not a programmer, DSP engineer.. or a good mathematician. 😀

About changing tempo of track (and pitch not) should be easier. But i don't know how. Output tempo should be changeable creating an effect.. but to do accurate things will be complex too, also in low level code.

Why you don't change tempo/quarters inside midi message of your project? I don't know if sonar can do such things.. but recorder audio can be time stretched.

GaryG ·

CoreStyler wrote: You can create a synth with any kind of arp with all fractions, using code and PPQ to sync host. There are a lot of examples.. (but a bit of code is required synce green data here on sm is not accurate).

Do you have pointers to any examples? I've just broke SM out again for the first time in a couple of years, wanted to revisit an old project but sad to see the green-timing issues haven't been addressed yet.

Cheers.

edit: hee, forgot all about that avatar... 🙂

CoreStyler ·

I can post an example of arpeggiator using Step LFO synced with host. The sync code is made by others found here at sm website. But this will not work after voices combined... eg. after plugins output. Im not at home, i can add it tomorrow if you want. 😉

iamnemo ·

CoreStyler wrote: But this will be really hard if you (i can't help you) are not a programmer, DSP engineer.. or a good mathematician. 😀

Funny you should mention this... I'm actually a research scientist (theoretical physics) and an electrical engineer very familiar with DSP audio applications 😀 I'm also a registered user of SM (my wife is a composer) and a user of similar systems (Matlab/Simulink) but I haven't used SM (or programmed myself) in a while and simply did not follow what you meant by "green data" in this context. But thanks anyway for the detailed reply... 😀

philter5 ·

i just remember that i read something about a tool that uses MATLAB with Simulink and DSP System Toolbox . you know this program? http://www.kvraudio.com/product/audio-p ... or-by-dlab

good luck phil

CoreStyler ·

Yes is a good solution the one presented by philter. It use Juce as framework if i remember well. About "green data". We call these part green since these primitives inside SM are green. Instead in Sm we can also say Blue data (mono), White data (poly, streams), Yellow data (gui)....

Good to ear that you are a scientist!.. Give us some DSP made in synthmaker. About low-level programming, SM has a built in dsp language c-like. 😉

GaryG ·

CoreStyler wrote: I can post an example of arpeggiator using Step LFO synced with host. The sync code is made by others found here at sm website. But this will not work after voices combined... eg. after plugins output. Im not at home, i can add it tomorrow if you want. 😉

It would be interesting to see this when you have the time, thanks.

CoreStyler ·

GaryG wrote: CoreStyler wrote: I can post an example of arpeggiator using Step LFO synced with host. The sync code is made by others found here at sm website. But this will not work after voices combined... eg. after plugins output. Im not at home, i can add it tomorrow if you want. 😉

It would be interesting to see this when you have the time, thanks.

Here:

It's the arp of my last synth Dominus. 😀 Not already out.

GaryG ·

CoreStyler wrote: Here:

It's the arp of my last synth Dominus. 😀 Not already out.

Thanks a lot for that, I need to pick it apart to see how I could use this in my project. Obviously being stream driven it only runs when a voice is active but I think I can work around that. 🙂

Thanks again.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.