Raspberry-Pi-OSA-MIDI-Board-LOGO

Raspberry Pi OSA MIDI тақтасы

Raspberry-Pi-OSA-MIDI-Board-PRODUCT

MIDI үшін Raspberry Pi орнату

Бұл нұсқаулықта жаңадан орнатылған Raspberry Pi құрылғысын алу және оны операциялық жүйеде табылған MIDI енгізу/шығару құрылғысы ретінде пайдалану жолы көрсетіледі. Ол сондай-ақ кейбір бұрынғы мүмкіндіктерді бередіampБағдарламалау ортасына MIDI деректерін алу үшін әртүрлі Python кітапханаларын пайдалану. ЖАҢАРТУ – 11 жылдың 2021 қыркүйегі.: Бұл нұсқаулық Raspberry Pi операциялық жүйесінің соңғы нұсқасына қатысты кейбір мәселелерді шешу үшін жаңартылды, сонымен қатар алдын ала орнатылған сценарийлері бар толық кескінді жүктеп алуға және осы жерден толық конфигурациялауға болады.

Бізге не керек

  • Raspberry Pi A+/B+/2/3B/3B+/4B
  • Raspberry Pi үшін MIDI тақтасы
  • MicroSD картасы•4 нейлон M2.5 бұрандалар жинағы
  • 4 нейлоннан тұратын M2.5*11 мм әйелден әйелге арналған тіректердің жиынтығы
  • 4 нейлоннан тұратын M2.5*5мм еркек пен әйелге арналған тіректердің жиынтығы

Ассамблея

Төмендегі суретте көрсетілгендей Raspberry Pi-ді MIDI тақтасымен бірге жинау үшін нейлон бұрандалары мен тіректерді пайдаланыңыз:

Raspberry-Pi-OSA-MIDI-тақта-1

Бірінші рет орнату

Біз барлық бұрынғыларды сынадықampRasperry Pi OS пайдаланатын Pi 4B құрылғысында, 2020 жылғы мамырдағы нұсқасы). Бірінші рет Pi орнату үшін экран мен пернетақтаны пайдалану қажет. Содан кейін Pi операциялық жүйесіне қол жеткізу үшін таңдау әдісін пайдаланыңыз. Егер басқаша көрсетілмесе, барлық қадамдар міндетті болып табылады

Орнату

Жаңарту/Жаңарту
Мұнда сипатталғандай жаңартуды және жаңартуды орындаңыз: 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 Up құрылғысын 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 composite” | 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
  • Оны Nano көмегімен өңдеңіз
    sudo nano /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 Foundation echo 0x0104 > idProduct # Көпфункциялы композиттік гаджет echo 0x0100 > bcd.k1.0.0Device echo 0x0200 > bcd.2Bs0 # bcd.409Bsd9876543210 > bcd.0Bsd409 0x409 echo “fedcba0” > strings/409xXNUMX/serialnumber echo “OSA Electronics” > strings/XNUMXxXNUMX/manufacturer echo “MIDI USB Device” > strings/XNUMXxXNUMX/product ls /sys/class/UDC және Exo сақтау > file (Ctrl+X, Y, қайтару). Сценарийге қоңырауды rc.local файлына қосыңыз, сонда ол әрбір іске қосу кезінде орындалады. sudo nano /etc/rc.local «exit0» алдында келесі жолды қосыңыз /usr/bin/midi_over_usb Nano жүйесінен шығып, file және Pi қайта жүктеңіз. sudo reboot Қол жетімді MIDI порттарын тізімдеңіз. amidi -l MIDI дұрыс конфигурацияланса, соңғы пәрмен мынаған ұқсас нәрсені шығаруы керек: Dir Device Name IO hw:0,0 f_midi IO hw:0,0 f_midi

Python кітапханаларын орнатыңыз

Бұл бөлім Python 2.x үшін қалаулы кітапханаларды орнату жолын түсіндіреді.

MIDO

Mido – MIDI деректерін өңдеуге арналған пайдалану оңай кітапхана. Ол rt-midi серверіне, дыбыс кітапханасына және Джекке негізделген. Келесі пәрмендерді ретімен енгізіңіз: шығыс бір «Midi Through» портын және бір қосымша портты көрсетуі керек. Егер солай болса, бәрі жақсы. *Ескертпе: Mido тілінде порт атауы жалғыз тырнақшаға алынған бүкіл жол болып табылады, бірақ атауды қос нүктенің алдындағы жолға дейін қысқартуға болады. Бұл құрылғыда жол: 'f_midi:f_midi 16:0'. Мысалыample, бұл екі команда эквивалентті

PIGPIO

Біз GPIO түйреуіштерімен интерфейс жасау үшін pigpio кітапханасын қолданамыз. Біз бұл кітапхананы Pi аппараттық құралымен (RPi.GPIO) интерфейстің стандартты әдісіне қарағанда тұрақтырақ және икемді деп таптық. Басқа кітапхананы пайдаланғыңыз келсе, кодты сәйкесінше өңдеңіз. Pigpio кітапханасын орнату үшін мына жердегі нұсқауларды орындаңыз: http://abyz.me.uk/rpi/pigpio/download.html Бұрынғылардың барлығын іске қосқанға дейінampЕгер орындалмаса, пигпио қызметін бастау керек:

