關於串列MIDI傳輸....

討論MP3、WAV、MIDI、WMA甚至其他數位音訊的播放、製作、轉換等。

版主: DearHoney

回覆文章
訪客

文章 訪客 »

弟對串列MIDI傳輸甚感好奇,由於之前發生一些 MIDI Buffer Full的問題,<br>以及對同樣是串列傳輸,為何Serial可以控制多個Part,而傳統 MIDI Cable<br>就不行,而拼命地挖其中奧妙... 我們可以配合 DOS 的 DEBUG , 試著在其<br>中收發 MIDI 訊息.. 能夠具體,如實地親近音源機.

我們假設音源機接在COM1 3F8 ,若是COM2, <br>請把下面3f? 換成2f?

首先,必須進入純 DOS 模式 , 執行 DEBUG , 然後...

1.由於標準 MIDI串列是 31250BPS..RS-232沒有這速度, <br> 所以大家都是選擇最接近,比31250稍快的38400 .<br> 所以我們要把Serial 初化成 38400, N,8,1 才能為音源機<br> 所接受. 所以,在Debug的 - 提示號之下, 打入下列指令後, 壓 Enter執行 <br> // 後是說明文字,看看就行了...

o3fb 80 // 開始要設定RS-232的速度了<br> o3f8 03 // 給115200的用的除數, 低位元組 <br> o3f9 00 // 給115200的用的除數, 高位元組 <br> o3fb 03 // 告知速率設好了,並且設成N 8 1<br> o3fc 03 // 把電腦端 RTS,DSR設成1<br> o3f9 00 // 關掉RS232中斷訊號,避免干擾實驗

2.RS232已經設好了,現在嘿嘿... 開始送MIDI Message吧 , 另外 , 也可以在不被<br> Midi Sequencer 干擾的情況下,送出任何可能的Midi 碼 , ~~~ 接招吧...

o3f8 c0 // 送出 Program change 換音色 <br> o3f8 7d // 直升機 , 以下,都是MIDI碼...

o3f8 90 // Note On<br> o3f8 40<br> o3f8 7f <br> <br> o3f8 40 // Running status , 可以省掉 90<br> o3f8 70 // 出現兩架飛狼~~~ (甚至用 7f ,也能聽出來)<br> <br> o3f8 40 (若是送 80 40 70 , 還是會把 7f 的音關掉)<br> o3f8 00 // V:7f Note off

o3f8 40<br> o3f8 00 // V:70 Note off

接下來, 改變輸出的Part 對象 !!!<br> <br> o3f8 f5 <br> o3f8 02 // 改成Part B ( 01~ nn ) Part A - nn<br> <br> o3f8 c0<br> o3f8 03 // 看Part B , B01, 是不是變成 Honky-tonk <br> <br> o3f8 99 // Drumset <br> o3f8 4e // Op. Cuica<br> o3f8 7f // 喔~~~~ 的一聲

<br>// 要接收MIDI , 十分容易 ... 先把音源機 , 設成 Dump 模式 , 然後,趕快...<br> i3f8 // Enter 之後直接壓 F3 ,會自己跑出 i3f8 <br> i3f8<br> i3f8<br> i3f8<br> i3f8 // 看到沒? , 會看到 F0, F7 什麼的....

要完整的接收,首先檢查 3fd 的 bit 0 是否為1, 若是 , 表示 3f8 有東西進來, <br>若不及時讀 , 等到音源機送下一個Byte 進來時, 就會造成 Overrun 了..<br>可以檢查 3fd 的 bit 1 , 若是 1 , 表示已經有 Overrun發生了.

若要正式地送MIDI 碼, 要檢查 3fd 的 bit 5 是否為 1 , 若為1 , 表示可以送了 , <br>若是音源機有支援CTS/RTS , 則還要再檢查 3fe bit 4 ,若為1(CTS ON), 表示真<br>得可以送了... 有些線並沒有把音源機跟RS-232 CTS/RTS 兩端對接起來, <br>所以最好的送 MIDI 碼方式 , 儘量降成跟 31250 BPS 一樣.....

有以上概念之後 , 我們就可以寫 "堪用" , 完全和乎自已需求的<br>Player , 還有支援 Velocity note no /off 的 Sequencer..... 什麼 ??? 再要一萬年....

那 V Note On , 到了第3個時, 就會把第一個音關掉 了... 一不過可以<br>用Sysex 調成沒有限制...不過最後, 好像還有一定的限制...

最後弟試圖用 MIDI OUT , 送出 f5 xx , 以期能用一條 Midi cable 真正控制多Part group ,

