Help us understand the problem. What is going on with this article?

Arduino + Max8 (2) センサで音の再生

ここまでのおさらい

前回は、ArduioとMax8を連携させ、センサの値をMaxで表示しました
この章ではセンサの値を活用したパッチを組んでいきます

パッチはこちらのデータを使います

「DE2019」フォルダ内に「Arduino2Max」がある人はそのパッチを開き
ない人は下記の文字列をコピーし、Max8の
File → New From Clipboardを選択してパッチを開きます

ここをクリック
----------begin_max5_patcher----------
1638.3oc2Zs0iahCE94Yj5+ATdNMx2sYea2W5ugUcWUQxvjRKAGANSmoU6+8
0W.RBARbbgjtKQJPrAeNeGetS9w6d7gYKkulVMK52h9XzCO7C8HOXGyLxCMC
7vrMIutJOoxdiyVI2rIsPMad8jpzWU1I9cb6XYOYGQt7Kue+fE61jUjmprKC
rYzsIpUeNqX8mJSWobbBQDufSmGQw3Ef4Q3Xy2HvBPzeevZI2oZVLfcz+4cO
ZNqOMeD.CpOv.YgiFBDc+PCrWzvCAMDKZPB98CMfdQSb3nARIKnTJByAtCL4
dgsdMhHnqGaHA0YEwwKhYbBfE6ND+RYRQ.A.M.vv++5frdMuvzqGYPH9dfrh
zuo43SA11jUeMJy8ocVGEUusM0wyylsmgNbic.O+jypyZcpPr9VPb2IzvHFF
LhqxydJszKL80B4xUxbYoaJvBBNFAYy0WwIw.j4BD0cE7PdcaRYxlTUZ4mRK
RVlaWZPyjUYe2N.hxV.5Q7ghC2jGGCWDGC.BXs5CG6zbzLHALEhS85r7rhy4
QyVlTrdlmRmCMif+D99HnSrinfKoUgtKZUXHmQ3FkIFsQsJ1LDbTUqDA6t81
qU8yHNiMljFYHVKBAVqULApkwipzLbW7+GSZx.bAwHDEHNgBMWAoLACOphyP
xEPbejlClLvesb0mkxpznpzxrj7sxRUeYGDPFcP.zlbf8aHkOc4CnjqWq26F
TUISCbe2yUu4FodQ+fL+odyVJfhQfjZQAZAEgXDRc16PslJhXEOjIIZ2PoKU
pELQOKK2jnTo8CSQvvDA063XssCpAlZcbwEyQZ7yJbchJ8ZyFDOP5LHO1dMX
jQgHRsscrIEG7zka3fl1QUpjRUzVYdtlSiTetwHOZHqbnHTOZH7jakesEXSC
EK27xYltrQg3vKW8FmL5TJEPgWZ6+ijBvfMHt0BgA7juqvuJ7Mw6m22od80C
CNMNjf4Yk+jQWV7bobS0aaVJy8J1197ZbK3GJSSKdeuMBJNXwgIUutQ74noK
x2PxlLkLw2rA6JX9i7co8KWFH1H9xxEn8Dgc6kDeOOZcob2Vcx3fy6ToeaC9
0mFjCyPgFmwbNr0kgt5VNc57YzoFfkqOtfvX.0UFHEnK0VXtRqpFaJR7nBBG
0ZGL1X8oIwB0BiPapR3VWqfFzkRsS+gUh5DU5.3RCUIh6BAeGrapRyif3H3k
v678mGnsxg5z.pi4Bw.LDzbnMfnhKIJvSfnvVxPRTL6b9PpixNPH1PU3g.wB
hoQIMgT.Zi3KGtMb2H5JgK2sO0hmkEpl1.YegnC5dg3ZwNE.Pr3Z2KBV212Y
V9Fo5QEgctX2FlnP61wUriY23H964jUClyGgEbeabFeHBc5r91rKWk0oOeuj
T1h09l28yv51WmcMPLkHb2M.fiY0Wgh69bUZj13au0q0pjhmxzekRaVOAyPd
KevATgvckffgWJHSGKmyGkY+SBNgWXW6K8o8IQWamnaeR9U+JAZrnH84pXuG
yVJfuZJzuxtVzoGVqB1pAXRZkdbCgOwdfRHtWymMBLltv7lZPrtxh2Lbp4I3
mv+jqcW47dyb22r7rhS9yvXYeyDcL6pj6JW0nsUmjezAD7ozJUVQhJSVbvMY
B+YtqgMv8ldBenWGlRVZL7OuGlwkALs8KBt+t1j8zVoNxVsXFyM68HH1DSBB
aKywn8wHCLWO3ALB3g6CdDi19GyGxQGMxQ8R8bzHGgcioG1K5QFOB5C83iJ4
PdRtAr03Li8DjiVvfD.D2zLcs2emYXOSMJ7N1KWi3wyzBy810z3PPjeHb7T2
Qd47EhGOB5m+Cz3QPfWDb7DoPuHXW+LiZDUKK.8hElpffVV.4EKflRV.6EKf
uqr.Jdp0Et3FQW+.2A0wtdFFeV3hFkc8ULt5Bd4VnW2P0kUjrc6KokU0OgiR
5x1+hqtYwb2uyJb+1UB5rxzWxZdj5aIoTWHkRWE0tRW07uxpKsa1FoFwE6xZ
j6FrZHssH6tkzz1Mfd5OuFeOmrKW0QpjrZUZg5596p0HLl2HvK0Kw9N51PPa
KIZ2rNdSpCmd7qXweVEX6iD1bX6HAyzWgIiK+yz7b42tDadXev9nsSXTSW4N
nwVmhCAhBsRbt.5Zyh9gnlFjL9Pw9VSM+WcBPdya6yAUWcNk6ZCDLl8ypZTa
PY62kgUq1V2oNaewd2i5a4eQx7vP3
-----------end_max5_patcher-----------

