X



サウンドプログラミング6 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2016/01/04(月) 16:42:19.79ID:tGIZuuwU
落ちていたので立てました。
テンプレ等はお願いします。
0109デフォルトの名無しさん
垢版 |
2017/02/28(火) 12:01:58.90ID:4MppRDf5
FM変調なんて出る音は想像しにくいけどアルゴリズムは超シンプル
何がわからないのかわからないし
他人にタダでプログラム読ませてレビューさせようとする態度じゃ開発やめた方がいいよ
0110デフォルトの名無しさん
垢版 |
2017/04/12(水) 08:11:26.25ID:/jqIJjt6
自分のメモも含めて
離散フーリエ変換(DFT/FFT)や離散ウェーブレット変換(DWT)を実装したいけどググっても
数式が列挙されているような記事ばかりで高卒の自分にはさっぱり判らん
出来れば時間情報を残したいので最終的にはDWTの実装が目標
数式がずらずらより抽象化された資料や最低限の実装例が欲しいけどなかなか見つからない

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

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

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

  Ruby で FFT (高速フーリエ変換) を書いてみた - まめめも
  ttp://d.hatena.ne.jp/ku-ma-me/20111124/p1
  Ruby的な書き方をしている上に再帰呼び出しをしているとはいえ驚異的に短い。これ、あっているのか?
  正しいなら理解を助ける一助になりそう(自分はRubyメインだし)
  参考元のコードも比較的コンパクトに書かれている
DWT
 めぼしい資料は未発見
窓関数
 未着手
0112デフォルトの名無しさん
垢版 |
2017/04/12(水) 13:02:36.08ID:9SHPN4Bm
フーリエ変換後にやりたいことに合わせて処理を簡略化するんだよ
律儀にやる必要はない
0113デフォルトの名無しさん
垢版 |
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個のみのような気がするが・・・

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

あと明記されていない以上どう扱うかは“実装による”と言うオチが付きそうな気がしなくもない
タグだって標準的ではない情報を入れようと思ったらそれっぽい名前のフィールドをでっち上げるしかないわけだし
0115デフォルトの名無しさん
垢版 |
2017/04/16(日) 16:24:37.74ID:EW1HZm+Z
>>114
ありがと。

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

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

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

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

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

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

それは避けたい(まぁ実際に PADDING を複数作ることは無いが、例として挙げた)。
0116デフォルトの名無しさん
垢版 |
2017/04/16(日) 16:51:04.55ID:ju5nlg6N
何をしたいのかわからんけど

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

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

で、一般論としては、ドキュメントに明記されてなきゃ実装依存だろ、
とのアドバイスをもらったたころ。
0118デフォルトの名無しさん
垢版 |
2017/04/16(日) 18:03:49.99ID:In2SIYB2
>>115
結局何を優先したいのかが重要じゃないかな?仕様に忠実だからといって最大の互換性を得られるとは限らない
仕様上は問題ないけどイレギュラーな構造や値の入ったデータはそれだけで互換性の問題を起こしやすいよね
互換性最大だったら公式ツールが吐くデータに添うのが現実的では。一般的にそれらは1ファイルに付き1つだよな?
0119デフォルトの名無しさん
垢版 |
2017/04/16(日) 21:37:58.52ID:EW1HZm+Z
>>118
何を優先したいかじゃなくて、まずは仕様を正しく知りたい。

正しく知った上で、じゃあ互換性を優先しようかどうかと考えるんだけど、
それは仕様を知ることとは別問題でしょ。
互換性を優先するのが目的ならば仕様を正しく知る必要はない、
なんてことは無いと思うんだよ。
0120デフォルトの名無しさん
垢版 |
2017/04/18(火) 11:50:35.72ID:Uw8XacGP
正論
0123デフォルトの名無しさん
垢版 |
2017/04/24(月) 22:50:33.16ID:5SkK+wN+
仕様がないと困る人はRubyとか使えないんだろうなぁ。Rubyは仕様が存在しない言語だしな
0125デフォルトの名無しさん
垢版 |
2017/04/26(水) 19:53:26.36ID:N3EoiivC
PCMデータから特定の音(倍音も含む)のみを抽出・抑制したいのでPCMデータとパラメータ(周波数とゲインのセットが多数)を
入力するとパターンに従ってPCMデータを加工してくれるEQライブラリ的なのってありませんかね?
パラメータは処理中に変化していくため既成のソフトウェアでは対応できそうにないので自作を考えています

