◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

サウンドプログラミング6 [無断転載禁止]©2ch.net ->画像>4枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1451893339/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2016/01/04(月) 16:42:19.79ID:tGIZuuwU
落ちていたので立てました。
テンプレ等はお願いします。

2デフォルトの名無しさん2016/01/04(月) 22:53:05.31ID:tGIZuuwU
保守

3デフォルトの名無しさん2016/01/04(月) 23:02:02.35ID:tGIZuuwU
音のプログラミング処理について語りましょう

各エフェクタの組み合わせとか、
プログラミング外の話題はDTM板の方がいいよ

サウンドプログラミング5
http://toro.2ch.net/test/read.cgi/tech/1231649001/

サウンドプログラミング4
http://pc11.2ch.net/test/read.cgi/tech/1185340076/

サウンドプログラミング3
http://pc11.2ch.net/test/read.cgi/tech/1145573675/

サウンドプログラミング2
http://pc8.2ch.net/test/read.cgi/tech/1091054082/

サウンドプログラミング
http://pc5.2ch.net/tech/kako/996/996171508.html

4デフォルトの名無しさん2016/01/04(月) 23:02:31.59ID:tGIZuuwU
用語を統一するために

リアルタイム
 バッチ処理の対語で、ゼロレイテンシの事ではない。 
 遅延はあっても途切れずに処理する事をいう

レイテンシ
 ADCからDACまでにかかる時間の事だったり
 DSPの掛け算なんかで命令から実際に答えが出るまでの命令サイクル数の事だったり

DSP
 デジタル・シグナル・プロセッサ の場合は信号処理用のMPUの事
 デジタル信号処理の事を言う場合もある

5デフォルトの名無しさん2016/01/05(火) 14:18:58.64ID:niWMz1PB
SONYのACID MUSIC STUDIOとかいうやつのテンポを変えても音の高さが変わらないのはすごいと思う
ループサウンドを組み合わせるだけで作曲できるソフトなんだが、テンポを変えてもループサウンドの音の高さが変わらない
ループサウンドの本体はただのWAVEファイルっぽい

普通はテンポ変えたら、早送りとかスローみたい音の高さが変わるけど、これは変わらない
しかもアナログに近いレベルに細かくテンポを変えられる
一体どういう処理してるんだろうな

6デフォルトの名無しさん2016/01/06(水) 20:32:53.51ID:MMPvR20N
周波数を増やせばいいだけだろ。
引き伸ばすのではなくバッファだけ増やして
増やした分だけ元のバッファからコピペすればいい。

7デフォルトの名無しさん2016/01/07(木) 00:06:57.65ID:NfZlSfUX
サウンドプログラミングて良くわからんね
検索しづらいし、音声処理じゃダメなの?それとも別物?

8デフォルトの名無しさん2016/01/07(木) 18:18:43.92ID:BoSuoA1l
ノイズ除去ってどうやるの?
MCI使ってWAVEとして録音したデータからノイズを除去したい

9デフォルトの名無しさん2016/01/07(木) 18:33:18.74ID:L2+iZoTe
何をノイズと見なすかによるわ

10デフォルトの名無しさん2016/01/07(木) 18:44:27.00ID:4zN6Nthk
>>8
フーリエ変換してみれば?

11デフォルトの名無しさん2016/01/07(木) 22:31:03.03ID:BoSuoA1l
>>9
サーーーーーーって音

>>10
フーリエ変換か・・・
大学の講義でちょろっと習っただけだがやってみるか
ありがと

12デフォルトの名無しさん2016/01/08(金) 00:43:20.60ID:MhlEWiKz
>>5-6
例えば、4Hzなら、1秒間に波形、abcd と鳴るとき、
テンポを半分にすると、2秒間で、aabb, ccdd と、
1オクターブ低く聞こえる(2Hz)

これを2秒間で、abcd, abcd とすれば、
長さが倍になっても、4Hzのまま

>>8
audacity を使えば?

13デフォルトの名無しさん2016/01/08(金) 19:54:56.30ID:84rpqrkC
例えばabcdが「ド」の音だとすると、abcd abcdにしたら「ドド」と2回聞こえるだろ

それにテンポをそんなにキリのいい数字で変えることなんてないだろ

ハゲ

14デフォルトの名無しさん2016/01/08(金) 21:21:10.11ID:2qKIN/Bt
>>5
VLCも確かそんな感じ
オープンソースだった気がするけど

15デフォルトの名無しさん2016/01/08(金) 21:54:30.41ID:P9uBsjcq
(╯•﹏•╰)

16デフォルトの名無しさん2016/01/09(土) 05:24:24.54ID:vO4x3gWG
( ´・ω) (´・ω・) (╯•﹏•╰) (・ω・`) (ω・` )

17デフォルトの名無しさん2016/01/19(火) 00:19:22.30ID:EktBy1O6
>>12

>>13
もFFTの利用法を全く理解してないwww

18デフォルトの名無しさん2016/01/31(日) 21:40:41.41ID:aSo4g8e8
>>12>>13もFFTじゃなくてTD-PSOLAの話なんじゃないの?

19デフォルトの名無しさん2016/01/31(日) 23:41:29.21ID:ZLsMjOQc
TDでもFDでも等価なことは可能だと思うけど

20デフォルトの名無しさん2016/02/02(火) 21:35:40.17ID:ZYUm9oan
シグナルを周波数成分ごとに分解したい時は通常FFTを用いると思いますが
既成のソフトでは周波数分解能と時間分解能はトレードオフにある物が大半です
周波数分解能も時間分解能も欲しい場合に使えそうなアルゴリズムもしくは
そのような機能を持ったライブラリ的な物はあるのでしょうか?

たとえばレベルの低い「プチッ」みたいなノイズを既成のソフトのFFT機能で
見つけようとしても困難なのでそういうツールを作れないかなと・・・

21デフォルトの名無しさん2016/02/02(火) 23:17:00.38ID:q8O0kAyN
>>20
周波数分解能と時間分解能は原理的に表裏一体じゃないの

22デフォルトの名無しさん2016/02/03(水) 00:10:45.24ID:AcEQWu8q
>>20
ウェーブレット変換は試してみた?
あまり経験はないので突っ込んだことは言えないけど

23デフォルトの名無しさん2016/02/24(水) 11:49:15.53ID:FUMzQXM3
リアルタイムで録音しつつノイズ除去するとやっぱ重い?

パソコンのスペックや録音する周波数、ノイズ除去のやり方によるとかそういう揚げ足取りレスはいらないよ。

24デフォルトの名無しさん2016/02/24(水) 16:38:49.36ID:AqPRgv84
やってみりゃいいじゃん

25デフォルトの名無しさん2016/04/26(火) 13:33:06.42ID:gFZQF6dX
アプリをクロスプラットフォームにするために
OpenALでプログラミングしてるが
仕様がよく分からない部分があって苦戦

どうやら使用中のバッファは削除できない仕様のようだ

26デフォルトの名無しさん2016/05/06(金) 11:02:06.53ID:F9I9mNe6
エイリアスノイズってオーバーサンプリングしてLPF掛けるしかない?
それとも保管してからLPFかけても出来るの?

27デフォルトの名無しさん2016/05/14(土) 19:01:50.83ID:L/fPdwxh
ノイズの周波数が必要な周波数より低ければ取れると思うけど。

「エイリアスノイズ」の意味を取り違っているなんて事はないですよね。

28デフォルトの名無しさん2016/05/14(土) 19:14:22.51ID:Hwp5XNP7
てか>>26が何を言ってるのか分からないから誰もまともに返答できない
既にエイリアスノイズが乗ってる信号をどうにかしたいという話なら
ノイズが必要な帯域外にあることが分かってるならLPFやHPFやBPFでなんとか出来るかもしれないけど

29デフォルトの名無しさん2016/06/09(木) 23:21:56.54ID:+j1QhZSt
ものすごく初歩的で原始的な質問ですが、
2つのPCMデータ(A,B)をミックスして1つのPCMデータ(C)にするとき
上限下限を超えないように処理するには、平均を取ればいいのですか?
それだと、PCMデータ(C)を鳴らしたときに聞こえるPCMデータ(A)の音は
PCMデータ(A)を単体で鳴らしたときの半分の音量になってしまわないでしょうか?

PCMデータ(B)が仮にほぼ無音に近いものだったとしたら、ミックスすることで音量が半分になるのはおかしくないでしょうか?

30デフォルトの名無しさん2016/06/10(金) 06:49:34.58ID:PYBtF1oj
>>29
そんなあなたに飽和演算

31292016/06/10(金) 17:15:26.70ID:FV+uLdyC
>>30
レスありがとうございます
実際のところ、一音毎にサンプリングされたピアノの音(88個)をシーケンス情報を元にミックスしてPCMデータ化したいと思っています。
一音一音の振幅の最大は70%くらいなので、数音混ぜるだけでかなり頻繁に飽和が発生し、時には100%張り付きの状態が発生し、とても聴くに堪えない音になりそうです。

二つあるいは複数の音を混ぜるという単純な処理でも、コンプレッションの概念が必要になってくるものなのでしょうか?
または、サンプリングの時点でレベルをかなり抑え目にしておいて、上限を超える頻度が常識的な演奏であれば少なくなるようにバランスを取ることで妥協するのでしょうか?
もっと何か根本的に間違っているのでしょうか?

32デフォルトの名無しさん2016/06/11(土) 01:50:49.55ID:rinLhlP/
>>29
複数の音を混ぜるだけなら普通に加算と飽和処理でいいと思うよ。

ピアノのサンプルは大きい音で録音しておいて、ミックスするときに
1音あたりの音量を下げる。

1音あたりの振幅はもっとも大きい音(MIDIだとVelocityが127)でも
最大の8~10%程度にしてみたらどうかな?

ピアノだったらもっとも音量の大きい弾いた瞬間が10音以上重なることはまずないから
飽和することはほとんどないと思う。

33デフォルトの名無しさん2016/06/11(土) 09:18:18.43ID:O5aQLJa2
飽和演算って単にクリップさせるって事?

34デフォルトの名無しさん2016/06/11(土) 14:09:25.26ID:rinLhlP/
クリッピングでいいよ。
この場合はオーバーフローを起こさないように処理するだけ

35292016/06/13(月) 16:54:19.77ID:ZZeoKTcg
>>32
なるほど具体的な回答ありがとうございます。
最大10音重なる想定であれば一つあたりは10%程度にするものなんですね。
なんとなくリアルのピアノでの一音と同じ強さで弾いた10音が10倍の音量になっているようには聞こえないかなと思ったのと、
かと言って10音で弾いた内の1音が、単音の場合より小さく聞こえるわけでもない気がするので、
音が混ざるとはどういう現象なのかわからなくなった次第です。

36322016/06/13(月) 19:54:39.26ID:38WIORgK
そのへんは振幅と音量(音圧レベル)の関係あたりを調べるとわかってくると思う。

37デフォルトの名無しさん2016/06/13(月) 23:11:37.02ID:rW97iPBZ
>>34
そうですか。
単なるクリッピング処理の事に飽和演算なんていう専門用語があったのが驚いた。

38322016/06/14(火) 00:15:55.01ID:uA7OoyVz
厳密にはクリッピングと飽和演算は違うけどね

