< Back to IRCAM Forum

Ambisonic Synthesis + Decoding in spat5.spat

Hello,

I’d like to know whether it’s possible to do ambisonic decoding in spat.spat object without a separate hoa.decoder, or whether this approach is has any benefits over using a separate decoder.

In the patch copied below I’ve followed the routine showed in the HOA tab of the spat.spat help file, which uses a separate decoder object and gives spat.spat the message: ‘/decoding/type passthrough’. This is for a 25.2 system for a live electronics + instruments context.

Is it possible not to ‘passthrough’? I couldn’t easily find what the alternative values are for this parameter in the helpfiles or reference PDF, so would be grateful for any pointers.

Also I’d be interested to know if anyone has thoughts on my headphone monitoring solution using virtualspeakers~ - is there any other method for decoding from HOA to binaural?

Thanks
Nick


----------begin_max5_patcher----------
4614.3oc6cs0iaibr9Y6eEDB4syLxc0W3k.DfMAKPxCImb.1GNOXXXvQhiFt
lRTfhZV6rX8u8zWHoHoHoJMpzLylLigkn5ljU2UW0W+02+02+tY2k+0jcy79
idez6cu6We+6dmMHS.uq52ua153utHKdm81lkk9Xx7xjuVN6FWrOFWrIdcxv
QtMtPGWYRwmS1DeWl8tfp3L2W9F6y82y2ub21j3ujTrq9Q2rec5lrjxcseFc
f46KqCk2HkxEOjtY0mKRVT5xLfHbdffApP6mQbo+MdJHbN6Fuf.ymf9SuOU8
FRWZSG428y2FTm.bBp7aaSbuxYytQ++lGwlMMOzeKId41Gx2jzjz2E+XxxOG
WVVjd29xjCWsqRwVoYMJur8I42WGbc3sUb6dHun7XM7GA4mpjWO8790UoW8K
GLoY827lzcmatNywGHtr7MqvK10ZiDaAkKpe68u+vW1O+s2eCRKrMI+htbXV
e0bg2i2NrwAaPiCXBiCtw.vWIMeIr+fyG1ZPNt0f2mnKykdu2eHE79S+IOvq
7gjM5uRx1k3wOCuA3b8Fj9V+.gXJE.W77nAVFu365b8vYX9fYX1TkvLqmtqv
ETp4pIxhrYzkOVuX99MaiW7ku6wCNGrrfSlapLX4QSZwBQiVfsKU6QmYfD9u
9qnzzU+J+90zOMv5mJfIK0CNUoNk4XsQ9p3xjueVtqSTasbfrsOKxZzGNY11
ezr858YkoKdHdyFMRZSw+.gRrhYRe+FubzlDQAGqZjAtZtT9yiZ+mTLtlRcN
JJR8NzYJ0bqPluHWKjEkmGx3Dv7RILfgSn0jA3QSY4HHDyeq2C4wy2o0p5jG
QbTTLmguqnNbx5ngophtsHRJ5S.89zrjG0rtScLwqRPuaV71ssBtK2z0w+bt
8EE1PDTmScAwZBpH4wz5m2uIz3BcFsTmK2W3XV9Ue4A9jqyWlTrYeZGlj0II
awfgQp1hZg6gMkV0QeP0EJaU9CLoxU4YK995x4UY4K9Rxx1o4Y4aS1jtYaQx
tjMkwkUI9lnWlber1L9y2muobW5+x0XFScwCD+8UIwAirgV8etH0.KUcKqJR
WluwjH5TTXBtVb5pHTNFMsyL16XS71AdXs4gVuLRj6zYx86tKtvTRU05r5lB
LqLOOqaTMOWVx8kUQuMU6Q2UKVluc7HKRW8vDO6c45HWO061FytOq4XYi8yZ
ihxOaZvU26KNKqxYs6q+qwaRWqq5pL0UDvYMQ5Zg5C6VTjmk0I+5h4wAhYo1
HeQxujtr7AqfZaLnu8zs0FQyZJkWltJYWY2vJiWsqaH6J+lSo2Jn82U4D+4x
j0ayz4ht2Pm1x21isMrVmv6Au4fOZbGGAddbH5QgocXYRokFqn4yCsIsGg71
IgE4qWqcG6jUs2+lkIsaxYSiNqAzeJZfN.7cA4KenXe6HF2Q9LTbvzJtHGwe
dfiwuqBMXbEmP0NMLdsAMYfFXL8KkP0nq6BxWsRaC2RhG2UQ1a4ivml0QOLZ
eFQnpU3LC4JdMdZOT090wxOCU6o6.ntZui6HndwepNDpROF0VQNV2Bke+8Fl
vFboOMxceT+Bc59F5jofd8PTGKs1WRf4mlhvt3UIC5F+gjMIEq9lFUQWa3Na
k7d+A3I5XyuTqOmiMT01tI7rgWGN100.0wqNM4WrrDRyRK+V+Lu1ZSSL1kNs
44939NdXKKzUA1T+Z65SVjkt3KZv278qdnebGUk8wQ93vQd2JCWyiBMuXYRQ
+PoAvw2gkCgNr7P2ulDMWdFE5MVrt1aYZPxxjEF9zlVcUp0Ay0kj53l8b4nk
t49b58b7a63bbehbjNTbJc3adGuF7NjQtxUoCPTCaI8k9rl+j2XK4Gkwn3o6
prb21qnKhs1QMA18SRDxbCeTbMnAIlVuyAgUS6yp5CofvCkBL1oXEIhlVuei
6+2mkq0punTjrZXIF9Q2EuKcgIUmtY6Cw6RrcaX7WKrWXir4WU2g62Dxl5DI
1ZpTxWXpTlL1K.4ogsYc0HnXmhIk+qj1HMolUWN+P9xW.cKvTU5VeoTI.tpQ
05KOYyOgWQM+DGlKuKlaqt9qsRArVUppFINLp3SFute+M9jwxGrrqFJWNWIT
BQjPoj9gApSfqy9cEtNGCt9xTip51cwq2loUbVXcMKmaWWoIMA3Zb3s1hjhG
qBLNK61h3kUWpu5+w9rOloCiZPe0IA8UWeP+I5ErCTlVGuQCeY6ZtmFFE6Iy
UL.F.+2MoNzF8mBkh6+5.k5UVeMJhBNVqJDH64Qt5Mk5DM5miTMBreGPNYSd
wZue5+U7iO2jSpzlt4+h+oUlDaSdX.2z0eL1HsXS1l3GVKuKeewh5TPMcTut
YgkI6JS2zvG3iG7v5ciqSWtMOcSYURgqsxhNxC1gKJY9iDGxd.4byWlVF5AH
xW0JfqSpfNsaj16U8BpOkjkS7qyIf4qQxI53tV4DAc4jW1hDfrLB.xpz9Ap6
uXYKFRO257+UIUXXoQjxUFxd8fKxQiHcMUtz4BJidQAS.rpSCyJTvhUM1u8u
tVocN1z9UzTX.8xHd6xqYpfL6Qg3BpS3.CO67uYDJdGn4teYZ9OYmDUe9ezo
6lpmtWCm8ua08oYYKxyxKFqSQp4oNycWs5SfYMOmYHi3QR.BMiaj.DAbe6U5
KTpdX3UOGT+fRkLhwM2tzmGHU1qB4Bk3nAgp5Q4GjIChbRhEEZFZFyU5f.sL
6+nwaVUMwxBNL6np52q7s4EMyxt4hnNO29x7UEwKSql6OrA6piaZYwUnuyim
1TFKDybOs86XHK1lB0ezUxo87+K4YK89+xMsZHEaQa6lQ7QaCIZancESt+C4
eGaZrw4rmkz3kpr4gpiZsTcR3iUs2yynuFuQUO2Ziysj6ESqvdN0JsmHIzAR
03nNNdiHvWFXUZhPo.rJR4.3EW.TC5BtKBjpENzIJ5OtTudVA+wd7qe47Sh+
Zv45n7lgwIMLtpkc+7c28VQ0KmO7A+znqta5W1kktLo3+2rjIvVl2RCZmcTc
93Jmdc899eIaeB95YhWrPK7Nk6BvXnYJs8aXoFUY68bkI9qEIIatnbgc1boD
l+LWA9gZh1OKYf8quKo3up4cbQoeiBmY89TQbPYKOf1deWdln5cT+BpF7X2Z
VYhUM+Ys1JVkkeWbV0LyqQGMvRuf7UrtarReLsnbebV81av289g5KOyEIn3z
KP3HAlEHr3rVfvGVBYHKcFZhPvHW4t0KcSZoFgNcWxYrh6lXQn5qNdsDVMKc
YvbteTnDrexBTxwUuQH2+H9unEjmpdk34lr6L69ugoWYeaA481Bx6sEj2Sah
3zZ6PgxkpmCwSHibecp4WOe1yzj2v6N2+dBYY4zY4p4yG2hJEIhlFp+nMHlo
mMQ2E6lCYC9MoK9fITdY4wKcBl542RktyMQwUgmxZQpNsxhTkxjyikko6zNs
e6C+q770d95j9Gz+Rmn7LvoVbwa7lTswuP0luuaJrDbxUwR3y3pXYRcVM20O
Dmrzio+mlwovSpzWowJ78hbgozUyqrW4K7fPSf74gf2s0AGF5cq6d8tUVEjO
26VsVPoqCP+SP404G9As9A.siR23jV+519+ry8dam2i9Kg9Jtxjvquzjdqu9
1VgaRnRo65VWZxR0Wea6evruTs2gNaYuHp5p1pVWONu2MHGB5WngbnkoVfvQ
8J5RVzYOalZ1AI7CtVypAw89Pg1Qs925FgVaLVGTSyonzSspsTNEWE00obUg
WKpuswazbmW4VjFOjGKVp0X1kDXSna0unp0NlNtAmVecLO4jqdiBXCTcakx1
MDthIll5xfmQs80Z2QPXZ6f4OUsNvuYh2d58JAwK1dkv0ReLnMAZ8Q3YoO3O
WSySikJpY3P3UbVVX3ppqG5zIh5T60KUfZFmb00EvK87dwlJ3uvSAHI14PUc
I20YZGFh0r3ZlHjmWhncsO0KNZ3Ed9+NdJi8hN2sFub6+PFFfdK++wW5+Str
+mZI+O1x8ezk5+nKy+iWh+Gu79uzMyxHW+8V0HWVyxyZvAkPd58ux5DP2kue
5ls6K+d6Ut+YVrYW7cqhS278Q2RqswdXaJZloONq1wDaHGyPrkWWuKK1eTdF
XretOew9cthjiGUQynvwry5OVfYj36Z.0aXiXm2lKov2NHRhHa4VDajxq5Ep
zrhjLsm9icxmusyyN4UGV5r2XLv1U1eL1tJac3CrIqO3JVkMPb62jdXPckCt
+emZAgus8juXxk6ZOepAWqq9C9tpF3uFOh55TtBa53sVyfWJZnzsqjBQsVIf
iLDh9OOa41GsSA8cuevB33I89gko5VNYFtPOwOpCdeoFkc7QrVM7fsFddi1p
fKc6SfvbekHT5CtOE7I1GW4uscWiCz4Edb7wVMKo0wplzZkr5XmxPen5X4Le
D0wxeqJ1WwUm929m+YuckEIwqe0TYp+q6JSWuXt4Tdfns96g1x3cGPBJ4jS+
I9LpqB07ottSaKQ1Yp7ro5R0fYV4vfH9mGHBDXIpKAXd.KTz7mYVRNZlGdq1
xeuLC2b1V4aOzgBH7XjmGiqJ5n9pIOBXTSOk1to+TaiV0n801su3cZ09cTUk
t8nNnpSWuOVul0p2oNp3Cqf5rkGL11c.Qx4jYHEABxGgffN8+2QKrcyXwald
b91uXAy4GYCZh6BSnJLIzpd7+hDjDifnvVRvwHIFURBvHIfBIwwHINERRfQR
BJjjDijjTHIEFIonPR9XjjOERJ.ijBnPRgXjTHERJBijhHwyEEHAPCJANXBR
vI.T.E.IHE.JnBfDrB.EXAPBZAfBt.HAu.PAX.jfX.nfL.RvL.TfF.InF.JX
CfDbCNJbCNI3FbT3FbZ3WfifAI3FbT3FbRvM3nvM3jfavQgavIA2fiB2feo3
FbLMQnGo6tSoiqqnmtYTApQZ2zzsope9fcY4CAl7Q.AMIgeFkUWrf.LBBHPP
bLBhSffDXDjf.AIwHHIABRgQPJBDjOFA4SffBvHn.BDTHFAERffhvHnHJbXQ
AM.jfMfCbfBzA.E7.PA9.fBf.n.g.PAQ.TfQ.n.I.JPI.TvD.E3D.JfBfBjB
.ETAPAVAfBr.n.sfiBsfSAZAGEZAmDtD3HSPAZAGEZAmBzBNJzhKtMNPzyUu
3CXFRHqj.JjDGij3THIAFIInPRRLRhDKBEFIonPR9XjjOERJ.ijBnPRgXjTH
ERJBijhHwyEEHAPCJANXBRvI.T.E.IHE.JnBfDrB.EXAPBZAfBt.HAu.PAX.
jfX.nfL.RvL.TfF.InF.JXCfDbCNJbCNI3FbT3FbZ3WfifAI3FbT3FbRvM3n
vMng2IGEtAmDbCNJbiKtu0g.rS+lwmmPxvi6EaelnZekY3ntzjsOFx4QTzL.
TSjJJ5PaPdwi0.WqZsSYq.2d6yfCuPvkq8wLZBbJlfS0su5zR5hAIAL4IJxR
.lrDU4HNBAwoPPBDBRPgfjHDjjBAoPHHEEBxGgf7oPPAHDT.EBJDgfBoPPQH
DTDINrXfF.ZvFPANPB5.fAd.HAe.v.P.jfP.XfH.RvH.LfD.InD.FXBfDbB.
CPAPBRAfAp.HAq.v.V.jfVvwfVvIAsfiAsfSCWBTjIHAsfiAsfSBZAGCZwk2
9QFB5kTrtO.FB5kJJnWxPPuTQA8RFB5kJJnWxPPuTQA8RFB5kJJnWxPPuTQA
8RFB5kJJnWxPPuTQA8RFB5kJJnWxvPuTQB8RFF5kJRnWxvPuTQB8RFF5kJRn
WxvPuTQB8RFF5kJRnWxvPuTQB8RFF5kJRnWxvPuTQB8RFF5kJRnWxvPuTQB8
RFF5kJRnWxvPuTQB8RFF5kJRnWxvPuTQF8RNFzBNInEbLnEW9fSb9y6+dcHt
BrqgYAydxxNzTw2FUmzoaQq26PawjD6cXsz6fZ43CokwOfV5e3rX29D6cv05
TUm3.qs2IC0u99wN63pW39Ce3z9TNXZehGJsOwSXtgOi3F+fncjCg15cmfad
+3m3UcOsqZa2h5flc3hjwNlHIKozbHxNr7uriHUDGOpOK4PLZ5m8bJ6ZjSq2
L5e5N38OTHO+CDxmpq5S5ffDsCd28a1IO3GG6fa8YvV8nCm02JHGofjD8dyA
q5ap4K0eYfCI0Kt343CC0gKmPb.ndwokiOnSGNs7TObSIJA14PLEcJ7TGboW
dh6nCnTzoMTGJomWBzQUejCyv2+au+eCoJgcl
-----------end_max5_patcher-----------

