રાસ્પબેરી-પી-ઓએસએ-મીડી-બોર્ડ-લોગો

રાસ્પબેરી Pi OSA MIDI બોર્ડ

રાસ્પબેરી-પી-ઓએસએ-MIDI-બોર્ડ-ઉત્પાદન

MIDI માટે રાસ્પબેરી પાઇ સેટ કરી રહ્યું છે

આ માર્ગદર્શિકા બતાવશે કે કેવી રીતે તાજી સ્થાપિત રાસ્પબેરી પાઇ લેવી અને તેને OS-શોધવા યોગ્ય MIDI I/O ઉપકરણ તરીકે કેવી રીતે સંચાલિત કરવું. તે કેટલાક ભૂતપૂર્વ પણ પ્રદાન કરશેampપ્રોગ્રામિંગ પર્યાવરણમાં અને બહાર MIDI ડેટા મેળવવા માટે વિવિધ પાયથોન લાઇબ્રેરીઓનો ઉપયોગ કરીને. અપડેટ – સપ્ટે 11, 2021.: આ માર્ગદર્શિકા નવીનતમ Raspberry Pi OS સંસ્કરણ સાથેની કેટલીક સમસ્યાઓને ઠીક કરવા માટે અપડેટ કરવામાં આવી છે, તમે પૂર્વ-ઇન્સ્ટોલ કરેલી સ્ક્રિપ્ટ્સ સાથે સંપૂર્ણ છબી પણ ડાઉનલોડ કરી શકો છો અને અહીં સંપૂર્ણ રીતે ગોઠવી શકો છો.

આપણને શું જોઈએ છે

  • રાસ્પબેરી Pi A+/B+/2/3B/3B+/4B
  • રાસ્પબેરી પી માટે MIDI બોર્ડ
  • એક માઇક્રોએસડી કાર્ડ•4 નાયલોન M2.5 સ્ક્રૂનો સેટ
  • 4 નાયલોન M2.5*11mm ફીમેલ ટુ ફીમેલ સ્ટેન્ડઓફનો સેટ
  • 4 નાયલોન M2.5*5mm પુરૂષથી સ્ત્રી સ્ટેન્ડઓફનો સમૂહ

એસેમ્બલી

નીચેની છબી પર બતાવ્યા પ્રમાણે, MIDI બોર્ડ સાથે રાસ્પબેરી પાઈને એસેમ્બલી કરવા માટે નાયલોન સ્ક્રૂ અને સ્ટેન્ડઓફનો ઉપયોગ કરો:

રાસ્પબેરી-પી-ઓએસએ-MIDI-બોર્ડ-1

પ્રથમ વખત સેટઅપ

અમે તમામ ભૂતપૂર્વ પરીક્ષણ કર્યુંampઆ દસ્તાવેજમાં રાસ્પરી પી ઓએસનો ઉપયોગ કરીને Pi 4B પર, મે 2020 સંસ્કરણ). પ્રથમ વખત, Pi સેટ કરવા માટે સ્ક્રીન અને કીબોર્ડનો ઉપયોગ કરવો જરૂરી છે. ત્યારબાદ, Pi ના OS ને ઍક્સેસ કરવા માટે તમારી પસંદગીની પદ્ધતિનો ઉપયોગ કરો. જ્યાં સુધી અન્યથા જણાવ્યું ન હોય ત્યાં સુધી તમામ પગલાં ફરજિયાત છે

સ્થાપન

અપડેટ/અપગ્રેડ કરો
અપડેટ કરો અને અહીં વર્ણવ્યા પ્રમાણે અપગ્રેડ કરો: https://www.raspberrypi.org/documentation/raspbian/updating.md

