instructables-logo

instructables PICO MIDI SysEx Patcher

instructables-PICO-MIDI-SysEx-Patcher-fig-1

Informații despre produs

  • PICO MIDI SysEx Patcher de la baritonomarchetto este o soluție hardware concepută pentru a crește programabilitatea vinului.tage sintetizatoare care nu sunt programabile. Se bazează pe placa de microcontroler Raspberry Pi Pico și are un afișaj LED încorporat, două encodere rotative cu butoane încorporate și un buton. De asemenea, include o intrare MIDI pentru operare în serie și firmware deschis. Programatorul poate fi plasat între controlerul principal și sintetizator pentru a permite modificări în timp real ale parametrilor în timpul redării unei secvențe și transferul oricărui alt mesaj MIDI de la controlerul principal la sintetizatorul țintă.
  • PICO MIDI SysEx Patcher acceptă mai multe vintagsintetizatoare, inclusiv Roland Alpha Juno (1/2), Korg DW8000/EX8000 și Oberheim Matrix 6/6R (firmware > 2.14).

Instrucțiuni de utilizare a produsului

  1. Conectați PICO MIDI SysEx Patcher între controlerul dvs. principal și vintagsintetizatorul pentru care doriți să creați un patch.
  2. Porniți controlerul principal și vinultage sintetizator.
  3. Utilizați cele două codificatoare rotative pentru a naviga și a modifica parametrii în timp real în timp ce redați o secvență.
  4. Folosiți butonul pentru a transfera orice alt mesaj MIDI de la controlerul principal la sintetizatorul țintă.
  5. Consultați manualul de utilizare pentru informații mai detaliate despre cum să utilizați afișajul și cum sunt grupați parametrii la nivel de software.
    Nota: Asigurați-vă că vinul dvstagSintetizatorul este acceptat de PICO MIDI SysEx Patcher înainte de a-l folosi. De asemenea, consultați secțiunea de descriere hardware a manualului de utilizare pentru informații despre componentele necesare și despre cum să le asamblați.

DESPRE PRODUS

  • Am un punct slab pentru vintage sintetizatoare. Scena actuală de producție muzicală este incitantă, nu mă înțelege greșit, dar cel mai mult mă regăsesc să cânt cu tastaturi „învechite”.
  • Un dezavantaj al instrumentelor de la mijlocul anilor 80 este uneori lipsa de programabilitate. Programarea unora dintre ele poate fi plictisitoare, iar faptul că software-urile terțelor părți adesea nu acceptă protocolul SysEx nu ajută.
  • Oricum, există două abordări pentru a face față acestei probleme: software (cine a spus Ctrlr?) și hardware.
  • Inutil să spun că aici avem de-a face cu o soluție hardware.
  • Am (cred) deja amplificat programabilitatea unor instrumente iconice din epoca de aur precum Roland a-Juno, Oberheim Matrix 6, Korg DW8000, SCI Multitrack și altele cu un programator combi SysEx și un secvențior bazat pe arduino MEGA. Dependența mea recentă de placa de microcontroler Raspberry Pi Pico m-a făcut să mă gândesc la cum să rezolv problema.
  • Raspberry Pi Pico este un microcontroler ieftin și puternic și este alegerea mea preferată, în ultima vreme. Îl adopt pentru proiecte noi, dar și pentru a revizui un proiect vechi de-al meu.
  • Cu limitele de memorie ale IC dispărute (dar un număr limitat de GPIO-uri) am ajuns să am ceva cu o interfață și un lucru foarte diferit față de proiectul anterior.
  • Mai bine? Mai rau? Tu decizi 🙂

Furnituri

