Kyma Forum
  Kyma Sound Exchange
  waveforms

Post New Topic  Post A Reply
profile | register | preferences | faq | search

next newest topic | next oldest topic
Author Topic:   waveforms
keph
Member
posted 26 May 2001 21:56         Edit/Delete Message   Reply w/Quote

analogwaveforms.zip

 
single cycles taken from various synths for use in your osc sounds or other places that suit your fancy.

4096 samples 22050 mono .wav

ben.

IP: Logged

pete
Member
posted 02 June 2001 13:15         Edit/Delete Message   Reply w/Quote

SurbOsc.kym

 
Thanks Keph for the great waveforms.

Ithought you and others might be interested in the attached module to play them with.

Attached are some modules for use with Kephs waveforms. As with all digital analog emulation synths, you always get the problem of aliasing with square waves etc. The way Kyma normaly gets around this problem is by using a bunch of pre filtered waveforms and swapping (crossfading) them as you play different notes. This would mean that you would have to say, five or six waveforms files for each of Kephs files.
The attached modules use a different techneque. I devised this so that you could vary the source waveform while playing, and still get alias free signals. The way it works is by playing the waveform at a period of 4096 samples which has no aliasing as it is an exact division of the sample frequency. That is then feed though a variable low pass filter which cuts off frequencies that would alias when the signal is transformed to the final output pitch this is then loop recorded to a (4096 samples) chunck of memory at sample rate, and is then loop read at the same time by a sample player at the rate or pitch that you want on the output (under the control of the keyboard). Don't forget that if you want to control the pitch by something else (other than the keyboard) you must put it in the filters formula as well as the frequency field of the reading sample player.

In the attached file there are three modules.
The top one is for Kephs files and the other two show how you can use maths type source wave forms without aliasing.

I called this the surbiton oscilator as I haven't heard of anyone using this technic before. But maybe some one can tell me if it has been used before. Maybe David knows of some patent out there.

Of cause there are some minor disadvatages of doing it this way but I'm sure some of you will work them out.

Care has to be taken if this is used in polyphonic mode as the names of the memory chuncks will all be the same, so if anyone needs poly , let me know.

IP: Logged

David McClain
Member
posted 02 June 2001 18:43         Edit/Delete Message   Reply w/Quote
Hey Thanks to Both of You!

Pete, I thought I recognized the name "Surbitron" from the included sound samples with the Kyma. Perhaps these are attributed to you anyway?

But I really like your description of how to create anti-aliased wave players. That's a really keen way to do things!! Thanks!

- DM

IP: Logged

pete
Member
posted 03 June 2001 15:17         Edit/Delete Message   Reply w/Quote
Yes David
The Surbiton Oscilator in the expamles is the same thing but one that Carla made a few minor changes to , and encapsulated into a class for me. This was a way to hide the techneque but still make it useable by Kyma users. I've now desided to share the techneque with the forum and its all open for all to see.

IP: Logged

CharlieNorton
Member
posted 18 March 2010 19:54         Edit/Delete Message   Reply w/Quote

SurbOscEdit.kym

 
Wow,

My friend was dissing me as one of my sounds had some quite obvious aliasing artifacts.
So I had a rummage here on the forum to see what I could find!

Hurrah. What a wonderful technique. I love the way it is calculated on fly with no need for a multisample!

So..
(SignalProcessor halfSampleRate / !Pitch hz removeUnits) * (SignalProcessor sampleRate / 4096.0) hz * 0.75

I am happy with the above apart from the * 0.75. I would like to understand why this is necessary..... Are there any other threads that discuss this topic? I have had a rummage but this seems to be pretty definitive.

I have made a couple of patches that have the ability to swap between the band limited an un-limited versions. One of them is repligated for detune spread obviously. You need to have the waveform collection at the top of the page in your kyma folder....

I did have fun with the spectrum analysis swapping between them and watching the artifacts disappear.

I made one of the patches polyphonic and it seems to respond ok. I am pretty sure the patches are functioning as intended. Have a rummage, throw eggs if necessary.

Thanks Pete for your hard work and community spirit + ( !Keph )

:-)

Charlie


[This message has been edited by CharlieNorton (edited 18 March 2010).]

[This message has been edited by CharlieNorton (edited 18 March 2010).]

IP: Logged

SeanFlannery
Member
posted 19 March 2010 03:03         Edit/Delete Message   Reply w/Quote
And thank you Charlie for digging this post up!

I discovered this post a fair while ago when I was going back through the archives and only just recently recalled it when encountering some aliasing in a sound I was working on but I couldnt find it (read got distracted with something else).

2 years in and I'm still suffering (enjoyably) the "now, I need to do this but hey... what does 'this' do?"
which makes solving problems quite an adventure.

O and I agree the "* 0.75" is a mystery.
SSC?

[This message has been edited by SeanFlannery (edited 19 March 2010).]

IP: Logged

bar|none
Member
posted 19 March 2010 11:24         Edit/Delete Message   Reply w/Quote
So you guys are just digging throug the archives post by post? Alright, I need to do that as well. To many things I don't want to miss.

IP: Logged

SSC
Administrator
posted 19 March 2010 16:43         Edit/Delete Message   Reply w/Quote
To explain the 0.75 factor...

As you guys all already know, one can represent frequencies up to half the sample rate in the digital domain. This was proven by Nyquist. In practice, however, one thing we've noticed is something that probably doesn't matter to physicists and mathematicians but does matter to musicians: for frequencies close to the Nyquist limit, there are time-varying changes in amplitude (which we would call Amplitude Modulation). Over long enough time windows, these slow amplitude changes cancel out, so the spectrum, over time, is accurately represented. However, for music, the amplitude modulation actually does matter because we can hear it. That's why we ended up trying to restrict the number of harmonics to three-quarters of the theoretical limit rather than going all the way up to the limit.

