Table of Contents

Sintetizator Audio

Introducere

Voi realiza un sintetizator audio care va avea circuite digitale, cat si analogice.

Claviatura este realizata din mai multe butoane. Dispozitiviul va avea si butoane pentru a modifica gama si pentru functie de record/playback.

Microcontrollerul va genera o nota muzicala, care apoi va fi prelucrata de un filtru comandat in tensiune (VCF - Voltage Controlled Filter), amplificator comandat in tensiune (VCA - Voltage Controlled Amplifier), avand disponibil un generator de anvelopa Attack/Release pe post de tensiune de comanda.

Semnalul prelucrat va fi apoi amplificat de un amplificator audio si ne va binecuvanta (sper) urechile printr-un difuzor.

Scopul sau este de a fi un instrument muzical unic, iar din moment ce fiecare componenta este diferita si exista mai multe metode de a aranja piesele, putem obtine diverse sunete.

Este si o buna metoda de a invata concepte despre prelucrarea semnalelor analogice.

Prima data am facut un sequencer simplu folosind un CD4017, un decade counter IC pe care l-am configurat sa numere pana la 8, asadar aveam o secventa de 8 note. Aveam si niste circuite simple de VCF, VCA.

Pentru mine este util deoarece pot aprofunda notiuni de audio si electronica analogica, si imi doresc ca dupa ce dezvolt suficient de mult instrumentul, sa il fac cadou unui prieten pasionat de muzica electronica.

Descriere generală

Claviatura este realizata din mai multe pushbuttons, care alaturi de o retea de rezistente, creeaza mai multe praguri de tensiune ce sunt citite de ADC-ul uC, asadar se poate diferentia notele una de alta sau de un semnal de comanda.

Apasarea pe o nota modifica frecventa semnalului PWM generat de timer. Dispozitivul este in mod implicit in gama 4. Notele sunt stocate intr-un struct, avand numele notei si frecventa corespunzatoare. Apasarea pe gama sus/jos va inmulti/imparti frecventa cu 2. Apasarea pe butonul de recording va inregistra notele cantate, inca o apasare va seta dispozitivul in modul de playback pentru a reda secventa memorata, iar inca o apasare il va seta in modul standard de free play.

Cat timp o clapa corespunzatoare unei note este apasata, este generat si un semnal de gate pentru generatorul de anvelopa. Se pot controla parametrii generatorului (timpul de Attack respectiv Release) folosind potentiometre.

Nota noastra muzicala este un semnal dreptunghiular, asa ca o vom trece prima data printr-un VCF pentru a netezi tranzitiile abrupte si a obtine un sunet mai cald.

Hardware Design

Listă de componente

Reference Qty Value
A1 1 Arduino_Nano_v2.x
BT1 1 12.7
C1,C5,C6,C7,C8,C9 6 100n
C2 1 220uf
C3 1 1000uf
C4 1 0.22u
C10 1 4.7u
C11 1 10n
C12,C15 2 10u
C13 1 1n
C14 1 2.2n
D4,D5,D6 3 D
D7,D8,D9 3 LED
LS1 1 Speaker
Q1 1 NPN
R1-R26,R27,R29,R30,R32,R41 31 1k
R36,R37,R38,R39,R47,RV1,RV2,RV5,RV6,RV7 10 100k
R40 1 560
R42,R43,R45,R51 4 10k
R44,R46 2 5.1k
R48,R49,R50 3 R_Photo
R52,R53 2 470k
SW1-SW15 15 SW_Push
U1 1 uA7812
U3 1 LM358
U4,U5 2 TL072
U6 1 Modul Amplificator Audio TPA3110D2

Butoane → (Semnal Analogic prin divizor rezistiv) → ADC Microcontroller

Microcontroller → (Semnal Digital PWM) → VCF

Microcontroller → (Semnal Digital Gate) → Generator Anvelopă

Generator Anvelopă → (Semnal Analogic de Control - CV) → VCA

VCF → (Semnal Audio Analogic Netezit) → VCA

VCA → (Semnal Audio Final) → TPA3110D2 (Amplificator) → Difuzor

Software Design

Proiectul a fost dezvoltat folosind mediul PlatformIO.

Arhitectura aplicației este de tip Interrupt-Driven (bazată pe întreruperi) și folosește Mașini de Stări (State Machines) pentru logica principală. Sistemul este împărțit în următoarele module cheie:

Codul sursă complet și detaliile de implementare pot fi găsite pe repository-ul de GitHub asociat proiectului.

Cod sursă

https://github.com/strugariu/proiect-pm/tree/main

Bibliografie/Resurse

https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf

https://www.ti.com/lit/ds/symlink/lm358.pdf

https://www.ti.com/lit/ds/symlink/tl072.pdf

https://www.ti.com/lit/ds/symlink/ua78.pdf?ts=1779730004215

https://analogoutputblog.wordpress.com/2022/05/04/how-to-vactrol/

https://www.ti.com/lit/an/sboa226/sboa226.pdf?ts=1779690038815

https://synthnerd.wordpress.com/2016/04/06/envelope-circuits-a-simple-ar-design-using-op-amps/

Placa de PM