Urmează lista de materiale (BOM):

  • Microcontrolere, circuite integrate, display
    • 1x Raspberry Pi Pico (clonă 30 GPIO)
    • 1x optocupler 6N138
    • 1 display LED 1602A
  • Condensatoare, rezistențe și trimmere
    • 3x rezistență de 220 ohmi
    • 1x rezistență de 330 ohmi
    • 1x rezistor de 10K ohmi
    • 2 trimmere de 1000 ohmi
      1x 100nF condensator nepolarizat
  • Diode și codificatoare
    • 1x diodă 1N4148
    • 1x diodă 1N4004
    • 2x codificatoare optice incrementale
  • Alţii
    • 2x butoane pentru oală (opțional)
    • 1x butoi DC
    • 1x buton de apăsare de moment B3F 4050 Omron
    • 2x conectori MIDI (DIN 5).

DISTRIBUIREA PRODUSELOR

instructables-PICO-MIDI-SysEx-Patcher-fig-2
instructables-PICO-MIDI-SysEx-Patcher-fig-3
instructables-PICO-MIDI-SysEx-Patcher-fig-4
instructables-PICO-MIDI-SysEx-Patcher-fig-5
instructables-PICO-MIDI-SysEx-Patcher-fig-6

INSTRUCȚIUNI DE INSTALARE

Pasul 1: Caracteristicile programatorului

  • Principalele funcții ale programatorului PICO MIDI SysEx sunt:
    • Afișaj LED încorporat
    • Funcționare simplă cu doar două encodere rotative și un buton
    • Intrare MIDI, pentru operare în serie
    • Deschideți firmware-ul
  • Da, din punct de vedere tehnic, acele codificatoare rotative au un buton încorporat și sunt de fapt în uz, așa că numărul de butoane este „trei”, nu „unu”.
  • Programatorul ar trebui să fie plasat între controlerul principal și sintetizatorul pentru care doriți să creați un patch.
  • Acest lucru face posibile modificări în timp real ale parametrilor în timpul redării unei secvențe și transferul oricărui alt mesaj MIDI pe care doriți să îl transmiteți de la controlerul principal la sintetizatorul țintă.
  • Sintetizatoarele acceptate în prezent sunt:
    • Roland Alpha Juno (1/2)
    • Korg DW8000/EX8000
    • Oberheim Matrix 6/6R (> 2.14 rmware)
  • După cum este descris mai detaliat în următorii câțiva pași, afișarea și gruparea parametrilor la nivel de software joacă un rol major în acest proiect. Continuați să citiți pentru mai multe detalii 🙂
