Image Source: Lake.jpg 1) Extracting the Main Envelope Matlab Code: getEnv.m Extracted Data: Env.txt 2) Extracting the RGB Parameters (later used to control the Chorus effect) Matlab Code: getRGBPara.m Extracted Data: ParaR.txt ParaG.txt ParaB.txt 3) Extracting the Envelope of the Mountain (later used to control the Reverb effect) Matlab Code: getMountEnv.m Extracted Data: MountEnv.txt Note that the main envelope & mountain envelope both start from 0 but end at a nonzero value. In practice, to avoid any discontinuity in envelopes, a reversed version of the envelope are appended at the end of itself.
1) A Naive Implementation of Sonification ChucK Code: Sonification_Naive.ck Signal Chain: Squarewave Oscillator -> Reverb Effect -> Fader (Main Envelope) -> DAC In this implementation, I just simply filled a unit-amplitude squarewave into the main envelope so that most of the graphic features of the envelope is preserved. I set the chord progression to: Am -> G -> F -> G to create a scenario for the later composition. Its output waveform is shown below: However, it turns out that this waveform does not sound good. 2) Final Implementation of Sonification ChucK Code: Sonification.ck Signal Chain: Banded Waveguide Model -> Chorus Effect (RGB Parameters) -> Reverb Effect (Mountain Envelope) -> Fader (Main Envelope) -> DAC To make the output audio sound better, I sacrificed some waveform similarity in the final implementation. Its output waveform is shown below: This is the sonification result after the trade-off: Based on this audio track, I played some guitar & piano to concoct the final 4-channel soundtrack (already decoded to binaural) on the top of this page. Now, go back to the top and enjoy!