Hello Nick,

At the moment, the decoder has to be separated from the spat5.spat~ (in other words, “passthrough” is the only decoding type currently available).
So your approach/patcher is totally correct.
Your headphone monitoring solution using virtualspeakers~ is correct too. And at the moment, it’s the only way (in spat) to transcode HOA to binaural.

Best,
T.

Thanks T, that’s reassuring.

On another note, do you have any advice for upmixing using spat?

I’ve been enjoying Blue Ripple’s O3A Plugins, including several upmixers. I’m using them to upmix older live electronic patches for larger speaker arrays.

I guess I can just the stereo pair to a linked source-pair in spat, but I’m specifically interested in ambisonic upmixes, especially how the O3A upmixers have interesting parameters such as as width, upmix, yaw etc.

I’m guessing it’s possible on spat I just need to look closer at HOA possibilities and add the right settings to a pair of sources, representing the stereo feed.

Are there any objects or ready-made methods out there already, or will I need to experiment?

Best
Nick

Nope, there is no built-in Ambisonic upmixing object in Spat.

Best,
T.

Thanks T.

If you or others have time I’d be interested to know people’s thoughts on the patch pasted below.

It attempts a 3rd order hoa decoding on an ad hoc 16.1 loudspeaker array (sub not included in spat but sums all signals and will probably be in the centre, in front of the stage). I know it’s far from an ideal geometry for ambisonics but I’d like to try in any case, and then vbap3d or knn are a back up if there are problems.