arduino2max

グラフを少し小さく表示する

グラフを表示するオブジェクトはmultisliderというものですが、右下部分をドラッグ・アンド・ドロップすることで大きさを調整することができます
A0からA3と書かれているものはコメントボックスと言い、こちらも移動することができます

minimizeMultisliderそれでは空いたスペースにパッチを組んでいきましょう

値を送受信するオブジェクト(send, receive)の活用

sendReceive

以降、パッチングにショートカットキーを使っていきます
nを押してオブジェクトウィンドウを表示し、send A0data(sendとA0dataの間には半角スペースを入れる)と入力し上のナンバーボックスとつなぎます
nを押してオブジェクトウィンドウを表示し、receive A0data(receiveとA0dataの間には半角スペースを入れる)と入力します
iを押してnumber(i)を表示し、receive A0dataとつなぎます

➡A0のセンサの値が変化すると、receiveに繋いだナンバーボックス内の値が変わることがわかります

send及びreceiveはパッチコードをつなぐことなく、データを送る(受ける)事ができるオブジェクトです。A0dataはデータのラベルなので自由に変えることができます
全てのオブジェクトをパッチコードで繋いでいくと見た目にわかりにくくなることが多いので、send, receiveを活用してみて下さい

センサの値によって音を再生する(sfplay~, ezdac~)

sensorPlayer

以降、パッチングにショートカットキーを使っていきます

n(object)> 100と入力 (>と100の間には半角スペース)
t(toggle)
n(object)sfplay~
n(object)ezdac~
・sfplay~の近くでクリック → m(message)openと入力
・全てのオブジェクトをつなぐ

➡A0にボリュームセンサをつなぎ、センサをひねると音が再生されます

音が連続で再生されてしまうのは、常に「1」の値が送られてきてしまっているからです
次は、「0」から「1」に値が変化した際に1度だけ再生を行うようにパッチを修正します

条件によって1度だけ音を鳴らす(change)

changeオブジェクトの配置

changeIntro

先程のパッチに修正を加えていきます
nを押してobjectを表示しchangeと入力して下さい
・changeの上にt(toggle)をおき、下にb(button)を3つおきます
・それぞれをつなぎます
・changeの上のtoggleをクリックして挙動を確認してみましょう

changeオブジェクトの挙動を確かめる

