Adapting Bird Calls for Performance
For the real-time section I have converted my bird call instrument into a real-time instrument. I went through and tried to optimise it for performance. The final result relies on both frequency and amplitude modulation to create the sound. The rate of modulation ramps between two values set by continuous controllers. The starting modulation rate is set by controller 50 and the final rate is set by controller 56. The time it takes to ramp between these two values is set by controller 52. Modulation depth is set by controller 21.
imstrt midictrl 50, 0, 50 ; Mod start imend midictrl 56, 0, 50 ; Mod end imdur midictrl 52, 0, 2 ; Mod duration ipan = rnd(1) ; Random panning kmdpth midictrl 21, 0, 1 ; Mod depth ; Ramp from the start rate to the end rate kmrate linseg imstrt, imdur, imend, imdur, imend kamod oscil kmdpth, kmrate, 1 ; Amplitude modulation oscillator kfmod oscil kmdpth, kmrate, 1 ; Frequency modulation oscillator aout oscil 1-kamod, (1+kfmod)*ifqc, 1 ; Birdcall sound outs aout*kamp*sqrt(ipan), aout*kamp*sqrt(1-ipan)
Figure 1. Bird call flow diagram.
This is a fun little real-time instrument especially if you have pet cats. With a little practice you can make some fairly realistic sounding bird calls.