Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Creative coding x Music
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Atsushi Tadokoro
March 08, 2014
Technology
2.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Creative coding x Music
Atsushi Tadokoro
March 08, 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.7k
TumblrでWebサイトを作成
tado
0
730
bmaw14 第2回: Touchéセンサーを使う1 Touchéセンサーを作成する
tado
0
2.3k
Other Decks in Technology
See All in Technology
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
120
しろおびから始める!ログ活用の第一歩
shumei_ito
0
900
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
550
USB PDを使ってスマホを労わりたい
raspython3
0
160
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.7k
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
190
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
110
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.5k
ゲームのリアルタイム通信から見た QUIC と MoQ
segadevtech
0
110
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
700
Running Kotlin + Quarkus with Lambda
nealle
1
420
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
260
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Skip the Path - Find Your Career Trail
mkilby
1
250
ラッコキーワード サービス紹介資料
rakko
1
5.3M
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Technical Leadership for Architectural Decision Making
baasie
3
600
30 Presentation Tips
portentint
PRO
1
430
Designing for humans not robots
tammielis
254
26k
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
How to build a perfect <img>
jonoalderson
1
6.1k
Transcript
$SFBUJWFDPEJOHY.VTJD (PPHMF3PQQPOHJ"SU5FDI/JHIU ాॴ३ IUUQZPQQBPSH
ࣗݾհ
ࣗݾհ ‣ ాॴ३ ͨͲ͜Ζ͋ͭ͠ ‣ ϑϦʔϥϯε ZPQQBPSH ‣
େֶඇৗۈߨࢣ ଟຎඒज़େֶɺ౦ژज़େֶ ͳͲ ‣ ΫϦΤΠςΟϒɾίʔμʔ
ࣗݾհ ‣ IUUQZPQQBPSH TDSFFOTIPU@
ࣗݾհ ‣ ʰ#FZPOE*OUFSBDUJPO<վగୈ൛>ΫϦΤΠςΟϒɾίʔ σΟϯάͷͨΊͷPQFO'SBNFXPSLT࣮ફΨΠυʱ TDSFFOTIPU@
ΫϦΤΠςΟϒ
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ʮΫϦΤΠςΟϒɾίʔμʔʯ ! ‣ ίʔσΟϯά ϓϩάϥϛϯά ‣
ͦΕࣗମ͕ΫϦΤΠςΟϒͳ׆ಈ ! ‣ ͰʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱԿ͔
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ਖ਼ࣜͳఆٛͳ͍ͷ͕ݱঢ় ! ‣ ͜͜ͰɺҎԼͷΑ͏ʹߟ͍͑ͨ ‣ ʮදݱʯ %%άϥϑΟοΫɺө૾ɺαϯυ ʹؔ͢Δ
ػೳʹಛԽͨ͠ɺ։ൃϑϨʔϜϫʔΫ
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ྫ͑ɺPQFO'SBNFXPSLTͰɺ༷ʑͳػೳΛܨ͗͋Θͤ Δʮކʯͱදݱ͍ͯ͠Δ OpenGL GLUT FreeImag FreeType fmod RtAudio
QuickTime OpenCV main.cpp testApp.h testApp.cpp ofSimpleApp, ofGraphics, ofImage, ofTrueTypeFont, ofVideoPlayer, ofVideoGrabber, ofTexture, ofSoundPlayer, ofSoundStream, ofSerial, ofMath, ofUtils ...etc.
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ྫ͑ɺPQFO'SBNFXPSLTͰɺ༷ʑͳػೳΛܨ͗͋Θͤ Δʮކʯͱදݱ͍ͯ͠Δ OpenGL GLUT FreeImag FreeType fmod RtAudio
QuickTim OpenCV main.cpp testApp.h testApp.cpp ofSimpleApp, ofGraphics, ofImage, ofTrueTypeFont, ofVideoPlayer, ofVideoGrabber, ofTexture, ofSoundPlayer, ofSoundStream, ofSerial, ofMath, ofUtils ...etc. ! ϓϩάϥϜ։ൃͷͨΊͷ ކ (MVF
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ͭ·Γʜ ΫϦΤΠςΟϒͳ࡞ۀʹઐ೦Ͱ͖Δ
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ͭ·Γʜ ΫϦΤΠςΟϒͳ࡞ۀʹઐ೦Ͱ͖Δ ΫϦΤΠλʔୡʹΑΔΦʔϓϯͳίϛϡχςΟʔ
ओཁͳ։ൃϑϨʔϜϫʔΫ
ओཁͳ։ൃϑϨʔϜϫʔΫ ‣ ͲͷΑ͏ͳ։ൃϑϨʔϜϫʔΫ͕ओྲྀͳͷ͔ ‣ ਖ਼ࣜͳ౷ܭࢿྉ͕͋ΔΘ͚Ͱͳ͍ ‣ ʹͳͬͨΞʔτϓϩδΣΫτͳͲ͔Βྨਪ
ओཁͳ։ൃϑϨʔϜϫʔΫ ‣ $SFBUJWF"QQMJDBUJPOTհ ‣ ίʔυΛ༻͍༷ͨʑͳϓϩδΣΫτΛհ ʙ
ओཁͳ։ൃϑϨʔϜϫʔΫ ‣ $SFBUJWF"QQMJDBUJPOTͰɺܝࡌͨ͠ϓϩδΣΫτΛ։ൃ ϑϨʔΫϫʔΫຖʹλά͚͍ͯ͠Δ ‣ ͦͷΛूܭ͢Δ͜ͱͰɺݱࡏͷͷࢀߟͱͳΔ ‣ ͋͘·ͰɺҰͭͷࢦඪͱͯ͠ʜ
ओཁͳ։ൃϑϨʔϜϫʔΫ ‣ ։ൃϑϨʔϜϫʔΫ͝ͱͷܝࡌ݅ ݄ ։ൃϑϨʔϜϫʔΫ ݅ 1 openFrameworks 305 2
Processing 300 3 Flash 88 4 Javascript 64 5 Max/MSP 56 6 Cinder 54 7 vvvv 49 8 Java 16 9 Quartz Composer 10 10 Unity 9 11 Three.js 6
ओཁͳ։ൃϑϨʔϜϫʔΫ ‣ ΫϦΤΠςΟϒίʔσΟϯάͷ ͓ͦΒ͘ ൣᙝ ։ൃϑϨʔϜϫʔΫ ݅ 1 openFrameworks 305
2 Processing 300 3 Flash 88 4 Javascript 64 5 Max/MSP 56 6 Cinder 54 7 vvvv 49 8 Java 16 9 Quartz Composer 10 10 Unity 9 11 Three.js 6
ΫϦΤΠςΟϒίʔσΟϯά αϯυ
ΫϦΤΠςΟϒίʔσΟϯά αϯυ ‣ 1SPDFTTJOHɺPQFO'SBNFXPSLTɺ$JOEFSɺWWWWͳͲͷϑ ϨʔϜϫʔΫΛԻڹ߹ʹ͍͍ͨ ! ‣ ݱঢ়ͰϑϨʔϜϫʔΫ୯ମͰɺԻڹ߹ͷػೳ͕ශऑ ! ‣
ΫϦΤΠςΟϒίʔσΟϯάͷϑϨʔϜϫʔΫͰɺԻڹ࡞ ΦʔσΟΦɾϏδϡΞϧ࡞Λ੍࡞͢Δख๏Λ֓؍
ΫϦΤΠςΟϒίʔσΟϯά αϯυ ‣ ίϯϐϡʔλԻָ༻ͷ༷ʑͳ։ൃڥɺݴޠ͕ଘࡏ ‣ ͜ΕΒͱΈ߹ΘͤΔͷ͕٢ ‣ ՄೳͳݶΓɺϑϦʔ Φʔϓϯιʔε ͷڥͰ
1VSF%BUB 4VQFS$PMMJEFS $IVD,
ͭͷܕ
ͭͷܕ ‣ ͓͓·͔ʹྨ ࿈ܞܕ ֦ுܕ แܕ
ͭͷܕ ‣ ͡Ίʹ࿈ܞܕ ࿈ܞܕ ֦ுܕ แܕ
࿈ܞܕ ‣ ΞϓϦέʔγϣϯؒΛ04$Ͱ࿈ܞ 1SPDFTTJOH PQFO'SBNFXPSLT $JOEFS 1VSF%BUB 4VQFS$PMMJEFS $IVD,
࿈ܞܕ ‣ ΞϓϦέʔγϣϯؒΛ04$ 0QFO4PVOE$POUSPM Ͱ࿈ܞ ‣ ʜࠓճׂѪ ! ‣ 04$ʹ͍ͭͯͷৄࡉԼهࢀর
‣ IUUQPQFOTPVOEDPOUSPMPSH
ͭͷܕ ‣ ࣍ʹɺ࿈ܞܕʹ͍ͭͯ ࿈ܞܕ ֦ுܕ แܕ
֦ுܕ ‣ ։ൃϑϨʔϜϫʔΫͰɺ֦ுػೳͱͯ͠Ի߹ػೳΛ ࣮ݱ͢Δํ๏ ! ‣ ͦΕͧΕͷ։ൃϑϨʔϜϫʔΫʹɺػೳ֦ுͷͨΊͷ Έ͕༻ҙ͞Ε͍ͯΔ ! ‣
1SPDFTTJOHˠ-JCSBSZ ‣ PQFO'SBNFXPLSTˠ"EEPO ‣ $JOEFSˠ$JOEFS#MPDLT
֦ுܕ ‣ ֦ுػೳΛར༻ͯ͠ɺԻڹ߹ػೳΛڧԽ͢Δ ! ‣ ྫɿ ‣ 1SPDFTTJOH .JOJN ‣
1SPDFTTJOH 4POJB ‣ PQFO'SBNFXPSLT PGY6HFO ‣ PQFO'SBNFXPSLT PGY5POJD ! ‣ .JOJNͱPGY5POJDΛ࣮ࡍʹհ
֦ுܕ ‣ NJOJN1SPDFTTJOHͷ-JCSBSZ ‣ ݱࡏɺ1SPDFTTJOHຊମʹಉࠝ͞Ε͍ͯΔ
‣ '.߹1SPDFTTJOH .JOJN import ddf.minim.*; import ddf.minim.ugens.*; Minim minim; AudioOutput
out; Oscil fm; ! void setup(){ size(640, 480, P3D); minim = new Minim( this ); out = minim.getLineOut(); Oscil wave = new Oscil(200, 0.8, Waves.SINE); fm = new Oscil(130, 400, Waves.SINE); fm.patch(wave.frequency); wave.patch(out); } ! void draw(){ } ֦ுܕ
֦ுܕ ‣ PGY5POJD$ Ͱ࣮͞ΕͨԻڹ߹ϥΠϒϥϦ5POJDΛɺ PQFO'SBNFXPSLTͷ"EEPOͱ࣮ͯ͠
‣ '.߹PQFO'SBNFXPSLT PGY5POJD #include "testApp.h" ! void testApp::setup(){ ofSoundStreamSetup(2, 0,
this, 44100, 256, 4); float basePitch = 400; float index = 200; SineWave car = SineWave(); SineWave mod = SineWave(); mod.freq(130); Generator frequency = basePitch + (mod * index); car.freq(frequency); synth.setOutputGen(car); } ! void testApp::update(){ } ! void testApp::draw(){ } ֦ுܕ
ͭͷܕ ‣ ࠷ޙʹแܕʹ͍ͭͯ ࿈ܞܕ ֦ுܕ แܕ
แܕ ‣ ϑϨʔϜϫʔΫʹଞͷԻڹ߹ΤϯδϯΛแ͢Δํ๏ ‣ ҰͭͷΞϓϦέʔγϣϯʹू͞ΕΔͷͰศར ‣ ΦʔϓϯιʔεͰ͋Γɺ͔ͭ༻͢ΔϑϨʔϜϫʔΫͱಉ ͡ݴޠͰ࣮͞Ε͍ͯΔඞཁ͋Γ ! ‣
PQFO'SBNFXPSLT PGY1E ‣ PQFO'SBNFXPSLT PGY4VQFS$PMMJEFS4FSWFS
แܕ ‣ PGY1E1VSF%BUBΛPQFO'SBNFXPSLTʹแ
แܕ ‣ PGY1Eͷ߹ PQFO'SBNFXPSLT 1EͷԻڹ߹Τϯδϯ ࣮ߦ࣌ʹσʔλͱͯ͠ಡࠐ
แܕ ‣ PGY4VQFS$PMMJEFS4FSWFS4VQFS$PMMJEFSΛP'ʹแ
แܕ ‣ PGY4VQFS$PMMJEFSͷ߹ PQFO'SBNFXPSLT 4$ͷԻڹ߹Τϯδϯ 4VQFS$PMMJEFS ָث 4ZOUI ϑΝΠϧॻग़
࣮ߦ࣌ʹσʔλͱͯ͠ಡࠐ 4ZOUIEFG
แܕ ‣ ࠷ऴతʹҰͭͷ࣮ߦϑΝΠϧʹ ‣ ͱΓָ͔͍͕͋ͭ
แܕ ‣ PGY1Eίʔυαϯϓϧ ! ‣ 1Eύον
‣ PGY1Eίʔυαϯϓϧ #include "testApp.h" ! void testApp::setup() { ofSetFrameRate(60); ofSoundStreamSetup(2,
1, this, 44100, 2048, 4); pd.init(2, 1, 44100); Patch patch = pd.openPatch("pd/osc.pd"); pd.start(); } void testApp::update() { } void testApp::draw() { } ! void testApp::exit() { pd.stop(); } ! void testApp::mouseMoved(int x, int y) { float freq = ofMap(y, ofGetHeight(), 0, 100, 8000); pd.sendFloat("freq", freq); } แܕ
‣ PGY1Eίʔυαϯϓϧ void testApp::audioReceived (float * in, int buf, int
n) { pd.audioIn(in, buf, n); } ! void testApp::audioRequested (float * out, int buf, int n) { pd.audioOut(out, buf, n); } แܕ
‣ PGY4VQFS$PMMJEFSίʔυαϯϓϧ #include "testApp.h" ! #include "ofxSuperCollider.h" #include "ofxSuperColliderServer.h" !
ofxSCSynth *synth = NULL; ! void testApp::setup(){ ofxSuperColliderServer::init(); synth = new ofxSCSynth("test_inst"); synth->create(); } ! void testApp::update(){ } ! void testApp::draw(){ } ! void testApp::mouseMoved(int x, int y ){ if(synth){ synth->set("freq", ofMap(y, ofGetHeight(), 0, 100, 8000)); } } แܕ
σϞ ‣ PQFO'SBNFXPSLT PGY4VQFS$PMMJEFS4FSWFS
কདྷͷల
কདྷͷల ‣ ωοτϫʔΫɺ8FCϒϥβͷ׆༻ ‣ Իڹ߹ͷϓϥοτϑΥʔϜͱͯ͠ͷ)5.- ! ‣ αϯυ ‣ 8FC"VEJP"1*
‣ 8FC.*%*"1* ! ‣ άϥϑΟοΫ ‣ $BOWBT ‣ 8FC(-
কདྷͷల ‣ (JCCFS IUUQHJCCFSNBUVDTCFEV
কདྷͷల ‣ $P⒎FF$PMMJEFS IUUQNPIBZPOBPHJUIVCJP
কདྷͷల ‣ ϥΠϒίʔσΟϯά ‣ 5PQ-BQ IUUQUPQMBQPSH
কདྷͷల ‣ ϥΠϒίʔσΟϯά ‣ PGY(-4-4BOEPCPY
͋Γ͕ͱ͏͍͟͝·ͨ͠