パラメータの与え型は
ttp://alphamanual.audacityteam.org/man/Equalization
みたいな感じをイメージしています。倍音を抽出する場合は方形波状に沢山窓を並べることになると思います
0126デフォルトの名無しさん
垢版 |
2017/04/27(木) 02:26:58.97ID:4f2PttoG
DFTで特定の周波数だけ計算してしまえばいい。

位相も一緒に計算しておいて逆位相を加えれば消えてくれる
0127125
垢版 |
2017/04/27(木) 20:58:20.62ID:dgH+5qJ3
>>126
スマン、何を言いたいのか判らん
DFTというかFFTして該当周波数だけ取り出して、位相を180度回転したものをIFFTして加算合成ってこと?
0129125
垢版 |
2017/04/28(金) 07:58:24.02ID:E80Nlt1P
今は自作のフィードバック型コムフィルターで実験していますが、強く掛けようとすると通過する帯域が狭くなるためか
ケロってしまうので通過させる帯域を調整出来るようにしたいです

>>128
DFTって時間&振幅を周波数&振幅&位相に変換する処理だよね?特定の周波数だけDFTってどういう事?
0131デフォルトの名無しさん
垢版 |
2017/04/29(土) 16:31:29.75ID:cjUk9ycm
DTFなんて持ち出さなくてもIIRで作ったLPF/HPF/BPFなどを組み合わせるのではダメなのか?
一般的にその手のアプリケーションに搭載されているエフェクターってそうやって作られていたような
0132125
垢版 |
2017/05/03(水) 16:41:17.69ID:RzE6nrtc
DFTがらみは良く判らないので
ttp://vstcpp.wpblog.jp/?page_id=523
を参考にBFPを組んで実験

同じホワイトノイズに対して通過させる目標の周波数を440Hzとして処理した結果
ttp://uploader.purinka.work/src/1067.png
上から自作BPF、自作CombFilter(freedback型)、AudacityのEQ
自作BPFのスペクトル ttp://uploader.purinka.work/src/1068.png
自作CombFilterのスペクトル ttp://uploader.purinka.work/src/1069.png
AudacityのEQのスペクトル ttp://uploader.purinka.work/src/1070.png
 EQに与えたパラメータ ttp://uploader.purinka.work/src/1071.png

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

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

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

>>130
ググっても使用例とか全然出てこないので良く判らないんだけど
FFTは取り得る全ての周波数について計算するけど、その中の一部の周波数だけ計算するって話?
0133デフォルトの名無しさん
垢版 |
2017/05/03(水) 20:04:27.68ID:qGc238z1
>>129
一部だけ計算するという理解でOK
DFTもFFTも波形の周波数特性(振幅+位相)が得られる。

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

あとはサンプリング分解能(サンプリング周波数÷サンプリング数)を上手く選べば所望の値が精度よく得られる
0134125
垢版 |
2017/05/04(木) 14:56:15.76ID:FfjpCVh7
>>133
少しイメージできた、ありがとう。DFTを使って一部を抜き出すとしたら目標とする周波数の付近のみ
DFT結果に相当する波形を生成しそれらを合成するという手順でいいのかな?

