Detune/Unison



  • It would be nice to have a good Detune/Unison for up to 8-voices



  • You mean playing multiple voices with the same note but different microtuning and panning?



  • Yes...Ideally it would have

    1. Unison - # of Voices
    2. Detune - Detune amount
    3. Spread

    Like Serum

    0_1498938527185_Unison:Detune.png



  • Here is the code from Kontakt. Maybe it can be adapted:

    on init

    set_script_title("Unison X")
    set_ui_height(2)
    message("")
    
    declare polyphonic $pan_L
    declare polyphonic $pan_R
    declare $voice_1
    declare $voice_2
    declare $voice_3
    declare $voice_4
    declare $voice_5
    declare $voice_6
    declare $voice_7
    declare $voice_8
    declare $voice_mod
    
    declare ui_knob $Detune (0,50000,100000)
    declare ui_knob $Spread (0,1000,10)
    declare ui_knob $Voices (1,8,1)
    
    $Voices := 2
    $Detune := 35000
    $Spread := 650
    
    move_control($Voices,2,2)
    move_control($Detune,3,2)
    move_control($Spread,4,2)
    
    make_persistent ($Voices)
    make_persistent ($Detune)
    make_persistent ($Spread)
    
    set_control_help ($Voices,"Voices: Sets the number of voices played for each MIDI note.")
    set_control_help ($Detune,"Detune: Sets the amount of detuning among the voices.")
    set_control_help ($Spread,"Spread: Sets the amount of stereo spread among the voices")
    

    end on

    on note

    {Voice 1}
    ignore_event ($EVENT_ID)
    $voice_1 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    {Voice 2}	
    	if ($Voices > 1)
    		{Voice 1 treatment}
    		change_pan($voice_1,$Spread,0)
    		change_vol($voice_1,-500*$Voices,1)
    		{Voice 2}
    		$voice_2 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    		change_tune($voice_2,$Detune ,0)
    		change_pan($voice_2,-$Spread,0)	
    		change_vol($voice_2,-500*$Voices,1)
    	end if	
    {Voice 3}	
    	if ($Voices > 2)
    		$voice_3 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    		change_tune($voice_3,-$Detune /8 * 4,0)
    		change_vol($voice_3,-500*$Voices,1)
    			if ($Voices = 3)
    			else 	
    			change_pan($voice_3,$Spread,0)
    			end if	
    	end if	
    {Voice 4}	
    	if ($Voices > 3)
    		$voice_4 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    		change_tune($voice_4,$Detune /8 * 4,0)
    		change_pan($voice_4,-$Spread,0)
    		change_vol($voice_4,-500*$Voices,1)
    	end if	
    {Voice 5}	
    	if ($Voices > 4)
    		$voice_5 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    		change_tune($voice_5,-$Detune /8 * 6,0)
    		change_vol($voice_5,-500*$Voices,0)
    			if ($Voices = 5)
    			else 	
    			change_pan($voice_5,$Spread,1)
    			end if	
    	end if	
    {Voice 6}	
    	if ($Voices > 5)
    		$voice_6 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    		change_tune($voice_6,$Detune /8 * 6,0)
    		change_pan($voice_6,-$Spread,0)
    		change_vol($voice_6,-500*$Voices,1)
    	end if	
    {Voice 7}	
    	if ($Voices > 6)
    		$voice_7 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    		change_tune($voice_7,-$Detune /8 * 2,0)
    		change_vol($voice_7,-500*$Voices,1)
    		
    			if ($Voices = 7)
    			else 	
    			change_pan($voice_7,$Spread,0)
    			end if	
    	end if	
    {Voice 8}	
    	if ($Voices > 7)
    		$voice_8 := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,-1)
    		change_tune($voice_8,$Detune /8 * 2,0)
    		change_pan($voice_8,-$Spread,0)
    		change_vol($voice_8,-500*$Voices,1)
    	end if	
    

    end on



  • Do you need the unisono for polyphonic sounds or just monophonic (If I decipher the KONTAKT script correctly, it just stores monophonic data)? Also should it work in conjunction with a glide script (this would make event handling a bit more trickier).



  • Yea it should be for Polyphonic instruments and work with Glide....



  • FYI, I've just pushed a change that allows unisono voices (until now voices with the same notenumber were killed).

    Just call Synth.setShouldKillRetriggeredNotes(false) on the synth you want to enable unisono.


Log in to reply
 

17
Online

517
Users

1.9k
Topics

14.6k
Posts