Python Examples

бұрынғыamples сонымен қатар numpy кітапханасының интерп функциясын екі ауқым арасында салыстырудың оңай жолы ретінде пайдаланады. Біз деректерді жіберу және алу үшін Reaper қолданбасын пайдаландық. Pi Reaper теңшелімдер мәзірінде Аппараттық MIDI шығысы ретінде конфигурацияланған.

Ескертпе деректерімен GPIO басқару (мысалыample_1_key_press.py) Бұл бұрынғыample мынаны көрсетеді:

  • Қарапайым шартты пайдаланып, 3 нақты жазба және ескертпе оқиғасын тыңдаңыз
  • Жазба емес деректер Pi-ге жіберілген кезде пайда болатын ерекшеліктерді ұстаңыз (мысалы, секвенсерден тасымалдау деректері)
  • Нотаның жылдамдығын шығыс түйреуіштің PWM мәніне салыңыз

Тиісті кітапханаларды импорттаңыз, pigpio кітапханасынан pi нысанын жасаңыз және шығыс портын ашыңыз: try/catch блогы жіберілетін MIDI деректерінің басқа түрлерінен (мысалы, тасымалдауды басқару элементтері, т.б.) туындайтын қателерді ұстауға арналған. while True: try: #Бұл порт.iter_pending(): # бұл хабар күтуде болса, if(msg.type == 'note_on'): # егер ол Ескертпе хабарламасы шығарылған болса. = interp(msg.velocity, [0,127],[0,255]) # шкала жылдамдығы 0-127 мен 0-255 #егер (msg.note == 53): pi1.set_PWM_dutycycle(2, шығыс) ескертпе нөмірі бойынша деректерді сүзіңіз ) elif(msg.note == 55): pi1.set_PWM_dutycycle(3, out) elif(msg.note == 57): pi1.set_PWM_dutycycle(4, out) басқа: # егер хабар Ескертпе қосулы болмаса (мысалы, Ескертпе). Өшірулі) 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) қате ретінде AttributeError: басып шығару («Қате жойылды») өту

GPIO модулін мод және қадамдық дөңгелектермен басқарыңыз (мысалыample_2_wheels.py)
Бұл бұрынғыample мынаны көрсетеді:

  • Pitch және Mod деректерін тыңдаңыз және оларды түрі бойынша сүзіңіз
  • Деректерді шығыс істікшелі PWM-ге салыңыз

Бұл бұрынғыample келесі хабар түрлерімен жоғарыдағыға ұқсас:

  • Қадам дөңгелегі msg.pitch мәні бар қадамдық дөңгелек түрі болып табылады
  • Мод дөңгелегі - msg.control = 1 басқару параметрі (CC нөмірі) және msg.value мәні бар control_change түріндегі үздіксіз контроллер.

GPIO оқиғасынан MIDI деректерін шығару (gpio_event.py)

Бұл бұрынғыample мынаны көрсетеді:

  • Түймені басуды анықтау үшін үзуді пайдаланыңыз
  • MIDI деректерін Pi құрылғысынан басқа құрылғыға жіберіңіз

Шығыс портын ашыңыз, екі хабарлама жасаңыз және GPIO істікшесін кіріс ретінде орнатыңыз. Бұл бұрынғыample 21 түйреуішке байланған түйме бар деп болжайды, осылайша түйме басылғанда пин ЖОҒАРЫ болады: Төменде түйме басылғанда немесе босатылғанда шақырылатын кері шақыру функциялары берілген. Шығыс порттарының send() функциясы хабарламаны порттан жай ғана жібереді: Кері қоңырауларды тыңдаушылар фондық режимде жұмыс істейді және басқа назар аударуды қажет етпейді:

MIDI ойнату File

Бұл бұрынғыample мынаны көрсетеді:

  • MIDI жүктеңіз file бағдарламалау ортасында
  • ойнату file .

Бұл бұрынғыampСізде MIDI бар деп болжайды file midi_ деп аталадыfile.mid сіздің питон сценарийіңізбен бірдей каталогта: mido импорттау Midi ішінен mido импорттауFile mido импортынан MetaMessage порты = mido.open_output('f_midi') mid = MidiFile('midi_file.mid') кезінде True: Midi тіліндегі хабар үшінFile('midi_file.mid').play(): port.send(хабарлама)

Құжаттар / Ресурстар

Raspberry Pi OSA MIDI тақтасы [pdf] Пайдаланушы нұсқаулығы
OSA MIDI, тақта

Анықтамалар

Пікір қалдырыңыз

Электрондық пошта мекенжайыңыз жарияланбайды. Міндетті өрістер белгіленген *