39デフォルトの名無しさん2016/08/01(月) 05:10:24.95ID:jWRnEQcA
CPUで32倍以上のオーバーサンプリング処理するとむちゃくちゃ重いんですが、
CUDAでやったら劇的に軽くなったりしますか?

40デフォルトの名無しさん2016/08/01(月) 07:48:00.50ID:U+4K15gc
「CPUでオーバーサンプリング処理」が意味不明
アップサンプリングのことか?

41デフォルトの名無しさん2016/08/01(月) 10:48:47.69ID:cs1OuQE6
オーバーサンプリングはオーバーサンプリングかと

42デフォルトの名無しさん2016/08/01(月) 13:14:44.35ID:U+4K15gc
だから意味不明なんだが
どうやって「CPUで」オーバーサンプリングするんだよ?

43デフォルトの名無しさん2016/08/01(月) 17:48:50.43ID:rWrTk7Bw
(´・ω・`)なんなのこの人…?

44デフォルトの名無しさん2016/08/01(月) 18:01:08.66ID:U+4K15gc
はあ?
「CPUでオーバーサンプリング」の具体的な意味を少しは言ってみろよ
キモイ顔文字野郎

45デフォルトの名無しさん2016/08/01(月) 18:06:35.35ID:rWrTk7Bw
(´・ω・`)煽っても何も出ませんよ。

46デフォルトの名無しさん2016/08/01(月) 18:09:54.48ID:U+4K15gc
はいはいオーバーサンプリングの意味すら知らないということは良く分かったよ
もったいぶることしかできないクズ野郎

47デフォルトの名無しさん2016/08/01(月) 18:14:29.10ID:ijiGYH3A
答えもしないくせに他人のこと暴言吐くことしかしない変な奴w
しかも元の質問者そっちのけ

48デフォルトの名無しさん2016/08/01(月) 19:35:55.91ID:U+4K15gc
何言ってるんだこの糞ボケ
答えもしないで因縁だけ付けてるのはお前だよ
俺は「CPUでオーバーサンプリング」の意味を確かめてるだけだよ
それがはっきりしないと答えようもないからね

49デフォルトの名無しさん2016/08/02(火) 02:53:26.43ID:zIQElDG0
厳密な意味を求めるのもわかるけど、相手のレベルが分からない以上
質問の内容をある程度の推測も必要だと思う。

それはさておき…

音声処理に詳しくないから一般的なところだけど、
「むちゃくちゃ重い」の原因は何だろう?どんなアルゴリズムなんだろう?
って思った。

50デフォルトの名無しさん2016/08/02(火) 06:12:57.17ID:l2W1ufxp
むちゃくちゃ重い、が何と比較して重いのかも全く分からない

51392016/08/02(火) 07:39:11.14ID:DaHE/ld1
本当に申し訳ないのですがそのままの意味です
GPGPU・FPGAの音声処理に詳しい方もいらっしゃらないようですので以後スルーでお願いします<m(__)m>

52デフォルトの名無しさん2016/08/02(火) 09:32:11.13ID:Xrtvt7f9
あらあら
で結局アップサンプリングのことなんだろ?
マルチレートフィルタをちゃんと勉強しないと何でやろうがダメだろうな

53デフォルトの名無しさん2016/08/02(火) 13:09:49.59ID:/H52nZHS
どうせフィルタの効率的な作り方なんて全く知らなくて
大きな係数のフィルタを古い教科書通りの時間領域の積和処理で作ってるとかだろ
この手の処理がFPGAで早くなるなんてことはないし、GPGPUでも一緒
殆どメモリアクセスがネックなんだから

54デフォルトの名無しさん2016/08/03(水) 23:11:07.31ID:H9sZl6IJ
>>44
いやサンプリング済みのデータに対してCPUでオーバーサンプリングすることは可能だが
その場合の意味はアップサンプリングの前段処理に他ならない

55デフォルトの名無しさん2016/08/04(木) 10:31:39.10ID:hTDvIGUA
後付の言い訳とかいいから

56デフォルトの名無しさん2016/08/05(金) 08:00:57.94ID:aDEaTjVr
言い訳も何もこのスレで初レスだけどね…。

57デフォルトの名無しさん2016/08/05(金) 08:12:28.94ID:9GrcbVCu
>>54
輪をかけて意味不明なこと言ってどうする?

「サンプリング済みのデータに対してCPUで」

それは「アップサンプリング」「補間」とかもっと一般的には「サンプリング周波数変換(N/M)」と呼ばれるものだから。
オーバーサンプリングというのはな、ADCやDACについて言われることで、
サンプリング周波数を、扱う信号の最高周波数×2より高くすることだ。
特別なことがない限りCPUで行うものではない。

58デフォルトの名無しさん2016/08/05(金) 11:44:44.32ID:Po0F8W8G
アナログフィルターって無限まで周波数があるし
デジタルがいくらオーバーサンプリングしてもかてるわけないしな

59デフォルトの名無しさん2016/08/05(金) 12:19:55.79ID:jqFTRyEe
オッサン世代の俺は、ソフトシンセの進化の物凄さに、
卒倒する思いだわw

60デフォルトの名無しさん2016/08/05(金) 13:22:37.14ID:Po0F8W8G
CPUの処理速度が代わってないのに進化する訳ないじゃん。
逆に耳が慣れたんだと思うな。

61デフォルトの名無しさん2016/08/05(金) 14:53:12.32ID:jqFTRyEe
いや。大昔、PCMからFM音源に移行した際、感動したくらいの
オッサン年齢だからね。

62デフォルトの名無しさん2016/08/06(土) 00:41:22.59ID:24x7Voe3
リアルタイムのシンセシスやウェーブシェーピングは10年前くらいと処理速度ほとんどかわんないね
ムーアの法則なにそれおいしいのって感じ

63デフォルトの名無しさん2016/08/06(土) 03:05:57.47ID:J71d/99Z
なんちゃってリズムマシンをプログラミング中
割と楽しいっす

64デフォルトの名無しさん2016/08/06(土) 12:29:20.31ID:vEbnH48e
おつおつ

65デフォルトの名無しさん2016/09/20(火) 00:06:26.14ID:8JrnwUlq
サウンド処理によく使われるファンクションを詰め合わせたライブラリってありませんか?
グラフィック処理で言えばImageMagickやOpenCVみたいなものです
出来れば日本語の情報が充実していると助かります

単純な加減乗除ならともかくFFT変換やWavelet変換などの周波数分解/合成を伴う処理を
実用になるレベルでコーディングするのは自分には荷が重いです

というかAudacityのNyquistで実現できないかと調べていたのですが複数のトラックの情報を
元に処理して出力を得る方法が見つけられず、他のDAWアプリケーションにもそのような処理が
出来るような物はないようで、自分で作るしかなさそうです・・・

66デフォルトの名無しさん2016/09/20(火) 05:13:01.62ID:BpKeAQLu
SuperCollider, Pure Data, Chuck, Csound の話題はスレ違い?

67デフォルトの名無しさん2016/11/02(水) 21:32:00.39ID:Q6Jz9mnm
アップサンプリングに関してですが
直線位相FIRのインターポーレーションフィルタをかける場合
適切なタップ長と窓関数が纏まっているページはありませんか?
もしくはもっと技巧を凝らさないと
元波形と完全に一致するレベルにはならない、とか、何かあります?
今のところ128倍とか、高いアップサンプリングは割と精度が出るんですが
むしろ、4倍とかそこいらの低めのアップサンプリングで精度が出なくて困っています

68デフォルトの名無しさん2016/11/04(金) 00:52:23.99ID:F3Z+9apm
「適切な」とは何かわからないけど
とにかく理想的になればいいというのであれば、可能な限りタップ長を長くすればいい
ただしビット深度もそれなりに高くないと意味がなくなる
まずそれがうまくいってないなら、どこかに間違いがあるか、うまく計算できていない箇所がある
タップ長が限られるなら窓関数によって主に、フィルタの切れ味とストップバンドの低さのトレードオフになる
そもそも直線位相だからと言って波形が全く一致することになるわけではない
(完全に一致するということは、折り返し成分も再現されたようなもの、これもどの程度のことを言ってるのかわからないけど)

69デフォルトの名無しさん2016/11/04(金) 21:06:59.71ID:0Q9lLkWk
返信ありがとう
今のところ完璧といってよいぐらいの精度、(24bitの分解能以下の誤差)は出てるんですが
なぜか音は悪いです
テストの方法は、適当な波形を用意して、それを間引いて
(というか間引きたいところをゼロにして)
それにインターポーレーションをかけて得られた結果を
元の波形と比べてどれぐらい一致しているかを判断しています
このテストではかなりうまくいっているのに
実際の音楽をアップサンプリングするとあまり音がよくなくて困っています
タップ長は2倍のアップサンプリングでしたら33タップです
アップサンプリングの倍率*8*2+1、で計算しています
窓関数は160dBのカイザー窓です
いろいろ試したらこれが一番精度が良さげだったのでそうしています

70デフォルトの名無しさん2016/11/05(土) 00:15:25.05ID:R7F8CRTQ
アップサンプリングで補間されたとこは元データに存在しないと思うけど、
誤差がほとんどないってのはそこを除いた部分に関してだよね?
そうなら、聞いた感じが違うのはあり得るんじゃない?

71デフォルトの名無しさん2016/11/05(土) 00:21:14.17ID:BZMicsTd
>>69
まず33タップはオーディオ信号処理としては短いと思いますよ(遅延があると困る場合は仕方ないけど)
sinc関数のどこ(の振幅レベル)で切られることになるか確認してみましょう
それに-160dBまで押さえ込もうとしているんだとしたら相当緩いフィルタになってると思いますよ
出来上がった33タップの係数から周波数特性を確認してみましょう
かなりカットオフ周波数を下げないと折り返しが漏れまくりだと思います
(z関数の式で確認すればビット深度の影響を除外できます)
それに24bitは144dBしかDレンジないですよ(floatingだったとしても)
カイザーのβを欲張りすぎだと思います
窓関数の端の方がほとんど0になってませんか?(floatでもあまりに小さい値になってると積和する時に捨てられることになります)

72デフォルトの名無しさん2016/11/05(土) 13:14:51.80ID:2MWiQK2J
>>70
いえいえ、誤差がほとんどないというのは
適当な信号を間引いてダウンサンプリングして
もう一度アップサンプリングしたものと
もともとの波形を比べると、ほぼ差が出ないという意味です

>>71
計算自体はdoubleでやってまして
24bitの分解能以下の誤差、と言いましたのは
最終的なデバイスへの出力が24bitになるので
その分解能以下の誤差であれば問題なかろう、という意味でした

73702016/11/05(土) 14:13:45.73ID:R7F8CRTQ
>>72
ダウンサンプル前のデータに含まれる周波数は、
ダウンサンプリング後のナイキスト周波数以下のみだよね?
そうなら、
>>71の言うようにフィルタが甘くて、
アップサンプリング時のゼロ埋めで生じた高周波を適切にカットできてないぐらいしか思い付かないな。

74デフォルトの名無しさん2016/11/06(日) 23:16:02.95ID:ikdeb1q2
質問者ですが、良い情報を見つけました

