Upload
tom-chen
View
112
Download
0
Embed Size (px)
DESCRIPTION
Live Performance Effects, short talk @ Taipei.py August 1st, 2014. Using python tornado websockets, pygame.midi and front end technologies.
Citation preview
WHO AM I?
• Full Stack Engineer • Piano / Vocal •有點腦殘
其實事情是這樣的...
Full Stack + Music = !!!!!!
Back End Programming / PythonFront End Technologies (javascript, CSS, HTML…)
Piano Playing
其實...
也可以找⼈人⽤用⼈人⼯工控制啦 XD
但這樣就不屌了
當然
可以⽤用偵測的⽅方式做同步化也很棒!!
BUT HOW?
#1 偵測
透過 MIDI, 接到數位訊號
偵測特定和弦 / ⾳音D#3, A4
G3, C5, D5, G5
D#3, G4, C5, D5
偵測拍⼦子根據每個⼩小節都只會出現的⾳音,
⽤用 timedelta 算出⼀一個⼩小節有多少 milliseconds
偵測結束紀錄最後⼀一次 MIDI signal 的 timestamp,
並在 while loop 偵測每次 timeout 沒有回應的時間是否過⻑⾧長
每⼀一⾸首歌彈奏的⽅方式都不太相同 依據彈奏特性找出 Pattern 來做偵測
#2 傳輸
後端傳到前端⽤用 tornado 的 websocket push signal 到 browser
⾃自製 protocol (WebSocket)*notes 按的⾳音符 !signal 事件訊號
@timestamp 時間相關訊號
*G3, F5 !clock
!RESET !silence @1.1.1 @2.3.4
前端傳到後端對 server 做⼀一般的 POST or GET
Tornado MIDI Listener
MIDI ControllerWeb Socket
HTTP
Version 1 (PyCon 2014 APAC)
Tornado MIDI Listener
MIDI ControllerWeb Socket
Threading
Version 2 (Taipei.py meetup)
Tornado MIDI Listener
MIDI Controller
Web Socket
Threading
Version 2 (Taipei.py meetup)
AdminWeb Socket
如果你們喜歡我們的表演
https://www.facebook.com/21band.tw
Back to the 21 9/27, 10/18 20:00 @ A house http://www.walkieticket.com/product.aspx?P1=0000003240
Any Questions?
Back to the 21 9/27, 10/18 20:00 @ A house http://www.walkieticket.com/product.aspx?P1=0000003240