Using MLPClassifier in Ableton Maxforlive

Thank you for creating these wonderful tools and documenting them so thoroughly!

I would like to work with Flucoma tools in Ableton Suite, using Maxforlive (on Windows). Specifically, I want to learn how to send the outputs of the MLPClassifier to different effect chains or even to different audio tracks. I have already successfully re-built a patch in Ableton Maxforlive following this tutorial:

https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flearn.flucoma.org%2Foverviews%2Fclassification-neural-network%2F&data=04|01|p.a.tremblay%40hud.ac.uk|09ed90c2fd534e5c7b4c08d9e10d5656|b52e9fda06914585bdfc5ccae1ce1890|0|0|637788272378313515|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=EK7aykPzwEvKtLR%2BjYog87meFaxliH8Okblos2erQLg%3D&reserved=0

But now I don’t know what to do with the output. For example, I would like to send the “oboe” to one effect, the “trombone” to another. Or use them as different triggers for midi or whatever. My understanding of Max is pretty basic and user-end (I know my way around the Maxforlive devices pretty well), I have had an entry-level Max course but am by no means an adept. I haven’t found any documentation that could give me answers, so perhaps there is someone on your team who could work with me over Zoom? I would of course pay for their time.

1 Like

Good morning!

I think a simple router via a matrix~ is a good simple solution that can grow with your workflow. A first approach would be to literally switch at every frame, but that might be too stuttery (that can still be fun though!)

I’ve taken the end-of-tutorial patch and just added what I meant - for now it is just panning the results left for oboe and right for trombone, but that should help get you started. If that is in the right direction, there are a few ways to improve it to stabilise the detection, and also to make more conditions in time for the change.


----------begin_max5_patcher----------
2278.3ocyaszaiaqEdcxuBAitzwfOD0itJ.26h6hVzE2YWQQ.sLsCmQVzUhd
ljVL42dIOTRVNwVRiMsPGfw1RhR77cd7cN7Pk+996lsT8hnZVvOG76A2c2ee
+c2Amxdh6pO9tYa4ujkyqfgMqP7M0xOOat6RZwKZ3zkp8ZQvtRwJYldmRVna
FxNtN6YYwlmJEYZ2LkDwVD08ejz4AgzjEn4AXD19Egr.E7G0Ohh8akE4BMHA
jCmzLmu+rxUf3XDwGHIMhfab5W2Iby+rYyM+O3OrW862eu8i4WG7yU7UK4Ea
5AzT1B17fHF.OVR+fDeRPhOAHiOKHA44h.4VQUEei3CnDEfLxf8i.7vHMFvX
T5kXNOERCOu4z6nDMLJSSHfkD6YXRmPXVaLQsvrTTIJzbsTU7TtrPjo1W.Cm
1ih.kdSTDjIRQjkK3kCvVc.eTlmvGNwy36LTSa45R4KuYLyj.7hfGK4a2YXY
6AvDfhJlBegCwWBUE8i.N8r3sRtofmaIkO7qbYk1q5gJQdPkLWTjIBTKUh.c
oZ6RUg3GNQULvugCGvSO7jJlvOpXR5mBe9G+dZC.X0ojih8Z..apHzqs58fv
PVn0jRSw1uBi7EB8MElVsYSde.IJA.BN04aF174UVkAqCcgg+PnEkOIJ3KyA
3fNGHsUA5yP3+zLykp.FZXM.gBXOh5ISYXxDVmU2xnCzxsKKEK2udDf1Eghq
s6d.0wSTH5QHd33UFKBhWcLwjDjuvKahv6ZYigcEWyCjEU5xb9RQdUenNj0g
GF6Mh3P5+RpzhRA52jTv35M3gmH3YqpnujL3tIY7F7nSUZzQTuDMLoCDY9Zo
.TxzTp7mMzO8UWbLD3ERczMfWpOPGZppCRnANlfeBG7SjQ.zH.nI9JGJIcZL
iqDqE8QyDF6.DTUKMxWchIZxxUNP20PcYQI9x3wlFiWlgjQVHBDuXVmZt3gf
pfGMKfcyFQYUu8iIFHToovW3Du0EQ7z0EQnaK8555rsTFjnLZ.LxF6BPImmA
Bb0pg57qnhdiYcq3faaKj4qV0Xp6A1XjqdOBXbcMVjf9wBYQmnELoyt.nrbu
VqJF1HgcIH70ZvvwWzZv7+pSLoQb0oaRiLlEmfIzNYSvDruZf1DwHYPmIexa
GvZviUFGVCaDcP5HhiGBGEeIYYNAcD970puNWw0scIxmZf046kqVX6HGAf+J
QkVV.cIdTd.0IbY3EjNMm35S4hOecgWd6C2tOWKqxkqNPDWI+K34h6oK3DVL
DtiQtuf7tw3q2feYsdoN2TC.DZybafo6pOPPGXP8sax10YYuYTUlnDMuTmoD
qW2ah6PZSF6Xq2wks0XmPyE2uyguSdWGj.KhWneajqoutTalqmi3PjmZ1dzf
8Ttkt3FnErM0.TBG5wwvIH7tNfbq0Ah+ZEO6s9PFTBPbDrpXW2are9ij36Tk
sbIUsrKm+p0u+sA23GWWXhwQsa+Sq7lkK28rPt4Y3FhrnqGCzV0JgKCJuRl0
ZLLEyaRdjqEa2ofgCrQtKBiTuuPZyfYpUMDcRkRyztSZvPlpzBASxnt5q+bO
OWpe8iy+ZUdt5aaxUK6HCmPKytHd2SsUVG9k8+19bZjUd4qG3mMgIlTpkBCZ
bOmCp70pxs7B8oAYitLWTrQ2bqVyl4Il8kpCS.DA5bNp8NbFy1W8iNWvbI9x
JU9dsv3i.O0Y+Od4WDkO7e++O7IQwusTI9UaVxcOqJjYUO7qK9F+q0pKPlsM
v0nytva8KxBmYfuekTYOSmATag1mfBQHBJMry0xUpccTO.HUlUTUnexjKRKZ
z..VaFx2a9kKVZ.EwuYaM8WjVr7o59g8KphMex78.5ge36bTpgTFBTCwctVk
H+fqh0gHFkfL4WYgTLNJL0DUeHl1G5MG4Y8Y7ZsD46fQJWKsUf+H2.qu5p6D
G7nsaxEkF4y5yyBdz7bklvTypEQng2NSJtdszirdiLUtprlV2dGV0ZZBhlRv
rnjHRr8T3zHTbhQOSiIr2ooGNgU3sNg04VE9+oVImA519zcfJyUgqqwYIW8p
voGXlKzskZmzlSvd51nnegqUcS+Ay8L6qpx6dK1.g2d9iUGUp8kYMZ0l2RrN
zscVZSmAUOlSpwG6DYLtAjAlm2ILpR6hPrZsqZlsuiXCBQ6qW0UiwlGRuyTp
GlH13mm2qKwW0DmNhIF6A.ZmG7HlG7UNO3jIxhYectllIhNQSTxXBnodZhFx
WnQ8d0SzfN29fKbTDRQ2h32wLy1VtzYPakqf9cVmfgQbo+b80E6Vr5wGgB6r
O8vQ9lRmMFhVevnyFSXqcGL63g9NEVXDnNBItBFRiaO5ZkMzXTBIST5l3aQp
6vwDRFF6ixShmHOpP5TMQ3QLQQ8Ep65LIy8hvRRf8fBNx6l4wHpjQKpXJoGQ
EeyKi09ZT0gOvSyLM75ohH2HpH50SSVuPzafrMFZRRZedW099gLZmHA3nqsX
szqMFsQXRNRzR7fnEMlRE7QYWD10pDRQSDQ0nDUxnE0aIQEAO1PxyJqt2p1P
ha+Jiq4NN9nnttctnUOqxGCNvrQiiZcNbj204ihpA2GMny+f59hD5duORQWc
3LdTq4.4gvY7UGizXhbbZcO5HQy06K9tceUTVU+3AoZ1V9mc8pLYNbnrvcHr
ESyJEeUV0cmDlwKydVpEY58kt1r8RjqWjvd3TVrWV6aXzGlorR+Z9662VaG5
1xeIx1ER.Z12EO99b8wpLaeGg1o9jrvJ6hN6bwgO5xIrby6a+5gOPKXsiimk
IJzcFKZQhcDI11zF01z1v5mtSYNu17VZtU.Z.NpA.75.zDE20c3H.Cs8rOHe
jHERnL6eIQnEMsIFsvPnvv9VrN5U3we1h0x77V.0cKkZ5X8rMk7UxCcZtF+3
Vah8ukJng4e7Wc2aB2sQZ2GijDila9I+0Gusl6hjhvofsmVa6s+xbJ76tKdw
FmRlD2tij1+lHU6Tks671BZZ632qUs.sgmucWPNs463niwYEcsOezdWfMKz3
VgHvufMo3h8rbjLvVHXEppc7r5M00fh6+98+CtjuSg.
-----------end_max5_patcher-----------

