Rasberi-Pi-OSA-MIDI-Board-LOGO

Rasberi Pi OSA MIDI Board

Rasberi-Pi-OSA-MIDI-Board-PRODUCT

Saita Rasberi Pi don MIDI

Wannan jagorar zai nuna yadda ake ɗaukar sabon shigar Rasberi Pi kuma a yi aiki da shi azaman na'urar MIDI I/O mai gano OS. Hakanan zai samar da wasu exampdon amfani da ɗakunan karatu daban-daban na Python don samun bayanan MIDI ciki da waje da yanayin shirye-shirye. UPDATE - Satumba 11, 2021.: An sabunta wannan jagorar don gyara wasu batutuwa tare da sabuwar sigar Rasberi Pi OS, za ku iya zazzage cikakken hoto tare da rubutun da aka riga aka shigar kuma an daidaita shi sosai anan.

Abin da muke bukata

  • Rasberi Pi A+/B+/2/3B/3B+/4B
  • Hukumar MIDI don Rasberi Pi
  • Katin MicroSD • Saitin Nailan 4 M2.5 Screws
  • Saitin Nailan 4 M2.5*11mm Mace Zuwa Mace Tsakanin Mata
  • Saitin Nylon M4*2.5mm Namiji Zuwa Mata

Majalisa

Yi amfani da screws na nailan da tsayawa don haɗa Rasberi Pi tare da Hukumar MIDI, kamar yadda aka nuna akan hoton da ke ƙasa:

Rasberi-Pi-OSA-MIDI-Board-1

saitin farko

Mun gwada duk tsohonamples a cikin wannan takaddar akan Pi 4B ta amfani da Rasperry Pi OS, sigar Mayu 2020). A karo na farko, wajibi ne a yi amfani da allo da madannai don saita Pi. Bayan haka, yi amfani da hanyar zaɓin ku don samun dama ga OS na Pi. Duk matakai na tilas ne sai dai in an bayyana wasu

Shigarwa

Sabuntawa/Haɓaka
Yi sabuntawa da haɓakawa kamar yadda aka bayyana anan: https://www.raspberrypi.org/documentation/raspbian/updating.md

Kanfigareshan hanyar sadarwa (Na zaɓi)
Idan kana SSH'ing daga wata na'ura zuwa cikin Pi, yana da kyau a ba Pi ƙayyadadden adireshin IP: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update Hakanan yana da kyau a ƙara saitunan tsaro na cibiyar sadarwa zuwa Pi ta yadda za ta haɗa kai tsaye zuwa cibiyar sadarwar: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

Saita Pi Up azaman Na'urar OTG na USB
Bude tasha akan Pi kuma bi wannan hanya:

  • Saita direban USB zuwa dwc2
    echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
  • Kunna direban dwc2
    amsa "dwc2" | sudo tee -a /etc/modules
  • Kunna direban lib ɗin da aka haɗa
    echo "lib composite" | sudo tee -a /etc/modules
  • Kunna na'urar MIDI 
    amsa "g_midi" | sudo tee -a /etc/modules

Ƙirƙiri rubutun sanyi:

  • Ƙirƙiri na file
    sudo touch /usr/bin/midi_over_usb
  • Yi shi a aiwatar da shi
    sudo chmod +x /usr/bin/midi_over_usb
  • Gyara shi da Nano
    sudo nano /usr/bin/midi_over_usb

Manna wadannan a cikin file, yin gyare-gyare ga samfurin da igiyoyin masana'anta kamar yadda ake buƙata. cd /sys/kernel/config/usb_gadget/ mkdir -p midi_over_usb cd midi_over_usb echo 0x1d6b> idVendor # Linux Foundation echo 0x0104 0x0100 echo "fedcba1.0.0"> kirtani / 0x0200 / serialnumber echo "OSA Electronics"> kirtani / 2x0 / masana'anta amsa "MIDI USB Na'urar"> kirtani / 409x9876543210 / samfurin ls / sys / class / uDC da kuma ajiye da UDC file (Ctrl + X, Y, dawo). Ƙara kira zuwa rubutun zuwa rc.local, domin ya aiwatar akan kowane farawa. sudo nano /etc/rc.local Ƙara layin da ke gaba kafin "fita0" /usr/bin/midi_over_usb Fita Nano kuma ajiye file kuma sake kunna Pi. sudo sake yi Lissafta samammun tashoshin jiragen ruwa na MIDI. amidi -l Idan an daidaita MIDI daidai, umarni na ƙarshe ya kamata ya fitar da wani abu makamancin haka: Dir Device Name IO hw:0,0 f_midi IO hw:0,0 f_midi

Shigar da Dakunan karatu na Python

Wannan sashe zai bayyana yadda ake shigar da dakunan karatu da muka fi so don Python 2.x.

MIDO

Mido ɗakin karatu ne mai sauƙin amfani don sarrafa bayanan MIDI. Ya dogara da rt-midi backend, ɗakin karatu na sound, da Jack. Shigar da umarni masu zuwa a jere: Fitowar ya kamata ya nuna tashar 'Midi ta hanyar' ɗaya da ƙarin tashar jiragen ruwa guda ɗaya. Idan haka ne, komai yana lafiya. * Lura: a cikin Mido, sunan tashar jiragen ruwa shine gabaɗayan kirtani da ke ƙunshe a cikin ƙididdiga guda ɗaya, amma yana yiwuwa a yanke sunan zuwa kirtani a gaban hanjin. Akan wannan na'ura, zaren shine: 'f_midi:f_midi 16:0'. Domin misaliample, waɗannan umarni guda biyu daidai suke

