![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: Granular Sounds |
David McClain Member |
![]() ![]() ![]() Anyone know why the Granular synth produces sounds that sound like they were recorded in a barrel? I'm curious if all granular synthesis sounds this way, or if it is just the Kyma. - DM IP: Logged |
David McClain Member |
![]() ![]() ![]() Okay, so I'll answer my own question... I just did a quick analysis and here is what I found... 1. The envelope used for forming the grains, typically a Gaussian envelope of about 20 ms between the 3 sigma levels, causes the spectrum of the original signal to smear out by a width of around 150 Hz at the -40 dB level relative to the normalized carrier level. 2. The repitition of grains implies a sort of comb filter with frequency spacings inversely proportional to the grain spacings. For example, if we form grains as above in point 1, and then repeat them at intervals of about 20 ms, then the comb will have teeth at frequency spacings of about 50 Hz. 3. Sending a pure sinewave, at say, 1 KHz through this grain formation/repitition process produces a spectrum that has sidebands located at intervals of 50 Hz on either side of the fundamental, and these sidebands diminish in amplitude to an extent dictated by the shape of the grain envelope. So for our example grains, its spectrum has a principal component at 1 KHz, first sidebands at +/- 50 Hz from the fundamental at levels around -4 dB, second sidebands at +/- 100 Hz with levels around -18 dB, and third sidebands at +/- 150 Hz with levels around -44 dB. 3. This kind of spectrum, although reminiscent of ring modulation, is actually a bit richer due to the additional sidebands. However, the "reason that grains sound like they were recorded in a barrel" is due principally to the inharmonic spacing of these sidebands. More crowded streams of grains will have sidebands at closer spacings, be brighter overall, and have more of them. Sparse streams will have few sidebands, be more depressed, and simply smear the original spectrum by the envelope spectrum. Hence, when performing granular synthesis, there is simply no way to avoid the ring-modulation artifacts. The narrower the grain in time, the broader the number of these sideband frequency components. ...such is the nature of granular synthesis. (Simple modeling code, in NML, available from me at dmcclain@azstarnet.com) - DM IP: Logged |
David McClain Member |
![]() ![]() ![]() I worded that poorly (incorrectly, actually!). Dense grains will have widely spaced sidebands, and have fewer of them in the resulting spectrum, and each will be weaker, due to the envelope of each grain. Hence a dense cloud should (and does) sound more like the original signal. Sparse clouds will have more sidebands, be more densely packed in frequency, and be brighter in strength, effectively widening the spectrum of the fundamental - it will sound more like a pulse. The clouds in between these two extremes are the ones that will suffer ring-mod-like artifacts, and these are the ones that will stand out like they were recorded in a barrel. - DM IP: Logged |
David McClain Member |
![]() ![]() ![]() PS: Pictures/Graphs are available (dmcclain@azstarnet.com) illustrating all of this. It might be easier to understand what I said above if you can look at some graphs of the time-domain signals, and their corresponding spectra. - DM IP: Logged |
Bill Meadows Member |
![]() ![]() ![]() quote: Interesting analysis. I couldn't find your website, however. I have a different question regarding granular, perhaps you or SSC can explain. When I use long grain durations (e.g.- > 500ms) the amplitude of the resulting sound is obviously following the grain envelope - it "waves" up and down. This happens even with high density settings, which seems to imply that all of the grains are being triggered at the same time. This doesn't seems correct to me. Why would I want 15-20 simultaneous, identical grains? What am I missing here? IP: Logged |
oivindi Member |
![]() ![]() ![]() Isnīt the fact that all 15-20 grains being triggered at the same time a result of setting DurationJitter to "0"? As long as all grains have the same duration, they will trigger at the same time...at least as long as a jitter isnīt inserted to cause some deviation from the length of the grains...? Or am I way off? /Ø/ IP: Logged |
David McClain Member |
![]() ![]() ![]() Original Posting.... >> Interesting analysis. I couldn't find your website, however.
- DM IP: Logged |
SSC Administrator |
![]() ![]() ![]() RE: grains bunching up This is caused by not having enough simultaneous grains. The density parameter can be thought of as the probability of triggering a new grain on each sample. This means that if you ask for long grain durations, you need to have a small density in order to avoid running out of grains. For example, say the Density was set so that the probability was 0.01. If the grain duration is 100 samples, you can expect (on average) one grain to be triggered during the duration of another grain playing. This would mean that you would have 2 simultaneous grains (on average). If the grain duration is 1000 samples, then you can expect 10 grains to be started during the duration of another grain playing. This would mean that you would have 11 simultaneous grains. You can see that no matter how many simultaneous grains you specify in the GrainCloud parameters, there will be a grain duration that will cause you to request more grains than you have specified. (In the above example, choose a grain duration of 10000 samples or ~250 ms, and you see that you are asking for 101 grains.) So why does this matter? Because when Kyma starts up a grain, that grain is in use until it finishes its playback. This means that if you are requesting 101 grains, but the GrainCloud is set for 20 grains, you will get "clumps" of 20 grains at the correct spacing for the density, and then a gap until the first of the grains has finished playing. IP: Logged |
SSC Administrator |
![]() ![]() ![]() David -- Are you referring to the SampleCloud or GrainCloud? IP: Logged |
David McClain Member |
![]() ![]() ![]() For those wishing to indulge the mathematics and the graphics, you can now find a quick writeup at http://www.azstarnet.com/~dmcclain/GranularSpectrum.html If the question about SampleClouds or GrainClouds was directed at me, I don't quite understand your question. A grain is an element of a sample which has been enveloped typically with a Gaussian waveform and placed arbitrarily in time for playback. I would think, but I am not using your vocabulary, that a samplecloud is simply a cluster of sample cuttings without any envelope applied to smooth the front and back transitions. If you don't smooth these transitions, then the spectrum gets even uglier because you have used a default window that is simply a top-hat and its spectrum has many many sidebands and ripples. It is a sin(f)/f spectrum. At least a Gaussian envelope produces another Gaussian shaped spectrum. - DM IP: Logged |
Bill Meadows Member |
![]() ![]() ![]() quote: Ah ha! Thanks for the explanation. (Too bad it wasn't in the manual, but I know how hard it is to write those things.) I will try this right away. 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.