નેટવર્ક ગોઠવણી (વૈકલ્પિક)
જો તમે અન્ય મશીનમાંથી Pi માં SSH' કરી રહ્યાં હોવ, તો Pi ને એક નિશ્ચિત IP સરનામું આપવું યોગ્ય છે: https://www.modmypi.com/blog/how-to-give-your-raspberry-pi-a-static-ip-address-update નેટવર્ક સુરક્ષા સેટિંગ્સને Pi માં ઉમેરવાનો પણ સારો વિચાર છે જેથી તે આપમેળે નેટવર્ક સાથે કનેક્ટ થઈ જાય: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

Pi અપને USB OTG ગેજેટ તરીકે સેટ કરો
Pi પર ટર્મિનલ ખોલો અને આ પ્રક્રિયાને અનુસરો:

  • USB ડ્રાઇવરને dwc2 પર સેટ કરો
    echo “dtoverlay=dwc2” | sudo tee -a /boot/config.txt
  • dwc2 ડ્રાઇવરને સક્રિય કરો
    echo “dwc2” | sudo tee -a /etc/modules
  • lib સંયુક્ત ડ્રાઇવરને સક્ષમ કરો
    echo “lib કમ્પોઝિટ” | sudo tee -a /etc/modules
  • MIDI ગેજેટને સક્ષમ કરો 
    echo “g_midi” | sudo tee -a /etc/modules

રૂપરેખાંકન સ્ક્રિપ્ટ બનાવો:

  • બનાવો file
    sudo touch /usr/bin/midi_over_usb
  • તેને એક્ઝેક્યુટેબલ બનાવો
    sudo chmod +x /usr/bin/midi_over_usb
  • નેનો સાથે સંપાદિત કરો
    સુડો નેનો /usr/bin/midi_over_usb

માં નીચેના પેસ્ટ કરો file, આવશ્યકતા મુજબ ઉત્પાદન અને ઉત્પાદકની સ્ટ્રીંગમાં સંપાદનો કરો. cd /sys/kernel/config/usb_gadget/ mkdir -p midi_over_usb cd midi_over_usb echo 0x1d6b > idVendor # Linux ફાઉન્ડેશન echo 0x0104 > idProduct # મલ્ટિફંક્શન કમ્પોઝિટ ગેજેટ ઇકો 0x0100 > bcd1.0.0 > USB0p0200 > bcdirc. 2x0 echo “fedcba409” > strings/9876543210x0/serialnumber echo “OSA Electronics” > strings/409x0/manufacturer echo “MIDI USB ઉપકરણ” > strings/409x0/product ls /sys/class/Decno Save file (Ctrl+X, Y, વળતર). rc.local પર સ્ક્રિપ્ટમાં કૉલ ઉમેરો, જેથી તે દરેક સ્ટાર્ટઅપ પર એક્ઝિક્યુટ થાય. sudo nano /etc/rc.local “exit0” પહેલા નીચેની લીટી ઉમેરો /usr/bin/midi_over_usb નેનોમાંથી બહાર નીકળો અને સેવ કરો file અને Pi રીબુટ કરો. sudo રીબૂટ ઉપલબ્ધ MIDI પોર્ટની યાદી બનાવો. amidi -l જો MIDI યોગ્ય રીતે રૂપરેખાંકિત થયેલ હોય, તો છેલ્લો આદેશ કંઈક આના જેવું જ આઉટપુટ કરે છે: Dir ઉપકરણનું નામ IO hw:0,0 f_midi IO hw:0,0 f_midi

પાયથોન લાઇબ્રેરીઓ ઇન્સ્ટોલ કરો

આ વિભાગ Python 2.x માટે અમારી પસંદગીની લાઇબ્રેરીઓ કેવી રીતે ઇન્સ્ટોલ કરવી તે સમજાવશે.

MIDO

