New graphical programming system in the works....
-
- KVRian
- 514 posts since 2 May, 2004
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/
http://www.cplusplus.com/doc/tutorial/
-
- KVRist
- Topic Starter
- 205 posts since 12 Feb, 2009 from Perú
Well, maki, that's a tough one... I'll answer with a commented script example:
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.
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
}
};
Hope this gives you a better idea of how scripting in Genera works.
-
- KVRian
- 514 posts since 2 May, 2004
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?
Is MIDI going to be a part of the same basic class in Genera?
- KVRAF
- 4807 posts since 10 Feb, 2006 from Stockholm, Sweden
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.
-
- KVRist
- Topic Starter
- 205 posts since 12 Feb, 2009 from Perú
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.maki wrote:Is MIDI going to be a part of the same basic class in Genera?
-
- KVRist
- Topic Starter
- 205 posts since 12 Feb, 2009 from Perú
Sorry... I lack the courage to record my own voice speaking in a language that's not my main language. 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".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.
But I'll take your points into consideration when making the next tut... I mean, video.
-
- KVRist
- Topic Starter
- 205 posts since 12 Feb, 2009 from Perú
Again, these were not meant to be tutorials! But it's nice to see you liked them.maki wrote:Thumbs up for more tutorials! Yeaahhhh!
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...
To summarize: Once my current sale is over (and I've turned grotesquely rich ) , 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!
-
Jeff McClintock Jeff McClintock https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=56398
- KVRist
- 413 posts since 30 Jan, 2005 from New Zealand
Please support SYSEX from the start (midi messages of more than 3 bytes).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.
-
- KVRian
- 514 posts since 2 May, 2004
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!
-
- KVRist
- Topic Starter
- 205 posts since 12 Feb, 2009 from Perú
Don't worry - SYSEX will be there.Jeff McClintock wrote:Please support SYSEX from the start (midi messages of more than 3 bytes).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.
-
- KVRian
- 514 posts since 2 May, 2004
No, no, please! I have just got acquainted with the old scripter and old scripter blocks!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).
-
- KVRist
- Topic Starter
- 205 posts since 12 Feb, 2009 from Perú
Sorry man, I have to... but don't worry, all your old scripts should work fine with the new scripter!
-
- KVRist
- 128 posts since 15 Aug, 2012 from Western Australia
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.