µSynth7 este un sintetizator digital compact, conceput pentru a oferi o experiență muzicală interactivă și portabilă. Dispozitivul folosește un microcontroler ESP32 și oferă șapte butoane tactile ce corespund notelor unei chei în sistemul Nashville, un joystick pentru control adițional, un buzzer PWM pentru generarea de sunete și un ecran LCD I2C pentru feedback vizual.
µSynth7 este construit în jurul unui microcontroler ESP32 și implementează un sequencer muzical digital. Utilizatorul poate reda note secvențial, unde un set de pași temporizați declanșează notele într-o buclă. Interfața include șapte butoane pentru notele scalei, un buton de opțiuni pentru comutarea între moduri și un joystick pentru ajustarea BPM-ului, transpunere și alte setări muzicale.
COMPONENTA | PIN ESP32 |
Butoane Note (C) | GPIO 4/5/13/14/27/32/33 |
Buton Opțiuni | GPIO 19 |
Joystick X/Y | GPIO 34/35 |
Buzzer PWM | GPIO 18 |
LCD SDA/SCL | GPIO 21/22 |
Conectarea componentelor s-a realizat pe breadboard, utilizând fire jumper.
Codul este scris în Arduino IDE și organizat modular, cu fișiere pentru notare, controlul sequencer-ului, interfață LCD și input. Codul complet este disponibil pe GitHub:
[GitHub - µSynth7](https://github.com/aighita/-Synth7)
const int Sequencer::degreeFreqs[7] = { 262, 294, 311, 349, 392, 415, 466 };
void Sequencer::update() { if (!isPlaying_) return; unsigned long now = millis(); if (now - lastStepTime_ < (unsigned long)stepLengthMs_) return; lastStepTime_ = now;
if (metronome_) { if (readIndex_ % 16 == 0) tone(audioPin_, 800, 50); else if (readIndex_ % 4 == 0) tone(audioPin_, 1000, 50); }
int freq = pattern_[readIndex_]; if (freq > 0) { tone(audioPin_, transpose(transposeOctave(freq))); digitalWrite(ledPin_, HIGH); } else { noTone(audioPin_); digitalWrite(ledPin_, LOW); }
readIndex_ = (readIndex_ + 1) % patternLength_; writeIndex_ = readIndex_; }
µSynth7 funcționează stabil, răspunzând rapid la input și oferind o experiență interactivă de generare a sunetului. Modul sequencer este precis, iar joystick-ul adaugă un control intuitiv asupra parametrilor muzicali. Butonul optiuni poate fi folosit in combinatie cu cele 7 butoane de note pentru a modifica setarile sequencer-ului.
Proiectul a demonstrat posibilitatea construirii unui sintetizator digital complet funcțional folosind hardware accesibil și un software modular. Designul permite extindere (ex. adăugare MIDI sau ieșire audio cu DAC extern).
[GitHub](https://github.com/aighita/-Synth7)
Resurse Software
Resurse Hardware