Learning on some real-time audio with nmf

Having some fun with nmf today. I have been interested lately in @basesmode 1 and in general making nmf more fluid in time. Thoughts and comments are in the patch :slight_smile:


----------begin_max5_patcher----------
3570.3oc2b08aiiaD+4r+UPXb.oEvwPjTe1m1qeAb.8ZeY6CE6cHf1h1Q2JK
ZHQEmzCW9auCIkTnrkrkijyt8VrvVgTTbleyGbFpg9W+vMyVJdhWLC8mPeFc
yM+5Gt4FcSpFto5uuY1V1SqRYE5aa1Jw1s7L4r4l9j7mj51+OhRzJQYZLZqH
NY8yH4CbTJOai7AjXs9uxKyxRx1fVVtdMOG8Gp96+r9O+iHQNJIaUNmUv02N
aqnLSpFbhjmyjIhrBnClT2aAmGiXYwHX.o2IS1xQYaWiJUCVXSCK4OvdLQTl
u.8uKTSOC8P4VV1cqDYxbQZJ7bRx1UJQEv7AjexlGjHEcH4vyImC8ByOuPpF
r9Z1JCwrjK2y4Y5oQM4obVtlC2kKVwKJzzmpSyyOQVvSAnPHVTCeoIY7UJ1T
gg9UMtClL.h0b78cdGYkaSxR4RsHA+ZihRYcqNUslDqEOhk+xcXLtddWC7dQ
x+kqGOcgiUyYrs5lm8OXRQ88uiIW8.vY2myWIMpKAvnPtgpAinDW0WXGmENn
eVMje6CeP8w7ApUkl7HeghUmMRNz4DTLkh0DqlViTe34F8FI39LCVx.w+VsN
XgjkKOI+nf60rUZ3lNXdzIrSoneiTrKVOxQy5paBQvZbPIydS7dFeOPHGw5o
BV7VkVO4BDh3tXP+5Gf4FkOuiaXiYyP+b+LYHUqLRhbW3Go9GIfDRnTp6bTf
l+IjIVb+CfWJvgR4RveVpxwwdt18w+7G+6MNApc6ILNJ.qak6nBjmy1Bk2MV
YbhXA5Gz9tXnMJ+Nf5COqnLmab38CnXQ1sRzFtDsCdVJWeaXIYHvuPRJRSEq
SxRJdfG2suE53rqb7Nkm.WiwDMbA9PbmDpAd2fIF3+jxqZLmobumn8xlTfzz
FBt.fOVZpXO3.tknP0dLaG3JNyZcCUqYsVCX4yH9S6REIZe9Jo1GWBKKU.Kq
vQDqkT9oreJ6SZgpYBTycdxlMv5E5mxJV5pxTl9wnmC3IxR0KV.pCvjkuhaT
.Tjjd4Jyhi2Vr9Vz9DXwSqY1YA5SZ9LW7Hv7v5KlkAWCKcxP21vQ2pYZ3AZM
VrhM2Kx+BZcYNLQ4fJ09JMREroYk+U1Jd0BVFB0F7fItVGaNxrFbK5Ws3LrX
3tT1yJlms5KUqOuRjGqWjUAzGFEfV+FVJF7VlISet51e05nHYSFKcA5uw.Qq
VbwPoBwNUe56AlWPIYGn8poKFJSjc2xTwpunlkFA..2vH5BWrkYKPeOZcZYR
Y7BPFsNIEVs+EDXB.J6pabmPE..ntI1yTTIvwfQaNaWRLP6k6hMhZ8iWy8lG
g9Fg.bR1j.LSaba+CIFk1kb0PqgqFUK0DlovONfWFpPiYv+4JLoI3H8bnXv8
IoopHfT7MGsAVZMCfEKLt3gj0FMaVN3RA78.gYkAcDK.xlXGuU0issPatl0J
.YtzDySA5Qd9yfGPI3EQ2IPkrz8rmgu1AJPOkrUiLJEXtRdsDbNE+pgDv1Ek
oxBkvoPrkKevX3wz7alPVw8.unX7J.rfuql2WpscqGHOsfuXQ2dBItizU3jG
DkIfDpZwI3qP7D6pzNxzAGNxfwinfyDMxECG5OvQZPg3OwfgUZJruvUJvwhp
n7sRxPftUiX2p65JrfZj6IPgHSzzTmfiiiACJZAp1BbcCiHXhi6HVcccp.H0
ynTjCltGj7gEyQNl4BsBBOGj7.vdOOisLkaiFGGa2bS3ymLFO+.rISC2ii0v
abw3AtPjhrwE6ZP3ah0OKaWEhEMrC11ns71ilubKD85Ev1cHw8CtdR7pn5oD
mIWhqxVgsgejSBKWAeGtSjgLTEBeuQkKCEj6Gw0AtiSOWOcuJxeLgu+wjhjk
Iv52OayGh0qK3UDjFo0o2W6MDhvhGGmy1TrRsMJ1R5UoIq9h7gbQ4lGra2nS
7vwCvzwiG2wxMpnzZ0hJ7nb6VZIYp8KyAs53Kx1kFzqnxDD5IEXTeiSabWVn
UlngVvWsPvHmpDTf61D.Ff.FAkOKx7lYPTTVMei0PTR2eQnePgyaZJIyzDto
IUZm0i2ooUVNvHRfKfbM0HwS90KModL.1mmUlneRlFA8rJRRqQoVYuXWUPCZ
Eu5teEZ7hpcYCe46ZRHLzRWRIlMpS1D2LwNNDyh8tg0BRh4qYPLi22JtCxBm
t5uNrlN6rI5juOGx4ogA1jm.YcqHhVSqp45o6yHrml27rYF8cjw10wfMYRzS
mP34xxhkrbs0nw2IotSoPj1tqlwkxWKq5dWRV1AnnTrq+NyU6VQ+cuT.ct8T
OacOE2WlY58dPmPdeA6w1nsDxFuZWiZ+3ehkoxLfqRrSytNMcdjuBb6ddrid
hAc7U78IwRiaGakA31S1UqDMqQJGmrgWHa2lD7o0tkB4yFP2poxZGo2K4P9m
.Wz9FZs051Fr1Nna09ANpMtgZrF6Y049C37PGbDG6mUG9vv9l0S88MweV+Yi
ps1ruJxZadUOQPRpOY4nnZcoJeFuQHPys8h.N8h.3tQ.bj8y5bt46ClHAlTT
7oiAlneCCSgSBL45MAvD4aXXJXRfI8VGLVXZJM5ZGVb6Pi+NLxA8cjdAQxEC
h9mDDOK7U4yB6qsI8vsCM9c.QHulivT.GtiCNnUAjfcecmkdWgC7zBGzwAGD
ya75qGb3LsvAYZLVtpvg9c4pA.Kh4QVdSX1M2vmI+bqHRreu2VDsIKes6w.K
66KOtHR2nZX6vhNdCLvmDzmeHvqXspvLUuYBQFvTHZmpG8zee47bZi9.uS.Q
pXxiumIk4IKKk7WupvRjZISUhrzRtXsc2182FpJ2VAGvnvJHA9lzBVZMfZ7i
zS+ohrMmSeo0.1BpfGfTs5u3AQt73m3rWu6FMe6KeeMGvCwbvD740yZH38vZ
fbFqAxHrFp74+6eqA7uqsFFfof600Rv+8vR.eFKA7HrDpVt+28VB++mYPqRn
psneKCD.O8BhhvnOBT5ND1o2HHoWpNMdHorNWAFpMEaXgSRLIshoNWk3IUZj
kIC0cvcDylyX+pgtbOB8D+cqkkTzktmC8Vct3xuLi3d4pNf3W2CZ06ptmMeT
OG5ZsrSr2TaEUTdESiZChw5hgsgA9bi6RzPk7WJMfGHMn1hyqGQLTj.eUgB5
2DTg62DTg+PohqIQD7s.QDdADA9ZQDQW.QPtRDwfUIHWQwwfUInWQhXvpDt8
RDUMZZYZJSbHrVcQxeIEVQGkbhGc1Iqll4WPU0zUQV36MphrXODVspzodoSt
zqStrt.qLEYYSboEqU0h5hkrhYcTzBt8BCqSELoBGNwE5v7lelZQopzFbcLm
d.Oey6weZO8.wrUu.NlHWfVQG0UGkN67kngOsiJIx6qdsiQIWmZGqlsaJSro
+neH6wZd37tSupwIYxgvdcVQflRp8MKU6gaUEHd7BvJELKeA8w5hQdcUYkid
0fEZotPzcPezprxfT6ZRwu.R06iqWKK.1FtyBvPKxG4gI5Kt.bkdLtRhNqWx
FeACAk80NL8qNnMeMsVHdW0JszygN8UZ4knN05vQ1olk0QXnO0LOmKVOqUQN
6MNkO7Do7UISbIcXhiC08E3OsBEd7F9KiqnXaphhIHBEmNJ9U2w4bSJ1rIkO
xip2aqteOmK8JtF68tYCZN0MubnUm9fF08RazAiQtiorRqfBBDN5wp9Azqwx
alvOODK7bFo0.47ApNzPYpN0wXZ30a4cqi+E03orCevWl2TxvAP2tN3QmSOZ
d2WMDDsS8KJwegG7k20Q+xBHwiS2JX5Ts7vglJjv6qtyU2qhu05vke+7spNP
nunCO9DtSGrrlL.qfgJrwQcn0GEdMcpBvvmx4aWBXxc+E8wV8o+JuXEDd1c+
3h8rGGoS1IzPvy43SeVUIc9lAmcrLd5IYQ0wFdSt5PX2p0ly7wf2IfnlLeLC
dkH0bhHTGkk.O+PeRfqmSTnCMRcvV7vA9tANdg.u5Q5tI7gmeiCVqF7WF4n+
G0K.d9gApsKIXgmFGo9g3Hm.ekKUBr.ltwHeWBMffopFiptyHGWeJAnwlY6v
CACHDqNe.AME49rkaZwjj4s9vhzyE6D40aBHvmVRR8M09sGYDrGt4iUh2iea
QQlMXtZt5dGGCsdMMGoBMzYh150wz2KDJZBlIRz.lI5TvS5e6KN6T4GLESUv
.lI6sF9sKnbFxL0lb1lDqOq8UZgTHTWulH9B7Ba9qlQ75wBabx5gPqNCfVIc
cfE6uui4C7H0jFhN6jnH4L.Kd8LgmhYhLjYhLVKd7P7s3MAnmu2PlI7DLSAg
uWyjGc.yTM4LNzaHNw7mB4DcHyj50OXYJLQtjF9T6L0dQHCQ6zqMWef6vJm0
dzNbGFP8L+xA0eeTZGwnG53pyL839FqGlvgxuiUexcHFiSQrKWvp7md8LutD
RFgaG8M4FACY8L2qgM.dHhJ7wdyLgRevA2VMIGbfsO3vZe7A0t+Co8gGPa8g
y1bXUOH78l2lLjOleywzt9XP2FATIspyj39jLEsya+K.P0G1ICwVoxfsU1Gg
paKjFQv9pqBTYZ41dTsxWAW8Lq9.xJoFLmWIsxUuCiCNGty1BTeRs1kszsEC
acv+5lkaQ5tMY.BYl44puRkrHth7mLxp0AGZpjEK2rNIMsggr+wEnd+.lsIm
Em75OONU7OtQ14C+KXdmWgsOo65gQZxpVmn77Nu53g0jlZjCNRqiPqzQTWAM
gOXTcky6wIyBYyWe+kRQCiV6+ooTV5V7015XXRQ6io8.ztzxLWPsxQmVta0N
P7F0rLNY54mhgO7ae3+QivHNB
-----------end_max5_patcher-----------

and actually,

using a running buffer of 500ms and a lot more iterations in the real-time process makes for some more interesting results for example on the scratchy synth example sound.

and another thought is to just use an increasingly growing buffer in order to capture more ‘learning materials’ :floppy_disk:

this is super fun! The file name has changed to Tremblay-UW-ComplexDescent-M.wav as it is part of the (un)weave piece by a certain Tremblay, but I have a lot of fun stoping the JiT nmf at random place. one could process each filtered components differently (like in the help files) which is my go-to up-mixing sound design approach :wink: Thanks for sharing!

Yes, this is what I found when playing it with the scratchy synth. There was one point where only the pitched bit emerged in one component then after letting it return to nmfing, it got whisked away.

1 Like