any Math formula Synth plugin?

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
RELATED
PRODUCTS

Post

Does anyone know a realtime math formula Vsti synthesizer?

thanks!
Elias Panagiotopoulos
E-Mail: info@endovlane.com
Website: http://www.endovlane.com

Image

SOUND DESIGN / GAMES AUDIO /PROGRAMMING
MUSIC PRODUCTION / MUSIC CREATION

Post

What exactly do you mean by that? Are you trying to generate signals that are the output of an expression that you type, e.g. sin(t)+sin(2*t)?

Post

How would that work exactly?

I've written an expression evaluator that supports being programmed with an oscillator, filter, envelopes and so on. If the "code" were divided into a few sections such as "init", "reset", "note on", "modulation", "render", "post process" I suppose you could create a complete synthesizer this way.

Code: Select all

// a test of basic functionality of the expression evaluator

#include <ad/exp_eval.h>

int main(int argc,char *argv[])
{
	char init[] = 
		"i=1;"
		"f=1/10;";

	char run[] = 
		"x=x+f*(i-x);"
		"y=y+f*(x-y)^2;";

	printf("init\n{\n\t%s\n}\n\n", init);
	printf("run\n{\n\t%s\n}\n\n", run);

	exp_eval::evaluator::static_constants += exp_eval::var("pi", 3.141592653598);
	exp_eval::evaluator::static_constants += exp_eval::var("e", 2.718281828459);

	exp_eval::evaluator ev;

	printf("printing variable \"y\"\n\n");

	int row = 0;
	ev(init);

	for (int i = 0; i < 64; i++) {
		ev(run);
		printf("%0.2f", (float)ev["y"]);
		row++;
		if (row < 8) {
			printf(", ");
		} else {
			row = 0;
			printf("\n");
		}
	}

	return 0;
}
The only issue is that it wouldn't be very far from one of two options. Either it would be not much different than writing your own plugin using a library like JUCE, or it would not be far from assembling the very same components using a GUI interface like synthedit.

It also would be extremely inefficient with significant amounts of effort needing to be invested toward optimizing the code you'd enter. Running the expression evaluator in a naive interpreter mode would be atrocious, while even attempting to use it in the standard "compiled" mode is completely impractical for more advanced audio-rate applications.

You probably want to look into a tool like reaktor which is specifically designed for this sort of purpose only with all that massive effort already invested toward optimization.

There are also other places you can find similar systems to what I've described, such as in Reaper (apparently, not something I've investigated first-hand) but I am not aware of any plugin capable of everything required to construct a fully functional synthesizer.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

ghettosynth wrote:What exactly do you mean by that? Are you trying to generate signals that are the output of an expression that you type, e.g. sin(t)+sin(2*t)?
Exactly something like this but with further potential. Like the ability to modulate with envelopes and lfo' s the available formula factors (amplitude,phase and other).

Some good examples is FuncShaper Vst, that you can use 4 parameters inside your formula. I love this vst effect but it hasn't got the possibility of continuous data changing, or automation of these parameters.
http://www.rs-met.com/freebies.html

Another example is the fruity formula controller.
Elias Panagiotopoulos
E-Mail: info@endovlane.com
Website: http://www.endovlane.com

Image

SOUND DESIGN / GAMES AUDIO /PROGRAMMING
MUSIC PRODUCTION / MUSIC CREATION

Post

Caustic 3 has one too ("8bit equation solver synthesizer").
Image

I'd be interested as well. I was very intrigued by the one in Caustic 3 (it's standalone only) and went looking all over the place but was unable to find anything like it.

Post

pigtronix did a delay unit that used phi as a part of its process so it has a lot of potential
if you can create some automation to create movement in time and across parameters using creative math processes.

Post

I could probably throw this together in a couple days, just that I really don't think you'll get more than a handful of voices out of it.

Also, while I invested quite a lot of effort into the expression evaluator, this is a very complicated piece of code. There are literally hundreds of different functions and components involved just with entering a sub-routine that calls other sub-routines that call functions and so on.

I suppose for polyphony it would be possible to just duplicate the definition of the voice components and not provide any ability to index voices from the post-process or other sections.

I'd like to do this but no promises, there is a significant amount of work that might need to go in and it'll really depend how lucky things turn out when I try.

