New graphical programming system in the works....

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

Post

I want to know roughly how deep in c++ one has to dig to be able to understand scripting in Genera. How much of content from the page below one should understand to feel himself confortable with Genera scripting language?
http://www.cplusplus.com/doc/tutorial/

Post

Well, maki, that's a tough one... I'll answer with a commented script example:

Code: Select all

/* Well declare and define a class named vca. Classes to be used for instantiating Genera objects must inherit from class genera, which has all the methods needed for interfacing with the main program (things like getting values at input buttons and putting values at output buttons, etc).
You'll need to understand the basics of classes, objects, class methods and inheritance to understand how this works*/

class vca: genera	
/* notice that we are't using the word "public" (or "protected" or "private")after the ":" - one difference from c++ that we should get fixed */
{
// Here we declare the variable we will use (type float). Read about data types
	float gain;

	vca(void)
	{
	/* This is the constructor for our class. Here we can do several things - I'll just give some value to the variable we declared previously. Read about constructors - deconstructors (aka destructors) */

		float = 0.5;
	}

	void f(int index)
	{
	/* This is the method that will be called by Genera to process incoming events or at sample rate, depending on the type of object you create (eObject or aObject). Read about class methods */

	/* OUT(value, index) sets a certain value at button number(index). If index is not specified, #0 is used */
	/* fIN(index) gets the value at button number(index) as a float */
		
		float result;			// declare a new float variable
		result = fIN(0) * gain;		// perform a multiplication and store the resulting value
		OUT(result);			// put the resulting value at output button #0
	}
};
If you can read and understand what's going on in the example you'll probably be able to write more complicated stuff in no time. With just these knowledge (and the right amount of maths) you should be able to write scripts for modulating amplitude, oscilators, filters, and simple wave file players. When you find the need to write, for example, a delay, you'll need to read about arrays.

Hope this gives you a better idea of how scripting in Genera works.

Post

This is OK. So, one has to understand basic C and OOP concept like inheritance. What about other concepts like overloading, polymorphism, templates, enumerators?
Is MIDI going to be a part of the same basic class in Genera?

Post

Don't take this personally. I'm almost blind. A narrator would vastly improve the chances that I actually decide to try this tool. Right now it's at the very bottom of my priorities. No matter what platforms it supports. No matter what fancy stuff you can do with it. It's just that simple. So compose a new set of videos where you tell us with your own voice what you do, and what this does. I always give thumbs down to tutorial videos which uses notepad or message window to type the instructions.
Best regards from Johan Brodd.
JoBroMedia since 1996.

Post

Thumbs up for more tutorials! Yeaahhhh!

Post

maki wrote:Is MIDI going to be a part of the same basic class in Genera?
Overloading is fully supported, so you can define and use your overloaded functions without a problem. Enumerators are also supported. Polymorphism and templates are not, unfortunately.
maki wrote:Is MIDI going to be a part of the same basic class in Genera?
Not really. In fact, neither audio nor MIDI are "part" of the base class; the base class only handles the interfacing between the objects you create and the rest of the system. Audio and MIDI events are just data flowing from one block to the other - objects have no idea of what MIDI or audio is - they really don't care, and they really don't have to. They just take some floating point values at sample rate (in the case of aObjects) and when those floats are fed to the outputs of the system (the audio outputs) then, and only then, those floats are turned into audio. The same should apply to MIDI. Even though I've still haven't decided the exact way in which MIDI will be handled, the underlying idea is that MIDI is just another collection of data that can be passed around, and only when the correct data is fed to the MIDI ouputs, a MIDI event will be generated.

Post

jobromedia wrote:Don't take this personally. I'm almost blind. A narrator would vastly improve the chances that I actually decide to try this tool. Right now it's at the very bottom of my priorities. No matter what platforms it supports. No matter what fancy stuff you can do with it. It's just that simple. So compose a new set of videos where you tell us with your own voice what you do, and what this does. I always give thumbs down to tutorial videos which uses notepad or message window to type the instructions.
Sorry... I lack the courage to record my own voice speaking in a language that's not my main language. :oops: But these videos weren't meant to be tutorials - they were made to show what can be done using Genera, more like a "look what Genera can do" instead of "look how you can do it using Genera".

But I'll take your points into consideration when making the next tut... I mean, video. :wink:

Post

maki wrote:Thumbs up for more tutorials! Yeaahhhh!
Again, these were not meant to be tutorials! But it's nice to see you liked them.:)

Anyway, I'm thinking that it would be a good idea to release a "very early alpha" of the system so you guys can get a better idea of what Genera is, what it can do and specially what it CAN'T do. I just want to finish the new scripter (I'm changing the old script blocks for a unified script editor to make thing simpler and tidier). And before that, I need to finish editing the samples for my other product (the charango VSTi) so I can release the update I've been postponing for years... and I need to keep an eye on my current sale (have you checked my "Pregnancy Sale"?) and my new product, Sandra-4...:help:

To summarize: Once my current sale is over (and I've turned grotesquely rich :hihi:) , AND my new Armadillo update is released, then I'll release the "very early alpha" version of Genera. That should happen in about 1.5 months, maybe a little later.

Of course I'll keep you informed. And if you have any more question, just shoot!

Post

Tzarls wrote:Even though I've still haven't decided the exact way in which MIDI will be handled, the underlying idea is that MIDI is just another collection of data that can be passed around, and only when the correct data is fed to the MIDI outputs, a MIDI event will be generated.
Please support SYSEX from the start (midi messages of more than 3 bytes).

Post

Just a small contribution from me: As far as I'm concerned (and maybie other c++ programming newbies), www.learncpp.com is way better writen than www.cplusplus.com or www.cprogramming.com. It is EXACTLY what I needed after reading about 50% of www.cprogramming.com and www.cplusplus.com where I failed to find understandable explanation on functions, among other things. Just read carefully and keep attention!

Post

Jeff McClintock wrote:
Tzarls wrote:Even though I've still haven't decided the exact way in which MIDI will be handled, the underlying idea is that MIDI is just another collection of data that can be passed around, and only when the correct data is fed to the MIDI outputs, a MIDI event will be generated.
Please support SYSEX from the start (midi messages of more than 3 bytes).
Don't worry - SYSEX will be there.

Post

Tzarls wrote:I just want to finish the new scripter (I'm changing the old script blocks for a unified script editor to make thing simpler and tidier).
No, no, please! I have just got acquainted with the old scripter and old scripter blocks! :hihi:

Post

Sorry man, I have to... but don't worry, all your old scripts should work fine with the new scripter! :hihi:

Post

I like to follow the development. Somebody should put together a documentary (or one on music software (programming)). I would also like to alpha test the envorinment.

Post

Any news?

Is there any info about it? I can't find anything about it.

Post Reply

Return to “Modular Synthesis”