# [Session 12] Touch Designer 進階 - 期末專題與表演實務 生成式演算互動藝術實作 (13:20-16:20) - 陽明交大 IAA 應用藝術研究所 | 教師:[吳哲宇](https://www.instagram.com/cheyuwu345/) [課堂資料目錄](https://drive.google.com/drive/u/3/folders/14EyKA1-UPyZn3iTJCQ2opIASW8K3SsOs) ## Rundown * 看大家的期末規劃 * 分享一些最近的作品 * TD 進階教學 ## 直播留存 ## 課堂檔案 ## 課程目標 * Perform Mode * 控制台 * Container / Children * Table * 外部組件Color Picket * 建構自己常用的控制台組合 * Audio: Music Lock to timeline * 表演訊號控制 * COMP: Animation * Beat * WEB render w/ p5.js * 共用音訊組件 ## 參考資料 https://www.elekktronaut.com/tutorials/music-videos-in-td https://www.elekktronaut.com/tutorials/perform-mode-projector-setup Building a Step Sequencer for VSTs in TouchDesigner https://www.youtube.com/watch?v=HnAy3y9_SHM Color Picker https://www.patreon.com/posts/colorpicker-for-47031212 Water Color https://www.youtube.com/watch?v=0nI8V7XZ7yk&t=659s Pixel Sorting https://www.youtube.com/watch?v=xasLIEw23zY trigger web render global variable ![image](https://hackmd.io/_uploads/Sk2uc7_B0.png) ```python! # me - this DAT # # channel - the Channel object which has changed # sampleIndex - the index of the changed sample # val - the numeric value of the changed sample # prev - the previous sample value # # Make sure the corresponding toggle is enabled in the CHOP Execute DAT. global tx global ty def onOffToOn(channel, sampleIndex, val, prev): return def whileOn(channel, sampleIndex, val, prev): return def onOnToOff(channel, sampleIndex, val, prev): return def whileOff(channel, sampleIndex, val, prev): return def onValueChange(channel, sampleIndex, val, prev): global tx, ty #print(channel[0]) # print(f"Channel: {channel.name}, Value: {val}") if channel.name == "tx": tx=val elif channel.name == "ty": ty=val op('webrender1').interactMouse(tx+0.5,ty+0.5) return ``` 文字當作材質陣列 ![image](https://hackmd.io/_uploads/SJBsTQuS0.png)