'Visual C++ 6.0으로 구현한 전산물리학'을 보고 Mathematica 6.0의 Play함수로 특정 음의 주파수대로 소리를 만들어 낼 수 있다는 것을 알게되다. 저장을 하면 wav 파일로 만들어 저장을 하는 듯 용량이 상당히 커져있다. 위 함수 2개만을 저장했을 뿐인데 세이브 파일의 용량이 86메가 정도나 되어 있었다.

Play[f, {t, tmin, tmax}]
이 Play 함수는 진폭 f의 사운드를 연주하는데 여기서 f는 단위가 초(sec)인 시간 t의 함수가 된다.
ex) Play[Sin[426 * 2Pi * t], {t, 0, 2.3}]
이렇게 설정하면 2.3초간 426Hz 진동수를 가진 순음(pure tone)을 연주한다.

스테레오 사운드를 내기위해서는
Play[{f1, f2},{t, tmin, tmax}] 형태로 시간 t의 함수를 두 개로 지정하면 된다고 한다.

위 캡쳐한 이미지의 함수들은 책 속에서 에밀레 종소리 효과를 테스트해 본 것.
Play[Sin[168.52*2 Pi*t] + Sin[168.63*2 Pi*t], {t, 0, 9/0.11}, SampleDepth -> 16, SampleRate -> 50000]

시간에 따라 소리가 점점 줄어드는 효과
Play[(9/0.11 - t) (Sin[168.52*2 Pi*t] + Sin[168.63*2 Pi*t]), {t, 0, 9/0.11}, SampleDepth -> 16, SampleRate -> 50000]

14/8/9 토

* 인간은 보통 20~20,000Hz의 소리를 감지 가능하며 88건반 피아노의 기본 진동수는 27.5~4186.01Hz 범위라고 한다.
코끼리는 14Hz 정도의 초저음파(infrasound)로, 박쥐는 종류에따라 3만~10만 Hz이상의 초음파(ultrasound)로 대화를 한다고 한다.
또 CD player의 표준 sample rate는 44,100Hz이고 전화의 경우는 약 8,000Hz(이건 Mathematica 6.0의 기본 sample rate이기도 하다)라고 한다.

* 어쨋건 위의 Mathematica의 Play 함수를 이용하면 이론적으로 초저음파나 초음파도 만들어 들어 볼 수 있는데 30초짜리로 만들어 각각 테스트해 본 결과 내 귀엔 7~14,500 정도가 들린다(높은 주파수쪽은 신뢰가 가지만 10보다 낮은 주파수쪽은 신뢰가 안간다). 하지만 가청 주파수 내의 느낌은 체험해볼 수 있어 좋았다.
아래는 피아노의 가장 낮은 진동수 27.5를 30초간 발하는 예.
Play[Sin[27.5*2 Pi*t], {t, 0, 30}, SampleDepth -> 16,
SampleRate -> 50000]

* 위키백과 초음파 항목