Great, thanks, this works! I have no idea why - probably I need to get to know matrix~ better. More later when I have read up on the subject. Thanks again!

ok great - it is good for me to understand where you struggle in your process, to enable different entry points to our work, so feel free to share your M4L device and the work in progress and/or questions about the behaviour you are dissatisfied with (the jitteryness and proposals of taming them I did above are interesting topics to explain for us)

Good luck with your explorations!

p

matrix~ is inherently an intimidating object with all the arguments and numbers one needs to pass :scream:

I think I first encountered it 8 or 9 years ago now, and I still open the help file whenever I make the object everytime!

1 Like

@bledsoeflute : [matrix~] can be replaced by many [line~] → [*~] if that helps?

1 Like

Thanks both of you! I am too much of a noob to know if [line~] is easier or not. Since [matrix~] is working I am going to run with it. And now that the matrix is separating left and right channels it is very easy to send this audio to as many in-tracks as I want, and put an Ableton Utility on each in-track, telling it to use either the left (oboe) channel or right (trombone) channel as its source. It looks like it will be fairly easy to have more than 2 channels - I assume it is possible to create more inputs in the MLPClassifier.

Here’s what I would like in the end. I am working on a project for flute and oboe (with Peter Veale, he is applying for the funding, fingers crossed!). Each of us will have our own separate microphones and channels, so I hope I can run several instances of this neural network from the same laptop in the same Ableton project. It won’t be separating/classifying flute and oboe sounds (they are coming in on different channels anyway), but rather I want it to classify different playing techniques (air sounds vs. percussive effects, for example) and send them to different tracks for audio processing or midi triggering.

2 Likes

This is a good project! Did you see the presentation of @a.harker’s piece for Niamh Dell on oboe? He says a few words in the overview and goes in some details in this talk. He managed to train it to detect between different multiphonics!

Now the less good news is that this is quite advanced Max and FluCoMa, so you either need to want to learn this level of coding (which we can support) or you might need indeed to hire someone to code that for you, as you proposed in your first message. I can think of a few very gifted creative coders who are active on this list (I’m refraining to tag them here but if this is indeed what you want I can ping them)

1 Like

Oh that was very interesting with Alex Harker! The piece sounded lovely, too. My approach will be a lot less harmonically refined, but will also heavily rely on categorisation.

I would like to learn or at least approach this level of coding, so I will need tuition at some point, either here on the Discourse or private. Ted Moore’s video was very helpful, maybe he would have time/interest?

2 Likes

I’ll let @tedmoore reply with his many projects. @rodrigo.constanzo gives amazing tuitions too. @jamesbradbury does similar works too. @balintlaczko is also doing this freelance. and @pasquetje . I’m sure there are others, maybe we need to make a forum entry on freelance creative coders…

1 Like

but for the project’s funding, we are doing free online learning material for the next 7 months so that should help people to learn and discuss these ideas. Maybe @bledsoeflute you know someone who is a good max coder you are used to working with, and that person might be learning the FluCoMa stuff super fast and distil for you some custom tools! So many possibilities!

