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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Atsushi Tadokoro
February 24, 2014
Technology
980
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
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
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
MIRU 2026 チュートリアル
keisuke198619
0
910
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
120
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.5k
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
750
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
680
SmartHR Engineering Team Deck
smarthr
1
2.1k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
250
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
800
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
9
2.7k
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
110
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.2k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
490
エンジニアに許された特別な時間の終わり
watany
108
250k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Marketing to machines
jonoalderson
1
5.7k
Claude Code のすすめ
schroneko
67
230k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Writing Fast Ruby
sferik
630
63k
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