Mido એ MIDI ડેટાને હેન્ડલ કરવા માટે ઉપયોગમાં સરળ લાઇબ્રેરી છે. તે આરટી-મીડી બેકએન્ડ, એસાઉન્ડ લાઇબ્રેરી અને જેક પર આધાર રાખે છે. નીચેના આદેશોને અનુક્રમમાં ઇનપુટ કરો: આઉટપુટમાં એક 'મિડી થ્રુ' પોર્ટ અને એક વધારાનું પોર્ટ દર્શાવવું જોઈએ. જો આ કિસ્સો છે, તો બધું સારું છે. *નોંધ: મિડોમાં, પોર્ટનું નામ એ એક જ અવતરણમાં બંધાયેલ સમગ્ર સ્ટ્રિંગ છે, પરંતુ કોલોન પહેલાં સ્ટ્રિંગમાં નામને કાપી નાખવું શક્ય છે. આ મશીન પર, શબ્દમાળા છે: 'f_midi:f_midi 16:0'. માજી માટેample, આ બે આદેશો સમાન છે

PIGPIO

અમે GPIO પિન સાથે ઇન્ટરફેસ કરવા માટે પિગપિયો લાઇબ્રેરીનો ઉપયોગ કરીએ છીએ. અમે આ લાઇબ્રેરીને Pi ના હાર્ડવેર (RPi.GPIO) સાથે ઇન્ટરફેસ કરવાની માનક પદ્ધતિ કરતાં વધુ સ્થિર અને લવચીક હોવાનું શોધી કાઢ્યું છે. જો તમે બીજી લાઇબ્રેરીનો ઉપયોગ કરવા માંગતા હો, તો તે મુજબ કોડમાં ફેરફાર કરો. પિગપિયો લાઇબ્રેરી ઇન્સ્ટોલ કરવા માટે, અહીં આપેલી સૂચનાઓને અનુસરો: http://abyz.me.uk/rpi/pigpio/download.html ભૂતપૂર્વ તમામ ચલાવતા પહેલાampનીચે આપેલ છે, જો પૂર્ણ ન થાય તો તમારે પિગપીઓ સેવા શરૂ કરવી જોઈએ:

અજગર સampલેસ

માજીamples બે રેન્જ વચ્ચે નકશા બનાવવાની સરળ રીત તરીકે નમ્પી લાઇબ્રેરીના ઇન્ટરપ ફંક્શનનો પણ ઉપયોગ કરે છે. અમે ડેટા મોકલવા અને પ્રાપ્ત કરવા માટે રીપરનો ઉપયોગ કર્યો. રીપરના પસંદગીના મેનૂમાં Pi ને હાર્ડવેર MIDI આઉટપુટ તરીકે ગોઠવેલ છે.

નોંધ ડેટા સાથે GPIO ને નિયંત્રિત કરો (ઉદાample_1_key_press.py) આ ભૂતપૂર્વampકેવી રીતે કરવું તે બતાવે છે:

  • સરળ શરતનો ઉપયોગ કરીને 3 વિશિષ્ટ નોંધ-ઓન અને નોટ-ઓફ ઇવેન્ટ્સ માટે સાંભળો
  • જ્યારે નોન-નોટ ડેટા Pi ને મોકલવામાં આવે ત્યારે ઉદ્ભવતા અપવાદોને પકડો (દા.ત. સિક્વન્સરમાંથી ટ્રાન્સપોર્ટ ડેટા)
  • આઉટપુટ પિનના PWM પર નોટ વેગનો નકશો બનાવો

