I built a patch, which semi- generates music under the influence of an incoming audio signal. Semi-generative should mean, that it randomly picks on predefined notes, makes changes in the note length, rhythm parts and volumes of the instruments and effects. The notes however are predefined and the “Snare” remains the only constant part of it to keep the output harmonic. All Sounds are built from cosine oscillators, with the exception of one saw-tooth oscillator.
The randomness in the patch is produced by a network of spigots set to an adc~ to toggle between several automated faders. These faders are attached to the different musical elements and effects throughout the patch. This works through a threshold between the microphone input and the spigots, resulting in the microphone input controlling the automated faders. Though the patch worked fine with the contact mic, I settled for the threshold control only and chose to avoid frequency dependency for the controls, as i found it impossible to set overall general values for different natural environments to control this patch.
Also, there’s a Markov Chain like random section, which randomises the behaviour of hi-hat, kick drum and alters one frequency of the MIC + Oscillator section
The Oscillator Step Sequencers
There’s two more or less similar Oscillator Step Sequencers, one for producing a flute type of sounds and one for the bass sounds. They mainly differ in the set frequencies for having high and low notes. Both are connected to a pseudo random integer, which is connected to the metronome and set to a range of 60. This range has far more numbers (notes), than the sequencers can select from, resulting in random note lengths. The flute- like Step Sequencer passes one signal (mono) to a delay line, producing a bouncy stereo effect with the original output.
The Drum Section
This section is partly modelled after a drum section from a live coding video from Gabriel Vinacca. kick and snare are generated from a filtered oscillator. For the snare sound i added a white noise.
the Hi Hat is generated through a saw-tooth oscillator.
The kick, which counts 6 by default, is connected to the Markov Chain’s random integer which is also set to high, resulting unforeseeable pauses within the rhythm. Along with the drums section comes a reverb line, an automated delay line and an automated high cut filter, which are partly connected to different inlets of the dac~ for more auditive diversity.
The Mic + Oscillator Section
This Sections takes the Microphone input and and adds three different midi values sent to three oscillators, one of them randomised from the Markov Chain. This gives a responsive, windy type of sound.
Notes regarding the Patch
The fader section on the top of the patch is a control instance. When starting the patch, the faders have to be reset to zero, otherwise the sounds will start playing at random levels (sometimes distorted) before the fader movements kick in. This is a bug i couldn't fix, therefore the faders. I chose to exclude the overall tempo from randomness, but still it is adjustable.
Notes regarding Raspberry Pi
For now, the piezo microphone is simply attached to my table to make the patch within the raspberry play randomly according to the noises in my room.