X



サウンドプログラミング6 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2016/01/04(月) 16:42:19.79ID:tGIZuuwU
落ちていたので立てました。
テンプレ等はお願いします。
0032デフォルトの名無しさん
垢版 |
2016/06/11(土) 01:50:49.55ID:rinLhlP/
>>29
複数の音を混ぜるだけなら普通に加算と飽和処理でいいと思うよ。

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

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

ピアノだったらもっとも音量の大きい弾いた瞬間が10音以上重なることはまずないから
飽和することはほとんどないと思う。
0034デフォルトの名無しさん
垢版 |
2016/06/11(土) 14:09:25.26ID:rinLhlP/
クリッピングでいいよ。
この場合はオーバーフローを起こさないように処理するだけ
003529
垢版 |
2016/06/13(月) 16:54:19.77ID:ZZeoKTcg
>>32
なるほど具体的な回答ありがとうございます。
最大10音重なる想定であれば一つあたりは10%程度にするものなんですね。
なんとなくリアルのピアノでの一音と同じ強さで弾いた10音が10倍の音量になっているようには聞こえないかなと思ったのと、
かと言って10音で弾いた内の1音が、単音の場合より小さく聞こえるわけでもない気がするので、
音が混ざるとはどういう現象なのかわからなくなった次第です。
003632
垢版 |
2016/06/13(月) 19:54:39.26ID:38WIORgK
そのへんは振幅と音量(音圧レベル)の関係あたりを調べるとわかってくると思う。
0037デフォルトの名無しさん
垢版 |
2016/06/13(月) 23:11:37.02ID:rW97iPBZ
>>34
そうですか。
単なるクリッピング処理の事に飽和演算なんていう専門用語があったのが驚いた。
003832
垢版 |
2016/06/14(火) 00:15:55.01ID:uA7OoyVz
厳密にはクリッピングと飽和演算は違うけどね
0039デフォルトの名無しさん
垢版 |
2016/08/01(月) 05:10:24.95ID:jWRnEQcA
CPUで32倍以上のオーバーサンプリング処理するとむちゃくちゃ重いんですが、
CUDAでやったら劇的に軽くなったりしますか?
0040デフォルトの名無しさん
垢版 |
2016/08/01(月) 07:48:00.50ID:U+4K15gc
「CPUでオーバーサンプリング処理」が意味不明
アップサンプリングのことか?
0042デフォルトの名無しさん
垢版 |
2016/08/01(月) 13:14:44.35ID:U+4K15gc
だから意味不明なんだが
どうやって「CPUで」オーバーサンプリングするんだよ?
0044デフォルトの名無しさん
垢版 |
2016/08/01(月) 18:01:08.66ID:U+4K15gc
はあ?
「CPUでオーバーサンプリング」の具体的な意味を少しは言ってみろよ
キモイ顔文字野郎
0046デフォルトの名無しさん
垢版 |
2016/08/01(月) 18:09:54.48ID:U+4K15gc
はいはいオーバーサンプリングの意味すら知らないということは良く分かったよ
もったいぶることしかできないクズ野郎
0047デフォルトの名無しさん
垢版 |
2016/08/01(月) 18:14:29.10ID:ijiGYH3A
答えもしないくせに他人のこと暴言吐くことしかしない変な奴w
しかも元の質問者そっちのけ
0048デフォルトの名無しさん
垢版 |
2016/08/01(月) 19:35:55.91ID:U+4K15gc
何言ってるんだこの糞ボケ
答えもしないで因縁だけ付けてるのはお前だよ
俺は「CPUでオーバーサンプリング」の意味を確かめてるだけだよ
それがはっきりしないと答えようもないからね
0049デフォルトの名無しさん
垢版 |
2016/08/02(火) 02:53:26.43ID:zIQElDG0
厳密な意味を求めるのもわかるけど、相手のレベルが分からない以上
質問の内容をある程度の推測も必要だと思う。

それはさておき…

音声処理に詳しくないから一般的なところだけど、
「むちゃくちゃ重い」の原因は何だろう?どんなアルゴリズムなんだろう?
って思った。
005139
垢版 |
2016/08/02(火) 07:39:11.14ID:DaHE/ld1
本当に申し訳ないのですがそのままの意味です
GPGPU・FPGAの音声処理に詳しい方もいらっしゃらないようですので以後スルーでお願いします<m(__)m>
0052デフォルトの名無しさん
垢版 |
2016/08/02(火) 09:32:11.13ID:Xrtvt7f9
あらあら
で結局アップサンプリングのことなんだろ?
マルチレートフィルタをちゃんと勉強しないと何でやろうがダメだろうな
0053デフォルトの名無しさん
垢版 |
2016/08/02(火) 13:09:49.59ID:/H52nZHS
どうせフィルタの効率的な作り方なんて全く知らなくて
大きな係数のフィルタを古い教科書通りの時間領域の積和処理で作ってるとかだろ
この手の処理がFPGAで早くなるなんてことはないし、GPGPUでも一緒
殆どメモリアクセスがネックなんだから
0054デフォルトの名無しさん
垢版 |
2016/08/03(水) 23:11:07.31ID:H9sZl6IJ
>>44
いやサンプリング済みのデータに対してCPUでオーバーサンプリングすることは可能だが
その場合の意味はアップサンプリングの前段処理に他ならない
0057デフォルトの名無しさん
垢版 |
2016/08/05(金) 08:12:28.94ID:9GrcbVCu
>>54
輪をかけて意味不明なこと言ってどうする?

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

それは「アップサンプリング」「補間」とかもっと一般的には「サンプリング周波数変換(N/M)」と呼ばれるものだから。
オーバーサンプリングというのはな、ADCやDACについて言われることで、
サンプリング周波数を、扱う信号の最高周波数×2より高くすることだ。
特別なことがない限りCPUで行うものではない。
0058デフォルトの名無しさん
垢版 |
2016/08/05(金) 11:44:44.32ID:Po0F8W8G
アナログフィルターって無限まで周波数があるし
デジタルがいくらオーバーサンプリングしてもかてるわけないしな
0059デフォルトの名無しさん
垢版 |
2016/08/05(金) 12:19:55.79ID:jqFTRyEe
オッサン世代の俺は、ソフトシンセの進化の物凄さに、
卒倒する思いだわw
0060デフォルトの名無しさん
垢版 |
2016/08/05(金) 13:22:37.14ID:Po0F8W8G
CPUの処理速度が代わってないのに進化する訳ないじゃん。
逆に耳が慣れたんだと思うな。
0061デフォルトの名無しさん
垢版 |
2016/08/05(金) 14:53:12.32ID:jqFTRyEe
いや。大昔、PCMからFM音源に移行した際、感動したくらいの
オッサン年齢だからね。
0062デフォルトの名無しさん
垢版 |
2016/08/06(土) 00:41:22.59ID:24x7Voe3
リアルタイムのシンセシスやウェーブシェーピングは10年前くらいと処理速度ほとんどかわんないね
ムーアの法則なにそれおいしいのって感じ
0063デフォルトの名無しさん
垢版 |
2016/08/06(土) 03:05:57.47ID:J71d/99Z
なんちゃってリズムマシンをプログラミング中
割と楽しいっす
0065デフォルトの名無しさん
垢版 |
2016/09/20(火) 00:06:26.14ID:8JrnwUlq
サウンド処理によく使われるファンクションを詰め合わせたライブラリってありませんか?
グラフィック処理で言えばImageMagickやOpenCVみたいなものです
出来れば日本語の情報が充実していると助かります

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

というかAudacityのNyquistで実現できないかと調べていたのですが複数のトラックの情報を
元に処理して出力を得る方法が見つけられず、他のDAWアプリケーションにもそのような処理が
出来るような物はないようで、自分で作るしかなさそうです・・・
0066デフォルトの名無しさん
垢版 |
2016/09/20(火) 05:13:01.62ID:BpKeAQLu
SuperCollider, Pure Data, Chuck, Csound の話題はスレ違い?
0067デフォルトの名無しさん
垢版 |
2016/11/02(水) 21:32:00.39ID:Q6Jz9mnm
アップサンプリングに関してですが
直線位相FIRのインターポーレーションフィルタをかける場合
適切なタップ長と窓関数が纏まっているページはありませんか?
もしくはもっと技巧を凝らさないと
元波形と完全に一致するレベルにはならない、とか、何かあります?
今のところ128倍とか、高いアップサンプリングは割と精度が出るんですが
むしろ、4倍とかそこいらの低めのアップサンプリングで精度が出なくて困っています
0068デフォルトの名無しさん
垢版 |
2016/11/04(金) 00:52:23.99ID:F3Z+9apm
「適切な」とは何かわからないけど
とにかく理想的になればいいというのであれば、可能な限りタップ長を長くすればいい
ただしビット深度もそれなりに高くないと意味がなくなる
まずそれがうまくいってないなら、どこかに間違いがあるか、うまく計算できていない箇所がある
タップ長が限られるなら窓関数によって主に、フィルタの切れ味とストップバンドの低さのトレードオフになる
そもそも直線位相だからと言って波形が全く一致することになるわけではない
(完全に一致するということは、折り返し成分も再現されたようなもの、これもどの程度のことを言ってるのかわからないけど)
0069デフォルトの名無しさん
垢版 |
2016/11/04(金) 21:06:59.71ID:0Q9lLkWk
返信ありがとう
今のところ完璧といってよいぐらいの精度、(24bitの分解能以下の誤差)は出てるんですが
なぜか音は悪いです
テストの方法は、適当な波形を用意して、それを間引いて
(というか間引きたいところをゼロにして)
それにインターポーレーションをかけて得られた結果を
元の波形と比べてどれぐらい一致しているかを判断しています
このテストではかなりうまくいっているのに
実際の音楽をアップサンプリングするとあまり音がよくなくて困っています
タップ長は2倍のアップサンプリングでしたら33タップです
アップサンプリングの倍率*8*2+1、で計算しています
窓関数は160dBのカイザー窓です
いろいろ試したらこれが一番精度が良さげだったのでそうしています
0070デフォルトの名無しさん
垢版 |
2016/11/05(土) 00:15:25.05ID:R7F8CRTQ
アップサンプリングで補間されたとこは元データに存在しないと思うけど、
誤差がほとんどないってのはそこを除いた部分に関してだよね?
そうなら、聞いた感じが違うのはあり得るんじゃない?
0071デフォルトの名無しさん
垢版 |
2016/11/05(土) 00:21:14.17ID:BZMicsTd
>>69
まず33タップはオーディオ信号処理としては短いと思いますよ(遅延があると困る場合は仕方ないけど)
sinc関数のどこ(の振幅レベル)で切られることになるか確認してみましょう
それに-160dBまで押さえ込もうとしているんだとしたら相当緩いフィルタになってると思いますよ
出来上がった33タップの係数から周波数特性を確認してみましょう
かなりカットオフ周波数を下げないと折り返しが漏れまくりだと思います
(z関数の式で確認すればビット深度の影響を除外できます)
それに24bitは144dBしかDレンジないですよ(floatingだったとしても)
カイザーのβを欲張りすぎだと思います
窓関数の端の方がほとんど0になってませんか?(floatでもあまりに小さい値になってると積和する時に捨てられることになります)
0072デフォルトの名無しさん
垢版 |
2016/11/05(土) 13:14:51.80ID:2MWiQK2J
>>70
いえいえ、誤差がほとんどないというのは
適当な信号を間引いてダウンサンプリングして
もう一度アップサンプリングしたものと
もともとの波形を比べると、ほぼ差が出ないという意味です