સંબંધિત લાઇબ્રેરીઓ આયાત કરો, pigpio લાઇબ્રેરીમાંથી pi ઑબ્જેક્ટ બનાવો અને આઉટપુટ પોર્ટ ખોલો: પ્રયાસ/કેચ બ્લોક એ ભૂલોને પકડવાનો છે જે અન્ય પ્રકારના MIDI ડેટા મોકલવામાં આવે છે (દા.ત. પરિવહન નિયંત્રણો વગેરે). જ્યારે ટ્રુ: પ્રયાસ કરો: #આ port.iter_pending(): # જો કોઈ સંદેશ બાકી હોય તો (msg.type == 'note_on'): # જો તે નોટ ઓન મેસેજ આઉટ હોય તો = interp(msg.velocity, [0,127],[0,255]) # સ્કેલ વેગ 0-127 થી 0-255 # નોંધ નંબર દ્વારા ડેટાને ફિલ્ટર કરો જો(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: # જો મેસેજ નોટ ઓન નથી (દા.ત. નોંધ બંધ) 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. સેટ_PWM_dutycycle(4, 0) એટ્રિબ્યુટ એરર સિવાય ભૂલ તરીકે: પ્રિન્ટ ("ભૂલ બાકાત") પાસ

મોડ અને પિચ વ્હીલ્સ સાથે GPIO ને નિયંત્રિત કરો (દાample_2_wheels.py)
આ માજીampકેવી રીતે કરવું તે બતાવે છે:

  • પિચ અને મોડ ડેટા સાંભળો અને તેમને પ્રકાર દ્વારા ફિલ્ટર કરો
  • આઉટપુટ પિનના PWM પર ડેટાને મેપ કરો

આ માજીample એ ઉપરના જેવું જ છે, આ સંદેશ પ્રકારો સાથે:

  • પિચ વ્હીલ msg.pitch ની કિંમત સાથેનું પિચવ્હીલ પ્રકાર છે
  • મોડ વ્હીલ એ msg.control = 1 (CC નંબર) ના નિયંત્રણ પરિમાણ અને msg.value ની કિંમત સાથેનો સતત નિયંત્રક પ્રકાર control_change છે.

GPIO ઇવેન્ટ (gpio_event.py) માંથી MIDI ડેટા આઉટપુટ કરો

આ માજીampકેવી રીતે કરવું તે બતાવે છે:

  • બટન દબાવવા માટે વિક્ષેપનો ઉપયોગ કરો
  • Pi થી બીજા ઉપકરણ પર MIDI ડેટા મોકલો

આઉટપુટ પોર્ટ ખોલો, બે સંદેશાઓ બનાવો અને GPIO પિનને ઇનપુટ તરીકે સેટ કરો. આ માજીample ધારે છે કે પિન 21 સાથે એક બટન બંધાયેલું છે, જેથી જ્યારે બટન દબાવવામાં આવે ત્યારે તે પિન ઊંચો જાય છે: જ્યારે બટન દબાવવામાં આવે છે અથવા છોડવામાં આવે છે ત્યારે નીચે આપેલા કૉલબેક કાર્યો કહેવાય છે. આઉટપુટ પોર્ટ સેન્ડ() ફંક્શન ફક્ત પોર્ટની બહાર મેસેજ મોકલે છે: કોલબેક શ્રોતાઓ બેકગ્રાઉન્ડમાં ચાલે છે અને વધુ ધ્યાન આપવાની જરૂર નથી.

એક MIDI પ્લેબેક File

આ માજીampકેવી રીતે કરવું તે બતાવે છે:

  • MIDI લોડ કરો file પ્રોગ્રામિંગ વાતાવરણમાં
  • પ્લેબેક ધ file .

આ માજીampલેસ ધારે છે કે તમારી પાસે MIDI છે file મીડી_ કહેવાયfile.mid તમારી પાયથોન સ્ક્રિપ્ટ જેવી જ ડિરેક્ટરીમાં: મિડો આયાત મિડીમાંથી મિડો આયાત કરોFile mido આયાત MetaMessage પોર્ટથી = mido.open_output('f_midi') mid = MidiFile('મિડી_file.mid') જ્યારે True: Midi માં msg માટેFile('મિડી_file.mid').play(): port.send(msg)

દસ્તાવેજો / સંસાધનો

રાસ્પબેરી Pi OSA MIDI બોર્ડ [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા
OSA MIDI, બોર્ડ

સંદર્ભો

એક ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો ચિહ્નિત થયેલ છે *