Raspberry Pi OSA MIDI dēlis

Raspberry Pi iestatīšana priekš MIDI
Šajā rokasgrāmatā ir parādīts, kā uzņemt tikko instalētu Raspberry Pi un darbināt to kā OS atklājamu MIDI I/O ierīci. Tas nodrošinās arī dažus exampdažādu Python bibliotēku izmantošana, lai iegūtu MIDI datus programmēšanas vidē un izņemtu no tās. ATJAUNINĀJUMS — 11. gada 2021. septembris. Šī rokasgrāmata ir atjaunināta, lai novērstu dažas problēmas ar jaunāko Raspberry Pi OS versiju. Šeit varat arī lejupielādēt pilnu attēlu ar iepriekš instalētiem un pilnībā konfigurētiem skriptiem.
Kas mums vajadzīgs
- Raspberry Pi A+/B+/2/3B/3B+/4B
- Raspberry Pi MIDI dēlis
- MicroSD karte•4 neilona M2.5 skrūvju komplekts
- Komplektā 4 neilona M2.5 * 11 mm sieviešu un sieviešu atstarpes
- Komplektā 4 neilona M2.5*5 mm atstarpi no vīrieša līdz sievietei
Montāža
Izmantojiet neilona skrūves un atstarpes, lai saliktu Raspberry Pi kopā ar MIDI plati, kā parādīts tālāk esošajā attēlā:

