Cuprins:

Sintetizator arpegiator (țânțar I): 6 pași
Sintetizator arpegiator (țânțar I): 6 pași

Video: Sintetizator arpegiator (țânțar I): 6 pași

Video: Sintetizator arpegiator (țânțar I): 6 pași
Video: Artists & ARTURIA # 22 - Vince Clarke meets MiniBrute 2024, Iulie
Anonim
Sintetizator arpegiator (Mosquito I)
Sintetizator arpegiator (Mosquito I)

Mosquito I este un mic sintetizator de arpegiere care folosește un Arduino Nano și biblioteca de sinteză a sunetului Mozzi. Poate reda peste douăzeci de secvențe în 8 pași, dar puteți adăuga câte secvențe personalizate doriți. Este relativ simplu de configurat și nu necesită multe piese.

Provizii:

  • Arduino Nano (sau orice Arduino ar trebui să funcționeze)
  • 5 potențiometre (10K liniare)
  • 2 ea Apăsați butoanele
  • 1 led LED
  • 1 rezistor (330 ohm)
  • 2 rezistor (1K)
  • 1 rezistor (2K)
  • 1 condensator electrolitic (100 uF)
  • 1 condensator ceramic (33 nF)
  • 1 jack stereo
  • Sârmă de conectare
  • Pană de pâine

Pasul 1: Configurarea Arduino

Configurarea Arduino
Configurarea Arduino
Configurarea Arduino
Configurarea Arduino

Mai întâi, să luăm Nano pe panou și să ne configurăm puterea:

  1. Așezați Nano pe panou. Plasați așa cum se arată în imaginea de mai sus. Ar trebui să se încadreze pe canalul central al panoului. Veți dori să fie situat către un capăt al panoului de control, cu portul USB orientat spre acea parte. În acest fel, cablul nu va intra în cale atunci când îl conectăm. Dacă folosiți un Arduino mai mare, cum ar fi Uno sau Mega, nu îl veți monta, bineînțeles, pe panoul de control.
  2. Conectați șinele de alimentare la Arduino. Conectați una dintre șinele pozitive (roșii) ale panoului dvs. de pin la pinul Arduino de 5V folosind fire sau jumper. Apoi conectați unul dintre șinele negative (albastre) la unul dintre pinii GND ai Nano.
  3. Conectați șinele de alimentare între ele. Pentru a obține energie de-a lungul șinelor de pe ambele părți ale panoului, conectați șinele de ambele părți ale panoului de pană între ele, rulând un fir de la șina pozitivă pe o parte la șina pozitivă pe cealaltă parte. Repetați acest lucru cu șinele negative.

Pasul 2: Adăugarea comenzilor

Adăugarea comenzilor
Adăugarea comenzilor

Mosquito I folosește cinci potențiometre și două butoane pentru comenzi.

Potențiometre:

  1. Așezați vasele pe tablă. Așezați vasele astfel încât fiecare știft să fie pe propriul rând.
  2. Conectați ghivecele la șinele electrice. Conectați știftul din partea stângă a fiecărei oale (dacă vă uitați la partea butonului) la una dintre șinele negative de pe panou. Conectați știftul din dreapta al fiecărei oale la una dintre șinele pozitive ale panoului.
  3. Conectați poturile la Arduino. Conectați pinul central al fiecărei oale la unul dintre pinii analogici de pe Arduino. Pinul central al primului pot se conectează la A0, al doilea pot la A1 și așa mai departe, ultimul pot fiind conectat la A4.

Apasa butoanele:

  1. Așezați butoanele pe panou. Așezați cele două butoane pe panou, astfel încât să se încadreze în canalul central.
  2. Conectați părțile pozitive. Pe o parte a panoului, conectați unul dintre știfturile butonului la șina pozitivă.
  3. Conectați părțile negative. Așezați unul dintre rezistențele 1K pe panou, astfel încât un capăt să fie conectat la pinul neutilizat al butonului și cealaltă parte a rezistorului să se conecteze la șina negativă.
  4. Butonul Conectare la Arduino. Rulați un fir pe rândul care conectează butonul la șina negativă la pinul D2. Faceți același lucru cu celălalt buton, dar conectați-l la D3.

Pasul 3: Adăugarea de ieșiri

Adăugarea de ieșiri
Adăugarea de ieșiri

Afișăm sunetul de la pinul 9, precum și intermitem un LED la primul pas al fiecărei secvențe. Iată cum să configurați hardware-ul pentru asta.

LED

  1. Așezați un LED într-un spațiu gol de pe panou.
  2. Conectați piciorul negativ (scurt) al LED-ului la șina negativă.
  3. Plasați rezistorul care limitează curentul. Conectați o parte a unui rezistor de 330 ohmi la piciorul pozitiv (lung) al LED-ului. Conectați cealaltă parte a rezistorului la pinul D4 al Arduino.

Iesire audio

  1. Plasați rețeaua RC. Semnalul de ieșire de la Arduino provine de la pinul 9, dar semnalul poate fi un pic mai fierbinte decât pot suporta unele difuzoare. Pentru a-l aduce la ceva mai aproape de nivelul liniei, am adăugat o rețea RC (bazată pe un design de Notes & Volts). Așezați condensatorii de 33nF și 100uF, împreună cu rezistorul 2K așa cum se arată în imagine / schemă. Asigurați-vă că condensatorul electrolitic 100uF este conectat cu polaritatea corectă (piciorul pozitiv / lung urmând pinul 9 de pe Arduino și piciorul negativ / scurt conectat la mufă).
  2. Conectați partea negativă a mufei audio la masă. Conexiunile mufelor audio vor varia ușor în funcție de tipul pe care îl utilizați, dar în general toate funcționează la fel. Trebuie să conectăm manșonul cricului la masă. Aceasta este uneori marcată cu un simbol minus sau etichetată ca „mânecă”, „inel” sau „gnd”. Dacă nu există etichete pe mufa dvs. audio, poate fi necesar să consultați fișa tehnică sau doar să efectuați o inspecție atentă a mufei și să vedeți dacă puteți determina care pin este conectat la manșonul sau inelul exterior al mufei.
  3. Conectați partea pozitivă a mufei audio la partea negativă a condensatorului 100uF. Semnalul nostru audio curge acum de la pinul 9 al Arduino prin rețeaua RC și iese din partea negativă a condensatorului 100uF. O vom conecta la partea pozitivă a mufei noastre audio. Aceasta este de obicei marcată cu un simbol plus sau poate fi etichetată „vârf”. Din nou, dacă nu este etichetat, poate fi necesar să îl inspectați pentru a afla ce pin se va conecta la vârful cricului. De asemenea, dacă utilizați o mufă stereo, poate exista o conexiune tip L și tip R. Deoarece emitem un semnal mono, vă puteți conecta la una dintre conexiunile de vârf.

Important: Dacă descoperiți că sunetul este prea silențios, ați putea să eliminați rețeaua RC la pasul 1 și să vă conectați direct la audio de la pinul 9 al Arduino. Acest lucru ar trebui să fie în regulă dacă conectați sunetul la ceva cu un pre-amplificator, cum ar fi difuzoarele externe ale computerului, unde aveți un buton de volum, dar nu l-aș recomanda pentru lucruri precum căști, căști sau conectarea directă la un difuzor. Dacă decideți să eliminați rețeaua RC, vă sugerez să reduceți volumul difuzoarelor până la pornirea Arduino și apoi să creșteți treptat volumul pentru a evita suflarea difuzoarelor.

După ce ați configurat totul, verificați de două ori dacă toate conexiunile arată corect și se potrivesc cu imaginea și schema de mai sus

Pasul 4: Încărcarea codului

