Programmer Guide/Command Reference/EVAL/hz2cent: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:hz2cent, cent2hz}} | {{DISPLAYTITLE:hz2cent, cent2hz}} | ||
Convert the elements of ''x'' from Hertz to Cent and vice versa. | Convert the elements of ''x'' from Hertz to Cent and vice versa. | ||
;Usage: | ;Usage: <code>hz2cent(<var>x</var> {, <var>ref</var> {, <var>ofs</var>}})</code> | ||
: | :<code>log2lin(<var>x</var> {, <var>ref</var> {, <var>ofs</var>}})</code> | ||
:;<var>x</var>: a scalar, vector or matrix | :;<var>x</var>: a scalar, vector or matrix | ||
:;<var>ref</var>: the reference frequency in Hz; must be a positive number (default=440) | :;<var>ref</var>: the reference frequency in Hz; must be a positive number (default=440) | ||
Line 10: | Line 10: | ||
''fac'' * log<sub>10</sub>(''x''<sub>i,j</sub> / ''ref'') | ''fac'' * log<sub>10</sub>(''x''<sub>i,j</sub> / ''ref'') | ||
::*'''cent2hz''': ''r''<sub>i,j</sub> = ''ref'' * 2 ^ ((''x''<sub>i,j</sub> - ''ofs'') / 1200) | ::*'''cent2hz''': ''r''<sub>i,j</sub> = ''ref'' * 2 ^ ((''x''<sub>i,j</sub> - ''ofs'') / 1200) | ||
;See also: [[../hz2mel|hz2mel, mel2hz]], [[../hz2erb|hz2erb, erb2hz]], [[../hz2bark|hz2bark, bark2hz]], [[../hth|hth]], [[../log2lin|lin2log, log2lin]] | |||
[[../#Functions|<function list>]] | |||
Line 20: | Line 21: | ||
#cent2 := eval 1200 * ld($#hz / 440) // this is a the same as #cent1 | #cent2 := eval 1200 * ld($#hz / 440) // this is a the same as #cent1 | ||
</pre> | </pre> | ||
Latest revision as of 10:54, 21 April 2011
Convert the elements of x from Hertz to Cent and vice versa.
- Usage
hz2cent(x {, ref {, ofs}})
log2lin(x {, ref {, ofs}})
- x
- a scalar, vector or matrix
- ref
- the reference frequency in Hz; must be a positive number (default=440)
- fac
- a shift value in Cent; must be a number (default=0)
- Result
- The result r has the same type as x and contains the converted elements of x. The following conversion algorithms are used:
- hz2cent: ri,j = 1200 * log2(xi,j / ref) + ofs
fac * log10(xi,j / ref)
- cent2hz: ri,j = ref * 2 ^ ((xi,j - ofs) / 1200)
- See also
- hz2mel, mel2hz, hz2erb, erb2hz, hz2bark, bark2hz, hth, lin2log, log2lin
Example:
#hz := eval vv(100, 200, 440, 880) #cent1 := eval hz2cent($#hz) #cent2 := eval 1200 * ld($#hz / 440) // this is a the same as #cent1