產品說明0
描述:
此MIDI板設計可直接插在arduino上使用。支持MIDI通信協議,你可以控制合成器和其它音樂設備。MIDI協議和標準異步串行接口有很多類似點,你可以使用arduino控制器的UART口來收發MIDI數據。
MIDI板提供MIDI-IN和MIDI-OUT端口,以及MIDI-THRU端口。當MIDI板子直接插在arduino上時,MIDI-IN/THRU連接的是arduino的硬件串口RX腳,MIDI-OUT接的是TX。MIDI-IN端口是光隔離的,能防止接地迴路。板載的撥打開關是為了在下載arduino代碼時不用取下MIDI板子,下載代碼時將撥打開關打到OFF(即斷開與arduino RX的連接),下載好後打到ON。
板子尺寸:57.4 x 53.1mm
MIDI設備一般分為兩大類別:控制器(即產生MIDI信號的設備)和合成器(包括採樣,測序等)。後者得到MIDI數據後使變成聲音或產生光或者其它效果。
MIDI是串行協議,每秒可傳輸31250位。Arduino的內置串行端口都可以以這個速率發送。
MIDI字節分為兩個類型:命令字節和數據字節。
- 命令字節一般是128或更大,或者是0x80~0xFF的十六進制形式。
- 數字字節一般小於127,0x00~0x7F。具體請查看MIDI協議。
關於MIDI座子:
下面是MIDI座子與arduino的簡單連接,代碼測試發送MIDI數據。
/* MIDI note player This sketch shows how to use the serial transmit pin (pin 1) to send MIDI note data. If this circuit is connected to a MIDI synth, it will play the notes F#-0 (0x1E) to F#-5 (0x5A) in sequence. The circuit: * digital in 1 connected to MIDI jack pin 5 * MIDI jack pin 2 connected to ground * MIDI jack pin 4 connected to +5V through 220-ohm resistor Attach a MIDI cable to the jack, then to a MIDI synth, and play music. */ | void setup ( ) { // Set MIDI baud rate: Serial . begin ( 31250 ) ; } void loop ( ) { // play notes from F#-0 (0x1E) to F#- 5 (0x5A): for ( int note = 0x1E ; note < 0x5A ; note ++ ) { //Note on channel 1 (0x90), some note value (note), middle velocity (0x45): noteOn ( 0x90 , note , 0x45 ) ; delay ( 100 ) ; //Note on channel 1 (0x90), some note value (note), silent velocity (0x00): noteOn ( 0x90 , note , 0x00 ) ; delay ( 100 ) ; } } // plays a MIDI note. Doesn't check to see that // cmd is greater than 127, or that data values are less than 127: void noteOn ( int cmd , int pitch , int velocity ) { Serial . write ( cmd ) ; Serial . write ( pitch ) ; Serial . write ( velocity ) ; } | 參考學習MIDI鏈接: MIDI Protocol Guides - http://www.tigoe.net/pcomp/code/communication/midi/ I ntroduction to MIDI - http://itp.nyu.edu/physcomp/Labs/MIDIOutput MIDI協議 - http://hinton-instruments.co.uk/reference/midi/protocol/index.htm 發貨清單: | |