DIY USB muzička tastatura za vaš računar. Svojim rukama izrađujemo elektronski klavir od MIDI klavijature. Krug midi tastature MKC64 v1.54

Mislim da su oni koji su pokušali da rade sa zvukom na računaru verovatno čuli za uređaje kao što su midi kontroleri. I mnogi ljudi, daleko od stvaranja muzike, imali su priliku da vide umetnike na nastupima sa raznim „zaokretima“ i „guranjima“ po neverovatnoj ceni. Kako možete dobiti tako korisnu stvar, a da ne potrošite ni peni? Pristojna opcija je domaća MIDI tastatura.

Mali edukativni program o midi kontrolerima

Midi kontroler (od engleske skraćenice “MIDI” - oznaka interfejsa koji se koristi u programima) je uređaj koji vam omogućava da proširite mogućnosti vašeg računara u smislu midi komunikacije.

Šta mogu ovi uređaji?

MIDI kontroleri vam omogućavaju interakciju i sa programom za kreiranje i snimanje muzike (sekvencer, tragač, itd.) i za povezivanje softvera sa eksternim hardverskim modulima. Potonje se odnosi na različite tipove konzola, mehaničkih miksera i touchpada.

Glavni problem ove klase "gadžeta" za muzičara početnika je njihova visoka cijena: prosječna cijena potpunog novog MIDI instrumenta s klavijaturom je 7 hiljada. Iznos je, naravno, smiješan ako negdje radite i dobro zarađujete. (Uostalom, u Rusiji je plata po glavi stanovnika 28 hiljada, računajući radno stanovništvo odojčadi i penzionera).

Ali ako ste, na primjer, student, onda će vam takva cijena biti "grizna". Zbog ovog aspekta, korištenje domaće MIDI klavijature postaje optimalno rješenje problema.

Šta trebate učiniti da dobijete domaću midi tastaturu?

Počnimo sa činjenicom da morate imati instaliran sekvencer na vašem računaru. (Sve nijanse će se raspravljati na primjeru sekvencera Fl Studio i programa emulatora Vanilin MIDI Keyboard, jednog od najpopularnijih u svojoj klasi).

  1. Morate preuzeti i instalirati Vanilin MIDI tastaturu. Program možete pronaći na njegovoj službenoj web stranici.
  2. Recimo da ste već instalirali ovu (ili sličnu) aplikaciju, sada se vratite na radnu površinu - tamo bi se trebala pojaviti prečica. Koristeći ovu prečicu, pokrenite emulator i idite na postavke.
  3. Ako računar ima standardnu ​​zvučnu karticu ugrađenu u čipset, onda nakon klika na stavku menija „Uređaj“ trebali biste vidjeti dvije podstavke: „MIDI remapping device“ i „Software audio synthesizer“. Kliknite na MIDI Remapper.
  4. Minimizirajte program. Poznata ikona programa bi se trebala pojaviti u donjem desnom uglu trake zadataka (negdje pored sata).
  5. Pokrenite sekvencer. Izaberite meni Opcije i kliknite na podstavku MIDI podešavanja
  6. U redu MIDI Output izaberite MIDI Remapper

Nakon što ste obavili sve ove jednostavne korake, kreirajte neku vrstu alata i pokušajte pritisnuti bilo koju tipkovnicu. Ako ste sve uradili kako treba i niste podesili prazan (ili utišani) instrument, trebalo bi da čujete zvuk.

