Hi Tim! It seems we have similar predilections and interests---sampling, and making dynamically, organically changing textures, etc. One thing I've realized in my evolution as an electronics-using musician is that the sounds around us that mother nature provides are infinitely more interesting, complex and variable than what we mortals can do with a few oscillators, (to these ears, anyway), so anything we can do in CSound (or the like) to achieve anything remotely close is going to: 1) involve samples, and/or: 2) involve resynthesis, and/or: 3) involve lots of work and a complex setup. The ultimate example of complexity--a bow driving a string. Or something I thought about today as my daughter was playing in my nightstand--a wooden cup with a lid filled with pennies that she likes to shake. Just imagine synthesizing *that* with an adsyn bank... My current interest--and please chime in, any gurus who know the secrets!--is to recreate dynamically evolving instruments, using samples, but showing no looping artifacts. My initial experiments with my friend/colleague Chris Bailey's 'boulder' synthesis concept (I mentioned it a while back in it's own thread) have been quasi-successful, but it's interesting that Tim is raising this cross-fade issue, because the most successful implentation of this idea for me was using the granular opcode 'sndwarp' and setting the grain window size large enough (think 'boulder') that the sample pitch could still be heard, and having enough 'grain/boulder' overlaps that the loop artifacts would be hidden. But there's the rub--in 'hiding' the loop artifacts by overlaps, I got an unrealistic, unwanted (although attractive in it's own right) chorusing effect, and my question of how to realistic reproduce a *single* instrument sound that dynamically changes while having no artifacts of looping remains an open one. The problem got a bit better by lower the crossfade time so that the cross fade became less noticable, but the overlaps produced chorusing anyway, because of the pitch drift of the sample during the life of it's sustain. I could try only *one* overlap, and have a more rectangularly shaped grain window/envelope--I'll have to give that a shot when I have the time. Analysis of partials/noise and then resynthesis is an option, but my initial forays into the LPC and resynthesis opcodes of CSound have left me disappointed. They seem like little bang for mucho work. It could be that I just am not using them correctly, but if the manual's demo .csd files are an illustration of their greatest power, I remain disappointed. (as an aside--if there *is* more power to be gleaned, shouldn't folks be *wowed* by the manual examples instead of saying 'so what?'---the adsyn example from the manual with the 'kickroll' file is particularly bad---so if anyone is a true adsyn guru that has designed some delicious killer sound with it, step forward and correct me!) One obvious way to do achieve my goal of realism is to multisample the hell out of the instrument, and have *no* looping, but just 'diskin' a sustained sound for every sample....a kind of obvious, simple solution, but lacking in a true elegance, the kind of elegance I would be after, anyway. It *would* be realistic, in the sense that if a flute player couldn't hold a tone for more than 15 seconds, and it's realism that I'm after, then I should use a 15 second sample....you see where I'm going, though---the disk/memory requirements start to get large, and the solution gets ugly. (This is the 'mellotron' approach--a tape loop for every note---but no wonder mellotrons required 4 grown men to move them) Something tells me, Tim, that my questions are closely related to yours, and I'm interested in sharing our experiences; perhaps we can solve our questions in parallel, and learn a lot of good CSound techniques in the meantime! Best, AKJ Quoting Tim Mortimer : > > I'm back! ; ) > > So i've been browsing the manual this evening, trying to find out what's the > best way to go about designing some "crossfading oscillator" synthesis > instruments with Csound, & to be honest i'm a little uncertain what is the > best way to proceed (as mostly up until now for me Csound has been about > sample playback or resynthesis in one form or other). > > I touched upon some alaising concerns in an earlier post (about 6 weeks or > so back..) & yes, "aliasing happens!" Anthony Kozar ; ) ... but, err, i'm > still not sure how to approach this. > > I'm concerned because i am likely to want to use square & impulse & > generally "pointy" like oscillator shapes, but i also want to be able to > crossfade the oscillator shape during playback with other "found" & "random" > type shapes (snipped from samples or created in text file) or other more > additive GEN routine based ftables even (do i dare add FM to the mix at this > point?), to create diverse & changing spectra in a single crossfadeable, but > phase aligned synthesis method. > > now the obvious thing to do to start this would be use some sort of oscil > based table read - but surely (from what i can gather reading the manual..) > VCO2 & GEN30 (???) are designed to overcome any aliasing issues > (particularly again with those "squarer/pointy" waveshapes..) by performing > some sort of analysis on the "spectra" implied by any given oscillator > shape, & reproduce the signal band-limited to within Nyquist safe regions? > > So do i load all my oscillator shapes in a bunch of ftables, analyze them > all in separate gen30's to bandlimit the spectrum to appropriate levels, & > then tablemix from these / selected GEN30's to create the desired effect?? > > GEN30 manual entry does refer to "harmonic partials" - does that mean it > creates a sine based reduction of integer value frequency ratios only, & > doesnt represent the complete spectra in all it complexity? > > Alternately, i'm not sure any VCO2 based implementation is going to make the > job of crossfadeing phase-synced oscillators any easier.... > > I know what i'm looking for for the rest of this synth design > >> LP/HP/Notchfilters >> allpass filters >> envelopes >> feedback, pitchshifting & modulating delaylines > > to mainly create some nice classic ambient pad sounds that can "expand > upwards" into lots of top end sizzle!, but i wan't to make sure i get the > cross fadeable phase synced oscillator section right, particularly when i > can't phase sync gbuzz or the like to get nyquist friendly pulse waves that > way, so basically I have to look at some sort of table based alternative it > seems to keep the "pulse oscillator state" in phase alignment with the other > less harmonically rich oscillator shapes... > > There are plenty of Synthesis gurus on this list. Do any of you have any > useful advice as to how i might best proceed with this? > > I also recall the recent crossfadeable Waveshaping discussion, & wonder if > as part of that there was a method i might borrow to perhaps better align > tablemix transitions to zero crossings in the wave playback for > example...??? (as opposed to simply at constant krate - but that hopefully > would be ok anyways as long as the crossfading wasn't to ambitious in terms > of speed of execution...) - Anthony, did you achieve this "transition of > crossfade at 0 crossings only" at all? Was it necessary to achieve the > effect u were after? > > Please share your experiences & insights & suggestions! > > & many thanks as usual. > > T. > > > > > > > > > > -- > View this message in context: > http://www.nabble.com/phase-synced-crossfade-synthesis-without-aliasing---how--%28-Gen30--%29-tp15037443p15037443.html > Sent from the Csound - General mailing list archive at Nabble.com. > > > > Send bugs reports to this list. > To unsubscribe, send email sympa@lists.bath.ac.uk with body > "unsubscribe csound" >