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.


 

2
Online

353
Users

1.1k
Topics

7.6k
Posts