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
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.6k
TumblrでWebサイトを作成
tado
0
730
bmaw14 第2回: Touchéセンサーを使う1 Touchéセンサーを作成する
tado
0
2.3k
Other Decks in Technology
See All in Technology
制約理論(ToC)入門 2026版
recruitengineers
PRO
8
2.2k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
200
【CEDEC2026】グラフィックスエンジニアのためのニューラルシェーディング入門
cygames
PRO
0
140
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
750
強化学習「理論」入門
enakai00
3
3.6k
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
580
関東Kaggler会発表資料
takoi
1
220
MIRU 2026 チュートリアル
keisuke198619
0
910
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.6k
SmartHR Engineering Team Deck
smarthr
1
2.1k
ラジオの科学
frievea
0
300
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
140
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
Unsuck your backbone
ammeep
672
58k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
270
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Faster Mobile Websites
deanohume
310
32k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
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
͋Γ͕ͱ͏͍͟͝·ͨ͠