Of course it might turn out to be loaded with bugs and totally impractical requiring tons of effort to get it to work correctly. :shrug: I'll post again if I manage to get anything working. Don't know when I might.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

DNR Wave Designer had this to create waveforms (actualy you were able to create some quite long and complex formulas), besides a free draw editor.
Currently the website of Team DNR does no longer seem to exist.


Ingo
Ingo Weidner
Win 10 Home 64-bit / mobile i7-7700HQ 2.8 GHz / 16GB RAM //
Live 10 Suite / Cubase Pro 9.5 / Pro Tools Ultimate 2021 // NI Komplete Kontrol S61 Mk1

Post

aciddose wrote:How would that work exactly?
This could work like an expression evaluator, with further abilities to waveform structure.
Ingonator wrote:DNR Wave Designer had this to create waveforms (actualy you were able to create some quite long and complex formulas), besides a free draw editor.
Exactly something like this tool, but packed in a full functioned Vsti synthesizer.

I am programming something like this in max msp and experimenting on the combination of various random or already existing formulas (an example that i like, is the gaussian formula through fm synthesis formula, all multiplied by a sine wave (AM)). If you feed with continuous float numbers the parameters or factors of the formula (with very precise and careful choices), as a result it has dramatic changes in the waveform.

Maybe it is possible to construct a "modular" system, that combines in realtime various mathematic expressions, and further usage of its parameters (with lfo's and envelopes).
aciddose wrote: I've written an expression evaluator that supports being programmed with an oscillator, filter, envelopes and so on. If the "code" were divided into a few sections such as "init", "reset", "note on", "modulation", "render", "post process" I suppose you could create a complete synthesizer this way.
This sounds really interesting! If I understand correctly, this works like a full function synthesizer, that combines its modules with an expression evaluator via text?
aciddose wrote: Also, while I invested quite a lot of effort into the expression evaluator, this is a very complicated piece of code. There are literally hundreds of different functions and components involved just with entering a sub-routine that calls other sub-routines that call functions and so on.
If you proceed to any further steps, could you let us know?
thanks!
Elias Panagiotopoulos
E-Mail: info@endovlane.com
Website: http://www.endovlane.com

Image

SOUND DESIGN / GAMES AUDIO /PROGRAMMING
MUSIC PRODUCTION / MUSIC CREATION

Post

In general terms, I agree with aciddose. For naive implementations one could write something that is reasonably small. The expression evaluation is not really the difficult part, it's efficient execution that's the bear.

Reaper will allow you to do this sort of thing in a limited sense. AFAIK, there's only a simple tone generator that comes with Reaper, but, you can download this guys work to see how to do a simple monosynth in JS (jeusonic) scripting.

http://www.taletn.com/reaper/mono_synth/

Post

There is a post about a mini programming environment in the DSP forum http://www.kvraudio.com/forum/viewtopic ... 3&t=402054

Post

FL studio had a controller that you input formulas into. I can not remember what it is called or how it is used. Just had a look on the Image Line site and have not been able to find a reference to it. Perhaps it is no more or is just legacy.

Just found this: Fruity Formula Controller - Define your own controller functions using mathematical formulae.

You can use it to control all parameters of synths etc but I am not sure if it can be used to generate a waveform.

Post

stonestreet wrote:FL studio had a controller that you input formulas into. I can not remember what it is called or how it is used. Just had a look on the Image Line site and have not been able to find a reference to it. Perhaps it is no more or is just legacy.

Just found this: Fruity Formula Controller - Define your own controller functions using mathematical formulae.

You can use it to control all parameters of synths etc but I am not sure if it can be used to generate a waveform.
Yes, if you're talking about just generating control signals at a low event rate, then there are a few choices. You can use, for example, LuaVST to program in lua inside of a vst. I've used it to create midi randomization effects and little sequencers.

Post


Post

I used to write MATLAB code that could generate harmonic series coefficients for any periodic function using Fourier analysis for use in my Kawai K5000 additive synthesizer. I really think additive is a good way to explore the different sounds of mathematical functions.
"I guess one person can make a difference, but most of the time they probably shouldn't." -M. Simpson

Post Reply

Return to “Instruments”