Skapa interaktiva elektroniska instrument med MaxMSP (1 / 7 steg)
Steg 1: ReacTIVision och MaxMSP
ReacTIVision är en fri, öppen källkod verktyg som kommunicerar med MaxMSP och tillåter dig att spåra objekt med en kamera genom att fästa
till dem. Programvara spår x och y-position och rotation och det är bra för hur verkliga objekt i din MaxMSP lapp eller göra bordsskiva gränssnitt. Den skrevs ursprungligen för ReacTable, en bordsskiva multitouch instrument:
Här är några ReacTIVsion projekt:
Här är hur man gör det:
- Hämta ReacTIVision vision engine
- Hämta ReacTIVision TUIO klient för MaxMSP
-Skriva ut några av de relaterat markörerna (titta i din ReacTIVision vision engine nedladdning, under symboler >> default.pdf)
-Kör ReacTIVision programmet och hålla upp markörerna som din webbkamera - du bör se antalet relaterat spåret med det som du flyttar runt på skärmen. Du kan behöva justera din belysning för att hjälpa reacTIVision se markörerna.
Som standard använder ReacTIVision bakgrunden subtraktion för att hjälpa det med spårning, i vissa fall kan detta vara ett hinder. Använd nyckeln "E" att växla in och ut i bakgrundsläget subtraktion och använda mellanslagstangenten för att räkna om bakgrunden tills du hittar en inställning som bäst spår i fiducials. Att trycka 's ' nyckel kommer att visa att den ursprungliga källbilden. Att trycka på 'T' kommer att visa den binära tresholded bilden och trycka på "n"-tangenten slocknar displayen, vilket minskar CPU-användning. Thresholder lutning grinden kan justeras genom att trycka på "G" knappen, sänka värdet kan förbättra thresholder prestanda i svagt ljus med otillräcklig finger kontrast till exempel. Gradvis kan du sänka värdet bara innan buller visas i bilden. Kameraalternativen kan justeras genom att trycka på den ' o ' nyckel. Du kan läsa mer på reacTIVision hemsida och README.txt (kommer med ReacTIVision vision engine) om optimal belysning, kameran och bakgrunden setup för programvaran.
-TUIOClient.help/mxe/and mxo är filer som tillåter dig att dra in data från ReacTIVision vision motorn till Max. Du måste inkludera dessa filer i samma mapp som någon patch som kräver dem du kan också lägga dem i en katalog som Max vet för att leta efter externa objekt.
Först öppna filen TuioDump.pat i Max (hitta det i mappen TUIO_MaxMSP), öppna fönstret Max att se loggade utdata (kommando + M / Ctrl + M).
< code >
---begin_max5_patcher---
489.3ocyTFraaCCCF9r8SgfNmMD45llzaC8TOsKcmFFFjsYRXgrjgjbm2J56
9josic2pSSCFJ1EZqeJSS9QJ8XbDOyz.NN6Z1WYQQOFGEQRsBQ8qi3kxlbkz
QaiqgeXxtmunykGZ7jbkE09A0JoOeOp28cKj66Bd5xOtbAayUs1jUsVQ3c12
5+BrfhRHxePLDksFsWKKAxymrnTM0iC+E4YSHVcp55RTq.OkmhQQSsePcYq3
SwwslEmXAmU68F8QJsq1Pk1Zpntbv9RkVB + XoZWd5 + YEzEWdlTuieHNOuRDm
QkLSq6tZzbiBgSn+ktYzNW+6h+o8u+BJJzExyiCmjy.N4lxxIH3.cbXYkBXP
ijdRng42K8LZj2EdGXnN74Afwt6K29YVI3bxcPvkg7lazNiBFBsB0PtoVSwO
YdjKRRIZS1jTA8XJz2Z2kQS0GP3j1P5+YGilku.PPZOnp5o6VikjFGLIoRis
kzaM7WkYqESXl3jY1kuSLixFZN3Ot5kpnV8mCRmo1lOb.n+LFSbnlJ.mG0RO
FtlZbOgKaXi08drn.H2C4bA5jYJnX9F5aIaV9JYi3LylNTIqpd.rt9PRIRX5
5disc4pEzRT2sjvO2BOfC6 + BRQZCCK9vjRssqu1rdEOt8 + 7T7uQCg2J3
---end_max5_patcher---
Här är hur TUIOClient skickar meddelanden till Max:
När ett objekt kommer in i vyn skickas en addObject meddelande:
addObject session_id symbol_id
session_id är numret på den aktuella sessionen, vi behöver inte oroa dig för de flesta tillämpningar. symbol_id är antalet en symbol som kom på skärmen - kan dessa hittas på den defaults.pdf som du skrivs ut.
När markören är spårade runt på skärmen, skickas en updateObject meddelande för varje bildruta (min dator körs på om en 15fps bildhastighet, din maskin kan variera beroende på hur hårt det fungerar):
updateObject session_id symbol_id xpos ypos vinkel xspeed yspeed rspeed maccel raccel
session_id och symbol_id är samma som det addObject meddelandet
Xpos ypos och vinkel är x Vridvinkel markörens position och yposition
xspeed, yspeed och rspeed är x-, y- och roterande hastigheter av markören
maccel är acceleration av markören över skärmen
raccel är roterande acceleration av marker
Du kan hitta att du behöver bara en eller alla av dessa bitar av information, men oftast symbol_id, xpos, ypos och rotation är den mest användbara
Och när markören tas bort en removeObject skickas:
removeObject session_id symbol_id
session_id och symbol_id är samma som det addObject meddelandet
Använda plåstret nedan för att läsa på och tolka lägga till, uppdatera och ta bort meddelanden för markör-id, xpos, ypos och rotation. Var noga med att spara den i samma mapp som TUIO objekten du just laddat ned.
< code >
---begin_max5_patcher---
905.3oc0XlsbaCBEF9Z6mBM5pzNNdDKZw8tN8An2z65zICxhjPhLRCBk3zL4
cuBzRTVjQdC6NwQKGvvOebNGv77zItwYqoEtNey42NSl77zISzlTFlz79D2U
j0KSIE5p4tLa0JJW5NqtLIcsTaWPWk8.8mw2QW1UXNQt7VF + lqDJi5NADFM2
alCLxScaAP + R0yN + o46bs3lXUUUkWagkn6fr36tD521zWmwkbxJptnuKXjz9
kTv9qtD.rqUxEzhJcSjrLde8DAq0CRcyq4RmZ3kqX7TpTO1AuZLqT1Z0SY7k
oSUWlsmPjjjXjfXud.LHZKAHdmAnkQgHqdtx4BuKgeMm8k1Zjx3zkYkbc0fC
yIebnlM99pa954WDZzfBbn8zvAf4g9JMDbN3psNOqvgvSbdR8vEwT4iTJ2wS
aCr0zFi.y86nMvKrYrNZd6cv4Mpl2vP74.uWQD2SENUcPLUrszEEhpGK6lyL
Xw4VT + 0oYUMhq4nW3B8.16Co45O7BMO7xIhJ6Rp3JJmDmpqg2N4W4CqECxa7
tU0zR9TNstMTieRkOhiaLgeia + ubOvBOFfEGsXNzerjMvljE2rZFL7 + Sx1jB
bTf0+n.1SLhhKkxL9FPDBDzKpFCZu9oHB5tY2EDnNEABrGtKaBAfc.AuM+9l
RkOJ2DjMi+PAG.fx3GEWKN8wJf7gUUK44jk2Wsqkp+lW+wr6GHp1Kz.6OvaU
dHR0bqKn7cOL.C8OFgms+3rwDdtvPzYaasWKSZ8nSHLZ7a6vylAmsJau34oJ
3zrOWSLYvhMR7C9OJqq2C2epptYyESaNHfwDrF4ddG1svazQcAmvMNcFF9T6
DLpnGe6sd1wGNhplk5zcdYN8O9Qmx7DhjNxSRC.0rCiPaBdGnMCfGBdJx08+
. 3CeLxhDoOQgvNOmgQ.5DmD4ycD9UIK6GordG4xfyzHcR9.7FWh4HGjjxJ1p
bH5pnOmn2cJ85Qox9aQVQVoXYam0tMVGbWOkPKjLtdYv9UJrpRuxiaYIITd +
zlIrBUlzjgOumsROHS5Ivt5AZRO91UO.S5AYW83YROPqomQMcgspbLNaAr2r
EXL5wyt5wj2yBqIG + QnlHqpFSyUAV0S1DarXZvQnFrUUioYpcMkb8J7j77Gn
hhllTKjps + bWlP8ZvL8qLd8q5MW3JnOvZqORagHp12irZSOkh5ssrNJvcppe
dY5 + .7jck4O
---end_max5_patcher---
Försök ledningar upp data från updateObject till frekvens modulerad synth från den senaste Instructable. Se om du kan få rotation av en relaterat att kontrollera graden av frekvensmodulering. Eller Använd y-position för att ändra tonhöjden i den huvudsakliga oscillatorn. Tips: du måste du använda en skala objektet för att skala din värdeintervall till något lämpligt för synth. Ifall du fastnar:
< code >
---begin_max5_patcher---
1285.3oc4ZsrbahDEcs7WQWrJiihp9MP1kZ9.lMytoRMEB53PhDnRBMwNoh +
1GnaPF4BCWkft5gqxFjZ0Bctm649na3G2Lwad98lMdj2S9GxjI + 3lISrCUMv
j52OwaYz8wKh1Xml2mVjmsco2T2GU9xzrElB6mwdZv7sEMixqG8S4YEaR + tw
NS9LZ8vtYV7vJiCEU +. QEdSIdyixtyi7w54sJpH9yoY28uqMwEtoFP0kWFhv
mUcRQqNxKOt66jlXgb97u7NI0qENxhVZ + 479v5znEdUevOu4lpCSARCYluUd
YatlEl6sXxaSbzBCgNivlUBEJQRoy5jqzcxUrCjq.QOhfpSLlpW9gMt7yYjL
IjGZ0Gb9vxDNlpjR6y2oUNURjZpQFXOEF1G03OtTylEoIl0Gf.g86XgB+cp+
R6LnaKjELh93aerSaiOJN0Mo2kUR68F8y7m4qJ06AVYufOS8x9VM + pM52mJr
ddgb3neAC8hDzYLB6DVjngdnLWQBduYGCuHyATaiA7gSAHnGC + rdFOv5oEmv
tAD9VOrKBfw5MWOO3pMePCOD3Cna.wHmOX6x4l0GRgA9uVggoMLxNqZYdho8
ErbhUukt6R0AUoUgsZfTo6kpznj571GKigNsEV8czAOzlwTzebj + qZAjefUy
HU17ug8JfD3z58aerZMYmXEjzQKtxRxfdokW2ofB7soo497gSAIjnnfheHdg
4wRXyOwM36Jjw4VUjt2U2KTGCUzQrddZFrp4ZVcFF.aAjP+5tZtipTJIfPoQ
ttk46IQwGBS0WJApU2qEbmmu4Xm1Qv3G3Kkm5xG00Mb0S08W9XjWwVb9xklp
XymwMqMKy + OyeM + KUnDdZAZ + rSGFOKzsd0Pqe20C1K18kBGiOJIAAKWoZY38
604Rj754EQEo4Yj2PeG+1Uo+QyLVjlYhy2lU7r.II.qncqp22l520nY0V8zI
svvgVteU9FRTVB4gpW7l4lhuYLYDpcL1IfjjkMbp1QRLpamAeQZhhCMsLZ8W
MqI62KAdjhHHvRCfjNrvq1MDoIBRBXCRY9Wuz.UNiqfxC5qVdnIWAHZXjKvN
eaQQd1XrevCZlBAqkpWxZN1oYxunWiztDcfboBTVD81rUQwesrjHsZ + ws + c.
Lk5WiopOsKV3Yu.hbwcaR3CvgxK1vhl1qgDVDdQGUvkB3k8nHGTb74mpSPDB
NAut2c4lwtX060KpBhbO3hVtynJvxc8qN0dsL.hXWgB4rtzRLjcar.o89qP1
tJIp3v2rE4gd6jm15 + gYOVc3iPz6yY1kaoQp6IGP9zSQvKtqainR3u2ll + mK
Ras.58rR5nDl.zEqrqTTK6sX.LGr8qZWs+yd5Ss+3UiuOUsIe653F3V+3nQd
B.IlMEoY1Mip0b36MmOmljXxZSZKSSVkWlanFBjO1oaCJhzb.PRDblhIFZXR
A.R3xRp8r+tQjFUDU833NHIUciHvDSTHZIApZII.HovkkJ+03CfHlDcHMj7l
wPERU2WpAcbZ94GlD93hIMDLEhKlfj.WHO+vDGYem3Lz2ABSHG2wf56vqth.
RsNNt9NNn7S3lGmG.gmD3hIen8oblgINt8XxAkK.2tm3PaK.uTALHRbbqrv.
olvcMTLHcpHwM6jsOa4Pc95iOlDCgIM9XZvEsnvGSCtpEA9XZHMNC2tmXP5d
JDeHMnqC2Mu.z9ofNhFhj9cj2ku4m27+. Mt0nqC
---end_max5_patcher---