From the original SynthMaker forum (2004–2014), with its members’ names and dates.
theod ·
I hope you are not tired of me yet. its been almost a week and I can pretty much say I find SM to be very addictive.
On to my questions:
1.Some of the things in a schematic are pretty much for organisation matters - as I see them. For example, 20 primitives are 20 primitives, be it scuttered in a schematic or put in a submodule. How does it affect performance though...I mean, is there a difference performance wise between a module with 20 primitives and a module with 20 submodules with a primitive in each one? Im exaggerating in my example to get my question across...or am I just super-simplifying things?
2.Relating to the above, is the amount of ins and outs of modules affecting performance? I mean, what if a knob sends floating data to 3 other modules. Am I better off merging them into a module and send them one floating "green" line and split it inside to three, or use three ins to receive from the knob?
3.And wireless connectors? Is a wireless connection the same performance wise as a normal one?
Gee all these options and I really cant figure out which to choose.... During my fiddling with the program I created a schematic which seems too complicated but what if I organizing it (visually) means merging a lot of stuff into modules and adding more ins and outs between them? Will that make for a worse performance of the final VST?
4. I guess this one is about DSP.....Lets say we have an EQ or a filter and we go way overboard with resonance. At which point clipping occurs...is it only numbers untill the stream leaves the schematic out to the outside world or does it occur inside? I mean, lets say we have a filter followed by a delay all organised in modules in a schematic and lets say the filter is having very high resonance setting and produces signal which will distort...Is it ok to feed the delay with it and deal with it before the outs of the VST (with a clipper or a limiter or something) or do I have to deal with it right after the filter?
5. Knobs sensitivity and snap.....I tested and it seems that these refer to using the knob with your mouse only. Given that a typical midi controller sends out values 0 - 127 how does that work with the knob? I tested again, and it seems that using a midi controller on a knob may provide different increments of values than using the mouse - depending on the sensitivity set. Wouldnt it be better to set the knob to 127 (edit: 128) steps? Also, does that mean that any animated knob with less than 127 frames image is a compromise? I mean, with 61 frames I could easily make the knob change value without any indication visually obviously because i was operating at a smaller division of the frames provided for the knob. Hmmmmmm........
Not to say I cant find answers to my last question, but I really thought there would be some standards kept...or am I wrong?
infuzion ·
Lots of questions...
1) Too many modules =
-extra file size, opening time, etc
-missed opportunities to see places for reduction
-actually harder to troubleshoot, even if properly labeled, since you have to keep diving into deep levels, then crawl into another deep module
-slower to edit, same reason as above
too few modules =
-confusing to read at first, esp if you are new to that OSM & don't know SM well
-may be harder to troubleshoot; too many wires, etc
-harder to re-use segments of code
-slower to edit; bigger modules less like to be able to synchronize, find the part you need to change, etc
IMHO, SM's De-zipper, Phase Invert (*-1), VCA (*), Combiner (Poly To Mono) are all just 1-2 primitives & are a waste. SM knobs are useful on the outside, but hard to hack inside because there are too many sub-levels; a knob needs to have only 1 maybe 2 levels of sub-modules. But there are times when I need to create sub-modules to keep my sanity.
2) Sometimes; need an example. I would not use a module to simply split a signal; link order of wires going out can sometimes be important. But I have talked myself to making a module where I wouldn't to take advantage of multi-in addition or trigger merging.
3) I'd avoid wireless; sometimes the connections will not connect. & they are harder to troubleshoot IMHO. Useful for set & rarely changing global configuration settings though.
4) You may digitally clip whenever the value is bellow -1, higher than +1.
5) You can re-arrange/re-program the knobs to do what ever you want. They should snap in MIDI; might be a bug IMHO. (Now you see why I think the knobs' modules are too deep, I should say "edit in the Interaction module, & you should be there in less than 1 second).
theod ·
Thanks for the reply! That post you linked me to was a great read...Also found some tutorials on optimising and plan to study them too!
trogluddite ·
A few additional points.
4) -1...+1 is the limit for what gets sent out of the audio outputs - greater clips the oundcard. However, all streams within SM are 32bit floating point numbers; so like most modern DAWs, there is huge dynamic range available within the plugin. So going outside that range inside the plugin does not cli anything internally (as long as no module is programmed to do that).
However, keeping to -1...+1 is best practice - as you may want to re-use modules elsewhere.
5) Yes, the steps may be different.
For MIDI, the minimum step is Range/128. For the mouse it depends on the sensitivity - sensitivity is the amount that the value changes per grid line on screen (usually 8 pixels), and the minimum step is 1/8 of that (i.e. you have to move the mouse at least one pixel for there to be a change).
If you set the 'Step' parameter in the properties to a low-ish number, then MIDI and mouse will snap OK - but high step values could cause steps to be skipped because of the MIDI or sensitivity 'resolution' not being high enough.
As infuzion says, this is just for the stock knobs - you can make any behaviour you like with a custom design - apart from the pixel sensitivity of the mouse; that is built in to the mouse 'Accumulator' primitives.
infuzion ·
trogluddite wrote: 4) -1...+1 is the limit for what gets sent out of the audio outputs - greater clips the oundcard. However, all streams within SM are 32bit floating point numbers; so like most modern DAWs, there is huge dynamic range available within the plugin. So going outside that range inside the plugin does not cli anything internally (as long as no module is programmed to do that).
However, keeping to -1...+1 is best practice - as you may want to re-use modules elsewhere.
This & I forgot to mention:
+ Final output should stay between [-1..+1], to prevent distortion of the final signal, eg -0.99999 & +0.99999. 2 samples of +1 or -1 next to each other cause issues.
+ Some modules depend on the input to be [-1..+1] range to work properly.
trogluddite ·
infuzion wrote: + Final output should stay between [-1..+1], to prevent distortion of the final signal
He he, I'll have to show you my MIDI looper some time - I encode the MIDI data into an audio stream for conversion by a JS plugin in Reaper (to avoid SM's timing problems). I can get the plugin output audio meters into the 100's dB!
So strictly speaking, if your DAW is fully floating point, you can send out any value you like, then scale the gain in the DAW mixer to keep your soundcard happy (i.e. -1/+1 = 0db FS on a peak reading meter). Certainly in Reaper, the floats are passed exactly, bit for bit.
-But I wouldn't want to suggest it as normal practice - if you forget the Audio-to-MIDI JS plugin after my MIDI Looper, the resulting noise is very unsettling!
theod ·
I'd never try to send over +1 to my DAW anyways, hence my question. I was checking out SM's stock variable filter and saw that when setting high resonance, it distorts as a VST plug in. For the first plug I have been designing I am using two filters in series, so my question in fact was, should I use a clipper in between the filters or just put one just before the audio outs?
Eitherways, Im convinced that SM's stock filters wont get me very far but thats another story.
I used Infusion's tips to "lighten" up my schematic and I was impressed by the amount of useless primitives I could throw out the window out of stock modules like the animated knobs, labels etc etc. Especially in animated knobs, in case you use default 0 - 1 range, no steps and no snap, there is a LOT of math you can get rid of. Also modified my knobs to go three levels, not deeper. I dont know how to code stuff so I can not optimise my schematic with asm but at least I managed to reduce the amount of primitives used down to almost half of my initial schematic.
Thanks for the replies to both. I think, soon enough, I'll be splashing out for the "Enterprise" edition and I'll be posting my finished plug in 🙂
Wrote something here? To have a post removed or your name hidden, write to [email protected].