>http://ascii.jp/elem/000/001/130/1130242/
>「普通のDAC ICは100タップで、8倍か16倍のオーバーサンプリング」

ということらしいので、私がテストを繰り返して適当に求めた
「アップサンプリングの倍率*8*2+1」
という適当な数式は割と妥当みたいです
あとは160dBという窓関数がきつすぎるとか、そういうのはありそうです
でもテストすると、計算上は160dBが一番精度が良いんですよねぇ
なぜ音が悪くなるのかは結局謎でして
もうちょっといろいろ試してみたいと思います

75デフォルトの名無しさん2016/11/06(日) 23:34:58.13ID:ikdeb1q2
あと、あり得るとしたら
「アップサンプリングの倍率*8*2+1」で計算したタップ数は
一般的なDACが内部で行っているアップサンプリングとくらべて
ちょっとタップ数が多い、のかもしれませぬ
そのため、カイザー窓を深く(160dB)かけたときに精度が高まっているのかも
なのでタップ数を減らして窓関数を浅くする実験もしてみないとダメかもしれません
どうせ最終的な出力は24bitなので、必要以上の精度は要らないですし
タップ数が増えることでプリエコーも増えるので
この辺が音質に関係している可能性もあるかもです

76デフォルトの名無しさん2016/11/06(日) 23:35:27.87ID:8dEjC33a
>>74
たぶんタップ数とフィルタの時間長を混同してらっしゃるかと・・・
それに今時は100でも少ない方かと・・・
DAC ICではさらにその後の処理もあります
精度の出し方が怪しいと思います・・・
カットオフ周波数の話が出てこないのも怪しいです・・・

77デフォルトの名無しさん2016/11/07(月) 00:51:58.38ID:gjKa+m+C
>>75

>一般的なDACが内部で行っているアップサンプリングとくらべてちょっとタップ数が多い、のかもしれませぬ
逆です

>そのため、カイザー窓を深く(160dB)かけたときに精度が高まっているのかも
逆です

>どうせ最終的な出力は24bitなので、必要以上の精度は要らないですし
正論です

>タップ数が増えることでプリエコーも増えるので
あまり関係ないです
(でかい波は中央付近にいるので)
そのプリエコーでも特性が作られていることを忘れずに
気になるなら最小位相など他のタイプへ
(もっとタップ長が必要になるが)

78デフォルトの名無しさん2016/11/07(月) 16:49:46.48ID:iTWgrf69
>>65
numpy

79デフォルトの名無しさん2016/12/30(金) 07:56:19.32ID:9ZWcVCUC
soxのRMS pk dbってなんのこと?

80デフォルトの名無しさん2017/01/09(月) 13:04:41.65ID:dXL2ousU
ノイズシェーピングについてどなたか教えて下さい。
以下は3次のノイズシェーピングを行っているつもりです。
http://ameblo.jp/etsuo-okuda/image-10477341542-10444025802.html
を参考にしました。
考え方は正しいでしょうか?出力結果は高域になるにつれて周波数成分が増えています。
また、これ以上に次数を増やしたいのですが、★の行をどのように変更すべきでしょうか?

Visual Basic 2015

Class Test
Private Diff(2) As Int64

Function To24_NoiseShaping(ByVal V As Int64) As Integer
Dim I24 As Integer
V += Diff(0) * 3 - Diff(1) * 3 + Diff(2) '★
I24 = V >> 40
Diff(2) = Diff(1)
Diff(1) = Diff(0)
Diff(0) = V - (CLng(I24) << 40)
Return I24
End Function

End Class

81デフォルトの名無しさん2017/01/09(月) 13:52:09.64ID:dXL2ousU
>>80
の訂正です。
×以下は3次のノイズシェーピングを行っているつもりです。
○以下のコードは3次のノイズシェーピングを行っているつもりです。

「以下」がリンク先を表しているように読めてしまうので訂正いたします。

82デフォルトの名無しさん2017/01/09(月) 15:52:37.55ID:4OeNzyzM
今日は朝からBraunのシェーバーのCMばかりでうざいと思ったら
9日でシリーズ9の販促特異日のようだ

83デフォルトの名無しさん2017/01/11(水) 22:07:19.53ID:y9BWQSfZ
サンプリングレート変換に使える良いライブラリが無いかと探していたら
Secret Rabbit Codeと言うのがあるのを知り有難く使わせてもらうことにした
http://www.mega-nerd.com/SRC/index.html

昔はGPLと商用ライセンスだけだったが
2016年からは2条項BSDライセンスで使えるようになった模様

84デフォルトの名無しさん2017/01/16(月) 01:39:11.07ID:dN6E9Awb
みんな自分の作ったプログラムの動作確認ってどういう風にしてる?
サウンドプログラミング興味あるんだけど、デスクトップ上で作ったプログラム
動かしてみたい
最終的にはマイコンに移植して使うからC++で書くことを前提としてる。
VSTiがいいかなと思ったけど、GUI作るのがめんどくさそうなんだよね

85デフォルトの名無しさん2017/01/16(月) 10:15:00.09ID:B3SVn18v
GUIは最低限にしてMIDIでいいと思うよ

86デフォルトの名無しさん2017/01/16(月) 17:50:01.44ID:YH2Bx58z
>>84
VSTiってGUIいらんやん

87デフォルトの名無しさん2017/02/11(土) 17:45:36.80ID:gpet/1oM
音の処理そのものに関することではなくメタデータに関する質問なのですが・・・
タイアップ曲があったとしてそのタグにOPとかEDとか挿入歌(1バイト文字表記でどのように書くのが適当なのか不明)などの
使用箇所を入れたいのですがこのフィールドのキーの名前として標準的な物はありますか?
いまのところVorbisCommentとAPEv2での使用を考えています

88デフォルトの名無しさん2017/02/20(月) 06:58:18.93ID:rQJDVb7o
ネタ投下。
http://ideone.com/j8JajR
https://en.wikipedia.org/wiki/Frequency_modulation_synthesis#Spectral_analysis
暇だったのでパルスジェネレータをガリガリ書いたのだけど、FMに興味が出たので書いたのだ。
んで、うまくできてるのかさっぱりわからんのでアドバイスクレクレ。
ほんと、自分が今何を操作してるのかさっぱりわからんのでたすけてくだしあ。
ちなみに数学はわからん・・・。Orz

89デフォルトの名無しさん2017/02/20(月) 19:31:36.21ID:06bh9ViU
YAMAHAのFM音源か

90デフォルトの名無しさん2017/02/20(月) 20:05:13.47ID:rQJDVb7o
>>89
うまく行ったら革つけてシンセ作りたいとか言う妄想。
でも、能力なさ過ぎてマジで何やってるのかさっぱりわからん。

91デフォルトの名無しさん2017/02/25(土) 02:21:37.25ID:c0FaT5tJ
サンプルサイズ8bitってファミコン音のイメージしか無かったけど
実際16bitの音楽ファイルを8bitに落としてみたら以外に聴ける音だね
これで安心して8bitで出力するプログラムが書けるよ

92デフォルトの名無しさん2017/02/25(土) 07:49:20.66ID:5vG+07Yi
デサンプラーの性能とかあるからね。
ファミコンは、絵とかプログラムとかまるっと揃ってあの形だから音に割けるリソースは少ない。
時代も時代だから、品質も微妙だし。

93デフォルトの名無しさん2017/02/25(土) 07:50:59.30ID:5vG+07Yi
ところでお前ら、>>88については意見をくれないのかね。
マジで何やってるのかわからないから開発止まってる。

94デフォルトの名無しさん2017/02/25(土) 15:14:36.80ID:bgXYGTV/
何がわからんのか分からん

95デフォルトの名無しさん2017/02/25(土) 16:47:30.99ID:5vG+07Yi
それもそうだな。
自分でコーディングしといてあれだが、以下のパラメータの意味がよくわかってない。
A*Fun1(InitA*Time + B*Fun2(InitB*Time));
勝手に推論してそんなもんだろうと思ってるけど、あってる気がしない。
たすけて、プリーズ。

96デフォルトの名無しさん2017/02/25(土) 18:55:49.59ID:usTDxsWv
FM変調って自分で書いとるやないけ

97デフォルトの名無しさん2017/02/25(土) 23:45:17.22ID:5vG+07Yi
>>96
そうなんだけど、どのパラメータいじったらどういう効果かわかってないというか。
取り留めなくてすまない。

98デフォルトの名無しさん2017/02/26(日) 12:50:47.37ID:CFwwLXTd
圧倒的に数学力が足りてないな

99デフォルトの名無しさん2017/02/26(日) 12:51:50.57ID:8Nx+2biY
x 圧倒的
o 絶望的

100デフォルトの名無しさん2017/02/26(日) 13:35:15.33ID:EmosrxO4
Yes!!Yes!!Yes!!Yes!!Yes!!Orz

101デフォルトの名無しさん2017/02/26(日) 16:36:21.13ID:bOlrkHOh
無視でいんじゃね?

102デフォルトの名無しさん2017/02/26(日) 20:14:42.52ID:AwCMlr+d
間違ってこのスレ開いたら,>>88にコードがおいてあるじゃないか
雑談が多い板でそれなりのコードがおいてあるスレって珍しいな。
>>88
なにをやっているかわからないのにコードを書けるってすごいな
俺もコードは読めるが、何をしているんだ?って感じだが

103デフォルトの名無しさん2017/02/26(日) 22:55:42.76ID:EmosrxO4
>>102
識者現る。
最初は、パルスジェネレータ書こうと思ってパルスジェネレータ書いて、
FMのDTM版開いたらなんかウィキペディアのリンク張ってあるからパクるつもりで書いた。
数式を推論でコードに落としただけだから。しかし、俺には高度すぎた。そもそも文系だしな。
違和感があるならぜひ教えてほしい。

104デフォルトの名無しさん2017/02/26(日) 22:57:13.60ID:EmosrxO4
DTM板のFMスレか。

105デフォルトの名無しさん2017/02/27(月) 12:44:49.44ID:8fV4SlqM
コード書けるひとを見つけたとき

自分もそうなりたい ← がんがれ
どうやったらそうなれるの? ← 金払え
自分には無理 ← さっさとやめれば?

このパターンしかない

106デフォルトの名無しさん2017/02/28(火) 01:07:19.89ID:4ZSOFvuS
プログラムコピペして、何これ意味わからん、一から教えれと言われてもムリですマル

107デフォルトの名無しさん2017/02/28(火) 01:31:24.98ID:xXWB9Gkv
もうおっさん特有の雑談になっているな

108デフォルトの名無しさん2017/02/28(火) 07:06:48.96ID:GXCD2ArE
>>88だけど、叩きネタになってきたからもういいよ。
開発やめるわ。

109デフォルトの名無しさん2017/02/28(火) 12:01:58.90ID:4MppRDf5
FM変調なんて出る音は想像しにくいけどアルゴリズムは超シンプル
何がわからないのかわからないし
他人にタダでプログラム読ませてレビューさせようとする態度じゃ開発やめた方がいいよ

