サウンドプログラミング6 at TECH
[2ch|▼Menu]
[前50を表示]
100:デフォルトの名無しさん
17/02/26 13:35:15.33 EmosrxO4.net
Yes!!Yes!!Yes!!Yes!!Yes!!Orz

101:デフォルトの名無しさん
17/02/26 16:36:21.13 bOlrkHOh.net
無視でいんじゃね?

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

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

104:デフォルトの名無しさん
17/02/26 22:57:13.60 EmosrxO4.net
DTM板のFMスレか。

105:デフォルトの名無しさん
17/02/27 12:44:49.44 8fV4SlqM.net
コード書けるひとを見つけたとき
自分もそうなりたい ← がんがれ
どうやったらそうなれるの? ← 金払え
自分には無理 ← さっさとやめれば?
このパターンしかない

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

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

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

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

110:デフォルトの名無しさん
17/04/12 08:11:26.25 /jqIJjt6.net
自分のメモも含めて
離散フーリエ変換(DFT/FFT)や離散ウェーブレット変換(DWT)を実装したいけどググっても
数式が列挙されているような記事ばかりで高卒の自分にはさっぱり判らん
出来れば時間情報を残したいので最終的にはDWTの実装が目標
数式がずらずらより抽象化された資料や最低限の実装例が欲しいけどなかなか見つからない
DFT/FFT
 理論からのアプローチ
  小学生に教えるフーリエ変換 - researchmap
  URLリンク(researchmap.jp)
  見つけられた中では最も抽象化されている資料。ただし抽象的すぎるのか装に結びつけられん・・・
  PIC AVR 工作室 FFTの計算と複素数の入門
  URLリンク(picavr.uunyan.com)
  高校生相当に抽象化されているもよう。が、ベクトルの合成・分解は今までにやった記憶があるけど
  ベクトルの内積とか複素数とか全く記憶にない・・・多分必須しか取っていないせいだな
  でもこれを理解出来ればFFTを実装できそうな気はする。積分式?がずらずらよりは遙かに良い
 実装からのアプローチ
  FFTの扱い方 - ロジカルアーツ研究所
  URLリンク(www.logical-arts.jp)
  FFTライブラリの入出力について解説されている記事。これを読めば何となく使えそうな感じ
  Ruby で FFT (高速フーリエ変換) を書いてみた - まめめも
  URLリンク(d.hatena.ne.jp)
  Ruby的な書き方をしている上に再帰呼び出しをしているとはいえ驚異的に短い。これ、あっているのか?
  正しいなら理解を助ける一助になりそう(自分はRubyメインだし)
  参考元のコードも比較的コンパクトに書かれている
DWT
 めぼしい資料は未発見
窓関数
 未着手

111:デフォルトの名無しさん
17/04/12 11:15:28.08 mJY6Dj4I.net
高卒には無理

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

113:デフォルトの名無しさん
17/04/16 10:39:42.71 EW1HZm+Z.net
flacフォーマットの質問をしたいんだけど、スレチなら誘導してくれ。
URLリンク(xiph.org)
URLリンク(xiph.org)
ここらを見て構造を調べてるんだけど、いまいち分からん。
METADATA_BLOCK の APPLICATION と CUESHEET および PADDING は、
ひとつのflacファイルに複数あっても良いのだろうか、それとも、
あるなら1個のみだろうか。
というのも、他のブロックはドキュメントに明確に数が示されている。
・STREAMINFO 必ず1個
・SEEKTABLE 0個か1個
・VORBIS_COMMENT 0個か1個
・PICTURE 0個以上
しかし、先の3つのブロックについては明記されていない。
何となく CUESHEET は役割的にあるなら1個のみのような気がするが・・・
どうなんだろ?

114:デフォルトの名無しさん
17/04/16 12:14:49.10 In2SIYB2.net
>>113
一般的な回答になっちゃうけどそれらの親はMETADATA_BLOCK_DATAだよね
METADATA_BLOCK_DATAの存在可能個数に依存するんじゃないかな
あと明記されていない以上どう扱うかは“実装による”と言うオチが付きそうな気がしなくもない
タグだって標準的ではない情報を入れようと思ったらそれっぽい名前のフィールドをでっち上げるしかないわけだし

