Raspberry-Pi-OSA-MIDI-Board-LOGO

Raspberry Pi OSA MIDI dēlis

Raspberry-Pi-OSA-MIDI-Board-PRODUCT

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ā:

Raspberry-Pi-OSA-MIDI-Board-1

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

Atsauces

Atstājiet komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *