[過去ログ] サウンドプログラミング6 [無断転載禁止]©2ch.net (321レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
67: 2016/11/02(水)21:32 ID:Q6Jz9mnm(1) AAS
アップサンプリングに関してですが
直線位相FIRのインターポーレーションフィルタをかける場合
適切なタップ長と窓関数が纏まっているページはありませんか?
もしくはもっと技巧を凝らさないと
元波形と完全に一致するレベルにはならない、とか、何かあります?
今のところ128倍とか、高いアップサンプリングは割と精度が出るんですが
むしろ、4倍とかそこいらの低めのアップサンプリングで精度が出なくて困っています
68: 2016/11/04(金)00:52 ID:F3Z+9apm(1) AAS
「適切な」とは何かわからないけど
とにかく理想的になればいいというのであれば、可能な限りタップ長を長くすればいい
ただしビット深度もそれなりに高くないと意味がなくなる
まずそれがうまくいってないなら、どこかに間違いがあるか、うまく計算できていない箇所がある
タップ長が限られるなら窓関数によって主に、フィルタの切れ味とストップバンドの低さのトレードオフになる
そもそも直線位相だからと言って波形が全く一致することになるわけではない
(完全に一致するということは、折り返し成分も再現されたようなもの、これもどの程度のことを言ってるのかわからないけど)
69
(1): 2016/11/04(金)21:06 ID:0Q9lLkWk(1) AAS
返信ありがとう
今のところ完璧といってよいぐらいの精度、(24bitの分解能以下の誤差)は出てるんですが
なぜか音は悪いです
テストの方法は、適当な波形を用意して、それを間引いて
(というか間引きたいところをゼロにして)
それにインターポーレーションをかけて得られた結果を
元の波形と比べてどれぐらい一致しているかを判断しています
このテストではかなりうまくいっているのに
実際の音楽をアップサンプリングするとあまり音がよくなくて困っています
タップ長は2倍のアップサンプリングでしたら33タップです
省3
70
(2): 2016/11/05(土)00:15 ID:R7F8CRTQ(1/2) AAS
アップサンプリングで補間されたとこは元データに存在しないと思うけど、
誤差がほとんどないってのはそこを除いた部分に関してだよね?
そうなら、聞いた感じが違うのはあり得るんじゃない?
71
(2): 2016/11/05(土)00:21 ID:BZMicsTd(1) AAS
>>69
まず33タップはオーディオ信号処理としては短いと思いますよ(遅延があると困る場合は仕方ないけど)
sinc関数のどこ(の振幅レベル)で切られることになるか確認してみましょう
それに-160dBまで押さえ込もうとしているんだとしたら相当緩いフィルタになってると思いますよ
出来上がった33タップの係数から周波数特性を確認してみましょう
かなりカットオフ周波数を下げないと折り返しが漏れまくりだと思います
(z関数の式で確認すればビット深度の影響を除外できます)
それに24bitは144dBしかDレンジないですよ(floatingだったとしても)
カイザーのβを欲張りすぎだと思います
窓関数の端の方がほとんど0になってませんか?(floatでもあまりに小さい値になってると積和する時に捨てられることになります)
72
(1): 2016/11/05(土)13:14 ID:2MWiQK2J(1) AAS
>>70
いえいえ、誤差がほとんどないというのは
適当な信号を間引いてダウンサンプリングして
もう一度アップサンプリングしたものと
もともとの波形を比べると、ほぼ差が出ないという意味です

>>71
計算自体はdoubleでやってまして
24bitの分解能以下の誤差、と言いましたのは
最終的なデバイスへの出力が24bitになるので
その分解能以下の誤差であれば問題なかろう、という意味でした
73: 70 2016/11/05(土)14:13 ID:R7F8CRTQ(2/2) AAS
>>72
ダウンサンプル前のデータに含まれる周波数は、
ダウンサンプリング後のナイキスト周波数以下のみだよね?
そうなら、
>>71の言うようにフィルタが甘くて、
アップサンプリング時のゼロ埋めで生じた高周波を適切にカットできてないぐらいしか思い付かないな。
74
(1): 2016/11/06(日)23:16 ID:ikdeb1q2(1/2) AAS
質問者ですが、良い情報を見つけました

>外部リンク:ascii.jp
>「普通のDAC ICは100タップで、8倍か16倍のオーバーサンプリング」

ということらしいので、私がテストを繰り返して適当に求めた
「アップサンプリングの倍率*8*2+1」
という適当な数式は割と妥当みたいです
あとは160dBという窓関数がきつすぎるとか、そういうのはありそうです
でもテストすると、計算上は160dBが一番精度が良いんですよねぇ
なぜ音が悪くなるのかは結局謎でして
もうちょっといろいろ試してみたいと思います
75
(1): 2016/11/06(日)23:34 ID:ikdeb1q2(2/2) AAS
あと、あり得るとしたら
「アップサンプリングの倍率*8*2+1」で計算したタップ数は
一般的なDACが内部で行っているアップサンプリングとくらべて
ちょっとタップ数が多い、のかもしれませぬ
そのため、カイザー窓を深く(160dB)かけたときに精度が高まっているのかも
なのでタップ数を減らして窓関数を浅くする実験もしてみないとダメかもしれません
どうせ最終的な出力は24bitなので、必要以上の精度は要らないですし
タップ数が増えることでプリエコーも増えるので
この辺が音質に関係している可能性もあるかもです
76: 2016/11/06(日)23:35 ID:8dEjC33a(1) AAS
>>74
たぶんタップ数とフィルタの時間長を混同してらっしゃるかと・・・
それに今時は100でも少ない方かと・・・
DAC ICではさらにその後の処理もあります
精度の出し方が怪しいと思います・・・
カットオフ周波数の話が出てこないのも怪しいです・・・
77: 2016/11/07(月)00:51 ID:gjKa+m+C(1) AAS
>>75

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

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

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

>タップ数が増えることでプリエコーも増えるので
あまり関係ないです
(でかい波は中央付近にいるので)
省3
78: 2016/11/07(月)16:49 ID:iTWgrf69(1) AAS
>>65
numpy
79: 2016/12/30(金)07:56 ID:9ZWcVCUC(1) AAS
soxのRMS pk dbってなんのこと?
80
(1): 2017/01/09(月)13:04 ID:dXL2ousU(1/2) AAS
ノイズシェーピングについてどなたか教えて下さい。
以下は3次のノイズシェーピングを行っているつもりです。
外部リンク[html]:ameblo.jp
を参考にしました。
考え方は正しいでしょうか?出力結果は高域になるにつれて周波数成分が増えています。
また、これ以上に次数を増やしたいのですが、★の行をどのように変更すべきでしょうか?

Visual Basic 2015

Class Test
Private Diff(2) As Int64

Function To24_NoiseShaping(ByVal V As Int64) As Integer
省9
81: 2017/01/09(月)13:52 ID:dXL2ousU(2/2) AAS
>>80
の訂正です。
×以下は3次のノイズシェーピングを行っているつもりです。
○以下のコードは3次のノイズシェーピングを行っているつもりです。

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

昔はGPLと商用ライセンスだけだったが
2016年からは2条項BSDライセンスで使えるようになった模様
84
(1): 2017/01/16(月)01:39 ID:dN6E9Awb(1) AAS
みんな自分の作ったプログラムの動作確認ってどういう風にしてる?
サウンドプログラミング興味あるんだけど、デスクトップ上で作ったプログラム
動かしてみたい
最終的にはマイコンに移植して使うからC++で書くことを前提としてる。
VSTiがいいかなと思ったけど、GUI作るのがめんどくさそうなんだよね
85: 2017/01/16(月)10:15 ID:B3SVn18v(1) AAS
GUIは最低限にしてMIDIでいいと思うよ
86: 2017/01/16(月)17:50 ID:YH2Bx58z(1) AAS
>>84
VSTiってGUIいらんやん
87: 2017/02/11(土)17:45 ID:gpet/1oM(1) AAS
音の処理そのものに関することではなくメタデータに関する質問なのですが・・・
タイアップ曲があったとしてそのタグにOPとかEDとか挿入歌(1バイト文字表記でどのように書くのが適当なのか不明)などの
使用箇所を入れたいのですがこのフィールドのキーの名前として標準的な物はありますか?
いまのところVorbisCommentとAPEv2での使用を考えています
88
(3): 2017/02/20(月)06:58 ID:rQJDVb7o(1/2) AAS
ネタ投下。
外部リンク:ideone.com
外部リンク:en.wikipedia.org
暇だったのでパルスジェネレータをガリガリ書いたのだけど、FMに興味が出たので書いたのだ。
んで、うまくできてるのかさっぱりわからんのでアドバイスクレクレ。
ほんと、自分が今何を操作してるのかさっぱりわからんのでたすけてくだしあ。
ちなみに数学はわからん・・・。Orz
89
(1): 2017/02/20(月)19:31 ID:06bh9ViU(1) AAS
YAMAHAのFM音源か
90: 2017/02/20(月)20:05 ID:rQJDVb7o(2/2) AAS
>>89
うまく行ったら革つけてシンセ作りたいとか言う妄想。
でも、能力なさ過ぎてマジで何やってるのかさっぱりわからん。
91: 2017/02/25(土)02:21 ID:c0FaT5tJ(1) AAS
サンプルサイズ8bitってファミコン音のイメージしか無かったけど
実際16bitの音楽ファイルを8bitに落としてみたら以外に聴ける音だね
これで安心して8bitで出力するプログラムが書けるよ
92: 2017/02/25(土)07:49 ID:5vG+07Yi(1/4) AAS
デサンプラーの性能とかあるからね。
ファミコンは、絵とかプログラムとかまるっと揃ってあの形だから音に割けるリソースは少ない。
時代も時代だから、品質も微妙だし。
93: 2017/02/25(土)07:50 ID:5vG+07Yi(2/4) AAS
ところでお前ら、>>88については意見をくれないのかね。
マジで何やってるのかわからないから開発止まってる。
94: 2017/02/25(土)15:14 ID:bgXYGTV/(1) AAS
何がわからんのか分からん
95: 2017/02/25(土)16:47 ID:5vG+07Yi(3/4) AAS
それもそうだな。
自分でコーディングしといてあれだが、以下のパラメータの意味がよくわかってない。
A*Fun1(InitA*Time + B*Fun2(InitB*Time));
勝手に推論してそんなもんだろうと思ってるけど、あってる気がしない。
たすけて、プリーズ。
96
(1): 2017/02/25(土)18:55 ID:usTDxsWv(1) AAS
FM変調って自分で書いとるやないけ
97: 2017/02/25(土)23:45 ID:5vG+07Yi(4/4) AAS
>>96
そうなんだけど、どのパラメータいじったらどういう効果かわかってないというか。
取り留めなくてすまない。
98: 2017/02/26(日)12:50 ID:CFwwLXTd(1) AAS
圧倒的に数学力が足りてないな
99: 2017/02/26(日)12:51 ID:8Nx+2biY(1) AAS
x 圧倒的
o 絶望的
100: 2017/02/26(日)13:35 ID:EmosrxO4(1/3) AAS
Yes!!Yes!!Yes!!Yes!!Yes!!Orz
101: 2017/02/26(日)16:36 ID:bOlrkHOh(1) AAS
無視でいんじゃね?
102
(1): 2017/02/26(日)20:14 ID:AwCMlr+d(1) AAS
間違ってこのスレ開いたら,>>88にコードがおいてあるじゃないか
雑談が多い板でそれなりのコードがおいてあるスレって珍しいな。
>>88
なにをやっているかわからないのにコードを書けるってすごいな
俺もコードは読めるが、何をしているんだ?って感じだが
103: 2017/02/26(日)22:55 ID:EmosrxO4(2/3) AAS
>>102
識者現る。
最初は、パルスジェネレータ書こうと思ってパルスジェネレータ書いて、
FMのDTM版開いたらなんかウィキペディアのリンク張ってあるからパクるつもりで書いた。
数式を推論でコードに落としただけだから。しかし、俺には高度すぎた。そもそも文系だしな。
違和感があるならぜひ教えてほしい。
104: 2017/02/26(日)22:57 ID:EmosrxO4(3/3) AAS
DTM板のFMスレか。
105: 2017/02/27(月)12:44 ID:8fV4SlqM(1) AAS
コード書けるひとを見つけたとき

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

このパターンしかない
106: 2017/02/28(火)01:07 ID:4ZSOFvuS(1) AAS
プログラムコピペして、何これ意味わからん、一から教えれと言われてもムリですマル
107: 2017/02/28(火)01:31 ID:xXWB9Gkv(1) AAS
もうおっさん特有の雑談になっているな
108: 2017/02/28(火)07:06 ID:GXCD2ArE(1) AAS
>>88だけど、叩きネタになってきたからもういいよ。
開発やめるわ。
109: 2017/02/28(火)12:01 ID:4MppRDf5(1) AAS
FM変調なんて出る音は想像しにくいけどアルゴリズムは超シンプル
何がわからないのかわからないし
他人にタダでプログラム読ませてレビューさせようとする態度じゃ開発やめた方がいいよ
110: 2017/04/12(水)08:11 ID:/jqIJjt6(1) AAS
自分のメモも含めて
離散フーリエ変換(DFT/FFT)や離散ウェーブレット変換(DWT)を実装したいけどググっても
数式が列挙されているような記事ばかりで高卒の自分にはさっぱり判らん
出来れば時間情報を残したいので最終的にはDWTの実装が目標
数式がずらずらより抽象化された資料や最低限の実装例が欲しいけどなかなか見つからない

DFT/FFT
 理論からのアプローチ
  小学生に教えるフーリエ変換 - researchmap
  外部リンク:researchmap.jp
  見つけられた中では最も抽象化されている資料。ただし抽象的すぎるのか装に結びつけられん・・・
省18
111: 2017/04/12(水)11:15 ID:mJY6Dj4I(1) AAS
高卒には無理
112: 2017/04/12(水)13:02 ID:9SHPN4Bm(1) AAS
フーリエ変換後にやりたいことに合わせて処理を簡略化するんだよ
律儀にやる必要はない
113
(1): [age] 2017/04/16(日)10:39 ID:EW1HZm+Z(1/4) AAS
flacフォーマットの質問をしたいんだけど、スレチなら誘導してくれ。

外部リンク[html]:xiph.org
外部リンク[html]:xiph.org
ここらを見て構造を調べてるんだけど、いまいち分からん。

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

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

・STREAMINFO 必ず1個
・SEEKTABLE 0個か1個
省5
114
(1): 2017/04/16(日)12:14 ID:In2SIYB2(1/2) AAS
>>113
一般的な回答になっちゃうけどそれらの親はMETADATA_BLOCK_DATAだよね
METADATA_BLOCK_DATAの存在可能個数に依存するんじゃないかな

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

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

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

としか書かれていないから、これに従えば上限は無い。
いくらでも加えられる事になる。
省9
116
(1): 2017/04/16(日)16:51 ID:ju5nlg6N(1) AAS
何をしたいのかわからんけど

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

てあるから、必須ではないと思うけど
117: [age] 2017/04/16(日)17:37 ID:EW1HZm+Z(3/4) AAS
>>116
仕様としては、それらが0個以上あることが許されているのか、
多くても1個までなのか、が知りたかった。

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

正しく知った上で、じゃあ互換性を優先しようかどうかと考えるんだけど、
それは仕様を知ることとは別問題でしょ。
互換性を優先するのが目的ならば仕様を正しく知る必要はない、
なんてことは無いと思うんだよ。
120: 2017/04/18(火)11:50 ID:Uw8XacGP(1) AAS
正論
121: 2017/04/18(火)14:09 ID:ifAI+Jaz(1) AAS
光進丸よ〜
122: 2017/04/19(水)01:39 ID:AQSUwIhN(1) AAS
トライアンドエラーとか嫌いそうなタイプ
123: 2017/04/24(月)22:50 ID:5SkK+wN+(1) AAS
仕様がないと困る人はRubyとか使えないんだろうなぁ。Rubyは仕様が存在しない言語だしな
124: 2017/04/25(火)16:10 ID:Bsh0wUsM(1) AAS
source嫁
125
(5): 2017/04/26(水)19:53 ID:N3EoiivC(1) AAS
PCMデータから特定の音(倍音も含む)のみを抽出・抑制したいのでPCMデータとパラメータ(周波数とゲインのセットが多数)を
入力するとパターンに従ってPCMデータを加工してくれるEQライブラリ的なのってありませんかね?
パラメータは処理中に変化していくため既成のソフトウェアでは対応できそうにないので自作を考えています

パラメータの与え型は
外部リンク:alphamanual.audacityteam.org
みたいな感じをイメージしています。倍音を抽出する場合は方形波状に沢山窓を並べることになると思います
126
(1): 2017/04/27(木)02:26 ID:4f2PttoG(1) AAS
DFTで特定の周波数だけ計算してしまえばいい。

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

>>128
DFTって時間&振幅を周波数&振幅&位相に変換する処理だよね?特定の周波数だけDFTってどういう事?
130
(1): 2017/04/28(金)09:02 ID:lxwDN9Ce(1) AAS
横からだけど特定の周波数だけのDFTってこういうやつのこと言ってるだけだと思うが
外部リンク:software.intel.com
131: 2017/04/29(土)16:31 ID:cjUk9ycm(1) AAS
DTFなんて持ち出さなくてもIIRで作ったLPF/HPF/BPFなどを組み合わせるのではダメなのか?
一般的にその手のアプリケーションに搭載されているエフェクターってそうやって作られていたような
132
(1): 125 2017/05/03(水)16:41 ID:RzE6nrtc(1) AAS
DFTがらみは良く判らないので
外部リンク:vstcpp.wpblog.jp
を参考にBFPを組んで実験

同じホワイトノイズに対して通過させる目標の周波数を440Hzとして処理した結果
画像リンク[png]:uploader.purinka.work
上から自作BPF、自作CombFilter(freedback型)、AudacityのEQ
自作BPFのスペクトル 画像リンク[png]:uploader.purinka.work
自作CombFilterのスペクトル 画像リンク[png]:uploader.purinka.work
AudacityのEQのスペクトル 画像リンク[png]:uploader.purinka.work
 EQに与えたパラメータ 画像リンク[png]:uploader.purinka.work
省17
133
(1): 2017/05/03(水)20:04 ID:qGc238z1(1) AAS
>>129
一部だけ計算するという理解でOK
DFTもFFTも波形の周波数特性(振幅+位相)が得られる。

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

あとはサンプリング分解能(サンプリング周波数÷サンプリング数)を上手く選べば所望の値が精度よく得られる
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);
}
上手く再生されなくて問題の切り分けをしたいので
まずここだけ合ってるか教えてください。
1-
あと 155 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.020s