Menu

#21 Oscillator sync with square waves is distorted

closed-fixed
6
2008-12-25
2008-12-18
No

Using a square wave as a synchronised waveform leads some very ugly distortion. Ramp works apparently fine. This affects all emulations that provide sync implying the general implementation is basically incorrect.

Discussion

  • Nick Copeland

    Nick Copeland - 2008-12-19

    The cause is the method of resynchronising the wave. For Ramp waves we just return the resampled wave offset to zero causing it to lead into its ramp up which works fine, For square waves this does not do it, we have to return the wave offset to zero and cause a phase inversion so that the ramp inverts.

    This has been integrated into the resyncing oscillators however the bit1 osc is giving some issues due to producing various harmonics.

    It is noted here that Bristol does not do 'soft sync' for triangular waves where the direction of generation is reversed. That is an enhancement rather than a fix. The existing code works with tri waves however it only does hard sync.

     
  • Nick Copeland

    Nick Copeland - 2008-12-19

    Getting the bitone oscillator to work correctly was enlightening if frustrating - it gave endless amounts of noise and even after reading the resampling and sync code 100 times I could not find an error.

    It turns out that there is nothing inherently wrong with the code but bitone oscillators are synchonised using bitone oscillators and they have a complex output due to mixing harmonics and waveforms to fatten up the sound, they have harmonic detuning and independent PWM on each pulse harmonic. This leads to a profuse number of leading edge zero crossings in the synchronised oscillator which is basically noise.

    For the Stratus and Trilogy there is a workaround of simplifying the sync waveform when enabled however that does not do it for the Jupiter or Bit series. The fix is a longer term enhancement to add a separate sync output of a clean waveform at the base frequency.

    Added notes to the README file for the 6 emulators that use this oscillator.

    In any case this bug can presently be closed.

     
  • Nick Copeland

    Nick Copeland - 2008-12-19
    • status: open --> open-fixed
     
  • Nick Copeland

    Nick Copeland - 2008-12-23
    • status: open-fixed --> pending-fixed
     
  • Nick Copeland

    Nick Copeland - 2008-12-25

    Uploaded with 0.30.3

     
  • Nick Copeland

    Nick Copeland - 2008-12-25
    • status: pending-fixed --> closed-fixed
     

Log in to post a comment.