115:デフォルトの名無しさん
17/04/16 16:24:37.74 EW1HZm+Z.net
>>114
ありがと。
メタデータの個数は、ドキュメントには
STREAM
 <32> マーカー
 METADATA_BLOCK ストリームインフォのため
 METADATA_BLOCK* その他のメタデータのため
 FRAME+
としか書かれていないから、これに従えば上限は無い。
いくらでも加えられる事になる。
もしかして俺がドキュメントや API を見落としているかもと思ってたから、
実装によることが確かなら、それでいいんだ。
俺が作ったライターが書き出したflacファイルを他人が作ったリーダーで読み込んだ時、
たとえば PADDING が複数あっても、実装依存なら、それをリーダーにどう扱われようが、
少なくともエラーにはならない(解釈しないメタデータは無視するのが仕様)。
でもドキュメントや API から、それは「複数あってはダメ」なことが仕様だと読み取れるのなら、
厳密に正しく作られたリーダーにflacファイルではないと解釈されてしまう。
俺が作ったライターは仕様に則っていない糞プログラムといことになる。
それは避けたい(まぁ実際に PADDING を複数作ることは無いが、例として挙げた)。

116:デフォルトの名無しさん
17/04/16 16:51:04.55 ju5nlg6N.net
何をしたいのかわからんけど
APPLICATION:サードパーティーアプリに対し付与される保証ID
CUESHEET:内部埋め込みキューシート
PADDING:余白
てあるから、必須ではないと思うけど

117:デフォルトの名無しさん
17/04/16 17:37:44.94 EW1HZm+Z.net
>>116
仕様としては、それらが0個以上あることが許されているのか、
多くても1個までなのか、が知りたかった。
で、一般論としては、ドキュメントに明記されてなきゃ実装依存だろ、
とのアドバイスをもらったたころ。

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

119:デフォルトの名無しさん
17/04/16 21:37:58.52 EW1HZm+Z.net
>>118
何を優先したいかじゃなくて、まずは仕様を正しく知りたい。
正しく知った上で、じゃあ互換性を優先しようかどうかと考えるんだけど、
それは仕様を知ることとは別問題でしょ。
互換性を優先するのが目的ならば仕様を正しく知る必要はない、
なんてことは無いと思うんだよ。

120:デフォルトの名無しさん
17/04/18 11:50:35.72 Uw8XacGP.net
正論

121:デフォルトの名無しさん
17/04/18 14:09:20.20 ifAI+Jaz.net
光進丸よ〜

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

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

124:デフォルトの名無しさん
17/04/25 16:10:57.15 Bsh0wUsM.net
source嫁

125:デフォルトの名無しさん
17/04/26 19:53:26.36 N3EoiivC.net
PCMデータから特定の音(倍音も含む)のみを抽出・抑制したいのでPCMデータとパラメータ(周波数とゲインのセットが多数)を
入力するとパターンに従ってPCMデータを加工してくれるEQライブラリ的なのってありませんかね?
パラメータは処理中に変化していくため既成のソフトウェアでは対応できそうにないので自作を考えています
パラメータの与え型は
URLリンク(alphamanual.audacityteam.org)
みたいな感じをイメージしています。倍音を抽出する場合は方形波状に沢山窓を並べることになると思います

126:デフォルトの名無しさん
17/04/27 02:26:58.97 4f2PttoG.net
DFTで特定の周波数だけ計算してしまえばいい。
位相も一緒に計算しておいて逆位相を加えれば消えてくれる

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

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

129:125
17/04/28 07:58:24.02 E80Nlt1P.net
今は自作のフィードバック型コムフィルターで実験していますが、強く掛けようとすると通過する帯域が狭くなるためか
ケロってしまうので通過させる帯域を調整出来るようにしたいです
>>128
DFTって時間&振幅を周波数&振幅&位相に変換する処理だよね?特定の周波数だけDFTってどういう事?

130:デフォルトの名無しさん
17/04/28 09:02:15.09 lxwDN9Ce.net
横からだけど特定の周波数だけのDFTってこういうやつのこと言ってるだけだと思うが
URLリンク(software.intel.com)

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

132:125
17/05/03 16:41:17.69 RzE6nrtc.net
DFTがらみは良く判らないので
URLリンク(vstcpp.wpblog.jp)
を参考にBFPを組んで実験
同じホワイトノイズに対して通過させる目標の周波数を440Hzとして処理した結果
URLリンク(uploader.purinka.work)
上から自作BPF、自作CombFilter(freedback型)、AudacityのEQ
自作BPFのスペクトル URLリンク(uploader.purinka.work)
自作CombFilterのスペクトル URLリンク(uploader.purinka.work)
AudacityのEQのスペクトル URLリンク(uploader.purinka.work)
 EQに与えたパラメータ URLリンク(uploader.purinka.work)
自作BPF
 通過させる窓は基準周波数から16KHz未満まで用意
 通過特性がフラットでない。簡単に補正しているけど十分ではない。減衰し切れていない信号まで加算してしまっているため?
 通過させる窓1つに付きBPFを1つ用意して出力値を加算しているためクソ重い(440HzだとBPFは30個以上になる)
自作BPFと自作CombFilterの課題
 通過させる帯域と広くしようとすると谷を深くできない
AudacityのEQ
 通過させる窓は基準周波数から16KHz未満まで用意
 与えたパラメータほどの特性は得られていないけどスペクトルを見た感じでは良さそう
 パラメータを動的に変更できない
BPFを沢山使う方法は特性がイマイチな割に重いので筋が良くなさそう
CombFilterで谷を深くしたまま通過帯域を広くできれば軽いし一番良さそうだけどそんなことは不可能か?
AudacityのEQ的なフィルターを作れればいいけど作り方が判らない
うーむ、手詰まりか・・・
>>130
ググっても使用例とか全然出てこないので良く判らないんだけど
FFTは取り得る全ての周波数について計算するけど、その中の一部の周波数だけ計算するって話?

133:デフォルトの名無しさん
17/05/03 20:04:27.68 qGc238z1.net
>>129
一部だけ計算するという理解でOK
DFTもFFTも波形の周波数特性(振幅+位相)が得られる。
DFTフーリエ変換の定義式どうり計算するだけ
あとはサンプリング分解能(サンプリング周波数÷サンプリング数)を上手く選べば所望の値が精度よく得られる

134:125
17/05/04 14:56:15.76 FfjpCVh7.net
>>133
少しイメージできた、ありがとう。DFTを使って一部を抜き出すとしたら目標とする周波数の付近のみ
DFT結果に相当する波形を生成しそれらを合成するという手順でいいのかな?
ただしDFTだとどうであれある程度の時間分を計算をする必要がありますよね
原理的に周波数分解能と時間分解能の両立はできないと思っているのですが何か改善策はあるのでしょうか?
昔別件でFFTの使用を検討したことがありますが上記の課題を解決できずに棚上げになっています

135:デフォルトの名無しさん
17/05/04 15:19:20.97 pmL645Ea.net
>>134
>原理的に周波数分解能と時間分解能の両立はできない
そうだよ

136:デフォルトの名無しさん
17/05/04 20:05:30.63 N4OE9pV/.net
>>135
いやいや横割で何言ってんの?
どうせ不確定性定理のことを言ってると思うけど窓フーリエも何もやってない。周波数一点狙い縛りのときは格段に精度がよくなることを知らないな?
>>134
FFTと違ってのサンプル数2^n縛りみたいな制約が無いんだよね。だから周波数分解能の選択に自由度がある。
あとはDFTの計算さえ間違わなければ、所望の値が求まる。計算コストはNオーダー。

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

138:125
17/05/05 00:28:15.86 ayKeenIH.net
自分の中での整理もかねて・・・また長くなってすみません
話の発端
URLリンク(uploader.purinka.work)
この中から必要な音だけを抽出したい
このサンプルは音声ですが必ずしも音声とは限らないです、楽器音の消去・修正なども考えています
オレンジ色の線が基準と思われる周波数を線引きした物です
音声の場合は倍音も必要なのでこの周波数で櫛歯状のフィルターを駆動すれば欲しい音だけ得られるのではないかと考えた
簡単に櫛歯状の通過特性を得られる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:デフォルトの名無しさん
17/08/29 22:25:30.02 gHVKpw9z.net
.NET Frameworkで使用可能なALAC形式を読み書きできるライブラリを
ご存知ないでしょうか?
16-32bit/44.1-384kHzに対応しているものが希望なのですが。

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

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

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

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

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

