Raspberry Pi OSA MIDI plaka

Raspberry Pi MIDIrako konfiguratzea
Gida honek instalatu berri den Raspberry Pi bat nola hartu eta OS-ek aurki daitekeen MIDI I/O gailu gisa funtzionatzen duen erakutsiko du. Adibide batzuk ere emango dituamphainbat Python liburutegiak erabiltzeko fitxategiak MIDI datuak programazio-ingurunean sartu eta ateratzeko. EGUNERAZIOA - 11eko irailak 2021.: Gida hau Raspberry Pi OSaren azken bertsioarekin arazo batzuk konpontzeko eguneratu da, irudi osoa deskarga dezakezu aurrez instalatutako scriptekin eta guztiz konfiguratuta hemen.
Behar duguna
- Raspberry Pi A+/B+/2/3B/3B+/4B
- Raspberry Pirako MIDI plaka
- MicroSD txartela • Nylon M4 2.5 torloju multzoa
- Nylon M4 * 2.5mm 11 eme-eme arteko standoff multzoa
- Nylon M4*2.5 mm-ko 5 parekatzaileen multzoa
Batzarra
Erabili nylonezko torlojuak eta zutabeak Raspberry Pi MIDI plakarekin batera muntatzeko, beheko irudian ikusten den moduan:

