From the original SynthMaker forum (2004–2014), with its members’ names and dates.
blakflag ·
Hi, just starting to get into Synthmaker.. it's incredible and I am thinking about becoming an early adopter. But I'm wondering how people manage their modular components as they create instruments.
Can I make a module, and make "duplicates" of that module that mirror each other? Like if I add a new piece inside one, they all have that piece? I'm a Flash programmer and this is "the way" in Flash so its the way I tend to think.
If this is not allowed, then is there a way to update modules in use more than once to keep them in sync if I change something around in my template of that module?
I just analyzed the 3-op FM synth that someone posted and it was very informative. Took me a while but I remade it from memory to test myself on the understanding. 🙂
Another question. Is the "code" window translated down to assembly language so that it runs at optimal speed? Or would it be "faster" to write in the assembly language window as opposed to synthamkers code syntax? (not that I am any good at assembler..)
thanks,
Eric
oddson ·
blakflag wrote: Can I make a module, and make "duplicates" of that module that mirror each other?
Yes, you build the module and copy it. When you paste you choose 'Paste Sychronized' and it will produce a linked copy of the module at the level you've pasted. Any changes of one will show in the other(s).
blakflag wrote: Another question. Is the "code" window translated down to assembly language so that it runs at optimal speed? Or would it be "faster" to write in the assembly language window as opposed to synthamkers code syntax? (not that I am any good at assembler..)
I'm not expert here (the real experts should be fast asleep 8 or 9 time zones to the east). But AFAIK code is reasonably efficient but there may be DSP stuff only assembly can do. The code language is a C-like but with many of the standard C commands and operators absent. There've been a ton of requests for added features but I don't think it's high on the Dev's to do list ATM.
oddson ·
Oh yeah...
Welcome to the forum 🙂
infuzion ·
oddson wrote:
blakflag wrote: Is the "code" window translated down to assembly language so that it runs at optimal speed? Or would it be "faster" to write in the assembly language window as opposed to synthamkers code syntax? (not that I am any good at assembler..)
I'm not expert here (the real experts should be fast asleep 8 or 9 time zones to the east). But AFAIK code is reasonably efficient but there may be DSP stuff only assembly can do. The code language is a C-like but with many of the standard C commands and operators absent. There've been a ton of requests for added features but I don't think it's high on the Dev's to do list ATM.
Building on oddson:
You can get another peek what's going on by connecting a Text to the Poly to Mono string out. So, it seems all audio path is ASM actually.
To me, the code is more like between C & ASM, with alot of SSE thrown in. SM's ASM isn't a full PentiumSEE's ASM either, but if you really need a particualar ASM command, that request seems to be easier to fufill. Also, some programmers here will take the string output from Code, optimise it, then use in ASM.
oddson ·
Right. The poly to mono component will show you the ASM it uses if you connect a text componet to its string output (but only when it's connected to a working signal chain).
The code component will also export it's ASM to a text component - so the answer to your question is 'yes' code is translated to ASM by the program.
But how 'optimized' this is is beyond me by more than a little 😕
infuzion ·
oddson wrote: But how 'optimized' this is is beyond me by more than a little 😕
But almost always Code is faster than C++, but not nessarilly as fast as hand-coded SSE ASM (but can be). Seems that the Code -> ASM directly assemblies; there is no real post-code reduction, unless you do that by hand. However, the language-set in Code is so that the resulting ASM is very efficent (as long as your Code is efficent).
There may be multiple ways to get a result in Code, but the fewer instructions you take, usually the smaller & faster the ASM will be. Not always.
optimizing Code examples:
pseudo abs()
several tanh()
use stage(0) for initalization calc, like for random
skOre ·
Welcome to the forum 🙂
Shifrin ·
Hey Eric,
skOre wrote: Welcome to the forum 🙂
Shif.
Tom7777 ·
Welcome to the forum 🙂
malc ·
Thanks for your comments blakflag.
I think the sync module question has been answered 🙂. Regarding the code component, yep - the code is converted to assembler so it is as optimised as possible.
Wrote something here? To have a post removed or your name hidden, write to [email protected].