145:デフォルトの名無しさん
18/01/06 04:18:21.79 PT8U+FhC.net
音の加工についてプログラムの観点から理論で解説してある書籍かサイトないですか?
例えば、何をどうすればエコーがかかるとか、何をどうすればライブ会場みたいな響きになるとか。
PCMを加工する形で遊んでみたいのですが、とっかかりがなくて困っています。
プログラミングに関してはメジャーな言語を数種類自在に使える職業エンジニアなので大丈夫です。
//スマホのアプリで、普通の音楽をライブ会場風に加工して再生してくれるやつありましたよね。
//あれには大変驚いたとともに、知識があればこんなものが作れるのかと感動し、自分も何か作れないものかと思いました。

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

147:デフォルトの名無しさん
18/01/06 11:48:42.37 HbY4/bGY.net
すべてサンプルコードつき
URLリンク(floor13)<)●sakura●ne.jp/book06/book06.html
URLリンク(floor13)●sakura●ne.jp/book07/book07.html

148:145
18/01/06 14:31:29.37 PT8U+FhC.net
>>146-147
ありがとうございます。
調べてみます。

149:デフォルトの名無しさん
18/01/06 17:52:06.99 nSHs9ovb.net
漏れは、YouTube みたいに、再生速度が速くなったり遅くなったりするのに、
音程が上下せず、一定にできる秘密を知りたい

150:デフォルトの名無しさん
18/01/06 19:26:02.15 pihwbQY3.net
このスレでそういうの書いて欲しい。

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

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

153:デフォルトの名無しさん
18/01/12 15:44:55.85 eulbZZ1c.net
聞こえませんよ

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

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

156:デフォルトの名無しさん
18/01/12 16:50:12.64 PeQANayZ.net
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:デフォルトの名無しさん
18/01/12 23:21:24.63 8O0cBOUn.net
YouTubeもそうか?間引いているようには聞こえないけど

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

159:デフォルトの名無しさん
18/01/13 15:34:24.07 CUARXt4D.net
間引くより平均の方がよくね?

160:デフォルトの名無しさん
18/01/18 22:31:15.67 79DIpC1c.net
URLリンク(github.com)
嗤え、自分はこの程度が限界だ
FM音源なんてさっぱりだよ

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

162:デフォルトの名無しさん
18/01/21 15:49:26.17 CmxK2CBl.net
>>149
URLリンク(blogs.msdn.microsoft.com)
これとは別にピッチ変更してからサンプリングレート変換してタイムストレッチの実現とかをしたことがあったな、
重すぎでプレーヤに乗っけられんかったが

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

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

165:デフォルトの名無しさん
18/01/25 11:10:34.40 zPND7U3x.net
>>163
URLリンク(www.geocities.jp)

166:デフォルトの名無しさん
18/01/28 16:16:58.69 cgdhBoSx.net
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:デフォルトの名無しさん
18/01/28 17:22:59.74 Zu0i2wvf.net
>>>論理シフト
>>算術シフト
あってそうだけど
念のため
(byte)(0x0ff & (raw[i] >>> 8));

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

169:デフォルトの名無しさん
18/01/28 18:42:17.08 uuTAMxHG.net
>上手く再生されなくて問題の切り分けをしたいので
小出しはよくない

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

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

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

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

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

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

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

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

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

179:デフォルトの名無しさん
18/05/12 11:03:12.89 pDgCeBjY.net
共同ツール 1
URLリンク(seleck.cc)
URLリンク(trello.com)
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
URLリンク(www.kikakulabo.com)
trelloのオープンソースあり
共同ツール 2
URLリンク(www.google.com)
共同ツール 3
URLリンク(slack.com)
URLリンク(www.dropbox.com)
URLリンク(bitbucket.org)
URLリンク(ja.atlassian.com)
URLリンク(sketchapp.com)
URLリンク(photoshopvip.net)
URLリンク(goodpatch.com)

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