Pasul 2: Descrierea hardware
  • Interfață
    • În acest programator am vrut să adopt o abordare opusă față de proiectul anterior: elementele de interfață sunt aici menținute la minimum, cu doar două encodere incrementale rotative și un buton de meniu (ok: trei butoane).
    • Poate părea un pas înapoi în reducerea numărului de butoane într-un programator născut să facă față lipsei de programabilitate a sintetizatoarelor de la mijlocul anilor '80. Nu este dacă luați în considerare sinergia cu un rmware în care toți parametrii sunt clasificați în mod rezonabil (vezi pasul următor) și un afișaj LED care arată în timp real categoria, numele și valoarea parametrului patch-ului.
  • Display LED
    Un afișaj cu LED de dimensiuni rezonabile face patch-ul mai plăcut, mai ales dacă doriți să petreceți timp pe el. Proiectul meu anterior de programator hardware este echipat cu un afișaj OLED minuscul. Este suficient pentru acel hardware deoarece informațiile afișate sunt limitate la proprietățile secvenței, dar în acest caz toate numele parametrilor patch-urilor sunt vizibile, fără a fi nevoie de o foaie de comparație.
  • microcontroler
    • După cum sa spus, microcontrolerul utilizat este Raspberry Pi Pico. Acest microcontroler este puternic atât în ​​ceea ce privește puterea de calcul (până la 133Mhz, dual core), cât și stocarea memoriei (până la 16Mb). Acea memorie uriașă – conform standardelor actuale – permite includerea șirurilor de caractere detaliate în rmware, făcând noua abordare adoptabilă.
    • Raspberry Pi Pico este, de asemenea, ieftin, momentan, atât de...
  • MIDI
    • Atât circuitele MIDI IN cât și MIDI OUT sunt încorporate.
    • MIDI OUT este obligatorie pentru a putea trimite mesaje MIDI și în niciun caz nu poate fi omis.
    • MIDI IN este de asemenea necesar, deoarece sintetizatorul nu ar putea primi mesaje de la niciun alt instrument (adică tastatura master sau DAW) atunci când programatorul este conectat. Aceasta înseamnă că fazele de corecție și secvențiere ar fi în mod necesar separate/distinse. Cu un circuit MIDI IN încorporat, puteți avea atât o secvență care rulează, cât și posibilitatea de a modifica patch-ul în același timp (adică ați putea trimite un sweep frumos al filtrului în timp real).
    • Circuitul MIDI IN este un circuit opto-izolat care respectă specificațiile de asociere MIDI. Nimic nou sub soare.
  • Alimentare electrică
    • Programatorul SysEx poate fi alimentat în două moduri diferite: direct de la conectorul USB-C al plăcii microcontrolerului sau folosind cilindrul DC montat pe PCB. Ambele sunt legitime, dar aș prefera cea mai recentă deoarece:
      1. cilindrul DC este mai robust
      2. Intrarea cilindrului DC este conectată direct cu linia +5V a PICO (așa-numitul pin „Vsys”) care ocolește un
        protecția cu diode în serie.
    • Trebuie utilizată o sursă de alimentare pozitivă centrală. Chiar dacă există o diodă de protecție cu polaritate inversă, nu doriți să aplicați polaritate inversată, deoarece ar putea deteriora alimentarea dvs. (nu programatorul din cauza scurtcircuitării GND și +5V de protecție a diodei într-o astfel de situație).
  • Placa de microcontroler
    Am cântat deja laudele plăcii de microcontroler Raspberry Pi Pico. Aici vreau doar să adaug un avertisment. Există două versiuni ale acestei plăci de microcontroler (dacă neglijăm faptul că o puteți cumpăra cu memorie cuprinsă între 2Mb și 16Mb). Aici am folosit clona cu 30 de pini, care are un pinout diferit față de oKcial Pico. În acest moment, versiunea de 9Mb este suficientă.