ただしDFTだとどうであれある程度の時間分を計算をする必要がありますよね
原理的に周波数分解能と時間分解能の両立はできないと思っているのですが何か改善策はあるのでしょうか?
昔別件でFFTの使用を検討したことがありますが上記の課題を解決できずに棚上げになっています
0136デフォルトの名無しさん
垢版 |
2017/05/04(木) 20:05:30.63ID:N4OE9pV/
>>135
いやいや横割で何言ってんの?
どうせ不確定性定理のことを言ってると思うけど窓フーリエも何もやってない。周波数一点狙い縛りのときは格段に精度がよくなることを知らないな?

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

あとはDFTの計算さえ間違わなければ、所望の値が求まる。計算コストはNオーダー。
0137デフォルトの名無しさん
垢版 |
2017/05/04(木) 20:20:29.59ID:N4OE9pV/
例えば1000Hzの音を拾いたいとき、周波数分解能が19Hzだったりすると1000Hzが正確に拾えない。周波数特性をグラフにプロットすると、1000を中心にして根元周辺に連続的な山ができる。

周波数分解能が1000の約数だと、周波数特性グラフは根元の山はなく、一点だけのピークができる
0138125
垢版 |
2017/05/05(金) 00:28:15.86ID:ayKeenIH
自分の中での整理もかねて・・・また長くなってすみません
話の発端
ttp://uploader.purinka.work/src/1074.png
この中から必要な音だけを抽出したい
このサンプルは音声ですが必ずしも音声とは限らないです、楽器音の消去・修正なども考えています
オレンジ色の線が基準と思われる周波数を線引きした物です
音声の場合は倍音も必要なのでこの周波数で櫛歯状のフィルターを駆動すれば欲しい音だけ得られるのではないかと考えた
簡単に櫛歯状の通過特性を得られる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を目標として処理するならばそのようなことも可能だと思いますが
人工的に処理に都合の良い信号を作らないかぎりそのような状況はまず無いと思うのですが・・・
現実には関連する要素に少なからぬ誤差が含まれていると思われますし
0139デフォルトの名無しさん
垢版 |
2017/08/29(火) 22:25:30.02ID:gHVKpw9z
.NET Frameworkで使用可能なALAC形式を読み書きできるライブラリを
ご存知ないでしょうか?
16-32bit/44.1-384kHzに対応しているものが希望なのですが。
0141デフォルトの名無しさん
垢版 |
2017/08/30(水) 20:38:17.85ID:lUUDwXpa
>>140
ありがとう。
デコードはできそうな気がするけど、エンコードはできないように見える。
0142デフォルトの名無しさん
垢版 |
2017/09/05(火) 21:23:31.36ID:bvinrZZw
>>140
残念ながら24bitまでで32bitには対応していませんでした。
0144デフォルトの名無しさん
垢版 |
2017/09/07(木) 21:00:07.22ID:UN1jZKf9
>>140
ALAC.NET自体は24bitまでしか対応していませんが、修正して32bit Integerに対応させる事ができそうです。
refalac.exeでエンコードした32/352.4をデコードしてバイナリ一致する事が確認できました。
ありがとうございました!
0145デフォルトの名無しさん
垢版 |
2018/01/06(土) 04:18:21.79ID:PT8U+FhC
音の加工についてプログラムの観点から理論で解説してある書籍かサイトないですか?
例えば、何をどうすればエコーがかかるとか、何をどうすればライブ会場みたいな響きになるとか。
PCMを加工する形で遊んでみたいのですが、とっかかりがなくて困っています。
プログラミングに関してはメジャーな言語を数種類自在に使える職業エンジニアなので大丈夫です。

//スマホのアプリで、普通の音楽をライブ会場風に加工して再生してくれるやつありましたよね。
//あれには大変驚いたとともに、知識があればこんなものが作れるのかと感動し、自分も何か作れないものかと思いました。
0146デフォルトの名無しさん
垢版 |
2018/01/06(土) 08:53:09.43ID:oCunP7AG
「サウンドエフェクト プログラミング」でググると、理論解説した書籍やプログラミング方法を解説したサイトが出てくる
0147デフォルトの名無しさん
垢版 |
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
0148145
垢版 |
2018/01/06(土) 14:31:29.37ID:PT8U+FhC
>>146-147
ありがとうございます。
調べてみます。
0149デフォルトの名無しさん
垢版 |
2018/01/06(土) 17:52:06.99ID:nSHs9ovb
漏れは、YouTube みたいに、再生速度が速くなったり遅くなったりするのに、

音程が上下せず、一定にできる秘密を知りたい
0151デフォルトの名無しさん
垢版 |
2018/01/06(土) 19:40:24.51ID:vOSbfzhE
秘密もクソもあるかい
CDだって早送りしてもピッチは変わらないだろ
アナログみたいに周波数を上げるのではなくて、データを適当に間引くだけだし
0154デフォルトの名無しさん
垢版 |
2018/01/12(金) 16:14:13.87ID:8pSCsnoo
データを間引くというのは、要するにサンプリングレートを落とす(ダウンサンプリング)ということですよね?
0156デフォルトの名無しさん
垢版 |
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負荷軽減のために大雑把に処理してるだけ
0158デフォルトの名無しさん
垢版 |
2018/01/13(土) 01:24:22.04ID:alKQWrZk
なるほど、間引く間隔が大きいんだね
1〜数サンプル単位で間引くイメージで考えてた
そんなに不連続ならクリックノイズ対策要りそう
0163デフォルトの名無しさん
垢版 |
2018/01/22(月) 14:40:50.33ID:MclXUrRv
データを1/2に間引いたのなら周波数はあがるだろう、早送りが高い音になるのと同じように
データを間引いても周波数が変わらないようにするには、どうすればいいかな?
0166デフォルトの名無しさん
垢版 |
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);
}
上手く再生されなくて問題の切り分けをしたいので
まずここだけ合ってるか教えてください。
0167デフォルトの名無しさん
垢版 |
2018/01/28(日) 17:22:59.74ID:Zu0i2wvf
>>>論理シフト
>>算術シフト
あってそうだけど
念のため
(byte)(0x0ff & (raw[i] >>> 8));
0168166
垢版 |
2018/01/28(日) 18:34:05.34ID:cgdhBoSx
>>167
ありがとうございます。
念のために上位の8bitを0で埋めるんですね。
頑張ります。
0169デフォルトの名無しさん
垢版 |
2018/01/28(日) 18:42:17.08ID:uuTAMxHG
>上手く再生されなくて問題の切り分けをしたいので

小出しはよくない
0171デフォルトの名無しさん
垢版 |
2018/01/29(月) 04:44:46.37ID:7znYjzbE
問題はそこじゃないとおも
0172デフォルトの名無しさん
垢版 |
2018/01/29(月) 19:32:12.54ID:SlQpy0Cj
javaは知らないけど、奇麗な割算なら、コンパイラーが勝手(最適化適応時)にシフトに変換するんでは?
人間が分かりにくいように書く必要はない。
0173デフォルトの名無しさん
垢版 |
2018/01/30(火) 13:33:57.21ID:3LqhIh8a
分かった、負の数をシフトしたことによって、頭が0で埋められて違う値になった。
0177デフォルトの名無しさん
垢版 |
2018/02/16(金) 06:41:48.64ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0178デフォルトの名無しさん
垢版 |
2018/02/20(火) 21:36:32.32ID:4B02mjKW
確か8bitフォーマットはunsigned扱いだよ
だから (raw>>8)+128
音に限らずよくトラブルになるやつ
0179デフォルトの名無しさん
垢版 |
2018/05/12(土) 11:03:12.89ID:pDgCeBjY
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

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

6D9QH
0181デフォルトの名無しさん
垢版 |
2018/05/24(木) 01:23:59.85ID:fftgGS82
空中元素固定装置
0182デフォルトの名無しさん
垢版 |
2018/05/24(木) 23:41:53.62ID:xmDpqFfV
すみません教えてください
マイコンなどのPWMで、ピーとかポーとかは鳴らせるのですが、
ピンとかポンのように弾む感じの音を作ることはできるのでしょうか?
マイコン以外に何か回路が必要ですか?
波形としては時間が経つにつれて振幅が減衰すると言えばいいでしょうか・・・
0183デフォルトの名無しさん
垢版 |
2018/05/25(金) 00:02:36.15ID:Wenrq1RR
短時間のクロックを立ち上げてフィルタに入れればプッとかポッて音にできるよ
0185デフォルトの名無しさん
垢版 |
2018/05/30(水) 22:09:11.56ID:/2TFCeAy
>>183
ありがとうございます。CRで適当にフィルタを作ってみたところ
出ました。
>>184
矩形波しか出ないと思い込んでいました。
上記のフィルタで三角波のようなものも出せました。
今、PWMで音声出力に挑戦しています。
0187185
垢版 |
2018/05/31(木) 02:30:25.32ID:Lwc6NAPI
どうにかこうにかWAVをPWM1チャネルで再生することができました
昔の電話みたいで音質わるいですが・・・
0191デフォルトの名無しさん
垢版 |
2018/06/09(土) 23:42:43.89ID:G0L/h/Gy
wikipediaに、
>32bit-floatの場合には156[dB]、64bit-floatの場合には331[dB]もの広いダイナミックレンジを確保できる。
て書いてあるのだけど、floatと違ってdoubleが理論値に1dB足されているのは何故ですか?
0193デフォルトの名無しさん
垢版 |
2018/06/21(木) 04:01:32.82ID:MCebB1eP
23bit(仮数部) + 1bit(ケチ表現) + 1bit(符号) + 1bit(浮動小数点の丸め)
からの26bit * 6dBで156dBですね
0195デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:26:06.38ID:gFgZc5FG
3H5
0197デフォルトの名無しさん
垢版 |
2018/08/08(水) 19:42:52.22ID:QQwYQmeI
libsoxの馬鹿、Cygwin上では動くのに、Linuxだとコアダンプするし
ドキュメントはAPIの説明全然してないし、サンプルコードも役に立たん
結局sox_init()の後sox_format_init()を実行すると正常に動くようになった。
0198デフォルトの名無しさん
垢版 |
2018/08/08(水) 19:46:31.07ID:HAJMvi6f
お前が馬鹿
0199デフォルトの名無しさん
垢版 |
2018/08/09(木) 20:22:25.36ID:PClx2Er2
>>197
libsoxは品質は良いけどドキュメントがダメすぎるよね。
自身でソース見て動作を把握したうえで引数を与えないと、意図しない動作する関数がある。
0200デフォルトの名無しさん
垢版 |
2018/10/16(火) 02:01:47.21ID:tty+WjiQ
人いるかわからんけど訊いてみる
シンセ用のオシレータ作ってるんだけどルックアップテーブル作らないで(要は1つの波形につき1つのテーブルのみ)
アンチエイリアシングしたいんだけど不可能?
0201デフォルトの名無しさん
垢版 |
2018/10/16(火) 15:17:45.71ID:8sXafO5g
再生速度を変えないって事?
なら再生するサンプルレートに合わせてあらかじめ変換しておけばいいんじゃない
0202デフォルトの名無しさん
垢版 |
2018/10/16(火) 16:05:06.80ID:ZvGxYVqs
シンセだから当然速度は変える 波形はユーザ定義が可能でリアルタイム処理を想定してる
あとsync処理とかも実装してる
0206200
垢版 |
2018/10/17(水) 00:17:55.86ID:L+EpcCS9
一次補間してもしないのと同じぐらいエイリアスノイズが出るんです
0207デフォルトの名無しさん
垢版 |
2018/10/17(水) 01:41:04.42ID:OdjSavZy
bit数勘違いしててオーバーフローだろ
■ このスレッドは過去ログ倉庫に格納されています