To je to, sada imate pravi klavijaturni instrument u svojim rukama! Sada ne samo da možete vidjeti i slušati zvuk, već i osjetiti dodir tipki vlastitog klavira.

  • Zvuk
  • Kao dete sam imao klavir, pravi, sovjetski, oko 300 kilograma, voleo sam da sviram po njemu, a nakon završene muzičke škole, čak sam nešto i svirao. Klavir je cool, autentičan, ali nimalo praktičan. A da biste ga zaista pogodili za dušu, potreban vam je i set bubnjeva, set dodataka za električnu gitaru, klarinet, sitar i loopove...

    Naravno, sada više ne morate da pretvarate svoj stan u garažni studio sa jajetom od šest plata, sve što treba da uradite je da instalirate besplatni muzički editor na računaru. Ali sve je ovo nezgodno.

    PC tastatura uopće nije poput instrumenta s klavijaturom, ovdje je sve drugačije. Štaviše, ovo uopće nije prikladno za podučavanje djeteta. Čini se da nema izbora nego kupiti sintisajzer. Ali još uvijek sumnjam.

    Šta je sintisajzer? Veliki uređaj, sa muzičkom tastaturom, koja negdje treba da zauzme dosta prostora. Koji ima ugrađenu akustiku, ali već imam prijemnik sa zvučnicima. Koji ima loš PC ugrađen u njega, ali ja imam dobar PC.

    Ispada da za 40 hiljada kupujem ono što već imam u najboljem kvalitetu, sa izuzetkom tastature. Ovo je samo neki maksimum neracionalnih troškova.

    Dok sam tražio zasebnu tastaturu, naišao sam na takvu klasu uređaja kao što je USB MIDI tastatura.
    Uvek mi se činilo da MIDI spada u oblast profesionalne muzičke delatnosti.
    Ali sada se sva muzika pravi na računaru, na bilo kom prikladnom mestu, što znači da su muzičarima potrebne mobilne muzičke tastature koje se lako mogu staviti u ranac.

    U mojoj glavi se odmah stvorio plan. Povezujemo MIDI tastaturu sa kućnim medijskim centrom zasnovanim na Raspberry Pi 3, gde radi softverski sintisajzer, omogućavajući svakome da izvede svoje sledeće remek delo u bilo kom trenutku. Takve MIDI klavijature obično imaju set kontrola i dodatnih tastera koji su programirani za razne efekte ili dodatne muzičke instrumente. Izgleda i zvuči jako cool!

    Ima većih i manjih uređaja, neki skuplji a neki jeftiniji. Odabrao sam opciju za oko 5 hiljada. Ima dvije oktave, tipke normalne veličine, dugmad za bubnjare, dugmad za podešavanje, odnosno sve ono o čemu bi elektronski muzičar početnik mogao sanjati.

    Nisam stručnjak za kreiranje muzike na računaru, pa je bilo teško tražiti načine da ostvarim svoju ideju. Informacije su se morale prikupljati malo po malo. Slagalica je postepeno počela da se oblikuje i uspeo sam da sastavim radno rešenje koje delim sa vama. Začudo, standardna Raspbian/Debian distribucija je sadržavala sve što vam je potrebno, čak niste morali ni povezati vanjska spremišta.

    Fluidsynth se koristi kao sekvencer (aplikacija koja reproducira MIDI fajlove).
    MIDI tastatura se odmah detektuje preko ALSA i dostupna je za povezivanje sa sekvencerom.
    Za reprodukciju zvukova različitih instrumenata koriste se otvorene baze uzoraka u SoundFont2 formatu. Prvo, instalirajmo sve ovo.

    Sudo -s apt-get update apt-get -y install alsa-utils fluid-soundfont-gm fluidsynth
    Povezujemo MIDI tastaturu na Raspberry i pokrećemo sekvencer u server modu:

    Fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
    Izvršavamo naredbu:

    Aconnect -o
    Kao rezultat, vidjet ćemo listu dostupnih MIDI klijenata:

    Klijent 14: "Midi Through" 0 "Midi Through Port-0" klijent 20: "VMini" 0 "VMini MIDI 1" 1 "VMini MIDI 2" klijent 128: "FLUID Synth (1628)" 0 "Synth ulazni port (1628 ) :0)"
    Ovdje nam je važno da zapamtimo klijentske brojeve tastature i sekvencera, kako bismo ih potom mogli povezati naredbom:

    Aconnect 20:0 128:0
    Sada smo svi spremni da sviramo na Yamaha klaviru (ovo je podrazumevani instrument). Pročitajte priručnik o fluidsynth-u, tamo ima mnogo zanimljivih komandi, na primjer, za promjenu instrumenta na bubnjeve ili duvače, podešavanje količine reverba ili refrena.

    Učinimo naš softverski sintisajzer praktičnim. Kako ne bismo svaki put ručno povezivali tastaturu sa sekvencerom, napisaćemo jednostavnog demona koji će to raditi automatski pri pokretanju.

    Mačka > /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 ) slučaj "$1" u startu) startDaemon ; ;
    stop) stopDaemon ;;

    restart) restartDaemon ;;
    status) ;;

    *) startDaemon esac izlaz 0 EOF

    Registrirajte demona za autorun:

    Chmod 755 /etc/init.d/fluidsynth update-rc.d fluidsynth defaults

    Imajte na umu da se sada pri pokretanju sekvenceru šalje konfiguraciona datoteka (/home/osmc/midi-router) koja sadrži komande koje pretvaraju našu tastaturu u pravi sintisajzer.<< 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
    Evo u čemu je stvar. Svaki taster i dugme na tastaturi šalje određene događaje sa svojim brojem. Kako sam shvatio, ovdje nema posebnih standarda, tako da svaki proizvođač radi ono što želi. Na primjer, želim da kvadratne tipke zvuče kao bubnjevi, ostale tipke da zvuče kao klavir, a dugmad za kontrolu jačine zvuka, reverba i refrena.

    Dakle, moram mapirati kodove događaja s klavijature na različite instrumente, i kodove od dugmadi u kodove koje sekvencer razumije. U fluidsynth-u se to radi pomoću rutera. Ove naredbe su sadržane u konfiguracijskoj datoteci.
    Evo primjera moje konfiguracijske datoteke, s komentarima o tome šta radi.

    Mačka > /home/osmc/midi-router

    Da biste saznali koje kodove generira vaš uređaj, trebate koristiti ovaj uslužni program:

    Aseqdump -p 20:0

    Okvir. Prva i najosnovnija stvar je potrebna, teško je pronaći pravu. Kupio sam futrolu za štap u tu svrhu.
    - USB tastatura, po mogućnosti ne baš stara, jer ožičenje možda neće raditi.
    - Ključevi (oni koje sam pokupio): PBS-16B (FEET), SPA-101B4 (ADOPS), PBS-15B pritisnite ON (ON). Sve bez fiksacije. Možete ga kupiti u Chip and Dip.
    - Žice. Mnogo jednojezgrenih. Mislim da je upredeni par najbolji za ovo. 2 metra iza očiju. Samo je nezgodno opustiti se.
    - Pa, mislim da skoro svako ko odluči da sklopi ovaj uređaj ima lemilicu.
    - Alati za pravljenje rupa u kućištu. Ako vam nešto ide u ruku, možete čak upotrijebiti samorezni vijak i onda upotrijebiti nož da to uredite, ali opet, mislim da svi imaju bušilicu.

    Pa, hajde da počnemo. Prvo što trebate učiniti je označiti i izbušiti rupe u kućištu:

    Sada pređimo na štetniji dio izrade našeg nožnog prekidača. Lemimo žice u skladu sa dijagramom, ne zaboravite da objesite identifikacione listove sa ulaznim brojevima na ulaze sa tastature:

    Trebalo bi izgledati otprilike ovako:

    Sada će početi vrlo razrađen proces lemljenja na kontroler sa USB tastature. Da napomenem da ako imate sreće da kupite/pronađete/odnesete tastaturu sa kontrolerom poput onog na dijagramu u prilogu, onda ne možete bez stanice za lemljenje. Dasku možete pričvrstiti na kućište gotovo svim raspoloživim sredstvima, tekućim ekserima, samoreznim vijcima, super ljepilom, silikonom, i općenito, ako je ne udarate previše, izdržat će, ali ovisi o U slučaju, upredeni par čvrsto pritiska ploču.

    Pravimo kozmetičke popravke, lemimo diodu na kućište od NUB LOCK-a... Napravimo rupu za žicu i preusmjerimo USB kabel.

    Faza 2: Postavljanje softvera. Nadam se da ovo neće biti problem svima koji su napravili ovaj uređaj. Za Guitar Rig, sve ne može biti jednostavnije, uključite NUM Lock, uključite rig, otvorite OPCIJE - KONTROLER, pritisnite MENU, potražite potrebnu akciju, kliknite na dugme Learn i odaberite odgovarajuće dugme na našem kontroleru. Zatim kliknite na Dodaj kontroler i ponovite iste operacije. I tako sve dok ne otkucamo sve što nam treba ili dok ne ostanemo bez ključeva. Također možete dodijeliti ključ gotovo svakoj radnji u 3. platformi, kliknite desnim tasterom miša na objekat i ponovo pritisnite Learn.

    Ali sada ako ste zainteresirani za postavljanje cijele ove zamisli na komandu Midi, morat ćete se malo više zabaviti.
    To znači da nam je potreban softver koji vezuje tastere za midi komande. I postoji takav program, iako nisam vidio nikakve analoge, srećom nema potrebe za liječenjem pohlepe. Zove se Virtual Midi Controller, ključna akcija je konfigurisana na kartici C IN, instalacija - Podešavanje - Sledeće - Sledeće. Evo linka.


    Virtuelni MIDI kabl je takođe uključen uz njega, tako da ne morate da radite nikakve nepotrebne pokrete. Za one koji su zaista lijeni, objavljujem bankovni preset za nožni prekidač: bank - oni bi trebali zamijeniti datoteku u korijenskoj mapi programa, po defaultu C:\Program Files\Virtual Midi Controller\, nakon izlaska iz VMC-a. Radi praktičnosti, u SETUP-u označite polje za potvrdu Run In Background i u glavnom prozoru VMC kliknite na slovo K, nakon čega će program prihvatiti komande u minimiziranom načinu. Sada da biste izašli iz programa morate ga eliminisati iz tray-a. I od sada ćete moći kontrolirati i Nuendo i Sonar pomoću nožnog prekidača. Pa, naravno, TH1 također preuzima našu tastaturu preko midi-a.

    Za sva pitanja kontaktirajte...

    Sljedeći planirani projekti:
    - Štit za gitaru.
    - Uradi sam kombinacija.

    Sretno u muzičkim aktivnostima...

    Ovo je jednostavno kolo MIDI tastature dizajnirano za upotrebu sa standardnom PC zvučnom karticom sa MIDI/Game portom. Tastatura se napaja direktno iz porta za igru, nije potrebno napajanje.

    Krug midi tastature MKC64 v1.54



    Set delova


    Mikrokrugovi: PIC16F84 ili PIC16C84 kontroler. Dekoder 74LS138 ili analogni K555ID7.
    Kvarcni rezonator: ZQ1 = 4 MHz.
    Kondenzatori: C1= 47mF; C2, C3=27pF; C4=0.1mF
    Otpornici: R1,R2,R4 = od 1 do 10Kom; R3 = 270Ω za zaštitu MIDI izlaza; R5 = 2k2
    Diodes: D1-D64 = KD522 (bilo koja vrsta standardnih dioda)
    Konektori: DB15

    Firmware


    Ako koristite MKC1.4 firmware bez kratkospojnika jmp1, tada tipke počinju od note DO (C) sa kratkospojnikom od note FA (F)
    Ako koristite firmver MKC1.54, tada se jmp1 prikazuje mekano dugme S1, koje vam omogućava da kontrolišete neke funkcije
    Za kontrolu, potrebno je da pritisnete dugme S1 i dok ga držite pritisnuti jedan od 16 levih tastera na tastaturi.

    Tabela tipki za kontrolu funkcija:
    1 Promjena MIDI kanala -1 (1..16)
    2 Promjena MIDI kanala +1 (1..16)
    3 Donja oktava -1 (1..11)
    Povećanje od 4 oktave +1 (1..11)
    5 Okidač -1
    6 Okidač napomena +1
    7 Smanjenje brzine -1 (1..127)
    8 Povećanje brzine +1 (1..127)
    9 All Notes On poruka Omogućeno
    10 All Notes Off poruka Onemogućeno
    11 NoteOn (brzina = 0)
    12 NoteOff
    13 MIDI program -1
    14 MIDI program +1
    15 MIDI banka -1
    16 MIDI banka +1



    Tastatura je dizajnirana za povezivanje sa eksternim zvučnim modulom ili računarom (ako postoji odgovarajući interfejs) pomoću MIDI protokola - za snimanje muzike u program sekvencer ili izvođenje uživo. Broj tastera u predloženoj verziji je 48, ali se može povećati na 64 bez promene kola.

    Istorijat uređaja

    Prije nekog vremena, u vezi sa kupovinom stana, bio sam primoran da izgubim luksuzni instrument koji mi je služio kao MIDI klavijatura - bio je to legendarni YAMAHA DX-7. Kada je tuga splasnula, postavilo se pitanje u svoj svojoj ozbiljnosti i ružnoći: na čemu raditi? U tom trenutku je, trudom mog prijatelja, u moje ruke palo polusastavljeno kolo za KR1816BE39 (u suparničkim terminima ovaj procesor se zove 8048). Kolo je lako sastaviti i postaviti, i, što je najvažnije, došlo je pri ruci u pravo vrijeme. Sastavio sam tastaturu u obliku 8x6 matrice koristeći KR1533ID7 i KR1533KP7. Postojala je i muha u masti - dva nedostatka ove šeme na smrt ubijaju sve njene prednosti: nedostatak osjetljivosti na brzinu pritiska na tipku (zvučnici) i točak PITCH WEEL. Pa, jednom sam programirao na Z-80 (pa čak i napravio radni sekvencer) i odlučio da se otresem starih dana. Odlučno sam odbacio Z-80 kao CPU kao moralno zastario. Osim toga, nisam htio puno lemljivati ​​i odlučio sam uzeti ovaj isti uređaj na KR1816BE39 kao osnovu, opremivši ga još jednim multiplekserom za razbijanje (gornjih) kontakata tipki. Našao sam dokumentaciju (nećete vjerovati - u biblioteci, knjiga “Dizajniranje digitalnih uređaja na mikroprocesorima s jednim čipom”) za asembler KR1816BE39 i naškrabao program... A onda se ispostavilo da je prijateljov ROM programer imao umro, a program jednostavno nije bilo čime flešovati... Od tuge sam potpuno poludio i odlučio da prepišem isti algoritam za PIC. Za pola dana je zalemljen programator (LUDIPIPO), zatim je napravljen prototip od socketa KR1533ID7 i para KR1533KP7, a kompletnu instalaciju uradio je MGTF bez ikakvog pečata. I proces je počeo...

    Prvo je pokrenuta nedinamička verzija programa (predstavljam je i za one koji imaju tastaturu sa jednim kontaktom po tipki). Tada je pokrenuta dinamička verzija. A onda je došla ideja da se dodaju dugmad i indikator. Činjenica je da sam imao WAVEBLASTER (kćerki talasni sintisajzer za veoma stare zvučne sisteme) koji je dugo ležao u praznom hodu. Povezujući to sa svojom kreacijom, dobio sam nešto na čemu možete igrati (koliko je u vašoj moći i talentu) bez kompjutera, što je ponekad prilično zgodno. Ovo je odredilo skup funkcija na dugmadima - može biti korisno pri povezivanju na zvučne module tokom reprodukcije "uživo". Funkcije dugmadi se lako mijenjaju pisanjem vlastitih rukovatelja i korištenjem mojih procedura za ispitivanje i prikaz. Nekako se pokazalo da je tastatura sastavljena u gvozdenom kućištu zgodnija od YAMAHA PSS (još uvijek tipke u punoj veličini, pedala i, što je najvažnije, dinamika!). Usred kreativnog procesa pojavila se teška želja da se napravi verzija MIDI tastature isključivo za računar - indikator i dugmad su opcioni, ali su potrebni točkići PITCH WEEL i MODULATION. Borio sam se s tim neko vrijeme, ali na kraju sam odustao i ponovo uključio lemilicu. Elektroniku nije teško sastaviti, ali je mehanika nešto teža, i počeo sam da mrzim obrvu preko dizajna točkova. Nakon malo razmišljanja, odlučio sam da napustim drugi točak - u svakom slučaju, nikada ne okrećem oba odjednom, obično prvo pišem note i tonu, pa dodam modulaciju. Nije najmanje važno prepoloviti obim mehaničkog rada koji sam toliko volio. Za manje lijene, u nastavku ću objasniti kako napraviti dva točka bez ikakve složenosti. Da bih i dalje mogao da pišem modulaciju, odlučio sam da organizujem tri načina rada točka: visina tona za 2 polutona, visina tona za 1 poluton (pogodno) i modulacija. Sve ovo možete prebaciti jednim dugmetom, a način rada označiti parom LED dioda. Da bih pojednostavio sklop, eliminirao sam preostale tipke i indikatore, sve to nije potrebno za rad s modernim programima sekvencera.

    Točak se, naravno, mora staviti na osu potenciometra, to je razumljivo, ali na šta ga treba povezati? Moja prva pomisao bila je da koristim jednokratnu brzinu na 555 tajmeru, ali kalkulacije su pokazale da bi bilo teško postići tačnost i stabilnost u mjerenju trajanja impulsa kada se pokuša osigurati prihvatljiva brzina uzorkovanja, budući da je procesor uglavnom zauzet mjerenjem. vrijeme uključivanja kontakata na tastaturi. Jedini preostali način je korištenje analogno-digitalnog pretvarača (ADC). Pošto sam koristio Pic16F84 bez ugrađenog ADC-a, sjetio sam se svoje inženjerske pozadine (i svoje izvorne tvornice) i napravio ADC od nekoliko otpornika sa komparatorom (i dijelom programa). Ispalo je jednostavno, jeftino i prilično precizno.

    Predstavljam oba dijagrama - i sa dugmadima i sa točkićima, kao i programe za njih. Ako želite, oba kola se mogu lako kombinovati blagim promenom adresa eksternih uređaja, samo treba da zapamtite da režim CHORUS (STEREO) koristi visinu tona da bi se dobio detuning i morate ga ili ukloniti, ili brinuti o odašiljanju visine tona sa detuningom; preko kanala.

    Dakle - prava tastatura

    Dijagram uređaja

    Prva se pojavila nedinamička verzija, neosjetljiva na silu udara na tipku - za testiranje funkcionalnosti rasporeda.

    Koristio sam PIC16F84 kao procesor iz nekoliko razloga: ovaj čip je dostupan, jeftin i lak za programiranje, osim toga, bio je onaj koji sam imao pri ruci. Pažnja: PIC16C84 nije prikladan - ima samo 36 ćelija RAM-a i program neće raditi. Međutim, kolo kotača koristi manje RAM ćelija i njegov program se može ugurati u PIC16C84 smanjenjem još nekoliko ćelija, na primjer MIDCH (dodjeljivanjem konstantnog MIDI kanala svim prenesenim podacima).

    Dijagram dinamičke tastature sa indikacijom je prikazan u nastavku:

    Kolo je tradicionalno u mnogim aspektima - teško je izmisliti bicikl bez pedala i kotača J Port B radi za prijenos - nižih 7 bitova daje ključnu adresu u matrici ili podatke za eksterne uređaje (indikator i DAC). Najznačajniji bit se koristi za izlaz MIDI podataka u serijskom kodu - konverzija i izlaz se obavljaju u softveru. Stoga bi kristal trebao biti na 4 MHz osim ako ne želite prepisati izlaznu rutinu MIDI bajta. Dva najmanje značajna bita porta A rade za prijem - oni primaju signale od multipleksera "otpuštenih" i "pritisnutih" ključnih kontakata, a tri najznačajnija bita određuju adresu vanjskog uređaja (putem drugog dekodera KR1533ID7). U krugu sa kotačićem, napustio sam dekoder adrese eksternog uređaja kako bih pojednostavio kolo i oslobodio visoki bit PA4 porta za unos podataka iz komparatora, tako da su adrese tastature i dugmadi različite. Prilikom kombinovanja kola, ovo mikrokolo će morati da se vrati, da se dešifruje adresa, koriste bitovi porta PA2 i PA3, i adresa 4 uređaja: tastatura, tasteri, registar podataka dinamičke indikacije i registar poznavanja dinamičkih indikacija. Indikacija načina rada kotača će se morati ponovo napisati.

    Krug sa PITCH WEEL / MODULATION kotačićem izgleda ovako:

    Na svaki ključ je instalirana jedna dioda za razdvajanje. Otpornici na ulazima multipleksora ne bi trebali biti veći od 8k, inače su mogući kvarovi zbog montažne kapacitivnosti. Indikator - bilo koji sa zajedničkom anodom za 3 znamenke, ako se terminali segmenata svake znamenke izlaze odvojeno, terminali segmenata istog imena moraju se kombinirati - indikacija je dinamička i cifre svijetle uzastopno. Bilo koji taster, bez zaključavanja, odbijanje kontakta se kontroliše softverom. LED diode su instalirane u blizini istoimenih tipki i označavaju aktivaciju odgovarajućih načina rada tipke "+" i "-" nemaju LED diode. Tranzistori na indikatoru su bilo koja reverzna provodljivost male snage, visoke frekvencije. Dva registra KR1533IR23 se koriste za naizmenično zaključavanje adrese i koda cifre tekućeg indikatora (LED su takođe grupisane u dve kvazi-cifre). Koristio sam standardnu ​​tastaturu od sovjetskih električnih orgulja sa 48 tipki (također je proizvedena zasebno kao dizajner radija „START“ i prilično je rasprostranjena). Da bi se smanjila visina klavijature i debljina instrumenta, ostavljene su dvije od šest kontaktnih grupa ispod svake tipke, te je cijela stvar izrezana i ponovo zalijepljena. Općenito, jedna grupa za prebacivanje po ključu je dovoljna, ali je bilo zgodnije zalijepiti je na ovaj način. Sabirnice "otpuštenih" i "pritisnutih" kontakata imaju 8 ključeva. Po želji možete koristiti i tastaturu gdje se umjesto sklopne grupe kontakata koriste dva para kontakata za zatvaranje - jedan par se zatvara na početku pokreta tipke, drugi na kraju (kao na YAMAHA instrumentima). U ovom slučaju, signal na PA0 mora biti napajan sa inverznog izlaza multipleksora (pin 6). Bez promjena u krugu, možete koristiti tastaturu sa 64 tipke (standardno – 61, tj. 5 oktava). Ako je potrebno, broj ključeva se može povećati na najmanje 127 da biste to učinili, potrebno je uvesti još jedan dekoder KR1533ID7 u krug.

    Veoma je važno dobro postaviti mehaniku - gornji kontakti MORAJU da se zatvore kada se tasteri otpuste. Ako se to ne učini, program smatra da su takve tipke pritisnute i pokušava ih obraditi, tako da ponovni pritisak na ove tipke ne proizvodi zvuk. Osim toga, maksimalan broj nota koje se mogu svirati istovremeno je 10 (ako je neko povećao više prstiju na rukama, ovaj broj se lako može promijeniti), a nepuštanjem tipki se ovaj broj smanjuje. Iz istih razloga, broj tipki naveden u proceduri prozivanja tastature MORA odgovarati broju pravih tipki. Odbijanje kontakta je potisnuto softverom.

    Za otpornu matricu R-2R ADC preporučljivo je odabrati otpornike s točnošću od 1-2%, a apsolutne vrijednosti mogu biti različite, omjer je važan. Međutim, ne biste trebali značajno povećati nominalnu vrijednost, ovo će povećati vrijeme konverzije zbog ulaznog kapaciteta komparatora. Koristio sam SMD otpornike bez uparivanja, iako su mjerenja pokazala da se u jednoj montažnoj traci otpornici obično podudaraju s tačnošću iznad 1%. Siguran sam da će krug raditi s nepreciznim otpornicima, ali će se linearnost karakteristike pogoršati. Sam točak je napravljen od drške sa starog televizora i ima oprugu na osi potenciometra koja ga vraća u srednji položaj. Radi praktičnosti podešavanja mehanike, kada uključite napajanje sa pritisnutim dugmetom za režim, aktivira se program za otklanjanje grešaka koji pali LED kada je točak u srednjem položaju, što vam omogućava da fino podesite nultu poziciju točka na osi potenciometra. Ako postoji potreba i želja da se napravi poseban MODULACIONI kotač, potrebno ga je povezati sa slobodnim komparatorskim elementom (ima ih četiri), a R-2R matrica je zajednička za oba točka. Za prebacivanje izlaza komparatora, bolje je koristiti dodatni mikro krug i koristiti PA2 kao upravljački signal.

    Ako želite, možete sastaviti dinamičku verziju klavijature bez indikacija, dugmadi i kotačića PITCH WEEL / MODULATION - jednostavno bez sastavljanja neiskorištenog dijela kola. Svi promjenjivi parametri bit će postavljeni na zadane vrijednosti kada se uključi...

    Sve se to može napajati iz bilo čega, potrošnja struje ovisi o specifičnom indikatoru i ne prelazi 100 mA. Imam 7805 stabilizator tačno na ploči bez hladnjaka (to se jasno vidi na fotografiji). Mali radijator je potreban ako se na njega napaja više od 9v. Komparator se napaja naponom od 9 - 12 V, po mogućnosti stabiliziran. Da, koristio sam mikro krugove sovjetske proizvodnje iz starih zaliha - postoji veliki broj njihovih modernih analoga, zamjena je moguća, pa čak i poželjna - moderni analozi imaju manju potrošnju.

    Program

    Algoritam za obradu pritisnutih tastera potiče iz onog predloženog u časopisu “Mikroprocesorski alati i sistemi” br. 5, 1986. godine. Upravo me ova publikacija (tačnije, greška u predloženom programu) navela da studiram asembler. Zapravo, jedina ideja preuzeta odatle je bila da se zabilježi broj svake pritisnute tipke u posebno dodijeljenoj oblasti RAM-a (CHAN), tako da kada se tastatura ponovo proziva, ne obrađuje ponovo već obrađenu tipku. Imam dvije RAM ćelije dodijeljene za svaku pritisnutu tipku (ne više od 10 ukupno): u prvoj se bilježi broj pritisnute tipke, u drugoj - njena BRZINA (brzina pritiska). Ponavljam - ovih ćelija ima samo 20 i početna adresa je data imenom CHAN. Znak slobodnog para je postavljeni najznačajniji bit prve ćelije. Najznačajniji bit druge ćelije koja se postavlja znači da je NAPOMENA ON za ovaj ključ već poslana i da nije potrebna dalja obrada.

    Neću detaljno opisivati ​​cijeli program; izvorni kod je prepun komentara i prilično je dostupan obučenoj osobi. Za ostalo, odmah dajem gotov firmver u datoteci Dinamic.hex i Pitchmod.hex. Objasniću samo neke neočigledne tačke. Pa, prije svega, o dinamici: u trenutku kada se otvore gornji kontakti ključa, njegov broj se upisuje u prvu ćeliju prvog slobodnog para iz područja CHAN, istovremeno resetirajući znak slobodnog para. Početna vrijednost VELOCITY = 127 upisuje se u drugu ćeliju. Prekidi su uzrokovani ugrađenim tajmerom. U trenutku kada su donji kontakti ključa zatvoreni, u odgovarajuću ćeliju CHAN se postavlja znak “preneseno” i NOTE ON se prenosi sa trenutnom VELOCITY. Da bi se poboljšala kriva osjetljivosti, vrijednosti VELOCITY se smanjuju prema logaritamskom zakonu: 1/16 njegovog dijela, smanjenog za 1, oduzima se od trenutne vrijednosti VELOCITY, dok se ključ pomiče od gornjeg kontakta do donjeg prvo, vrijednost VELOCITY u odgovarajućoj CHAN ćeliji se smanjuje prema logaritamskom zakonu, i što se ključ brže pomiče, veća je VELOCITY u trenutku kada se donji kontakti ključa zatvaraju i NOTE ON se prenosi. Prekidi takođe kontrolišu dinamički prikaz, ovo se radi kako bi se eliminisalo treperenje indikatora.

    Funkcije dugmadi: TRANSPOSE – sve tipke su svedene na vaš omiljeni a-mol: opseg +/- 15 polutonova. PRG dodeljuje tembar (instrument) datoj unapred podešenoj vrednosti (UP1-UP5), a VOL dodeljuje njenu jačinu. Trenutni parametar se prikazuje na indikatoru i može se mijenjati pomoću tipki “+” i “-” TWIN prikazuje “dvostruki” tembar - jedan od unaprijed postavljenih (UP1-UP5) i, u isto vrijeme, NIŽI preset. zvuk istovremeno. STEREO emituje zvuk trenutnog unapred podešenog zvuka na desni i levi stereo kanal sa blagim "detuningom" (efekat "horusa"). Dugme SPLIT nije aktivirano. SUSTAIN pedala je dizajnirana u obliku kola jer jedno od dugmadi ne bi trebalo da bude jako veliko. Adrese rukovalaca dugmadima skupljaju se u tabeli na početku programa, kada menjate funkcije dugmadi, možete zameniti svoje.

    ADC kotača je pola softvera, radi koristeći algoritam uzastopne aproksimacije, R-2R matrica vrši digitalno-analognu konverziju. Prvo, 1 u najznačajnijoj cifri se primjenjuje na R-2R matricu, a komparator određuje da li je to puno ili malo. Ako je malo, 1 ostaje u najznačajnijem bitu, ako ima puno - 0. Tada se ista stvar dešava sa svakim narednim bitom nižeg reda (ukupno 6 koraka) i dobijamo šesto-bitni broj koji odgovara ugao rotacije točka. Ova tačnost mi se čini dovoljnom, ali možete dodati još jedan bit povećanjem matrice i programa za konverziju.

    Dizajn

    Kao pravu tastaturu, koristio sam sovjetski “Start” konstruktor, sada je možda lakše pronaći staru, neispravnu Yamahu ili Casio, to će također riješiti problem izrade kućišta – ako je, naravno, kućište; stari instrument je relativno netaknut...

    Štampana ploča nije razvijena - smatrao sam neprikladnim trošiti vrijeme na ožičenje i izradu ploče kako bi se napravila jedna kopija uređaja, a raspored je napravljen na ploči pomoću MGTF džampera. Kao konektor i kabl za tastaturu koristili smo kabl od flopi drajvova sa računara sa odgovarajućim konektorom na svakoj strani - to olakšava sklapanje/demontažu gotovog uređaja.

    U mom slučaju, tijelo je bilo savijeno od tankog čeličnog lima (ono što je bilo pri ruci) - sa drvenim stranicama (kao stari sovjetski instrumenti).

    Pa, ukratko, to je sve. Kreativni uspjeh!

    Pregled