I’d be interested in case I’m missing anything basic for a hoa3d loudspeaker setup, as I’d like to compare spat to some other software (Blue Ripple, SPARTA, ICST), albeit on a different and more regular layout than the below. I want to know that I’m configuring spat properly to make a fair comparison. I know there are a lot of settings with the hoa.decoder~ too, which I’ve yet to study (speaking as a non-engineer) to appreciate their practical significance.

Thanks
Nick


----------begin_max5_patcher----------
6656.3oc68rsiiiarOOyWgfQdJmtUqhWkN.AXSP.RdHImCv9v4gAKFn1Vsas
qaICeo2Y1fLe6GdQRVRlRl1hxt6Y0rXUaKJq5BIqpXwhU8u+3Gl8X9WR1Ny6
+16Sde3C+6O9gOntk7Fen36eX1KweY9p3spGaVVxul+3OO6NcS6R9xN0s2tN
dG0Oe6b+zkY4aR7dXw10OrJdWR17uV9zoKTOq32eODTdy786Vkra2WWmnQiY
ytS7+d+TQyh267mSyV94MIy2oeBJNxGyvjHTf5JgFdmGCB8CtyCXD4ePH+fp
WQ19WRyDvPQ.vgapgr5tnh6tM90jEeVffBf843c61j939cZFzGpXHRjZS7KI
6R174jr3GWov7f6NpwWhWutpYUq+mO9wxq+mOdmkr7C71WSS9UCLSLLqha0I
hYlQmls6B42DE+FiU7aVv4wuwW.aniQdq8hWIFyYfsPPcOFqO5Ei743.fFpt
JnWlX.ECKoSxEM5BpCqjMsGM8T5pjWS1rMMOq1S+gYhQO0t8Gp8SjbleNW8h
Buq5VoY5aAU2ZSxqosesh26FAEuSPt62n3Gy9BiL6vqIeQxlr8opei9lh9nB
TR0ajIFhIFSNW+ikcZkMWaLSjZ1XfhewA02nrnC7MQu8xU4y+kjEMl7juNIK
Ma8ljsIY6h2Uf6UMuH4o38q184mxy1sM82TX.H5ML09SEXnwFkzfB8+yaRiW
UQ.K2jtHOShDM5Ij2tDbexCnJZiVmXTOQV7ZC+XszjNZbqfH2u8w3MxNphIr
nxF2kmupYSU+tUIOsqn40oYYs3h6xW2ciaRW9bO+1GyEM9ReuaUKa+79Lcqe
VLlX2mkRNa9bwqVULks4q+KwYouHTLrKU2EfBpZTKz54sy2juZUC5U2xqFZY
gXL97jeMcwtmU.p9fAwimttbPzrpd4EoKS1tq481Eubay6rc2W0L8Z2Z+iEy
g+7tjWVKUu07AZnNs9D15B2Zb+VB4Dyr1FuLoZ5XcIcOrccR7uHjH7PbxBu6
ERgnBx0i56U6iLd0GAwLixOR4ke79Fe9vibOKr5iDwEB3S3nHOw6i5cOG7ES
ewQbORjeHKf4w7oj.h3UDD5iifnnPcS7f.P1n3YiDsha+pN5cKd0rfvf.jge
euu7id204ZqRyRlmuOSw5X0ZntBh5+ft0QzkdBTDnTAFvq8mv5x3NR+.pYC0
0QT1f1DgOTpY7RFDoesyLSznYmfpjZ2pQUkW6lnfNIpfZsLO+kWRxZNqSgZY
KR9hq4.MrUnKKU2Hvzj0hehW0Lqt3YQ8OR4NaFsn4qHpxPBfCssj3bXr0GGc
BaVaxl5210SZ+ZitGWzQoH1N35v.mdpY3P4rzSOPNn6YmCcf7AKEjBl5PEgh
HjsalwsMe+l4kje4vRulziPm2tzrJCm9TkfNOnwykuYg1Pz.q5LGMLCczyUg
YvnfYfsHVAEzaeoxDgN5LOXg49Eo4+nxNuO+OSx1eXLSoEolQ8GWJVXvp44q
x2z0b4xoCyzOU8YwU+tOITpihH.HVzVfOFvbDS8IwGnzViKJ9cP4OjPIQAH4
iSXHNgp9THBSwxOEX3mhN.y.HRCofnv.h9ShaABX19mFmsrv1W9AC3z8uaxW
muoZg.BqAZ761uKe4l3EoESHMKk5tZiV1HdxisrSJVRzQjV+cXZzVUm5eU2y
Irw5ujuZg2+atT3Tpscs0W9hX8DJ1wUAc+mj+wPvw1Bb0FY0XfV2c5A9gzFu
h5qC6SEqDySxNmc83FCrmK36StRcUuCZTx4HCqZdb2hivbFgqXZ3PBFTLRhA
wICPRj0cbCRFVMwTmnqe1QCNJ8qwmjhtuNiHh+B+bmnL0yexd9Qsu6me7wKa
NbzzTX2OEdT6p+ksqRE1L++Icpqs8403QpkG03xHiu5Em+WVsOwd8LwymK.d
idVLHGJI6OYUVoFUL55ZQD+sMIIYChJBjnMEK+m7S.KTXn8Ug.1+xiIa9aBC
KFD9KY3Ap4WzHDPU8GP84WCmHJdGku.a2jtyx8uKWk+X7pBm6VwiL3c3Kea7
5b+qzqQc68aSxVr0v9XgXy5Yy4BIGu4bDP47NBl1+1UQLtcUA+Ne6pXD0zRR
Xvz1UMscUSaW0E591At6J3Hs6aQ7qr6aIWI2aiGn6sC42F9C9JweP8xe1ltL
q8piMvkfvaznHzahMIwRtD+FMT5ZskeBCq9VgYVjN3igyrRbDRGJKggCY26B
t9jMtCxlOyJoLuWIaTGjMalUhMduR1PGjMclMxAFMpdT1DThkanWXm6m2v2T
Qrk3.eDwAjk3.aDwAa2bUZO6s5uOVquXNWR5qIlVtOv5LrUKTmeWuepuPaEI
VFHmSXAXPckQ.wT7.07crzoAg09mJtW6z2AAF8c.Yx2AS9NXx2AS9NXP1xTH
c7rrY+RW6SoeFJmFGLDqdtRKnoE+wJi6uT9SoeFdGyerZU.C0CCui4OVsbgA
5ag2brmdCRZhkdCfCW4fjlbs3.XKcLvUmCfeqDn7k9H3pyAPWKN.Xm6Bt5Lf
qV.VGdFwW8XslZtk3.dDwA14EM2iBNPsDGfu28sP4zi1NW3G2+nIuIf5I3AH
5S0JGolAqOYJny7n7F3N2inOZNpiy6279gxyji2AGhXv11KzII2vO0qCZ3QG
e1ioEBXwXefU6enndOJxLymEYtCNp6W9f2lmuw5VjtsRMTCCwfK6LbCABdVD
EgC0WCYBlEf0av0IhJFjYFmCo1G9Ugtr7e8AoORx2LeU91DSGq+fKi1MMFBB
X5s3CtVzdo6CJoAYtKP4dmzUo69Zc4I4O8jryud.wc.6zNNawFgfyJGhT55w
4qRm+K6ddS99kOW+9G4aklM75wM73Rou.abmCmPJCQjU3oj9zW+iXH4wgrEh
wz68RftehdYoXfJUNZYooYq2u6a9hNFwWmcA8hI+1h34eyTPow6SuhXwAgso
PfnCJMZ40yYD3knkYkXIt9KiSypv+WiOnS9PqeB8SkOvS4y2uU20ebTZJipw
.0onJfKic4lCTqyaH8kONJ6pl+bbVVxpFce8nLS9+OsJOVkuNVkJM7nZNR71
cEuspi7bPO8NhAWGM9iyBz9uVdM5j1.rIYkvvqWS5dDIogdlJEL8np403U6S
xe53c.n1IRUfJx1uud7YWq8U4YKM0Cy+oY2Y5sEqF+vL9tRyR2ohd6hg.Gr8
r1Cs847MG7v9ASvZ7Pk8mlfxdATpb+J4i0sY0k67jbVrP2uoIxUFH93xFi4i
BYBUGAjHR.AHp.mOHfCHwfegDLNNTEw0AHNASfvvPNhxYMBpdqG7ExThFnnK
I6pbIhFDSjDuDSbiKOU57Xb1xdk6SHAFxiNZuHPCrizeJeyKw0yoAsOX3taH
yeTLfw2zJJnCQ4mYgOZyRvjqkwIcSxA9TSzL14zbgU8jfqEMqDGpH0tzFVuw
JdxeOIdw5myyLtW0XjMZ5NQJ9RBph0V+Ox2unUtXvn08hEodjItL85WK72Le
HI.LGos5XsQRR8S.oWsQvIUybxWUhT3llUKPSoGQj+EMynJrx9Ezno7Yi2q2
abzC9xVfivHET6dednNHFNgJjfwVDR5Sd+gTv6O8m7.ucOmjI9ivFuDOjIkM
WH8ad3en93agwWTJJy0lZXlfCtp1Z.ApQCEVW..wmd9hZcn+sdYt+9r0wy+k
uY1mVPz6SmZYQePwzSYnFEU+eD7ELVk4PWNltzzpaA9Pz2ab9IGz13.23omh
AgKi2k7MiSPwjNoa0AyqbMqUi.Lb2dSshlXL5jpHK7RLDB4TFSOyMomCi4b8
NGqvqObV+Rn5xmtt1E7JRxedtfjluyL+.2i4YHRnjNJk6hhtVKqqyvt747X+
sxzWP1Rigb4koGlpxIcscjmNZJCwWjgH+9K7ICI0Fj.AZ2Cxn7o3mbJ9Imhe
xwJ3UvQbeBivXAEFhwkGabb32m47wcOuYeWw4D8LNFlMjk.0yPHy5VRQG8.Q
Hsme35Urp0QB293hS6bg7kxLgRM.dryhTOxmfepqfGp0PvNcOzkd9f0CSQTT
oH1VBZOG92QoSy97.T6zeSaOA0p8S3QnB1XTc9X+9ExBeCcxWZMODk+zSRK4
kR99oNd5VtHpY5KxsIDzdS.xIYIaV9UgTEgtwsJU9d+AvAYOTWNutbboddMT
rdO31mUfasg78uo7mbi4O0ly22Fz26lz26F0ady5Mug8ct11KTfCSKvtLrOC
CpBnhgJxo0l1KWrxhj4RqqkqAamfGTeG7uFSzRydJuKElCLuEvpO8.aQVPdZ
1w0X1AZfcqjHc+JQK1SHEUZdYP0+HMKRHNZpxhsqGwoHJcouzHk8ZvPH4C7I
bWlAgiFlYPMh7iSdVc.7wV0W1knO5EWpIR3amIRJFL4j1GQr29nS7FqYbziw
aSmqKTNqeNVFlddxwHaRz63unwpuU7D5u+l2TJIdzswSra0phLOBlWOFIdCX
JUubVQ+7y4K5l2huUVlBAzBdKiPnX.QqXsEUMq2.r1yPlKpgL25NBrNQqcsN
sX8glkAZJnacu75VdpDtfdqRQ4DeJlhwQXJkvB4z2ux0omTtN8LkqirQt9hT
Im99swurdkfuqDqKLa59WJ5Hj2PuZy6U8aads3lwqVc+l3EEeT7o+K0u80Uw
KdSHz+jU9DoISuDmIDe8RyL0qwTN40VFEgCFj+Cnpfh9TRoBt0ms1d70H5Vo
U0n2dw32Xdd7xXpPvMhoV5O.zaL1XuFmjku4Eue7eg+qcwMo2Vto9bUyhbs4
HixwCkY6YRDc7C9R5h04oY61dnXEEczLTsbOR.qi1FqzYUzQ0KnNxkTzwLoZ
4NtajX1I8FxOINiRXkTBH+SGThnswhRvtiRtscIfyHDYbEF0xP8aFYEX4LWL
LlohNlyXtxDo0aF4hH5afyAOxcSAIQ2TgIf0Go+.KEKVrX+5earvczfSGAN.
IBrM2PPdCjzGO83QLd.5DlpJeSUkuopx2TU4app7MUU9lpJeSUkuopx2zT3S
LEdpp7MUU9lpJeSUkuNOGbultY293UkYjfSlT5vzy5.7ZyAmMDEVKuPc1GMP
7MMau044wqH25jZLum08of1Blloz9lRsg7fWFEP3LPeEjIvoy8PIh9cd4M.P
LcnXISUKSmOuoym2z4yqy8guYdZsoDv462H005UnNwSL8QMCYqmPGrmz8oR1
p3aYK71k68Xh290KD2YgWdlLsh3MOOadxlcdKh+ZW6j+oxdyXTw47qHg7EzN
6udVm5OWFJ962IyGPVUBq5LGcYVARibzUmwfptDtnO.2jxq25v5XDK0lZBN7
6zh+WsjOz4dJYQQbe0h.B0ULIPtH.wWLmrxtUyW5Kto7dT+ecMvo+37SMc4t
N9qciphT4.hPpvtLw+.pxvLDFQtbdG45v6VkGuPSvlYczYNRRi17TZ3akJiQ
uAP1hzsBkke8geKO+EOl.ieP7MAh3IMiQYOxcd8v0vgtPTEFJhDT9akiOVu7
rxEM9PrPA98Bzk5E3Q8p9.iW7A.P5+R4p+d+gOTzx8rP8eITOB3S3nHOwuVb
CN3SYQDOUNIIf4w7oj.h3WFD5iiP56yk2FGwiD2G25Mz9MJdgrfv1+tNdcse
a0YD5cdoHuzhGmCmoQI0nhbMrtRVRhdqOLQsy5OncAjmP.4CaDSxJ+tX0pkC
jptESdO8u5O9fzKu625Q67PQzne.M7SMswLcYjuL0zy4pThSHDI8Zl9HeRBd
eLaccblXcqK0mPpmyiwKDbY04ws5tqEunhCtonsSESsD9vXpgxTbPakmELUL
g7VgoNrxIjlZJLs58YBHoWFvopuzF6ju97Cz0J1osM1uHiYHFS3uAJdvRav8
v1vJ3iMVXUrjM57B3VGQaJr.ciCtOh0yPFyJ5LYvUzYGDTygmWIvpmSYgN9B
Kbpygubqi6+Sh33.le3QNhnJ0QQK9RiWQUFe.twGpgidtC4hhaZ.odRtNAGo
p3RMrlEo2PNc0Zo1mwTdsdCc9KbJLUmBS0ovTcJLUmBS0ovTcJLUmBS0ovTc
pibJLUmBS0ovTcJLUmplpU64DYHEaEZH4cS0T05JRJ33JRJlc1UjT1615qsy
JTplJUKDcUlCGwNQgRkYckREhdKUpTgqSoR0Pk96sVMSsVRmpwbI9EV01zgN
cQ8g4xJJNNuR+TKWS+MuePIlwC68CKReIISFu4d3+p3162ID700YdHb16VIE
macZh.pcN.ynWzgw.32zSigsZerS0SwEniRf8j9lyWeiLqYezXNjVSy2uJbX
WGEN+8+m+r21caRhe4Mp5l0dKhmarLoFcUqZllpQeEkxMB4hpja+N+PSEo0Z
PCfoyL0zYlZ5LScYgieYYEVXdJQFyzdbuPOY7HKTaJlD3AXOfHFVdvJ0dOkL
FKaq5cvGq8c.whZSRoR2a2I7vTMEt2fu78YoE9D8Y.GruOq6ngkckNuVnd6P
5ofxdJ1fV17M9PbMJwKpsY8vwLt.wVFbhD8yMZ3.xRb.Mh3.1Rb.Oh3.wRbf
Lh3.0RbfNh3.yRbfMh3.2RbfOh3Pnk3P3HhCQVhCQioLJaETBipjRqEUNlxJ
AaEVBiozRvVwkvXJuDrUfILlRLAaEYBikLSz4EfvFMw46+jej75279A0ldtU
nCs+sAnJcS7c11.X1mrL0l.RPfOfO7ODf5y6Xj2haJPuCAxWeHhCLUGa5t9W
cQauRwVicxcWwHejLJrQEFzbcLZtZaYNE71ij0HOyVPkAZVkfyO5XHDf8wQr
PDUeUUuuX5z1BkD5G1N5GTsoEQcznAaw6Vnzoqh.WLjZTrQ5BPbGAnSQQHpC
.D2B.Q6qGOLxG0dxAKP4aiNaxA3LXANCcgyxDCPHiR4EiRiBvUHcjgI6tBoQ
VfznNQZTnOMHHpb5CUF4YEHsr7ALZrZrEXMtSrVLoGvLRfgwG.JX730DKvZR
mXMi6y4PkXr5CPjkI8QiWSs.qoch0gbeR.GQLMBg.iGulYAVy5BqQxbs.AwL
IAAnnwiWys.q4ch0HlOiGFXRDhL5YFMdcnEXcXmXMgIOYbDixP33wiWGYAVG
0IVKrxJhDFYTFRHd730fMZFgNUMhBo9zPBtkwPZ7NhLhJGsR6XmpGkoYODDw
MIGAEPFQ9sMJHgN0PJOezgTpQaQP.cD421nhD5TGoLwnPhBpLGo93DDhNh7a
aTRBcpkTnV2GDh9LIMQtyjiG+1F0jPm5IwRYFLnxlDHL5.dKjPNJ7apMqQo1
twbw.hfr.R7dWDmAktTcNeyjI8plFJRCVfzQNX8NMSPCc0OvbEj.afD3BHgr
ARHW.IrMPB6BHQrARDW.IpMPh5BHwrARLW.ItMPh6BHEZCjBcAjhrARQNYlq
UBI.2HkvNwDNQNAXkfBvIRJ.qDU.NQVAXkvBvIRK.qDW.CVdgMNmCf9TkKC1
Hp1pFYJPAYv0Ep1FJlxNaaNZlxeFFjAKfLLJPFYAjQiBjwV.Y7n.YhEPlLJP
lZAjoiBjYV.Y1n.YtEPlOJPNzBHGNJPNxBHGMNRRrQHFLRRwrRL13HGCrQPF
LNRx.aDkAiirLvFgYv3HMCrQbFLNxyNoUE3ycO+nTkIFDL43M4U01wzQv3q4
ue5PtsY.mnySghqLoiftMDBZXDBF7AnpjQEBXzshPvCiPjoV3ZHK810iPFFg
vwxC3VDlQkW4AP3shPnCiPhv90pRY.Q5b5aCgvFDgf.AxVKzThtcyQ3CiPvT
+PBfXQxqbgXK3VQHgCiPD3EOjxABRcke6lrGMLBgyOdSCtQJDGllcTTnOqlF
QtbasuQTxvzsigHeVcUh2ttjgoaGSB7o0vVFvuYTxvTtKDT4SeanSDFl1cbH
xm71PoHLL06sCXyajVQa1cTTfK1UNpEqZPAoA6schM6znS1SShMqDxIPBaCM
4h3REaytXivt.RAWqXsEYydOiX8E4pgfgXnVNGVLckiQ9zZVgDDxKZan3sMy
NaE1AV3wfhMkvTzFTrmDsExfFexnU7A3HetXEn6emb5gC12153V4zHajogPt
XthMRZ.WDp8HaB8Df5.MBnyX72fADXCfbAEgrAPHG.HrM.B6..QrAPDG.HpM
.h5..wrAPLG.HtM.h6..EZCfBc.fhrAPQtXBqUhF.mHavNgCtP5.Xk3AvExG
.qDP.tPBAXkHBvExH.qDRL3XMAhtVV1CVcH5bg9VEjP1.IjKfD1FHgcAjH1.
IhKfD0FH4jwdLafDyEPhaCj3t.Rg1.oPW.oHafTjSl4ZkPBvMRIrSLgSjS.V
In.bhjBvJQEfSjU.VIr.bhzBvJwECWWE21yRQOaXtgCLKGqK91c0zPQa1fcB
f7z.gpGvBDX7CtSvp.s.5ysUxSlECyoLFntpp6AZzFQ6hjbAZirAsQcePXHx
BcLEEApqTxA7FGF4iqs+RAXpCwarM3cmGnLJBanNSnw6taan3sU9vm3BKHI1
5G0ACIrs9FZvPxFuPgbEf.K.D3B.gr.PHW.HrE.B6B.Qr.PDW.HpE.h5B.wr
.PLW.HtE.h6B.EZAfBcAfhr.PQNYBqMhF.2HavJgCNQ5.Xi3AvIxG.aDP.NQ
BAXiHBvIxH.aDRLb6sO+8MqsAIzniM5.Gop+zl1XKUSMvZcxspUd1Whvsxu9
sxs9GmW86Nm52Ne5qxXdsJ80ZF2IJ40spsb+6O1U8krLAeYt7VeIk15KrrVe
gUgRy0QxtKk0cTFqKyhY28wtqYdMqWd0GEaUop1bWRWkmZmgJUkgZ6ge8zP2
EWfkOYwU1kT3EvoCdeRokEPxyt2zl49sqorme8j8RmEeQ0QVqm62L6i1aoe1
bYe1c8fGUdmubI0em2a4D9dUoY1l4KQSSWre5hS5dNtbJatexhRn7fwkiKUx
lwkKs7H6HDrQYP1ZL7Tk93gibGUhisF2rprFedHn1T8Np+Te7+7w+ePEvLoL
-----------end_max5_patcher-----------