Pasul 3: Categorizările parametrilor programatorului
  • Derularea a peste 30 de parametri într-un mod secvenţial (unul după altul) nu este practică. Cu toate acestea, acest programator susține simplificarea interfeței „glisor de date unic” a sintetizatoarelor acceptate. Ce zici de asta?
  • O posibilă soluție pentru a vedea ținta a fost, pentru mine, gruparea parametrilor în categorii. Categorizarea face parametrii mai accesibili prin reducerea numărului lor și facilitează localizarea efectivă a acestora.
  • Categorizarea a urmat același principiu pentru toate sintetizatoarele acceptate și, în intențiile mele, seamănă cu structura de bloc fizică tipică a iubiților noștri sintetizatoare analogice: oscilatoare -> vol.tage controlate ltres -> voltage controlat ampmincinoși. Urmează sursele și efectele de modulație (mai multe detalii în cele ce urmează
  • Korg DW8000
    • Parametrii patch-urilor DW8000 (și EX8000) au fost deja stabiliți bine de către Korg, astfel încât categorizarea Programatorului urmează în mod servil gruparea panoului frontal.
    • Parametrii sunt grupați în 8 categorii:
      • Oscilator 1
      • Oscilator 2
      • Voltage Filtru controlat
      • Voltage Controlat Ampmincinos
      • Oscilator de joasă frecvență
      • roată
      • Întârziere digitală
      • Altele (portamento)
        Consultați foaia de antet al pasului pentru detalii despre subcategorii.
    • Filtru și ampau câte un plic dedicat. În acest caz, paramentele plicurilor sunt grupate în voltagelement controlat al destinației.
    • Toți parametrii DW8000 sunt acceptați, cu excepția modurilor/canalului MIDI.
  • Roland a-JUNO
    • Chiar dacă Roland a-Juno are un număr limitat de parametri de patch, secvența acestora în implementarea MIDI este cea mai confuză între sintetizatorul acceptat. Mi-a luat ceva timp să grupez implementarea MIDI într-un mod similar cu secvența panoului frontal (chiar dacă nu este aceeași).
    • Misiune îndeplinită însă:
      • Oscilator
      • Voltage Filtru controlat
      • Voltage Controlat Ampmincinos
      • Plic
      • LFO
      • Refren și aplecare
        Consultați foaia de antet al pasului pentru detalii despre subcategorii.
    • Toți cei 36 de parametri Roland a-Juno sunt acceptați de programator. Parametrii unici (atribuibili) de plic sunt grupați într-un grup dedicat.
  • Matricea Oberheim 6
    • Oberheim M6/M6r este cel mai avansat sintetizator al lotului și prezintă o complexitate incredibilă de rutare chiar și în comparație cu instrumentele din zilele noastre.
    • Timpul ne-a învățat că „complexitatea” poate fi un cuțit cu două lame în lumea producției muzicale, iar absența posibilităților directe de manipulare a parametrilor face din Matrix 6 una dintre cele mai subestimate „fabrici de sunete” din punct de vedere al ingineriei sunetului.
    • Din cei 99 de parametri pe care îi acceptă sintetizatorul, „doar” 52 au fost incluși în rmware-ul Programer. Le-am clasificat în 9 grupe:
      • Oscilator 1
      • Oscilator 2
      • Voltage Filtru controlat
      • Voltage Controlat Ampmincinos
      • Ramps
      • Plic 1
      • Plic 2
      • LFO 1
      • LFO 2
        Consultați foaia de antet al pasului pentru detalii despre subcategorii.
    • Am încercat să limitez parametrii la un număr rezonabil, lăsând în afara ecuației al treilea plic, puncte de urmărire, clicuri etc. Ar fi posibil să îi gestionez pe toți, oricum, datorită dimensiunii memoriei Raspberry Pi Pico.
    • Parametrii care nu sunt gestionați de Programator nu sunt „dezactivați”, dar oricum accesibili prin panoul de sinteză!
    • Matrix Modulation a fost prea complexă pentru a fi inclusă, așa că a fost omisă.

      instructables-PICO-MIDI-SysEx-Patcher-fig-7
      instructables-PICO-MIDI-SysEx-Patcher-fig-8
      instructables-PICO-MIDI-SysEx-Patcher-fig-9

Pasul 4: Cum se utilizează

  • La prima pornire, sunt afișate pagina de meniu pentru selecția sintetizatorului și canalul MIDI.
    • Rotiți butonul din stânga (butonul PARAMETER) pentru a selecta canalul MIDI pe care îl ascultă sintetizatorul țintă.
    • Rotiți butonul DREAPTA (butonul VALUE) pentru a selecta sintetizatorul către care doriți să trimiteți mesajele MIDI.
  • Va trebui să faceți această operație de fiecare dată când resetați programatorul. Este foarte simplu să fie schimbate permanent cele două variabile care definesc sintetizatorul de pornire și canalul MIDI datorită naturii open source a rmware-ului.
  • Acum putem ieși din modul meniu apăsând butonul „Meniu”. Pentru a schimba orice parametru de corecție acceptat:
    • Rotiți codificatorul rotativ din stânga (buton PARAMETER) pentru a selecta categoria de interes a parametrului (numele în partea de sus a afișajului LED)
    • Apăsați butonul de apăsare al codificatorului rotativ din stânga pentru a comuta la selecția actuală a parametrilor (numele în partea inferioară a afișajului LED)
    • Selectați parametrul real pe care doriți să îl modificați prin rotirea codificatorului din stânga (buton PARAMETER)
    • Rotiți codificatorul rotativ din dreapta la valoarea parametrului dorit. Puteți avansa valorile parametrilor cu 10 pe 10 apăsând butonul de apăsare al codificatorului rotativ din dreapta
  • Valorile parametrilor patch-urilor sunt transmise MIDI de îndată ce valoarea este schimbată pentru corecție „în timp real”.
  • Repetați procedura pentru orice parametru de interes.
  • Dacă doriți să reveniți la ecranul de meniu, pur și simplu apăsați butonul de meniu.
  • Vă rugăm să rețineți că:
    • Parametrii programatorului sunt toți inițializați la o valoare de „zero” atunci când programatorul este pornit pentru prima dată după o oprire sau când selectați un sintetizator diferit din meniu.
    • Când valoarea unui parametru este modificată, acea valoare este păstrată în memorie atâta timp cât Programatorul nu a fost resetat sau oprit9.
    • Dacă modificați valoarea unui parametru de pe panoul frontal al sintetizatorului, parametrul Programator nu este actualizat (acestea nu sunt sincronizate).
      >>AICI<< este depozitul de schițe (Github) cu cea mai recentă versiune. Fiind open source, sunteți binevenit să modificați schița după bunul plac și să eliminați erorile (vezi pasul următor) 😉

      instructables-PICO-MIDI-SysEx-Patcher-fig-10
      instructables-PICO-MIDI-SysEx-Patcher-fig-11
      instructables-PICO-MIDI-SysEx-Patcher-fig-12

Pasul 5: Schițați limite/bug-uri

  • Există loc pentru îmbunătățiri majore în schița actuală, preliminară.
  • În example, am putea adăuga o funcție pentru a salva canalul midi și sintetizatorul în loc să fie nevoie să le selectăm la pornire de fiecare dată când programatorul este pornit. Având în vedere cantitatea de memorie încă liberă, ar fi bine să suportăm și alte sintetizatoare. De asemenea, ar fi bine să obțineți și să stocați parametrii patch-urilor actuali și să aveți programatorul și sintetizatorul sincronizate.
  • Trebuie să raportez și câteva erori enervante în această primă iterație a codului. Prima dată când porniți unul dintre cele două encodere optice, o bibliotecă (presupun că este biblioteca LCD, dar nu sunt sigur) se inițializează și face ca programatorul să nu răspundă pentru câteva (două sau trei) secunde. Nu e mare lucru, dar enervant.
  • Un alt bug este pierderea unor trimiteri SysEx (fiecare rotire a codificatorului optic este înregistrată, dar uneori nimic nu este transferat la ieșirea MIDI). Acest lucru este cu siguranță ceva pentru x.

Pasul 6: Mulțumiri

  • PCB-ul prezentat în acest Instructable a fost sponsorizat de JLCPCB, un producător de înaltă tehnologie specializat în producția de PCB-uri de înaltă încredere și rentabile.
  • Oferă un serviciu de asamblare de PCB :exibil cu o bibliotecă imensă de peste 9 de componente în stoc. Imprimarea 350.000D a fost adăugată „recent” în portofoliul lor de servicii, astfel încât cineva să poată crea un produs complet finit într-un singur loc!
  • Serviciul lor pentru clienți este receptiv și util, iar PCB-urile au o valoare excelentă pentru bani.
  • Contribuția lor la realizarea acestui proiect a fost esențială atât de mult... multumesc! 🙂
  • Înregistrându-vă pe site-ul JLCPCB prin ACEST LINK (un link asociat) veți primi o serie de cupoane pentru comenzile dumneavoastră. Înregistrarea nu costă nimic, așa că ar putea fi o oportunitate bună de a încerca serviciul lor 😉

    instructables-PICO-MIDI-SysEx-Patcher-fig-13
    instructables-PICO-MIDI-SysEx-Patcher-fig-14

Documente/Resurse

instructables PICO MIDI SysEx Patcher [pdfManual de instrucțiuni
PICO MIDI SysEx Patcher, MIDI SysEx Patcher, SysEx Patcher, Patcher, PICO MIDI SysEx

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *