been working on this max for live device that computes the complexity of the input audio signal using an algorithm called "non-sequential recursive pair substitution" written in the gen~ codebox.
-
been working on this max for live device that computes the complexity of the input audio signal using an algorithm called "non-sequential recursive pair substitution" written in the gen~ codebox.
in short the algo is measuring how many iterations it takes to compress the input signal buffer (1024 samples), then that's normalized between 0-1.
since feedback contains repeating oscillations which typically are of a lower complexity, this can allow you to persist feedback sweet spots by doing automatic gain control - when the complexity is low, turn gain down, and when complexity is high, turn gain up.
still in early stages but really having fun exploring. i've done some stuff with my loudspeakers but it's even fun just straight out built-in macbook microphone / speakers.
you can also map the complexity measurement onto other params so you can insert fx into the feedback loop and modify those, gets crazy quickly but still possible to tame it.
based on this paper: Shaping the behaviour of feedback instruments with complexity-controlled gain dynamics" by Kiefer, Overholt, & Eldridge
-
been working on this max for live device that computes the complexity of the input audio signal using an algorithm called "non-sequential recursive pair substitution" written in the gen~ codebox.
in short the algo is measuring how many iterations it takes to compress the input signal buffer (1024 samples), then that's normalized between 0-1.
since feedback contains repeating oscillations which typically are of a lower complexity, this can allow you to persist feedback sweet spots by doing automatic gain control - when the complexity is low, turn gain down, and when complexity is high, turn gain up.
still in early stages but really having fun exploring. i've done some stuff with my loudspeakers but it's even fun just straight out built-in macbook microphone / speakers.
you can also map the complexity measurement onto other params so you can insert fx into the feedback loop and modify those, gets crazy quickly but still possible to tame it.
based on this paper: Shaping the behaviour of feedback instruments with complexity-controlled gain dynamics" by Kiefer, Overholt, & Eldridge
@nnirror very interesting. the sound of those ghostly bits about 1:30 were my favorites.
-
@nnirror very interesting. the sound of those ghostly bits about 1:30 were my favorites.
@tsrono lol that’s my son walking up to me and asking “when’s mom gonna be home” and me responding to him
. it responds really interestingly to speech because it’s constantly switching between oscillations (lower complexity) and noise (higher) -
been working on this max for live device that computes the complexity of the input audio signal using an algorithm called "non-sequential recursive pair substitution" written in the gen~ codebox.
in short the algo is measuring how many iterations it takes to compress the input signal buffer (1024 samples), then that's normalized between 0-1.
since feedback contains repeating oscillations which typically are of a lower complexity, this can allow you to persist feedback sweet spots by doing automatic gain control - when the complexity is low, turn gain down, and when complexity is high, turn gain up.
still in early stages but really having fun exploring. i've done some stuff with my loudspeakers but it's even fun just straight out built-in macbook microphone / speakers.
you can also map the complexity measurement onto other params so you can insert fx into the feedback loop and modify those, gets crazy quickly but still possible to tame it.
based on this paper: Shaping the behaviour of feedback instruments with complexity-controlled gain dynamics" by Kiefer, Overholt, & Eldridge
@nnirror that is really very fun.
-
@tsrono lol that’s my son walking up to me and asking “when’s mom gonna be home” and me responding to him
. it responds really interestingly to speech because it’s constantly switching between oscillations (lower complexity) and noise (higher)@nnirror lol that's great
makes sense that voice would be a particular thing for it to process, given how quickly switching speaking can be between ups/downs in 'complexity' as it's defined here. especially w/ pauses & patterns to speech & conversation.