回答編集履歴

2

意図通りの音を出す方法

2017/05/23 01:16

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -38,4 +38,14 @@
38
38
 
39
39
 
40
40
 
41
+ 逆に、意図通りの周波数変化:`f(t)`となる音を出すには、
41
42
 
43
+ `f(t)`の積分`F(t)`を計算して、
44
+
45
+ `sin(2π*F(t))`とすれば良いことがわかります
46
+
47
+
48
+
49
+
50
+
51
+

1

瞬時周波数の求め方

2017/05/23 01:16

投稿

ozwk
ozwk

スコア13528

test CHANGED
@@ -1,3 +1,41 @@
1
1
  bufを書き出してみました(図は最後の方だけ)
2
2
 
3
3
  ![イメージ説明](d1d8f2300c51cef1382fc2257efc6cf3.png)
4
+
5
+
6
+
7
+ これ見ればわかるように最後の方で周波数が0になります。
8
+
9
+
10
+
11
+ ということは、そもそも根本的に、
12
+
13
+ 質問文にあるようなアルゴリズムで886から443Hzに変化する音は作れません。
14
+
15
+
16
+
17
+ というのも、音の瞬間的な周波数(瞬時周波数)は音の波形が
18
+
19
+ `sin(2π*φ(t))`で表せるとき、
20
+
21
+ `dφ/dt`で表せます。
22
+
23
+
24
+
25
+ 単純に、`sin(2π*f(t)*t)`だから`f(t)`が今の周波数になるわけじゃないです。
26
+
27
+
28
+
29
+ これに基づいて計算すると、
30
+
31
+ 今回の波形の瞬時周波数は
32
+
33
+ `fs + 2*(fe-fs)*t/T`となり、(t=0~T)
34
+
35
+ t=Tのとき
36
+
37
+ 2*fe-f0 = 2*443 - 883 =0となります。
38
+
39
+
40
+
41
+