IP: Logged

CharlieNorton
Member
posted 20 March 2010 09:13         Edit/Delete Message   Reply w/Quote
Thanks SSC! Makes perfect sense!

Bar|None - I am using the forum private search option. Take a bit of time, but once you got it working you can dredge up some interesting posts....

During my continuing rummage....
http://www.symbolicsound.com/cgi-bin/bin/view/Share/Sounds#Synthesis
synthblocks.zip

Not only do they have pictures of the machines the came from, but the encapsulated sound appears to feature alias free oscillators, I wonder if it makes use of the Surbiton Technique?

It appears that the file names have been edited/truncated at some stage and it takes a while to rummage the pictures during the load. If I can work out how to swap the file for updated working one on the wiki, I will!

Charlie

[This message has been edited by CharlieNorton (edited 20 March 2010).]

IP: Logged

bar|none
Member
posted 20 March 2010 17:55         Edit/Delete Message   Reply w/Quote
Charlie,

Nice one. I've been thinking that I want to start creating a similar library but for euro modules since I have a modular and I'd love to have some prototypes that approximate key modules like function generators, sources of random, ADSRs, etc..

Keep em coming!

IP: Logged

pete
Member
posted 21 March 2010 13:04         Edit/Delete Message   Reply w/Quote

SurbitonPW+Saw.kym

 
Hi Charlie

I notice with your sounds you've uncovered one of the failing with the Surbiton, as seen with the pulse width mod example. That is that the waveform only gets updated once every 4096 sample and hence the pulse width moves in big steps.

One get round would be to make the table 4 times smaller which would make it update 4 times faster and the loss of resolution at low frequencies should be virtually un-detectable.

For pulse width, luckily there is a better solution as a pulse width waveform can be made by mixing two identical saw tooth oscillators and inverting and delaying just one of them. Varying the delay varies the PW.

In the attached sound, I've used a second OSC module an made use of the FM input to form the delay. FM in the OSC module is the same as used by the DX7 and Synclavier , and this is not FM at all, but is really Phase modulation. By giving it a max range of 2 PI, it will off set the phase by 0 to 360 degs with an input of 0 to 1.

Also by turing down the second oscillator the wave form turns back into a saw tooth so the "Square" control fades between squarePW and saw tooth.

Also because both saws are alias free and so the final sound is also alias free. Also using the mixed saws technique means that there is never a DC offset in the output unlike the normal PW generator.

BTW I love Carla's explanation of the 0.75 in the filter formula and has a lot of points I hadn't considered. I put the 0.75 in the filter formula because there is no such thing as a perfect filter and the true cut off will always extend greater than the calculated cut off frequency. This can be set to taste so you could try replacing the 0.75 with a hot param and tune it to your own taste. I was probably too conservative and my ears preferred the slightly duller sounding waveform.

Hope this makes sense

Pete


IP: Logged

bar|none
Member
posted 21 March 2010 17:45         Edit/Delete Message   Reply w/Quote
Interesting. that's exactly how the PWM was done for the digeridoo patch I just shared in the other thread, since I copied one of the square wave examples.

But in the digeri case, it's a square with PWM FMing another square with PWM. I was wondering why the bother with the 2 saws, but now it makes sense.

Thanks for the explanation and the patch. Phase modulation example is also really cool.

[This message has been edited by bar|none (edited 21 March 2010).]

IP: Logged

keph
Member
posted 21 March 2010 19:12         Edit/Delete Message   Reply w/Quote
yes, the anti-alias in the synthblocks make use of the same technique that pete published. included sound file should be the expanded versions which show how each osc was create. it will also show the doNotTransformSubSound argument which is handy when encapsulating sounds.

these were created before there was the mutli-waveform version of the oscillator we have today. looking at them now, it seems I used a different order filter than pete's original design. not sure why I did that.

as for the images always having to be located again. i am not sure what happened there, that wasn't the case before but it happens to me as well. something may have changed in the past 6 years.

[This message has been edited by keph (edited 21 March 2010).]

IP: Logged

CharlieNorton
Member
posted 23 March 2010 12:34         Edit/Delete Message   Reply w/Quote
I assumed it was filename lengths, so they where compatible with other systems?

[This message has been edited by CharlieNorton (edited 23 March 2010).]

IP: Logged

PR
Member
posted 09 February 2013 05:30         Edit/Delete Message   Reply w/Quote
Hi, thanks for all the tips and upload.

I'm looking for a software to create waveforms control for Function Generator
something for "draw" a wave with bezier curve and for export in 4096 samples wav.
Do you know such a thing ?

Many thanks

Julien

IP: Logged

pete
Member
posted 09 February 2013 13:56         Edit/Delete Message   Reply w/Quote
Hi Julien

For live you could use InputOutputCharacteristic model fed by a full ramp. You could draw the waveform with a bunch of faders and different smoothing values give different types of curves. You could then use a record to disc module to trigger record when you find one you like.

Pete

IP: Logged

PR
Member
posted 02 April 2013 17:24         Edit/Delete Message   Reply w/Quote
Thanks for the tips, i have made some experimentation with that, very useful with the Waveshapers object !

And I found a program, AC toolbox to create waveform : http://www.sonology.org/UK/frameset-uk.html

Best,
Julien.

IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply

Contact Us | Symbolic Sound Home

This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.


Ultimate Bulletin Board 5.45c