عندما كنت طفلاً ، كان لديّ بيانو ، مثل هذا السوفييت الحقيقي ، 300 كيلوغرام ، أحببت أن أعزف عليه ، بل وأعزف شيئًا بعد التخرج من مدرسة الموسيقى. البيانو رائع وأصيل ولكنه ليس عمليًا على الإطلاق. ولكي تكون واضحًا تمامًا للروح ، فأنت تحتاج أيضًا إلى مجموعة طبول وخمسة كعوب من الغيتار الكهربائي والكلارينيت والستار وعينات من الحلقات ...

بالطبع ، لم يعد من الضروري الآن إنشاء استوديو مرآب من الشقة مقابل ستة رواتب ، يكفي تثبيت محرر موسيقى مجاني على جهاز الكمبيوتر. لكن هذا كله غير مريح.
لوحة مفاتيح الكمبيوتر الشخصي ليست على الإطلاق مثل لوحة المفاتيح ، فهي ليست كذلك. علاوة على ذلك ، لتعليم الطفل هذا ليس مناسبًا على الإطلاق. يبدو أنه لا يوجد خيار سوى شراء مركب. لكن الشكوك لا تزال تمزقني.
ما هو المزج؟ جهاز كبير مع لوحة مفاتيح موسيقى ، والتي يجب أن تحتل مكانًا لائقًا في مكان ما. التي تكون فيها الصوتيات مدمجة ، ومع ذلك لدي بالفعل جهاز استقبال مع مكبرات الصوت. الذي يحتوي على جهاز كمبيوتر جميل مدمج ، ولكن لدي جهاز كمبيوتر جيد.
اتضح أنه مقابل 40 ألفًا اشتريت ما لدي بالفعل بأفضل جودة ، باستثناء لوحة المفاتيح فقط. هذه مجرد بعض النفقات القصوى غير المنطقية.
بحثًا عن لوحة مفاتيح منفصلة ، صادفت فئة من الأجهزة مثل USB MIDI Keyboard.
لطالما بدا لي أن MIDI من مجال النشاط الموسيقي المحترف.
ولكن الآن يتم إنتاج جميع الموسيقى على جهاز كمبيوتر ، في أي مكان مناسب ، مما يعني أن الموسيقيين يحتاجون إلى لوحات مفاتيح موسيقية متنقلة تتناسب بسهولة مع حقيبة الظهر.
ها هي!
تشكلت على الفور خطة في رأسي. نقوم بتوصيل لوحة مفاتيح MIDI بمركز الوسائط المنزلية استنادًا إلى Raspberry Pi 3 ، حيث تدور أداة توليف البرامج ، مما يسمح لأي شخص يريد تحقيق تحفته التالية في أي وقت. على لوحات مفاتيح MIDI هذه ، كقاعدة عامة ، هناك مجموعة من المقابض والأزرار الإضافية المبرمجة لتأثيرات مختلفة أو أدوات موسيقية إضافية. يبدو رائعًا!
هناك أجهزة أكبر وأصغر ، وهناك أكثر تكلفة وأرخص قليلاً. لقد اخترت الخيار لحوالي 5 بصق. لديه اثنين من الأوكتافات ، مفتاح الحجم العادي ، زر الطبالون ، مقبض ضبط ، هذا كل ما يمكن أن يحلم به موسيقي إلكتروني مبتدئ.
لست متخصصًا في إنشاء الموسيقى على جهاز الكمبيوتر ، لذلك كان من الصعب البحث عن طرق لتنفيذ أفكاري. يجب جمع المعلومات شيئا فشيئا. بدأ اللغز يتشكل تدريجياً واتضح أنه يجمع حلًا عمليًا أشاركه معك. من الغريب ، في توزيع Raspbian / Debian القياسي ، تم العثور على كل شيء تحتاجه ، لم يكن لديك حتى ربط مستودعات خارجية.
يتم استخدام Fluidsynth كمُسلسِل (تطبيق يقوم بتشغيل ملفات MIDI).
تم الكشف عن لوحة مفاتيح MIDI على الفور من خلال ALSA وهي متاحة للاتصال بجهاز التسلسل.
لتشغيل أصوات أدوات مختلفة ، يتم استخدام نماذج قواعد بيانات مفتوحة بتنسيق SoundFont2. للبدء ، قم بتثبيته بالكامل.
sudo -s apt-get update apt-get -y install alsa-utils fluid-soundfont-gm fluidsynth
نقوم بتوصيل لوحة مفاتيح MIDI بـ Raspberry وبدء التسلسل في وضع الخادم:
fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
نقوم بتنفيذ الأمر:
aconnect -o
نتيجة لذلك ، سنرى قائمة بعملاء MIDI المتاحين:
client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 20: 'VMini' [type=kernel] 0 'VMini MIDI 1 ' 1 'VMini MIDI 2 ' client 128: 'FLUID Synth (1628)' [type=user] 0 'Synth input port (1628:0)'
هنا ، من المهم بالنسبة لنا أن نتذكر أرقام عملاء لوحة المفاتيح والمتسلسلين ، ثم نربطهم بالأمر:
aconnect 20:0 128:0
الآن نحن على استعداد للعب بيانو ياماها (هذه هي الأداة الافتراضية). اقرأ دليل
Flidsynth ، هناك العديد من الأوامر المثيرة للاهتمام هناك ، على سبيل المثال ، لتغيير الأداة إلى الطبول أو الرياح ، وتعيين كمية تردد أو جوقة.
دعونا نجعل مركب البرامج ملائمًا. حتى لا يتم توصيل لوحة المفاتيح يدويًا بجهاز التسلسل في كل مرة ، سنكتب شيطانًا بسيطًا يقوم بذلك عند بدء التشغيل تلقائيًا.
cat > /etc/init.d/fluidsynth << EOF #!/bin/bash ### BEGIN INIT INFO # Provides: fluidsynth # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Fluidsynth deamon to play via MIDI-keyboard ### END INIT INFO startDaemon() { sleep 30s && fluidsynth -i -s -a alsa -g 3 --load-config=/home/osmc/midi-router >/var/log/fluidsynth & sleep 60s && aconnect 20:0 128:0 & } stopDaemon() { pkill -9 fluidsynth &> /dev/null } restartDaemon() { stopDaemon startDaemon } case "$1" in start) startDaemon ;; stop) stopDaemon ;; restart) restartDaemon ;; status) ;; *) startDaemon esac exit 0 EOF
تسجيل برنامج التشغيل التلقائي:
chmod 755 /etc/init.d/fluidsynth update-rc.d fluidsynth defaults
يرجى ملاحظة أنه عند بدء التشغيل ، يتم الآن نقل ملف التكوين (/ home / osmc / midi-router) الذي يحتوي على الأوامر التي تحول لوحة المفاتيح إلى مركب حقيقي إلى جهاز التسلسل.
هذا هو الشيء. يرسل كل مفتاح وتطور على لوحة المفاتيح أحداثًا محددة برقم خاص بها. كما أفهمها ، لا توجد معايير خاصة ، لذلك كل مصنع يفعل ما يريد. على سبيل المثال ، أريد المفاتيح المربعة لطبول الصوت ، وباقي المفاتيح لتشغيل البيانو ، والمقابض للتحكم في مستوى الصوت ، والتردد والجوقة.
لذا ، أحتاج إلى تعيين رموز الأحداث من لوحة المفاتيح إلى أدوات مختلفة ، والرموز من المقابض إلى الرموز التي يفهمها التسلسل. في flidsynth ، يتم ذلك باستخدام جهاز توجيه. هذه الأوامر موجودة في ملف التكوين.
فيما يلي مثال لملف التكوين الخاص بي ، مع تعليقات حول ما يفعله.
cat > /home/osmc/midi-router << EOF # , - load /usr/share/sounds/sf2/FluidR3_GM.sf2 load /home/osmc/241-Drums.SF2 # select 1 2 128 0 select 2 1 0 0 # 0 # router_begin note router_chan 0 0 0 1 router_par1 36 48 1 0 router_end # router_begin note router_chan 0 0 0 2 router_par1 0 35 1 0 router_end router_begin note router_chan 0 0 0 2 router_par1 49 255 1 0 router_end # , , # fluidsynth router_begin cc router_chan 0 0 0 2 router_par1 14 14 0 98 router_end router_begin cc router_chan 0 0 0 2 router_par1 15 15 0 11 router_end router_begin cc router_chan 0 0 0 2 router_par1 16 16 0 91 router_end router_begin cc router_chan 0 0 0 2 router_par1 17 17 0 93 router_end # 0, # # cc 0 7 0 EOF
لمعرفة الرموز التي ينشئها جهازك ، تحتاج إلى استخدام هذه الأداة المساعدة:
aseqdump -p 20:0
تستمع وتعرض الأحداث من لوحة مفاتيح MIDI على وحدة التحكم. اضغط على الزر أو أدر المفتاح وسترى النوع والقناة ورمز الحدث. يمكنك برمجة لوحة المفاتيح بالطريقة التي تريدها ، وليس بالطريقة التي توصل إليها المهندسون الذين طوروا أداة المزج المعينة. وهو ما يشكر الكثير من مطوري Fluidynth و Alsa و SoundFont2 و Raspberry و V-Mini.
بالمناسبة ، ينعكس هذا الموضوع مع المزج DIY في العديد من الاختراعات ، أوصي بالدراسة:
مرة ومرتين .