chaneWork

toggleを一度押すと、changeの一番左と真ん中のアウトレットから信号が出てきます。
change左アウトレットは「0→1」「1→0」と状態が変化した際に信号が出力されます

change真ん中アウトレットは「0→1」と状態が変化した際に信号が出力されます

change右アウトレットは「1→0」と状態が変化した際に信号が出力されます

「センサが一定の値を超えた時」を検出して1回音を鳴らすパッチにするには、changeアウトレットの中央の出力を使うと良いことがわかります

changeオブジェクトの活用

それでは、以下のようにパッチを改変してみましょう

changeP

このパッチを実行すると、「センサの値が100」を超えた時に1回だけ音が再生されます。
・センサの種類に応じて反応する値(しきい値といいます)を帰るときは、> 100の部分の数字を変えてみて下さい

条件文を変えてみる(<, ==を使ってみる)と何が起こるか?

changeの別のアウトレットに繋いでみると何が起こるか?

完成したパッチを下においておきます
下記内容をコピーして
Max8のFile → New From Clipboardを選択してパッチを開きます

完成したパッチ「sensorChangePlayer」

----------begin_max5_patcher----------
2170.3oc2assiiaiD84d.l+AA+riAuSo7P.x9R9FVLIX.sLa2JirjWI5NSOA
Ie6gWj7UIKZZIOcV2.ssorXUmCqpXwhT+4G+vSyVV9UY8rneL5SQO8zepa4I
aalVdpsgmlsQ70zbQs8GNairtVrVNadyEUxuprW.tuoxcpboR81VoqqmMK52
ZuV1J6Otb4u+CwI6uihcaxJz2iUDn1V2JToujUr9yUxTkqqvwfEz4QTDaAXd
DJw7EDZA3f.zckS919BZa8u93GLuqeat23b4NkprneLsTTr9HbsUTI1HUxpO
KKDKys+JPWfl1MngWAzDH1fVBOwBZR6++2Cnw2NnaFo+WLngA.ZJ7AMRqJWu
NW1OnyJTAfYdR.XlY8kwISNlKj+gVIuLxU5K5Q3qvEyl63i4mSKGibdvHmPf
KRXbBfk3dEqaK1RCWIxFNXZn2H3kakE2ZPbN51Chahdabs0i3miaLcHbG9vu
7aqDo+8rt.A31AAgwsyDwwWN3YAg4+8ABvnaCW+71bwa+c+Ce0YqKD4Fa3yh
mcDOvRBgGHVd.itjG3CMXtuiqEuJW8YsNn62OKTppLcTYWpIOcfJzrinNKUs
qHy.geT65zFE5oYOWlmW9GqyKWJxUxMaKONHk4xUaDEpzxJitmoC3exk2TtR
5lMvHgY6aurJacll3xkEqUuz32xIK3b.fECPbDDDyzfclJK8K0G30C25dkAB
0F7G+Jls+GuMSyr8ob+uch7L0acoepLs6rpRpuamxo4Z20ZrtFUqreJBB.9N
owwFVr.LrblOXFxM8vzEXP2OKkUWO9efIAPAAjtGwMgHz9FELnSznOLq0EY1
qxneFrRnD25TBj3twLXXLibI9DGOgC18E.UVr5b.eLnBX9cpMWFFvl8NevY1
BeRgzxMajlDTNGT+LtKrDR13ZmQtNLOLgsfj..wHPyK3deSvUfVayOWVnpy9
l0.Bp4hI.xntfLjcGXliduiYXmXleGXVm.56bLC5DyI2AlQz26XtS2YB51wL
JlZwbWou5AjeTtsj.l9TO5Ym27cCx5z4DGPcfft5.8nQVeyXtUj9knL2e2bN
B8LGD4p1r1zhZVUAmOc4HTmms5pIDd6IBhRB2IEm.0qaPGXB1LfywtwZSb5S
FxaC+fnlzo5lUZa9KEkKSKyKqZV2vBBNAAYy0ehqCChLe.QceBtncYEuyxuF
CuiXejKWx5Tls8TXUEGb7wGjQEFxYDtwVhQaspRLMAuWqpofNCOn7ChNSLdj
FNDqoPf0YESfZN98HaFxj2wORxjA3wDCGFi3DJz7IHkEyv2Ka1ax.+5xzWJK
qkQ0xpLQ91xJUWYGDPFcPfcqCbaf.jxmt7AFwsNnV8lqklN8WJyW0Y1RArTF
HogJPKnHDiPZSpm78YWF1VoIlHaYHUJY2vLNXXhf5Qbr1MncwKPsQbLe5p4P
evbsPIu0rAwAT241gWCFYTHhzVTUSBS3oK2vdcsipUhJUz1x7bslFodo0IOp
OubXbnAHQ3I2K+VW3MMTr7vWNyzkMJDG9xUevIiNkr.J7k19+Qr.LXGhGMIz
Sj7cE9sB+i1ZbO1nbXvYEhhYdtxexnyEOWUto9sMKKy8ZtsC4035veoRJK9g
NKDTRvzgIUuymwmid76bRlpT3a1fmSL+m7cxt4kdlaDOLu.su0rgROTl3a4Q
qqJ2s856Rpw8nmCSwsmFjCyvXMNS3b39PFI9riSn2kqAv3qzkEAKTOE24wvi
b9aad45SWmXBf5VcHEnW.dr4SZOuDyZGuyJi0igjlrpJin.uOTZGukygZDwc
SAy9dr2q4QPbDbH7N+v68TV4PCZ.0y4Bw.Lrcqe.ZGH5DdHr5mJrKYPDkvF5
jVzKKDblGPPG652vS2FdXDyI8YmeadfY20JzQQbqAwPR6uMSuzRdmrVKy87r
Hs2bzHrfqyhyYAQF97p021C1evFhqJ7T..wRZB1Dyt6R7sYWtJ6r578pnZOo
100GZxqTQwpL8+jLe2EAulSvzsuY5VSq7KDFx2xgteNlCX.bQuw8tV0Wbq3a
9Vc76sUFxtbwICX4pQrtY83eqTrYLROcD3xigCf2abfD6gs+xy+QGzB4VMFZ
8KHCcLA0Mzlt.5BwRaEaLyPjVFkCnwwtOESvmOZbluGHgRhc7O.fSXMeBkzS
Agcczr7rhKdJJrjq4Bm4QVWtqJs0Yp8ofH5HUZkrVkUHZODfe5vIyL5pN+9K
PrOBLd7Dn4v+Mr.4im.MmE6HzfHjNtBDNn.wiq.GdLDNdBzKqzV0ZLDH5A6V
v7CgfSGoKqLyVd85QNEp.nCU.NBp.E3EsyFMZ2bXQGVfsp0HHPHzGARFOKYu
FTgiG.8hPSlPaHuT.yV9brizlrUaK0qpot8H1aex9fXS1FP39RbYl.28.Gzw
0lH2R+h0NdAh7xgXzDG0Kyywyem8fkmWY6XRmdrDnWwvGUwg7Tb83qwsOMVl
S4LCR.Pb6FopWNiyMriKMJ5N1qPi3wy0By8Nzz3HPjeHb7L2QdE7ENdYhh7K
9AZ7DnWYn.GOJE5k.OONynNiJD3y5KrpvTMInUEPdoBnoTEvdoB3uqp.JYps
EFbf373.eGLGOOxv3qBC5Th5aoRihsfWgE5LLTSciDa29prpt4NbRZ1Fwu6J
HU7b22yJbe2U3xYUxWyZuklehnJ8kLkLUsqxUI2uxZJOn8wZspXWVKuavpQz
1pncdMq1WI3N1aVM9dVrKWcFqHRSklGp1PNwuyaI7JcWbXW.aEnsbz6GrNcP
5LM8zsW2eUEXKyN17xVpOlovgSlV9eklGP4.TyXDEZITdLzUdR.MgZJv4IEy
73MX3S1sXfZpT6HCE6IlwbNMC.H78UomlffTtq9pvD18ZZz3PY2qCipVusYW
er6IxG+f9m7O.AaQdpA
-----------end_max5_patcher-----------

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away