Vaarikas-Pi-OSA-MIDI-laud-LOGO

Raspberry Pi OSA MIDI tahvel

Vaarika-Pi-OSA-MIDI-laud-toode

Raspberry Pi seadistamine MIDI jaoks

See juhend näitab, kuidas võtta värskelt installitud Raspberry Pi ja lasta seda kasutada OS-i tuvastatava MIDI I/O-seadmena. See pakub ka mõnda endistamperinevate Pythoni teekide kasutamine MIDI-andmete programmeerimiskeskkonda toomiseks ja sealt välja toomiseks. VÄRSKENDUS – 11. september 2021. Seda juhendit on värskendatud, et lahendada mõned probleemid Raspberry Pi OS-i uusima versiooniga. Siin saate alla laadida ka täiskujutise koos eelinstallitud ja täielikult konfigureeritud skriptidega.

Mida me vajame

  • Raspberry Pi A+/B+/2/3B/3B+/4B
  • MIDI-plaat Raspberry Pi jaoks
  • MicroSD-kaart•4 nailonist M2.5 kruviga komplekt
  • Komplektis 4 nailonist M2.5*11 mm emas-naiste vahet
  • Komplektis 4 nailonist M2.5*5 mm meeste ja naiste vaheseinte

Kokkupanek

Kasutage Raspberry Pi kokkupanemiseks MIDI-plaadiga nailonkruvisid ja vahesid, nagu on näidatud alloleval pildil:

Vaarika-Pi-OSA-MIDI-laud-1

Esmakordne seadistamine

Testisime kõiki endisiampselles dokumendis Pi 4B-s, mis kasutab Rasperry Pi OS-i versiooni mai 2020). Esimest korda on Pi seadistamiseks vaja kasutada ekraani ja klaviatuuri. Seejärel kasutage Pi OS-ile juurdepääsuks valitud meetodit. Kõik sammud on kohustuslikud, kui pole öeldud teisiti

Paigaldamine

Värskenda/uuenda
Tehke värskendus ja täiendamine, nagu siin kirjeldatud: https://www.raspberrypi.org/documentation/raspbian/updating.md

Võrgu konfiguratsioon (valikuline)
Kui sisestate SSH-d teisest masinast Pi-sse, tasub Pi-le anda fikseeritud IP-aadress: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update Samuti on hea mõte lisada Pi-le võrgu turvasätted, et see automaatselt võrguga ühenduks: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

Seadistage Pi Up USB OTG-vidinaks
Avage Pi terminal ja järgige seda protseduuri:

  • Seadke USB-draiver väärtusele dwc2
    kaja “dtoverlay=dwc2” | sudo tee -a /boot/config.txt
  • Lubage dwc2 draiver
    kaja “dwc2” | sudo tee -a /etc/modules
  • Lubage lib-komposiitdraiver
    kaja "lib komposiit" | sudo tee -a /etc/modules
  • Lubage MIDI-vidin 
    kaja "g_midi" | sudo tee -a /etc/modules

Looge konfiguratsiooniskript:

  • Looge file
    sudo touch /usr/bin/midi_over_usb
  • Tee seda käivitatavaks
    sudo chmod +x /usr/bin/midi_over_usb
  • Redigeerige seda Nano abil
    sudo nano /usr/bin/midi_over_usb

Kleepige lahtrisse järgmine file, tehes toote ja tootja stringides vastavalt vajadusele muudatusi. cd /sys/kernel/config/usb_gadget/ mkdir -p midi_over_usb cd midi_over_usb echo 0x1d6b > idVendor # Linux Foundation echo 0x0104 > idToode # Multifunktsionaalne komposiitvidin kaja > USB m/c/sd0 0100x1.0.0 # vc0d. 0200x2 echo “fedcba0” > strings/409x9876543210/seerianumber kaja “OSA elektroonika” > stringid/0x409/tootja kaja “MIDI USB-seade” > strings/0x409/toode ls > Nano ja UDC/class exitud/ file (Ctrl+X, Y, tagasi). Lisage skriptile rc.locali kutse, nii et see käivitub igal käivitamisel. sudo nano /etc/rc.local Lisage "exit0" ette järgmine rida /usr/bin/midi_over_usb Välju Nanost ja salvesta file ja taaskäivitage Pi. sudo reboot Saadaolevate MIDI-portide loend. amidi -l Kui MIDI on õigesti konfigureeritud, peaks viimane käsk väljastama midagi sarnast: Dir Seadme nimi IO hw:0,0 f_midi IO hw:0,0 f_midi

Installige Pythoni raamatukogud

See jaotis selgitab, kuidas installida meie eelistatud teeke Python 2.x jaoks.

MIDO

