ftom
Convert frequency to midi note number, taking global value of A4 into account.
Plugin opcode in emugens.
Syntax
imidi ftom ifreq [,irnd]
kmidi ftom kfreq [,irnd]
imidis[] ftom ifreqs[] [,irnd]
kmidis[] ftom kfreqs[] [,irnd]
kfreq / ifreq -- Frequency
irnd -- Optional, if non-zero the result is rounded to the nearest integer (default zero).
kmidi / imidi -- Corresponding midi note number
Note
Set the global A4 value at the header to modify the tuning
Examples
Here is an example of the ftom opcode. It uses the file mtof-ftom.csd.
Example of the ftom opcode. |
---|
| <CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 128
nchnls = 2
0dbfs = 1.0
A4 = 440
instr 1
kfreq = mtof(69)
printks2 "midi 69 -> %f\n", kfreq
kmidi = ftom(442)
printks2 "freq 442 -> %f\n", kmidi
kmidi = ftom(442,1)
printks2 "freq 442 -> %f rounded\n", kmidi
kfreq = mtof(kmidi)
printks "midi %f -> %f\n", 1, kmidi, kfreq
imidi = ftom:i(440)
print imidi
ifreq = mtof:i(60)
print ifreq
turnoff
endin
instr 2
imidis0[] fillarray 60, 62, 64, 69
ifreqs0[] mtof imidis0
printarray ifreqs0, "", "ifreqs0"
kfreqs[] fillarray 220, 440, 880
kmidis[] ftom kfreqs
puts "kfreqs", 1
printarray kmidis, 1, "%.2f", "kmidis"
turnoff
endin
</CsInstruments>
<CsScore>
i 1 0 1
i 2 0 1
</CsScore>
</CsoundSynthesizer>
|
See also
Pitch Converters: Functions
Midi Converters
Credits
By: Eduardo Moguillansky 2017
New in version 6.09
Rounding option new in 6.12
Array version new in 6.13