Synclavier Phae modulation , carrier has mulitple harmonics

gentleclockdivider
gentleclockdivider Member Posts: 243 Helper
edited October 2024 in Reaktor

Question for the nerds amongst you 

I had a conversation with cameron Jones ( from synclavier ) and the synclavier actually uses Phase modulation ( not that there was any doubt about it ) but I have come across an issue .

I compared it with a self made reaktor ensemble ( which also uses phase modulation implemented with core )

Get it here

https://www.native-instruments.com/en/reaktor-community/reaktor-user-library/entry/show/8291/

In my ensemble , the carrier can have 10 harmonics ( mutiples of fundamental ) to get a saw like waveform but when increasing the mod index ( mod-carrier Ratio 1:1) the results are totally different .

THis is a link to the arturia synclavier audio file ( it uses oriignal synlavier code )

https://gearspace.com/board/attachment.php?attachmentid=1097341&d=1703369632

This is my reaktor ensemble

https://gearspace.com/board/attachment.php?attachmentid=1097342&d=1703369645

Comments

  • ErnestM
    ErnestM Member Posts: 3 Newcomer

    Since I had a stroke rendering me totally deaf I can't actually hear your design. I can say that Synclavier's method for making a saw wave is not very efficient compared to EPTR antialiasing algorithm, which you might find interesting.


    sawup (fc, r1, inc) {			// rising saw with EPTR AA
    // fc		freq, HZ
    // ramp		ramp osc (0~1)
    // inc		increment in each ramp step (needed to calculate EPTR vals)
    	srx3	= samplerate * 3;
    	sr3d3	= samplerate ^3 /3;
    	rsr    = 1 / samplerate;
    	if (r1 < inc){
    		return pow(r1/ fc, 3) * sr3d3 
    			+r1 * fc * rsr 
    			+ 1;
    	} else if(r1 < inc *2){
    		D = r1 *samplerate /fc;	
    		return D * D * D * .66666666666666666667 
    			- D * D *3 
    			+ r1 *srx3/fc 
    			+ r1 *2;		
    	} else if(r1 < inc *3) {
    		D = r1 *samplerate /fc;	
    		return D * D * D *-.33333333333333333333 
    			+ D * D *3 
    			+ D *inc *2 
    			- D *9 +8;	
    	} 
    	return r1 * 2 -1;
    }
    


  • gentleclockdivider
    gentleclockdivider Member Posts: 243 Helper
    edited December 2023

    Thanks for the reply but that was not the issue , my saw wave ( 10 harmonics ) being Phase modulated sounds totally differet compared to the synclavier ( or any other phase modualtion synth hthat can have multiple harmonics for the carrier )

    I noticed I just uploaded 1 sound file , here are the correct ones for comparison

    First being synclavier , second reaktor ( both have a saw wave carrier made out of 10 harmonics )

    https://gearspace.com/board/attachments/electronic-music-instruments-and-electronic-music-production/1097341d1703369632-synclavier-regen-synclavier.wav

    https://gearspace.com/board/attachments/electronic-music-instruments-and-electronic-music-production/1097342d1703369645-synclavier-regen-reaktor.wav

  • colB
    colB Member Posts: 1,007 Guru

    Which difference is it that you are particularly targetting?

  • ehdyn
    ehdyn Member Posts: 26 Helper

    Are you following along with the "articles" section of the site where they go into some depth as to characteristic sound differences unique to the Synclavier?

    The unsigned FM algorithm, spectral blooming, interpolation, decay envelopes, ΔΣ, etc..

    Extra info here..



  • colB
    colB Member Posts: 1,007 Guru
    edited December 2023


    Some notes:

    For the partials, the phase mod needs to be scaled linearly with frequency, so for index 3, the frequency is multiplied by three and so is the phase modulation - that keeps all the partials in phase with each other.

    To get the same folding shape as your sinclavier example, the modulator needed to be unipolar, for my attempt, it ended being negative with a phase offset of pi.

    The sound is way more 'raw', even with 20 partials. This might be to do with some filtering or dithering process in the hardware, I don't know. Maybe the saw is a sample that is phase modulated - that would make sense...

    But the general feel is the same I think.

  • colB
    colB Member Posts: 1,007 Guru
    edited December 2023

    THis is a link to the arturia synclavier audio file ( it uses oriignal synlavier code )

    After some digging, I eventually found some useful info about the sinclavier additive implementation. Most available info seems to be about the sampling tech which is less interesting I think.

    https://ccrma.stanford.edu/~aj/archives/docs/all/145.pdf

    So according to what I've understood from information that may or may not be correct, the Sinclavier implements additive via wavetable generation.

    The user defines amplitudes for 24 partials, this is then processed by software into a waveform (filtered I think, although that part of the scan of the article was corrupted) then written to memory. Then that waveform is played back using a phase accumulator that can be phase modulated by a separate sine waveform.

    That might explain why the Sinclavier waveform is smoother than a real time additive waveform, without the gibbs phenomenon wrinkles.

    So the sinclavier looks like:

    While a 24 partial modulated saw looks like:


    (assuming filtering is the missing element) You can't just filter the output of the phase modulated 24 partial saw, the filtering needs to come between the generation of the additive waveform and the phase modulation. That requires a wavetable step.

    The Sinclavier basic waveform sounds softer, the discontinuity of the saw is less steep, but the phase modulation then reintroduces those upper harmonics.

    Not sure if it would be worth it or not to emulate the originals approach. Doing it in real time gives more edgy sound, and is naturally bandlimited up to a point that is controllable - for some particular sound, reduce the number of partials until the frequencies produced by the modulator and the highest partial fall below nyquist.

    ...but then maybe there will be some old school vintage magic in that original topology...

This discussion has been closed.
Back To Top