Raspberry-Pi-OSA-MIDI-Board-LOGO

Raspberry Pi OSA MIDI borð

Raspberry-Pi-OSA-MIDI-Board-PRODUCT

Uppsetning Raspberry Pi fyrir MIDI

Þessi handbók mun sýna hvernig á að taka nýuppsettan Raspberry Pi og láta hann starfa sem MIDI I/O tæki sem hægt er að finna OS. Það mun einnig veita nokkur examples um að nota ýmis Python bókasöfn til að koma MIDI gögnum inn og út úr forritunarumhverfinu. UPPFÆRT – 11. september 2021.: Þessi handbók hefur verið uppfærð til að laga nokkur vandamál með nýjustu Raspberry Pi OS útgáfunni, þú getur líka halað niður fullri mynd með fyrirfram uppsettum skriftum og fullstillt hér.

Það sem við þurfum

  • Raspberry Pi A+/B+/2/3B/3B+/4B
  • MIDI borð fyrir Raspberry Pi
  • MicroSD kort•Setið með 4 Nylon M2.5 skrúfum
  • Sett af 4 nylon M2.5*11mm kvenkyns til kvenkyns stöður
  • Sett af 4 nylon M2.5*5mm karlkyns til kvenkyns hliðar

Samkoma

Notaðu nælonskrúfur og standoffs til að setja Raspberry Pi saman við MIDI borðið, eins og sýnt er á myndinni hér að neðan:

Raspberry-Pi-OSA-MIDI-Board-1

Uppsetning í fyrsta skipti

Við prófuðum öll fyrrvamples í þessu skjali á Pi 4B sem notar Rasperry Pi OS, útgáfu maí 2020). Í fyrsta skiptið er nauðsynlegt að nota skjá og lyklaborð til að setja Pi upp. Síðan skaltu nota aðferðina sem þú velur til að fá aðgang að stýrikerfi Pi. Öll skref eru skylda nema annað sé tekið fram

Uppsetning

Uppfærsla/uppfærsla
Framkvæmdu uppfærsluna og uppfærsluna eins og lýst er hér: https://www.raspberrypi.org/documentation/raspbian/updating.md

Netstillingar (valfrjálst)
Ef þú ert að fara SSH frá annarri vél inn í Pi, þá er það þess virði að gefa Pi fasta IP tölu: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update Það er líka góð hugmynd að bæta netöryggisstillingunum við Pi svo hann tengist sjálfkrafa við netið: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

Stilltu Pi Up sem USB OTG græju
Opnaðu flugstöð á Pi og fylgdu þessari aðferð:

  • Stilltu USB bílstjórinn á dwc2
    echo “dtoverlay=dwc2” | sudo tee -a /boot/config.txt
  • Virkjaðu dwc2 bílstjóri
    echo “dwc2” | sudo tee -a /etc/modules
  • Virkjaðu lib samsetta bílstjórann
    echo “lib composite” | sudo tee -a /etc/modules
  • Virkjaðu MIDI græjuna 
    echo “g_midi” | sudo tee -a /etc/modules

Búðu til stillingarhandritið:

  • Búðu til file
    sudo touch /usr/bin/midi_over_usb
  • Gerðu það keyranlegt
    sudo chmod +x /usr/bin/midi_over_usb
  • Breyttu því með Nano
    sudo nano /usr/bin/midi_over_usb

Límdu eftirfarandi inn í file, gera breytingar á vöru- og framleiðandastrengjum eftir þörfum. 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 > bcd1.0.0Devicedir. 0x0200 echo “fedcba2” > strengir/0x409/raðnúmer echo “OSA Electronics” > strengir/9876543210x0/framleiðandi echo “MIDI USB Device” > strengir/409x0/product ls /sys/class/udc > vistaðu UDC-útganginn file (Ctrl+X, Y, til baka). Bættu kalli við handritið við rc.local, þannig að það keyrir við hverja gangsetningu. sudo nano /etc/rc.local Bættu við eftirfarandi línu fyrir “exit0” /usr/bin/midi_over_usb Hættaðu Nano og vistaðu file og endurræstu Pi. sudo endurræsa Listaðu yfir tiltæk MIDI tengi. amidi -l Ef MIDI er rétt stillt ætti síðasta skipunin að gefa út eitthvað svipað og: Dir Device Name IO hw:0,0 f_midi IO hw:0,0 f_midi

Settu upp Python bókasöfn

Þessi hluti mun útskýra hvernig á að setja upp valinn bókasöfn okkar fyrir Python 2.x.

MIDO

