Yarns oscillator level and analog sync

#1

I had the idea to create hybrid digital-analog voices by hard-syncing my analog oscillators (Happy Nerding HM VCOs) to Yarns’ oscillator outputs. However, they won’t sync to it, and I noticed that the digital oscillators are noticeably quieter than the 10vpp outputs of the analog VCOs. What’s the output range on Yarns? (my guess is 5vpp, judging by the +5v reference in the BOM)

0 Likes

#2

Yarns is designed to output CVs from -3V to +7V

The oscillator output is 5Vpp (it could go to 6Vpp, but after that the output would become asymmetric)

0 Likes

#3

Thanks for the info! Is this the code that determines the audio output min/max?

oscillator_.Init(
  calibrated_dac_code_[3] - calibrated_dac_code_[8],
  calibrated_dac_code_[3])
0 Likes

#4

Yes!

0 Likes

#5

Unfortunately, I still haven’t gotten sync working even after boosting the output to the asymmetric 10Vpp:

oscillator_.Init(
  calibrated_dac_code_[0] - calibrated_dac_code_[10], // 10Vpp
  calibrated_dac_code_[5]); // +2V offset

I’m running out of ideas why. It definitely has some kind of effect on the analog HM VCO being synced, but it’s more like it just fuzzes it up – there’s nothing like pitch tracking.

0 Likes

#6

Could be that the analog oscillator requires very hard edges, that Yarns doesn’t provide because of the 1-pole filter on its outputs, and the band-limiting algorithm itself generating the square signal.

0 Likes

#7

Interesting, thanks! I found this post on the band-limiting; still digesting it: Sinc interpolation

Is the 1-pole filter implemented in hardware or software? I couldn’t find anything about it.

0 Likes

#8

The 1-pole filter is the 18p cap around the output op-amp (the cutoff would be around 36k, so that’s probably not enough to damage the edges).

Yarns doesn’t use sinc interpolation, but polyblep - the edge of the square wave is not a sudden jump, but a branch of polynomial over 2 samples.

0 Likes

#9

All good to know! At this point, I’m wondering if sync-compatibility might be best achieved by adding a new oscillator waveform for that specific purpose – a naive pulse wave that does a sudden jump with no attempt at anti-aliasing, since (I think?) only the fundamental frequency will matter for sync, not the higher harmonics.

0 Likes

#10

It’s not possible.

A non-antialiased naive pulse will sound terrible and will exhibit “jitter” for any frequency that Is not an integer fraction of the main sample rate.

0 Likes

#11

Any hope of using a counter/divider approach like described here? https://electricdruid.net/roland-juno-dcos/#clock

I guess the Yarns internal clock (48kHz) isn’t nearly fast enough to generate an accurate pitch with that method.

0 Likes

#12

Won’t work :slight_smile:

0 Likes