Acum, când hardware-ul este complet configurat, suntem gata să abordăm partea software:

  1. Lansați ID-ul Arduino. Lansați ID-ul Arduino pe computer (dacă nu îl aveți, îl puteți descărca de pe
  2. Descărcați biblioteca Mozzi. Biblioteca Mozzi ne permite să folosim Arduino ca sintetizator. Pentru a obține această bibliotecă în IDE-ul dvs., accesați pagina Mozzi github https://sensorium.github.io/Mozzi/download/. Faceți clic pe butonul verde „Cod” și alegeți Descărcați codul ZIP.
  3. Instalați biblioteca Mozzi din fișierul zip. În IDE-ul Arduino, accesați Sketch-> Include Library-> Add. ZIP Library … Navigați la fișierul zip pe care l-ați descărcat pentru a-l adăuga. Acum ar trebui să vedeți Mozzi listat în secțiunea Sketch-> Include Library.
  4. Descărcați codul Mosquito I Arduino. Puteți obține acest lucru de pe site-ul meu github https://github.com/analogsketchbook/mosquito_one. (Rețineți că schemele sunt de asemenea disponibile acolo dacă aveți nevoie de ele pentru referință de cablare.
  5. Conectați Arduino la computer și încărcați codul.

Pasul 5: Încurcături

Asta e. Ar trebui să vă puteți conecta difuzoarele la mufa audio și să auziți sunetul dulce al sintezei arpegiate din acel Nano imbecil! Dacă nu auziți nimic la început, încercați să centrați butoanele pe toate vasele pentru a vă asigura că obțineți valori de pornire decente.

Iată ce fac comenzile:

Vase:

Rate: Aceasta controlează cât de repede se redă secvențierul. Reducerea acesteia redă note secrete în ordine. Întorcându-l în sus, unge notele împreună pentru a crea forme de undă complet noi.

Legato: Al doilea pot controlează legato sau lungimea notei. Întoarcerea mai mult la stânga produce note scurte, sticatto, în timp ce rotirea la dreapta produce note mai lungi.

Pitch: Aceasta setează pasul de bază pentru secvență. Controlul tonului setează valorile MIDI, deci crește / micșora tonul în semitonitate, mai degrabă decât într-o deplasare continuă a tonului.

Faza: Rotirea acestui buton spre dreapta introduce un subtil efect de fazare. Din punct de vedere tehnic, acest lucru face ca cele două oscilatoare din țânțarul I să fie ușor decalate, ceea ce cauzează fazarea. Cu toate acestea, nu urmărește cu tonul, astfel încât efectul de fazare este probabil mai vizibil la notele de ton mai mici.

Filtru: acest buton controlează frecvența de întrerupere a unui filtru Low Pass. Rotirea la stânga reduce frecvențele înalte producând un sunet mai înăbușit, în timp ce rotirea la dreapta produce un sunet mai luminos.

Butoane:

Mosquito are peste douăzeci de secvențe diferite pe care le poate juca în mod implicit. Butoanele vă permit să selectați secvența care se joacă. Un buton vă deplasează în sus lista de secvențe, iar celălalt coboară lista.

Pasul 6: Personalizare

Personalizare
Personalizare

Am adăugat o grămadă de secvențe implicite, mai ales scări diferite, dar puteți personaliza codul destul de ușor pentru a schimba secvența notelor redate, a adăuga altele noi sau a schimba numărul de note dintr-o secvență. Mai jos sunt detaliile modului în care se face acest lucru în cazul în care doriți să îl personalizați.

Schimbarea notelor în secvența existentă

Secvențele sunt stocate într-o serie de matrice numite NOTE. Fiecare notă este stocată ca valoare de notă MIDI, deci dacă doriți să modificați notele într-o anumită secvență, schimbați doar numerele de note MIDI pentru acea secvență. Setarea implicită este să redați 8 pași pe secvență, astfel încât să puteți avea doar 8 valori MIDI într-o secvență (a se vedea mai jos dacă doriți să aveți lungimi diferite ale secvenței).

Un lucru de remarcat, butonul pitch adaugă un decalaj de notă valorilor MIDI specificate în matricea NOTES. Când butonul este centrat, acesta redă notele MIDI indicate în matrice, dar pe măsură ce rotiți butonul pitch, acesta adaugă sau scade un semiton la notele redate.

Adăugarea de secvențe noi

Puteți adăuga noi secvențe la matricea NOTES prin simpla adăugare a unei matrice noi de 8 note la sfârșitul listei. Totuși, dacă faceți acest lucru, va trebui să modificați valoarea variabilei numSequences pentru a se potrivi cu noul număr de secvențe. De exemplu, matricea NOTES are în mod implicit 21 de secvențe, astfel încât variabila numSequences este setată la 21. Dacă adăugați o nouă secvență, va trebui să modificați variabila numSequences la 22.

Puteți adăuga câte secvențe noi doriți.

Modificarea lungimii secvenței

Dacă doriți să modificați lungimea secvențelor (dacă doriți să spuneți o secvență în 4 sau 16 pași), puteți face acest lucru, dar singura avertizare este că toate secvențele trebuie să aibă aceeași lungime. De asemenea, va trebui să setați variabila numNotes pentru a se potrivi cu lungimea secvențelor dvs.

Alte schimbări

Există o serie de alte personalizări posibile, cum ar fi comutarea tipurilor de forme de undă, setările / valorile filtrelor, care sunt dincolo de sfera acestui tutorial. Descoperirea codului Mozzi poate fi un pic dificilă la început, dar am încercat să documentez codul cât mai mult posibil pentru a arăta ce fac diferitele părți ale codului.

Există câteva părți principale ale codului pentru Mozzi care au utilizări destul de specifice și le-am enumerat mai jos pentru a vă oferi o idee despre ce sunt folosite:

  • setup () - Dacă ați programat pentru Arduinos înainte să vă familiarizați cu această funcție și este destul de mult folosit la fel în Mozzi. Îl folosim mai ales pentru a configura setările implicite pentru oscilatoare, filtre etc.
  • updateControl () - Aici funcționează cea mai mare parte a codului Mozzi. Aici citim valorile pot și buton, mapăm și transformăm valorile respective pentru a le alimenta în sintetizator și unde se face secvențierea.
  • updateAudio () - Acesta este rezultatul final din biblioteca Mozzi. De obicei, codul de aici este păstrat foarte mic și slab, deoarece această funcție este utilizată de Mozzi pentru a maximiza toate ciclurile de ceas pe care le poate. După cum puteți vedea în codul țânțarilor, poate fi puțin criptic, dar tot ceea ce facem este practic combinarea / multiplicarea diferitelor forme de undă și apoi schimbarea biților pentru a se potrivi cu un anumit interval de numere. Cel mai bine este să păstrați această funcție foarte ușoară (nu apelurile seriale sau pinii de citire) și să puneți în schimb majoritatea lucrurilor în funcția controlUpdate (). Documentația Mozzi detaliază acest lucru mai detaliat.

Recomandat: