Stap 4: Opmerking effecten
De nota-waarden worden opgeslagen naar een matrix. U kunt de waarden hier vinden: http://en.wikipedia.org/wiki/Piano_key_frequenciesdubbele keyFreq [] {} =
27,5, 29.1352, 30.8677, //Octave 0
32.7032, 34.6478, 36.7081, 38.8909, 41.2034, 43.6535, 46.2493, 48.9994, 51.9131, 55, 58.2075, 61.7354, //Octave 1
65.4064, 69.2957, 73.4162, 77.7817, 82.4069, 87.3071, 92.4986, 97.9989, 103.826, 110, 116.541, 123.471, //Octave 2
130.813, 138.591, 146.832, 155.563, 164.814, 174.614, 184.997, 195.998, 207.652, 220, 233.082, 246.942, //Octave 3
261.626, 277.183, 293.665, 311.127, 329.628, 349.228, 369.994, 394.995, 415.305, 440, 466.164, 493.883, //Octave 4
523.251, 554.365, 587.330, 622.254, 659.255, 698.456, 739.989, 783.991, 830.609, 880, 932.328, 987.767, //Octave 5
1406.50, 1108.73, 1174.66, 1244.51, 1318.51, 1396.91, 1479.98, 1567.98, 1661.22, 1760, 1864.66, 1975.53, //Octave 6
2093.00, 2217.46, 2349.32, 2489.02, 2637.02, 2793.83, 2959.96, 3135.96, 3322.44, 3520, 3729.31, 3951.07, //Octave 7
4186.01 //Octave 8
};
Notities die zijn verzonden vanaf het MIDI of over UART hebben dus een geschikte waarde, in plaats van te worden berekend op de vlieg.
De tweede oscillator kan worden ontstemd van de eerste op 3 manieren.
1. maakt gebruik van een systeem genaamd centen, die breuken van een notitie. Berekend als volgt:
centMultiplier = pow (2.0,(cents + dC)/1200.0);
Deze waarde wordt vervolgens vermenigvuldigd op de frequentie van de opmerking.
2. is het gebruik van een systeem genaamd semi, die verschuivingen van de volledige nota van -1 naar + 1 octaaf
3. ten slotte door volledige octaven van -3 tot + 3
De twee oscillatoren worden dan gemengd met behulp van een verstelbare gewicht.
byte osc1 = ((pgm_read_byte (waveTable + icnt1 + (osc1WaveForm << 8)) * weight1) / MAX_WEIGHT); eerste osc
byte osc2 = ((pgm_read_byte (waveTable + icnt2 + (osc2WaveForm << 8)) * weight2) / MAX_WEIGHT); tweede osc
De twee waarden worden vervolgens opgeteld. De waarde voor het gewicht gaat van 0 tot en met 16. Zo kunt u hebben volledig de eerste oscillator, geheel op de tweede, of op sommige mengsel tussendoor.
De LFO past de verstemming van de tweede oscillator door de waarden in verhouding tot de amplitude van de Golf aan te passen. Dus het werkt op een gelijksoortige manier als de eerste 2 oscillatoren, maar in plaats van het creëren van geluid, tweaks het waarden.