<br>這是最終的目地.....音源機不理我.......失敗了 :=(
訪客

文章 訪客 »

挖哩勒你實在很強.....
訪客

文章 訪客 »

怕滑樓梯兄 <br> 我建議你可以去DIY音源機或音效卡,Sysex我都看到暈倒了,你實在是太太太太太<font size="6">兇</font>了,晚生服了你了。
訪客

文章 訪客 »

我想怕滑樓梯兄是不是在做 MIDI 硬體設計的人,怎麼對 MIDI Message 這麼熟 <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/tongue.gif" width=15 height=15> <br> 之前還提過 Debug Mode <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/tongue.gif" width=15 height=15> <br> 如果您知道 SC 系列的 Debug Mode 怎麼叫出來,可以告訴給小弟知道嗎?我到目前只找到 MU100 和 NS5R,X5DR 的 Debug Mode。
訪客

文章 訪客 »

喂你們~~~~反應過度啦...

弟對這些 , 也是不太懂的..更非硬體人員~~~ <br> 看了那個改裝 SC-88 PRO Digital Out 那個 ,他 <br> 們才是高招....

那是弟追了 Roland Serial driver 幾個晚上 , 再 <br> 臨時找了講 RS-232 的書 ,臨時拼湊的 , 因為 <br> 一來很有興趣 , 二來極欲了解真實的運作情形...

MIDI Message , Sysex 那個... 手冊後面有講解.. <br> 然後再做些實驗 , 看看結果是不是符合...

Debug mode 那個 , 是弟無意中送了錯誤的Sysex , <br> SC就跳出Debug Yes / No 的畫面了... 還要找出 <br> 主動叫出來的方法 ...

LIBIDO兄 , 請問 您是怎麼找出MU100等的Debug Mode ??
訪客

文章 訪客 »

To 怕滑樓梯兄:

>LIBIDO兄 , 請問 您是怎麼找出MU100等的Debug Mode ?? <br> 我...我不是自己找的... ^^b <br> 我是從一些網站上看來的,我也不知道他們是怎麼試出來的... ^^b <br> YAMAHA 的機器從很早開始就會設計 Debug Mode,像 1991 年的 SY99,那麼複雜的組合鍵才按得出來,我真的不知道到底是怎麼試出來的... <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/tongue.gif" width=15 height=15> <br> SC 的我就從來沒看過有人提過了... 所以我一直以為 Roland 的工程師不喜歡搞這種小把戲 <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/tongue.gif" width=15 height=15>
訪客

文章 訪客 »

TO LIBIDO: <br> SC那個,當時送了一個錯誤的Sysex , 就跑出Debug <br> mode ...可惜沒有記下當時後的Sysex.

但是當時 , 音源機變得很怪說... <br> 收到GS RESET , 或相關的RESET Sysex , 那個 <br> Sound Map 不會自己跑回去. <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/mad.gif" width=15 height=15>

還有 EFX 模式, 變成1次只能開一個 Channel , 把 <br> 第2 Channel EFX On , 第1Channel 就Off . <br> 而且 EFX 是在THRU 喔.. <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/mad.gif" width=15 height=15>

弟當時以為Roland 音源機 , 越做越回去了... <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/frown.gif" width=15 height=15>

後來, 執行GSAE 之後 , 一切就正常了.. <br> 然後, 故意送錯錯的Sysex , 奇怪 ? 不理我了...<img src="http://www.dearhoney.idv.tw/UBB/NonCGI/ ... nfused.gif" width=15 height=22>
訪客

文章 訪客 »

To 怕滑樓梯兄:

沒記下來真的好可惜,搞不好可以挖一些 Roland 的秘密呢 <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/tongue.gif" width=15 height=15>

>收到GS RESET , 或相關的RESET Sysex , 那個 <br> >Sound Map 不會自己跑回去. <br> 嗯,本來送 GS RESET 是無法 RESET Sound Map 的,一定要 88 RESET 才行。現在 8850 改成 GS RESET 也可以 RESET Sound Map 了嗎? <br> 還有聽人家說 88 RESET 的 Mode Set 現在好像是無效了的樣子?

EFX 只能 apply 一個 Part,這樣不是和 MU100 一樣了嗎,真的是越做越回去了 <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/smile.gif" width=15 height=15>) <br> 請問 8850 的 EFX 還是和 88Pro 一樣,如果兩個 Part 都 On,則聲音是 Mix 在一起的,無法個別調整 Reverb Send Level 和 Chorus Send Level 的大小嗎?

>後來, 執行GSAE 之後 , 一切就正常了.. <br> >然後, 故意送錯錯的Sysex , 奇怪 ? 不理我了... <br> 可能那時候您的 8850 秀斗了 <img src="http://www.dearhoney.idv.tw/UBB/NonCGI/icons/tongue.gif" width=15 height=15>
回覆文章