Pirmā iestatīšana
Mēs pārbaudījām visus bijušosamples šajā dokumentā Pi 4B, izmantojot Rasperry Pi OS, 2020. gada maija versiju). Pirmo reizi, lai iestatītu Pi, ir jāizmanto ekrāns un tastatūra. Pēc tam izmantojiet savu izvēlēto metodi, lai piekļūtu Pi operētājsistēmai. Visas darbības ir obligātas, ja vien nav norādīts citādi
Uzstādīšana
Atjaunināt/jaunināt
Veiciet atjaunināšanu un jaunināšanu, kā aprakstīts šeit: https://www.raspberrypi.org/documentation/raspbian/updating.md
Tīkla konfigurācija (pēc izvēles)
Ja SSH ievadāt no citas mašīnas uz Pi, ir vērts Pi norādīt fiksētu IP adresi: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update Ir arī laba ideja pievienot tīkla drošības iestatījumus Pi, lai tas automātiski izveidotu savienojumu ar tīklu: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
Iestatiet Pi Up kā USB OTG sīkrīku
Atveriet termināli Pi un izpildiet šo procedūru:
- Iestatiet USB draiveri uz dwc2
echo “dtoverlay=dwc2” | sudo tee -a /boot/config.txt - Iespējojiet draiveri dwc2
atbalss “dwc2” | sudo tee -a /etc/modules - Iespējot lib salikto draiveri
echo “lib salikts” | sudo tee -a /etc/modules - Iespējojiet MIDI sīkrīku
atbalss “g_midi” | sudo tee -a /etc/modules
Izveidojiet konfigurācijas skriptu:
- Izveidojiet file
sudo touch /usr/bin/midi_over_usb - Padariet to izpildāmu
sudo chmod +x /usr/bin/midi_over_usb - Rediģējiet to ar Nano
sudo nano /usr/bin/midi_over_usb
Ielīmējiet tālāk norādīto file, pēc vajadzības rediģējot produkta un ražotāja virknes. cd /sys/kernel/config/usb_gadget/ mkdir -p midi_over_usb cd midi_over_usb echo 0x1d6b > idVendor # Linux Foundation echo 0x0104 > idProduct # Daudzfunkciju salikts sīkrīks echo > idProduct # Multifunction Composite Gadget echo > 0x0100 echo “fedcba1.0.0” > stīgas/0x0200/sērijas numurs echo “OSA Electronics” > stīgas/2x0/ražotāja atbalss “MIDI USB ierīce” > stīgas/409x9876543210/produkts ls > Nano UDC/klase Exitudc file (Ctrl+X, Y, atgriešanās). Pievienojiet skriptam izsaukumu rc.local, lai tas tiktu izpildīts katrā startēšanas reizē. sudo nano /etc/rc.local Pievienojiet šo rindiņu pirms “exit0” /usr/bin/midi_over_usb Izejiet no Nano un saglabājiet file un restartējiet Pi. sudo reboot Norādiet pieejamos MIDI portus. amidi -l Ja MIDI ir pareizi konfigurēts, pēdējai komandai vajadzētu izvadīt kaut ko līdzīgu: Dir Device Name IO hw:0,0 f_midi IO hw:0,0 f_midi
Instalējiet Python bibliotēkas
Šajā sadaļā ir paskaidrots, kā instalēt mūsu vēlamās bibliotēkas Python 2.x.
MIDO
Mido ir ērti lietojama bibliotēka MIDI datu apstrādei. Tas balstās uz rt-midi aizmugursistēmu, skaņas bibliotēku un Džeku. Secīgi ievadiet šādas komandas: Izvadei ir jāparāda viens "Midi Through" ports un viens papildu ports. Ja tas tā ir, viss ir kārtībā. *Piezīme: valodā Mido porta nosaukums ir visa virkne, kas ievietota atsevišķās pēdiņās, taču ir iespējams saīsināt nosaukumu līdz virknei pirms kola. Šajā iekārtā virkne ir: "f_midi:f_midi 16:0". Piemēram,ample, šīs divas komandas ir līdzvērtīgas
PIGPIO
Mēs izmantojam pigpio bibliotēku, lai saskartos ar GPIO tapām. Mēs esam atklājuši, ka šī bibliotēka ir stabilāka un elastīgāka nekā standarta metode saskarnei ar Pi aparatūru (RPi.GPIO). Ja vēlaties izmantot citu bibliotēku, attiecīgi rediģējiet kodu. Lai instalētu pigpio bibliotēku, izpildiet šeit sniegtos norādījumus: http://abyz.me.uk/rpi/pigpio/download.html Pirms palaišanas visu bijušoampzemāk, jums vajadzētu sākt pigpio pakalpojumu, ja tas nav izdarīts:
Python Examples
Bijušaisamples izmanto arī numpy bibliotēkas interp funkciju kā vienkāršu veidu, kā kartēt starp diviem diapazoniem. Datu sūtīšanai un saņemšanai izmantojām Reaper. Pi ir konfigurēts kā aparatūras MIDI izeja Reaper preferenču izvēlnē.
Kontrolējiet GPIO ar piezīmju datiem (piemēram,ample_1_key_press.py) Šis example parāda, kā:
- Izmantojot vienkāršu nosacījumu, klausieties 3 konkrētus piezīmju un piezīmju notikumus
- Uztveriet izņēmumus, kas rodas, ja uz Pi tiek nosūtīti dati, kas nav piezīmes (piemēram, transportēšanas dati no sekvencēra).
- Kartē nots ātrumu ar izvades tapas PWM
Importējiet attiecīgās bibliotēkas, izveidojiet pi objektu no pigpio bibliotēkas un atveriet izvades portu: Try/catch bloks ir paredzēts, lai uztvertu kļūdas, kas rodas no cita veida sūtītajiem MIDI datiem (piemēram, transporta vadīklām utt.). while True: try: #Tas filtrē visus ar piezīmēm nesaistītos datus ziņojumam port.iter_pending(): # ja ir gaidošs ziņojums if(msg.type == 'note_on'): # ja tas ir Note On message out = interp(msg.velocity, [0,127],[0,255]) # skalas ātrums no 0-127 līdz 0-255 #filtrēt datus pēc piezīmes numura if(msg.note == 53): pi1.set_PWM_dutycycle(2, out ) elif(msg.note == 55): pi1.set_PWM_dutycycle(3, out) elif(msg.note == 57): pi1.set_PWM_dutycycle(4, out) else: # ja ziņojums nav Piezīme On (piem., Note Off) if(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), izņemot AttributeError kā kļūdu: print(“Izņēmuma kļūda”) caurlaide
Kontrolējiet GPIO ar modifikācijas un slīpuma riteņiem (piemēram,ample_2_wheels.py)
Šis bijušaisample parāda, kā:
- Klausieties Pitch un Mod Data un filtrējiet tos pēc veida
- Kartē datus ar izvades tapas PWM
Šis bijušaisample ir līdzīgs iepriekš minētajam ar šādiem ziņojumu veidiem:
- Pitch wheel ir tipa pitchwheel ar vērtību msg.pitch
- Mod Wheel ir nepārtraukta kontrollera tipa control_change ar vadības parametru msg.control = 1 (CC numurs) un vērtību msg.value
Izvadīt MIDI datus no GPIO notikuma (gpio_event.py)
Šis bijušaisample parāda, kā:
- Izmantojiet pārtraukumu, lai noteiktu pogas nospiešanu
- Nosūtiet MIDI datus no Pi uz citu ierīci
Atveriet izvades portu, izveidojiet divus ziņojumus un iestatiet GPIO tapu kā ievadi. Šis bijušaisample pieņem, ka pie 21. tapas ir piesieta poga, tāpēc, kad poga tiek nospiesta, tapa kļūst AUGSTU: Tālāk ir norādītas atzvanīšanas funkcijas, kas tiek izsauktas, kad poga tiek nospiesta vai atlaista. Funkcija izvades porti send() vienkārši nosūta ziņojumu no porta: Atzvanīšanas klausītāji darbojas fonā un tiem nav nepieciešama papildu uzmanība:
Atskaņojiet MIDI File
Šis bijušaisample parāda, kā:
- Ielādējiet MIDI file programmēšanas vidē
- Atskaņojiet file .
Šis bijušaisamples pieņem, ka jums ir MIDI file sauc midi_file.mid tajā pašā direktorijā, kurā atrodas jūsu python skripts: importējiet mido no mido importa MidiFile no mido importa MetaMessage ports = mido.open_output('f_midi') mid = MidiFile('midi_file.mid'), kamēr True: īsziņām MidiFile('midi_file.mid').play(): port.send(msg)
Dokumenti / Resursi
![]() |
Raspberry Pi OSA MIDI dēlis [pdfLietotāja rokasgrāmata OSA MIDI, valde |