1 Like

Hi folks,
so I have had some success, classifying three types of flute sound and sending them to three separate stereo channels. The classifier is not perfect, I upped the ramp time on the matrix to minimize glitches. I am working on the MLPClassifier parameters to improve results, and now will try to understand the extra normalizing patch. Or perhaps even if modifying the fluid.mfcc~ would change things? This I will of course try out on my own, but if anyone wants to chime in please feel free.


----------begin_max5_patcher----------
4696.3oc6cs0jaZjE9Ympx+Apo1ZeZ739NM4ImKa7dwNapXuUpsRRMERpGYr
QfBfFOylJ9291W.DRBZZw.xZxtaVOBj.0myWet2mF8ae9m8jKlkdmH+Buuv6
m7dxS9M467D86odmmT8FO4hUg2MONLWegWjH9P5r2cwkkeVg3tB86+qqDEYo
dT.n9yhVn+D4k+T312ccXw72Fkr75Lw7ByXSXjq.W5Q.AWQuzigTmf.WA79k
paJYypnjXQglFPMd2zMEUuMr5sMuWw8qElu9KlElr7BueQ+w+9m+YpWkuboy
7bQ5xkwh13q.qrEjn3GB.pdAo4Q0e6fsf8vVqCyBkfrH6ZQR3rXMyA5jmiRJ
lFVlZik49rqXM9eTnjywPbEq+3A.5UNuMrge7XCgqPEF9bSled5pUBIDd..T
71nbO4++lzLOIwLSj4kItQjIRl2p7huMLIfBTLtuOT8BzbFjerhHfAylqD44
gKEGxl.OjWqywLq7CLPwApoZ4KF1YLmUeHynqBKxhtadQVbarE1koo.yzDVe
FicrSSngoIGGkKkCKe8g..cOWK+uKk+AZdA4AaChHVs1CQFgXFjpL2y4mSy8
qiCuWAeebKGDI4f4oYJFHJMYmYf4wQqeqHZ4a0rFlriYKFiTcc+5lv3nh60i
vrv7n40e62jFGm9gkwoyBiKDqVmty2eSLkXCSw9Z6hPFyDef9EHvuInVDImW
KxDxa1bSM9LoMpUgIEcvlsKxtJcgnENJMKZYTRXbrHYYQ0HoHGIAL+8xuheo
84Spax7ke60XETI4T8oZJoXSRjxj9W3QHcqqjGsT90nzVZ6H0+VDoQhvr6aP
yKBKBKkepDfLhA0QG17SjeV3r7z3MEB4jlFLt3a9hm8pMRx7Yeoj2JRS799r
z2IA87m8chMYgwW+chhOjl89p2+YuNb05XQ9y9V0Wy0oYKt9Gey04yCiEW8g
vaqvc8rXjDzkXmdbb6xeeThQFKbyhnT06z7JJk+1vYD..fIvleXtHdqrR4bL
rg.m5ZhSSW2b9SiVoIERGlWmWDVHpvRCnUeQ+91iKUemLX8ukjGsPb8a2Tn9
mUHs+K0M3DRnZ3j7GP37UahKhtlXEGsbMtAfAPC.5+oA.K8uT+tipO1UJvoU
upVSMzm3qM8GnSd.iNmbp1YHxRqSdxXI9ydneVZyVob4gkmQ94DMJ3QkmrML
x3nDw7zMIFmsskwEzFBQAZngiw5vNzHDAd5hftqDkxje6Bu0YBkCm0oQM.pF
7FxZJSPnLlpCxYhhz4UCAvgIMf5VZ3xGlDQWXQbZ3BcBYsg.VSPByzQS5S0y
tz9BpDdpSSzZL0PSL0sFLMh3BayA5JBEbVkGkCoQ.MoQzZBjHbOh7AWA2Wju
JoB1iFf.tS9TsCDHq.AvvsOtX84whvrVq.pcCc.B5psyyX54Dy1kUMSAE9nb
VFKiHw64x7aV6A8auzX1U2ovF9vfXxvLyQFXZQOzBKzE.ICcyKWEg3bgmJlf
xXA5LTHHZ.NCMkKGh6S+f1S9os6Z3xte8zp+PsJ.wkQFdXsU4lfFoOJrbTJn
zJuaUtvmaVlASHxjyJ6jVVFAfc6gP1gdAwP1+irPBD9.PGiQzyukRnSQ9lIG
3UDsZVlX1laZEO7G.dXT+gHxiB8+c.CimhVQBqq+V.HnQ5xHN3QAqeST0zup
NjJluHKNblHNuUD.e7qxVonviDWAc5Dj.smzjIIw.ziH2dx3hZc4nr5tmwZV
UHjtsAN64zt0ow18uCPM7ui8eLjZv6jVwZkSs50mAzLGEqY3GISq4hBssJu+
Dz6OgZMO2.WXZllo43GCSuKTK3eqrJy9x4oYULTWFqdyXAdl3WtqRWRs27Of
lFiQOFlVmmtZVThvSbmdUOdpWt2yko3uboHKuip3Y0gDAPMlo80o0yezTuVc
436PBG3vrNgY5pG3vxImXMWjx0wU8uGXpIct.FgKVTIDzZcJr21aREaEFf7M
kv8T2ROy1TTj1p2GnuKsqG4SQ2pMY4XIcOYRoP5dxZJVP6lyn3FdofH3iA6Y
RNU5m5ia4aummKEpk1xvsh.XGLlg8QW4qf.l+vbe0s0rahSCKpqv1DfG2DuI
ZwUppchzfwBQdQTRnZwk6Q1f3hacSqLBCBFa+5O3F+RUv07XYz2aMoK0Kjjj
7xLiwSQsjpbSDvZfMTt1VWUitB0d682YQXyi9OZ1AhOAcL2T4WzH.s5l4y+n
jQjZSEgYEySE2bS6gGfgNzcWHYx4HkF0PWcSTucN3DpLoKSgn3i8U0BL1gj.
XRUHERP.CCIv8VL+ZaLSGjnpgiFQ1VRmVADW727GB.YU7Z8kFcSjxazyCmWD
cqwpKz64pZ8jjEVH7.WIOU98FIUy8ff12IEX9QuNHkQhggPWAw4owoYk0VUc
Ofq7AAb.N.AoLNC4qdKXfTpkSjF87QTRvtckzml4gNCn8qKw+4ZXuUb0ZLsl
0Xy3wubQHbHh1aRSJps6yuBzQjtMu75lI6kgEoWL5Bjqi2rTNzp0rE4g8Hdz
FMhTyrbruZsbSSt6aZG29DqXshGftvCVq3wWlEEF68UowaKW3QtJuVNZBT8U
HcTxGaMZJqRZLiotx3sctbPtgsnwCaO.yLTntc11eOko4S0GrGRlmtIad0HT
tepZ1+1MBPswEo1LYpqp64LmGOtKimZAGFowSsJ18OfX93MfHmFPEhB2dUqh
VnSZrbdz2T5YJha1ed90mMNzHvoYgQDTbY7Fugi3jTMY7FO2jp8GuAz+DKUS
HGAh1gPMlaVkAyV0pL40cOia1MWXltnd5y190kloRmTYs8jwPpzo7ZiD.iAI
fO0ShPmFPp8YQSNjLSmiQLkmRe1TMS4FUiOBplAY1n5QYxELFtAnZ5TY3Gri
afQRdvERD0gF.7TR.voZVZ2u6tI.zDh.NQ.3IDAPtP.jIDAbh.lJMUsA1do.
UW.MYhgtQBH9DpJhIif8Jles8poHrU7nDZsoVwSFM5j2J0p1OcSkNQBPlKAq
gMdJolxAt2Y.yYA90mMU5GN4LEEXkiJc5SozFg.nOabl3cgDYFQyQX3PAiPT
QUf.eGHgOVPBxozhfnQK.WjSoEgFuD+1WOtCNbDGP5HDBOwrzamtP3cjpwGA
UeBBgGQNsUQ.gOwiG5DOdPmceaQJvzyHTr9Q7DyrUb26rRW6vsAiLURHt4ok
dDbTo1n9roRazMuoPqgQUpMRBLjqIvO8YihrBjeZkMgt44X7pCNbTLjWJrX7
e27rwgF2KwyNlDrG1EDw3WE.2e60BLOVEPk62X.XjpoAD4TpTi2BL.QNkBOZ
bGv9M5LdkMD5j8B33Uca3.p07nZgD9Iu1vPWDppnf1WVvv0quUjkWdKlg5hU
guyzmA7KMmGkXN2rNkWjItMJemGaSWDlM+sQEh4EaxLKd4crxlSS+jaJKYST
EtqXV0PmWbe7AKI41E+T8DY40EgEaxu9UhjMkKAppG2C2DWrGzLa4MQww08G
wNOujpVszx1m3x5miRa6lBvUn.BDxU8OgtwIX5iTcPAsIDWdSvp6hPIA.j5Z
klU8IT8QbDlhUGA1+9PaGM.LvLFpF3fXNR9Vv8dHxbQXxRSWkg72t5wRQjrz
0oY0O5rtBGr8N1TjtLKbQjv7nKAbvSOlKqDyxjWhdVPCOUHrYePWcm6JZt6z
ypn6FgokZhsCPF6yH9PMDoZqEMXQ1GmFJ9tmPvnOsLIf+e+oeuxDgHy6qaHR
2wbfp0Gzb40QIJUcQE2BYXIvpaYHeBKHn7Hv9sLzrk6.Rl1KRcwbkHudhQ29
Q38tuv4yEIE6bu8MjiJHsI9056r7lpZBocQG8d5a+9pZm+b.UU1ZINhx51zp
5OciqsMtV.RNhB03nOGx0SA.Z.UY.pMJtpKzGARd35yCT2D1J9HiGLnSserL
3VerwBNFyMGwXGXS1QkXJP5ZfND6qIh3Qzf3e7AvV5ywiUTeTLYfFnEUG00a
ZCMvzilR1TaC8rQeCnxFCB03MO..f5nb7CjSBl2C1ozi8ajNQA2b49SN8Ooz
hcUjpWZ0fEpNzNjtaZ26d26tjwLp0N1djTnU6pam6pNx9ts7KwusWuHVr5.e
npt803CU25u5iZNXioFwKKeBo4o6rROoeO0SkwoV8.WxNfqX0yBAkQAty80r
6J+IufdlbAJXRGiNVq.pELopH+2Shdm1v7mJaDyKFYjcy7vAhiNKjV+LpbGX
vGAXAZlGx7QFi5bohJoGaVRq39FSURyu95oGNAE3qQTJ67vpEuNOLtOfx4li
NDa12nEiBLXht5SFYuxupoKgLKxp3J+BXREk0Z+7uyMQ7oPrl4QAX4rjQDAJ
mt26tZythOWx2FjC.4byQxAGgZQoqgxw+bsHw60gI4duVrJZlpakGWMkWEVT
XWSQQQ2DVUZDXW1Gffw173qBuyCh79AwxMw0OZPd3ekeaZl2KitUXmqayYhc
iCRYZs+owEDdcpj2kf7hqAvAZQyVHCNXQS5YfXLrSjhvlJD.PXBmZ2jlz8I1
DRIjIcNvLaeFtLl2yn3vbkH22hF.RCP5QAhXTTYd5Ar.1ovj1ggg4JV2VTY9
RGUZ7hJMNapDDJ3fY2ccWYMJTel8fxrSuRItdBRyQJdOSo+UQ7shhn4gdemX
iv6MuMJ4hISWcvI435D43pq5rIhy0blroq598chB+fJyw1jZAkImZ3livLrI
S7Nz4bVzncUNahF8qxYij+zpz8iu4a6qL4GUUROGjzcL9zyiE9nivA4831gB
j4bpEBYTroFTPHBhrFCNTuua0Be0om6WsPR8qCrs.BP0l50.wpDYPNTZ.hzJ
Bvn.EfXDloLePtJUWqp.2uHKcoH4MZglQU12rCqmO0ULfiCL4yKOnJed4aQG
TfbssNgvibjFoUjhWGM+gG8PWQpgUDEhdCmeYqGYIyTWuqNBFqS4f8jjegHQ
ba3zHC+UMe.F0gj7g6Ped8DOn7nQuHckz22nJR0YK08hvsa659IOU7xUVOO7
nIiFy+f5meK6T4A5DNrjgiHwgNOot+wNOGe5f3ZOi.msMre16cZTvw0UsUWn
8QLS.18RwhiUusU1tM9gcvUOALvq1+mvvgwGSAkod1L8wiJ56dM7btI97coK
D48WfzNbwOnvMNe3cWL6ziUiofrz+.rd7FCOzq7zQieez7BWPuyko5uOSjKJ
NeCv40ySWKNNSMCLV55k3JP0dF3IVN4MgyNB0KmYo1Dq507yTvdxbOm4Pj8s
sdxCM.jofMZ9K5wnDessIpNZISvDwb+qU81.vmdD+GCuUn9gr8iicLuM6QlO
g4DsHL68OMQ8qM7S0Ik++6z2irtJGrDXt1aBsYqIntOUnRLBT5Qy4BnPpsm5
Wunv0KOLW+8LtROuasoCkAaWS3Q56qmDf2ugdsVpZv3VaPGGoGQxv6m3.s20
votOZN3ftqZW0u5u5tH4qRSe+EisvXTx6OVwlsEx277zr4QtrNmpmCm75HDv
kc7o0hX6p8gG7tcwAh6jZa9jzABtLizhkWWtsi9F5R44xc9a+U2wxPMlJPu2
jn3Op1hWmMwgEqhMwkP22u.Of.RYuwEDf49kG4ycIEksMjJs1xNtYqoNlb3p
v6XpmyoS5hmc3FCv9NOY2zy7K0rmDdW+7T8XR9Dgonfcc6VtGklD5a2ecGFy
4mQHXZdcird3Q1rZ6yUafwKa8nSazHO7sz3dJPNOwZdL6drUUrwtAcppElYu
mA5qQKaquWs1nCl4IP6qSRacCu4wR7TvbeU7FwSgGcwX5cOCLATZV5GRF.od
R8gXH0u99vgPo.T.0zFI99Xr44KOGAkgFOYT5KxDhAQpZ7rtfnvxmG9SDU9C
hECfF8qibFVmfHnzm0DQn+aQbb5Gd5wYu.o1hc..eD2BpiGqfdbyJ5UF5ERi
mCQ9otzOzsaBrl9XGSJc8lr0wCM1F+ZOJjx80nDkUZj8zkuX.AXhfCQAr.st
BhSYH9DvgYh4hna6asSaSdoN87sbGn4tEZToRStWuX6OC.tklSuBKsm7JgwL
EgVZm2ubWdIUEBlBK94hjE4msV5yKl4TfVNuyiN0wSUDttepuAgn9sMw6kpr
pGcBIuPbyl33BGVkp8aFZNkZZHdDC6iM6rIlTaiYc2ePT60SSaiWkWBrbSeN
5BJUr2.3ND2myp2o8FAZLJ.GvePb2YSELJD4mq6cuOnJl08Cz+liaWzNpMrs
Mhrk82r5Wl29JgHLH.v3kNjHkc9.C.La+ufNMB8MQYE268WVl9.T8KejRoWe
T0Wc95x4U8OVOe9mIuj+KP6WHZA
-----------end_max5_patcher-----------

Hello!

The first thing I would do is to run a averager in your mfcc stream. This helps to stabilise the noisy data that real-time descriptors are. So try inserting [zl change] → [fluid.stats 10] between [fluid.mfcc~] and [defer] and see if that works better?

1 Like

Hi @tremblap, I have had a chance to try this, and it doesn’t really help much. What helps more is if I really slow down the tempo of “predictpoint”. It is not an elegant solution but it works well enough for my purposes now. I will come back to this at some point but for now I have questions about the MLPRegressor. I’ll keep this thread but if you want I will start a new one. Here is the patch below. My questions are, why is the “fluid.buf2list @source prediction” producing more than 2 outputs? The buffers for output and prediction I have set to 2. And the number of outputs grows when I clear everything and try again. I would ideally like an output of 2 numbers (or even the possibility to have just one output). The idea is to take the audio and have it manipulate parameter(s) on effects.


----------begin_max5_patcher----------
5539.3oc68r1baajjeVop7e.Gq89lr77.y.f8SdylKYu6rykZsuJ0Ud2hEH4
HJDCAvE.TV9157u8adf2DXvPP.JpD4TQBBult6oeO8z3e9seyUKVE+HKcg0e
z5iVWc0+jelqjmSblqJNwUKt2+w0g9oxabw86CyBRCC1vRVbc9MDuOKjkk8k
cL06Zwhq4+u0eu35AajOZ7pe8UPuxmJM3+Ud+zhSryOa8cAQaWlvVmodSNd1
2.t1hZ6J9EBH9Izl+qpWdz96Ch3CuD7f0NqBpjmFUMDI92yxXIKYQ9qBkiOP
ds+uu8aD+l+qqMmVvRS82xJwnL1iR3dAG.4+CYqgB0I0AAWngXP8.2Pt1h3g
DjABnfjzCs.0Ms.N8n6p82dKKwRRbWemeTs6wPDm3pCwccoBb0AgE3OBQuXv
bwDMA4frDG3PwxeCIt4G3P7xOCBpNfhHkukvfH1538QYMfYCoX1.cTLBDKka
HRVEjMT7KL77Qwxh2tMTCaPf.q6jSPKZ45IPDafh22t3mGm1.37nMHh8YNBb
HOx+fODIwb409oFq3xLcSNvlPNvD4jM9hQrXcHyO4X0A3pmiFHYksckVBvny
MttZeVVbzXlBc8zgWNT4jWtR8mIrzJE9e0ZWBaSv5rf3Hq2j5e+tTKT+TnaC
i8yDdFngToU5mRjb3XBT4FvPlA5yYfomeeWhPe1wxuqU11kRUL5tBadX34le
uuo90w2uha2xh8He9Nj8JqTq2jkDrcKKI0BNFWBczQF7fpYYpsfLvMeNN5.Z
FnCbC257AVxQji2WqwfG0DzW4xCcHt.R2Xu8ji86r9aKVmv7yXV6h4nlUDWq
yeawwJB.AHcXOj63jTT2iHm8w3wIwCaLF7IMEFWfxWs31fP1CbFXthr52+UK
72sq14up9CInT+Zr7c4dc04BhTmCUctD1CAEuBP0o8S33aFGY2mHoRKdjVFv
f3MEyCwJZePkXrZtq.zjSRBxd5N+0pWfXxr75UjQrqhHBTgRAT1QqSE47AaC
iW+I1lFv3h3crnfHtV9TVTleVabXwF1s973AWdabTVQ3bPgHZW2vs4fY2WUf
IRj3OkD3GVgFaSB1DGI.jlyLhyWLjbNEEeBoANIukH+cc83btON8ouqlxQ18
oq7SDSb4VQKmP491FG17ZUOYH61r7quKHJpMAMKdmlqxUidmtmdUL+p2q80K
uT5x8QpKujyjjsL0+gVT9L+vvbY6Vivi9QA2ykqyBTyGHP0UUtTbW55j3vvl
3s5ROz0k1vY+Wy9bvlr6jCVC1C9CDrqfwZQ0z9lfsrzrVmLyeaZqSkl8E0TP
8yseUtf9xLF2HEGaZcGbImfzrz6h+bZ9cVv90fTTkajFB900Z17BZ0d1TCZp
zmgaUpOe0+ZPi6Ri5yCLePZ7jc54rxcIoHhJeJHTcAkdUi1qCEWUYNoPszrP
jZYj83Mzd.0x1PpkJBybCt5oVj9oV1SN0RNrikWgiUlg9JaD3xepA6AZ3Upe
Itei2yhZIQKgunMrGmGVKErrnWpAzLpAB4ZL4PinCXZHG0LvIRfTepnjXi3F
5gPkFuOYcAKSghDqVnFW+bVPTog+OVivItUymvNdnw1Tno.tmQfQJ2XHzXqE
ZJtPkibKDFm2rT4OxR+LdrTq1molVa3i5QZqjGXdlfYd010wgJWR+H21KgPc
oHGaBvyEf8t1vSAa5XUX7J+vVVNqM1JWImkgtxEfRB4jGbysg6C1bSH2CAzp
82Z8lZyzlkiawi1SL+1Fjmapa9pczQvtMnn1HLA4YCgNTaG.UR9fXGDw1C.8
n.GWI4qIMzrHllkHF4gFcuOm3v1XsNNNYifnxRGQXiHSnhDpJkAiMsn+9NnQ
0RF3Z+RLiuDy3KwLdYDy3+xq3RJN2n28eUZ16OFfg740VIx6nVYICh+AcoDs
3CrG2kX8GtEZ8ZCnS8ShbFhD4oTbHMy3AeNEP8uFGDM5LMXFYQkwZh8kFmyI
E4rmg39uIBa9DywfYJXdRnUnycJFflw23A9cPBF7LNF5YOfdGiS0wYHSGlBK
Nmg7bXLcY9gkigaA9RBWdNjvkosdgr0Vrj1p39ITUIRQtTpeBQdPTkOSpkez
FqM9Y9o7QqVVPp6yEv.bjBrOoBhA7RlNdISGujoiWxzw4MSGmTXFngbr142P
AjoKh9LqFFO6lNptkwmSHnptTU5QreVkwC0h4jak8qp0uQ7W5IXxRT85Z0rZ
+DO7foKB5fuwAw+OHEPwTHB4VVgAvSkZheJolb0fqRXSK4zcHxIlaCkTTiBP
avyI5WQgSqHbxUWTU2zPrIY08fhm9.p2fhxHOoPLV4uCTkm2CIem95LdTyBn
mjYgZKl6A0u9IMMfFlIF3n1RNfab8D+iPb8PDJRD.lq8fSJRxMelA6gfEAvA
EmgVKVNDj97aNo+sTP+aZpSaxZvJny1Keu1obp.njfnCO8fqlIDSRhSgp82H
GxLL+LW4uC8LL4PBqIsuy3jMpXbgWDPXG4h79fMxxBMepST26jhHTgt3aPsc
lv09l9PR6KBjDdbHIlVERt5XXtYKfZef3Q5EgwWBHLx8jQXUU6igppXQ7W8f
vnKBDlbbHrsmWwezCZAdIitOeKgNtk2Mhr8ZAN5cBt9s.HR41jiLwmNjQtef
FM9FF7.6lL+Ukv3C9UydGbQ9ntTZBdYeIIrm8I20GTFGMVLZrAjHafxibfLX
IDYXZTizTBKyCUcrHezzPZw51HpvlBrkRp5jYevObOK91Nxub8QX+84jurDe
QENXsXWn+Wp6yWsaOLNZ6ASZeD92Wz0MeOe9uoiX0tX5cwIY8N+23VKlhQcc
w8QAYk4pyqJa1ym.5VQZ+NRQSOsK3BwtwFz19RYAWTorfGdARTVt7fJj13pE
mwXpiWGGC1S2TD3zp.0ImVjve6LqaCxJPeo84ECpLpmctp1xv0AAkcqDhzPO
DLzhSg6QgxzuZiB7uJyUGlRPiMUQMo4L3nxSEhbYIPbeHmEXK2rTZLOp62bW
vlMrHKr0a74BEOnJ1cn0a3Pxt8YMO2JAxJrTH9C9PFvUgIxmI.X8FQhliRD6
KXNlRrdCW8cvF0SNT+un67C1ff6XfBHBRsvuNtCU87syTB3lF9MgPxP3k47h
35pxA1Hpk9YfC1eixyZq+.7j55NP869ZkhKLTEy04umaXD9WlJ0iF6AFry6K
PdH94SCGw10.DC5IUOeg0vQzzgMprWI45Mv7cOTGsJQvpMORdkU.ub56FJS2
prjNltrgM1DzNuSBQtT5xFljo9Q0oYvZkQrcTKbLRUdlT74tSyHhdQ384WqP
xjfsAQ9ggrnspRE3ixhEfGxSv5OkVCKOfbjFvC2ITPO55Hw+mKJ4m7k5um7Q
TTk.wpZWop5DVrNLX2cLQIYHswYeCsw+r6hErZyusxOkOj7vdTASZaWUCRA7
Yi0wIhIi1AK2Eiqsz8RU2SxV4jITjm9J7PToPJlIwftnJb2vv3OqxCSIJVNT
+i8bGWx9RGOW2S7hBBIMKgwAv74lJ.3Vw1dKJqGjpIKCQqd0hKJ8VscjxhYj
9R1u+pz3PtBDNETBeK99+3qe2dNZ85+D+cysyX8yIwxZ940+Daehe3xehk84
3jOUb9W+dY69I80+f30rLNYyxe4CKSW6Gxt4y9OTaETjUKVYLwlc6eJHRwl3
ueSPr3L0uibVn8tTatOlX65qw4hTVXEQMWjn0RprHLNdWqZ7f6JXTFKJaonX
lZkNTyym5zQV+2iRC1vVd29Lw+qkjN7sZF4DxczUPNsGK4DZF47pCdtmBB76
D8szk1ZorZtGyHodPEI04ogCsVpwmbKwaX5c7n69YJ0.mNv4Faom6j4NjSGZ
JRiQ4yADahOG4c2t7By3L5ywX1N7FD7U+IQCZahKo44w1y6bydLlNcbJKiCR
4oL9iVuB0QS5sNEfdP2PFh0khCNWgLnMEwPVLwVNvKj1g7.Ib510q+JG83BS
Y9IbugX2dqtFFnjuo2vYvP87NJ5DDbCRD8Nw8xRXp+xQbz4FCiMJWN4ZWPiT
6BdtIHGVQgimhPLI+NWbDjcg62xG.tnhExBaYaQrnKpuFcM2K.VeWb3lEiL1
OMG0s8bsBc1xLJ4nTNAACk5DZmK7H3ldhLh1hRqdqMKwobJe6xbnf9eX4M3o
17XkwU0c8LgpsEy5bp93FPfQCHXRFPGGiFvVfUqhv3z.AOnIf.wYxvYWvYd.
kuJzPCHsYAzcP4w.gp16OQl8MGUpGk+0z.jzigpzCPR7jsiXhxuFBAV9WSyL
msQvn6jIOJJkhgGv1bvsHJTrrFsrUYKj3n7as4e4XWifI+qogfYj9DmIT1xH
BFlzi9D34CDvynJMyzpJ9DMT25xjRELBBHv4jHXDD.lQNAJxDy2ExHS0.NHN
K9JtLQ5mLRmsyjMbDhQpCwSmkS3wHKOECH3XzeMECnQi2jMb1tlLdzoa7bL1
.5zvhZajKB34TwmYf.pGH.cVgf4x7isQFgsmNGOrMRSAELYCH1nADQmQ6alA
BPpVuSwdpTanxuNwo5ulIwCi3LHSmJHjQFIg1S1.BMR5yd5TpCMxsC2twv77
jzpUcHGq1sni1smiNZMGZZKGGzRNx2gFptPP6bzTkEKwBp8dYKkX46XQ6ySw
TQ6unEsY01aCBCKqiuFK.dQZuxKyupVAR8p9StOVckU1mXKrJK6OrXurRpqr
L+gfk0JnXqtJqGPUUCJORTRfXwQf1OGpZzDaPV4XHJpPa0Q7SAauqL7i1l2I
Mbp2CH1kDuKNornAtA6U8D6yh2l3uIHucD.NXw+ttfOKgeKGzKHTKvQ4S1j2
r4zy8AONASKk.aODYYoVJ2DqXWaLTRrraSmFK8sESvjOsLKD++iW8ypcHj0e
tFKcOyA9qWyDUYRM7DRwbRp.6fN1TOu7i.s1SPKZsMijaoaIQwsbeEK2vp3V
OmHo0xmbYPjP6ByzAdRIR6Ceu7IyenpN2hdhiKh.kfniKzUhi.hGwlni1TrK
26puZ2KwPtUfK9Q2neDKrE.ONPc7RgiThB1IcAbCwqWYVLwk3fU5cwXW0QT5
AZRMTzi.3JzIGuVwZMxk5jcQArOvDdqWTQMq17EcDbCuL8QNyF0JTYfzqQsz
As9YH3JKql.6PICpbuEfJcg.4HLu0ZxmExt+.02h9DfRKpbCIHOR1DNLU+sm
XTkJxya.AcqwZXdyVHE20I4Dd0QjtfqmUBAbpEjBgR0qtd…TRuc735bUmC1
qLg9Gj7LvMu2F6uQrt5VxEn1JuAvoW7n9hQ+whVSmVoAff6U57LNuswvoSxV
KSKBbaNZbN2E3FZoXjWt6hmJGW8keV1PdmV2Sd6909GEc7+ZGKx589QoVumc
evJwx6qknhKjwUcaD0lVRctA0v33RoNxIDW.z0UcD+0H16SZ0vv0Z6nTrv8C
wwQ8bHO06hPqWQT4U+XywEAnJPERcPJaGtbIGacpcrcHPLQ0DUv7wUoUExeS
lxDXr13mRsPtkQX5J23YpiNDHaqDhVL6KK.emplAzykPMemeV1vRJEMJyOVO
2lMkggfoVH9c9OZAQV+U118gkMauS+U9CwIVuM3A1w6FhddY9Luzv7zRDdeL
G24D4MKK+xocTPL2EFrJ5EHkaIPB6POWtWjRH1q4zYMMh+EV3Crrf09V+DaO
y5C2EDoWkHxgqUQJuQ3hBpLJf7bIFnQzvGsk9PcnVimqa0gbCY1J6h1b0wpL
e.PX6CF1C8XyzAto5as9q3PMPUptWwEipTSoNsUkBfDOjbTfHJAkm.DOpG84
htzZxpnwHqpiibZkUI.hmJzFBk+5cUGgoXUBOzKsp6g05+hobumn753jU62I
VSeCWpQQoSny7m6RUn6W9vOLNK4EAQCE8EPku7xVNPq7KzVT6KaRh2xh9fbB
UuLFOVIISJkfUYRDxGKjIgHXymU.JdcOD0V08O8ft4M8ydEwLM2yMeHYaEUN
DkY7voX0Y5OnMn6kByugAi8au0IRl2fxsI6w4Wn1Pyqwv+irH1C95Y0sKaCZ
GdjN1UWrmJeD7CJxGA+TDs9QY7fMMok35ScQPgGI1NQK2laYnJGdzkzxskyC
+c067F8vIeXud0sj1.xOZxWoqb366q9DPbABc+nePzWMF7DgWUnn+vilMXL8
yh1LvQtdpFrVPSHvgtLgt+yF6Hxd.tN8iXjJl6WCY29la73b9ocuks43oaTS
VSFnIKx7oi.uyOKI3w0YIGs9mYGxD6h0ud93JeJzZ8SwaXoyHJNJa1y8xmTf
6ln1Y.8FyAXs+9UCAUcol5PqxyGL9yAqylMk1yA7J5UtYWtN3790w6Xecn5g
aBDAqJ0POQoVfmY9jOT14ZOBFDiUS7jyV8AdHXqLvy9tV1ZiMAO+9P7g3saC
YG+DUOEWY+sGymBKb+22OXA.e9o3+h+CLQK75qGuZd8b50qLjmPZ+F+jO8pH
Qmb6Ux7yLlT3XWJ76TtVjkqJoqDe0l0Fuxh.gT9IFBnMQJG6pk+RIJOO4L4W
y+FF.pVS3I58Mt0sprHHN3f9yqXQuDSVzMeWb7mpkhw1EDp1T7Bz4XLYJSfm
g.wu6XFCh9z3XattwOan4nC8UTwm8L2R2Bv4Eb4fKlhIOW6DSapBtdVpRCFw
CTpZxCc7OvARRUq1i79w0OBNII79Hfuypp9K0Uw4Sp.E+EwV75hwOrPguIl3
5dmRbktgPJ0Oh6pxQamfGfmcdIF54gccxOxwcNBQ4d+GoUecpMOvD2lAd4jy
0Y79WogGnmx9W4Dw85eJfMI2NpOHkMM5kuSklE3qYaIuGH7LWr60pWzhx87v
izosxQ9MM35NO575Kvoqjqk.jwSrp9K1wlUwZ6Fz4JoEpMwFXnBsrqRvW0Q3
FndPTyWft2Iayc0zpPtuKbO6UviVm2faEfY.RSh+bzH.0As8L8f5e9K9iARA
HOhpzdbbvXjRGBBxcPa1fzeLgwFEnJomkIDEJ+lsLaP4eksYDvnSoGivxvy.
41rlI.8+gIZm8i.VMbuk1Rm.RbW.f6LhJnm2nhbkg9Qtp3wv+T8c1tZK.V2F
6TBo61mranLJefyw1.k+WHBf5I4zQtDJx0z5dxozBjc4mFY25eQjmRLLgslE
7vPqcZWLTkQbWAkf56olIEJUwd8iU8yUylLFjYo6H1soTURn454cx2AWbYEu
4PieJKZS5Eql9zrUShiVOY6NoL+cGEz+V+rXq2p91sLw.RZF618ggYFrJUsq
WXWBQUz2HJ1Aq1YSTtzl1URTzMWbTe61JiKAlu2RgSOcVgdYibM3FatHPtNt
zxsbuRZ.i7vdtWNjFwmO4Ky8t2mEIy5KiIqvPOO.0MWoucd0EPA.0Vrq+By+
6CRx9h0+113ECkcVcaHZyLjZ3t9rEUV09uFKUNukRIWeTAZmtKedU1yy+1ug
eK++.cnJKq.
-----------end_max5_patcher-----------