Mido er auðveld í notkun bókasafn til að meðhöndla MIDI gögn. Það treystir á rt-midi bakendann, asound bókasafnið og Jack. Sláðu inn eftirfarandi skipanir í röð: Úttakið ætti að sýna eina 'Midi Through' tengi og eina tengi til viðbótar. Ef þetta er raunin er allt í góðu. *Athugið: í Mido er gáttarnafnið allur strengurinn með stökum gæsalappa, en það er hægt að stytta nafnið í strenginn á undan tvípunktinum. Á þessari vél er strengurinn: 'f_midi:f_midi 16:0'. Til dæmisample, þessar tvær skipanir eru jafngildar

PIGPIO

Við notum pigpio bókasafnið til að tengja við GPIO pinnana. Okkur hefur fundist þetta bókasafn vera stöðugra og sveigjanlegra en staðlaða aðferðin við að hafa samskipti við vélbúnað Pi (RPi.GPIO). Ef þú vilt nota annað bókasafn skaltu breyta kóðanum í samræmi við það. Til að setja upp pigpio bókasafnið skaltu fylgja leiðbeiningunum hér: http://abyz.me.uk/rpi/pigpio/download.html Áður en þú keyrir allt fyrrverandiamplesið hér að neðan ættirðu að hefja pigpio þjónustuna ef það er ekki gert:

Python fyrrverandiamples

Fyrrverandiamples notar einnig interp aðgerð numpy bókasafnsins sem auðveld leið til að kortleggja á milli tveggja sviða. Við notuðum Reaper til að senda og taka á móti gögnum. Pi er stillt sem vélbúnaðar MIDI úttak í valmynd Reaper.

Stjórnaðu GPIO með athugasemdagögnum (tdample_1_key_press.py) Þetta tdampLe sýnir hvernig á að:

  • Hlustaðu á 3 tiltekna atburði sem eru tengdir og slökkt á athugasemdum með einföldu ástandi
  • Náðu undantekningunum sem koma upp þegar gögn sem ekki eru nótur eru send til Pi (td flutningsgögn frá raðgreiningartæki)
  • Kortleggðu nótuhraðann við PWM úttakspinnans

Flyttu inn viðkomandi söfn, búðu til pi hlutinn úr pigpio bókasafninu og opnaðu úttaksportið: Reyna/fanga blokkin er til að ná villunum sem koma upp vegna annars konar MIDI gagna sem eru sendar (td flutningsstýringar osfrv.). á meðan satt: reyndu: #Þetta síar út öll gögn sem ekki eru athugasemd fyrir skilaboð í port.iter_pending(): # ef það er skilaboð í bið if(msg.type == 'note_on'): # ef það er Note On message out = interp(msg.velocity, [0,127],[0,255]) # kvarðahraði frá 0-127 til 0-255 #sía gögnin eftir nótunúmeri 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: # ef skilaboðin eru ekki Note On (td Athugið 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) nema AttributeError sem villa: print(„Villa undanskilin“) pass

Stjórnaðu GPIO með Mod og Pitch Wheels (tdample_2_wheels.py)
Þetta frvampLe sýnir hvernig á að:

  • Hlustaðu á Pitch og Mod Data og síaðu þau eftir tegund
  • Kortaðu gögnin við PWM úttakspinnans

Þetta frvample er svipað og hér að ofan, með þessum skilaboðategundum:

  • Pitch hjólið er gerð pitchwheel með gildið msg.pitch
  • Mod hjólið er af samfelldri stjórnandi gerð control_change með stjórnbreytu msg.control = 1 (CC númerið) og gildið msg.value

Senda út MIDI gögn frá GPIO atburði (gpio_event.py)

Þetta frvampLe sýnir hvernig á að:

  • Notaðu truflun til að greina ýtt á hnapp
  • Sendu MIDI gögn frá Pi í annað tæki

Opnaðu úttaksportið, búðu til tvö skilaboð og settu upp GPIO pinna sem inntak. Þetta frvampLeið gerir ráð fyrir að það sé hnappur tengdur pinna 21, þannig að pinninn fer HÁTT þegar ýtt er á hnappinn: Eftirfarandi eru afturhringingaraðgerðirnar sem kallaðar eru á þegar ýtt er á hnappinn eða honum sleppt. Úttaksports send() aðgerðin sendir einfaldlega skilaboðin út úr höfninni: Hlustendur hringingar keyra í bakgrunni og þurfa ekki frekari athygli:

Spilaðu MIDI File

Þetta frvampLe sýnir hvernig á að:

  • Hlaða inn MIDI file í forritunarumhverfinu
  • Spilaðu file .

Þetta frvamples gerir ráð fyrir að þú sért með MIDI file kallaður midi_file.mid í sömu möppu og python handritið þitt: flyttu inn mido frá mido import MidiFile frá mido innflutningi MetaMessage tengi = mido.open_output('f_midi') mid = MidiFile('midi_file.mid') á meðan True: fyrir skilaboð í MidiFile('midi_file.mid').play(): port.send(msg)

Skjöl / auðlindir

Raspberry Pi OSA MIDI borð [pdfNotendahandbók
OSA MIDI, stjórn

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *