Raspberry Pi OSA MIDI ਬੋਰਡ

MIDI ਲਈ Raspberry Pi ਸੈੱਟ ਕਰਨਾ
ਇਹ ਗਾਈਡ ਦਰਸਾਏਗੀ ਕਿ ਤਾਜ਼ੇ ਇੰਸਟਾਲ ਕੀਤੇ ਰਸਬੇਰੀ ਪਾਈ ਨੂੰ ਕਿਵੇਂ ਲੈਣਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਇੱਕ OS-ਖੋਜਯੋਗ MIDI I/O ਡਿਵਾਈਸ ਦੇ ਤੌਰ 'ਤੇ ਚਲਾਉਣਾ ਹੈ। ਇਹ ਕੁਝ ਸਾਬਕਾ ਵੀ ਪ੍ਰਦਾਨ ਕਰੇਗਾampਪ੍ਰੋਗਰਾਮਿੰਗ ਵਾਤਾਵਰਣ ਵਿੱਚ ਅਤੇ ਬਾਹਰ MIDI ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਵੱਖ-ਵੱਖ ਪਾਈਥਨ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ les. ਅੱਪਡੇਟ - ਸਤੰਬਰ 11, 2021।: ਇਸ ਗਾਈਡ ਨੂੰ ਨਵੀਨਤਮ ਰਾਸਬੇਰੀ Pi OS ਸੰਸਕਰਣ ਦੇ ਨਾਲ ਕੁਝ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਤੁਸੀਂ ਪਹਿਲਾਂ ਤੋਂ ਸਥਾਪਤ ਸਕ੍ਰਿਪਟਾਂ ਦੇ ਨਾਲ ਇੱਕ ਪੂਰੀ ਚਿੱਤਰ ਨੂੰ ਵੀ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇੱਥੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸੰਰਚਿਤ ਕਰ ਸਕਦੇ ਹੋ।
ਸਾਨੂੰ ਕੀ ਚਾਹੀਦਾ ਹੈ
- ਰਸਬੇਰੀ Pi A+/B+/2/3B/3B+/4B
- ਰਸਬੇਰੀ ਪਾਈ ਲਈ MIDI ਬੋਰਡ
- ਇੱਕ ਮਾਈਕ੍ਰੋਐੱਸਡੀ ਕਾਰਡ•4 ਨਾਈਲੋਨ M2.5 ਪੇਚਾਂ ਦਾ ਸੈੱਟ
- 4 ਨਾਈਲੋਨ M2.5*11mm ਔਰਤ ਤੋਂ ਔਰਤ ਸਟੈਂਡਆਫ ਦਾ ਸੈੱਟ
- 4 ਨਾਈਲੋਨ M2.5*5mm ਮਰਦ ਤੋਂ ਔਰਤ ਸਟੈਂਡਆਫ ਦਾ ਸੈੱਟ
ਅਸੈਂਬਲੀ
MIDI ਬੋਰਡ ਦੇ ਨਾਲ ਰਾਸਬੇਰੀ ਪਾਈ ਨੂੰ ਅਸੈਂਬਲ ਕਰਨ ਲਈ ਨਾਈਲੋਨ ਦੇ ਪੇਚਾਂ ਅਤੇ ਸਟੈਂਡਆਫਸ ਦੀ ਵਰਤੋਂ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਹੇਠਾਂ ਚਿੱਤਰ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ:

ਪਹਿਲੀ ਵਾਰ ਸੈੱਟਅੱਪ
ਅਸੀਂ ਸਾਰੇ ਸਾਬਕਾ ਦੀ ਜਾਂਚ ਕੀਤੀamples ਇਸ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਇੱਕ Pi 4B ਉੱਤੇ Rasperry Pi OS, ਸੰਸਕਰਣ ਮਈ 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 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 ਕੰਪੋਜ਼ਿਟ” | 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 - ਇਸਨੂੰ ਨੈਨੋ ਨਾਲ ਸੰਪਾਦਿਤ ਕਰੋ
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 ਫਾਊਂਡੇਸ਼ਨ echo 0x0104 > idProduct # ਮਲਟੀਫੰਕਸ਼ਨ ਕੰਪੋਜ਼ਿਟ ਗੈਜੇਟ ਈਕੋ 0x0100 > bcdir1.0.0 > bcdir0 > USB0200p2. 0x409 echo “fedcba9876543210” > ਸਟ੍ਰਿੰਗਜ਼/0x409/ਸੀਰੀਅਲ ਨੰਬਰ ਈਕੋ “OSA ਇਲੈਕਟ੍ਰਾਨਿਕਸ” > ਸਟ੍ਰਿੰਗਜ਼/0x409/ਨਿਰਮਾਤਾ ਈਕੋ “MIDI USB ਡਿਵਾਈਸ” > ਸਟ੍ਰਿੰਗਜ਼/0x409/ਉਤਪਾਦ ls /sys/class/UDC ਨੂੰ ਸੇਵ ਕਰੋ ਅਤੇ ਨਾ ਕਰੋ 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
ਪਾਈਥਨ ਲਾਇਬ੍ਰੇਰੀਆਂ ਸਥਾਪਿਤ ਕਰੋ
ਇਹ ਭਾਗ ਦੱਸੇਗਾ ਕਿ ਪਾਈਥਨ 2.x ਲਈ ਸਾਡੀਆਂ ਪਸੰਦੀਦਾ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸਥਾਪਿਤ ਕਰਨਾ ਹੈ।
MIDO
Mido MIDI ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਵਰਤੋਂ ਵਿੱਚ ਆਸਾਨ ਲਾਇਬ੍ਰੇਰੀ ਹੈ। ਇਹ rt-midi ਬੈਕਐਂਡ, asound ਲਾਇਬ੍ਰੇਰੀ, ਅਤੇ ਜੈਕ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਕ੍ਰਮ ਵਿੱਚ ਹੇਠ ਲਿਖੀਆਂ ਕਮਾਂਡਾਂ ਇਨਪੁਟ ਕਰੋ: ਆਉਟਪੁੱਟ ਨੂੰ ਇੱਕ 'Midi Through' ਪੋਰਟ ਅਤੇ ਇੱਕ ਵਾਧੂ ਪੋਰਟ ਦਿਖਾਉਣੀ ਚਾਹੀਦੀ ਹੈ। ਜੇ ਇਹ ਕੇਸ ਹੈ, ਤਾਂ ਸਭ ਕੁਝ ਠੀਕ ਹੈ. *ਨੋਟ: ਮਿਡੋ ਵਿੱਚ, ਪੋਰਟ ਦਾ ਨਾਮ ਸਿੰਗਲ ਕੋਟਸ ਵਿੱਚ ਬੰਦ ਸਾਰੀ ਸਤਰ ਹੈ, ਪਰ ਕੋਲਨ ਤੋਂ ਪਹਿਲਾਂ ਨਾਮ ਨੂੰ ਸਟ੍ਰਿੰਗ ਵਿੱਚ ਕੱਟਣਾ ਸੰਭਵ ਹੈ। ਇਸ ਮਸ਼ੀਨ 'ਤੇ, ਸਤਰ ਹੈ: 'f_midi:f_midi 16:0'। ਸਾਬਕਾ ਲਈample, ਇਹ ਦੋ ਕਮਾਂਡਾਂ ਬਰਾਬਰ ਹਨ
PIGPIO
ਅਸੀਂ GPIO ਪਿੰਨਾਂ ਨਾਲ ਇੰਟਰਫੇਸ ਕਰਨ ਲਈ pigpio ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਅਸੀਂ ਇਸ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ Pi ਦੇ ਹਾਰਡਵੇਅਰ (RPi.GPIO) ਨਾਲ ਇੰਟਰਫੇਸ ਕਰਨ ਦੇ ਮਿਆਰੀ ਢੰਗ ਨਾਲੋਂ ਵਧੇਰੇ ਸਥਿਰ ਅਤੇ ਲਚਕਦਾਰ ਪਾਇਆ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਹੋਰ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਉਸ ਅਨੁਸਾਰ ਕੋਡ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰੋ। ਪਿਗਪੀਓ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਲਈ, ਇੱਥੇ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ: http://abyz.me.uk/rpi/pigpio/download.html ਸਭ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਸਾਬਕਾampਹੇਠਾਂ, ਤੁਹਾਨੂੰ ਪਿਗਪੀਓ ਸੇਵਾ ਸ਼ੁਰੂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਜੇਕਰ ਨਹੀਂ ਕੀਤੀ ਗਈ:
ਪਾਇਥਨ ਐਕਸamples
ਸਾਬਕਾamples ਨੰਪੀ ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਇੰਟਰਪ ਫੰਕਸ਼ਨ ਨੂੰ ਦੋ ਰੇਂਜਾਂ ਵਿਚਕਾਰ ਮੈਪ ਕਰਨ ਦੇ ਆਸਾਨ ਤਰੀਕੇ ਵਜੋਂ ਵੀ ਵਰਤਦਾ ਹੈ। ਅਸੀਂ ਡਾਟਾ ਭੇਜਣ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਰੀਪਰ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। Pi ਨੂੰ ਰੀਪਰ ਦੇ ਤਰਜੀਹਾਂ ਮੀਨੂ ਵਿੱਚ ਇੱਕ ਹਾਰਡਵੇਅਰ MIDI ਆਉਟਪੁੱਟ ਵਜੋਂ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਨੋਟ ਡੇਟਾ ਦੇ ਨਾਲ GPIO ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ (ਉਦਾਹਰਨample_1_key_press.py) ਇਹ ਸਾਬਕਾample ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਿਵੇਂ:
- ਇੱਕ ਸਧਾਰਨ ਸ਼ਰਤ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ 3 ਖਾਸ ਨੋਟ-ਆਨ ਅਤੇ ਨੋਟ-ਆਫ ਇਵੈਂਟਾਂ ਲਈ ਸੁਣੋ
- ਉਹਨਾਂ ਅਪਵਾਦਾਂ ਨੂੰ ਫੜੋ ਜੋ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਗੈਰ-ਨੋਟ ਡੇਟਾ Pi ਨੂੰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ (ਜਿਵੇਂ ਕਿ ਸੀਕੁਏਂਸਰ ਤੋਂ ਟ੍ਰਾਂਸਪੋਰਟ ਡੇਟਾ)
- ਆਉਟਪੁੱਟ ਪਿੰਨ ਦੇ PWM ਨਾਲ ਨੋਟ ਵੇਗ ਨੂੰ ਮੈਪ ਕਰੋ
ਸੰਬੰਧਿਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਆਯਾਤ ਕਰੋ, pigpio ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਪਾਈ ਆਬਜੈਕਟ ਬਣਾਓ, ਅਤੇ ਆਉਟਪੁੱਟ ਪੋਰਟ ਖੋਲ੍ਹੋ: ਕੋਸ਼ਿਸ਼/ਕੈਚ ਬਲਾਕ ਉਹਨਾਂ ਗਲਤੀਆਂ ਨੂੰ ਫੜਨਾ ਹੈ ਜੋ ਭੇਜੇ ਜਾ ਰਹੇ MIDI ਡੇਟਾ ਦੀਆਂ ਹੋਰ ਕਿਸਮਾਂ (ਜਿਵੇਂ ਕਿ ਟ੍ਰਾਂਸਪੋਰਟ ਨਿਯੰਤਰਣ ਆਦਿ) ਤੋਂ ਪੈਦਾ ਹੁੰਦੀਆਂ ਹਨ। ਜਦਕਿ ਸਹੀ: ਕੋਸ਼ਿਸ਼ ਕਰੋ: # ਇਹ port.iter_pending() ਵਿੱਚ msg ਲਈ ਸਾਰੇ ਗੈਰ-ਨੋਟ ਡੇਟਾ ਨੂੰ ਫਿਲਟਰ ਕਰਦਾ ਹੈ: # ਜੇਕਰ ਕੋਈ ਸੁਨੇਹਾ ਲੰਬਿਤ ਹੈ if(msg.type == 'note_on'): # ਜੇਕਰ ਇਹ ਨੋਟ ਆਨ ਸੁਨੇਹਾ ਹੈ = interp(msg.velocity, [0,127],[0,255]) # ਸਕੇਲ ਵੇਗ 0-127 ਤੋਂ 0-255 ਤੱਕ # ਨੋਟ ਨੰਬਰ ਦੁਆਰਾ ਡੇਟਾ ਨੂੰ ਫਿਲਟਰ ਕਰੋ 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: # ਜੇਕਰ ਸੁਨੇਹਾ ਨੋਟ ਆਨ ਨਹੀਂ ਹੈ (ਉਦਾਹਰਨ ਲਈ ਨੋਟ) ਬੰਦ) 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)
ਇਹ ਸਾਬਕਾample ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਿਵੇਂ:
- ਪਿੱਚ ਅਤੇ ਮੋਡ ਡੇਟਾ ਲਈ ਸੁਣੋ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਕਿਸਮ ਦੁਆਰਾ ਫਿਲਟਰ ਕਰੋ
- ਆਉਟਪੁੱਟ ਪਿੰਨ ਦੇ PWM ਨਾਲ ਡੇਟਾ ਨੂੰ ਮੈਪ ਕਰੋ
ਇਹ ਸਾਬਕਾample ਉਪਰੋਕਤ ਦੇ ਸਮਾਨ ਹੈ, ਇਹਨਾਂ ਸੰਦੇਸ਼ ਕਿਸਮਾਂ ਦੇ ਨਾਲ:
- ਪਿਚ ਵ੍ਹੀਲ msg.pitch ਦੇ ਮੁੱਲ ਦੇ ਨਾਲ ਇੱਕ ਕਿਸਮ ਦਾ ਪਿੱਚ ਵੀਲ ਹੈ
- ਮਾਡ ਵ੍ਹੀਲ msg.control = 1 (CC ਨੰਬਰ) ਦੇ ਕੰਟਰੋਲ ਪੈਰਾਮੀਟਰ ਅਤੇ msg.value ਦੇ ਮੁੱਲ ਦੇ ਨਾਲ ਇੱਕ ਨਿਰੰਤਰ ਕੰਟਰੋਲਰ ਕਿਸਮ control_change ਹੈ।
ਇੱਕ GPIO ਇਵੈਂਟ (gpio_event.py) ਤੋਂ MIDI ਡੇਟਾ ਆਉਟਪੁੱਟ ਕਰੋ
ਇਹ ਸਾਬਕਾample ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਿਵੇਂ:
- ਇੱਕ ਬਟਨ ਦਬਾਉਣ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਇੱਕ ਰੁਕਾਵਟ ਦੀ ਵਰਤੋਂ ਕਰੋ
- MIDI ਡਾਟਾ Pi ਤੋਂ ਕਿਸੇ ਹੋਰ ਡਿਵਾਈਸ 'ਤੇ ਭੇਜੋ
ਆਉਟਪੁੱਟ ਪੋਰਟ ਖੋਲ੍ਹੋ, ਦੋ ਸੁਨੇਹੇ ਬਣਾਓ ਅਤੇ GPIO ਪਿੰਨ ਨੂੰ ਇੱਕ ਇਨਪੁਟ ਵਜੋਂ ਸੈੱਟਅੱਪ ਕਰੋ। ਇਹ ਸਾਬਕਾample ਇਹ ਮੰਨਦਾ ਹੈ ਕਿ ਪਿੰਨ 21 ਨਾਲ ਇੱਕ ਬਟਨ ਬੰਨ੍ਹਿਆ ਹੋਇਆ ਹੈ, ਇਸ ਲਈ ਜਦੋਂ ਬਟਨ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਪਿੰਨ ਉੱਚਾ ਹੋ ਜਾਂਦਾ ਹੈ: ਹੇਠਾਂ ਦਿੱਤੇ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਬਟਨ ਦਬਾਇਆ ਜਾਂ ਜਾਰੀ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਆਉਟਪੁੱਟ ਪੋਰਟ send() ਫੰਕਸ਼ਨ ਪੋਰਟ ਦੇ ਬਾਹਰ ਸੁਨੇਹਾ ਭੇਜਦਾ ਹੈ: ਕਾਲਬੈਕ ਸੁਣਨ ਵਾਲੇ ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਚੱਲਦੇ ਹਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਹੋਰ ਧਿਆਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ ਹੈ:
ਇੱਕ MIDI ਪਲੇਬੈਕ ਕਰੋ File
ਇਹ ਸਾਬਕਾample ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਿਵੇਂ:
- ਇੱਕ MIDI ਲੋਡ ਕਰੋ file ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਾਤਾਵਰਣ ਵਿੱਚ
- ਪਲੇਅਬੈਕ file .
ਇਹ ਸਾਬਕਾampਇਹ ਮੰਨਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ MIDI ਹੈ file ਮਿਡੀ_ ਕਹਿੰਦੇ ਹਨfile.mid ਉਸੇ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਤੁਹਾਡੀ ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਦੇ ਰੂਪ ਵਿੱਚ: ਮਿਡੋ ਆਯਾਤ ਮਿਡੀ ਤੋਂ ਮਿਡੋ ਆਯਾਤ ਕਰੋFile ਮਿਡੋ ਆਯਾਤ ਮੇਟਾਮੈਸੇਜ ਪੋਰਟ ਤੋਂ = mido.open_output('f_midi') mid = MidiFile('midi_file.mid') while True: Midi ਵਿੱਚ msg ਲਈFile('midi_file.mid').play(): port.send(msg)
ਦਸਤਾਵੇਜ਼ / ਸਰੋਤ
![]() |
Raspberry Pi OSA MIDI ਬੋਰਡ [pdf] ਯੂਜ਼ਰ ਮੈਨੂਅਲ OSA MIDI, ਬੋਰਡ |




