Компьютерге арналған DIY USB музыкалық пернетақта. Біз өз қолымызбен MIDI пернетақтасынан электронды фортепиано жасаймыз. Midi пернетақта схемасы MKC64 v1.54

Менің ойымша, компьютерде дыбыспен жұмыс істеуге тырысқандар миди контроллерлері сияқты құрылғылар туралы естіген шығар. Көптеген адамдар музыка жасаудан алыс, әртістерді әртүрлі «бұралыстар» мен «итергіштері» бар қойылымдарда керемет бағаға көруге мүмкіндік алды. Бір тиын жұмсамай-ақ, мұндай пайдалы нәрсені қалай алуға болады? Лайықты опция - үйде жасалған MIDI пернетақтасы.

Midi контроллерлері бойынша шағын білім беру бағдарламасы

Midi контроллері («MIDI» ағылшын аббревиатурасынан - бағдарламаларда қолданылатын интерфейстің белгіленуі) - миди байланысы тұрғысынан компьютердің мүмкіндіктерін кеңейтуге мүмкіндік беретін құрылғы.

Бұл құрылғылар не істей алады?

MIDI контроллерлері музыканы жасау және жазу бағдарламасымен (секвенсер, трекер және т.б.) өзара әрекеттесуге және бағдарламалық құралды сыртқы аппараттық модульдермен қосуға мүмкіндік береді. Соңғысы әртүрлі типтегі консольдерге, механикалық араластырғыштарға және сенсорлық тақталарға қатысты.

Жаңадан бастаған музыкант үшін «гаджеттердің» осы класының басты мәселесі олардың жоғары бағасы болып табылады: толыққанды жаңа MIDI пернетақта құралының орташа құны 7 мың. Егер сіз бір жерде жұмыс істеп, жақсы ақша тапсаңыз, сома, әрине, күлкілі. (Ресейде еңбекке жарамды сәбилер мен зейнеткерлерді есептегенде жан басына шаққандағы жалақы 28 мыңды құрайды).

Бірақ егер сіз, мысалы, студент болсаңыз, онда мұндай баға белгісі сіз үшін «шағатын» болады. Осы аспектіге байланысты үйде жасалған MIDI пернетақтасын пайдалану мәселенің оңтайлы шешімі болады.

Үйде жасалған миди пернетақтаны алу үшін не істеу керек?

Компьютерде секвенсер орнатылған болуы керек екенінен бастайық. (Барлық нюанстар Fl Studio секвенсерінің мысалында және өз класындағы ең танымалдардың бірі болып табылатын Vanilin MIDI пернетақта эмуляторы бағдарламасының мысалында талқыланады).

  1. Vanilin MIDI пернетақтасын жүктеп алып, орнату керек. Бағдарламаны оның ресми сайтынан таба аласыз.
  2. Сіз бұл (немесе ұқсас) қолданбаны орнатып қойдыңыз делік, енді жұмыс үстеліне оралыңыз - онда төте жол пайда болуы керек. Осы таңбашаны пайдаланып эмуляторды іске қосып, параметрлерге өтіңіз.
  3. Егер компьютерде чипсетке орнатылған стандартты дыбыс картасы болса, «Құрылғы» мәзір тармағын басқаннан кейін сіз екі ішкі тармақты көресіз: «MIDI қайта құру құрылғысы» және «Бағдарламалық аудио синтезатор». MIDI Remapper түймесін басыңыз.
  4. Бағдарламаны азайту. Таныс бағдарлама белгішесі тапсырмалар тақтасының төменгі оң жақ бұрышында (сағаттың жанында) пайда болуы керек.
  5. Секвенджерді бастаңыз. Параметрлер мәзірін таңдап, MIDI параметрлері ішкі элементін басыңыз
  6. MIDI шығысы жолында MIDI Remapper параметрін таңдаңыз

Осы қарапайым қадамдарды орындағаннан кейін қандай да бір құрал жасап, кез келген пернетақтаны басып көріңіз. Егер сіз бәрін дұрыс орындасаңыз және бос (немесе дыбысы өшірілген) аспапты орнатпасаңыз, дыбысты естуіңіз керек.