110デフォルトの名無しさん2017/04/12(水) 08:11:26.25ID:/jqIJjt6
自分のメモも含めて
離散フーリエ変換(DFT/FFT)や離散ウェーブレット変換(DWT)を実装したいけどググっても
数式が列挙されているような記事ばかりで高卒の自分にはさっぱり判らん
出来れば時間情報を残したいので最終的にはDWTの実装が目標
数式がずらずらより抽象化された資料や最低限の実装例が欲しいけどなかなか見つからない

DFT/FFT
 理論からのアプローチ
  小学生に教えるフーリエ変換 - researchmap
  http://researchmap.jp/jow16lae8-617/
  見つけられた中では最も抽象化されている資料。ただし抽象的すぎるのか装に結びつけられん・・・

  PIC AVR 工作室 FFTの計算と複素数の入門
  http://picavr.uunyan.com/warehouse_fft.html
  高校生相当に抽象化されているもよう。が、ベクトルの合成・分解は今までにやった記憶があるけど
  ベクトルの内積とか複素数とか全く記憶にない・・・多分必須しか取っていないせいだな
  でもこれを理解出来ればFFTを実装できそうな気はする。積分式?がずらずらよりは遙かに良い

 実装からのアプローチ
  FFTの扱い方 - ロジカルアーツ研究所
  http://www.logical-arts.jp/?p=112
  FFTライブラリの入出力について解説されている記事。これを読めば何となく使えそうな感じ

  Ruby で FFT (高速フーリエ変換) を書いてみた - まめめも
  http://d.hatena.ne.jp/ku-ma-me/20111124/p1
  Ruby的な書き方をしている上に再帰呼び出しをしているとはいえ驚異的に短い。これ、あっているのか?
  正しいなら理解を助ける一助になりそう(自分はRubyメインだし)
  参考元のコードも比較的コンパクトに書かれている
DWT
 めぼしい資料は未発見
窓関数
 未着手

111デフォルトの名無しさん2017/04/12(水) 11:15:28.08ID:mJY6Dj4I
高卒には無理

112デフォルトの名無しさん2017/04/12(水) 13:02:36.08ID:9SHPN4Bm
フーリエ変換後にやりたいことに合わせて処理を簡略化するんだよ
律儀にやる必要はない

113デフォルトの名無しさん2017/04/16(日) 10:39:42.71ID:EW1HZm+Z
flacフォーマットの質問をしたいんだけど、スレチなら誘導してくれ。

https://xiph.org/flac/format.html
https://xiph.org/flac/api/index.html
ここらを見て構造を調べてるんだけど、いまいち分からん。

METADATA_BLOCK の APPLICATION と CUESHEET および PADDING は、
ひとつのflacファイルに複数あっても良いのだろうか、それとも、
あるなら1個のみだろうか。

というのも、他のブロックはドキュメントに明確に数が示されている。

・STREAMINFO 必ず1個
・SEEKTABLE 0個か1個
・VORBIS_COMMENT 0個か1個
・PICTURE 0個以上

しかし、先の3つのブロックについては明記されていない。
何となく CUESHEET は役割的にあるなら1個のみのような気がするが・・・

どうなんだろ?

114デフォルトの名無しさん2017/04/16(日) 12:14:49.10ID:In2SIYB2
>>113
一般的な回答になっちゃうけどそれらの親はMETADATA_BLOCK_DATAだよね
METADATA_BLOCK_DATAの存在可能個数に依存するんじゃないかな

あと明記されていない以上どう扱うかは“実装による”と言うオチが付きそうな気がしなくもない
タグだって標準的ではない情報を入れようと思ったらそれっぽい名前のフィールドをでっち上げるしかないわけだし

115デフォルトの名無しさん2017/04/16(日) 16:24:37.74ID:EW1HZm+Z
>>114
ありがと。

メタデータの個数は、ドキュメントには

STREAM
 <32> マーカー
 METADATA_BLOCK ストリームインフォのため
 METADATA_BLOCK* その他のメタデータのため
 FRAME+

としか書かれていないから、これに従えば上限は無い。
いくらでも加えられる事になる。

もしかして俺がドキュメントや API を見落としているかもと思ってたから、
実装によることが確かなら、それでいいんだ。

俺が作ったライターが書き出したflacファイルを他人が作ったリーダーで読み込んだ時、
たとえば PADDING が複数あっても、実装依存なら、それをリーダーにどう扱われようが、
少なくともエラーにはならない(解釈しないメタデータは無視するのが仕様)。

でもドキュメントや API から、それは「複数あってはダメ」なことが仕様だと読み取れるのなら、
厳密に正しく作られたリーダーにflacファイルではないと解釈されてしまう。
俺が作ったライターは仕様に則っていない糞プログラムといことになる。

それは避けたい(まぁ実際に PADDING を複数作ることは無いが、例として挙げた)。

116デフォルトの名無しさん2017/04/16(日) 16:51:04.55ID:ju5nlg6N
何をしたいのかわからんけど

APPLICATION:サードパーティーアプリに対し付与される保証ID
CUESHEET:内部埋め込みキューシート
PADDING:余白

てあるから、必須ではないと思うけど

117デフォルトの名無しさん2017/04/16(日) 17:37:44.94ID:EW1HZm+Z
>>116
仕様としては、それらが0個以上あることが許されているのか、
多くても1個までなのか、が知りたかった。

で、一般論としては、ドキュメントに明記されてなきゃ実装依存だろ、
とのアドバイスをもらったたころ。

118デフォルトの名無しさん2017/04/16(日) 18:03:49.99ID:In2SIYB2
>>115
結局何を優先したいのかが重要じゃないかな?仕様に忠実だからといって最大の互換性を得られるとは限らない
仕様上は問題ないけどイレギュラーな構造や値の入ったデータはそれだけで互換性の問題を起こしやすいよね
互換性最大だったら公式ツールが吐くデータに添うのが現実的では。一般的にそれらは1ファイルに付き1つだよな?

119デフォルトの名無しさん2017/04/16(日) 21:37:58.52ID:EW1HZm+Z
>>118
何を優先したいかじゃなくて、まずは仕様を正しく知りたい。

正しく知った上で、じゃあ互換性を優先しようかどうかと考えるんだけど、
それは仕様を知ることとは別問題でしょ。
互換性を優先するのが目的ならば仕様を正しく知る必要はない、
なんてことは無いと思うんだよ。

120デフォルトの名無しさん2017/04/18(火) 11:50:35.72ID:Uw8XacGP
正論

121デフォルトの名無しさん2017/04/18(火) 14:09:20.20ID:ifAI+Jaz
光進丸よ~

122デフォルトの名無しさん2017/04/19(水) 01:39:25.62ID:AQSUwIhN
トライアンドエラーとか嫌いそうなタイプ

123デフォルトの名無しさん2017/04/24(月) 22:50:33.16ID:5SkK+wN+
仕様がないと困る人はRubyとか使えないんだろうなぁ。Rubyは仕様が存在しない言語だしな

124デフォルトの名無しさん2017/04/25(火) 16:10:57.15ID:Bsh0wUsM
source嫁

125デフォルトの名無しさん2017/04/26(水) 19:53:26.36ID:N3EoiivC
PCMデータから特定の音(倍音も含む)のみを抽出・抑制したいのでPCMデータとパラメータ(周波数とゲインのセットが多数)を
入力するとパターンに従ってPCMデータを加工してくれるEQライブラリ的なのってありませんかね?
パラメータは処理中に変化していくため既成のソフトウェアでは対応できそうにないので自作を考えています

パラメータの与え型は
http://alphamanual.audacityteam.org/man/Equalization
みたいな感じをイメージしています。倍音を抽出する場合は方形波状に沢山窓を並べることになると思います

126デフォルトの名無しさん2017/04/27(木) 02:26:58.97ID:4f2PttoG
DFTで特定の周波数だけ計算してしまえばいい。

位相も一緒に計算しておいて逆位相を加えれば消えてくれる

1271252017/04/27(木) 20:58:20.62ID:dgH+5qJ3
>>126
スマン、何を言いたいのか判らん
DFTというかFFTして該当周波数だけ取り出して、位相を180度回転したものをIFFTして加算合成ってこと?

128デフォルトの名無しさん2017/04/28(金) 01:05:35.25ID:u8tMeTx0
FFTやらない
特定の周波数だけDFT計算する

1291252017/04/28(金) 07:58:24.02ID:E80Nlt1P
今は自作のフィードバック型コムフィルターで実験していますが、強く掛けようとすると通過する帯域が狭くなるためか
ケロってしまうので通過させる帯域を調整出来るようにしたいです

>>128
DFTって時間&振幅を周波数&振幅&位相に変換する処理だよね?特定の周波数だけDFTってどういう事?

130デフォルトの名無しさん2017/04/28(金) 09:02:15.09ID:lxwDN9Ce
横からだけど特定の周波数だけのDFTってこういうやつのこと言ってるだけだと思うが
https://software.intel.com/en-us/node/502328

131デフォルトの名無しさん2017/04/29(土) 16:31:29.75ID:cjUk9ycm
DTFなんて持ち出さなくてもIIRで作ったLPF/HPF/BPFなどを組み合わせるのではダメなのか?
一般的にその手のアプリケーションに搭載されているエフェクターってそうやって作られていたような

1321252017/05/03(水) 16:41:17.69ID:RzE6nrtc
DFTがらみは良く判らないので
http://vstcpp.wpblog.jp/?page_id=523
を参考にBFPを組んで実験

同じホワイトノイズに対して通過させる目標の周波数を440Hzとして処理した結果
サウンドプログラミング6 [無断転載禁止]©2ch.net	->画像>4枚
上から自作BPF、自作CombFilter(freedback型)、AudacityのEQ
自作BPFのスペクトル サウンドプログラミング6 [無断転載禁止]©2ch.net	->画像>4枚
自作CombFilterのスペクトル サウンドプログラミング6 [無断転載禁止]©2ch.net	->画像>4枚
AudacityのEQのスペクトル サウンドプログラミング6 [無断転載禁止]©2ch.net	->画像>4枚
 EQに与えたパラメータ サウンドプログラミング6 [無断転載禁止]©2ch.net	->画像>4枚

自作BPF
 通過させる窓は基準周波数から16KHz未満まで用意
 通過特性がフラットでない。簡単に補正しているけど十分ではない。減衰し切れていない信号まで加算してしまっているため?
 通過させる窓1つに付きBPFを1つ用意して出力値を加算しているためクソ重い(440HzだとBPFは30個以上になる)
自作BPFと自作CombFilterの課題
 通過させる帯域と広くしようとすると谷を深くできない
AudacityのEQ
 通過させる窓は基準周波数から16KHz未満まで用意
 与えたパラメータほどの特性は得られていないけどスペクトルを見た感じでは良さそう
 パラメータを動的に変更できない

BPFを沢山使う方法は特性がイマイチな割に重いので筋が良くなさそう
CombFilterで谷を深くしたまま通過帯域を広くできれば軽いし一番良さそうだけどそんなことは不可能か?
AudacityのEQ的なフィルターを作れればいいけど作り方が判らない

うーむ、手詰まりか・・・

>>130
ググっても使用例とか全然出てこないので良く判らないんだけど
FFTは取り得る全ての周波数について計算するけど、その中の一部の周波数だけ計算するって話?

