[過去ログ] サウンドプログラミング6 [無断転載禁止]©2ch.net (321レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
134(2): 125 2017/05/04(木)14:56 ID:FfjpCVh7(1) AAS
>>133
少しイメージできた、ありがとう。DFTを使って一部を抜き出すとしたら目標とする周波数の付近のみ
DFT結果に相当する波形を生成しそれらを合成するという手順でいいのかな?
ただしDFTだとどうであれある程度の時間分を計算をする必要がありますよね
原理的に周波数分解能と時間分解能の両立はできないと思っているのですが何か改善策はあるのでしょうか?
昔別件でFFTの使用を検討したことがありますが上記の課題を解決できずに棚上げになっています
135(1): 2017/05/04(木)15:19 ID:pmL645Ea(1) AAS
>>134
>原理的に周波数分解能と時間分解能の両立はできない
そうだよ
136(1): 2017/05/04(木)20:05 ID:N4OE9pV/(1/2) AAS
>>135
いやいや横割で何言ってんの?
どうせ不確定性定理のことを言ってると思うけど窓フーリエも何もやってない。周波数一点狙い縛りのときは格段に精度がよくなることを知らないな?
>>134
FFTと違ってのサンプル数2^n縛りみたいな制約が無いんだよね。だから周波数分解能の選択に自由度がある。
あとはDFTの計算さえ間違わなければ、所望の値が求まる。計算コストはNオーダー。
137(1): 2017/05/04(木)20:20 ID:N4OE9pV/(2/2) AAS
例えば1000Hzの音を拾いたいとき、周波数分解能が19Hzだったりすると1000Hzが正確に拾えない。周波数特性をグラフにプロットすると、1000を中心にして根元周辺に連続的な山ができる。
周波数分解能が1000の約数だと、周波数特性グラフは根元の山はなく、一点だけのピークができる
138: 125 2017/05/05(金)00:28 ID:ayKeenIH(1) AAS
自分の中での整理もかねて・・・また長くなってすみません
話の発端
画像リンク[png]:uploader.purinka.work
この中から必要な音だけを抽出したい
このサンプルは音声ですが必ずしも音声とは限らないです、楽器音の消去・修正なども考えています
オレンジ色の線が基準と思われる周波数を線引きした物です
音声の場合は倍音も必要なのでこの周波数で櫛歯状のフィルターを駆動すれば欲しい音だけ得られるのではないかと考えた
簡単に櫛歯状の通過特性を得られるFeedback型のCombFilterを組んで実験してみたのが>>129の時点
ただし強く掛けるとケロってしまい満足のいく品質には届かず
その原因を推測
省14
139: 2017/08/29(火)22:25 ID:gHVKpw9z(1) AAS
.NET Frameworkで使用可能なALAC形式を読み書きできるライブラリを
ご存知ないでしょうか?
16-32bit/44.1-384kHzに対応しているものが希望なのですが。
140(3): 2017/08/30(水)15:58 ID:k18dHHY7(1) AAS
githubにある ALAC.NET どうかなあ
141: 2017/08/30(水)20:38 ID:lUUDwXpa(1) AAS
>>140
ありがとう。
デコードはできそうな気がするけど、エンコードはできないように見える。
142: 2017/09/05(火)21:23 ID:bvinrZZw(1) AAS
>>140
残念ながら24bitまでで32bitには対応していませんでした。
143: 2017/09/06(水)19:57 ID:R1m3VeE2(1) AAS
元はjavaみたいだな、javaも同じ仕様なんかな
144: 2017/09/07(木)21:00 ID:UN1jZKf9(1) AAS
>>140
ALAC.NET自体は24bitまでしか対応していませんが、修正して32bit Integerに対応させる事ができそうです。
refalac.exeでエンコードした32/352.4をデコードしてバイナリ一致する事が確認できました。
ありがとうございました!
145(1): 2018/01/06(土)04:18 ID:PT8U+FhC(1/2) AAS
音の加工についてプログラムの観点から理論で解説してある書籍かサイトないですか?
例えば、何をどうすればエコーがかかるとか、何をどうすればライブ会場みたいな響きになるとか。
PCMを加工する形で遊んでみたいのですが、とっかかりがなくて困っています。
プログラミングに関してはメジャーな言語を数種類自在に使える職業エンジニアなので大丈夫です。
//スマホのアプリで、普通の音楽をライブ会場風に加工して再生してくれるやつありましたよね。
//あれには大変驚いたとともに、知識があればこんなものが作れるのかと感動し、自分も何か作れないものかと思いました。
146(1): 2018/01/06(土)08:53 ID:oCunP7AG(1) AAS
「サウンドエフェクト プログラミング」でググると、理論解説した書籍やプログラミング方法を解説したサイトが出てくる
147(1): 2018/01/06(土)11:48 ID:HbY4/bGY(1) AAS
すべてサンプルコードつき
外部リンク:floor13●sakura●ne.jp/book03/book03.html
外部リンク:floor13●sakura●ne.jp/book06/book06.html
外部リンク:floor13●sakura●ne.jp/book07/book07.html
148: 145 2018/01/06(土)14:31 ID:PT8U+FhC(2/2) AAS
>>146-147
ありがとうございます。
調べてみます。
149(1): 2018/01/06(土)17:52 ID:nSHs9ovb(1) AAS
漏れは、YouTube みたいに、再生速度が速くなったり遅くなったりするのに、
音程が上下せず、一定にできる秘密を知りたい
150: 2018/01/06(土)19:26 ID:pihwbQY3(1) AAS
このスレでそういうの書いて欲しい。
151: 2018/01/06(土)19:40 ID:vOSbfzhE(1) AAS
秘密もクソもあるかい
CDだって早送りしてもピッチは変わらないだろ
アナログみたいに周波数を上げるのではなくて、データを適当に間引くだけだし
152: 2018/01/12(金)15:11 ID:m9zGguBs(1) AAS
データ間引いて再生したらピッチ上がって聴こえるんじゃないの?
153: 2018/01/12(金)15:44 ID:eulbZZ1c(1) AAS
聞こえませんよ
154: 2018/01/12(金)16:14 ID:8pSCsnoo(1/2) AAS
データを間引くというのは、要するにサンプリングレートを落とす(ダウンサンプリング)ということですよね?
155: 2018/01/12(金)16:15 ID:8pSCsnoo(2/2) AAS
あ、全然違いますね。
スイマセン、独り言でした。
156: 2018/01/12(金)16:50 ID:PeQANayZ(1) AAS
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 ID:8O0cBOUn(1) AAS
YouTubeもそうか?間引いているようには聞こえないけど
158: 2018/01/13(土)01:24 ID:alKQWrZk(1) AAS
なるほど、間引く間隔が大きいんだね
1〜数サンプル単位で間引くイメージで考えてた
そんなに不連続ならクリックノイズ対策要りそう
159: 2018/01/13(土)15:34 ID:CUARXt4D(1) AAS
間引くより平均の方がよくね?
160: 2018/01/18(木)22:31 ID:79DIpC1c(1) AAS
外部リンク:github.com
嗤え、自分はこの程度が限界だ
FM音源なんてさっぱりだよ
161: 2018/01/19(金)12:37 ID:xkA2S8go(1) AAS
えらい古いの持ってきたな
なんでいまさら?
162: 2018/01/21(日)15:49 ID:CmxK2CBl(1) AAS
>>149
外部リンク:blogs.msdn.microsoft.com
これとは別にピッチ変更してからサンプリングレート変換してタイムストレッチの実現とかをしたことがあったな、
重すぎでプレーヤに乗っけられんかったが
163(2): 2018/01/22(月)14:40 ID:MclXUrRv(1) AAS
データを1/2に間引いたのなら周波数はあがるだろう、早送りが高い音になるのと同じように
データを間引いても周波数が変わらないようにするには、どうすればいいかな?
164: 2018/01/22(月)16:14 ID:kpT2paXp(1) AAS
>>163
数100msec単位で再生して間引いてクロスフェード
165: 2018/01/25(木)11:10 ID:zPND7U3x(1) AAS
>>163
外部リンク[html]:www.geocities.jp
166(1): 2018/01/28(日)16:16 ID:cgdhBoSx(1/2) AAS
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(1): 2018/01/28(日)17:22 ID:Zu0i2wvf(1) AAS
>>>論理シフト
>>算術シフト
あってそうだけど
念のため
(byte)(0x0ff & (raw[i] >>> 8));
168: 166 2018/01/28(日)18:34 ID:cgdhBoSx(2/2) AAS
>>167
ありがとうございます。
念のために上位の8bitを0で埋めるんですね。
頑張ります。
169: 2018/01/28(日)18:42 ID:uuTAMxHG(1) AAS
>上手く再生されなくて問題の切り分けをしたいので
小出しはよくない
170: 2018/01/28(日)21:36 ID:bYI12Lat(1) AAS
右へ8bitシフトって/256で良いんじゃないのか?
171: 2018/01/29(月)04:44 ID:7znYjzbE(1) AAS
問題はそこじゃないとおも
172: 2018/01/29(月)19:32 ID:SlQpy0Cj(1) AAS
javaは知らないけど、奇麗な割算なら、コンパイラーが勝手(最適化適応時)にシフトに変換するんでは?
人間が分かりにくいように書く必要はない。
173: 2018/01/30(火)13:33 ID:3LqhIh8a(1) AAS
分かった、負の数をシフトしたことによって、頭が0で埋められて違う値になった。
174: 2018/01/30(火)18:15 ID:zy+7iaPq(1) AAS
ushortじゃないのか
175: 2018/01/31(水)19:40 ID:gdwfqjyj(1) AAS
16bitモノラルのPCMを8bitにする場合、
お前らならどんなコード書くんだ?
176: 2018/01/31(水)20:18 ID:nO9Gksn3(1) AAS
Cでバイナリごりごり
177: 2018/02/16(金)06:41 ID:W1XJdyx1(1) AAS
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
178: 2018/02/20(火)21:36 ID:4B02mjKW(1) AAS
確か8bitフォーマットはunsigned扱いだよ
だから (raw>>8)+128
音に限らずよくトラブルになるやつ
179: 2018/05/12(土)11:03 ID:pDgCeBjY(1) AAS
共同ツール 1
外部リンク:seleck.cc
外部リンク:trello.com
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
外部リンク:www.kikakulabo.com
trelloのオープンソースあり
共同ツール 2
外部リンク:www.google.com
共同ツール 3
省7
180: 2018/05/23(水)20:33 ID:Au5e7VGg(1) AAS
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
6D9QH
181: 2018/05/24(木)01:23 ID:fftgGS82(1) AAS
空中元素固定装置
182(1): 2018/05/24(木)23:41 ID:xmDpqFfV(1) AAS
すみません教えてください
マイコンなどのPWMで、ピーとかポーとかは鳴らせるのですが、
ピンとかポンのように弾む感じの音を作ることはできるのでしょうか?
マイコン以外に何か回路が必要ですか?
波形としては時間が経つにつれて振幅が減衰すると言えばいいでしょうか・・・
183(1): 2018/05/25(金)00:02 ID:Wenrq1RR(1) AAS
短時間のクロックを立ち上げてフィルタに入れればプッとかポッて音にできるよ
184(1): 2018/05/28(月)23:53 ID:7EQkplpz(1) AAS
>>182
VCAとかVCF付ければ?・・・ってそれPWMというより矩形波として使ってるのか?
185(1): 2018/05/30(水)22:09 ID:/2TFCeAy(1) AAS
>>183
ありがとうございます。CRで適当にフィルタを作ってみたところ
出ました。
>>184
矩形波しか出ないと思い込んでいました。
上記のフィルタで三角波のようなものも出せました。
今、PWMで音声出力に挑戦しています。
186(1): 2018/05/30(水)22:14 ID:Vf2ifG1r(1) AAS
1bitDACかよw
187: 185 2018/05/31(木)02:30 ID:Lwc6NAPI(1) AAS
どうにかこうにかWAVをPWM1チャネルで再生することができました
昔の電話みたいで音質わるいですが・・・
188: 2018/05/31(木)15:44 ID:6KHSsEBO(1) AAS
>>186
今時のオーディオ用DACの中身を勉強してみるといいと思うよ
189(1): 2018/06/01(金)09:16 ID:1EpKPSl/(1) AAS
今のDACってマルチビットのΔΣじゃないの??
190: 2018/06/01(金)13:22 ID:BryLIJlX(1) AAS
>>189
それでもせいぜい数bitだよ
191: 2018/06/09(土)23:42 ID:G0L/h/Gy(1) AAS
wikipediaに、
>32bit-floatの場合には156[dB]、64bit-floatの場合には331[dB]もの広いダイナミックレンジを確保できる。
て書いてあるのだけど、floatと違ってdoubleが理論値に1dB足されているのは何故ですか?
192: 2018/06/19(火)15:21 ID:wwqfhJ5H(1) AAS
それより32bit floatは1500dBの間違いじゃないか?
193: 2018/06/21(木)04:01 ID:MCebB1eP(1) AAS
23bit(仮数部) + 1bit(ケチ表現) + 1bit(符号) + 1bit(浮動小数点の丸め)
からの26bit * 6dBで156dBですね
194: 2018/06/22(金)08:45 ID:6YDS9B4G(1) AAS
分解能144dB、Dレンジ1530dBじゃない?
まあどうでもいいけど
195: 2018/07/04(水)22:26 ID:gFgZc5FG(1) AAS
3H5
196: 2018/07/05(木)16:50 ID:AeL6VB/V(1) AAS
3H5
197(1): 2018/08/08(水)19:42 ID:QQwYQmeI(1) AAS
libsoxの馬鹿、Cygwin上では動くのに、Linuxだとコアダンプするし
ドキュメントはAPIの説明全然してないし、サンプルコードも役に立たん
結局sox_init()の後sox_format_init()を実行すると正常に動くようになった。
198: 2018/08/08(水)19:46 ID:HAJMvi6f(1) AAS
お前が馬鹿
199: 2018/08/09(木)20:22 ID:PClx2Er2(1) AAS
>>197
libsoxは品質は良いけどドキュメントがダメすぎるよね。
自身でソース見て動作を把握したうえで引数を与えないと、意図しない動作する関数がある。
200(5): 2018/10/16(火)02:01 ID:tty+WjiQ(1) AAS
人いるかわからんけど訊いてみる
シンセ用のオシレータ作ってるんだけどルックアップテーブル作らないで(要は1つの波形につき1つのテーブルのみ)
アンチエイリアシングしたいんだけど不可能?
201: 2018/10/16(火)15:17 ID:8sXafO5g(1/2) AAS
再生速度を変えないって事?
なら再生するサンプルレートに合わせてあらかじめ変換しておけばいいんじゃない
202(1): 2018/10/16(火)16:05 ID:ZvGxYVqs(1/2) AAS
シンセだから当然速度は変える 波形はユーザ定義が可能でリアルタイム処理を想定してる
あとsync処理とかも実装してる
203: 2018/10/16(火)16:36 ID:8sXafO5g(2/2) AAS
グラニューシンセシスの事だろうか…
204: 2018/10/16(火)21:27 ID:ZvGxYVqs(2/2) AAS
いや、ただの波形メモリ音源を作りたいだけ
205: 2018/10/16(火)22:30 ID:y1qmHi4n(1) AAS
単なる線形補間でいいんじゃない?
206: 200 2018/10/17(水)00:17 ID:L+EpcCS9(1/5) AAS
一次補間してもしないのと同じぐらいエイリアスノイズが出るんです
207: 2018/10/17(水)01:41 ID:OdjSavZy(1) AAS
bit数勘違いしててオーバーフローだろ
208: 2018/10/17(水)04:28 ID:N1jYPFTP(1/2) AAS
ちゃんとテーブルのサイズ2の冪+1になってる?
209: 200 2018/10/17(水)12:26 ID:L+EpcCS9(2/5) AAS
テーブルサイズは1024固定、受け取る元データは2^n (n:2-10)の長さ
2^10未満の長さのデータについてはバイリニアで1024まで拡張
というか再生周波数に応じて帯域制限したテーブル複数用意する方法ならとっくに実装しているので、
>>200>>202の条件でエイリアスノイズを除去したいんです
210: 200 2018/10/17(水)12:31 ID:L+EpcCS9(3/5) AAS
バイリニア→ニアレストネイバー
211: 2018/10/17(水)13:10 ID:zei/ulNC(1) AAS
出力サンプリング周波数より精度の高いカウンターを用意して、
波形メモリの参照先が半端になる場所は(1つのサンプルに対して切りが悪い状態の時)、
次の波形参照先を合成して出力電圧にする。 合成具合はカウンターの値からどっちが何%って計算できる。
多分、画像のアンチエイリアスとやってる事は同じ。
212: 200 2018/10/17(水)19:35 ID:L+EpcCS9(4/5) AAS
つまり何らかの補間を施せっていうことですか
補間云々でどうにか出来るのでしょうか
213: 2018/10/17(水)19:39 ID:N1jYPFTP(2/2) AAS
補完は元の領域でローパス掛けてるだけだから原理的にどうしてもエイリアシング残るよ
(ほぼ)完全に除去したいなら4倍以上でオーバーサンプリングしなきゃダメ
214: 200 2018/10/17(水)19:49 ID:L+EpcCS9(5/5) AAS
やっぱり逝きつく先はオーバーサンプリングか
なるべく低容量かつ高速なものを目指しているのですが両立は厳しいようですね
アドバイスありがとうございました もうしばらく考えてみます
215: 2018/10/29(月)16:46 ID:pz8ttMdG(1) AAS
200がまだいるか分からないけど
その1024サンプルをFFTしといて、
読み出しスピード決まった時に、帯域外になるエレメントを0にしてIFFTしたの(実部)から
直近2サンプルの直線補完で再生すればいいんじゃない?(適当)
繰り返し波形だから窓も要らない
それなりに知識があれば、読み出し用FIR型LPFを随時生成するとかの方が良いと思うけど
移動平均+軽いIIR型LPFとかでも良いと思うけど
どれくらい処理能力に余力があるのかとか、求める音による(シンセだし)と思うなあ
216: 2018/11/10(土)05:45 ID:+8RptJu7(1) AAS
オシレータにFFT使えば最強じゃね!?
っていうのは誰でも思いついていざ実装して絶望するやつだw
217: 2018/11/10(土)09:44 ID:2b41DCK4(1) AAS
それ単にFFTを知らないだけじゃねーか
218: 2018/11/10(土)13:43 ID:KutuN/gN(1) AAS
>要は1つの波形につき1つのテーブルのみ
それすら不要ん
219: 2018/11/11(日)23:12 ID:/8+mLG61(1) AAS
この流れ、てっきり波形テーブルベースだと勘違いしてたわ…
テーブル用意する的なこと書いてるし
220: 2018/11/11(日)23:42 ID:9MRXNWIm(1) AAS
勝手な持論展開していってるだけやんけ
221: 2018/11/13(火)14:19 ID:90McxFB4(1) AAS
質問は的確に
222: 2018/11/27(火)21:15 ID:VopAN/B8(1) AAS
FFTといえば大浦さんのFFTSG使ってたけど、最近出てきたOTFFT早い!
223: 2018/11/28(水)02:51 ID:CePP/UJb(1) AAS
それってintelやappleのライブラリより早いの??
224: 2018/11/28(水)10:31 ID:FHdQm/o/(1) AAS
intelならintelのsimdコンパイラが楽やわ
レーン数見分けて動いてくれるし速いライブラリに近いスピードが出るから
ライブラリに頼らないで好きな形で組める
225: 2018/11/28(水)18:08 ID:0nkPaznP(1) AAS
コンパイラたけえよ
226: 2018/11/29(木)09:08 ID:yU/wrNQd(1) AAS
ispcはフリーだよ
商用利用は知らん
227: 2019/03/23(土)11:35 ID:AyZnEV/D(1) AAS
おや、こんなスレがあったんだな!
MIDIもここでいいのか?でもスレ検索しても2単語しか出てこなかったけどなwww
よく市販のMIDIアプリでIN/OUTを設定したら
ほかのアプリで同じデバイスを指定しようとするとロックされて開けないのがあるんだが
あれはどんなAPIで他からの接続をロックしてるんですかね?
228(1): 2019/03/23(土)18:50 ID:ypyP50XG(1) AAS
MIDI APIのmidiOutOpen()ですでに他に開いてるのがいたら
MMSYSERR_ALLOCATEDが返ってくるんじゃないかね
229(1): 2019/03/24(日)14:10 ID:gjdju94t(1) AAS
VSTプラグイン作りしているヤシいる?
230: 2019/03/25(月)17:06 ID:EDSujopE(1/2) AAS
>>228
ああそうか!そういうリザルトあったね!
でもダブってデバイス開いてもあまり問題は起きないんだけどね
むしろ一度デバイスつかんだら放してくれなくて
他のに繋ぎ変えたいとき再起動しないとどうしようもないってアプリもあるんだよね…orz
デバイス解放するのってmidiInReset()とかだっけ?
231(1): 2019/03/25(月)17:38 ID:EDSujopE(2/2) AAS
あれ?確認しようと「midiInReset」でググったら
「midiOutReset」しかでてこないよ?
検索キーワードが強制的に変えられてる
なんで?
232(1): 2019/03/25(月)18:29 ID:5o6KsSB6(1) AAS
>>231
外部リンク:docs.microsoft.com
デバイス掴まれて離さないときは、デバイスマネージャから
デバイス無効化してから再度有効化で離すかもしんない
233(1): 2019/03/25(月)20:24 ID:x64m1R2Z(1) AAS
>>232
なるほど、そういう解放の仕方もあるのか
で
意図的に2重に開いて
MMSYSERRを見たら
MMSYSERR_ALLOCATED = 4じゃなくて
MMSYSERR_NOTENABLED = 3 : ドライバがロードまたは初期化に失敗しました。
が返ってきたわ
そしてよくよく考えたら
先行して開いてたアプリにロックされてたんじゃなくて
省1
上下前次1-新書関写板覧索設栞歴
あと 88 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 2.343s*