PIGPIO

Muna amfani da ɗakin karatu na alade don mu'amala da filayen GPIO. Mun sami wannan ɗakin karatu ya fi kwanciyar hankali da sassauƙa fiye da daidaitaccen hanyar mu'amala da kayan aikin Pi (RPi.GPIO). Idan kana son amfani da wani ɗakin karatu, gyara lambar daidai. Don shigar da ɗakin karatu na pigpio, bi umarnin nan: http://abyz.me.uk/rpi/pigpio/download.html Kafin gudanar da duk na exampa ƙasa, ya kamata ku fara sabis ɗin pigpio idan ba a yi ba:

Python Examples

The exampHakanan ana amfani da aikin interp na labura a matsayin hanya mai sauƙi don taswira tsakanin jeri biyu. Mun yi amfani da Reaper don aikawa da karɓar bayanai. An saita Pi azaman fitowar MIDI Hardware a cikin abubuwan zaɓin Reaper.

Sarrafa GPIO tare da Bayanan kula (misaliample_1_key_press.py) Wannan exampya nuna yadda za a:

  • Saurari takamaiman bayanin kula guda 3 da abubuwan kashewa ta amfani da yanayi mai sauƙi
  • Ɗauki keɓancewar da ke tasowa lokacin da aka aika bayanan da ba na bayanin kula ba zuwa Pi (misali bayanan jigilar kaya daga mabiyi)
  • Taswirar saurin bayanin kula zuwa PWM na fil ɗin fitarwa

Shigo da dakunan karatu masu dacewa, ƙirƙiri abin pi daga ɗakin karatu na pigpio, sannan buɗe tashar fitarwa: Tsarin gwadawa/kamawa shine a kama kurakuran da suka taso daga wasu nau'ikan bayanan MIDI da ake aika (misali sarrafa sufuri da sauransu). yayin da Gaskiya: gwada: #Wannan yana tace duk bayanan da ba na rubutu ba na msg a port.iter_pending(): # idan akwai saƙon da ke jiran (msg.type == 'note_on'): # idan Note On message out = interp(msg.velocity, [0,127],[0,255]) # gudun sikelin daga 0-127 zuwa 0-255 #tace bayanan ta lambar bayanin kula idan(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) sauran: # idan sakon baya Kunnawa (misali bayanin kula) Kashe) idan (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) ban da AttributeError azaman kuskure: buga ("Kuskure ban da") wucewa

Sarrafa GPIO tare da Mod da Pitch Wheels (misaliample_2_wheels.py)
Wannan exampya nuna yadda za a:

  • Saurari bayanan Pitch da Mod kuma tace su ta nau'in
  • Taswirar bayanan zuwa PWM na fil ɗin fitarwa

Wannan example yayi kama da na sama, tare da waɗannan nau'ikan saƙo:

  • Dabarar Pitch nau'in farar motsi ne tare da ƙimar msg.pitch
  • Mod Wheel nau'in Control_change mai ci gaba ne mai sarrafawa tare da ma'aunin sarrafawa na msg.control = 1 (lambar CC) da ƙimar msg.value

Fitar bayanan MIDI daga taron GPIO (gpio_event.py)

Wannan exampya nuna yadda za a:

  • Yi amfani da katsewa don gano latsa maɓalli
  • Aika bayanan MIDI daga Pi zuwa wata na'ura

Bude tashar fitarwa, ƙirƙiri saƙonni biyu kuma saita fil ɗin GPIO azaman shigarwa. Wannan example yana ɗauka cewa akwai maɓalli da ke daure da fil 21, don haka fil ɗin yana yin KYAU idan an danna maɓallin: Waɗannan su ne ayyukan sake kiran waya da ake kira lokacin da aka danna maɓallin ko sakewa. Ayyukan tashoshin fitarwa na aika () kawai suna aika saƙon daga tashar jiragen ruwa: Masu sauraron kiran dawo suna gudana a bango kuma basa buƙatar ƙarin kulawa:

Sake kunnawa a MIDI File

Wannan exampya nuna yadda za a:

  • Loda MIDI file a cikin yanayin shirye-shirye
  • Sake kunnawa file .

Wannan exampdon ɗauka cewa kuna da MIDI file mai suna midi_file.tsakiyar shugabanci iri ɗaya da rubutun python ku: shigo da mido daga shigo da MidoFile daga mido shigo da tashar MetaMessage = mido.open_output('f_midi') tsakiyar = MidiFile('midi_file.mid') yayin da Gaskiya: don msg a MidiFile('midi_file.mid').play(): port.send(msg)

Takardu / Albarkatu

Rasberi Pi OSA MIDI Board [pdf] Manual mai amfani
OSA MIDI, Board

Magana

Bar sharhi

Ba za a buga adireshin imel ɗin ku ba. Ana yiwa filayen da ake buƙata alama *