133デフォルトの名無しさん2017/05/03(水) 20:04:27.68ID:qGc238z1
>>129
一部だけ計算するという理解でOK
DFTもFFTも波形の周波数特性(振幅+位相)が得られる。

DFTフーリエ変換の定義式どうり計算するだけ

あとはサンプリング分解能(サンプリング周波数÷サンプリング数)を上手く選べば所望の値が精度よく得られる

1341252017/05/04(木) 14:56:15.76ID:FfjpCVh7
>>133
少しイメージできた、ありがとう。DFTを使って一部を抜き出すとしたら目標とする周波数の付近のみ
DFT結果に相当する波形を生成しそれらを合成するという手順でいいのかな?

ただしDFTだとどうであれある程度の時間分を計算をする必要がありますよね
原理的に周波数分解能と時間分解能の両立はできないと思っているのですが何か改善策はあるのでしょうか?
昔別件でFFTの使用を検討したことがありますが上記の課題を解決できずに棚上げになっています

135デフォルトの名無しさん2017/05/04(木) 15:19:20.97ID:pmL645Ea
>>134
>原理的に周波数分解能と時間分解能の両立はできない

そうだよ

136デフォルトの名無しさん2017/05/04(木) 20:05:30.63ID:N4OE9pV/
>>135
いやいや横割で何言ってんの?
どうせ不確定性定理のことを言ってると思うけど窓フーリエも何もやってない。周波数一点狙い縛りのときは格段に精度がよくなることを知らないな?

>>134
FFTと違ってのサンプル数2^n縛りみたいな制約が無いんだよね。だから周波数分解能の選択に自由度がある。

あとはDFTの計算さえ間違わなければ、所望の値が求まる。計算コストはNオーダー。

137デフォルトの名無しさん2017/05/04(木) 20:20:29.59ID:N4OE9pV/
例えば1000Hzの音を拾いたいとき、周波数分解能が19Hzだったりすると1000Hzが正確に拾えない。周波数特性をグラフにプロットすると、1000を中心にして根元周辺に連続的な山ができる。

周波数分解能が1000の約数だと、周波数特性グラフは根元の山はなく、一点だけのピークができる

1381252017/05/05(金) 00:28:15.86ID:ayKeenIH
自分の中での整理もかねて・・・また長くなってすみません
話の発端
サウンドプログラミング6 [無断転載禁止]©2ch.net	->画像>4枚
この中から必要な音だけを抽出したい
このサンプルは音声ですが必ずしも音声とは限らないです、楽器音の消去・修正なども考えています
オレンジ色の線が基準と思われる周波数を線引きした物です
音声の場合は倍音も必要なのでこの周波数で櫛歯状のフィルターを駆動すれば欲しい音だけ得られるのではないかと考えた
簡単に櫛歯状の通過特性を得られるFeedback型のCombFilterを組んで実験してみたのが>>129の時点
ただし強く掛けるとケロってしまい満足のいく品質には届かず
その原因を推測
1.通過する帯域が狭すぎる?
2.実際の周波数とフィルターを駆動している周波数にズレがある?
3.フォルマントを無視しているせい?

1 これを解決しようと思ったらDAWなどに付いてくる通過周波数と減衰量を自在に設定出来るEQ的な物を用意するしかない?(が、作り方が判らない)
2 この手の解析には通常FFTを用いるけど原理的に周波数、時間ともに少なからぬ誤差が発生する。解決法はない?
3 通過周波数を自在に設定出来るEQ的な物がないと検証すら出来ないのでとりあえず棚上げ。規則的なフィルタを使う限りは解決不可

もう少し細かく制御できそうなBPFでやってみたのが>>132。予想に反してイマイチでボツ
で、現状手詰まり中・・・BEFで間を抑制してみる?ただし帯域と抑制量を個別に制御できないと上手くいかなそうな気がするし作り方も判らない

>>136-137
DFTについて理解が乏しいので変なことを言っていたらすみません
処理する信号が1KHzでサンプル長に1msecかその倍数を選択して1KHzを目標にDFTする?と1KHzに相当する振幅と位相が高い選択度で得られるって話ですよね?
シグナルジェネレータで1秒の1KHzの信号を作ってそれに対して1KHzを目標として処理するならばそのようなことも可能だと思いますが
人工的に処理に都合の良い信号を作らないかぎりそのような状況はまず無いと思うのですが・・・
現実には関連する要素に少なからぬ誤差が含まれていると思われますし

139デフォルトの名無しさん2017/08/29(火) 22:25:30.02ID:gHVKpw9z
.NET Frameworkで使用可能なALAC形式を読み書きできるライブラリを
ご存知ないでしょうか?
16-32bit/44.1-384kHzに対応しているものが希望なのですが。

140デフォルトの名無しさん2017/08/30(水) 15:58:33.02ID:k18dHHY7
githubにある ALAC.NET どうかなあ

141デフォルトの名無しさん2017/08/30(水) 20:38:17.85ID:lUUDwXpa
>>140
ありがとう。
デコードはできそうな気がするけど、エンコードはできないように見える。

142デフォルトの名無しさん2017/09/05(火) 21:23:31.36ID:bvinrZZw
>>140
残念ながら24bitまでで32bitには対応していませんでした。

143デフォルトの名無しさん2017/09/06(水) 19:57:18.50ID:R1m3VeE2
元はjavaみたいだな、javaも同じ仕様なんかな

144デフォルトの名無しさん2017/09/07(木) 21:00:07.22ID:UN1jZKf9
>>140
ALAC.NET自体は24bitまでしか対応していませんが、修正して32bit Integerに対応させる事ができそうです。
refalac.exeでエンコードした32/352.4をデコードしてバイナリ一致する事が確認できました。
ありがとうございました!

145デフォルトの名無しさん2018/01/06(土) 04:18:21.79ID:PT8U+FhC
音の加工についてプログラムの観点から理論で解説してある書籍かサイトないですか?
例えば、何をどうすればエコーがかかるとか、何をどうすればライブ会場みたいな響きになるとか。
PCMを加工する形で遊んでみたいのですが、とっかかりがなくて困っています。
プログラミングに関してはメジャーな言語を数種類自在に使える職業エンジニアなので大丈夫です。

//スマホのアプリで、普通の音楽をライブ会場風に加工して再生してくれるやつありましたよね。
//あれには大変驚いたとともに、知識があればこんなものが作れるのかと感動し、自分も何か作れないものかと思いました。

146デフォルトの名無しさん2018/01/06(土) 08:53:09.43ID:oCunP7AG
「サウンドエフェクト プログラミング」でググると、理論解説した書籍やプログラミング方法を解説したサイトが出てくる

147デフォルトの名無しさん2018/01/06(土) 11:48:42.37ID:HbY4/bGY
すべてサンプルコードつき
http://floor13●sakura●ne.jp/book03/book03.html
http://floor13●sakura●ne.jp/book06/book06.html
http://floor13●sakura●ne.jp/book07/book07.html

1481452018/01/06(土) 14:31:29.37ID:PT8U+FhC
>>146-147
ありがとうございます。
調べてみます。

149デフォルトの名無しさん2018/01/06(土) 17:52:06.99ID:nSHs9ovb
漏れは、YouTube みたいに、再生速度が速くなったり遅くなったりするのに、

音程が上下せず、一定にできる秘密を知りたい

150デフォルトの名無しさん2018/01/06(土) 19:26:02.15ID:pihwbQY3
このスレでそういうの書いて欲しい。

151デフォルトの名無しさん2018/01/06(土) 19:40:24.51ID:vOSbfzhE
秘密もクソもあるかい
CDだって早送りしてもピッチは変わらないだろ
アナログみたいに周波数を上げるのではなくて、データを適当に間引くだけだし

152デフォルトの名無しさん2018/01/12(金) 15:11:49.38ID:m9zGguBs
データ間引いて再生したらピッチ上がって聴こえるんじゃないの?

153デフォルトの名無しさん2018/01/12(金) 15:44:55.85ID:eulbZZ1c
聞こえませんよ

154デフォルトの名無しさん2018/01/12(金) 16:14:13.87ID:8pSCsnoo
データを間引くというのは、要するにサンプリングレートを落とす(ダウンサンプリング)ということですよね?

155デフォルトの名無しさん2018/01/12(金) 16:15:34.71ID:8pSCsnoo
あ、全然違いますね。
スイマセン、独り言でした。

156デフォルトの名無しさん2018/01/12(金) 16:50:12.64ID:PeQANayZ
1000Hzのサイン波を倍速再生する場合で考えると、
1秒間で1000個あるサイン波を(1周期で1個と数えたとして)
アナログの場合は、物理的な速度アップの操作(レコード盤なら回転を速めるとか)によって
0.5秒間で1000個分を再生する = 2000Hz

CDの早送りの場合は、1000個の内、例えば100番台(100~199),300番台,500番台,700番台,900番台を間引いて詰めるような感じ(飛び飛びで再生する)
0.5秒間で500個なので1000Hz、ピッチは変わらない
Youtubeなども同様。ピッチが変わらないようにやってるというよりは、CPU負荷軽減のために大雑把に処理してるだけ

157デフォルトの名無しさん2018/01/12(金) 23:21:24.63ID:8O0cBOUn
YouTubeもそうか?間引いているようには聞こえないけど

158デフォルトの名無しさん2018/01/13(土) 01:24:22.04ID:alKQWrZk
なるほど、間引く間隔が大きいんだね
1~数サンプル単位で間引くイメージで考えてた
そんなに不連続ならクリックノイズ対策要りそう

159デフォルトの名無しさん2018/01/13(土) 15:34:24.07ID:CUARXt4D
間引くより平均の方がよくね?

160デフォルトの名無しさん2018/01/18(木) 22:31:15.67ID:79DIpC1c
https://github.com/yeisapporo/rx62n-pwm-music-player
嗤え、自分はこの程度が限界だ
FM音源なんてさっぱりだよ

161デフォルトの名無しさん2018/01/19(金) 12:37:05.16ID:xkA2S8go
えらい古いの持ってきたな
なんでいまさら?

162デフォルトの名無しさん2018/01/21(日) 15:49:26.17ID:CmxK2CBl
>>149
https://blogs.msdn.microsoft.com/windows_multimedia_jp/2009/03/03/1063/

これとは別にピッチ変更してからサンプリングレート変換してタイムストレッチの実現とかをしたことがあったな、
重すぎでプレーヤに乗っけられんかったが

163デフォルトの名無しさん2018/01/22(月) 14:40:50.33ID:MclXUrRv
データを1/2に間引いたのなら周波数はあがるだろう、早送りが高い音になるのと同じように
データを間引いても周波数が変わらないようにするには、どうすればいいかな?

164デフォルトの名無しさん2018/01/22(月) 16:14:39.45ID:kpT2paXp
>>163
数100msec単位で再生して間引いてクロスフェード

165デフォルトの名無しさん2018/01/25(木) 11:10:34.40ID:zPND7U3x

166デフォルトの名無しさん2018/01/28(日) 16:16:58.69ID:cgdhBoSx
16bitモノラルのPCMを8bitにするには、
配列に入っている各データを右へ8bitシフトさせればいいんですよね?
言語はJavaです。
byte[] b = new byte[raw.length]; // rawはshort型の配列でPCMのデータが入っている
for(int i=0;i<raw.length;i++){
  b[i] = (byte)(raw[i] >>> 8);
}
上手く再生されなくて問題の切り分けをしたいので
まずここだけ合ってるか教えてください。