@tremblap is out on the road giggin’ and workshoppin’ so I thought I might lend a hand if that is okay?

I wasn’t able to copy the compressed code. You should be able to upload the patch directly if thats not too inconvenient and then I can take a peek :slight_smile:

1 Like

Ach, I am on the road too without my audio laptop, will try to post again on Friday or Saturday. Thanks for answering!

1 Like

Regressor_Simple.maxpat (51.7 KB)

Here goes, hope this upload works. There are a couple of Live Objects [plugout~] I probably should have got rid of. Ideally I will be sending the output of [fluid.list2buf @destination paramchange] to a parameter of an effect (that’s not the part I need help with).
The biggest puzzle for me is why I get so many numbers out of [fluid.buf2list @source prediction] when ideally I should be getting only 2.

I think what’s happening is that the [join] in p normalised coordinates is adding an item to whatever comes out of the multislider with the consequence that it’s possible to silently resize your paramchange buffer.

1 Like

Yes that is it! Thanks! At least I am back down to two samples. Now for a noob question (probably). Can I not have a buffer with a sample size of 1? When I set the [paramchange] and [prediction] buffers to [@samps 1], they still produce two outputs. Is it because of the [combine example- s @triggers 1] object? When I print the datapoints, there are 2 columns for the [paramdata]. A small thing, but just curious if I can really get it down to one column (output/sample).

It’s definitely possible have 1 sample (or none). Did you change both declarations of buffer~ paramchange? There’s another one in p "buffers and datasets" that also says / said @samples 2.