![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: samplerate modulo / division | |
johannes Member |
![]() ![]() ![]() hello, iam looking for a way to do the modulo operation at samplerate. to accomplish that i need samplerate division which is not part of kyma at moment. thanks a lot. IP: Logged | |
SSC Administrator |
![]() ![]() ![]()
It would be great if you made some examples to help explain to people how it works. Still thinking about how you could do modulo with existing modules... IP: Logged | |
johannes Member |
![]() ![]() ![]() thanks for your help, still thinking for what the divide could be used in synthesis beside the modulo operation. IP: Logged | |
SSC Administrator |
![]() ![]() ![]() You may not need the modulo operator to do the phase wrapping in this case. You can take the sin and cos of the phaseJitter using the Waveshaper trick alluded to earlier. Then do a complex multiply of that by the real and imaginary parts of the spectrum (which you already have from the FFT). That will do a random phasor-rotation of each partial of spectrum at the sample rate (not control rate). IP: Logged | |
johannes Member |
![]() ![]() ![]()
i tried to implement and it works but now my dry fft-ifft signal sounds already a bit phase randomized. i guess this is because of the complex multiplication. even if my random-phase-amount is zero, a slight modulation is happening due to the calculations on the fft, right? the whole complex calculation i made looks very complicated to me. maybe there is a more easier/ efficient way in kyma using less modules.
[This message has been edited by johannes (edited 15 May 2014).] IP: Logged | |
SSC Administrator |
![]() ![]() ![]() Hi Johannes, It looks like there are some problems with your complex multiplies: * the Difference part has its inputs in the wrong order * the second Product input to the Sum should have IMAG and Cosine as its inputs (you were using IMAG and Sine) Please give it a try! IP: Logged | |
johannes Member |
![]() ![]() ![]() ahhh thanks ssc, thats it. j IP: Logged | |
pete Member |
![]() ![]() ![]()
Attached are some sample rate wrap around modules. It uses the Equality module to do the logic and a scale and offset to do the arithmetic manipulation, but beware, as there seams to be a bug in the Equality module where by if the input B is more than 1 below the input A, the output goes to plus one, regardless of the tolerance setting. I'm carefully choosing which input to use to avoid the fault area and if the module gets fixed it should not alter the operation. Each set of modules is only able to do one wrap around so you may need to string them together to make it warp around many times. You application will determine how many you need. We have to avoid clipping so I made it wrap at 1/5 of full scale, so if you want full scale type clipping you would have to attenuate your inputs by 1/5 individually before you mix them together and feed them into the wrapper, and then give it a gain of 5 on the output to get the correct level back. You can of course choose a different reduction factor by altering all the number 5s in the modules but be very aware of clipping at every point of the signal path. The Wrapping mixer with gain in Petes DSP modules took care of any clipping anomalies and didn't need multiple stages but we don't have that luxury here I'm afraid. Also make sure you remove the test input constant and the test output S to G controller or it won't be at sample rate. BTW you can change it to modulo (where it wraps round to zero instead of matching minus value) by changing the 2/5 to 1/5 in the scale and offset modules and you will need an off set of 1/5 but only in the minus wrappers and change the minus tolerance to value 1, but I'm sure you can work this out. Hope it helps and hope it makes sense Pete IP: Logged | |
johannes Member |
![]() ![]() ![]() thanks pete for taking the time. i will take a look at your patch as soon as iam in front of my pacarana. best, jo IP: Logged |
All times are CT (US) | next newest topic | next oldest topic |
![]() ![]() |
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.