同樣是 MIDI out 到 device,Windows 跟 Mac 卻有差別…
-----------------------------
差別一:
例如:一個 Note 「09 90 01 7f」,在 Windows 作輸出時,透過 Bus Hound (監視 USB 通訊的軟體) 來看是底下這樣…
Device Length Phase Data Description Delta Cmd.Phase.Ofs(rep)
------ -------- ----- ----------- ---------------- ----- ------------------
27.4 64 OUT 09 90 01 7f .... 5.1sc 28.1.0
00 00 00 00 .... 28.1.4
00 00 00 00 .... 28.1.8
00 00 00 00 .... 28.1.12
00 00 00 00 .... 28.1.16
00 00 00 00 .... 28.1.20
00 00 00 00 .... 28.1.24
00 00 00 00 .... 28.1.28
00 00 00 00 .... 28.1.32
00 00 00 00 .... 28.1.36
00 00 00 00 .... 28.1.40
00 00 00 00 .... 28.1.44
00 00 00 00 .... 28.1.48
00 00 00 00 .... 28.1.52
00 00 00 00 .... 28.1.56
00 00 00 00 .... 28.1.60
Windows 一次「至少」就傳了 64 bytes 的資料給 device ,後面無用的資料都補 0。
但是 Mac 卻只有傳了…「09 90 01 7f」這 4 個 bytes,並且沒有 0 作結尾。
-----------------------------
差別二:
很多 MIDI Code 要傳輸時,Windows 都是遵照上述的原則,一定會傳出 64 bytes (或許有別的 MIDI API 可以作不一樣長度的輸出,但以音控軟體 Traktor 而言是如此)
但是 Mac 在這個情況下有可能會傳出 4*N 個 bytes,也就是 4、8、12、16…。
------------------------------------
於是在韌體的撰寫上就要特別注意這二個不同的差別來作 MIDI Code 的解析,才能同時相容於 Windows 及 Mac!!!
看起來 Mac 的效能會比較好。
訂閱:
張貼留言 (Atom)
更高效處理 micro second 的方式
更高效處理 micro second 的方式… 以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) { HAL_IncTick(); sys_tick += (SysTi...
-
rails blog -d mysql 建立一個名為 blog 的網站app,使用 mysql cd blog 進去 gen 好的網站 config/database.yml 編輯資料庫設定 rake db:create 自動建立資料庫 ruby script/generate ...
-
https://github.com/ljean/modbus-tk/ install pip… sudo apt-get install python-pip install... download modbus_tk-x.x.x.tar.gz tar zxvf...
-
DMX protocol… # 1:break + 1:start + 512:channel python: import serial class DMX512: def __init__(self, port): self.seria...
沒有留言:
張貼留言