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
クリエイティブ・ミュージック・コーディング
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Atsushi Tadokoro
February 24, 2014
Technology
970
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クリエイティブ・ミュージック・コーディング
Atsushi Tadokoro
February 24, 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
460
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
720
bmaw14 第2回: Touchéセンサーを使う1 Touchéセンサーを作成する
tado
0
2.2k
Other Decks in Technology
See All in Technology
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1.2k
ブロックチェーン / Blockchain
ks91
PRO
0
110
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
370
Unlocking the Apps
pimterry
0
230
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
200
Rancherの紹介&Update情報(RancherJP Online Meetup #09)
yoshiyuki_kono
0
110
Building applications in the Gemini API family.
line_developers_tw
PRO
0
1.6k
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.6k
コードレビューを制するチームがソフトウェアデリバリーのフローを制す / Beyond Code Review: Distributing Its Responsibilities Across the SDLC
mtx2s
4
1.2k
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
160
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
140
Featured
See All Featured
Leo the Paperboy
mayatellez
7
1.8k
Skip the Path - Find Your Career Trail
mkilby
1
140
The Language of Interfaces
destraynor
162
27k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
From π to Pie charts
rasagy
0
200
Tell your own story through comics
letsgokoyo
1
950
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
150
Building AI with AI
inesmontani
PRO
1
1.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
420
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
30 Presentation Tips
portentint
PRO
1
320
Transcript
$SFBUJWF.VTJD$PEJOH ΦʔσΟΦɾϏδϡΞϧ࡞ͷͨΊͷ ΦʔϓϯιʔεͳιϑτΤΞɾϑϨʔϜϫʔΫͷݱঢ়ͱల ݄ ୈճ+44"ݚڀձ ాॴ३ IUUQZPQQBPSH
ൃද༰ ‣ ΫϦΤΠςΟϒɾίʔσΟϯά ίϯϐϡʔλԻָ ! ‣ ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ૯শ͞Ε͍ͯΔ։ൃ ϑϨʔϜϫʔΫΛίϯϐϡʔλԻָ࡞ɺΦʔσΟΦϏδϡ Ξϧ࡞ͷ࡞ʹ༻͍Δख๏ͷݱঢ়Λհ !
‣ কདྷͷల ! ‣ ؆୯ͳσϞ
ΫϦΤΠςΟϒ
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ίʔσΟϯά ϓϩάϥϛϯά ‣ ͦΕࣗମ͕ΫϦΤΠςΟϒͳ׆ಈ ! ‣ ͰʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱԿ͔
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ਖ਼ࣜͳఆٛͳ͍ͷ͕ݱঢ় ! ‣ ͜͜ͰɺҎԼͷΑ͏ʹߟ͍͑ͨ ‣ ʮදݱʯ %%άϥϑΟοΫɺө૾ɺαϯυ ʹؔ͢Δ
ػೳʹಛԽͨ͠ɺ։ൃϑϨʔϜϫʔΫ
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ 1VSF%BUBɺ4VQFS$PMMJEFSɺ$NJYɺ$IVD,ͳͲͷԻڹ߹ ͷͨΊͷ։ൃڥɺΫϦΤΠςΟϒɾίʔσΟϯά ‣ ˠ͓ͦΒ͘:&4 ! ‣ ͨͩ͠ɺࠓճΑΓ൚༻తͳ։ൃϑϨʔϜϫʔΫʹ͍ͭͯ
ݴٴ͍͖͍ͯͨ͠
ʮΫϦΤΠςΟϒɾίʔσΟϯάʯͱ ‣ ྫ͑ɺ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 304 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 8 11 Three.js 6
‣ ࠓճରͱ͢Δͷ͜ͷ͋ͨΓ Φʔϓϯιʔεͷͷ ։ൃϑϨʔϜϫʔΫ ݅ 1 openFrameworks 304 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 8 11 Three.js 6 ओཁͳ։ൃϑϨʔϜϫʔΫ
ΫϦΤΠςΟϒίʔσΟϯά αϯυ ‣ 1SPDFTTJOHɺPQFO'SBNFXPSLTɺ$JOEFSɺWWWWͳͲͷϑ ϨʔϜϫʔΫΛԻڹ߹ʹ͍͍ͨ ! ‣ ݱঢ়ͰϑϨʔϜϫʔΫ୯ମͰɺԻڹ߹ͷػೳ͕ශऑ ! ‣
ΫϦΤΠςΟϒίʔσΟϯάͷϑϨʔϜϫʔΫͰɺԻڹ࡞ ΦʔσΟΦɾϏδϡΞϧ࡞Λ੍࡞͢Δख๏Λ֓؍
ͭͷܕ
ͭͷܕ ‣ ͓͓·͔ʹྨ ࿈ܞܕ ֦ுܕ แܕ
࿈ܞܕ ‣ ΞϓϦέʔγϣϯؒΛ04$Ͱ࿈ܞ 1SPDFTTJOH PQFO'SBNFXPSLT $JOEFS 1VSF%BUB 4VQFS$PMMJEFS $IVD,
࿈ܞܕ ‣ ΞϓϦέʔγϣϯؒΛ04$Ͱ࿈ܞ ‣ ʜࠓճׂѪ
֦ுܕ ‣ ։ൃϑϨʔϜϫʔΫͰɺ֦ுػೳͱͯ͠Ի߹ػೳΛ ࣮ݱ͢Δํ๏ ! ‣ ͦΕͧΕͷ։ൃϑϨʔϜϫʔΫʹɺػೳ֦ுͷͨΊͷ Έ͕༻ҙ͞Ε͍ͯΔ ! ‣
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