SynthMaker

off-topic, technical question for the Synthmaker team

Archive · 2005 4 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].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.