If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Where to start?
4 posts
• Page 1 of 1
Where to start?
Hello and please do not hate me for that, I think this has been posted a few times here. But I am a total newbie to this software and I really want to learn it, but I don't know where to start learning. I looked up some YouTube tutorial videoclips, but from making a simple synth or sampler, there is a big gap which I can not pass. It would be great to find something like a step by step tutorial that dives deeper into the core of (in my case) audio software/vst plugin development.
Regards,
Robin
Regards,
Robin
- robinw
- Posts: 4
- Joined: Mon Jun 09, 2014 10:20 pm
Re: Where to start?
Hi Robinw, welcome!
The best way to learn is to try things inside FS yourself and see what they do. Once you understand that you can design your own modules and any function ect. But as you are looking in the audio dsp side, check out these:
http://www.dspguide.com/pdfbook.htm - Only if you and math are friends
http://www.musicdsp.org/archive.php?classid=3#196 - Very interesting indeed
im sure there wil l be a few guys to steer you in the right direction! Dont ignore the user guide too!
Gooooooooood luck!
PS check the Synthmaker forums too! Its like a treasure trove in there!
The best way to learn is to try things inside FS yourself and see what they do. Once you understand that you can design your own modules and any function ect. But as you are looking in the audio dsp side, check out these:
http://www.dspguide.com/pdfbook.htm - Only if you and math are friends
http://www.musicdsp.org/archive.php?classid=3#196 - Very interesting indeed
im sure there wil l be a few guys to steer you in the right direction! Dont ignore the user guide too!
Gooooooooood luck!
PS check the Synthmaker forums too! Its like a treasure trove in there!
- Drnkhobo
- Posts: 312
- Joined: Sun Aug 19, 2012 7:13 pm
- Location: ZA
Re: Where to start?
Thank you for your answer. I will dig into this in the future, when I have time to learn C++. At time, I am also learning to create some audio related stuff with NI Reaktor 5 and Synthedit. My aim is to create all my plugins with Flowstone, because I think Flowstone is the most appropriated way among them all. The principle is similar to Flowstone, do you think it is also a good way to learn Flowstone? I will also check out the Synthmaker forums. I can't wait to be established with the materia, to implement my ideas.
- robinw
- Posts: 4
- Joined: Mon Jun 09, 2014 10:20 pm
Re: Where to start?
Hi Robin,
To get started, I highly recommend reading the manual (to learn basics on FS) and also the component reference (So you have an idea which primitives are in the Flowstone and what can they do). The very basics of making VST plugins and generally sound manipulation programs you need to be aware of a few things.
There are 3 types of calculations:
1.streams - a stream of samples, that are calculated on sample by sample basis at very height rate (sample rate - which is provided by your soundcard/DAW) in FS these are represented by blue and white connectors. Since they are running basically all the time continuously they have the biggest impact on CPU load. Calculations commonly done on streams are oscillators, filters, envelope followers (with all effects that are based on them - compressors, gates, etc.), ADSRs, saturation.
2.one shot calculations - these are calculated only when needed. They are represented by the green connectors in FS. Basically they work something like this: when you update a value (by turning knob, changing preset,DAW automation, etc.) it sends its value along with a trigger down the schematic, updating all values that depend on it. You may connect green connectors to streams and they will sort of work like global variables. It however doesn't work vice versa - to extract values from stream to green, you need special primitives.
3.GUI drawing. GUI related connectors are marked yellow in Flowstone. They sort of overlap with green function wise - you use green triggers to update (redraw) the GUI and also define it. Unlike green, which is calculated from left to right (input->output) drawing sort of happens in opposite order - from right to left (the child objects get drawn on the GUI of the parent object).
More complicated Green and GUI operations may be handled in RUBY component - which lets you write code in Ruby. Ruby component allows much more things than just that, but you will learn that over time.
General VST plugin should have:
GUI part which let's you control individual parameters (I recommend using the stock Knobs/sliders at first) which trigger the one shot "green" calculations. These provide parameters (like Cutoff frequency and Q for filters, timings for ADSR etc.) for the streams.
Stream part, that is constantly processing the incoming audio/midi (depending on whether the VST is effect or instrument) also using the green values provided to it. Because Green values change abruptly, it is recommended to use De-zippers when loading them to streams.
In order to handle preset saving and automation, your plugin needs to have a preset manager inside. The preset manager collects the data from the knobs and provides VST automation inputs and outputs for your DAW. Without it your DAW is unable to save the plugin state when closing project and your plugin would just be reset to default values when loaded with saved project. All stock controllers have ability to communicate with preset manager (which can also be enabled/disabled in each knobs preferences).
In case of VST instruments the Stream part is also separated into two parts - the blue part, which is running all the time (like in VST effects). And white "poly" part, which runs on per-voice basis. MIDI to poly module triggers new poly voices, each voice is calculated with the same code, but the individual voices use separate values - allowing to play multiple voices at once. The are then summed by poly to mono. Poly part is running only when note is played - it gets started on note on massage and is stopped on note off massage or envelope end (for example when release phase finishes on ADSR).
That should cover all the general stuff... Anything else basically depends on what exactly you are working on. Don't be afraid to ask more specific questions about features and "how to do this?" type of questions. The support forum is here to give you support
To get started, I highly recommend reading the manual (to learn basics on FS) and also the component reference (So you have an idea which primitives are in the Flowstone and what can they do). The very basics of making VST plugins and generally sound manipulation programs you need to be aware of a few things.
There are 3 types of calculations:
1.streams - a stream of samples, that are calculated on sample by sample basis at very height rate (sample rate - which is provided by your soundcard/DAW) in FS these are represented by blue and white connectors. Since they are running basically all the time continuously they have the biggest impact on CPU load. Calculations commonly done on streams are oscillators, filters, envelope followers (with all effects that are based on them - compressors, gates, etc.), ADSRs, saturation.
2.one shot calculations - these are calculated only when needed. They are represented by the green connectors in FS. Basically they work something like this: when you update a value (by turning knob, changing preset,DAW automation, etc.) it sends its value along with a trigger down the schematic, updating all values that depend on it. You may connect green connectors to streams and they will sort of work like global variables. It however doesn't work vice versa - to extract values from stream to green, you need special primitives.
3.GUI drawing. GUI related connectors are marked yellow in Flowstone. They sort of overlap with green function wise - you use green triggers to update (redraw) the GUI and also define it. Unlike green, which is calculated from left to right (input->output) drawing sort of happens in opposite order - from right to left (the child objects get drawn on the GUI of the parent object).
More complicated Green and GUI operations may be handled in RUBY component - which lets you write code in Ruby. Ruby component allows much more things than just that, but you will learn that over time.
General VST plugin should have:
GUI part which let's you control individual parameters (I recommend using the stock Knobs/sliders at first) which trigger the one shot "green" calculations. These provide parameters (like Cutoff frequency and Q for filters, timings for ADSR etc.) for the streams.
Stream part, that is constantly processing the incoming audio/midi (depending on whether the VST is effect or instrument) also using the green values provided to it. Because Green values change abruptly, it is recommended to use De-zippers when loading them to streams.
In order to handle preset saving and automation, your plugin needs to have a preset manager inside. The preset manager collects the data from the knobs and provides VST automation inputs and outputs for your DAW. Without it your DAW is unable to save the plugin state when closing project and your plugin would just be reset to default values when loaded with saved project. All stock controllers have ability to communicate with preset manager (which can also be enabled/disabled in each knobs preferences).
In case of VST instruments the Stream part is also separated into two parts - the blue part, which is running all the time (like in VST effects). And white "poly" part, which runs on per-voice basis. MIDI to poly module triggers new poly voices, each voice is calculated with the same code, but the individual voices use separate values - allowing to play multiple voices at once. The are then summed by poly to mono. Poly part is running only when note is played - it gets started on note on massage and is stopped on note off massage or envelope end (for example when release phase finishes on ADSR).
That should cover all the general stuff... Anything else basically depends on what exactly you are working on. Don't be afraid to ask more specific questions about features and "how to do this?" type of questions. The support forum is here to give you support
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
4 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 122 guests