Mido on lihtsalt kasutatav raamatukogu MIDI-andmete haldamiseks. See tugineb rt-midi taustaprogrammile, heliteegile ja Jackile. Sisestage järjestikku järgmised käsud: Väljund peaks näitama ühte "Midi Through" porti ja ühte täiendavat porti. Kui see nii on, on kõik hästi. *Märkus: Mido puhul on pordi nimi kogu string, mis on ümbritsetud üksikute jutumärkidega, kuid nime on võimalik kärpida kooloni ees olevaks stringiks. Sellel masinal on string järgmine: 'f_midi:f_midi 16:0'. Näiteksample, need kaks käsku on samaväärsed

PIGPIO

GPIO tihvtidega liidestamiseks kasutame pigpio raamatukogu. Oleme leidnud, et see raamatukogu on stabiilsem ja paindlikum kui standardne meetod Pi riistvaraga liidestamiseks (RPi.GPIO). Kui soovite kasutada mõnda muud teeki, muutke koodi vastavalt. Pigpio teegi installimiseks järgige juhiseid siin: http://abyz.me.uk/rpi/pigpio/download.html Enne käivitamist kõik endisedampKui allpool kirjeldatud, peaksite pigpio teenuse käivitama, kui seda pole tehtud:

Python Examples

Endineamples kasutavad ka numpy raamatukogu interp-funktsiooni lihtsa viisina kahe vahemiku kaardistamiseks. Andmete saatmiseks ja vastuvõtmiseks kasutasime Reaperit. Pi on konfigureeritud riistvaralise MIDI-väljundina Reaperi eelistuste menüüs.

GPIO juhtimine märkmeandmetega (ntample_1_key_press.py) See eksample näitab, kuidas:

  • Lihtsa tingimuse abil saate kuulata kolme konkreetset sisse- ja väljalülitussündmust
  • Püüdke kinni eranditest, mis tekivad siis, kui Pi-le saadetakse mitte-nooteandmeid (nt edastavad andmed sekvenaatorist)
  • Seotage noodi kiirus väljundtihvti PWM-iga

Importige vastavad teegid, looge pigpio teegist pi-objekt ja avage väljundport: Try/catch plokk on püüda kinni muud tüüpi saadetavatest MIDI andmetest (nt transpordi juhtelemendid jne) tulenevad vead. while True: try: #See filtreerib välja kõik mittemärkused andmed sõnumi kohta port.iter_pending(): # kui on ootel sõnum if(msg.type == 'note_on'): # kui see on Note On message out = interp(msg.velocity, [0,127],[0,255]) # skaala kiirus vahemikus 0-127 kuni 0-255 #filtreeri andmed märkme numbri järgi 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: # kui teade ei ole Märkus sees (nt Märkus Väljas) 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), välja arvatud AttributeError kui tõrge: print("Error välja arvatud") pääse

Juhtige GPIO-d modi- ja sammuratastega (ntample_2_wheels.py)
See eksample näitab, kuidas:

  • Kuulake helikõrguse ja modifikatsiooni andmeid ning filtreerige need tüübi järgi
  • Ühendage andmed väljundviigu PWM-iga

See eksample on sarnane ülaltooduga järgmiste sõnumitüüpidega:

  • Pitchwheel on tüüpi pitchwheel väärtusega msg.pitch
  • Mod Wheel on pideva kontrolleri tüüpi control_change, mille juhtparameeter on msg.control = 1 (CC number) ja väärtus msg.value

MIDI-andmete väljastamine GPIO-sündmusest (gpio_event.py)

See eksample näitab, kuidas:

  • Kasutage nupuvajutuse tuvastamiseks katkestust
  • Saatke MIDI-andmed Pi-st teise seadmesse

Avage väljundport, looge kaks teadet ja seadistage GPIO-pin sisendiks. See eksample eeldab, et tihvti 21 külge on seotud nupp, nii et tihvt läheb nupu vajutamisel KÕRGELE: Järgmised on tagasihelistamise funktsioonid, mida kutsutakse nupu vajutamisel või vabastamisel. Funktsioon Väljundpordid send() saadab sõnumi lihtsalt pordist välja: Tagasihelistuskuulajad töötavad taustal ja ei vaja rohkem tähelepanu:

Esitage MIDI-d File

See eksample näitab, kuidas:

  • Laadige MIDI file programmeerimiskeskkonnas
  • Taasesitage file .

See eksamples eeldab, et sul on MIDI file kutsus midi_file.mid teie pythoni skriptiga samas kataloogis: importige mido kataloogist mido import MidiFile from mido import MetaMessage port = mido.open_output('f_midi') mid = MidiFile('midi_file.mid') while True: Midi-keelsete sõnumite jaoksFile('midi_file.mid').play(): port.send(msg)

Dokumendid / Ressursid

Raspberry Pi OSA MIDI tahvel [pdfKasutusjuhend
OSA MIDI, juhatus

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *