1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

Building an 8 voice synth with separate voices

Discussion in 'Building With Reaktor' started by kraze, Aug 30, 2010.

Thread Status:
Not open for further replies.
  1. kraze

    kraze New Member

    Messages:
    1
    Just like in analogue synths which had separate oscillators for every voice. The reason is because I want to apply different analogue drift to each voice which isn't possible when feeding all of them into the same oscillator as you can only affect all 8 of them at once, not separately.

    So is it possible to send one key press to oscillator 1, the second to osc 2, the third to osc 3 and so on, just like it happens in, say, Juno 106 - and then mix all of them together without volume going through the roof.

    Hope my description was more or less understandable and what are the tips, hints etc on doing this if it's possible in Reaktor at all?
     
  2. Chet Singer

    Chet Singer NI Product Owner

    Messages:
    822
    Building separate voices isn't necessary. Check out the "to voice" primary-level module. It's the easiest way I know to send specific values to specific voices.
     
  3. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    hard to tell exactly what yr looking for...

    check out my UL upload "midi voice allocator" and see if it helps.

    it puts the first received keypress to voice 1, the second to voice 2, etc etc. you can use a from-voice module to get the voice that you want.
     
  4. Jorgren

    Jorgren New Member

    Messages:
    14
    This is pretty standard stuff. Make a polyphonic random LFO (e.g. clock the Random module slowly, and lowpass filter it heavily, and run the whole thing in poly mode). Feed the LFO to the FM input of an ordinary poly oscillator and there you go - independent drift for each voice. The key-assignment algorithm you describe sounds like standard Reaktor operation - no special anything needed.

    You may want to get a little fancier - do a P->F conversion, and multiply the result times your LFO signal. This will make higher notes drift by more Hertz, which is what you would expect an analog osc to do.

    To control the amplitude, you could divide the summed signal (from the Voice Combiner) by the number of Voices (Voice Info module). It would even be a little more realistic to use the square root of the number of voices (1/SQRT module).
     
  5. synthesizer7

    synthesizer7 Forum Member

    Messages:
    25
    you can also use the counter and modulo modules to count gate inputs sequentially and cycle them across different lines, probably you should use a mono gate and cycle the subsequent gates to different voices, along the same poly line or seperate mono ones...

    you would lose the gate sustain value from that and so you could try and do exactly the same thing with a 8 voice ensemble, still taking subsequent gates and merging them to mono, and counting them through a mono count modules with modulo set to 8 and using that to cycle in a selector with to voice, from voice, sending each subsequent gate signal to outputs one to 8. so you use the counter module to route the gates to seperate voices, but use the original gate signal from each voice with its sustain values that come after, as a mono gate signal interrupts the on value of every previous gate with a new value and you have to make an order1-value0m order2 value1to send a 01 value across the line for every new gate, as else it would be 1-1-1-1 instead of 01-01-01-01without the zero and it would not retrigger. ,so when you play note 800 of your song for example, it would take the modulo value 0, send it to voice 0, 801 would send to voice 1, etc.

    i havent checked but perhaps there is an option in the ensemble properties polyphony handling that you should get to grips with also.

    you would never need to do that in reaktor normally as each voice usually intelligently triggers itself to a voice that isnt active, i e was the last one to be inactive.

    8 mono oscillators going from a polyphonic gate that is routed so each gate goes through a different module....

    this is due to a mistaken understanding of the poly mode, you can split between one poly oscillator on 8 voices and multiple monophonic lines without limitations, either with seperate lines going from voice, to voice, and mergeing to a new single poly line...... or by using different values on the same line... i usually use the voice info and take the voice info (reads 12345678... on a single polyphonic line) and use the different numbers to enact different variations onto the same routing/ oscillator, etc.... you can feed the drift values you want into a selector for example, send the voice info into the selector index input at the top, and it will send the drift values you selected to the routing further along your ensemble....


    you can also use the counter and modulo modules to count gate input
     
Thread Status:
Not open for further replies.