SynthMaker

Unison

Archive · 2010 20 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

stw ·

ok i couldn't stand it... Due to MyCo's module discovery and kindly mentioning its use HERE i had to mock up a quick unsion version of the example synth. With the multi voice prim you don't have to deal with any workaround to span and manipulate more voices on one trigger. I'd say this could be called real Unison. Which really makes my day because although i got one of these workarounds already running it never ran that smooth as this solution. This first atempt only deals with four voices. I guess it can be expanded to work with more voices and maybe overall improved. But i don't have the time for that now and i've to admit i don't have a clue on how to manage the account of voices with the integer array right now.

Anyway - have fun - and another big THANK YOU to MyCo for bringing up that prim!

aliasant ·

Nice work. Quite fast and simple 🙂

exonerate ·

Good stuff 🙂 I have know about that component for a long time. But never even though to try unison with it.

Nice one. 🙂

MegaHurtz ·

If you want to set the values manually you can do something like this;

streamin in1; streamin in2; streamin in3; streamin in4; streamout out;

fld in1[0]; fstp out[0]; fld in2[1]; fstp out[1]; fld in3[2]; fstp out[2]; fld in4[3]; fstp out[3];

MichaelBenjamin ·

ugh thats excellent. does it got bugs or why wasnt this module visible before? thanks myco & stw!

after a quick try, it seems it doesnt matter which numbers are in the array, or better i dont understand what they do. doesnt seem to affect the unison at all.

infuzion ·

MichaelBenjamin wrote: ugh thats excellent. does it got bugs or why wasnt this module visible before? thanks myco & stw!

after a quick try, it seems it doesnt matter which numbers are in the array, or better i don't understand what they do. doesnt seem to affect the unison at all.

I have no idea why MegaHurtz posted that ASM Code; it is totally unrelated to what you are doing. What he posted is more or less a Mono Pack4.

MyCo ·

actually that's not the way I thought of making it unison. I know how you make it, but I'm not sure if this works under all circumstances. I think if you have a voice playing, and then you toggle unison, you could get a real mess.

MichaelBenjamin ·

yes it is kind of bugged, while changing the array the sound stopped and i could not get it back to work without a reload. @infuzion: i know, you could detune the 4 uni stream with that, but i first tried to change the integer array to see what it does

MyCo ·

This is the way, how I'd made the unison. This uses the voice tag as reference, for the detune amount. It's the quick&dirty version. Could be optimized a lot, but so it's more readable 😈

stw ·

MyCo wrote: This is the way, how I'd made the unison. This uses the voice tag as reference, for the detune amount. It's the quick&dirty version. Could be optimized a lot, but so it's more readable 😈

Yes, that's the most obvious way to do it. I haven't thought about that because my fomer VoiceTag tryings have been very unreliable. But that's some time go. With the Multi Voice Prim that's definitely another thing. I tried it and it works perfect! Though i didn't get any probs with my version i think this one is "cleaner" and easier to implement.

aliasant ·

I tried that once Myco but my simple head never got around it... but couldnt we use the taggin method to also get Polyphonic Portamento?

MichaelBenjamin ·

how would poly portamento even work on paper? with unison it would be the same as mono portamento, and with normal poly it would be that when the voice limit is reached only the last note that gets overwritten would bend to the new value, like it already is now.

infuzion ·

MyCo wrote: This is the way, how I'd made the unison. This uses the voice tag as reference, for the detune amount. It's the quick&dirty version. Could be optimized a lot, but so it's more readable 😈

Sounds great! It is readable, thank you 🙂 I do notice a bug though. :/ Sometimes if you play 2 notes, & play a 3rd while the other 2 are held, the 3rd will not play. Happens if Portamento is off or on. Test case: 1) Open OSM, leave default patch, does not matter number of voices 2) Use computer-typing keyboard for MIDI 3) Hold X + B 4) Press V; no extra note will play at all. 5) Same issue happens if you play W+T,R or R+U,Y etc Some other 2 note then 3rd combos work as intended, like T+I,U.

cheers

MyCo ·

@Infuzion: It's the keyboard controller that makes this "bug". It has something todo how the key matrix is scanned. There are a few gaming keyboard that avoid this problem.

infuzion ·

MyCo wrote: @Infuzion: It's the keyboard controller that makes this "bug". It has something todo how the key matrix is scanned. There are a few gaming keyboard that avoid this problem.

Sure about that? I have never seen it before in SM. Also same issue herewith the same MIDI to Multi Voice. I also do not have that issue when using my keyboard in Ableton Live.

MyCo ·

yeah, I'm realy shure. It's called "ghosting". Here is an explanation: http://en.wikipedia.org/wiki/Rollover_%28key%29

kirkagur ·

little off the topic how long do you have that killer midi to voices? 😊

I pray at nights that it will come to me... 😈

this, or any other new primitives to play with... 😉

MyCo ·

kirkagur wrote: little off the topic how long do you have that killer midi to voices? 😊

a half year 😈

drumma ·

Thanks a lot guys more optimised unison code for tidier schematics is here;

streamin base; streamin voice; streamin amount; streamin subdetune;

streamout pitch; streamout pitch1; streamout pitch2; streamout pitch3;

//out1 pitch = 0 + (voice==0) & amount - (voice==1) & amount; pitch = pitch + base;

//out2 pitch1 = 0 + (voice==1) & amount - (voice==2) & amount; pitch1 = pitch1 + base;

//out3 pitch2 = 0 + (voice==0) & amount - (voice==1) & amount + (voice==2) & (subdetune*amount) - (voice==3) & (subdetune*amount); pitch2 = pitch2 + base;

//out4 pitch3= 0 + (voice==1) & amount - (voice==2) & amount + (voice==3) & (subdetune*amount) - (voice==4) & (subdetune*amount); pitch3 = pitch3 + base;

Cheers; Emre.

adamszabo ·

Now that the multi voice module is officially in SM, i thought to check this out once more. It works but you still cant change the phase of each voice right? As I understand, the pitch gets merged and there is no way to have a seperate poly phase stream going along with it?

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.