SineBank bug?
Patrik Rydberg wrote:
I played around a bit with vosim today (Thanx a lot for the tutorial Rob), and encountered a problem with the SineBank. When used for vosim, I get a low level crackling, that sounds almost like digital clipping, but only when the sine bank osc's tuning is set to a "strange" interval, +10 semitones for instance. The problem shows up both on my expanded NM-key and on my micro.
I have attached a patch using either a regular slave osc (the one with selectable waveforms, set to sine) or one osc of the sine-bank. They are wired to the same sync and AM source, and the same master osc, and they have the same settings. Knob 1 switches between the two oscilators. The sound should be the same, regardles of which osc is sounding, but it isn't, at least not for me. The sound from the SineBank contains (fairly low-level) crackling.
Anybody know why?
Jan Punter wrote:
Anyway it crackles overhere as well, so you are not alone, and it seems to be abug indeed.
Rob Hordijk wrote:
Its not really a bug, the sinebank sync input just seems to lag a single sample. When adding an extra gain controller after the shift/invert module, making the saw envelope exponential, the timing seems to be correct again and the annoying glitch (the crackle) is suppressed. See the patch. Another way to overcome the timing is to use the gain controller module to control the level of each 'partial' like in the second patch.
Some more indepth explanation:
Cycles of a non-synced waveform do not start each cycle at exact sample intervals, but mostly somewhere in between. The zero degree phase angle 'start position' of a synced waveform however is syncronised to the 96kHz sample clock. This means that if the ratio between the oscillators pitch and the 96kHz sampleclock is not a simple one, which goes for most pitches, a phenomenon called jitter is introduced. And it is this jitter you hear. Jitter can only be overcome on a synced digital oscillator if it would not only receive the 'sampled' waveform from the syncing oscillator but also the exact phase position, so the synced oscillator can start on a relative phase position instead of the exact zero degree phase angle. This would mean an extra sort of cable and input/output, which will probably never be implemented. Or raise the sample clock to a few megahertz, but that would mean using the kind of gigahertz DSP's only available for the military in the next couple of years, you know, the scalable ones that they want to use on unmanned fighting machines capable of distinguising between friendly and enemy targets. Scifi indeed...