Binary approach to nmf

Hello all

in the last days, two ideas converged:

  • I needed to do a test run of the production flow for the Pd tutorials I’ll do to try to match the superbe quality of @jamesbradbury’s and @tedmoore’s work
  • I wanted to do a human-in-the-loop approach to nmf. I explain a bit more in the video, but the idea is that instead of asking for many components in one go, I split in 2, then in 2 or more again depending on the results.

In the end, this garage improv live coding is not conclusive yet, but this is just the beginning. I’ll populate this thread with further explorations of this, as I want, as a good control freak, to curate my nmf demixing :slight_smile:

More soon

1 Like

r.e. pd tutorials:
(I know the prod value will benefit from a better mic, with a suspension too to avoid these key click thump)
(and I know I’ll have to enunciate (a lot) more)

r.e. the code: the interface is similar enough between Max, SC and Pd for people to translate I think but feel free to ask. instead of [array] and [clone fluid.multiarray] Max and SC have access to multichannel [buffer] - the rest of the code is the same. I’ve attached the file here.

Untitled-1.pd (1.2 KB)

as I was cycling, I was thinking of how I could dampend the stft artefacts for each binary split (at the cost of not being able to make a massive synthetic base bank as they would mismatch in stft parameters) - in the example above, the first split should have a short fft, then I could split the bass base in multiple notes with a much larger fft, and keep a short one for the top stuff… more sound examples to come.

Heh, the resonance of your desk/setup is quite similar to the example(s), so I found myself leaning in to try and figure out if I was hearing playback or your audio.

This is quite cool, and makes me wonder if there’s a further procedural step where you can spawn a binary tree where it will keep going down splits as far as it can while still retaining some kind of differentiation between the results (via spectral/mfcc difference or something?) then explore the “tree” in a more intuitive way to see how far works and sounds good. Kind a “pre-render” of sorts, which you can then just, experientially, explore rather than creating/typing/renaming instances at each inflection point.

I am a person of consistent taste :slight_smile: Seriously, @jamesbradbury will bring me the SM7 for the real thing, that should help quite a lot.

indeed this is what I wanted to do - a sort of tree explorer with a gui - but I needed to see if there is any mileage in the idea. I think there is so I’ll share my ‘instrument’ here when I do it. Warning: it might be in pd :slight_smile:

1 Like