Міне, енді сіздің қолыңызда нағыз пернетақта құралы бар! Енді сіз дыбысты көріп, тыңдап қана қоймай, өз фортепианоңыздың пернелерінің тиюін де сезіне аласыз.

  • Дыбыс
  • Бала кезімде фортепиано болды, советтік, 300 келідей соғып, музыка мектебін бітіргеннен кейін бірдеңе ойнадым. Фортепиано керемет, шынайы, бірақ мүлдем практикалық емес. Оны шынымен де жанға дұрыс жеткізу үшін сізге барабан жинағы, электрогитараға арналған керек-жарақтар жинағы, кларнет, ситара және үлгі ілмектер қажет...

    Әрине, енді сіздің пәтеріңізді алты жалақысы бар гараж студиясына айналдырудың қажеті жоқ, компьютерге тегін музыкалық редактор орнату жеткілікті. Бірақ мұның бәрі ыңғайсыз.

    ДК пернетақтасы пернетақта құралына мүлдем ұқсамайды, мұнда бәрі басқаша. Оның үстіне, бұл баланы оқытуға мүлдем жарамайды. Синтезатор сатып алудан басқа амал жоқ сияқты. Бірақ менде әлі де күмән бар.

    Синтезатор дегеніміз не? Музыкалық пернетақтасы бар үлкен құрылғы, ол бір жерде көп орын алуы керек. Кірістірілген акустика бар, бірақ менде динамиктері бар ресивер бар. Оның ішінде нашар компьютер бар, бірақ менде жақсы компьютер бар.

    Мен 40 мыңға менде бар нәрсені ең жақсы сапада сатып аламын, пернетақтадан басқа. Бұл қисынсыз шығындардың максимумдары ғана.

    Бөлек пернетақтаны іздеген кезде мен USB MIDI пернетақтасы сияқты құрылғылар класын кездестірдім.
    Маған әрқашан MIDI кәсіби музыкалық қызмет саласына жататын сияқты көрінетін.
    Бірақ қазір барлық музыка компьютерде, кез келген ыңғайлы жерде жасалады, яғни музыканттарға рюкзакқа оңай сыйатын мобильді музыкалық пернетақталар қажет.

    Менің басымда бірден жоспар құрылды. Біз MIDI пернетақтасын Raspberry Pi 3 негізіндегі үй медиа орталығына қосамыз, мұнда бағдарламалық жасақтама синтезаторы жұмыс істейді, бұл кез келген адамға кез келген уақытта өзінің келесі шедеврін орындауға мүмкіндік береді. Мұндай MIDI пернетақталарында әдетте әртүрлі әсерлер немесе қосымша музыкалық аспаптар үшін бағдарламаланған басқару элементтері мен қосымша түймелер болады. Бұл өте керемет көрінеді және естіледі!

    Үлкенірек және кішірек құрылғылар бар, кейбіреулері қымбатырақ, ал кейбіреулері арзанырақ. Мен 5 мыңға жуық опцияны таңдадым. Онда екі октава, қалыпты өлшемді пернелер, барабаншыларға арналған түймелер, баптау тұтқалары, яғни жаңадан бастаған электронды музыкант армандайтынның бәрі бар.

    Мен компьютерде музыка жасаудың маманы емеспін, сондықтан идеямды жүзеге асыру жолдарын іздеу қиын болды. Ақпаратты біртіндеп жинау керек болды. Пазл бірте-бірте қалыптаса бастады және мен сіздермен бөлісетін жұмыс шешімін құрастыра алдым. Бір қызығы, стандартты Raspbian/Debian дистрибутивінде сізге қажет нәрсенің бәрі бар, тіпті сыртқы репозиторийлерді қосудың қажеті жоқ.

    Fluidsynth секвенсер (MIDI файлдарын ойнататын қолданба) ретінде пайдаланылады.
    MIDI пернетақтасы ALSA арқылы бірден анықталады және секвенсерге қосылу үшін қол жетімді.
    Әртүрлі аспаптардың дыбыстарын шығару үшін SoundFont2 пішіміндегі ашық үлгі деректер базалары қолданылады. Алдымен мұның бәрін орнатайық.

    Sudo -s apt-get update apt-get -y орнату alsa-utils liquid-soundfont-gm liquidsynth
    Біз Raspberry-ге MIDI пернетақтасын қосамыз және секвенсерді сервер режимінде іске қосамыз:

    Fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
    Біз пәрменді орындаймыз:

    Қосылу -o
    Нәтижесінде біз қол жетімді MIDI клиенттерінің тізімін көреміз:

    14-клиент: «Midi арқылы» 0 «Midi арқылы порт-0» клиент 20: «VMini» 0 «VMini MIDI 1» 1 «VMini MIDI 2» клиенті 128: «FLUID Synth (1628)» 0 «Synth кіріс порты (1628) ) :0)"
    Бұл жерде біз үшін пернетақта мен секвенсердің клиенттік нөмірлерін есте сақтау маңызды, осылайша біз оларды командамен байланыстыра аламыз:

    Қосылу 20:0 128:0
    Енді біз Yamaha Piano-да ойнауға дайынбыз (бұл әдепкі аспап). Fluidsynth бойынша нұсқаулықты оқыңыз, онда көптеген қызықты командалар бар, мысалы, аспапты барабанға немесе желге ауыстыру, реверб немесе хордың мөлшерін орнату.

    Бағдарламалық синтезаторымызды ыңғайлы етейік. Пернетақтаны секвенсерге әр уақытта қолмен қоспау үшін біз оны іске қосу кезінде автоматты түрде жасайтын қарапайым жын жазамыз.

    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 liquidsynth &> /dev/null ) restartDaemon() ( stopDaemon startDaemon ) case "$1" in start) startDaemon ; ;
    тоқтату) Демонды тоқтату;;

    қайта іске қосыңыз) Daemon қайта іске қосыңыз;
    күй);;

    *) Daemon esac 0 EOF шығуын бастау

    Автоматты іске қосу үшін демонды тіркеңіз:

    Chmod 755 /etc/init.d/fluidsynth update-rc.d liquidsynth әдепкі мәндері

    Енді іске қосу кезінде секвенсерге пернетақтаны нақты синтезаторға айналдыратын пәрмендерден тұратын конфигурация файлы (/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
    Мәселе мынада. Пернетақтадағы әрбір перне мен тұтқа белгілі бір оқиғаларды өз нөмірімен жібереді. Менің түсінуімше, мұнда арнайы стандарттар жоқ, сондықтан әр өндіруші өз қалағанын жасайды. Мысалы, төртбұрышты пернелердің барабан сияқты дыбысталуын, қалған пернелердің фортепиано сияқты дыбысталуын, ал түймелердің дыбыс деңгейін, реверб пен хорды басқаруын қалаймын.

    Сонымен, мен оқиға кодтарын пернетақтадан әртүрлі құралдарға және кодтарды тұтқалардан секвенсер түсінетін кодтарға салыстыруым керек. Сұйықтықта бұл маршрутизатордың көмегімен жасалады. Дәл осы пәрмендер конфигурация файлында қамтылған.
    Міне, менің конфигурация файлымның мысалы, оның не істейтіні туралы түсініктемелері бар.

    Cat > /home/osmc/midi-маршрутизатор

    Құрылғыңыз қандай кодтарды жасайтынын білу үшін сізге осы қызметтік бағдарламаны пайдалану қажет:

    Aseqdump -p 20:0

    Жақтау. Бірінші және ең негізгі нәрсе талап етіледі, дұрысын табу қиын. Мен осы мақсатқа арналған қорапты сатып алдым.
    - USB пернетақтасы, жақсырақ өте ескі емес, өйткені сым жұмыс істемеуі мүмкін.
    - Кілттер (мен алғандарым): PBS-16B (FEET), SPA-101B4 (ADOPS), PBS-15B ҚОСУ (ҚОСУ). Барлығы бекітусіз. Сіз оны Chip and Dip дүкенінен сатып ала аласыз.
    - Сымдар. Бір ядролы көп. Менің ойымша, бұл үшін бұралған жұп ең жақсы. Көздің артында 2 метр. Бұл жай ғана босаңсу ыңғайсыз.
    - Менің ойымша, бұл құрылғыны құрастыруға шешім қабылдағандардың барлығында дерлік дәнекерлеу үтігі бар.
    - Корпустың тесіктерін жасауға арналған құралдар. Егер сіз кез келген нәрсеге ыңғайлы болсаңыз, сіз тіпті өздігінен бұрап тұратын бұранданы пайдалана аласыз, содан кейін оны өңдеу үшін пышақты пайдалана аласыз, бірақ тағы да, менің ойымша, барлығында бұрғы бар.

    Кәне, бастайық. Сізге қажет бірінші нәрсе - қораптағы тесіктерді белгілеу және бұрғылау:

    Енді аяқ ауыстырғышты жасаудың зиянды бөлігіне көшейік. Біз сымдарды диаграммаға сәйкес дәнекерлейміз, пернетақтадағы кірістерге кіріс нөмірлері бар сәйкестендіру парақтарын ілуді ұмытпаңыз:

    Ол келесідей көрінуі керек:

    Енді USB пернетақтасынан контроллерге дәнекерлеудің өте күрделі процесі басталады. Жоғарыда көрсетілген диаграммадағыдай контроллері бар пернетақтаны сатып алу/табу/алып кету бақытына ие болсаңыз, дәнекерлеу станциясынсыз жасай алмайтыныңызды атап өтейін. Тақтаны корпусқа қол жетімді кез келген дерлік құралдармен, сұйық шегелермен, өздігінен бұрап тұратын бұрандалармен, суперклеймен, силиконмен бекіте аласыз, жалпы алғанда, қатты соқпасаңыз, ол ұстайды, бірақ бұл оған байланысты. жағдайда, бұралған жұп тақтаны мықтап басады.

    Біз косметикалық жақсартуларды жасаймыз, NUB LOCK корпусына диодты дәнекерлеңіз ... Сым үшін тесік жасап, USB кабелін қайта бағыттаңыз, бұл үшін тек қиял жеткілікті.

    2-кезең: Бағдарламалық құралды орнату. Бұл құрылғыны жасағандардың барлығына қиындық тудырмайды деп үміттенемін. Guitar Rig үшін бәрі оңай болуы мүмкін емес еді, NUM Lock қосыңыз, қондырғыны қосыңыз, OPTIONS - CONTROLLER тармағын ашыңыз, МӘЗІР түймесін басыңыз, қажетті әрекетті іздеңіз, Үйрену түймесін басып, контроллердегі сәйкес түймені таңдаңыз. Содан кейін Add Controller түймесін басып, сол әрекеттерді қайта орындаңыз. Біз қажет нәрсені тергенше немесе кілттеріміз таусылғанша осылай жалғасады. Сондай-ақ, 3-ші қондырғыдағы кез келген дерлік әрекетке кілтті тағайындай аласыз, нысанды тінтуірдің оң жақ түймешігімен басып, «Оқу» түймесін қайтадан басыңыз.

    Бірақ енді сіз осы миды Midi пәрменінде орнатуға қызығушылық танытсаңыз, сізге көбірек көңіл көтеру керек болады.
    Бұл бізге пернелерді midi пәрмендерімен байланыстыратын бағдарламалық құрал қажет екенін білдіреді. Мұндай бағдарлама бар, мен оның аналогын көрмесем де, бақытымызға орай, ашкөздікпен емдеудің қажеті жоқ. Ол Virtual Midi контроллері деп аталады, негізгі әрекет C IN қойындысында конфигурацияланады, орнату - Орнату - Келесі - Келесі. Міне сілтеме.


    Оған виртуалды MIDI кабелі де кіреді, сондықтан қажетсіз қозғалыстарды жасаудың қажеті жоқ. Шынымен жалқаулар үшін, мен аяқ қосқышы үшін банктің алдын ала орнатуын жіберемін: банк - олар VMC-тен шыққаннан кейін әдепкі бойынша C:\Program Files\Virtual Midi Controller\ бағдарлама қалтасының түбіріндегі файлды ауыстыруы керек. Ыңғайлы болу үшін SETUP қолданбасында Run In Background құсбелгісін қойыңыз және негізгі VMC терезесінде K әрпін басыңыз, содан кейін бағдарлама кішірейтілген режимде пәрмендерді қабылдайды. Енді бағдарламадан шығу үшін оны науадан алып тастау керек. Енді сіз Nuendo және Sonar екеуін де аяқ қосқышынан басқара аласыз. Әрине, TH1 пернетақтаны миди арқылы алады.

    Барлық сұрақтар бойынша хабарласыңыз...

    Келесі жоспарланған жобалар:
    - Гитараны қорғау.
    - Өзіңіз жасайтын комбо.

    Музыкалық жұмыстарыңызға сәттілік...

    Бұл MIDI/ойын порты бар стандартты компьютер дыбыс картасымен пайдалануға арналған қарапайым MIDI пернетақта тізбегі. Пернетақта ойын портынан тікелей қуат алады, қуат көзі қажет емес.

    Midi пернетақта схемасы MKC64 v1.54



    Бөлшектердің жиынтығы


    Микросұлбалар: PIC16F84 немесе PIC16C84 контроллері. Декодер 74LS138 немесе K555ID7 аналогы.
    Кварц резонаторы: ZQ1 = 4 МГц.
    Конденсаторлар: C1= 47мФ; C2, C3=27pF; C4=0,1мФ
    Резисторлар: R1,R2,R4 = 1-ден 10Комға дейін; MIDI шығысын қорғау үшін R3 = 270Ω; R5 = 2k2
    Диодтар: D1-D64 = KD522 (стандартты диодтардың кез келген түрі)
    Қосқыштар: DB15

    Микробағдарлама


    Егер сіз MKC1.4 микробағдарламасын jmp1 секіргішсіз пайдалансаңыз, онда пернелер DO (C) жазбасынан FA (F) жазбасының секіргішімен басталады.
    MKC1.54 микробағдарламасын пайдалансаңыз, jmp1 кейбір функцияларды басқаруға мүмкіндік беретін S1 бағдарламалық түймесі көрсетіледі.
    Басқару үшін S1 түймесін басып, оны ұстап тұрып пернетақтадағы 16 сол жақ перненің бірін басу керек.

    Функцияны басқару пернелерінің кестесі:
    1 MIDI арнасын өзгерту -1 (1..16)
    2 MIDI арнасын өзгерту +1 (1..16)
    3 Төменгі октава -1 (1..11)
    4 октаваны көтеру +1 (1..11)
    5 Триггер ескертпесі -1
    6 Триггер ескертпесі +1
    7 Жылдамдықты азайту -1 (1..127)
    8 Жылдамдықты арттыру +1 (1..127)
    9 All Notes on хабарын қосу
    10 All Notes Off хабары Disable
    11 NoteOn (жылдамдық = 0)
    12 Ескертпе Өшірулі
    13 MIDI бағдарламасы -1
    14 MIDI бағдарламасы +1
    15 MIDI банкі -1
    16 MIDI банкі +1



    Пернетақта сыртқы дыбыс модуліне немесе компьютерге (тиісті интерфейс бар болса) MIDI протоколы арқылы қосылуға арналған - секвенсер бағдарламасына музыканы жазу немесе жанды орындау. Ұсынылған нұсқадағы пернелердің саны 48, бірақ схеманы өзгертпей 64-ке дейін көбейтілуі мүмкін. Ұсынылған пернетақтаның ерекшелігі оның пернеге әсер ету күшіне сезімталдығы болып табылады.

    Құрылғының тарихы

    Біраз уақыт бұрын пәтер сатып алуға байланысты мен үшін MIDI пернетақтасы ретінде қызмет ететін сәнді аспапты жоғалтуға мәжбүр болдым - бұл аты аңызға айналған YAMAHA DX-7 болды. Мұң басылғанда, оның барлық ауырлығымен және ұсқынсыздығымен сұрақ туындады: немен жұмыс істеу керек? Дәл осы сәтте менің досымның күшімен KR1816BE39 (қарсы тілде бұл процессор 8048 деп аталады) жартылай құрастырылған схемасы менің қолыма түсті. Схеманы құрастыру және орнату оңай, ең бастысы, ол қажетті уақытта қолына келді. Мен KR1533ID7 және KR1533KP7 көмегімен пернетақтаны 8x6 матрица түрінде жинадым. Майда шыбын да болды - бұл схеманың екі кемшілігі оның барлық артықшылықтарын өлтіреді: пернелерді басу жылдамдығына (колонкаларға) және PITCH WEEL дөңгелегіне сезімталдықтың болмауы. Мен бір рет Z-80-де бағдарламаладым (тіпті жұмыс секвенсерін жасадым) және ескі күндерден бас тартуды шештім. Мен Z-80 процессорын моральдық тұрғыдан ескірген деп шештім. Сонымен қатар, мен көп дәнекерлеуді қаламадым және мен дәл сол құрылғыны KR1816BE39 құрылғысына негіз етіп алуды шештім, оны кілттердің үзілу (жоғарғы) контактілері үшін басқа мультиплексормен жабдықтау. Мен KR1816BE39 ассемблеріне арналған құжаттаманы таптым (сенбейсіз - кітапханадан «Бір чипті микропроцессорларда цифрлық құрылғыларды жобалау» кітабынан) және бағдарламаны сызып тастадым ... Содан кейін бір досымның ROM бағдарламашысы бар екен. қайтыс болды, және бағдарламаны жарқырататын ештеңе болмады... Қайғыдан мен мүлдем ес-түссіз қалдым және PIC үшін бірдей алгоритмді қайта жазуды шештім. Жарты күн ішінде бағдарламашы (LUDIPIPO) бірге дәнекерленді, содан кейін KR1533ID7 розеткасынан және KR1533KP7 жұбынан прототип жасалды және бүкіл орнату MGTF арқылы ешқандай мөртабансыз жасалды. Ал процесс басталды...

    Біріншіден, бағдарламаның динамикалық емес нұсқасы іске қосылды (мен оны әр пернеде бір контакті бар пернетақтасы барлар үшін де ұсынамын). Содан кейін динамикалық нұсқа басталды. Содан кейін түймелер мен индикаторды қосу идеясы келді. Менде WAVEBLASTER (өте ескі дыбыс жүйелеріне арналған толқындық кесте синтезаторы) ұзақ уақыт бойы жұмыс істемей тұрған болатын. Оны өзімнің туындыма қосу арқылы мен компьютерсіз ойнауға болатын нәрсе алдым (қабілетіңіз бен талантыңыз бойынша), бұл кейде өте ыңғайлы. Бұл түймелердегі функциялар жинағын анықтады - бұл «жанды» ойнату кезінде дыбыстық модульдерге қосылу кезінде пайдалы болуы мүмкін. Түймешіктердің функцияларын өзіңіздің өңдеушілеріңізді жазу және менің сұрауларымды және көрсету процедураларымды пайдалану арқылы өзгерту оңай. Қалай болғанда да, темір қорапта жиналған пернетақта YAMAHA PSS-ге қарағанда ыңғайлы болып шықты (толық өлшемді пернелер, педаль және ең бастысы динамика!). Шығармашылық процестің ортасында MIDI пернетақтасының тек компьютерге арналған нұсқасын жасауға қиын тілек пайда болды - индикатор мен түймелер міндетті емес, бірақ PITCH WEEL және MODULATION дөңгелектері қажет. Мен онымен біраз уақыт күрестім, бірақ соңында бас тарттым және дәнекерлеу үтікті қайта қостым. Электрониканы құрастыру қиын емес, бірақ механика біршама қиынырақ, мен доңғалақ дизайнына қабағымды әжімдей бастадым. Біраз ойланғаннан кейін мен екінші дөңгелектен бас тартуды шештім - бәрібір, мен екеуін де бірден айналдырмаймын, мен әдетте ноталарды жазамын және алдымен қадам жасаймын, содан кейін модуляция қосамын. Маған ұнайтын механикалық жұмыс көлемінің екі есе азаюы да назардан тыс қалмады. Аз жалқаулар үшін мен төменде екі дөңгелекті күрделіліксіз қалай жасауға болатынын түсіндіремін. Модуляцияны әлі де жаза білу үшін мен дөңгелектің үш жұмыс режимін ұйымдастыруды шештім: 2 жарты тоннаға арналған қадам, 1 жарты тоннаға арналған қадам (ыңғайлы) және модуляция. Мұның бәрін бір түймемен ауыстырып, режимді жұп жарықдиодты шамдармен көрсетуге болады. Схеманы жеңілдету үшін мен қалған түймелер мен индикаторларды алып тастадым, мұның бәрі заманауи секвенир бағдарламаларымен жұмыс істеу үшін қажет емес;

    Дөңгелекті, әрине, потенциометр осіне қою керек, бұл түсінікті, бірақ оны немен байланыстыру керек? Менің бірінші ойым 555 таймерінде бір рет атуды пайдалану болды, бірақ есептеулер доңғалақтарды таңдау жылдамдығын қамтамасыз етуге тырысқанда импульс ұзақтығын өлшеудің дәлдігі мен тұрақтылығына қол жеткізу қиын болатынын көрсетті, өйткені процессор негізінен өлшеумен айналысады. пернетақта контактілерінің ауысу уақыты. Қалған жалғыз жол - аналогты-сандық түрлендіргішті (ADC) пайдалану. Мен Pic16F84-ді кірістірілген ADCсыз пайдаланғандықтан, мен инженерлік тәжірибемді (және өзімнің зауытымды) есіме түсірдім және компараторы (және бағдарлама бөлігі) бар бірнеше резисторлардан ADC жасадым. Бұл қарапайым, арзан және өте дәл болып шықты.

    Мен екі диаграмманы - түймелермен де, дөңгелектермен де, сондай-ақ оларға арналған бағдарламаларды ұсынамын. Қажет болса, сыртқы құрылғылардың мекенжайларын аздап өзгерту арқылы екі тізбекті де оңай біріктіруге болады, тек CHORUS (STEREO) режимі детюнингті алу үшін дыбыс биіктігін пайдаланатынын есте сақтаңыз және сіз оны алып тастауыңыз керек немесе детюнингпен дыбысты беру туралы алаңдауыңыз керек; арналар бойынша.

    Сонымен - нақты пернетақта

    Құрылғы диаграммасы

    Бірінші болып орналасудың функционалдығын тексеру үшін кілтке әсер ету күшіне сезімтал емес динамикалық емес нұсқасы пайда болды.

    Мен PIC16F84 процессорын бірнеше себептер бойынша процессор ретінде пайдаландым: бұл чип қолжетімді, арзан және бағдарламалануы оңай, сонымен қатар бұл менің қолымда болған. Назар аударыңыз: PIC16C84 жарамайды - оның тек 36 жедел жады ұяшығы бар және бағдарлама жұмыс істемейді. Дегенмен, доңғалақ тізбегі RAM ұяшықтарын азырақ пайдаланады және оның бағдарламасын PIC16C84 ішіне тағы бірнеше ұяшықтарды азайту арқылы сығуға болады, мысалы, MIDCH (барлық жіберілетін деректерге тұрақты MIDI арнасын тағайындау арқылы).

    Төменде көрсетілген динамикалық пернетақтаның диаграммасы көрсетілген:

    Схема көптеген жағынан дәстүрлі болып табылады - педальдарсыз және дөңгелектерсіз велосипедті қайта ойлап табу қиын J порты беру үшін жұмыс істейді - төменгі 7 бит матрицадағы негізгі мекенжайды немесе сыртқы құрылғыларға арналған деректерді шығарады (индикатор және дөңгелек DAC). Ең маңызды бит сериялық кодта MIDI деректерін шығару үшін пайдаланылады - түрлендіру және шығару бағдарламалық құралда орындалады. Сондықтан MIDI байт шығыс ретін қайта жазғыңыз келмесе, кристал 4 МГц болуы керек. А портының екі ең аз маңызды биті қабылдау үшін жұмыс істейді - олар «босатылған» және «басылған» кілт контактілерінің мультиплексорларынан сигналдарды қабылдайды, ал ең маңызды үш бит сыртқы құрылғының мекенжайын анықтайды (басқа KR1533ID7 декодері арқылы). Дөңгелегі бар тізбекте мен схеманы жеңілдету және компаратордан деректерді енгізу үшін PA4 портының жоғары битін босату үшін сыртқы құрылғы мекенжайының декодерінен бас тарттым, сондықтан пернетақта мен түймелердің мекенжайлары әртүрлі. Тізбектерді біріктіру кезінде бұл микросұлбаны қайтару керек, адрестің шифрын шешу үшін PA2 және PA3 порт биттерін және 4 құрылғыларды адрестеу керек: пернетақта, түймелер, динамикалық индикация деректерінің регистрі және динамикалық индикацияның танысу регистрі. Доңғалақ режимінің индикаторы қайта жазылуы керек.

    PITCH WEEL / MODULATION дөңгелегі бар схема келесідей:

    Әр кілтте ажырату үшін бір диод орнатылған. Мультиплексорлардың кірістеріндегі резисторлар 8к аспауы керек, әйтпесе орнату сыйымдылығына байланысты ақаулар болуы мүмкін. Индикатор - 3 цифрға арналған жалпы анодты кез келген, егер әрбір цифрдың сегменттерінің терминалдары бөлек шығарылса, бір аттас сегменттердің терминалдары біріктірілуі керек - индикатор динамикалық және цифрлар дәйекті түрде жанады. Кез келген түймелер, құлыптаусыз, контактінің серпілісі бағдарламалық құралмен басқарылады. Жарық диодты шамдар бір атаудағы түймелердің жанында орнатылады және сәйкес режимдердің іске қосылуын көрсетеді «+» және «-» түймелерінде жарықдиодты шамдар жоқ. Индикатордағы транзисторлар кез келген төмен қуатты, жоғары жиілікті кері өткізгіштік болып табылады. Ағымдағы индикатор цифрының мекенжайы мен кодын кезекпен бекіту үшін екі KR1533IR23 регистрлері пайдаланылады (диодтар да екі квазицифрға топтастырылған). Мен 48 пернелері бар кеңестік электр органдарының стандартты пернетақтасын қолдандым (ол сондай-ақ «СТАРТ» радиоконструкторы ретінде бөлек шығарылған және өте кең таралған). Пернетақтаның биіктігін және аспаптың қалыңдығын азайту үшін әр перненің астындағы алты контактілі топтың екеуін қалдырып, барлығын кесіп, қайта жапсырған. Жалпы алғанда, бір кілтке бір коммутация тобы жеткілікті, бірақ оны осылай желімдеу ыңғайлы болды. «Босатылған» және «басылған» контактілердің шиналары 8 кілттен тұрады. Қажет болса, пернетақтаны пайдалануға болады, онда контактілердің ауысу тобының орнына екі жұп жабылатын контактілер пайдаланылады - бір жұп кілт қозғалысының басында, екіншісі соңында жабылады (YAMAHA аспаптарындағы сияқты). Бұл жағдайда PA0-ға сигнал мультиплексордың кері шығысынан (6-пин) берілуі керек. Тізбекті өзгертусіз сіз 64 пернеден тұратын пернетақтаны пайдалана аласыз (стандартты – 61, яғни 5 октава). Қажет болса, кілттердің санын кем дегенде 127-ге дейін арттыруға болады, бұл үшін схемаға басқа KR1533ID7 декодерін енгізу керек.

    Механиканың дұрыс орнатылуы өте маңызды - пернелер босатылған кезде жоғарғы контактілер ЖАБЫЛУЫ КЕРЕК. Егер бұл орындалмаса, бағдарлама мұндай пернелерді басылған деп санайды және оларды өңдеуге тырысады, сондықтан бұл пернелерді қайтадан басу дыбыс шығармайды. Сонымен қатар, бір уақытта ойнатуға болатын ноталардың ең көп саны 10 (егер біреу қолында көбірек саусақтар өсірсе, бұл санды оңай өзгертуге болады), ал пернелерді босатпау бұл санды азайтады. Дәл осындай себептерге байланысты пернетақтаны сұрау процедурасында көрсетілген пернелер саны нақты пернелер санына сәйкес келуі КЕРЕК. Контактіні жіберу бағдарламалық құрал арқылы басылады.

    R-2R ADC резистивті матрицасы үшін резисторларды 1–2% дәлдікпен таңдаған жөн, абсолютті мәндер әртүрлі болуы мүмкін, қатынас маңызды. Дегенмен, номиналды мәнді айтарлықтай арттырмау керек, бұл компаратордың кіріс сыйымдылығына байланысты түрлендіру уақытын арттырады. Мен SMD резисторларын сәйкессіз пайдаландым, дегенмен өлшеулер бір монтаж жолағында резисторлар әдетте 1% жоғары дәлдікпен сәйкес келетінін көрсетті. Мен схеманың дәл емес резисторлармен жұмыс істейтініне сенімдімін, бірақ сипаттаманың сызықтылығы нашарлайды. Дөңгелектің өзі ескі теледидардың тұтқасынан жасалған және потенциометр осінде оны ортаңғы күйге қайтаратын серіппе бар. Механиканы орнатудың ыңғайлылығы үшін режим түймешігін басып қуат көзін қосқанда, дөңгелек ортаңғы күйде болғанда жарық диодты шамды қосатын жөндеу бағдарламасы іске қосылады, бұл нөлдік позицияны дәл реттеуге мүмкіндік береді. потенциометр осіндегі дөңгелектің. Жеке МОДУЛЯЦИЯ дөңгелегін жасауға қажеттілік пен тілек болса, оны бос компаратор элементіне қосу керек (олардың төртеуі бар) және R-2R матрицасы екі дөңгелекке де ортақ. Салыстырғыштардың шығыстарын ауыстыру үшін қосымша микросұлбаны, ал басқару сигналы ретінде PA2 қолданған дұрыс.

    Қажет болса, пернетақтаның динамикалық нұсқасын индикаторсыз, түймелерсіз және PITCH WEEL / MODULATION дөңгелегісіз - схеманың пайдаланылмаған бөлігін құрастырмай-ақ жинай аласыз. Қуат қосулы кезде барлық өзгеретін параметрлер әдепкіге орнатылады...

    Мұның барлығын кез келген нәрседен қуаттандыруға болады, ағымдағы тұтыну нақты көрсеткішке байланысты және 100 мА аспайды. Менде бортта радиаторсыз 7805 тұрақтандырғыш бар (оны фотода анық көруге болады). Кішкентай радиатор қажет, егер оған 9в-тан көп қуат берілсе. Салыстырғыш 9 - 12 в кернеумен қоректенеді, жақсырақ тұрақтандырылған. Ия, мен ескі қорлардан кеңестік микросұлбаларды қолдандым - олардың қазіргі заманғы аналогтары көп, ауыстыру мүмкін және тіпті қажет - заманауи аналогтар аз тұтынуға ие.

    Бағдарлама

    Басылған пернелерді өңдеу алгоритмі 1986 жылғы №5 «Микропроцессорлық құралдар мен жүйелер» журналында ұсынылған алгоритмнен алынған. Дәл осы жарияланым (дәлірек айтқанда, ұсынылған бағдарламадағы қате) мені ассемблер мамандығы бойынша оқуға итермеледі. Шындығында, ол жерден алынған жалғыз идея - пернетақта қайта сұралғанда, ол өңделген пернені қайта өңдемейтіндей етіп, жедел жадтың (CHAN) арнайы бөлінген аймағында әрбір басылған перненің нөмірін жазу болды. Менде басылған пернелердің әрқайсысына бөлінген екі ЖЖҚ ұяшығы бар (барлығы 10-нан көп емес): біріншісінде басылған перненің саны жазылады, екіншісінде - оның ЖЫЛДАМДЫҒЫ (басу жылдамдығы). Қайталап айтамын - бұл ұяшықтардың тек 20-сы бар және бастапқы мекенжай CHAN атауымен берілген. Еркін жұптың белгісі бірінші ұяшықтың ең маңызды биті болып табылады. Орнатылған екінші ұяшықтың ең маңызды биті осы кілт үшін ЕСКЕРТПЕ ҚОСУ әлдеқашан жіберілгенін және оны әрі қарай өңдеуді қажет етпейтінін білдіреді.

    Мен бүкіл бағдарламаны егжей-тегжейлі сипаттамаймын, бастапқы код түсініктемелерге толы және оқытылған адам үшін қол жетімді. Қалғандары үшін мен дереу Dinamic.hex және Pitchmod.hex файлында дайын микробағдарламаны беремін. Мен кейбір анық емес тұстарды ғана түсіндіремін. Ең алдымен, динамика туралы: қазіргі уақытта кілттің жоғарғы контактілері ашық, оның нөмірі бір уақытта бос жұп белгісін қалпына келтіре отырып, CHAN аймағынан бірінші бос жұптың бірінші ұяшығына жазылады. Бастапқы мән HELOCITY = 127 екінші ұяшыққа жазылады, пернетақтаның сезімталдығы үзіліс жиілігімен анықталады, өйткені үзілістерді өңдеу NOTE ON әлі жіберілмеген барлық пернелер үшін ЖЫЛДАМДЫҚ мәндерін азайтады. Үзілістер кірістірілген таймер арқылы туындайды. Кілттің төменгі контактілері жабылған кезде, сәйкес CHAN ұяшығында «берілді» белгісі орнатылады және ЕСКЕРТПЕ ҚОСУ ағымдағы ЖЫЛДАМДЫҚпен беріледі. Сезімталдық қисығын жақсарту үшін логарифмдік заңға сәйкес ЖЫЛДАМДЫҚ мәндері төмендейді: оның 1-ге азайған бөлігінің 1/16 бөлігі ағымдағы ЖЫЛДАМДЫҚ мәнінен алынады, осылайша кілт жоғарғы контактіден төменге қарай жылжиды біріншіден, сәйкес CHAN ұяшығындағы ЖЫЛДАМДЫҚ мәні логарифмдік заңға сәйкес төмендейді және перне неғұрлым жылдам қозғалса, перненің төменгі контактілері жабылған және ЕСКЕРТПЕ ҚОСУ берілген сәттегі ЖЫЛДАМДЫҚ соғұрлым жоғары болады. Үзілістер динамикалық дисплейді де басқарады, бұл индикатордың жыпылықтауын жою үшін жасалады.

    Түйме функциялары: TRANSPOSE – барлық пернелер таңдаулы минорға азайтылады: диапазон +/- 15 жарты тонна. PRG берілген алдын ала орнатуға (UP1-UP5) тембрді (құрал) тағайындайды, ал VOL оның дыбыс деңгейін тағайындайды. Ағымдағы параметр индикаторда көрсетіледі және оны «+» және «-» түймелері арқылы өзгертуге болады. бір уақытта дыбыс. STEREO ағымдағы алдын ала орнатылған дыбысты оң және сол стереоарналарға сәл «детунинг» («хор» әсері) арқылы шығарады. SPLIT түймесі іске қосылмаған. SUSTAIN педалы тізбек бойынша жасалған, өйткені оның сымының сыйымдылығы өте үлкен болмауы керек. Түймелерді өңдеушілердің мекенжайлары бағдарламаның басында кестеде жинақталған, түймелердің функцияларын өзгерту кезінде сіз өзіңізді ауыстыра аласыз;

    Дөңгелектің ADC жарты бағдарламалық құрал болып табылады, ол дәйекті жуықтау алгоритмін пайдалана отырып жұмыс істейді, R-2R матрицасы цифрлық-аналогтық түрлендіруді орындайды. Біріншіден, ең маңызды сандағы 1 R-2R матрицасына қолданылады және компаратор оның көп немесе аз екенін анықтайды. Егер аз болса, 1 ең маңызды битте қалады, көп болса - 0. Содан кейін әрбір келесі төменгі ретті битпен бірдей нәрсе болады (барлығы 6 қадам) және біз келесі мәнге сәйкес алты разрядты сан аламыз. дөңгелектің айналу бұрышы. Бұл дәлдік маған жеткілікті болып көрінеді, бірақ матрицаны және түрлендіру бағдарламасын көбейту арқылы тағы бір бит қосуға болады.

    Дизайн

    Нақты пернетақта ретінде мен кеңестік «Бастау» конструкторын қолдандым, мүмкін, ескі, жұмыс істемейтін Yamaha немесе Casio табу оңайырақ, бұл корпусты жасау мәселесін де шешеді - егер, әрине, ескі құрал салыстырмалы түрде бұзылмаған ...

    Баспа схемасы әзірленбеген - мен құрылғының бір көшірмесін жасау үшін сымдар мен тақтаны жасауға уақыт жұмсауды орынсыз деп санадым, ал схема MGTF секіргіштерін пайдаланып схемалық тақтада жасалды. Пернетақтаға қосқыш және кабель ретінде біз әр жағында сәйкес қосқышы бар компьютерден иілгіш дискілерден кабельді қолдандық - бұл дайын құрылғыны жинауды/бөлшектеуді жеңілдетеді.

    Менің жағдайда, корпус жұқа табақ болаттан (қолдағы нәрсе) бүгілген - ағаш жақтарымен (ескі кеңестік аспаптар сияқты).

    Қысқасы, бәрі осы. Шығармашылық табыс!

    Қарау