Kyma Forum
  Kyma Sound Exchange
  Mallet Simulations

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

next newest topic | next oldest topic
Author Topic:   Mallet Simulations
David McClain
Member
posted 10 March 2003 04:44         Edit/Delete Message   Reply w/Quote

malletbar.kym

 
The attached Sound contains an improved free-bar Sound with a control over the stiffness of the mallet. The bar Sound shows some programming improvements over the prior versions, making better use of Smalltalk to spawn all the overtone oscillators.

In order to simulate mallets of varying stiffnesses, one would convolve the impulse response of the bar sounds with the time-profile of the mallet strike. A hard mallet acts very much like an impulse, while a soft mallet has a squishier strike lasting longer in time.

Convolving with the mallet time-profile means firing off a complete A-D enveloped bar sound in every new sample period, with amplitudes matching the impact of the mallet at that point in time. This is very compute intensive, all the moreso when polyphony is required.

But convolution is a linear operation and we can turn things around and realize the same sound would be had by taking the output of the impulse response of the bar, and combining it with amplitude scaled versions delayed by successive sample periods. A high-fidelity convolution done in this manner would require hundreds of delay elements to cover the duration of the mallet strike.

Instead, we use a "poor-man's" convolver consisting of a mix of the original sound and 6 cascaded delay lines, all of them scaled according to a crude envelope for the mallet strike. The envelope chosen is given by the sequence #(0.1 0.4 0.8 1.0 0.5 0.2), meaning that the original sound is attenuated by 0.1, the first delayed version is attenuated by 0.4, and so on. The shape of the mallet strike looks like a lopsided Gaussian envelope.

Each delay element can accommodate up to 100 samples of delay, adjusted by the !Delay control. When !Delay is near zero, the mallet strike envelope happens very quickly in time, corresponding to a hard mallet. At higher !Delay settings the strike sounds mushier, like that coming from a kettle drum mallet.

Even though we have a fairly coarse stepped envelope for the mallet strike, at the higher !Delay settings, the results are quite impressive. You might get a slightly better fidelity from a more complete convolution. But at 44 KHz sample rates, 100 samples of delay is only about 2.2 ms. This is fast enough, even at the largeset !Delay settings to make the coarseness of the envelope largely unnoticeable.

Change the attenuation values in the 6 Attenuator Sounds to alter the time-profile of the mallet strike. Changing the !Delay setting merely squashes or broadens this profile in time.

What a wonderful instrument, Kyma!!

- DM

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