Hi Nick,

All in all, the patcher looks correct.
Tiny comments :

  • you might want to use the @initwith attribute, rather than loadbang for initialization (e.g. @initiwith “/source/number 4, /room/number 1, /speaker/number 16, /panning/type hoa3d, /decoding/type passthrough, /norm SN3D”). Have a look at spat5.tuto-osc-3.maxpat for further info.
  • you might want to use @mc 1, for the sake of simplicity. Have a look at spat5.tuto-mc.maxpat for further info.
    NB : Using @mc 1 makes the patcher load faster, but doesn’t change the realtime performance.
  • in case you opt for a radius of 5m (/source//radius 5), you might want to adjust the source presence so that it is maximal at 5m (otherwise you would have a ‘small range’ of variation for the source presence). You can for instance use : "/source//radius 5, /source//dist 5, /source//pres 120" so that each source has a maximum sound level at 5m : source presence is maximal (120) at 5m or below; and it decreases if the source distance is > 5m.
  • the speaker setup is not optimal but not too bad either for ‘3D rendering’. In case of VBAP3D, you might want to use a ‘phantom speaker’ at the zenith. See spat5.pan~ help patcher (‘vbap’ tab) for further info.

Best,
T.

Hi T,

Sorry not reply sooner and say thanks so much for the expert tips - all reassuring.

I have a quick question about updating v4 to v5 spat patches which might also shine some light on best practice with spat.

Pasted below is part of a patch from v4 and then remade in v5. It’s simply an eight-channel 2D ambisonic set up. For me the problem is understanding whether defining speakers is meaningful in v5 in the .oper and .spat, because the hoa.decoder is doing all the work.

If I give .oper eight speakers with 7 outputs .spat gives error messages, so what’s the best approach If I want to visualise a different number of speakers in oper to the number of outlets in .spat?

In v4 there is the @numpans attribute which I think can be used to create these differences (please correct me!), although not in this example. Or, for hoa is it necessary to run a .viewer in parallel to oper-spat to visualise things if the oper-spat pair have to be configured for hoa channels?

I think this would be useful not only for 4-5 updates but other new projects too.

Thanks!
Nick


----------begin_max5_patcher----------
1796.3oc6ZszaaaDD9rzuBBdVQYexcYO4FDfboonn4PQgQfAkzZY5PQJvGIN
IH82dm8AodXJIJq0t8PDPjIWtK+lY9lY1YVkuOdT3rhGTUgA+Rv0AiF88wiF
YFROvH28iBWk7v7rjJyzByUeoX18gSrOpV8PsY3p0I0SWnlWrPU9OAWk2rpn
odcScUfzbWZt4FQvU0ecsJ3thDxhfqbKXkp9thEApbU4xuttTUoJ+bZ9xtma
VB7FtKoRABSox8D8b9vuSdavUv6adYQUUwmUkALDpU9xRygI1jaDRtaPCB40
I0oE42z6LLBblp1nxB2f2VjWmmrRYz2esLMIqEEP2meGHL2TplWaMljH4Thj
KHXj8ibR.MRLkOI.GGMMB9HHtGgfAiXSQAebC7f0qEejazzEFjAq+q3gaISU
oeyHSXzTjdzeLdr9qIWNgxmtpIqNc57hbvHUGHC6y9fOrUfGKmhlDvHQ5+fI
D8ezeObUkE5OcpT6247ReUkptFj1pd0Izg0ILhhMpgTZUJ1ITpV6icHsur8E
EF1sfszWgW02p0pjOoJexJaLlusth7qthwg91gcCAqSCsUNnhRXn.Jj4HckJ
uBB8CHgGKbup9qY1X8EpaSf3fvS5mSYQSi0AzXhTvhPTh.FTfOgQK9PFspzk
45rL95p9IgntrkUIeVs3FXPPwtIottLcVSsc6gQcjg1.TBoAqUk2nxSlYMRl
LOVl7b4yUpppjkpGQnutpnobt50fwZlNq9jfWWVTrp8dLbuy8tcHvZOKIeY3
IyyS5i3IGmeIXJGghse3.5DDWmNmxvSi29Ci5wPDBw6gH5ugXC2NxrMQIB8f
.sBdKUGHWO6IFb7XimMiBI5TYTjOuAG8Zzoh+aiH1k99bRYWYGlxrJVqJuF+
wCPu5mdZhD6MhjwLE0PiNAQxNne+js9Wuzw++YCxiYiRPQUsa.2+FujmTkkn
3owbBMl5pdjDqYAS3jPXHAzAIAxQIg9L9LhGq07Po5SyusH7LyIiiiMUXihr
lALFJwlHjlbxHuVmBU54jvs4fAgxtImIObWOM4MYYAWsNIOWemqWIXtvH5jz
5U4bqb21Sz9N62QO4Nhziks+L67Q7X+SJx05iv1OvAIFwfxRbxLF3msFj5O9
m1e1XWx3coY3tREzm5rp.79rWvUlNtVmob1j.TvUeCp5I.MktKyK6d.oWNmb
rz9dHiCx0YfgQ0sD4kPMFc.LmYgFscuitvH75w2kNsFeGrs9GAaD3EpJn6HS
TwVShamSudLmEP3A.D1G.QF.PDe.Dc..Q8APrA.DyG.wG.Pbe.Tz..J5BARG
DcR2a8F6Wt+sb.H0FscY5DY.QRdAIc0+mjlLcMewDkAJ9ffh6CnXCBJlOfhN
Hnn9.Jxffh3CnvCBJrOfBMHntTmcL9ECpWNkZHo+ZswWDPDxPP5Q.YqeIY8Z
nJvJ2jMX.EddeQY2wdDBUtYu0TDUHT1XZ67sijTBEqUCUp0TZqk6gHVnco5i
.MuI0L2wZsarqa+8pYZSYfMKRK9.zbPS0MuWk2XKDq6bA1wRLa4soYYyKxrh
21ce2VgWn8oSbC2M2q0UrFyLsqAE0hoBRj4J3BNeqPL2ZvsKhwYwHhdprHhf
wMWIITNUeEZukQ1fEBGaQ.EKQL6UvPX.qsWVR9R6YEPD51GaOLgxh0EksTJr
z3t42TWrrLYQpxVv8tGwvDmiTI7zMGxhylZJxucMa630QFu0Z0Cv32TjsH3O
Jz0NmdLJY65kgtiMplWEk2y9sSge6Zt10TQfV32TmeWX0dNCGlfPSka1d7kP
CGpk9EUSQOGZ5qvmqNtQ8FR3eWnQ+QyTQDSXzapjQwFaAauHxmXf7fs4Oove
WT9VL0sIsaJfeA8USdPLDm0eRU9Ig7rl55hbD5nQM6nNwcJARhinl8qvToDI
1Qc.FZmkIowDrwJH61bSJgc73tk4E0YdwpUvJ2nOtA1SexTPEFajNyuj4lu1
9blOdBiKMgF9P5w8yl8yzX9IM1F9I1atY2a1HTUtwOyCuJxAdUOFrS+V+TUV
JTn7eoqhdfQ16ED3uXR6AMehTLG2iVe5yFQ8lzbcyEpV+Gazp6qij8IlFws4
bh4XSw1P44bTztKJY9bPE2YgBAWXqiQ.o3X1JZHLob2U9rUYi038lrF0wKro
GQmh0AwZANpqEiXWbsuY22UpT4msDZHNNU+wrKRjd+.+Kb+oZwYKZhtzdXFG
RMYbwf8sz+FA9V99aUVVwWNaQTR3Xg0yDKMNlHdLmwOpmIQOIDR5KEv7+Pk+
aiskHpfh616VBLGK9jA1QsrZj4+zh1qr8e+xDX6rbjg27q9GC+3nuOcLTw3c
PWdmeHBjJAY16lCk1wMlP716ce91I6IHY9MJ0RX0ZWKHleJyw+X7+Bzl8BkK
-----------end_max5_patcher-----------

Hi Nick,

Sorry for the late reply.
No, you dont need to define the speakers in .oper and .spat~ as they only operate as an Ambisonic encoder. Only the decoder needs to know the speaker setup.

You could still add speakers in spat5.oper, just for the sake of visualization; but they are not used by spat5.spat~ (you can see that there is no speaker data in the spat5.spat~ status window).

In Spat v4, setting up encoder/decoder was very awkward, and I hope it’s a little better now in Spat v5.

Here is your modified patch :


----------begin_max5_patcher----------
1355.3oc6Ys0aaaCE9Y6eEB5YWERQRIp9Taw.5Kq.CaOLLjFXPawjnTYQCJo
jzUz8aeGRJIeYVNxNJEY.U.wfh2Nmuy24Box2lNweg5QYou2a8tzaxjuMcxD
aWlNlz79D+UhGWlKJsSyuP9fZwc9ybCUIerx1ctRjtPTbS6.Yo1tgo9FbaeE
0qxJxkU1MB2z4ZQ0xayJtYtVtrxoHbT.ZlGgEvl4wnl1g3.j2Ua1FUc096iq
qputV51Deq13ckYzuOcp4mYOOHp8tUIBRkKUox2TBxBz5xCf23ChWT+3kxiC
h4QzjDj6glLyCGawON7rM.iL3KWKEeQpOFxw3SE5jXb+PG85.5kfdyB1v85+
w6cfDWWWU5wglZnKOh26RyVIKJyTEdgs6QdVArj5B6FEd.CVD5fVr3lNKq9Z
tES9oxqE04U98aJiSBR15gyi.aGyZICCSBPa8fwTH9hzqcMoO6ZY1MEhb+Yi
UK+NEnTbuLcNXS.7LWTUoyVTW4xLMoitL3VKVIqj54xBwBmsAYGyx0iJia9E
n5rBKSS2P5wlNAc..g0CHqHq5grpa89r+EqEEE.ubgwnYxWDl9Y+g5MPNblC
5Y3L3RghiHV5OxFHcDBm+xR3utn46E.ysR1wzAp0R8k3q5wMvL5QH7RUsdo7
Bvdt.lGDWcgVoV09NFduIwYaWw83PvNfCwQqbd59CwNuBRT6K83NP6Mu5rs9
6EhTsaq0zr24Rrvxz+tLsi.ZTv1vHunNsKUVB0qDUPh4sljMyqYVGzc5jDEa
PhhMFhhNHQQGCQQFjnHignBGjnBGCQgGjnvignPCRTnmqnFfjZUmmkfvCQPi
fb9wY5v3yTTtLTh0quWpKaltUJPUm6T5tBp9PRa2q1T19Z48Ysy2V92WngD0
UPZyZsKS9iQTe2RMGzrnNyt5oF7MsIi+dYE6Jk895zL0eTIppKm+IYQsqZPW
sgcrEKt45r77kpbm5scV51r89tQm0zc2buzCEDlPwXNXVBHXRbXjsEzfw1JB
qYM31EQYzDTnYpznvXJy1hGRXDSKzdKKbirP3DmDPIbD00B5BJsh2dYv08b0
TBsk4ZK5nUqU5VREVZR27qqT2nEoYRW82cKEMqwURCitoPaiMcEXPyZWy1td
cjwu3r5dX7GT4od+lxTGM6XTx0JPPY+ciCJ1BsQUU9D8WOU4OayPsaGDV7dc
lH2yfqMGAnKlaO+j94NT.mM9H7Lrzn+ehz1OqxIylCI1uKt3vgxj3HZrEYDN
kfsnktW33YFEOXq5YE62DheD11eGegqEsULviMCJdLdHNq+jsFmDxvMRpTEH
zQiZ1ANIcf.wgKRaqWgIbNJdG3.LzNKiSRBwVq.uq3FmCU7XMKaTfyR0pUvJ
2fmlNdVY5136uLWBGMYCrv16M18C5TwAtObb2hECOMVxOyhM7rXiha1c1pcR
8F+rQXqB6Yq9uB6o20uTlmAGT9OMmhdfQ164KOdwjtuxzSjhw7wkrJy7rBy0
GjsdItvple1+zWmUPrX4R.H63JFGyhcGIIFRjQcGNIjx4GMkVBIh4Rjkvv1S
vCm4mghFei2GxqkG+fMG.TDrIP1nVQcWwHoI1drUvOpkxhSVCszJiXdrUQhL
0CFek62komrpE2k5CSYP5IqCHT2JLY70u+Rlmqd3jN3ZX.hkfP7i4TyCY3Xm
OMlacog0vniZ8V22t8UcrcTK8EYdbwCMWz9XGWAQhI3t55bvcfl7RX4BGNqS
4Okz2mNFpZ7Q3pbmdHBjJAYqeyfi1wrVV710uOc6j6KHY+GTXzvx0M2yv9+w
X52m9unNmNUE
-----------end_max5_patcher-----------