167デフォルトの名無しさん2018/01/28(日) 17:22:59.74ID:Zu0i2wvf
>>>論理シフト
>>算術シフト
あってそうだけど
念のため
(byte)(0x0ff & (raw[i] >>> 8));

1681662018/01/28(日) 18:34:05.34ID:cgdhBoSx
>>167
ありがとうございます。
念のために上位の8bitを0で埋めるんですね。
頑張ります。

169デフォルトの名無しさん2018/01/28(日) 18:42:17.08ID:uuTAMxHG
>上手く再生されなくて問題の切り分けをしたいので

小出しはよくない

170デフォルトの名無しさん2018/01/28(日) 21:36:22.98ID:bYI12Lat
右へ8bitシフトって/256で良いんじゃないのか?

171デフォルトの名無しさん2018/01/29(月) 04:44:46.37ID:7znYjzbE
問題はそこじゃないとおも

172デフォルトの名無しさん2018/01/29(月) 19:32:12.54ID:SlQpy0Cj
javaは知らないけど、奇麗な割算なら、コンパイラーが勝手(最適化適応時)にシフトに変換するんでは?
人間が分かりにくいように書く必要はない。

173デフォルトの名無しさん2018/01/30(火) 13:33:57.21ID:3LqhIh8a
分かった、負の数をシフトしたことによって、頭が0で埋められて違う値になった。

174デフォルトの名無しさん2018/01/30(火) 18:15:31.85ID:zy+7iaPq
ushortじゃないのか

175デフォルトの名無しさん2018/01/31(水) 19:40:34.67ID:gdwfqjyj
16bitモノラルのPCMを8bitにする場合、
お前らならどんなコード書くんだ?

176デフォルトの名無しさん2018/01/31(水) 20:18:03.93ID:nO9Gksn3
Cでバイナリごりごり

177デフォルトの名無しさん2018/02/16(金) 06:41:48.64ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

178デフォルトの名無しさん2018/02/20(火) 21:36:32.32ID:4B02mjKW
確か8bitフォーマットはunsigned扱いだよ
だから (raw>>8)+128
音に限らずよくトラブルになるやつ

179デフォルトの名無しさん2018/05/12(土) 11:03:12.89ID:pDgCeBjY

180デフォルトの名無しさん2018/05/23(水) 20:33:47.20ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

6D9QH

181デフォルトの名無しさん2018/05/24(木) 01:23:59.85ID:fftgGS82
空中元素固定装置

182デフォルトの名無しさん2018/05/24(木) 23:41:53.62ID:xmDpqFfV
すみません教えてください
マイコンなどのPWMで、ピーとかポーとかは鳴らせるのですが、
ピンとかポンのように弾む感じの音を作ることはできるのでしょうか?
マイコン以外に何か回路が必要ですか?
波形としては時間が経つにつれて振幅が減衰すると言えばいいでしょうか・・・

183デフォルトの名無しさん2018/05/25(金) 00:02:36.15ID:Wenrq1RR
短時間のクロックを立ち上げてフィルタに入れればプッとかポッて音にできるよ

184デフォルトの名無しさん2018/05/28(月) 23:53:24.37ID:7EQkplpz
>>182
VCAとかVCF付ければ?・・・ってそれPWMというより矩形波として使ってるのか?

185デフォルトの名無しさん2018/05/30(水) 22:09:11.56ID:/2TFCeAy
>>183
ありがとうございます。CRで適当にフィルタを作ってみたところ
出ました。
>>184
矩形波しか出ないと思い込んでいました。
上記のフィルタで三角波のようなものも出せました。
今、PWMで音声出力に挑戦しています。

186デフォルトの名無しさん2018/05/30(水) 22:14:06.08ID:Vf2ifG1r
1bitDACかよw

1871852018/05/31(木) 02:30:25.32ID:Lwc6NAPI
どうにかこうにかWAVをPWM1チャネルで再生することができました
昔の電話みたいで音質わるいですが・・・

188デフォルトの名無しさん2018/05/31(木) 15:44:57.27ID:6KHSsEBO
>>186
今時のオーディオ用DACの中身を勉強してみるといいと思うよ

189デフォルトの名無しさん2018/06/01(金) 09:16:30.57ID:1EpKPSl/
今のDACってマルチビットのΔΣじゃないの??

190デフォルトの名無しさん2018/06/01(金) 13:22:26.82ID:BryLIJlX
>>189
それでもせいぜい数bitだよ

191デフォルトの名無しさん2018/06/09(土) 23:42:43.89ID:G0L/h/Gy
wikipediaに、
>32bit-floatの場合には156[dB]、64bit-floatの場合には331[dB]もの広いダイナミックレンジを確保できる。
て書いてあるのだけど、floatと違ってdoubleが理論値に1dB足されているのは何故ですか?

192デフォルトの名無しさん2018/06/19(火) 15:21:06.48ID:wwqfhJ5H
それより32bit floatは1500dBの間違いじゃないか?

193デフォルトの名無しさん2018/06/21(木) 04:01:32.82ID:MCebB1eP
23bit(仮数部) + 1bit(ケチ表現) + 1bit(符号) + 1bit(浮動小数点の丸め)
からの26bit * 6dBで156dBですね

194デフォルトの名無しさん2018/06/22(金) 08:45:18.10ID:6YDS9B4G
分解能144dB、Dレンジ1530dBじゃない?
まあどうでもいいけど

195デフォルトの名無しさん2018/07/04(水) 22:26:06.38ID:gFgZc5FG
3H5

196デフォルトの名無しさん2018/07/05(木) 16:50:25.67ID:AeL6VB/V
3H5

197デフォルトの名無しさん2018/08/08(水) 19:42:52.22ID:QQwYQmeI
libsoxの馬鹿、Cygwin上では動くのに、Linuxだとコアダンプするし
ドキュメントはAPIの説明全然してないし、サンプルコードも役に立たん
結局sox_init()の後sox_format_init()を実行すると正常に動くようになった。

198デフォルトの名無しさん2018/08/08(水) 19:46:31.07ID:HAJMvi6f
お前が馬鹿

199デフォルトの名無しさん2018/08/09(木) 20:22:25.36ID:PClx2Er2
>>197
libsoxは品質は良いけどドキュメントがダメすぎるよね。
自身でソース見て動作を把握したうえで引数を与えないと、意図しない動作する関数がある。

200デフォルトの名無しさん2018/10/16(火) 02:01:47.21ID:tty+WjiQ
人いるかわからんけど訊いてみる
シンセ用のオシレータ作ってるんだけどルックアップテーブル作らないで(要は1つの波形につき1つのテーブルのみ)
アンチエイリアシングしたいんだけど不可能?

201デフォルトの名無しさん2018/10/16(火) 15:17:45.71ID:8sXafO5g
再生速度を変えないって事?
なら再生するサンプルレートに合わせてあらかじめ変換しておけばいいんじゃない

202デフォルトの名無しさん2018/10/16(火) 16:05:06.80ID:ZvGxYVqs
シンセだから当然速度は変える 波形はユーザ定義が可能でリアルタイム処理を想定してる
あとsync処理とかも実装してる

203デフォルトの名無しさん2018/10/16(火) 16:36:57.93ID:8sXafO5g
グラニューシンセシスの事だろうか…

204デフォルトの名無しさん2018/10/16(火) 21:27:24.53ID:ZvGxYVqs
いや、ただの波形メモリ音源を作りたいだけ

205デフォルトの名無しさん2018/10/16(火) 22:30:42.90ID:y1qmHi4n
単なる線形補間でいいんじゃない?

2062002018/10/17(水) 00:17:55.86ID:L+EpcCS9
一次補間してもしないのと同じぐらいエイリアスノイズが出るんです

207デフォルトの名無しさん2018/10/17(水) 01:41:04.42ID:OdjSavZy
bit数勘違いしててオーバーフローだろ

208デフォルトの名無しさん2018/10/17(水) 04:28:34.46ID:N1jYPFTP
ちゃんとテーブルのサイズ2の冪+1になってる?

2092002018/10/17(水) 12:26:10.76ID:L+EpcCS9
テーブルサイズは1024固定、受け取る元データは2^n (n:2-10)の長さ
2^10未満の長さのデータについてはバイリニアで1024まで拡張
というか再生周波数に応じて帯域制限したテーブル複数用意する方法ならとっくに実装しているので、
>>200>>202の条件でエイリアスノイズを除去したいんです

2102002018/10/17(水) 12:31:17.28ID:L+EpcCS9
バイリニア→ニアレストネイバー

211デフォルトの名無しさん2018/10/17(水) 13:10:08.40ID:zei/ulNC
出力サンプリング周波数より精度の高いカウンターを用意して、
波形メモリの参照先が半端になる場所は(1つのサンプルに対して切りが悪い状態の時)、
次の波形参照先を合成して出力電圧にする。 合成具合はカウンターの値からどっちが何%って計算できる。
多分、画像のアンチエイリアスとやってる事は同じ。

2122002018/10/17(水) 19:35:55.28ID:L+EpcCS9
つまり何らかの補間を施せっていうことですか
補間云々でどうにか出来るのでしょうか

213デフォルトの名無しさん2018/10/17(水) 19:39:33.25ID:N1jYPFTP
補完は元の領域でローパス掛けてるだけだから原理的にどうしてもエイリアシング残るよ
(ほぼ)完全に除去したいなら4倍以上でオーバーサンプリングしなきゃダメ

2142002018/10/17(水) 19:49:17.00ID:L+EpcCS9
やっぱり逝きつく先はオーバーサンプリングか
なるべく低容量かつ高速なものを目指しているのですが両立は厳しいようですね
アドバイスありがとうございました もうしばらく考えてみます

215デフォルトの名無しさん2018/10/29(月) 16:46:48.94ID:pz8ttMdG
200がまだいるか分からないけど
その1024サンプルをFFTしといて、
読み出しスピード決まった時に、帯域外になるエレメントを0にしてIFFTしたの(実部)から
直近2サンプルの直線補完で再生すればいいんじゃない?(適当)
繰り返し波形だから窓も要らない

それなりに知識があれば、読み出し用FIR型LPFを随時生成するとかの方が良いと思うけど

移動平均+軽いIIR型LPFとかでも良いと思うけど

どれくらい処理能力に余力があるのかとか、求める音による(シンセだし)と思うなあ

216デフォルトの名無しさん2018/11/10(土) 05:45:45.07ID:+8RptJu7
オシレータにFFT使えば最強じゃね!?
っていうのは誰でも思いついていざ実装して絶望するやつだw

217デフォルトの名無しさん2018/11/10(土) 09:44:18.30ID:2b41DCK4
それ単にFFTを知らないだけじゃねーか

218デフォルトの名無しさん2018/11/10(土) 13:43:40.57ID:KutuN/gN
>要は1つの波形につき1つのテーブルのみ

それすら不要ん

