SynthMaker

Unison created by midi

Archive · 2008 9 old posts

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

ianfoxfire ·

In synthedit world, CK has successfully created a wonderful way to offer unison via MIDI, before it ever even reaches the voice archetecture. And thought I don’t really know, I kind of get the feeling, NI Reaktor might be doing the same.

The idea is to use MIDI to increase the number of voices, and slightly detune each new one.

So as one midi note is pressed, maybe 3 or 5 are actually pressed at the same time, except each can be detuned a specific amount. Maybe also include slight delayes for each, in miliseconds.

I cant seem to figure out a way to do this in SM, but im hoping its possible.

Tom7777 ·

Uh help section? 😉

Nu Audio Science ·

Moved to help

NAS

oddson ·

It's certainly possible to multiply the MIDI... but then you still have to figure out how to get the OSC to apply detune differently to each voice.

The standard approach is to do it after the MIDI has been brought into the poly section. Just split the frequency values into several detuners and then then into separate oscillators and then add the resulting streams back together before going into the mono section.

If SynthMaker had a means of generating new poly stream threads without corresponding MIDI events it might be possible to avoid the duplication of the oscillator sections without resorting to multiplying note events but as far as I know this is not possible in the current implementation.

Search the forum for 'unison' and/or 'supersaw' for examples.

Eska ·

One could detune the four voices of a "SSE Block" like this:

streamin p; streamin spread; streamout pout; float s=0;float s1=0;float te=.00009;float FP4=.4;

movaps xmm0,spread; mulps xmm0,te; movaps s,xmm0; mulps xmm0,FP4; movaps s1,xmm0; push eax; fld p[0];fld s [0];fadd; fstp pout[0]; fld p[1];fld s [1];fsub; fstp pout[1]; fld p[2];fld s1 [2];fadd; fstp pout[2]; fld p[3];fld s1 [3];fsub; fstp pout[3]; pop eax;

to start with.

oddson ·

I thought the SSE addressing doesn't work (yet).

... and I can't make it your code work.

I've inserted it between the frequency out of the Midi2Poly and the OSC input with a [0,1] range control in the spread input and I get a single voice (with slight detune). Playing a second note give very weird results.

Eska ·

What I meant was this:http://stashbox.org/110187/Uni.zip Still not perfect. Additional notes have no release, can`t figure that out.

oddson ·

Ah!... I thought you had some magic that generated multiple poly threads from a single MIDI note event but you were showing it's possible to detune when you use the MIDI multiplier method.... which is still very cool and I'll have to figure out just how you've done it.

MichaelBenjamin ·

ah there is the thread. i made some efforts with this and opened up a thread in the projects forum: getting unison working - with osm

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.