off-topic, technical question for the Synthmaker team
Archive · 20054 old posts
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
mindplay ·
Just out of curiosity, I have a couple of technical questions regarding the inner workings of Synthmaker, I don't hope you mind answering...
First off, when you save a VST plugin from Synthmaker, how does that work? ... That is, does it simply save a copy of the realtime "engine" and then embed the schematic file into it? ... Or does it actually generate optimized code, assembling and linking actual "code" of some sort?
It does seem to be pretty fast, and I'm just curious to know if it's based on an actual "compiler" of some sort, or self-modifying code, or whatever else makes it tick... 😉
The reason I ask this question is, a performance consideration - as I haven't had time to test the performance of Synthmaker yet, but I will eventually ... by rebuilding my reverb effect (mpReverb, the standard reverb effect in MadTracker) in Synthmaker, and comparing it's performance against that of native code, we'll see exactly how effective Synthmaker really is! 😉
My other question is regarding the Synthmaker GUI ... it's just impressive like hell! 🙂 ... the graphic quality is even smoother than that of Flash! ... is that a custom GUI library, or is it based on an existing library of some sort?
malc ·
mindplay wrote: Just out of curiosity, I have a couple of technical questions regarding the inner workings of Synthmaker, I don't hope you mind answering...
Always a pleasure 😉
mindplay wrote: First off, when you save a VST plugin from Synthmaker, how does that work? ... That is, does it simply save a copy of the realtime "engine" and then embed the schematic file into it? ... Or does it actually generate optimized code, assembling and linking actual "code" of some sort?
It wraps the SM engine and schematic together pretty much as you've said.
mindplay wrote: It does seem to be pretty fast, and I'm just curious to know if it's based on an actual "compiler" of some sort, or self-modifying code, or whatever else makes it tick...
It's our own compiler effectively. Quite a nifty system that Jorge devised. If you want to know the details I'm sure he'd be happy to bore you with them 😉
mindplay wrote: The reason I ask this question is, a performance consideration - as I haven't had time to test the performance of Synthmaker yet, but I will eventually ... by rebuilding my reverb effect (mpReverb, the standard reverb effect in MadTracker) in Synthmaker, and comparing it's performance against that of native code, we'll see exactly how effective Synthmaker really is!
Sounds great - we're up for the challenge 🙂 We haven't done alot in terms of testing performance. There is still some scope for improving performance further I believe.
mindplay wrote: My other question is regarding the Synthmaker GUI ... it's just impressive like hell! ... the graphic quality is even smoother than that of Flash! ... is that a custom GUI library, or is it based on an existing library of some sort?
Thanks alot. I actually think this could be enhanced further too. In fact, in the forthcoming release there are some important enhancements that really improve the speed when your schematics get very large.
We don't use any custom libraries other than GDI+.
mindplay ·
malc wrote: It's our own compiler effectively. Quite a nifty system that Jorge devised. If you want to know the details I'm sure he'd be happy to bore you with them 😉
Jorge: could you give a brief summary of how it works? I don't need all the juicy details, just curious about how it works, on a high level 🙂
malc wrote: We don't use any custom libraries other than GDI+.
so all of the anti-aliased vector graphics are custom code? nifty ... you guys sure put a lot of work into this system, I hope it pays off for you in the long run! Synthmaker looks more promising than any modular system I've seen before ... the only thing that came close, was SynC Modular - but obviously, even that pales in the light of Synthmaker now! 🙂
jorge ·
mindplay wrote: It does seem to be pretty fast, and I'm just curious to know if it's based on an actual "compiler" of some sort, or self-modifying code, or whatever else makes it tick...
The compiler is dynamic. Each time you change your schematic it re-links the machine code. The re-linking happens very fast so you dont really notice it.
At the moment, the compiler is only used for processing poly and mono sound. All the other data like for example float, int, string, graph, midi etc at the moment work with messages that flow up and down the hierarchy of the schematic. They dont need to be very fast because they only happen once when something changes, not 44100 times per second.
Wether the VST is saved as compiled code or as a schematic that is compiled when loaded in a host, it shouldnt make any different in terms of performance. At the end, what runs is the compiled code.
If you want more details let me know.
Wrote something here? To have a post removed or your name hidden, write to [email protected].