I was trying to build a sound that had 3 oscillators tuned in a chord, with different envelope for each oscillator (like tuned echos).
there's no direct way to tune each operator in semitones (like 0, +4, +7) - or I didn't find it. Instead you have to use fine tune, which is expressed in thousands of an octave.
So, how do you convert fine tune setting into semitone ? There must be a formula (using log ...) but I was too lazy to look for it.
Instead, I experimented and build a conversion table.
The way I built the table is the following:
- use 2 operators in parallel, with basic sine preset
- play both operators continuously with same note (like C3)
- transpose operator A by -1 semitone (global transpose param)
- adjust operator A osc A fine setting until the 2 operators are in tune (use beating to fine tune)
- record the value
- repeat with 2, 3, ..., 11 semitones
Here is the table :
semitone / fine
0 ----> 0
1 ----> 60
2 ----> 123
3 ----> 189
4 ----> 260
5 ----> 335
6 ----> 414
7 ----> 498
8 ----> 587
9 ----> 682
10 ----> 782
11 ----> 888
12 ----> 1000
If someone has more precise values or the formula, I'd appreciate the update.
EricP
Operator : adjust oscillators frequency in semitone offsets
Re: Operator : adjust oscillators frequency in semitone offs
Having almost forgotten how to do this, but with your experimental table to check my attempts against, I came up with the following perl program:
which gives
0
59
122
189
260
335
414
498
587
682
782
888
1000
Code: Select all
my $m = 2**(1/12);
foreach my $s (0..12) {
print int(0.5+1000*$m**$s-1000), "\n";
}
0
59
122
189
260
335
414
498
587
682
782
888
1000