본문으로 바로가기

bonkora 님이 제공해 주신 팁입니다.

 

음악에 쓰이는 음들의 높낮이를 진동수 또는 주파수로 표현할 수 있습니다. 세계적인 표준으로 쓰이는 음이 440Hz의 음이고 이것이 A음인데 다장조에서의 "라"가 되겠습니다. 피아노 건반에서 49번째 건반의 소리입니다. 한 옥타브 높거나 낮은음은 그 음의 진동수의 각각 두 배와 1/2입니다. 즉 440Hz의 A음보다 한 옥타브 낮은 A음은 220Hz이며 또 이것보다 한 옥타브 낮은 A음은 110Hz입니다. 반대로 440Hz의 A음보다 한 옥타브 높은 A음은 440Hz이며 또 이것보다 한 옥타브 높은 A음은 880Hz입니다.

440Hz A음에서 반음씩 올라가는 음들의 진동수를 구하려면 이렇게 합니다.

A = 440
A# = 440 * 2^(1/12)
B = 440 * 2^(2/12)
C = 440 * 2^(3/12)
C# = 440 * 2^(4/12)
D = 440 * 2^(5/12)
D# = 440 * 2^(6/12)
E = 440 * 2^(7/12)
F = 440 * 2^(8/12)
F# = 440 * 2^(9/12)
G = 440 * 2^(10/12)
G# = 440 * 2^(11/12)

 

Tcl/Tk에서 C음의 진동수를 표현해 봅시다.

2^3(2의 세제곱)을 Tcl/Tk에서 pow(2, 3)으로 표현하니까 2^(3/12)는 [expr pow(2, 3/12.0)]로 표현하면 되겠습니다. 3/12.0를 3/12로 하면 안 됩니다. [expr 3/12]는 0이고 [expr 3/12.0]은 0.25이 됩니다. 결론적으로 C음의 진동수는 [expr 440 * pow(2, 3/12.0)]가 되겠습니다.