Rahipere-Pi-OSA-MIDI-Paari-LOGO

Rahipere Pi OSA MIDI Poari

Rahipere-Pi-OSA-MIDI-Poari-HUA

Te Whakaritea Rahipere Pi mo MIDI

Ma tenei aratohu e whakaatu me pehea te tango i te Raspberry Pi hou kua oti te whakauru me te whakahaere hei taputapu MIDI I/O ka kitea e te OS. Ka whakarato hoki etahi exampte whakamahi i nga momo whare pukapuka Python ki te tiki raraunga MIDI ki roto, ki waho hoki i te taiao hotaka. WHAKAMAHI - Hepetema 11, 2021.: Kua whakahoutia tenei aratohu ki te whakatika i etahi take me te putanga hou o te Raspberry Pi OS, ka taea hoki e koe te tango i tetahi whakaahua katoa me nga tuhinga kua oti te whakauru me te whirihora katoa ki konei.

Ko nga mea e hiahiatia ana e tatou

  • Rahipere Pi A+/B+/2/3B/3B+/4B
  • Poari MIDI mo te Raspberry Pi
  • He Kaari MicroSD• He huinga 4 Nylon M2.5 Tiu
  • He huinga o 4 Nylon M2.5 * 11mm Wahine ki Wahine Standoffs
  • Ko te huinga o te 4 Nylon M2.5 * 5mm Tane ki te Wahine Standoffs

Huihuinga

Whakamahia nga wiri nylon me nga tuutuu ki te whakakotahi i te Raspberry Pi me te Poari MIDI, penei i te ahua o raro:

Rahipere-Pi-OSA-MIDI-Poari-1

Tatūnga wā tuatahi

I whakamatauria e matou nga mea katoa o muaampi roto i tenei tuhinga mo te Pi 4B ma te whakamahi i te Rasperry Pi OS, putanga Mei 2020). Ko te wa tuatahi, me whakamahi he mata me te papapātuhi hei whakarite i te Pi. I muri mai, whakamahia to tikanga whiriwhiri ki te uru atu ki te Pi's OS. Ko nga hikoinga katoa he mea whakahau mena kaore he korero

Tāutatanga

Whakahou/Whakahou
Mahia te whakahou me te whakahou i te korero i konei: https://www.raspberrypi.org/documentation/raspbian/updating.md

Whirihoranga Whatunga (Kōwhiringa)
Mena kei te SSH koe mai i tetahi atu miihini ki roto i te Pi, he mea tika ki te hoatu ki te Pi he wahitau IP pumau: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update He mea pai ano te taapiri i nga tautuhinga haumarutanga whatunga ki te Pi kia hono aunoa ki te whatunga: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

Whakaritea te Pi Up hei taputapu USB OTG
Whakatuwheratia he tauranga ki te Pi ka whai i tenei tikanga:

  • Tautuhia te taraiwa USB ki te dwc2
    echo “dtoverlay=dwc2” | sudo tee -a /boot/config.txt
  • Whakahohehia te taraiwa dwc2
    paoro "dwc2" | sudo tee -a /etc/modules
  • Whakahohehia te atekōkiri hiato lib
    echo “lib hiato” | sudo tee -a /etc/modules
  • Whakahohehia te taputapu MIDI 
    echo “g_midi” | sudo tee -a /etc/modules

Waihangahia te tuhinga whirihoranga:

  • Waihangahia te file
    sudo pa /usr/bin/midi_over_usb
  • Whakakahoretia atu
    sudo chmod +x /usr/bin/midi_over_usb
  • Whakatikahia me Nano
    sudo nano /usr/bin/midi_over_usb

Whakapirihia nga mea e whai ake nei ki te file, te whakatika i te hua me nga aho o te kaihanga ina hiahiatia. 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 # echo 1.0.0x0. 0200x2 echo "fedcba0" > aho / 409x9876543210 / tau rangatū echo "OSA Electronics" > aho / 0x409 / kaihanga echo "MIDI USB Pūrere" > aho / 0x409 / hua ls / sys / akomanga / udc > te UDC Putaatu Nano ka whakaora file (Ctrl+X, Y, hoki mai). Tāpiri waea ki te hōtuhi ki te rc.local, kia mahia i ia whakaoho. sudo nano /etc/rc.local Tāpirihia te rārangi e whai ake nei i mua i te “exit0” /usr/bin/midi_over_usb Puta atu i te Nano ka tiakina te file ka whakaara ano i te Pi. sudo reboot Rarangihia nga tauranga MIDI e waatea ana. amidi -l Ki te tika te whirihora o te MIDI, ko te whakahau whakamutunga me whakaputa he mea rite ki: Dir Device Name IO hw:0,0 f_midi IO hw:0,0 f_midi

Tāutahia ngā Whare Pukapuka Python

Ma tenei waahanga e whakamarama me pehea te whakauru i o maatau whare pukapuka pai mo Python 2.x.

MIDO

Ko Mido he whare pukapuka ngawari ki te whakamahi mo te whakahaere i nga raraunga MIDI. Ka whakawhirinaki ki te rt-midi backend, te whare pukapuka reo, me Jack. Whakauruhia nga whakahau e whai ake nei ki te raupapa: Me whakaatu te putanga kotahi te tauranga 'Midi Through' me tetahi atu tauranga. Mena ka penei, kei te pai katoa. *Tuhipoka: i Mido, ko te ingoa tauranga ko te aho katoa e mau ana ki nga korukī kotahi, engari ka taea te tapahi i te ingoa ki te aho i mua i te koroni. I runga i tenei miihini, ko te aho: 'f_midi:f_midi 16:0'. Mo te example, he rite enei whakahau e rua

