First Voice in Unisono Mode 1
rolfdegen opened this issue · comments
I have a question about Unisono Mode1 in TSynth 4.1. In the old Firmware (Version 2.00 ) you don't use DETUNE for the 1st voice. The Oscillator Frequency for Midi Note A4 is always 440Hz.
Firmware 2.00
void updateVoice1() { if (unison == 1) { waveformMod1a.frequency(NOTEFREQS[voices[0].note + oscPitchA]); waveformMod1b.frequency(NOTEFREQS[voices[0].note + oscPitchB] * (detune + ((1 - detune) * DETUNE[notesOn - 1][1]))); } else if (unison == 2) { waveformMod1a.frequency(NOTEFREQS[voices[0].note + oscPitchA + CHORD_DETUNE[0][chordDetune]]) ; waveformMod1b.frequency(NOTEFREQS[voices[0].note + oscPitchB + CHORD_DETUNE[0][chordDetune]] * CDT_DETUNE); } else { waveformMod1a.frequency(NOTEFREQS[voices[0].note + oscPitchA]); waveformMod1b.frequency(NOTEFREQS[voices[0].note + oscPitchB] * detune); } }
In the latest firmware version 2.33, the oscillator frequency for the 1st voice changes with the DETUNE.
Firmware 2.33
` void updateVoice(VoiceParams ¶ms, uint8_t notesOn) {
Patch& osc = this->patch();
if (params.unisonMode == 1) {
int offset = 2 * this->index();
osc.waveformMod_a.frequency(NOTEFREQS[this->_note + params.oscPitchA] * (params.detune + ((1 - params.detune) * DETUNE[notesOn - 1][offset])));
osc.waveformMod_b.frequency(NOTEFREQS[this->_note + params.oscPitchB] * (params.detune + ((1 - params.detune) * DETUNE[notesOn - 1][offset + 1])));
} else if (params.unisonMode == 2) {
// TODO: This approach doesn't make sense with voices spread across multiple timbres.
osc.waveformMod_a.frequency(NOTEFREQS[this->_note + params.oscPitchA + CHORD_DETUNE[this->index()][params.chordDetune]]) ;
osc.waveformMod_b.frequency(NOTEFREQS[this->_note + params.oscPitchB + CHORD_DETUNE[this->index()][params.chordDetune]] * CDT_DETUNE);
} else {
osc.waveformMod_a.frequency(NOTEFREQS[this->_note + params.oscPitchA]);
osc.waveformMod_b.frequency(NOTEFREQS[this->_note + params.oscPitchB] * params.detune);
}
}`
The base frequency of oscillator 1 in voice 1 (440 Hz) changes with the DETUNE setting. Is that correct ?
Greetings from germany and have a nice time :)