>>71
計算自体はdoubleでやってまして
24bitの分解能以下の誤差、と言いましたのは
最終的なデバイスへの出力が24bitになるので
その分解能以下の誤差であれば問題なかろう、という意味でした
007370
垢版 |
2016/11/05(土) 14:13:45.73ID:R7F8CRTQ
>>72
ダウンサンプル前のデータに含まれる周波数は、
ダウンサンプリング後のナイキスト周波数以下のみだよね?
そうなら、
>>71の言うようにフィルタが甘くて、
アップサンプリング時のゼロ埋めで生じた高周波を適切にカットできてないぐらいしか思い付かないな。
0074デフォルトの名無しさん
垢版 |
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が一番精度が良いんですよねぇ
なぜ音が悪くなるのかは結局謎でして
もうちょっといろいろ試してみたいと思います
0075デフォルトの名無しさん
垢版 |
2016/11/06(日) 23:34:58.13ID:ikdeb1q2
あと、あり得るとしたら
「アップサンプリングの倍率*8*2+1」で計算したタップ数は
一般的なDACが内部で行っているアップサンプリングとくらべて
ちょっとタップ数が多い、のかもしれませぬ
そのため、カイザー窓を深く(160dB)かけたときに精度が高まっているのかも
なのでタップ数を減らして窓関数を浅くする実験もしてみないとダメかもしれません
どうせ最終的な出力は24bitなので、必要以上の精度は要らないですし
タップ数が増えることでプリエコーも増えるので
この辺が音質に関係している可能性もあるかもです
0076デフォルトの名無しさん
垢版 |
2016/11/06(日) 23:35:27.87ID:8dEjC33a
>>74
たぶんタップ数とフィルタの時間長を混同してらっしゃるかと・・・
それに今時は100でも少ない方かと・・・
DAC ICではさらにその後の処理もあります
精度の出し方が怪しいと思います・・・
カットオフ周波数の話が出てこないのも怪しいです・・・
0077デフォルトの名無しさん
垢版 |
2016/11/07(月) 00:51:58.38ID:gjKa+m+C
>>75

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

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

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

>タップ数が増えることでプリエコーも増えるので
あまり関係ないです
(でかい波は中央付近にいるので)
そのプリエコーでも特性が作られていることを忘れずに
気になるなら最小位相など他のタイプへ
(もっとタップ長が必要になるが)
0080デフォルトの名無しさん
垢版 |
2017/01/09(月) 13:04:41.65ID:dXL2ousU
ノイズシェーピングについてどなたか教えて下さい。
以下は3次のノイズシェーピングを行っているつもりです。
ttp://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
0081デフォルトの名無しさん
垢版 |
2017/01/09(月) 13:52:09.64ID:dXL2ousU
>>80
の訂正です。
×以下は3次のノイズシェーピングを行っているつもりです。
○以下のコードは3次のノイズシェーピングを行っているつもりです。

「以下」がリンク先を表しているように読めてしまうので訂正いたします。
0082デフォルトの名無しさん
垢版 |
2017/01/09(月) 15:52:37.55ID:4OeNzyzM
今日は朝からBraunのシェーバーのCMばかりでうざいと思ったら
9日でシリーズ9の販促特異日のようだ
0083デフォルトの名無しさん
垢版 |
2017/01/11(水) 22:07:19.53ID:y9BWQSfZ
サンプリングレート変換に使える良いライブラリが無いかと探していたら
Secret Rabbit Codeと言うのがあるのを知り有難く使わせてもらうことにした
http://www.mega-nerd.com/SRC/index.html

