Raspberry Pi OSA MIDI Board
Isetha i-Raspberry Pi ye-MIDI
Lo mhlahlandlela uzokhombisa ukuthi ungayithatha kanjani i-Raspberry Pi esanda kufakwa futhi isebenze njengedivayisi ye-MIDI I/O etholakala nge-OS. Izophinde inikeze ama-exampngokusebenzisa imitapo yolwazi ehlukahlukene yePython ukuze uthole idatha ye-MIDI ingene futhi iphume endaweni yokuhlela. IZIQINISEKISO - Sep 11, 2021.: Lo mhlahlandlela ubuyekeziwe ukuze kulungiswe ezinye izinkinga ngenguqulo yakamuva ye-Raspberry Pi OS, ungadawuniloda isithombe esigcwele esinemibhalo efakwe kuqala futhi simiswe ngokugcwele lapha.
Esikudingayo
- I-Raspberry Pi A+/B+/2/3B/3B+/4B
- Ibhodi le-MIDI le-Raspberry Pi
- Ikhadi le-MicroSD•Isethi yezikulufi zenayiloni ezi-4 ze-M2.5
- Isethi engu-4 Inayiloni M2.5*11mm Ukuma Kwabesifazane Kuya Kwabesifazane
- Isethi engu-4 Inayiloni M2.5*5mm Ukuma Kwesilisa Kuya Kwabesifazane
Umhlangano
Sebenzisa izikulufu zenayiloni nama-standoffs ukuze uhlanganise i-Raspberry Pi kanye nebhodi le-MIDI, njengoba kukhonjisiwe esithombeni esingezansi:
Ukusetha kokuqala
Sihlole wonke ama-exampLes kulo mbhalo ku-Pi 4B usebenzisa i-Rasperry Pi OS, inguqulo kaMeyi 2020). Okokuqala, kuyadingeka ukusebenzisa isikrini nekhibhodi ukusetha i-Pi up. Ngemuva kwalokho, sebenzisa indlela oyikhethayo ukuze ufinyelele i-OS ye-Pi. Zonke izinyathelo ziyisibopho ngaphandle uma kushiwo ngenye indlela
Ukufakwa
Buyekeza/Thuthukisa
Yenza isibuyekezo futhi uthuthukise njengoba kuchazwe lapha: https://www.raspberrypi.org/documentation/raspbian/updating.md
Ukucushwa Kwenethiwekhi (Ongakukhetha)
Uma u-SSH'ing usuka komunye umshini uye ku-Pi, kuyafaneleka ukunikeza i-Pi ikheli le-IP elingashintshi: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update Kungumqondo omuhle futhi ukwengeza izilungiselelo zokuphepha kwenethiwekhi ku-Pi ukuze izoxhumeka ngokuzenzakalelayo kunethiwekhi: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
Setha i-Pi Up njengegajethi ye-USB OTG
Vula itheminali ku-Pi bese ulandela le nqubo:
- Setha umshayeli we-USB ku-dwc2
echo “dtoverlay=dwc2” | I-sudo tee -a /boot/config.txt - Nika amandla umshayeli we-dwc2
echo "dwc2" | sudo tee -a /etc/modules - Nika amandla i-lib composite driver
echo “lib composite” | sudo tee -a /etc/modules - Nika amandla igajethi ye-MIDI
echo “g_midi” | sudo tee -a /etc/modules
Dala iskripthi sokumisa:
- Dala i- file
sudo touch /usr/bin/midi_over_usb - Yenze iphumelele
I-sudo chmod +x /usr/bin/midi_over_usb - Ihlele nge-Nano
sudo nano /usr/bin/midi_over_usb
Namathisela okulandelayo ku- file, ukwenza ukuhlela kumkhiqizo neyunithi yezinhlamvu zomkhiqizi njengoba kudingeka. cd /sys/kernel/config/usb_gadget/ mkdir -p midi_over_usb cd midi_over_usb echo 0x1d6b > idVendor # Linux Foundation echo 0x0104 > idProduct # Multifunction Composite Gadget echo 0x0100 -echo 1.0.0x0 # bcd0200 USB 2x0 bcd 409 USB 9876543210x0 bcd 409 USB 0x409 bcd 0 USB . 409xXNUMX echo “fedcbaXNUMX” > izintambo/XNUMXxXNUMX/serialnumber echo “OSA Electronics” > amayunithi ezinhlamvu/XNUMXxXNUMX/umkhiqizi echo “Idivayisi ye-MIDI USB” > izintambo/XNUMXxXNUMX/product ls /sys/class/it Nas file (Ctrl+X, Y, buyisela). Engeza ikholi kusikripthi ku-rc.local, ukuze siqalise kukho konke ukuqalisa. sudo nano /etc/rc.local Faka umugqa olandelayo ngaphambi kokuthi "phuma0" /usr/bin/midi_over_usb Phuma ku-Nano bese ulondoloza file bese uqala kabusha i-Pi. sudo qala kabusha Faka ohlwini lwamachweba we-MIDI atholakalayo. amidi -l Uma i-MIDI icushwe kahle, umyalo wokugcina kufanele ukhiphe into efana nalena: Dir Device Name IO hw:0,0 f_midi IO hw:0,0 f_midi
Faka i-Python Libraries
Lesi sigaba sizochaza indlela yokufaka imitapo yolwazi esiyithandayo ye-Python 2.x.
MIDO
I-Mido ilabhulali okulula ukuyisebenzisela ukuphatha idatha ye-MIDI. Incike ku-rt-midi backend, umtapo wolwazi ozwakalayo, kanye noJack. Faka imiyalo elandelayo ngokulandelana: Okukhiphayo kufanele kubonise imbobo eyodwa ethi 'Midi Through' kanye nembobo eyodwa eyengeziwe. Uma kunjalo, konke kuhamba kahle. *Qaphela: ku-Mido, igama lembobo yilo lonke iyunithi yezinhlamvu efakwe kungcaphuno eyodwa, kodwa kungenzeka ukunciphisa igama kuyunithi yezinhlamvu ngaphambi kwekholoni. Kulo mshini, iyunithi yezinhlamvu ithi: 'f_midi:f_midi 16:0'. Okwesiboneloample, le miyalo emibili iyalingana
I-PIGPIO
Sisebenzisa umtapo wezincwadi we-pigpio ukuze sixhumane nezikhonkwane ze-GPIO. Sithole ukuthi lo mtapo uzinzile futhi uvumelana nezimo kunendlela evamile yokusebenzelana nezingxenyekazi zekhompuyutha ze-Pi (RPi.GPIO). Uma ufuna ukusebenzisa omunye umtapo wolwazi, hlela ikhodi ngokufanele. Ukuze ufake ilabhulali ye-pigpio, landela imiyalo lapha: http://abyz.me.uk/rpi/pigpio/download.html Ngaphambi kokusebenzisa yonke i-exampngaphansi, kufanele uqale isevisi ye-pigpio uma ingenziwanga:
IPython ExampLes
I-exampi-les iphinde isebenzise umsebenzi we-interp we-numpy library njengendlela elula yokwenza imephu phakathi kobubanzi obubili. Sisebenzise i-Reaper ukuze sithumele futhi samukele idatha. I-Pi ilungiselelwe njengokuphuma kwe-Hardware MIDI kumenyu yezintandokazi ze-Reaper.
Lawula i-GPIO nge-Note Data (isbample_1_key_press.py) Lesi siboneloample ikhombisa ukuthi:
- Lalela imicimbi emi-3 ethize yokuvula neyokuvala usebenzisa isimo esilula
- Bamba okuhlukile okuvela lapho idatha engeyona inothi ithunyelwa ku-Pi (isb. idatha yokuthutha isuka kusilandeleli)
- Mepha isivinini senothi ku-PWM yephinikhodi yokukhipha
Ngenisa imitapo yolwazi efanele, dala into engu-pi kumtapo wezincwadi we-pigpio, bese uvule imbobo yokuphumayo: I-try/block block iwukubamba amaphutha avela kwezinye izinhlobo zedatha ye-MIDI ethunyelwayo (isb. izilawuli zokuthutha njll.). kuyilapho kuyiqiniso: zama: #Lokhu kuhlunga yonke idatha engeyona inothi yomlayezo ku-port.iter_pending(): # uma kukhona umlayezo osalindile if(msg.type == 'note_on'): # uma kungumlayezo othi Inothi uphumile = interp(msg.velocity, [0,127],[0,255]) # isivinini sesikali ukusuka ku-0-127 kuya ku-0-255 #hlunga idatha ngenombolo yenothi uma(msg.note == 53): pi1.set_PWM_dutycycle(2, ngaphandle ) elif(msg.note == 55): pi1.set_PWM_dutycycle(3, out) elif(msg.note == 57): pi1.set_PWM_dutycycle(4, out) enye: # uma umlayezo ungekho Qaphela (isb. Qaphela Cishiwe) uma(msg.note == 53): pi1.set_PWM_dutycycle(2, 0) elif(msg.note == 55): pi1.set_PWM_dutycycle(3, 0) elif(msg.note == 57): pi1. set_PWM_dutycycle(4, 0) ngaphandle kwe-AttributeError njengephutha: phrinta(“Iphutha alikho”) dlula
Lawula i-GPIO ngamasondo e-Mod nama-Pitch (isibample_2_wheels.py)
Lesi example ikhombisa ukuthi:
- Lalela i-Pitch ne-Mod Data futhi uzihlunge ngohlobo
- Imephu idatha ku-PWM yephinikhodi yokukhipha
Lesi exampi-le ifana nokungenhla, ngalezi zinhlobo zemilayezo:
- Isondo le-Pitch wuhlobo lwe-pitchwheel enenani elingu-msg.pitch
- Isondo le-Mod liwuhlobo lwesilawuli esiqhubekayo control_change esinepharamitha yokulawula ye-msg.control = 1 (inombolo ye-CC) kanye nenani le-msg.value
Okukhipha Idatha ye-MIDI evela kumcimbi we-GPIO (gpio_event.py)
Lesi example ikhombisa ukuthi:
- Sebenzisa ukuphazamisa ukuze uthole ukucindezelwa kwenkinobho
- Thumela idatha ye-MIDI ukusuka ku-Pi uye kwenye idivayisi
Vula imbobo yokukhipha, dala imilayezo emibili bese usetha iphinikhodi ye-GPIO njengokufaka. Lesi example ithatha ukuthi kukhona inkinobho eboshelwe ku-pin 21, ukuze iphinikhodi iye PHEZULU uma inkinobho icindezelwa: Okulandelayo yimisebenzi yokushayela emuva ebizwa lapho inkinobho icindezelwa noma ikhululwa. Umsebenzi we-output ports send() uvele uthumele umlayezo ngaphandle kwe-port: Abalaleli be-callback bagijima ngemuva futhi abadingi ukunakwa okwengeziwe:
Dlala kabusha i-MIDI File
Lesi example ikhombisa ukuthi:
- Layisha i-MIDI file endaweni yokuhlela
- Dlala kabusha i file .
Lesi exampLes icabanga ukuthi une-MIDI file ebizwa nge-midi_file.mid kumkhombandlela ofanayo nesikripthi sakho se-python: ngenisa i-mido kusuka ku-mido import MidiFile kusuka ku-mido ngenisa i-MetaMessage port = mido.open_output('f_midi') mid = MidiFile('midi_file.mid') kuyilapho Iqiniso: ngomlayezo ku-MidiFile('midi_file.mid').dlala(): port.send(msg)
Amadokhumenti / Izinsiza
![]() |
Raspberry Pi OSA MIDI Board [pdf] Imaniwali yosebenzisayo I-OSA MIDI, Ibhodi |