Kompüteriniz üçün DIY USB musiqi klaviaturası. Öz əlimizlə MIDI klaviaturasından elektron piano düzəldirik. Midi klaviatura sxemi MKC64 v1.54

Düşünürəm ki, kompüterdə səslə işləməyə cəhd edənlər, yəqin ki, midi kontrollerlər kimi cihazlar haqqında eşitmişlər. Və bir çox insanlar, musiqi yaratmaqdan uzaq, inanılmaz qiymətə müxtəlif "twist" və "itələyicilər" ilə çıxışlarda sənətçiləri görmək imkanı əldə etdilər. Bir qəpik xərcləmədən belə faydalı şeyi necə əldə etmək olar? Yaxşı bir seçim evdə hazırlanmış MIDI klaviaturasıdır.

Midi kontrollerlər üzrə kiçik təhsil proqramı

Midi kontroller (ingiliscə "MIDI" abbreviaturasından - proqramlarda istifadə olunan interfeysin təyinatı) midi rabitə baxımından kompüterinizin imkanlarını genişləndirməyə imkan verən bir cihazdır.

Bu cihazlar nə edə bilər?

MIDI kontrollerləri sizə həm musiqi yaratmaq və yazmaq proqramı (sequencer, tracker və s.) ilə qarşılıqlı əlaqə yaratmağa, həm də proqram təminatını xarici aparat modulları ilə birləşdirməyə imkan verir. Sonuncu, müxtəlif növ konsollara, mexaniki qarışdırıcılara və toxunma panellərinə aiddir.

Başlayan musiqiçi üçün bu sinif "qadcetlərin" əsas problemi onların yüksək qiymətidir: tam hüquqlu yeni MIDI klaviatura alətinin orta qiyməti 7 mindir. Əgər haradasa işləyib yaxşı pul qazanırsansa, məbləğ, təbii ki, gülüncdür. (Axı, Rusiyada adambaşına düşən əmək haqqı körpələrin və pensiyaçıların əmək qabiliyyətli əhalisini saymaqla 28 mindir).

Ancaq məsələn, tələbəsinizsə, belə bir qiymət etiketi sizin üçün "diyəcək". Bu aspektə görə evdə hazırlanmış MIDI klaviaturasından istifadə problemin optimal həllinə çevrilir.

Evdə hazırlanmış midi klaviatura əldə etmək üçün nə etmək lazımdır?

Başlayaq ki, kompüterinizdə sekvensator quraşdırılmalıdır. (Bütün nüanslar Fl Studio sequencer və öz sinfində ən populyarlardan biri olan Vanilin MIDI Keyboard emulyator proqramı nümunəsindən istifadə etməklə müzakirə olunacaq).

  1. Siz Vanilin MIDI Klaviaturasını endirməli və quraşdırmalısınız. Proqramı onun rəsmi saytında tapa bilərsiniz.
  2. Deyək ki, siz artıq bu (və ya oxşar) proqramı quraşdırmısınız, indi iş masanıza qayıdın - orada qısa yol görünməlidir. Bu qısayoldan istifadə edərək emulyatoru işə salın və parametrlərə keçin.
  3. Kompüterdə çipsetdə quraşdırılmış standart səs kartı varsa, "Cihaz" menyu elementini tıkladıqdan sonra iki alt elementi görməlisiniz: "MIDI remapping device" və "Proqram audio sintezatoru". MIDI Remapper üzərinə klikləyin.
  4. Proqramı minimuma endir. Tanış proqram simvolu tapşırıq panelinin aşağı sağ küncündə (saatın yanında bir yerdə) görünməlidir.
  5. Sıralayıcıya başlayın. Seçimlər menyusunu seçin və MIDI parametrləri alt elementinə klikləyin
  6. MIDI Çıxış cərgəsində MIDI Remapper seçin

Bütün bu sadə addımları yerinə yetirdikdən sonra bir növ alət yaradın və istənilən klaviaturada basmağa çalışın. Hər şeyi düzgün etmisinizsə və boş (və ya səssiz) alət qurmamısınızsa, bir səs eşitməlisiniz.