219デフォルトの名無しさん2018/11/11(日) 23:12:58.28ID:/8+mLG61
この流れ、てっきり波形テーブルベースだと勘違いしてたわ…
テーブル用意する的なこと書いてるし

220デフォルトの名無しさん2018/11/11(日) 23:42:35.38ID:9MRXNWIm
勝手な持論展開していってるだけやんけ

221デフォルトの名無しさん2018/11/13(火) 14:19:59.47ID:90McxFB4
質問は的確に

222デフォルトの名無しさん2018/11/27(火) 21:15:23.32ID:VopAN/B8
FFTといえば大浦さんのFFTSG使ってたけど、最近出てきたOTFFT早い!

223デフォルトの名無しさん2018/11/28(水) 02:51:21.84ID:CePP/UJb
それってintelやappleのライブラリより早いの??

224デフォルトの名無しさん2018/11/28(水) 10:31:30.40ID:FHdQm/o/
intelならintelのsimdコンパイラが楽やわ
レーン数見分けて動いてくれるし速いライブラリに近いスピードが出るから
ライブラリに頼らないで好きな形で組める

225デフォルトの名無しさん2018/11/28(水) 18:08:42.26ID:0nkPaznP
コンパイラたけえよ

226デフォルトの名無しさん2018/11/29(木) 09:08:59.75ID:yU/wrNQd
ispcはフリーだよ
商用利用は知らん

227デフォルトの名無しさん2019/03/23(土) 11:35:11.50ID:AyZnEV/D
おや、こんなスレがあったんだな!
MIDIもここでいいのか?でもスレ検索しても2単語しか出てこなかったけどなwww

よく市販のMIDIアプリでIN/OUTを設定したら
ほかのアプリで同じデバイスを指定しようとするとロックされて開けないのがあるんだが
あれはどんなAPIで他からの接続をロックしてるんですかね?

228デフォルトの名無しさん2019/03/23(土) 18:50:12.77ID:ypyP50XG
MIDI APIのmidiOutOpen()ですでに他に開いてるのがいたら
MMSYSERR_ALLOCATEDが返ってくるんじゃないかね

229デフォルトの名無しさん2019/03/24(日) 14:10:10.25ID:gjdju94t
VSTプラグイン作りしているヤシいる?

230デフォルトの名無しさん2019/03/25(月) 17:06:19.71ID:EDSujopE
>>228
ああそうか!そういうリザルトあったね!
でもダブってデバイス開いてもあまり問題は起きないんだけどね
むしろ一度デバイスつかんだら放してくれなくて
他のに繋ぎ変えたいとき再起動しないとどうしようもないってアプリもあるんだよね…orz
デバイス解放するのってmidiInReset()とかだっけ?

231デフォルトの名無しさん2019/03/25(月) 17:38:23.30ID:EDSujopE
あれ?確認しようと「midiInReset」でググったら
「midiOutReset」しかでてこないよ?
検索キーワードが強制的に変えられてる
なんで?

232デフォルトの名無しさん2019/03/25(月) 18:29:51.39ID:5o6KsSB6
>>231
https://docs.microsoft.com/en-us/windows/desktop/api/mmeapi/nf-mmeapi-midiinreset
デバイス掴まれて離さないときは、デバイスマネージャから
デバイス無効化してから再度有効化で離すかもしんない

233デフォルトの名無しさん2019/03/25(月) 20:24:04.41ID:x64m1R2Z
>>232
なるほど、そういう解放の仕方もあるのか

意図的に2重に開いて
MMSYSERRを見たら
MMSYSERR_ALLOCATED = 4じゃなくて
MMSYSERR_NOTENABLED = 3 : ドライバがロードまたは初期化に失敗しました。
が返ってきたわ
そしてよくよく考えたら
先行して開いてたアプリにロックされてたんじゃなくて
自分の作ったプログラムがエラーリザルト拾って自ら開かなかっただけなのかwww

234デフォルトの名無しさん2019/03/26(火) 19:23:14.43ID:NbUyZWCM
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 69703
https://you-can-program.hatenablog.jp

235デフォルトの名無しさん2019/03/27(水) 08:12:21.00ID:WX6pMWCD
>>229
VST作ってるよ

236デフォルトの名無しさん2019/04/02(火) 06:28:33.09ID:uwnbQvhb
>>233
あー自己レス前言撤回
アプリの組み合わせによっては
デバイスの多重オープンできることもあるな
リザルトを拾う拾わないの違いではないみたい
時間が無いので何故そんな違いが出るのかは未確認
知ってる方、予想のつく方、いたら教えてください

237デフォルトの名無しさん2019/04/02(火) 11:21:55.02ID:5+C+zQyU
Synth1 のページが無くなった

238デフォルトの名無しさん2019/04/03(水) 07:53:59.08ID:uBOGDxAb
>>236
MIDIのことはよく知らないけど
MMEは古すぎて互換のために用意されてるだけなので
新しいネイティブなAPIがあるのでは?と思う

239デフォルトの名無しさん2019/04/03(水) 21:19:58.16ID:1xHWBj9h
>>238
確かにネイティブなMIDIはWin32APIでめちゃ古いけど
これ以外に新しいネイティブなAPIってあるのかな?
あったらそっち使いたいけど
あってもSMFを再生するだけみたいなパッケージされたものじゃね?

240デフォルトの名無しさん2019/04/04(木) 08:14:02.61ID:GzEPd4tz
てゆーかMIDIって
デバイスの認識とオープン/クローズができて
そこから必要なデータを取り出したら
あとはバイトデータの四則計算だからな
今デバイスはほとんどUSBだし
新しいハードウエアや転送方式でも出てこない限り
新しいAPIは必要無いかもね
最近MIDI規格が新しくなったと聞くけど
新しいAPIの話にはならないんだね?

241デフォルトの名無しさん2019/04/04(木) 08:41:15.20ID:GzEPd4tz
ああ、ロングメッセージをもっと簡単に扱えるAPI作ってほしいかも

242デフォルトの名無しさん2019/04/04(木) 10:54:31.22ID:qSduPQ+p
BT MIDIとか追加されてるんじゃなかったっけ?

243デフォルトの名無しさん2019/05/16(木) 15:25:40.65ID:lVc23QOV
既存のソフトのスペクトラムアナライザーに不満がある
→自作出来ないか→FFTとかWFTとかが理解できない→orz(イマココ)

244デフォルトの名無しさん2019/05/16(木) 15:49:26.10ID:Ox4fjiQE

245デフォルトの名無しさん2019/05/16(木) 20:57:08.87ID:ITYngrHq
というかパソコンがリアルタイムでFFT出来る能力を獲得して20年以上
その間にパソコンの計算能力は一桁以上向上しているがスペクトラムアナライザーの
周波数、時間、ダイナミックレンジ等の分解能が向上しているように見えない。なじぇ

246デフォルトの名無しさん2019/05/16(木) 21:33:33.81ID:72Z2ug5T
必要ないからさ

247デフォルトの名無しさん2019/05/17(金) 10:43:45.79ID:Os+rXKxi
恥を忍んで質問させて下さい。

この論文がイマイチ理解出来ないのですけど、誰か解説おながい…。
http://secure.aes.org/forum/pubs/conventions/?elib=15680

248デフォルトの名無しさん2019/05/17(金) 16:23:19.96ID:1e6MbvMq
てゆーかさ論文1つ解説しろって
新しい論文1つ書けって言ってるに等しいじゃんwww
まずお前がその論文を要約して分からないところだけ質問しろよ
そうじゃないとリンク踏む気も起きない

2492472019/05/17(金) 23:08:30.05ID:R9aG9tk3
>>248
要約:IIRヒルベルト変換フィルタの構成法
1)IIRハーフバンド楕円LPFを用意
2)これを全域通過移相フィルタ(のカスケード接続)を2つ足した形に変換する
但し元の伝達関数をH(z)として、H(z)=A(z^2) + B(z^2)/zを満足する事
(A, Bが全域通過移相フィルタ(のカスケード接続))
3)z→-jzとする事で、ヒルベルト変換フィルタ対になる。
4)通過域と阻止域の端を考慮しつつ周波数変換

2)の操作については、参考文献が示されてるのみなので、本当に出来るのかなぁ…と。

2502472019/05/18(土) 13:58:07.07ID:xrqvW6bP
参考文献がこれ
http://ci.nii.ac.jp/ncid/BA20792517

…編者の一人がKaiser窓の人だから希望が出てきたw

251デフォルトの名無しさん2019/05/18(土) 13:59:58.02ID:dCJO5BP8
それ質問か?

252デフォルトの名無しさん2019/05/18(土) 14:36:58.31ID:cqJ7t/FS
結局全部理解できないってことか?
正直に宿題の問題文を書け

2532472019/05/18(土) 14:49:35.44ID:xrqvW6bP
250は古本で安く出回ってるので、購入します。
近所の図書館には置いてない…。

>>251-252
2)の過程を解説した日本語の参考文献やwebサイトが見つからないので、
漏れがじたばたしてるだけです。
(学校の宿題や輪講とかではないです)

254デフォルトの名無しさん2019/05/18(土) 17:35:44.28ID:Nypio2TE
今の学生ってこんなに低レベルなの?

255デフォルトの名無しさん2019/05/18(土) 19:40:26.38ID:64Sa3bh4
学生なら教授なりに教えてもらいな

256デフォルトの名無しさん2019/05/19(日) 17:30:39.57ID:bFXPsGlW
オールパスフィルタで90度位相差が出る周波数を作ってるだけじゃないの?

257デフォルトの名無しさん2019/06/06(木) 06:50:12.14ID:8cTAphsR
ここってAESの論文がサイトライセンスとかで読めるような人も見てるの?
そうでない限り有料の論文なんて限られた人しか購入しないでしょ…。

258デフォルトの名無しさん2019/07/17(水) 09:06:20.78ID:5US3NOFQ
C#でMIDIのロングメッセージの受信→送信したいのだけど
コールバックの書き方が分かりません
ショートメッセージはmidiInOpen()のdwinstanceにコールバックのポインタ渡して
CALLBACK FUNCTIONで出来たのですが
ロングメッセージはこれと共通で出来ないでしょうか?
単にロングメッセージをINからOUTにスルーさせたいだけなのですが
それでもバッファの準備したり構造体指定したりしないとダメなんですかね?
何処かに参考になるコード公開されてませんかね?

259デフォルトの名無しさん2019/07/17(水) 10:16:39.42ID:zg1w+PG8
>>249
このスレで専門的なこと説明したってわかるわけ無いだろ空気読めよ
もっとライブラリーの使い方とか聞けよ

260デフォルトの名無しさん2019/07/17(水) 12:02:57.80ID:FD/sfaX1
https://yoshida-eth0.ハテナblog.com/entry/20100126/1264444683

261デフォルトの名無しさん2019/07/17(水) 12:46:42.87ID:rtz8wKUM
なんか違うみたい

262デフォルトの名無しさん2019/07/17(水) 13:30:29.91ID:FD/sfaX1

263デフォルトの名無しさん2019/07/17(水) 14:19:02.99ID:aRqZbL8u
ありがとう
下のコードに何か使えるネタがあるかもしれない
勉強してきます

