How to structure this synth?
-
I'm building a synth that uses single MIDI notes (legato) to play 6 synth voices, each with their own editable params for volume, pan, transpose, tuning, waveform, etc. All 6 synth voices will be mixed and go through a single amp envelope, filter and other effects.
I've been reading the docs and it looks like the Synthesizer Group is what I need.
Or do I just use a Container?
Then I'll put 6 Waveform Generators in there. (But I'm confused where the amp and filter go.)
Is that the way to do it?
-
@dannytaurus Yes that is pretty much it. You will place your effects at the top of your Synthesizer Group or even just at the Master Chain level if you want to effect all voices simultaneously at equal levels.
-
@HISEnberg Thanks!
Which is more suited to this - Synthesizer Group or Container? Or is there no difference in this case?
I'd might like to add a unison feature in the future, which it looks like Synthesizer Group already has built-in so maybe that's the one I should use?
And where do the Amp and Filter go? Inside the group?I think I get this now. The container has it's own amp and FX and all the inner synths will go through these. -
@dannytaurus yea exactly the module tree is (kind of) bottom up. I don't know for sure which container though if you want unison the synth group is the way to go. I suppose the question is do you want to treat each voice (each synth) individually on the macro level or individually? Would you like to add a modulation to one of the synths while the other 5 remained unified? If so then use the container, but if you want them to act uniformly, use the synth group.
-
You can also use a scriptnode synthesiser and create any number of oscillators with tuning, panning or any setup you want, and make use of the fact that, on the engine level, it's all gonna be a single voice handled by a single envelope.
There's a bit of a learning curve with scriptnode but once you learn it, your options are near limitless.
-
@HISEnberg said in How to structure this synth?:
I suppose the question is do you want to treat each voice (each synth) individually on the macro level or individually? Would you like to add a modulation to one of the synths while the other 5 remained unified? If so then use the container, but if you want them to act uniformly, use the synth group.
That's exactly the kind of differentiation I was looking for. Thanks!
-
@aaronventure said in How to structure this synth?:
You can also use a scriptnode synthesiser and create any number of oscillators with tuning, panning or any setup you want, and make use of the fact that, on the engine level, it's all gonna be a single voice handled by a single envelope.
There's a bit of a learning curve with scriptnode but once you learn it, your options are near limitless.
ScriptNode looks quite daunting for a novice HISE user but it might be the path I need to follow.
The Synthesizer Group and Container options both have limitations that I don't know how to overcome.
-
@dannytaurus just start using it and you'll figure it out quickly.
The scripnode systhesiser sound generator itself provides you with the voice paradigm, polyphony and the envelope slot. So add that, add your envelope, then open the scripode synth with the icon on it, create the file.
I the network itself,sou want a split node (which processes each od it's child nodes individually fed by the input, then sums it all together) filled with chain nodes. Use as many chain nodes as needed where each one will be used for an individual oscillator.
Now add an oscillator to each chain node. Follow it with a pan node, and then a gain node.
Now create a parameter in the main network node for each control you want to be able to access individually from the script. So probably 6x pan and 6x gain nodes.
Each chain is now an individual synth that you can process subsequently using compressors, filters etc. It's all in one network, data is easily interchangeable and you can directly implement more complex dsp if/when needed.