cheater Posted February 20, 2008 Report Share Posted February 20, 2008 Hey guys,SwinSID looks real cool, sounds real cool, and has a lot of potential.I am assuming that it uses SID oscillator samples.Doing pitch shifting in digital, SwinSID creates aliasing. Which is, for us geeks, pretty cool.If you don't know what aliasing is, an introduction can be found athttp://www.discodsp.com/highlife/aliasing/The cool thing about aliasing is that it creates partials which normally wouldn't be there, that makes the timbre one-of-a-kind.The uncool thing about aliasing is that, if you have a single sampling rate, you are unable to control it in such a way, that the timbre is constant. And the change in timbre can get so apparent that it overrules the 'basic' pitch and you can get the feeling you're playing a broken piano. This is especially apparent when you're playing very high notes on a digital synth that has strong aliasing.So the idea is: why not change the sampling rate (refresh rate) of the SwinSID dynamically?For example, keep it at 2xnote pitch.Then the DAC plays that back at that dynamic sampling rate.I know this technique was used by the highest end samplers in the 80s to get the best pitch shifting possible (which is, arguably, better than what we can do nowadays with a fixed sampling rate).If that's possible, there's another question: why keep the sampling rate at 2x note pitch? Why not 1.5x? 1.8x? See where I'm going there? You could control the timbre with yet another parameter.. a technique which would be one-of-a-kind, and which is generally not possible at all in more complicated digital synths (because of the fixed sampling rate).With this concept, the filter pitch control would have to be realized slightly differently, but not very.Post ideas, feedback, flames.And: good to talk to you guys again, after a very, very long while :) Quote Link to comment Share on other sites More sharing options...
bugfight Posted February 20, 2008 Report Share Posted February 20, 2008 ...If that's possible, there's another question: why keep the sampling rate at 2x note pitch? Why not 1.5x? 1.8x? See where I'm going there? You could control the timbre with yet another parameter.. a technique which would be one-of-a-kind, and which is generally not possible at all in more complicated digital synths (because of the fixed sampling rate)....i do like this idea.now i wanna hear it... Quote Link to comment Share on other sites More sharing options...
cheater Posted February 20, 2008 Author Report Share Posted February 20, 2008 It'll sound not unlike a sample rate reducer (decimator). E.g. http://sonalksis.com/index.php?section_id=103EXCEPT, it'll be an effect that's constant with regards to timbre, across the keyboard. So imagine you're moving the sonalksis plugin's knob in sync with the pitch of the note you're playing.Also: if you keep the oversampling parameter at max, it'll sound like a normal oscillator without any aliasing at all! For a clean sound (yet, still very different from SID)Cheers! Quote Link to comment Share on other sites More sharing options...
seppoman Posted February 20, 2008 Report Share Posted February 20, 2008 the reason why fixed sample rates for samplers are used is that this is necessary to be able to playback more than one sample at a time on a single DAC with independent pitch. IIRC, the SwinSid features six oscillators (?), so for variable rate playback, you'd need 6 DAC channels and mix the result in the analog domain. Apart from higher cost and parts count, I suppose this would also be more than what a single controller could handle - from the programming point, you'd need six independent 16-bit timers (the AVR has one) and would get in trouble with overlapping interrupt executions everytime when two timer events/sample playback points get too close to each other which would induce jitter. So I'd say, it's a good plan but will be difficult or impossible to realize without massively increasing processing power and parts count.S Quote Link to comment Share on other sites More sharing options...
cheater Posted February 21, 2008 Author Report Share Posted February 21, 2008 Not necessarily. If we define one of the oscillators as 'base', then relate the pitches of the other oscillators as multiples of the pitch of the base oscillator, we can do it this way (suppose osc1 is base):1. mix base oscillator + pitch_shift(osc2, freq(osc2)/freq(base_osc)) + ... + pitch_shift(osc6, freq(osc6)/freq(base_osc))2. output at osc1's rateNote you're now pitch shifting one oscillator less. This is one thing you gain.Note that the way that oscillators 2-6 alias is constant across the keyboard - so the timbre doesn't change. That means, for example, if osc2's fifth harmonic is aliased at C3, it will also be aliased at E5, etc.Note that you need to have a smart way of figuring out what frequency you need to shift osc2-6 to.. and more importantly, it needs to be cheap enough to implement ;) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.