Lehen konfigurazioa
Ex guztiak probatu dituguampdokumentu honetan Rasperry Pi OS erabiltzen duen Pi 4B batean, 2020ko maiatza bertsioa). Lehenengo aldiz, beharrezkoa da pantaila eta teklatua erabiltzea Pi-a konfiguratzeko. Ondoren, erabili nahi duzun metodoa Pi-ren OSra sartzeko. Urrats guztiak derrigorrezkoak dira, bestela adierazi ezean
Instalazioa
Eguneratu/Berritu
Egin eguneratzea eta berritzea hemen deskribatzen den moduan: https://www.raspberrypi.org/documentation/raspbian/updating.md
Sarearen konfigurazioa (aukerakoa)
Beste makina batetik Pi-ra SSH erabiltzen ari bazara, merezi du Pi-ri IP helbide finko bat ematea: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update Sarearen segurtasun-ezarpenak Pi-ra gehitzea ere komeni da, sarera automatikoki konektatzeko: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
Ezarri Pi Up USB OTG Gadget gisa
Ireki terminal bat Pi-n eta jarraitu prozedura hau:
- Ezarri USB kontrolatzailea dwc2 gisa
oihartzuna “dtoverlay=dwc2” | sudo tee -a /boot/config.txt - Gaitu dwc2 kontrolatzailea
oihartzuna “dwc2” | sudo tee -a /etc/modules - Gaitu lib konposatu kontrolatzailea
echo "lib composite" | sudo tee -a /etc/modules - Gaitu MIDI gadgeta
oihartzuna “g_midi” | sudo tee -a /etc/modules
Sortu konfigurazio script-a:
- Sortu file
sudo touch /usr/bin/midi_over_usb - Egin ezazu exekutagarria
sudo chmod +x /usr/bin/midi_over_usb - Editatu Nano-rekin
sudo nano /usr/bin/midi_over_usb
Itsatsi honako hau file, produktuaren eta fabrikatzailearen kateetan aldaketak eginez, behar bezala. 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 > bcdDevice # v1.0.0dirk > bcd0. 0200x2 oihartzuna "fedcba0" > kateak/409x9876543210/serie-zenbakiaren oihartzuna "OSA Elektronika" > kateak/0x409/fabrikatzailearen oihartzuna "MIDI USB gailua" > kateak/0x409/product ls /sys/class/udc > eta gorde UDC Exit Nano file (Ktrl+X, Y, itzuli). Gehitu dei bat script-ari rc.local-era, abiarazte guztietan exekutatu dadin. sudo nano /etc/rc.local Gehitu hurrengo lerroa "exit0" aurretik /usr/bin/midi_over_usb Irten Nanotik eta gorde file eta berrabiarazi Pi. sudo reboot Zerrendatu eskuragarri dauden MIDI atakak. amidi -l MIDI behar bezala konfiguratuta badago, azken komandoak antzeko zerbait atera beharko luke: Dir Device Name IO hw:0,0 f_midi IO hw:0,0 f_midi
Instalatu Python Liburutegiak
Atal honetan Python 2.x-erako gure liburutegi hobetsiak nola instalatu azalduko da.
MIDO
Mido MIDI datuak kudeatzeko liburutegi erabilerraza da. rt-midi backend-ean, asound liburutegian eta Jack-en oinarritzen da. Sartu komando hauek sekuentzian: Irteerak 'Midi Through' ataka bat eta ataka gehigarri bat erakutsi behar ditu. Hau horrela bada, dena ondo dago. *Oharra: Mido-n, atakaren izena komatxo bakarren artean sartutako kate osoa da, baina posible da izena bi puntuen aurretik kateari moztu. Makina honetan, katea hau da: 'f_midi:f_midi 16:0'. Adibidezample, bi komando hauek baliokideak dira
TXERRIKIA
Pigpio liburutegia erabiltzen dugu GPIO pinekin interfazea egiteko. Liburutegi hau Pi-ren hardwarearekin (RPi.GPIO) konektatzeko metodo estandarra baino egonkorragoa eta malguagoa dela aurkitu dugu. Beste liburutegi bat erabili nahi baduzu, editatu kodea horren arabera. Pigpio liburutegia instalatzeko, jarraitu argibideak hemen: http://abyz.me.uk/rpi/pigpio/download.html Aurretik ex guztiak exekutatuampbehean, pigpio zerbitzua hasi beharko zenuke egiten ez bada:
Python Adibamples
Adibampnumpy liburutegiaren interp funtzioa ere erabiltzen dute bi barrutien arteko mapa egiteko modu erraz gisa. Reaper erabili dugu datuak bidaltzeko eta jasotzeko. Pi Hardware MIDI irteera gisa konfiguratuta dago Reaper-en hobespenen menuan.
Kontrolatu GPIO oharren datuekin (adibample_1_key_press.py) Adibampleek nola egin erakusten du:
- Entzun 3 ohar-on eta ohar-off gertaera zehatz baldintza sinple bat erabiliz
- Harrapatu oharrak ez diren datuak Pira bidaltzen direnean sortzen diren salbuespenak (adibidez, sekuentziatzaile batetik datuak garraiatzea)
- Mapa notaren abiadura irteerako pinaren PWM-arekin
Inportatu dagozkion liburutegiak, sortu pi objektua pigpio liburutegitik eta ireki irteerako ataka: try/catch blokea bidaltzen diren beste MIDI datu-motetatik (adibidez, garraio kontrolak etab.) sortzen diren erroreak harrapatzea da. bitartean True: try: #Honek oharra ez diren datu guztiak iragazten ditu port.iter_pending(): # if there is a message a pending if(msg.type == 'note_on'): # if is it is Note On message out = interp(msg.velocity, [0,127],[0,255]) # eskala abiadura 0-127tik 0-255era #iragazi datuak nota-zenbakiaren arabera 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: # mezua ez bada Note On (adib. Oharra 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) AttributeError errore gisa izan ezik: inprimatu ("Errorea izan ezik") gainditu
Kontrolatu GPIO Mod eta Pitch Wheelekin (adibample_2_wheels.py)
Adibampleek nola egin erakusten du:
- Entzun Pitch eta Mod Data eta iragazi motaren arabera
- Mapeatu datuak irteerako pinaren PWMra
Adibample-a goikoaren antzekoa da, mezu mota hauekin:
- Pitch wheel pitchwheel mota da, msg.pitch balio duena
- Mod Wheel Kontrol_aldaketa etengabeko kontrolagailu bat da, msg.control = 1 (CC zenbakia) kontrol-parametroa eta msg.value balioa duena.
Irteera MIDI datuak GPIO gertaera batetik (gpio_event.py)
Adibampleek nola egin erakusten du:
- Erabili eten bat botoi bat sakatzea detektatzeko
- Bidali MIDI datuak Pitik beste gailu batera
Ireki irteerako ataka, sortu bi mezu eta konfiguratu GPIO pina sarrera gisa. Adibamp21. pinarekin loturiko botoi bat dagoela suposatzen du, eta, beraz, PIN hori ALTU doa botoia sakatzean: Hauek dira botoia sakatzean edo askatzen denean deitzen diren dei-atzera egiteko funtzioak. Irteerako portuen send() funtzioak mezua atakatik kanpo bidaltzen du: dei-itzuliaren entzuleek atzeko planoan exekutatzen dute eta ez dute arreta gehiago behar:
Erreproduzitu MIDI bat File
Adibampleek nola egin erakusten du:
- Kargatu MIDI bat file programazio ingurunean
- Erreproduzitu file .
Adibamples suposatzen du MIDI bat duzula file midi_ izenekoafile.mid zure python script-aren direktorio berean: inportatu mido-tik mido inportatu MidiFile mido inportaziotik MetaMessage ataka = mido.open_output('f_midi') mid = MidiFile('midi_file.mid') True bitartean: Midi-n mezurakoFile('midi_file.mid').play(): port.send(msg)
Dokumentuak / Baliabideak
![]() |
Raspberry Pi OSA MIDI plaka [pdfErabiltzailearen eskuliburua OSA MIDI, Board |