PIPIO

Ka whakamahia e matou te whare pukapuka pigpio ki te hono ki nga titi GPIO. Kua kitea e matou he pai ake tenei whare pukapuka, he maamaa ake i te tikanga paerewa mo te atanga ki nga taputapu a te Pi (RPi.GPIO). Ki te hiahia koe ki te whakamahi i tetahi atu whare pukapuka, whakatikahia te waehere. Hei whakauru i te whare pukapuka pigpio, whai i nga tohutohu i konei: http://abyz.me.uk/rpi/pigpio/download.html I mua i te whakahaere katoa o te exampi raro nei, me timata koe i te ratonga pigpio ki te kore e oti:

Python Examples

Ko te exampKa whakamahia ano hoki e matou te mahi a te whare pukapuka numpy hei huarahi ngawari ki te mapi i waenga i nga awhe e rua. I whakamahia e matou a Reaper ki te tuku me te whiwhi raraunga. Kua whirihorahia te Pi hei putanga MIDI Hardware i te tahua manakohanga a Reaper.

Whakahaerehia te GPIO me te Raraunga Tuhipoka (example_1_key_press.py) Tenei exampe whakaatu ana me pehea:

  • Whakarongo mo nga huihuinga tuhipoka 3 motuhake me te tuhipoka ma te whakamahi i tetahi ahuatanga ngawari
  • Hopukia nga okotahi ka puta ina tukuna nga raraunga kore tuhipoka ki te Pi (hei tauira, nga raraunga kawe mai i te kaapapa)
  • Maheretia te tere tuhipoka ki te PWM o te titi putanga

Kawemai i nga whare pukapuka e tika ana, hangaia te ahanoa pi mai i te whare pukapuka pigpio, ka whakatuwhera i te tauranga whakaputa: Ko te paraka ngana/hopu ko te hopu i nga hapa ka puta mai i etahi atu momo raraunga MIDI e tukuna ana (hei tauira, nga whakahaere waka me etahi atu). i te Tika: whakamatau: #Ka taraihia e tenei nga raraunga kore-note katoa mo te msg i roto i te port.iter_pending(): # mena he karere kei te tatari mena(msg.type == 'note_on'): # mena kei te Note On message out = interp(msg.velocity, [0,127],[0,255]) # scale velocity from 0-127 to 0-255 #filter the data by note note 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) atu: # ki te kore te karere i te Note On (hei tauira. Weto) 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) hāunga AttributeError he hapa: tā("Hapa karekau") haere

Whakahaerehia te GPIO me nga Wira Whakatau me te Pitch Wheels (example_2_wheels.py)
Ko tenei exampe whakaatu ana me pehea:

  • Whakarongo mo te Pitch me te Raraunga Mod ka tātari ma te momo
  • Maherehia nga raraunga ki te PWM o te titi whakaputa

Ko tenei exampHe rite ki nga korero o runga ake nei, me enei momo karere:

  • Ko te wira Pitch he momo pitchwheel me te uara o msg.pitch
  • Ko te Mod Wheel he momo Kaiwhakahaere Tonu tonu control_change me te tawhā mana o msg.control = 1 (te nama CC) me te uara o te msg.value

Whakaputa Raraunga MIDI mai i te Takahanga GPIO (gpio_event.py)

Ko tenei exampe whakaatu ana me pehea:

  • Whakamahia he haukoti kia kitea he pehi patene
  • Tukuna nga raraunga MIDI mai i te Pi ki tetahi atu taputapu

Whakatuwheratia te tauranga whakaputa, hanga kia rua nga karere ka tatū te titi GPIO hei whakauru. Ko tenei exampKo te whakaaro he patene e herea ana ki te titi 21, kia piki teitei te titi ina pehia te paatene: Ko enei e whai ake nei ko nga mahi waea whakahoki ka kiia ka pehia, ka tukuna ranei te paatene. Ko nga tauranga whakaputa tuku () mahi ka tuku noa i te karere ki waho o te tauranga: Ko nga kaiwhakarongo waea hoki ka rere ki muri, kare e hiahia kia aro atu:

Whakahokihia he MIDI File

Ko tenei exampe whakaatu ana me pehea:

  • Utaina he MIDI file i roto i te taiao hōtaka
  • Purei te file .

Ko tenei exampka whakaaro he MIDI koe file huaina midi_file.mid i roto i te whaiaronga rite ki to tuhinga python: kawemai te mido mai i te mido kawemai a MidiFile mai i te kawemai mido MetaMessage tauranga = mido.open_output('f_midi') mid = MidiFile('midi_file.mid') while Pono: mo te msg i MidiFile('midi_file.mid').play(): port.send(msg)

Tuhinga / Rauemi

Rahipere Pi OSA MIDI Poari [pdf] Pukapuka Kaiwhakamahi
OSA MIDI, Poari

Tohutoro

Waiho he korero

Ka kore e whakaputaina to wahitau imeera. Kua tohua nga mara e hiahiatia ana *