L'autor d'Instructables sota el sobrenom rgco va crear un sintetitzador de quatre veus 1,5-octava Arduino Uno A títol comparatiu, els sintetitzadors infantils generalitzats que es diferencien entre ells només pel que fa al disseny i realitzats pel mateix xip són de tres veus. És cert que poden acompanyar automàticament la música amb ritme, memoritzar melodies d’una veu i imitar les veus dels animals. Però llavors casolans sona més bonic. Per què?
Tot tracta els paràmetres. Freqüència de mostreig 31 kHz, de 9 bits, 4 veus, síntesi de FM amb barres variades en el temps, embolcall ADSR, 12 instruments virtuals, 18 tecles que abasten 1,5 octaves.
El mestre compon el circuit del sintetitzador en Fritzing:
Simula la ubicació dels components en un panell tipus panell i les connexions entre ells:
I recull l'esquema a la vida real:
Simplement “abocar i utilitzar” és el més senzill que pots fer amb el disseny. 18 tecles (des de ABANS de la quarta octava fins a la cinquena FA): per tocar, el dinou commuta els instruments virtuals en un so: piano, xilòfon, guitarra, címbals, campanes, funky, vibrato, metall, violí, baix, trompeta, acordió. La naturalesa del so està afectada per la durada de les tecles, però no per l'esforç, a diferència dels sintetitzadors professionals. Però el desenvolupador vol que intenteu programar també les vostres eines virtuals. Cadascun d'ells ve donat per deu paràmetres. L’assistent indica quin paràmetre depèn de què.
Ldness - volum
Si aquest paràmetre és inferior a 64, s’exclouen la sobrecàrrega i les distorsions relacionades. Però si programes un instrument virtual que no sona a un volum màxim durant molt de temps, el valor d'aquest paràmetre pot superar el 64, ja que les quatre veus sonen simultàniament de forma rara.
pitch0 - canvi de pas
L’interval correspon a l’anterior, si definiu aquest paràmetre a 12. Disminuir el desplaçament cap a baix, augmentar - augmentar. Zero correspon a un desplaçament cap avall exactament una octava, 24 fins exactament una octava.
ADSR_a: velocitat de disminució del volum de zero a màxim
Com més petit, més lent.Per exemple, 8192 correspon a 4 ms, 256 a 128 ms.
ADSR_d: velocitat per reduir el volum des del màxim fins a l’especificat pel paràmetre ADSR_s.
El principi és el mateix.
ADSR_s: el valor al qual disminueix el volum quan es prem la tecla durant molt de temps
Per exemple, 256: el volum es manté màxim durant tot el temps mentre es manté premuda la tecla. 192: el volum baixa fins al 80 per cent i es manté així mentre es manté premuda la tecla. 0: el volum disminueix a zero, fins i tot si la tecla és mantinguda mantenida premuda.
ADSR_r: velocitat per reduir el volum a zero després de deixar anar la clau
El principi és el mateix que per als paràmetres ADSR_a i ADSR_d.
FM_inc: relació entre la freqüència de modulació i el to
Amb un valor de 256, aquesta relació és 1: 1, amb 512 - 2: 1, amb 128 - 1: 2, la resta és similar. Si aquest paràmetre està establert en un múltiple de 64, el so serà anarmònic.
FM_a1: el rang de modulació de freqüència al començament d'una nota
256 correspon a una àmplia gamma d'harmònics. Amb una disminució, el to és més net, amb un augment dels harmònics es fa més.
FM_a2: modulació de la freqüència d'escombrat al final d'una nota
El principi és el mateix. Per a la majoria d'instruments reals, els harmònics decauen més ràpidament que el to fonamental. Si feu el contrari, obteniu sons inusuals.
FM_dec: velocitat de transició de la modulació de freqüència des de l’especificada pel paràmetre FM_a1 a l’especificada pel paràmetre FM_a2
El principi és el mateix que per als paràmetres ADSR_a, ADSR_d i ADSR_r.
S'obté una freqüència PWM de 31.250 Hz dividint la freqüència de rellotge (16 MHz) per 512. El programa està dissenyat de manera que els esdeveniments es vinculin al temps sense interrupcions. En lloc d'això, hi participa un bit de desbordament del temporitzador. Perquè el programa pugui fer tot el que es requereix, només s’utilitzen nombres enters de 8 i 16 bits. L’ona sinusoïdal es presenta en forma d’una taula de nombres de 8 bits. Les operacions auxiliars: llegir estats de claus, canviar instruments virtuals, seleccionar veus, calcular paràmetres de notes que canvien en el temps - es distribueixen entre 15 procediments, que necessiten 0,48 ms en completar-se. En aquest moment, algunes operacions es realitzen amb precisió de 32 bits, la qual cosa és necessari multiplicar dos números binaris de 16 bits.
Una simple ona sinusoïdal sona avorrida perquè no hi ha harmònics en el seu espectre. La síntesi de FM us permet rebre-les i canviar d’espectre al llarg del temps, simulant el so d’instruments reals. Les freqüències múltiples donen un so anarmònic que es produeix, per exemple, a les campanes. El dispositiu imita bé el canvi d’espectre inherent als instruments reals al llarg del temps, quan alguns harmònics decauen més ràpidament que d’altres.