An automatic MIDI to Vital LFO converter

Code: https://github.com/Bluskript/midi2vital
Preview: https://www.youtube.com/watch?v=AgG_4bDf9tg

A small experiment I made the other day. You know all those ‘song-in-a-synth’ presets that have been circulating? I’ve decided to try making a program that automated the process. Unfortunately, it feels quite out of tune a lot of the time because there is no proper way to represent triads without using all 3 OSCs. Also, it can only play 30 notes because otherwise it’ll use more than the 100 point LFO limit. If it’s possible, could this limit be raised, maybe to the 32-bit integer limit :slight_smile: ? Either way, it was a pretty cool project and I learned a lot from it.

4 Likes

This is quite interesting! And I’m just now seeing that Vital files are just JSON- so now I’m wondering if creating hybrid presets (like in Serum) is possible. Or randomizing preset to an extent where they are still guaranteed to make some sound.

And perhaps now there is a way to convert .vitaltable to .wav for use in other synths. I know what I’m doing today :slight_smile:

3 Likes

thanks for sharing.

@snfk you can export to .wav from wt editor burger menu.

2 Likes

:expressionless: can’t believe I missed that - thanks for pointing it out :slight_smile:

the problem is there are so many options in vital.:nerd_face:

i´m not even sure if i forgot the lfo phase slider or just didn´t see it.:crazy_face:

Why not simply export as wavetable? Go into the wavetable editor, click the menu and select either “export as wavetable” or “export .wav”. Not quite sure why there’S both options, because a wavetable is basically a wave file either … at least in terms of how synths like Icarus interpret it.

1 Like

I did quite some investigations and experiments with respect to the file format… JSON sigh… not really a good decision when it comes to storing binary data (wav) as base64 encoded blobs. It makes the files considerably bigger then they need to be.


Anyway, about your idea of generating hybrid presets. I thought of that idea too. My idea was to load all presets and kind of mix up their “modules”, i.e. take the lfo of preset A and that of B and the wavetable of preset C and put them all together in a new preset … but I’m to lazy to create this progy.

1 Like

Thanks to Vlams implementing a new LFO technique, it now supports up to 6 different voices and uses phases and also sounds good.

Video preview

1 Like

I did something similar with Helm’s JSON presets. Basically, rather than completely randomizing things, I would randomly select from “building blocks” of parameters that had known useful effects (for example, an envelope filter for a pluck sound). Then I would make smaller perturbations on the resulting preset.

The tool could also extract parameters from a folder of presets to build new randomized presets. Point it at a folder full of basses, and you usually got bass sounds out the other end (of course there are so many crazy types of basses these days that if you had house organ basses mixed in with wobbles, reese basses, and growls, who knows what you would get.

I’d love to build some similar tools for Vital, but it would obviously be a lot more complicated.

3 Likes