181:デフォルトの名無しさん
18/05/24 01:23:59.85 fftgGS82.net
空中元素固定装置

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

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

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

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

186:デフォルトの名無しさん
18/05/30 22:14:06.08 Vf2ifG1r.net
1bitDACかよw

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

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

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

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

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

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

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

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

195:デフォルトの名無しさん
18/07/04 22:26:06.38 gFgZc5FG.net
3H5

196:デフォルトの名無しさん
18/07/05 16:50:25.67 AeL6VB/V.net
3H5

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

198:デフォルトの名無しさん
18/08/08 19:46:31.07 HAJMvi6f.net
お前が馬鹿

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

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

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

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

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

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

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

206:200
18/10/17 00:17:55.86 L+EpcCS9.net
一次補間してもしないのと同じぐらいエイリアスノイズが出るんです

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

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

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

210:200
18/10/17 12:31:17.28 L+EpcCS9.net
バイリニア→ニアレストネイバー

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

212:200
18/10/17 19:35:55.28 L+EpcCS9.net
つまり何らかの補間を施せっていうことですか
補間云々でどうにか出来るのでしょうか

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

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

215:デフォルトの名無しさん
18/10/29 16:46:48.94 pz8ttMdG.net
200がまだいるか分からないけど
その1024サンプルをFFTしといて、
読み出しスピード決まった時に、帯域外になるエレメントを0にしてIFFTしたの(実部)から
直近2サンプルの直線補完で再生すればいいんじゃない?(適当)
繰り返し波形だから窓も要らない
それなりに知識があれば、読み出し用FIR型LPFを随時生成するとかの方が良いと思うけど
移動平均+軽いIIR型LPFとかでも良いと思うけど
どれくらい処理能力に余力があるのかとか、求める音による(シンセだし)と思うなあ

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

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

218:デフォルトの名無しさん
18/11/10 13:43:40.57 KutuN/gN.net
>要は1つの波形につき1つのテーブルのみ
それすら不要ん

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

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

221:デフォルトの名無しさん
18/11/13 14:19:59.47 90McxFB4.net
質問は的確に

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

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

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

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

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

227:デフォルトの名無しさん
19/03/23 11:35:11.50 AyZnEV/D.net
おや、こんなスレがあったんだな!
MIDIもここでいいのか?でもスレ検索しても2単語しか出てこなかったけどなwww
よく市販のMIDIアプリでIN/OUTを設定したら
ほかのアプリで同じデバイスを指定しようとするとロックされて開けないのがあるんだが
あれはどんなAPIで他からの接続をロックしてるんですかね?

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

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

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

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

232:デフォルトの名無しさん
19/03/25 18:29:51.39 5o6KsSB6.net
>>231
URLリンク(docs.microsoft.com)
デバイス掴まれて離さないときは、デバイスマネージャから
デバイス無効化してから再度有効化で離すかもしんない

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

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

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

235:デフォルトの名無しさん
19/03/27 08:12:21.00 WX6pMWCD.net
>>229
VST作ってるよ

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

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

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

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

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

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

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

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

244:デフォルトの名無しさん
19/05/16 15:49:26.10 Ox4fjiQE.net

URLリンク(aidiary.hatenablog.com)
URLリンク(aidiary.hatenablog.com)
URLリンク(aidiary.hatenablog.com)
URLリンク(aidiary.hatenablog.com)

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

246:デフォルトの名無しさん
19/05/16 21:33:33.81 72Z2ug5T.net
必要ないからさ

247:デフォルトの名無しさん
19/05/17 10:43:45.79 Os+rXKxi.net
恥を忍んで質問させて下さい。
この論文がイマイチ理解出来ないのですけど、誰か解説おながい…。
URLリンク(secure.aes.org)

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

249:247
19/05/17 23:08:30.05 R9aG9tk3.net
>>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)の操作については、参考文献が示されてるのみなので、本当に出来るのかなぁ…と。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1828日前に更新/70 KB
担当:undef