昔はGPLと商用ライセンスだけだったが
2016年からは2条項BSDライセンスで使えるようになった模様
0084デフォルトの名無しさん
垢版 |
2017/01/16(月) 01:39:11.07ID:dN6E9Awb
みんな自分の作ったプログラムの動作確認ってどういう風にしてる?
サウンドプログラミング興味あるんだけど、デスクトップ上で作ったプログラム
動かしてみたい
最終的にはマイコンに移植して使うからC++で書くことを前提としてる。
VSTiがいいかなと思ったけど、GUI作るのがめんどくさそうなんだよね
0087デフォルトの名無しさん
垢版 |
2017/02/11(土) 17:45:36.80ID:gpet/1oM
音の処理そのものに関することではなくメタデータに関する質問なのですが・・・
タイアップ曲があったとしてそのタグにOPとかEDとか挿入歌(1バイト文字表記でどのように書くのが適当なのか不明)などの
使用箇所を入れたいのですがこのフィールドのキーの名前として標準的な物はありますか?
いまのところVorbisCommentとAPEv2での使用を考えています
0088デフォルトの名無しさん
垢版 |
2017/02/20(月) 06:58:18.93ID:rQJDVb7o
ネタ投下。
http://ideone.com/j8JajR
https://en.wikipedia.org/wiki/Frequency_modulation_synthesis#Spectral_analysis
暇だったのでパルスジェネレータをガリガリ書いたのだけど、FMに興味が出たので書いたのだ。
んで、うまくできてるのかさっぱりわからんのでアドバイスクレクレ。
ほんと、自分が今何を操作してるのかさっぱりわからんのでたすけてくだしあ。
ちなみに数学はわからん・・・。Orz
0089デフォルトの名無しさん
垢版 |
2017/02/20(月) 19:31:36.21ID:06bh9ViU
YAMAHAのFM音源か
0090デフォルトの名無しさん
垢版 |
2017/02/20(月) 20:05:13.47ID:rQJDVb7o
>>89
うまく行ったら革つけてシンセ作りたいとか言う妄想。
でも、能力なさ過ぎてマジで何やってるのかさっぱりわからん。
0091デフォルトの名無しさん
垢版 |
2017/02/25(土) 02:21:37.25ID:c0FaT5tJ
サンプルサイズ8bitってファミコン音のイメージしか無かったけど
実際16bitの音楽ファイルを8bitに落としてみたら以外に聴ける音だね
これで安心して8bitで出力するプログラムが書けるよ
0092デフォルトの名無しさん
垢版 |
2017/02/25(土) 07:49:20.66ID:5vG+07Yi
デサンプラーの性能とかあるからね。
ファミコンは、絵とかプログラムとかまるっと揃ってあの形だから音に割けるリソースは少ない。
時代も時代だから、品質も微妙だし。
0093デフォルトの名無しさん
垢版 |
2017/02/25(土) 07:50:59.30ID:5vG+07Yi
ところでお前ら、>>88については意見をくれないのかね。
マジで何やってるのかわからないから開発止まってる。
0095デフォルトの名無しさん
垢版 |
2017/02/25(土) 16:47:30.99ID:5vG+07Yi
それもそうだな。
自分でコーディングしといてあれだが、以下のパラメータの意味がよくわかってない。
A*Fun1(InitA*Time + B*Fun2(InitB*Time));
勝手に推論してそんなもんだろうと思ってるけど、あってる気がしない。
たすけて、プリーズ。
0097デフォルトの名無しさん
垢版 |
2017/02/25(土) 23:45:17.22ID:5vG+07Yi
>>96
そうなんだけど、どのパラメータいじったらどういう効果かわかってないというか。
取り留めなくてすまない。
0099デフォルトの名無しさん
垢版 |
2017/02/26(日) 12:51:50.57ID:8Nx+2biY
x 圧倒的
o 絶望的
0102デフォルトの名無しさん
垢版 |
2017/02/26(日) 20:14:42.52ID:AwCMlr+d
間違ってこのスレ開いたら,>>88にコードがおいてあるじゃないか
雑談が多い板でそれなりのコードがおいてあるスレって珍しいな。
>>88
なにをやっているかわからないのにコードを書けるってすごいな
俺もコードは読めるが、何をしているんだ?って感じだが
0103デフォルトの名無しさん
垢版 |
2017/02/26(日) 22:55:42.76ID:EmosrxO4
>>102
識者現る。
最初は、パルスジェネレータ書こうと思ってパルスジェネレータ書いて、
FMのDTM版開いたらなんかウィキペディアのリンク張ってあるからパクるつもりで書いた。
数式を推論でコードに落としただけだから。しかし、俺には高度すぎた。そもそも文系だしな。
違和感があるならぜひ教えてほしい。
0105デフォルトの名無しさん
垢版 |
2017/02/27(月) 12:44:49.44ID:8fV4SlqM
コード書けるひとを見つけたとき

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

このパターンしかない
0106デフォルトの名無しさん
垢版 |
2017/02/28(火) 01:07:19.89ID:4ZSOFvuS
プログラムコピペして、何これ意味わからん、一から教えれと言われてもムリですマル
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は取り得る全ての周波数について計算するけど、その中の一部の周波数だけ計算するって話?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況