Aquatic Sound Generator in Flash

Here’s something from the vaults. Aquasound was built with these requirements in mind:

  • Generate sounds that aquatic animals might make
  • Sounds can be “combined” somehow
  • Sounds can emote

This was never used in production. I wonder if I could turn this into something? Like a paid iPhone app? ;)

Double-click the envelopes to add/remove control points. Drag lines up & down to change their curviture. The best feature is the “Combine With” dropdown, which splices the current sound with your selection. Also the “Emote” menu will play sounds with different expression.

The audio algorithm is reverse-engineered from my beloved FS1R. I generated formants in two ways (toggle the “Tonal” checkbox to hear both), the “atonal” version is closer to ring modulation than actual formants. It’s more fun if you don’t understand what the controls are doing, but if you insist: Pitch controls the overall pitch of the sound. Freq controls the center frequency of the formant (like a bandpass filter). LFOFreq and LFOWeight control a low-frequency sine wave, which can be applied to other controls via their “___LFOAmt” curves. Amp is amplitude, Width is formant width (think: width of the bandpass filter), Skirt adds distortion. Each voice has two formant generators, check “Formant Active” to enable them.

May all your bloops and crackles be happy ones!

3 thoughts on “Aquatic Sound Generator in Flash

  1. Thanks Jeremy! Being mildly obsessed with the FS1R definitely helped, I found pages like this one that helped me understand how to generate formants without using a bandpass filter:

    How I did it: I recorded the FS1R in Ableton Live, sweeping different parameters, then zoomed in and looked at the shape of the waveforms it produced. Also Flash’s spectral view helped a lot, I was expecting to see a cluster of overtones (like a formant) so I could see when my algorithm was incorrect.

    It turns out that you can generate a formant using two sine oscillators; the first sine resets the phase of the second sine at the end of each cycle (i.e. oscillator sync). Also the first sine controls the amplitude of the second sine (similar to ring modulation). Pretty neat.

Leave a Reply

Your email address will not be published.