Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SSAW14 第1回 - Mozziを使ってみる
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Atsushi Tadokoro
April 12, 2014
Technology
5.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SSAW14 第1回 - Mozziを使ってみる
Atsushi Tadokoro
April 12, 2014
More Decks by Atsushi Tadokoro
See All by Atsushi Tadokoro
デザイン言語総合講座 - クリエイティブ・コーディング
tado
0
2.8k
Tumblrを使う4 - Webサイトを構成する、固定ページとタグ
tado
0
1.8k
Tumblrを使う3- カスタムHTMLテーマの作成
tado
0
470
Processing.jsによるデータの可視化と生成的表現
tado
1
1.9k
Tumblrを使う2 - テーマをカスタマイズする
tado
0
380
Touchéの仕組みを理解 - ProcessingとArduinoの連携
tado
0
2.4k
Github Pagesで作品を公開、Automatic Page Generatorでサイトを生成
tado
0
1.6k
TumblrでWebサイトを作成
tado
0
730
bmaw14 第2回: Touchéセンサーを使う1 Touchéセンサーを作成する
tado
0
2.3k
Other Decks in Technology
See All in Technology
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
560
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
SmartHR Engineering Team Deck
smarthr
1
2.1k
Goでデータパイプラインを作ろう
sansantech
PRO
1
430
20分でわかるセキュアAPI
nwiizo
2
260
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
400
強化学習「理論」入門
enakai00
3
3.6k
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
190
PLATEAU で バーチャル花火大会
tatsuya1970
0
150
Forza Horizon 6 のテレメトリ機能で 自動運転に使えそうな学習データを集める話
henjin0
0
170
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
260
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
Designing for Performance
lara
611
70k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
410
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
Rails Girls Zürich Keynote
gr2m
96
14k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Building the Perfect Custom Keyboard
takai
2
840
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
990
Faster Mobile Websites
deanohume
310
32k
Transcript
44"8 ୈճ.P[[JΛͬͯΈΔ ݄ ଟຎඒज़େֶใσβΠϯֶՊϝσΟΞܳज़ίʔε ాॴ३
ࠓͷ༰ ‣ 44"8ɺՐ༵ͷ֓ཁ ‣ .P[[Jͷಋೖ ‣ "SEVJOP .P[[JͰԻ͕ग़Δͱ͜Ζ·ͰΛඪʹ
44"8ʹ͍ͭͯ
44"8Ր༵ͷඪ ‣ "SEVJOP .P[[J ޙड़ Ͱαϯυϓϩάϥϛϯά ‣ σόΠε ίʔυͰɺΦϦδφϧʮָثʯΛ࡞Δ
ࢀߟਤॻ ‣ )BOENBEF&MFDUSPOJD.VTJDʕख࡞Γిࢠճ࿏͔Βੜ·Ε ΔԻͱԻָ ‣ /JDPMBT$PMMJOT ஶ ٱอాߊ߂ ༁ ༁
ધా ༁
44"8Ր༵ͷ༰ ‣ ΞϰΝϯΪϟϧυͷ๏ଇ ‣ ʮ)BOENBEF&MFDUSPOJD.VTJDʯQΑΓ ! ‣ ୈɿٯΛΕ ‣ ୈɿࢥ͍Γڹ͔ͤΖ
‣ ୈɿͤ͘͘Α
.P[[Jʹ͍ͭͯ
.P[[Jʹ͍ͭͯ ‣ .P[[Jˠ"SEVJOPͷͨΊͷԻڹ߹ϥΠϒϥϦ ‣ "SEVJOP୯ମͰɺߴͳԻڹ߹Λ࣮ݱ ‣ IUUQTFOTPSJVNHJUIVCJP.P[[J
.P[[Jʹ͍ͭͯ ‣ ιʔείʔυɺ(JUIVCͰެ։͞Ε͍ͯΔ ‣ IUUQTHJUIVCDPNTFOTPSJVN.P[[J
.P[[Jʹ͍ͭͯ ‣ .P[[JͰͲΜͳԻ͕ੜͰ͖Δͷ͔ ‣ αϯϓϧΛฉ͍ͯΈΔ ‣ IUUQTFOTPSJVNHJUIVCJP.P[[J
.P[[Jͷ४උ
.P[[Jͷ४උ ‣ ͦͦ"SEVJOPͷͲ͔͜ΒԻ͕ग़Δͷ͔ ‣ "SEVJOPʹɺεϐʔΧʔΦʔσΟΦδϟοΫແ͍
εςϨΦϛχδϟοΫͷͱΓ͚ͭ ‣ "SEVJOP͔ΒԻΛग़ྗ͢ΔʹɺΦʔσΟΦग़ྗͷͨΊͷ ύʔπΛࣗ࡞ͯ͠ଓ͠ͳͯ͘ͳΒͳ͍ ‣ ࠓճɺळ݄ͷʮNNεςϨΦϛχδϟοΫ%*1ԽΩο τʯΛ༻ ‣ IUUQBLJ[VLJEFOTIJDPNDBUBMPHHH,
εςϨΦϛχδϟοΫͷͱΓ͚ͭ ‣ NNεςϨΦϛχδϟοΫ%*1ԽΩοτΛϒϨουϘʔυ Ͱ༻͢ΔʹɺՃ͕ඞཁ ‣ ·ͣɺύʔπΛ֬ೝ εςϨΦϛχδϟοΫ มج൫ ϐον
εςϨΦϛχδϟοΫͷͱΓ͚ͭ ‣ Ճ͍͢͠Α͏ɺϒϨουϘʔυΛར༻ ‣ ϐονΛຊͣͭΓͯ͠ɺҎԼͷਤͷΑ͏ʹஔ
‣ l"&1)0/&+"$,%1zͱ͍͏จࣈ͕ॻ͍ͯ͋Δ໘Λ্ʹ ͯ͠ج൫ΛϐονͷҐஔʹ͋ΘͤͯࡌͤΔ εςϨΦϛχδϟοΫͷͱΓ͚ͭ
‣ શͯͷϐονΛϋϯμ͚ͮ εςϨΦϛχδϟοΫͷͱΓ͚ͭ
‣ εςϨΦϛχδϟοΫΛͷҐஔʹ͋ΘͤͯࡌͤΔ εςϨΦϛχδϟοΫͷͱΓ͚ͭ
‣ ϒϨουϘʔυ͔ΒऔΓ֎͠ɺཪଆͷΛશͯϋϯμ͚ͮ εςϨΦϛχδϟοΫͷͱΓ͚ͭ
‣ εςϨΦϛχδϟοΫͷͱΓ͚ͭ
εςϨΦϛχδϟοΫͷͱΓ͚ͭ ‣ ࣍ʹϒϨουϘʔυଆͷઢ ‣ ҎԼͷΑ͏ʹઢ͢Δ
εςϨΦϛχδϟοΫͷͱΓ͚ͭ ‣ Ճͨ͠εςϨΦϛχδϟοΫΛஔ
εςϨΦϛχδϟοΫͷͱΓ͚ͭ ‣ "SEVJOPͱଓ ‣ (/%ͱɺ%JHJUBM0VUΛҎԼͷਤͷͱ͓Γଓ
εςϨΦϛχδϟοΫͷͱΓ͚ͭ ‣ ४උྃ
.P[[JͷμϯϩʔυͱΠϯετʔϧ
.P[[JͷμϯϩʔυͱΠϯετʔϧ ‣ .P[[JΛҎԼ͔Βμϯϩʔυ ‣ .P[[J[JQΛอଘ͢Δ ίί
.P[[JͷμϯϩʔυͱΠϯετʔϧ ‣ "SEVJOPΛىಈ ‣ 4LFUDI*NQPSU-JCSBSZ"EE-JCSBSZ ‣ ઌ΄Ͳμϯϩʔυͨ͠ɺ.P[[J[JQΛબ
.P[[JͷμϯϩʔυͱΠϯετʔϧ ‣ *NQPSU-JCSBSZͷཝʹ.P[[J͕ग़͖ͯͨΒΠϯετʔϧྃ
.P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา
#include <MozziGuts.h> #include <Oscil.h> #include <tables/sin2048_int8.h> ! Oscil <2048, AUDIO_RATE>
aSin(SIN2048_DATA); ! void setup(){ startMozzi(CONTROL_RATE); aSin.setFreq(440); } ! void updateControl(){ } ! int updateAudio(){ return aSin.next(); } ! void loop(){ audioHook(); } .P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา ‣ ԼهͷϓϩάϥϜΛ"SEVJOPʹهೖ
.P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา ‣ ϓϩάϥϜΛهೖͰ͖ͨΒɺ"SEVJOPʹVQMPBE ! ! ! ! ‣ ΠϠϗϯΛδϟοΫʹͯ͠ΈΔ
‣ ͲΜͳԻ͕͢Δ͔ ίί
.P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา ‣ ͜ͷαϯϓϧɺ4JOΛੜ͢ΔϓϩάϥϜ ‣ ͨͩ͠ɺ"SEVJOPͷܭࢉεϐʔυΛߟྀͯ͠ɺ༷ʑͳ͕ ͞Ε͍ͯΔ ‣ ϓϩάϥϜͷৄࡉΛཧղͯ͠ΈΑ͏
.P[[JϓϩάϥϜߏ ‣ ϓϩάϥϜͷߏҰൠతͳ"SEVJOPϓϩάϥϜ TFUVQ MPPQ ॳظઃఆ ϧʔϓ
.P[[JϓϩάϥϜߏ ‣ ϓϩάϥϜͷߏ.P[[JϓϩάϥϜ TFUVQ MPPQ VQEBUF$POUSPM VQEBUF"VEJP
ॳظઃఆ ϧʔϓ ίϯτϩʔϧߋ৽ ΦʔσΟΦߋ৽
ίϯτϩʔϧͱΦʔσΟΦ ‣ ʮίϯτϩʔϧ৴߸ʯͱʮΦʔσΟΦ৴߸ʯͭͷछྨͷ৴ ߸͕ଘࡏ͢Δ ‣ ༻్ʹԠ͍ͯ͡Θ͚Δ ! ‣ ίϯτϩʔϧ৴߸ ‣
Ώͬ͘Γͱͨ͠มԽɺԻྔɺԻఔͷมԽͳͲ ‣ ܭࢉྔ͕গͳ͍ ! ‣ ΦʔσΟΦ৴߸ ‣ ԻΛੜ͢ΔܗͷมԽ ‣ ܭࢉྔ͕ଟ͍
ίϯτϩʔϧͱΦʔσΟΦ ‣ ͦΕͧΕͷ৴߸ͷࡉ͔͞ɺϓϩάϥϜͰఆٛͰ͖Δ ! ‣ ίϯτϩʔϧ৴߸ ‣ $0/530-@3"5& ‣ ॳظ
! ‣ ΦʔσΟΦ৴߸ ‣ "6%*0@3"5& ! ‣ ͨͩ͠ɺͲͪΒͷႈΛࢦఆ͠ͳ͍ͱ͍͚ͳ͍ ‣ ʜ
! ! ! ‣ ඞཁͳ෦ ϔομϑΝΠϧ ΛಡΈࠐΜͰ͍Δ ! ‣ .P[[J(VUTI.P[[JͷίΞػೳ
‣ 0TDJMIΦγϨʔλ ‣ UBCMFTTJO@JOUIαΠϯͷΛςʔϒϧʹอ࣋ #include <MozziGuts.h> #include <Oscil.h> #include <tables/sin2048_int8.h> .P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา
! ! ‣ αΠϯͷΦγϨʔλΛఆ͍ٛͯ͠Δ ! ‣ ΦγϨʔλͷαϯϓϧ ‣ "6%*0@3"5&ΦʔσΟΦϨΠτ ‣
4*/@%"5"TJO@JOUIͰఆٛ͞ΕͨαΠϯͷ ςʔϒϧͷ Oscil <2048, AUDIO_RATE> aSin(SIN2048_DATA); .P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา
! ! ! ‣ ॳظઃఆ ! ‣ $0/530-@3"5& Λࢦఆͯ͠ɺ.P[[JΛ։࢝
‣ ΦγϨʔλͷपΛɺ)[ʹ void setup(){ startMozzi(CONTROL_RATE); aSin.setFreq(440); } .P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา
! ! ! ‣ ίϯτϩʔϧ৴߸ͷߋ৽ ‣ ݱঢ়ɺͳʹࢦఆ͍ͯ͠ͳ͍ void updateControl(){ !
} .P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา
! ! ! ‣ ΦʔσΟΦ৴߸ͷߋ৽ ‣ αΠϯͷ࣍ͷαϯϓϧͷΛܭࢉͯ͠ग़ྗ int updateAudio(){ return
aSin.next(); } .P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา
! ! ! ‣ ϧʔϓ ‣ ݱࡏͷ.P[[JͰੜ͞ΕͨԻΛग़ྗ ‣ BVEJP)PPL Λ༻͍Δ
void loop(){ audioHook(); } .P[[Jϓϩάϥϛϯά ɺ͡ΊͷҰา
.P[[JΫΠζ
.P[[JΫΠζ ‣ ݱࡏͷαϯϓϧϓϩάϥϜΛվͯ͠ҎԼͷػೳʹ ! ‣ 2 ॳڃ ‣ ੜ͞ΕΔԻͷपΛมԽͤ͞Δ
‣ )[ )[ )[ʜFUD ! ‣ 2 தڃ ‣ )[͔Β։࢝ͯ͠ɺঃʑʹप͕ߴ͘ͳΔ ! ‣ 2 Ԡ༻ ‣ αΠϯʹɺϏϒϥʔτ ԻఔͷมԽ Λ͚ͭͯΈΔ
.P[[JΫΠζ ‣ ࣍ि·Ͱͷ՝ʹ͠·͢