Budur, indi əlinizdə əsl klaviatura aləti var! İndi siz nəinki səsi görə və dinləyə, həm də öz pianonunuzun düymələrinin toxunuşunu hiss edə bilərsiniz.

  • Səs
  • Uşaq vaxtı pianom var idi, əsl sovet, təxminən 300 kiloqram idi, onu çalmağı xoşlayırdım, musiqi məktəbini bitirdikdən sonra hətta nəsə çalırdım. Piano sərin, orijinaldır, lakin heç də praktik deyil. Həqiqətən də onu ruhunuza uyğunlaşdırmaq üçün sizə nağara dəsti, elektrik gitara üçün aksesuarlar dəsti, klarnet, sitar və nümunə ilmələri lazımdır...

    Əlbətdə ki, artıq mənzilinizi altı maaşdan ibarət bir qaraj studiyasına çevirmək lazım deyil, kompüterinizdə pulsuz musiqi redaktoru quraşdırmaq kifayətdir. Ancaq bütün bunlar əlverişsizdir.

    PC klaviaturası heç də klaviatura aləti kimi deyil, burada hər şey fərqlidir. Üstəlik, bu, uşağa öyrətmək üçün heç də uyğun deyil. Görünür, sintezator almaqdan başqa seçim yoxdur. Amma yenə də şübhələrim var.

    Sintezator nədir? Böyük bir cihaz, musiqi klaviaturası ilə, haradasa çox yer tutmalıdır. Hansı ki, daxili akustika var, amma mənim artıq dinamikləri olan qəbuledicim var. Hansı ki, onun içində pis kompüter var, amma mənim yaxşı kompüterim var.

    Belə çıxır ki, 40 minə mən yalnız klaviatura istisna olmaqla, məndə olanı ən yaxşı keyfiyyətdə alıram. Bu, irrasional xərclərin yalnız bir hissəsidir.

    Ayrı bir klaviatura axtararkən USB MIDI Keyboard kimi cihazlar sinfinə rast gəldim.
    Mənə həmişə elə gəlirdi ki, MIDI peşəkar musiqi fəaliyyəti sahəsinə aiddir.
    Amma indi bütün musiqilər kompüterdə, istənilən əlverişli yerdə hazırlanır, bu isə o deməkdir ki, musiqiçilərə kürək çantasına asanlıqla sığışdıra bilən mobil musiqi klaviaturaları lazımdır.

    Dərhal beynimdə bir plan formalaşdı. Biz MIDI klaviaturasını Raspberry Pi 3 əsasında ev media mərkəzinə bağlayırıq, burada proqram sintezatoru işləyir və hər kəs istənilən vaxt növbəti şah əsərini yerinə yetirməyə imkan verir. Bu MIDI klaviaturalarında adətən müxtəlif effektlər və ya əlavə musiqi alətləri üçün proqramlaşdırılmış bir sıra idarəetmə və əlavə düymələr olur. Çox gözəl görünür və səslənir!

    Daha böyük və daha kiçik cihazlar var, bəziləri daha bahalı, bəziləri daha ucuzdur. Təxminən 5 qr olan variantı seçdim. İki oktava, normal ölçülü düymələr, nağaraçılar üçün düymələr, tənzimləmə düymələri, yəni yeni başlayan elektron musiqiçinin xəyal edə biləcəyi hər şey var.

    Mən PC-də musiqi yaratmaq üzrə mütəxəssis deyiləm, ona görə də ideyamı həyata keçirməyin yollarını axtarmaq çətin idi. Məlumatı yavaş-yavaş toplamaq lazım idi. Tapmaca tədricən formalaşmağa başladı və mən sizinlə bölüşdüyüm işlək bir həll hazırlamağı bacardım. Qəribədir ki, standart Raspbian/Debian paylanması sizə lazım olan hər şeyi ehtiva edir, hətta xarici depoları qoşmağa belə ehtiyac yox idi.

    Fluidsynth sequencer (MIDI fayllarını oynayan proqram) kimi istifadə olunur.
    MIDI klaviaturası ALSA vasitəsilə dərhal aşkarlanır və sequencerə qoşulmaq üçün əlçatandır.
    Müxtəlif alətlərin səslərini təkrarlamaq üçün SoundFont2 formatında açıq nümunə verilənlər bazalarından istifadə olunur. Əvvəlcə bütün bunları quraşdıraq.

    Sudo -s apt-get yeniləmə apt-get -y alsa-utils liquid-soundfont-gm liquidsynth-i quraşdırın
    MIDI klaviaturasını Raspberry-ə qoşuruq və sekvenseri server rejimində işə salırıq:

    Fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
    Biz əmri yerinə yetiririk:

    Qoşun -o
    Nəticədə, mövcud MIDI müştərilərinin siyahısını görəcəyik:

    Müştəri 14: "Midi Through" 0 "Midi Through Port-0" müştəri 20: "VMini" 0 "VMini MIDI 1" 1 "VMini MIDI 2" müştəri 128: "FLUID Synth (1628)" 0 "Synth input port (1628) ) :0)"
    Burada klaviatura və sequencerin müştəri nömrələrini yadda saxlamaq vacibdir ki, onları komanda ilə birləşdirə bilək:

    20:0 128:0 qoşulun
    İndi hamımız Yamaha Pianoda ifa etməyə hazırıq (bu standart alətdir). Fluidsynth təlimatını oxuyun, orada bir çox maraqlı əmrlər var, məsələn, aləti nağara və ya küləyə dəyişdirmək, reverb və ya xorun miqdarını təyin etmək.

    Proqram sintezatorumuzu rahat edək. Klaviaturanı hər dəfə sekvenerə əl ilə qoşmamaq üçün, başlanğıcda bunu avtomatik edəcək sadə bir iblis yazacağıq.

    Pişik > /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 liquidsynth &> /dev/null ) restartDaemon() ( stopDaemon startDaemon ) case "$1" in start) startDaemon ; ;
    dayan) Daemonu dayandır;;

    yenidən başladın) Daemon-u yenidən başladın;;
    status);

    *) Daemon esac çıxışı 0 EOF-u işə salın

    Demonu autorun üçün qeydiyyatdan keçirin:

    Chmod 755 /etc/init.d/fluidsynth update-rc.d liquidsynth defoltları

    Nəzərə alın ki, indi işə salındıqda sequencerə klaviaturamızı real sintezatora çevirən əmrlərdən ibarət konfiqurasiya faylı (/home/osmc/midi-router) göndərilir.<< 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
    İş budur. Klaviaturadakı hər bir düymə və düymə müəyyən hadisələri öz nömrəsi ilə göndərir. Mən başa düşdüyüm kimi, burada xüsusi standartlar yoxdur, ona görə də hər bir istehsalçı öz istədiyini edir. Məsələn, kvadrat düymələrin nağara kimi səslənməsini, qalan düymələrin piano kimi səslənməsini və düymələrin səsi, reverb və xoru idarə etməsini istəyirəm.

    Beləliklə, mən hadisə kodlarını klaviaturadan müxtəlif alətlərə, kodları isə düymələrdən tutmuş kodlara qədər sekvenserin anladığı xəritəyə çevirməliyəm. Fluidsynth-də bu, marşrutlaşdırıcıdan istifadə etməklə edilir. Konfiqurasiya faylında olan bu əmrlərdir.
    Budur mənim konfiqurasiya faylıma nümunə, onun nə etdiyi barədə şərhlər var.

    Pişik > /home/osmc/midi-router

    Cihazınızın hansı kodları yaratdığını öyrənmək üçün bu yardım proqramından istifadə etməlisiniz:

    Aseqdump -səh 20:0

    Çərçivə. Birinci və ən əsas şey tələb olunur, doğru olanı tapmaq çətindir. Mən bu məqsədlə bir qutu aldım.
    - USB klaviatura, tercihen çox köhnə deyil, çünki naqil işləməyə bilər.
    - Açarlar (mən götürdüyüm): PBS-16B (FEET), SPA-101B4 (ADOPS), PBS-15B ON (ON). Hamısı fiksasiya olmadan. Siz onu Chip and Dip-dən ala bilərsiniz.
    - Naqillər. Çoxlu tək nüvəlilər. Hesab edirəm ki, bükülmüş cüt bunun üçün ən yaxşısıdır. Gözlərin 2 metr arxasında. Dincəlmək sadəcə yöndəmsizdir.
    - Yaxşı, düşünürəm ki, bu cihazı yığmaq qərarına gələn demək olar ki, hər kəsin lehimləmə dəmiri var.
    - Korpusda deşiklər açmaq üçün alətlər. Hər hansı bir işdə əliniz varsa, hətta özünü vurma vintindən istifadə edə və sonra onu redaktə etmək üçün bıçaqdan istifadə edə bilərsiniz, amma yenə də düşünürəm ki, hər kəsdə bir qazma var.

    Yaxşı, başlayaq. Etməli olduğunuz ilk şey qutuda delikləri qeyd etmək və qazmaqdır:

    İndi ayaq açarımızı düzəltməyin daha zərərli hissəsinə keçək. Naqilləri diaqrama uyğun olaraq lehimləyirik, klaviaturadan girişlərdə giriş nömrələri olan şəxsiyyət vərəqlərini asmağı unutmayın:

    Bu kimi bir şey görünməlidir:

    İndi USB klaviaturasından nəzarətçiyə lehimləmənin çox mürəkkəb prosesi başlayacaq. Qeyd edim ki, yuxarıdakı diaqramdakı kimi nəzarətçi ilə klaviatura almaq/tapmaq/götürmək şanslısınızsa, onda siz lehimləmə stansiyası olmadan edə bilməzsiniz. Lövhəni demək olar ki, hər hansı bir mövcud vasitə ilə, maye dırnaqlar, özünü vurma vintləri, super yapışqan, silikonla bağlaya bilərsiniz və ümumiyyətlə, onu çox sərt vurmasanız, möhkəm dayanacaq, lakin bu, işdən asılıdır. halda, bükülmüş cüt lövhəni möhkəm basır.

    Biz kosmetik təkmilləşdirmələr edirik, NUB LOCK-dan qutuya bir diodu lehimləyirik ... Tel üçün bir deşik açın və USB kabelini yenidən yönləndirin, bunun üçün yalnız kifayət qədər təsəvvür var.

    Mərhələ 2: Proqram təminatının qurulması. Ümid edirəm ki, bu cihazı yaradan hər kəs üçün problem olmayacaq. Guitar Rig üçün hər şey daha sadə ola bilməzdi, NUM Lock-u yandırın, qurğunu yandırın, OPTIONS - CONTROLLER-i açın, MENU düyməsini basın, tələb olunan hərəkəti axtarın, Öyrənmək düyməsini basın və nəzarətçimizdə müvafiq düyməni seçin. Sonra Nəzarətçi əlavə et üzərinə klikləyin və eyni əməliyyatları yenidən yerinə yetirin. Bizə lazım olan hər şeyi yazana qədər və ya açarlarımız tükənənə qədər. Siz həmçinin 3-cü qurğuda demək olar ki, istənilən hərəkətə açar təyin edə bilərsiniz, obyektin üzərinə sağ klikləyin və yenidən Öyrən düyməsini basın.

    Ancaq indi Midi əmrində bütün bu beyni qurmaqla maraqlanırsınızsa, bir az daha əylənməli olacaqsınız.
    Bu o deməkdir ki, düymələri midi əmrlərinə bağlayan proqram təminatı lazımdır. Və belə bir proqram var, heç bir analoqu görməsəm də, xoşbəxtlikdən xəsisliklə müalicə etməyə ehtiyac yoxdur. Bu Virtual Midi Controller adlanır, əsas fəaliyyət C IN sekmesinde konfiqurasiya edilir, quraşdırma - Quraşdırma - Sonrakı - Sonrakı. Budur link.


    Virtual MIDI kabeli də ona daxildir, ona görə də heç bir lazımsız hərəkət etmək lazım deyil. Həqiqətən tənbəllər üçün ayaq açarı üçün bir bank hazırlığını göndərirəm: bank - VMC-dən çıxdıqdan sonra standart olaraq C:\Program Files\Virtual Midi Controller\ proqram qovluğunun kökündəki faylı əvəz etməlidirlər. Rahatlıq üçün SETUP-da Run In Background onay qutusunu yoxlayın və əsas VMC pəncərəsində K hərfini vurun, bundan sonra proqram minimuma endirilmiş rejimdə əmrləri qəbul edəcək. İndi proqramdan çıxmaq üçün onu traydan çıxarmaq lazımdır. Və bundan sonra siz həm Nuendo, həm də Sonarı ayaq açarından idarə edə biləcəksiniz. Əlbəttə ki, TH1 midi vasitəsilə klaviaturamızı da tutur.

    Hər hansı sualınız varsa, əlaqə saxlayın...

    Növbəti planlaşdırılan layihələr:
    - Gitara ekranı.
    - Öz əlinizlə kombinasiya.

    Musiqi fəaliyyətinizdə sizə uğurlar...

    Bu, MIDI/Oyun portu olan standart PC səs kartı ilə istifadə üçün nəzərdə tutulmuş sadə MIDI klaviatura sxemidir. Klaviatura birbaşa oyun portundan qidalanır, enerji təchizatı tələb olunmur.

    Midi klaviatura sxemi MKC64 v1.54



    Parçalar dəsti


    Mikrosxemlər: PIC16F84 və ya PIC16C84 nəzarətçi. Dekoder 74LS138 və ya analoq K555ID7.
    Kvars rezonatoru: ZQ1 = 4 MHz.
    Kondansatörler: C1= 47mF; C2, C3=27pF; C4=0,1mF
    Rezistorlar: R1,R2,R4 = 1-dən 10Kom-a qədər; MIDI çıxışının qorunması üçün R3 = 270Ω; R5 = 2k2
    Diodlar: D1-D64 = KD522 (Hər növ standart diodlar)
    Bağlayıcılar: DB15

    Mikroproqram


    Əgər siz MKC1.4 proshivkasını jmp1 keçidi olmadan istifadə edirsinizsə, o zaman düymələr DO (C) qeydindən başlayır və FA (F) qeydindən tullanır.
    Əgər siz MKC1.54 proshivka proqramından istifadə edirsinizsə, onda jmp1 S1 yumşaq düyməsi göstərilir ki, bu da bəzi funksiyaları idarə etməyə imkan verir.
    Nəzarət etmək üçün S1 düyməsini sıxmaq lazımdır və onu saxlayaraq klaviaturada 16 sol düymədən birini sıxmaq lazımdır.

    Funksiyaya nəzarət düyməsi cədvəli:
    1 MIDI kanalını dəyişdirin -1 (1..16)
    2 MIDI kanalını dəyişdirin +1 (1..16)
    3 Aşağı oktava -1 (1..11)
    4 oktava qaldırma +1 (1..11)
    5 Tətik qeydi -1
    6 Tətik qeydi +1
    7 Sürətin azaldılması -1 (1..127)
    8 Sürət artımı +1 (1..127)
    9 Bütün qeydlər mesajı Aktivləşdirin
    10 All Notes Off mesajı Disable
    11 NoteOn (sürət = 0)
    12 Qeyd Söndür
    13 MIDI Proqramı -1
    14 MIDI Proqramı +1
    15 MIDI bank -1
    16 MIDI Bank +1



    Klaviatura MIDI protokolundan istifadə edərək xarici səs moduluna və ya kompüterə (əgər uyğun interfeys varsa) qoşulmaq üçün nəzərdə tutulmuşdur - musiqini sequencer proqramına və ya canlı performansa yazmaq üçün. Təklif olunan versiyada düymələrin sayı 48-dir, lakin sxemi dəyişdirmədən 64-ə qədər artırıla bilər.

    Cihazın tarixi

    Bir müddət əvvəl mənzil almağımla əlaqədar mənim üçün MIDI klaviatura rolunu oynayan dəbdəbəli aləti itirmək məcburiyyətində qaldım - bu, əfsanəvi YAMAHA DX-7 idi. Kədər soyuyanda bütün şiddəti və çirkinliyi ilə sual yarandı: nə üzərində işləmək lazımdır? Məhz bu anda dostumun səyləri ilə KR1816BE39 üçün yarı yığılmış bir dövrə (düşməncə bu prosessor 8048 adlanır) mənim əllərimə düşdü. Dövrəni yığmaq və qurmaq asandır və ən əsası, lazımi anda əlinə gəldi. KR1533ID7 və KR1533KP7 istifadə edərək klaviaturanı 8x6 matris şəklində yığdım. Məlhəmdə bir milçək də var idi - bu sxemin iki çatışmazlığı onun bütün üstünlüklərini öldürür: düymələrin vuruş sürətinə (dinamiklərə) və PITCH WEEL çarxına həssaslığın olmaması. Yaxşı, mən bir dəfə Z-80-də proqramlaşdırdım (və hətta işləyən bir sequencer etdim) və köhnə günləri silkələməyə qərar verdim. Mən Z-80-ni mənəvi cəhətdən köhnəlmiş CPU kimi qətiyyətlə rədd etdim. Bundan əlavə, mən çox lehimləmə etmək istəmədim və eyni cihazı KR1816BE39-da əsas götürərək açarların qırılması (yuxarı) kontaktları üçün başqa bir multipleksorla təchiz etmək qərarına gəldim. KR1816BE39 assembler üçün sənədləri tapdım (inanmayacaqsan - kitabxanada “Bir çipli mikroprosessorlarda rəqəmsal cihazların layihələndirilməsi” kitabında) və proqram cızdım... Və sonra məlum oldu ki, bir dostumun ROM proqramçısı var. öldü və proqramı yandırmaq üçün sadəcə heç nə yox idi... Kədərdən tamamilə ağlımı itirdim və PIC üçün eyni alqoritmi yenidən yazmaq qərarına gəldim. Yarım gün ərzində proqramçı (LUDIPIPO) birlikdə lehimləndi, sonra KR1533ID7 və bir cüt KR1533KP7 prizindən prototip hazırlandı və bütün quraşdırma MGTF tərəfindən heç bir möhür olmadan edildi. Və proses başladı...

    Əvvəlcə proqramın qeyri-dinamik versiyası işə salındı ​​(hər düyməyə bir kontaktlı klaviaturası olanlar üçün də təqdim edirəm). Sonra dinamik versiya başladı. Və sonra düymələr və göstərici əlavə etmək ideyası gəldi. Məsələ burasındadır ki, mənim WAVEBLASTER (çox köhnə səs sistemləri üçün dalğa cədvəli sintezatoru) uzun müddət boş vəziyyətdə qalmışdı. Onu yaradıcılığıma qoşaraq, kompütersiz oynaya biləcəyiniz bir şey əldə etdim (bacarıq və istedadınız daxilində), bəzən olduqca rahatdır. Bu, düymələrdəki funksiyalar dəstini müəyyən etdi - "canlı" oyun zamanı səs modullarına qoşulduqda faydalı ola bilər. Düymələrin funksiyalarını öz işləyicilərinizi yazmaqla və mənim sorğu və ekran prosedurlarımdan istifadə etməklə dəyişmək asandır. Nə isə, dəmir qutuda yığılmış klaviatura YAMAHA PSS-dən (hələ də tam ölçülü düymələr, pedal və ən əsası dinamika!) daha rahat oldu. Yaradıcılıq prosesinin ortasında MIDI klaviaturasının sırf kompüter üçün versiyasını hazırlamaq çətin bir istək yarandı - göstərici və düymələr isteğe bağlıdır, lakin PITCH WEEL və MODULATION təkərlərinə ehtiyac var. Bir müddət bununla mübarizə apardım, amma sonda imtina etdim və lehimləmə dəmirini yenidən işə saldım. Elektronikanı yığmaq çətin deyil, amma mexanika bir qədər çətindir və mən təkər dizaynı üzərində qaşımı qırışmağa başladım. Bir az fikirləşdikdən sonra ikinci təkərdən imtina etmək qərarına gəldim - hər halda, mən heç vaxt ikisini birdən fırlatmıram, adətən qeydlər yazıram və əvvəlcə səslənirəm, sonra modulyasiya əlavə edirəm. Çox sevdiyim mexaniki işlərin həcminin iki dəfə azaldılması ən az diqqət çəkən məsələ deyildi. Daha az tənbəllik üçün, demək olar ki, heç bir mürəkkəbliyi olmayan iki təkərin necə hazırlanacağını aşağıda izah edəcəyəm. Modulyasiyanı hələ də yaza bilmək üçün təkərin üç iş rejimini təşkil etmək qərarına gəldim: 2 yarım ton üçün səs-küy, 1 yarımton üçün səs səviyyəsi (rahat) və modulyasiya. Bütün bunları bir düymə ilə dəyişə və bir cüt LED ilə rejimi göstərə bilərsiniz. Dövrəni sadələşdirmək üçün qalan düymələri və göstəriciləri aradan qaldırdım, bütün bunlar müasir sequencer proqramları ilə işləmək üçün lazım deyil;

    Təkər, əlbəttə ki, potensiometr oxuna qoyulmalıdır, bu başa düşüləndir, amma nəyə qoşulmalıdır? İlk fikrim 555 taymerdə bir atışdan istifadə etmək idi, lakin hesablamalar göstərdi ki, məqbul təkər seçmə sürətini təmin etməyə çalışarkən nəbz müddətinin ölçülməsində dəqiqlik və sabitliyə nail olmaq çətin olacaq, çünki prosessor əsasən ölçmə ilə məşğuldur. klaviatura kontaktlarının keçid vaxtı. Qalan yeganə yol analoqdan rəqəmsal çeviricidən (ADC) istifadə etməkdir. Daxili ADC olmadan Pic16F84 istifadə etdiyim üçün mühəndislik keçmişimi (və doğma fabrikimi) xatırladım və müqayisə aparatı (və bir proqram parçası) olan bir neçə rezistordan ADC etdim. Sadə, ucuz və olduqca dəqiq çıxdı.

    Mən hər iki diaqramı təqdim edirəm - həm düymələrlə, həm də təkərlə, həm də onlar üçün proqramlar. İstəyirsinizsə, hər iki sxem xarici cihazların ünvanlarını bir az dəyişdirməklə asanlıqla birləşdirilə bilər, sadəcə yadda saxlamaq lazımdır ki, XOR (STEREO) rejimi detuning əldə etmək üçün səs tonundan istifadə edir və ya onu aradan qaldırmalı, ya da detuning ilə səs ötürülməsindən narahat olmalısınız; kanallar arasında.

    Beləliklə - faktiki klaviatura

    Cihaz diaqramı

    İlk görünən, layoutun funksionallığını yoxlamaq üçün açarın təsir gücünə həssas olmayan dinamik olmayan bir versiya idi.

    Mən PIC16F84-dən bir neçə səbəbə görə prosessor kimi istifadə etdim: bu çip mövcuddur, ucuzdur və proqramlaşdırmaq asandır və bu, mənim əlimdə olan idi. Diqqət: PIC16C84 uyğun deyil - onun yalnız 36 RAM hüceyrəsi var və proqram işləməyəcək. Bununla belə, təkər sxemi daha az RAM hüceyrəsindən istifadə edir və onun proqramı daha bir neçə hüceyrəni, məsələn MIDCH (bütün ötürülən məlumatlara daimi MIDI kanalı təyin etməklə) azaldaraq PIC16C84-ə sıxışdırıla bilər.

    Göstərişli dinamik klaviaturanın diaqramı aşağıda göstərilmişdir:

    Sxem bir çox cəhətdən ənənəvidir - pedallar və təkərlər olmadan velosipedi yenidən ixtira etmək çətindir J Port B ötürülməsi üçün işləyir - aşağı 7 bit matrisdə əsas ünvanı və ya xarici qurğular üçün məlumat verir (göstərici və təkər DAC). Ən əhəmiyyətli bit MIDI məlumatlarını seriya kodunda çıxarmaq üçün istifadə olunur - çevrilmə və çıxış proqram təminatında həyata keçirilir. Buna görə də, MIDI bayt çıxış rejimini yenidən yazmaq istəmədiyiniz halda kristal 4 MHz-də olmalıdır. A portunun iki ən az əhəmiyyətli biti qəbul üçün işləyir - onlar "buraxılmış" və "basılmış" açar kontaktlarının multipleksorlarından siqnal alırlar və üç ən əhəmiyyətli bit xarici cihazın ünvanını müəyyən edir (başqa KR1533ID7 dekoderi vasitəsilə). Təkər ilə dövrədə mən dövrəni sadələşdirmək və müqayisəedicidən məlumat daxil etmək üçün PA4 portunun yüksək bitini boşaltmaq üçün xarici cihazın ünvan dekoderindən imtina etdim, buna görə klaviatura və düymələrin ünvanları fərqlidir. Sxemləri birləşdirərkən, bu mikrosxem geri qaytarılmalı, ünvanı deşifrə etmək, PA2 və PA3 port bitlərindən istifadə etmək və 4 cihazı ünvanlamaq lazımdır: klaviatura, düymələr, dinamik göstərici məlumat reyestri və dinamik göstərici tanışlıq reyestri. Təkər rejiminin göstəricisi yenidən yazılmalı olacaq.

    PITCH WEEL / MODULATION təkəri olan dövrə belə görünür:

    Ayırma üçün hər bir açarda bir diod quraşdırılmışdır. Multipleksorların girişlərindəki rezistorlar 8k-dan çox olmamalıdır, əks halda montaj tutumu səbəbindən nasazlıqlar mümkündür. Göstərici - 3 rəqəm üçün ümumi anodlu hər hansı, hər bir rəqəmin seqmentlərinin terminalları ayrıca çıxarılırsa, eyni adlı seqmentlərin terminalları birləşdirilməlidir - göstərici dinamikdir və rəqəmlər ardıcıl olaraq yanır. Hər hansı düymələr, kilidlənmədən, kontaktın sıçraması proqram tərəfindən idarə olunur. LED-lər eyni adlı düymələrin yanında quraşdırılır və müvafiq rejimlərin aktivləşdirilməsini göstərir, "+" və "-" düymələrində LED yoxdur; Göstəricidə olan tranzistorlar istənilən aşağı güclü, yüksək tezlikli tərs keçiricilikdir. Cari göstərici rəqəminin ünvanını və kodunu növbə ilə bağlamaq üçün iki KR1533IR23 registrindən istifadə olunur (LED-lər də iki kvazirəqəmdə qruplaşdırılıb). Sovet elektrik orqanlarından 48 düyməli standart klaviaturadan istifadə etdim (o, həmçinin "START" radio konstruktoru olaraq ayrıca istehsal edildi və kifayət qədər geniş yayılmışdır). Klaviaturanın hündürlüyünü və alətin qalınlığını azaltmaq üçün hər düymənin altındakı altı kontakt qrupundan ikisi qalıb, hər şey kəsilib yenidən yapışdırılıb. Ümumiyyətlə, hər açar üçün bir keçid qrupu kifayətdir, lakin onu bu şəkildə yapışdırmaq daha rahat idi. “Sərbəst” və “basılmış” kontaktların şinləri 8 açar uzunluğundadır. İsterseniz, bir keçid qrupunun əvəzinə iki cüt bağlama kontaktının istifadə edildiyi bir klaviatura istifadə edə bilərsiniz - bir cüt açar hərəkətinin əvvəlində, digəri sonunda bağlanır (YAMAHA alətlərində olduğu kimi). Bu halda, PA0-a siqnal multipleksorun tərs çıxışından (pin 6) verilməlidir. Sxemdə dəyişiklik etmədən 64 düyməli klaviaturadan istifadə edə bilərsiniz (standart - 61, yəni 5 oktava). Lazım gələrsə, açarların sayı ən azı 127-yə qədər artırıla bilər, bunu etmək üçün dövrəyə başqa bir KR1533ID7 dekoderini təqdim etməlisiniz;

    Mexanikanı yaxşı qurmaq çox vacibdir - düymələr buraxıldıqda yuxarı kontaktlar MÜTLƏQ bağlanmalıdır. Bu edilmədikdə, proqram belə düymələri basılmış hesab edir və onları emal etməyə çalışır, ona görə də bu düymələrə yenidən basmaq səs vermir. Bundan əlavə, eyni vaxtda ifa edilə bilən notların maksimum sayı 10-dur (əgər kimsə əllərində daha çox barmaq böyüdübsə, bu rəqəm asanlıqla dəyişdirilə bilər) və düymələri buraxmamaq bu rəqəmi azaldır. Eyni səbəblərə görə, klaviatura sorğusu prosedurunda göstərilən düymələrin sayı MÜTLƏQ real düymələrin sayına uyğun olmalıdır. Kontakt sıçrayışı proqram tərəfindən yatırılır.

    Müqavimətli R-2R ADC matrisi üçün rezistorları 1-2% dəqiqliklə seçmək məsləhətdir və mütləq dəyərlər fərqli ola bilər, nisbət vacibdir. Bununla belə, nominal dəyəri çox artırmamalısınız, bu, komparatorun giriş tutumuna görə çevrilmə müddətini artıracaqdır. Mən SMD rezistorlarını uyğunlaşdırmadan istifadə etdim, baxmayaraq ki, ölçmələr bir montaj zolağında rezistorların adətən 1% -dən yuxarı dəqiqliklə uyğunlaşdığını göstərdi. Əminəm ki, dövrə qeyri-dəqiq rezistorlarla işləyəcək, lakin xarakteristikanın xətti pisləşəcək. Təkərin özü köhnə televizorun tutacağından hazırlanmışdır və potensiometr oxunda onu orta vəziyyətə qaytaran bir yayla malikdir. Mexanikanın qurulmasının rahatlığı üçün rejim düyməsini basaraq gücü yandırdığınız zaman təkər orta vəziyyətdə olduqda LED-i yandıran bir sazlama proqramı işə salınır, bu, sıfır mövqeyini dəqiq tənzimləməyə imkan verir. potensiometr oxundakı təkərin. Ayrı bir MODULATION çarxı etmək ehtiyacı və istəyi varsa, onu pulsuz müqayisə elementinə (onlardan dördü var) bağlamaq lazımdır və R-2R matrisi hər iki təkər üçün ümumidir. Komparatorların çıxışlarını dəyişdirmək üçün əlavə bir mikrosxemdən istifadə etmək və idarəetmə siqnalı kimi PA2 istifadə etmək daha yaxşıdır.

    İstəsəniz, klaviaturanın dinamik versiyasını işarəsiz, düymələr və PITCH WEEL / MODULATION çarxı olmadan - sadəcə dövrənin istifadə olunmamış hissəsini yığmadan yığa bilərsiniz. Enerji yandırıldıqda bütün dəyişən parametrlər defolt olaraq təyin olunacaq...

    Bütün bunlar hər hansı bir enerji ilə təchiz edilə bilər, cari istehlak xüsusi göstəricidən asılıdır və 100 mA-dan çox deyil. Məndə 7805 stabilizatoru soyuducusuz düz lövhədə var (fotoda aydın görünür). 9v-dan çox enerji verilirsə, kiçik bir radiator lazımdır. Komparator 9 - 12 v gərginliklə işləyir, tercihen sabitləşir. Bəli, köhnə ehtiyatlardan sovet istehsalı olan mikrosxemlərdən istifadə etdim - onların çoxlu sayda müasir analoqları var, dəyişdirilməsi mümkündür və hətta arzuolunandır - müasir analoqlar daha az istehlaka malikdir.

    Proqram

    Basılan düymələrin işlənməsi alqoritmi 1986-cı il № 5 "Mikroprosessor Alətləri və Sistemləri" jurnalında təklif olunan alqoritmdən gəlir. Məhz bu nəşr (daha doğrusu, təklif olunan proqramdakı səhv) məni assemblerlə məşğul olmağa sövq etdi. Əslində, oradan götürülmüş yeganə fikir, hər bir basılan düymənin sayını RAM-ın xüsusi ayrılmış sahəsində (CHAN) qeyd etmək idi ki, klaviatura yenidən sorğulandıqda, artıq işlənmiş düyməni yenidən emal etməsin. Məndə sıxılmış düymələrin hər biri üçün ayrılmış iki RAM hüceyrəsi var (cəmi 10-dan çox deyil): birincisində basılan düymənin sayı, ikincisində isə onun HƏDİYYƏTİ (basın sürəti) qeyd olunur. Təkrar edirəm - bu xanaların cəmi 20-si var və başlanğıc ünvanı CHAN adı ilə verilir. Sərbəst cütün işarəsi ilk hüceyrənin ən əhəmiyyətli bitidir. Ayarlanan ikinci xananın ən əhəmiyyətli biti o deməkdir ki, bu açar üçün QEYD ON artıq ötürülüb və onun əlavə emalına ehtiyac yoxdur.

    Mən bütün proqramı ətraflı təsvir etməyəcəyəm, mənbə kodu şərhlərlə doludur və təlim keçmiş şəxs üçün olduqca əlçatandır. Qalanları üçün mən dərhal Dinamic.hex və Pitchmod.hex faylında hazır proqram təminatı təqdim edirəm. Mən yalnız bəzi aydın olmayan məqamları izah edəcəyəm. Yaxşı, ilk növbədə, dinamika haqqında: bu anda açarın yuxarı kontaktları açılır, onun nömrəsi eyni vaxtda sərbəst cüt işarəsini sıfırlayaraq CHAN sahəsindən ilk pulsuz cütün ilk xanasına yazılır. İlkin dəyər VELOCITY = 127 ikinci xanaya yazılır. Klaviaturanın həssaslığı kəsilmə tezliyi ilə müəyyən edilir, çünki fasilənin işlənməsi QEYD ON-un hələ ötürülmədiyi bütün düymələr üçün VELOCITY dəyərlərini azaldır. Fasilələrə daxili taymer səbəb olur. Açarın aşağı kontaktları bağlandığı anda, müvafiq CHAN xanasında “köçürülmüş” işarəsi qoyulur və QEYD ON cari SÜRƏT ilə ötürülür. Həssaslıq əyrisini yaxşılaşdırmaq üçün VELOCITY dəyərləri loqarifmik qanuna uyğun olaraq azalır: 1-ə qədər azalan hissəsinin 1/16-sı cari VELOCITY dəyərindən çıxarılır, açar yuxarı kontaktdan aşağıya doğru hərəkət edir biri, müvafiq CHAN xanasındakı SÜRƏT dəyəri loqarifmik qanuna uyğun olaraq azalır və açar nə qədər sürətli hərəkət edirsə, açarın aşağı kontaktlarının bağlandığı və QEYD ON-un ötürüldüyü anda SÜRƏT o qədər çox olur. Kesintilər dinamik ekrana da nəzarət edir, bu, göstəricinin titrəməsini aradan qaldırmaq üçün edilir.

    Düymə funksiyaları: TRANSPOSE – bütün düymələr sevimli A minor səviyyəsinə endirilir: diapazon +/- 15 yarım ton. PRG verilmiş ilkin təyinata (UP1-UP5) tembr (alət) təyin edir və VOL onun həcmini təyin edir. Cari parametr indikatorda göstərilir və “+” və “-” düymələrindən istifadə etməklə dəyişdirilə bilər TWIN “ikiqat” tembri - əvvəlcədən təyin edilmiş parametrlərdən birini (UP1-UP5) və eyni zamanda LOWER əvvəlcədən təyin edir. eyni vaxtda səslənir. STEREO cari əvvəlcədən təyin edilmiş səsi cüzi “detuning” (“xor” effekti) ilə sağ və sol stereo kanallara çıxarır. SPLIT düyməsi aktivləşdirilməyib. SUSTAIN pedalı düymələrdən biri kimi dizayn edilmişdir, onun telinin tutumu çox böyük olmamalıdır; Düymələrin işlənməsinin ünvanları proqramın əvvəlində bir cədvəldə toplanır, düymələrin funksiyalarını dəyişdirərkən, özünüzü əvəz edə bilərsiniz;

    Təkərin ADC yarım proqram təminatıdır, o, ardıcıl yaxınlaşma alqoritmi ilə işləyir, R-2R matrisi rəqəmsaldan analoqa çevrilməni həyata keçirir. Birincisi, R-2R matrisinə ən əhəmiyyətli rəqəmdə 1 tətbiq edilir və müqayisəçi onun çox və ya az olduğunu müəyyən edir. Əgər azdırsa, 1 ən əhəmiyyətli bitdə qalır, çox olarsa - 0. Sonra hər bir sonrakı aşağı dərəcəli bitlə (cəmi 6 addım) eyni şey baş verir və biz 6 bitlik rəqəmə uyğun gəlir. təkərin fırlanma bucağı. Bu dəqiqlik mənə yetərli görünür, lakin siz matrisi və çevirmə proqramını artıraraq bir bit əlavə edə bilərsiniz.

    Dizayn

    Əsl klaviatura olaraq mən sovet istehsalı olan "Start" konstruktorundan istifadə etdim, bəlkə də köhnə, işlək olmayan Yamaha və ya Casio tapmaq daha asandır, bu, əlbəttə ki, işi düzəltmək problemini həll edəcək; köhnə alət nisbətən salamatdır...

    Çap dövrə lövhəsi hazırlanmadı - cihazın bir nüsxəsini istehsal etmək üçün naqillərə və lövhə düzəltməyə vaxt sərf etməyi yersiz hesab etdim və sxem MGTF keçidlərindən istifadə edərək bir dövrə lövhəsində edildi. Klaviaturaya birləşdirici və kabel olaraq, hər tərəfdə müvafiq konnektoru olan bir kompüterdən disket sürücülərdən bir kabel istifadə etdik - bu, hazır cihazın yığılmasını / sökülməsini asanlaşdırır.

    Mənim vəziyyətimdə gövdə nazik təbəqə poladdan (əlində olan) əyilmişdi - taxta tərəfləri ilə (köhnə sovet alətləri kimi).

    Yaxşı, bir sözlə, hamısı budur. Yaradıcı uğur!

    Baxış