264デフォルトの名無しさん2019/07/19(金) 09:05:14.00ID:ZXumgKgg
趣味のインチキMIDIプログラマで恐縮っすwww
ロングメッセージの受信に必要なAPIを自分でマーシャリングしたのですが
どなたか添削してください
いつも利用してるPINVOKEに登録されてなかったので

既に完成してるショートメッセージのプログラムに追加したいので
それと共通の型、書式にしたのですが
マーシャリングの型って結構自由なんですか?
いくつか調べたのですが少しずつ違ってたりするので良く分からない・・・
第1引数がintやIntPtrだったり
第2引数がrefやoutだったり・・・
どちらも引数は共通だと思います

[DllImport("winmm.dll")]
static extern uint midiInPrepareHeader(IntPtr hMidiIn, out MidiHdr lpMidiInHdr, uint uSize);

[DllImport("winmm.dll")]
static extern uint midiInAddBuffer(IntPtr hMidiIn, out MidiHdr lpMidiInHdr, uint uSize);

265デフォルトの名無しさん2019/07/21(日) 09:53:04.81ID:aqRfDvEl
うーーーーん自己レス
マーシャリングは良く分からんが仮にプログラム組んで
バッファ生成、登録してみたらリザルトは0が返ってくるから合ってるだろうなあ?
これでINデバイスにエクスクルーシブ入れたら自動で受信が始まるのかと思ったけど
始まらん・・・なんで?

266デフォルトの名無しさん2019/09/15(日) 15:18:43.08ID:2F/PGB+Q
質問します
2次のバターワースフィルタなんだけど、フィルタの係数求めるのに

(1)Robert Bristow-Johnson Audio EQ Cookbookとやら
http://vstcpp.wpblog.jp/?page_id=523

(2)http://freeverb3vst.osdn.jp/tips/iir_filter.shtml
↑ここのサイトに載ってる求め方
の二種類が見つかったんだけど
それぞれ方式が少し違ってて、実際係数を求めてみると大体似た感じになるんだけど微妙に違う・・・
音を聞いた感じも微妙に違います
この違いが一体何なのか、どっちの方が精度が良いとか、教えてください
ちなみに
http://www.iowahills.com/A7ExampleCodePage.html
のサイトにあるサンプルで係数を求めてみたら
(2)の方式で求めた係数と一致しました

267デフォルトの名無しさん2019/09/15(日) 15:50:01.70ID:tu3q64lr
テキトーだけど最初に疑うのは
floatとdoubleの差とか
unsigned付け忘れとか
あとmath.hのincludeし忘れとか

268デフォルトの名無しさん2019/09/15(日) 16:13:44.41ID:2F/PGB+Q
どうも
数式や方式が違うから結果が微妙に異なるのは当然なんです
ただ、どっちの方がいいのかなーと

269デフォルトの名無しさん2019/09/22(日) 05:24:28.87ID:iQNUwqxZ
ぱっと見(1)は簡易版的な感じがするかなあ(tanが出てこないあたり)
簡単な確認方法は、カットオフ周波数を高く設定して(fs=44.1kHzならfc=10kHzとかに設定)
そのカットオフ周波数の信号入れてちゃんと-3dBになる方が正解

270デフォルトの名無しさん2019/09/25(水) 23:46:24.79ID:9xiM1A8a
サウンドプログラム≠フィルター

271デフォルトの名無しさん2019/09/26(木) 19:29:36.80ID:q2K6iHXZ
過疎ってるから別にええねん

272デフォルトの名無しさん2019/09/28(土) 07:51:13.38ID:+gjGC7ia
IIRの並列構成やはしご型構成が流行らないのは何でだろう?
http://leo.ec.t.kanazawa-u.ac.jp/staffs/nakayama/edu/file/signal_proc_ch7.pdf

273デフォルトの名無しさん2019/09/28(土) 07:57:38.62ID:+gjGC7ia
>>269
双一次変換のpre-warpingの読み方って
・プリワーピング
・プリウオーピング
・そのほか

274デフォルトの名無しさん2019/09/30(月) 07:52:57.26ID:xgLBq7xY
流行らない理由はpdfに書いてあるしプリワーピング

2752722019/10/02(水) 14:49:12.60ID:v/fz82+q
>>274
2次IIRの縦続構成は、
高次IIRで分子/分母の組合せで悩まないといけないけど、
そういうのは設計用ソフトが組合せを推奨してくれるものなのかなぁ?

276デフォルトの名無しさん2019/10/03(木) 07:55:36.53ID:XwbxMiWc
2次くらいなら係数を見比べれば悩む程のこともないでしょ
際どいことをするならそれぞれの通る帯域と極の順番を考慮するくらい?

2772722019/10/16(水) 12:56:20.26ID:eqLCKxzt
「多項式の比の部分分数展開は、数値的に不良設定問題です。」ってとこが、
IIRの並列構成が、実務的に嫌われてる要因なんだろうか?
http://jp.mathworks.com/help/signal/ref/residuez.html

278デフォルトの名無しさん2019/10/16(水) 13:06:46.62ID:dmmazo8P
答えが何通りも(無限に)あったら無理やろ。
素因数分解みたいに特定出来る訳じゃなく、
π求める公式だって無限にあるやん?

2792722019/10/16(水) 18:17:22.03ID:eqLCKxzt
>>278
多分答えは一通りしかない筈なんだけど、
例えば、高次多項式で表されてるIIRを並列接続に変換する際に、
IEEE754の倍精度での計算では十分な精度が得られない…と云うイメージです。

そこだけ任意精度計算出来ればいいのですが。

280デフォルトの名無しさん2019/10/17(木) 10:11:05.69ID:ewN8FeZ7
情報落ち
https://www.cc.kyoto-su.ac.jp/~yamada/programming/float.html#johouot
任意精度
http://www.edu.cc.uec.ac.jp/~ta113003/ref/FloatingPoint.html

2812722019/10/17(木) 11:26:41.51ID:V7JeF/dp
>>280
多分真面目にやろうとすると精度保証付き数値計算(≒区間演算)になるんだけど、
Mathematicaの一択になると思う。
仕事で使うには値段が高いので稟議が通り難い…。

RasPiのMathematicaやWolfram Programming Labを
内緒で仕事に使うのは駄目なんだろうなぁw

282デフォルトの名無しさん2019/10/17(木) 11:34:21.43ID:ewN8FeZ7
仕事なら金出せ
https://www.fnn.jp/posts/1726FTB
5ちゃんなんかで菊名

2832722019/10/20(日) 01:25:11.55ID:FDd3dljx
>>282
BYODやBYOAで済むなら楽なんですけどねぇ

284デフォルトの名無しさん2019/10/22(火) 00:48:00.84ID:lX7I/gsp
オッペンハイムせんせーの本は、このスレではどう評価されてるのでしょうか?
http://www.coronasha.co.jp/np/isbn/9784339004717/
http://www.coronasha.co.jp/np/isbn/9784339004724/

つか著者より訳者の名前の方がでかいなんて…

285蟻人間 ◆T6xkBnTXz7B0 2019/10/25(金) 21:33:32.07ID:OgTxIR48
https://github.com/katahiromz/YappyCam/blob/master/YappyCam.cpp#L1247
波形データを線形に縮小したいんだが、いい方法知りませんか?
生PCM波形(dwFileSize - wfx_size)バイトを(dwBytes - wfx_size)バイトに縮小したい。
お願いします。

286蟻人間 ◆T6xkBnTXz7B0 2019/10/25(金) 22:31:53.53ID:OgTxIR48
>>285
縮小したらピッチが高くなってしまいました。質問を取り下げます。

287デフォルトの名無しさん2019/10/26(土) 09:56:03.71ID:e6NVGnmw
フーリエ変換
縮小
フーリエ逆変換

288デフォルトの名無しさん2019/11/04(月) 12:13:06.35ID:Lq9X0dCx
双一次変換のpre-warpingの逆って、
・post-warping
・un-pre-warping
・de-pre-warping
・そのほか


lud20200706100215
このスレへの固定リンク: http://5chb.net/r/tech/1451893339/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「サウンドプログラミング6 [無断転載禁止]©2ch.net ->画像>4枚 」を見た人も見ています:
サウンドプログラミング5
マルチスレッドプログラミング相談室 その9 (459)
競技プログラミングにハマるプログラマのスレ 86
プログラミングの勉強法
Macでプログラミング{11}
0からプログラミングを知りたい
プログラミング教えてるが…
プログラミングって簡単だな
プログラミングをやりたいんだが
■日商プログラミング検定■
プログラミング言語、次は何を学ぶ?
0からプログラミング始めたい
プログラミングってバカでもできる?
プログラミングのお題スレ Part10
プログラミングのお題スレ Part13
プログラミングはじめたいんだけど
安価でプログラミングの教科書を作るスレ
MVCを意識してプログラミングをするべき
情報工学科でプログラミング苦手な人
プログラミング未経験→月4万
プログラミングのお題スレ Part9
すごいプログラミング技法を考えた
プログラミングできる人ってすげえな
プログラミングのお題スレ Part15
プログラミング言語 Scala 11冊目
プログラミング言語 Scala 12冊目
プログラミングのお題スレ Part14
プログラミングができるニート来てくれ
プログラミング言語バトルロワイヤル
プログラミングで通貨メーターを作りたい
プログラミング未経験だけどゲーム作るわ
プログラミング言語 Rust 4【ワッチョイ】
プログラミング言語 Rust 4【ワッチョイ】
プログラミング覚えて起業したいんだが
プログラミングの上達の方法を教えてください
Androidプログラミング質問スレ revision53
一番難易度が高いプログラミング言語は?
知ってるとプログラミングに役立つ数学知識
プログラミング言語 Kuin Part 16#01
NHK教育を見て53708倍賢くプログラミング
プログラミング技術を使って副収入を得る方法
俺にプログラミングってのを教えてください
ニートの俺がプログラミング言語を作るんだけど
関数型プログラミング言語Haskell Part30
お前らプログラミング言語どうやって覚えたんや?
メタプログラミングで生産効率は上がるのか?
プログラミング未経験だけど覚えたい言語がある
【社会】大学新入試にプログラミング 首相「現代のそろばん」
プログラミング言語って初心者には結局どれからやるべきなん?
ドルオタワイ、1からプログラミングを学びたい
プログラミング言語「PHP」の作者が天才すぎる…
競技プログラミングにハマるプログラマのスレ 21
JKです、プログラミング誰か教えてください
数学と英語とプログラミングができないやつは無能
プログラミング始めたいんだけどどこ言語がいい?
第28回プログラミングコンテスト 【プロコン】
Androidプログラミング質問スレ revision55
Androidプログラミング質問スレ revision54
【IoT】 学習実験 プログラミング micro:bit
プログラミング初心者ですが質問させてください
プログラミング未経験だけど人工知能作りたい
【MATLAB?】 Octaveの魅力 【プログラミング】
【IT】人気プログラミング言語トップ10【2019版】
本買ってプログラミング始めた20ページで挫折した
【IT】マルウェア解析のためのプログラミング言語トップ3
プログラマー「最強のプログラミング勉強法は写経」
18:03:45 up 65 days, 19:02, 0 users, load average: 11.38, 11.33, 10.77

in 0.017028093338013 sec @0.017028093338013@0b7 on 062207