X



サウンドプログラミング6 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2016/01/04(月) 16:42:19.79ID:tGIZuuwU
落ちていたので立てました。
テンプレ等はお願いします。
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数勘違いしててオーバーフローだろ
0209200
垢版 |
2018/10/17(水) 12:26:10.76ID:L+EpcCS9
テーブルサイズは1024固定、受け取る元データは2^n (n:2-10)の長さ
2^10未満の長さのデータについてはバイリニアで1024まで拡張
というか再生周波数に応じて帯域制限したテーブル複数用意する方法ならとっくに実装しているので、
>>200>>202の条件でエイリアスノイズを除去したいんです
0210200
垢版 |
2018/10/17(水) 12:31:17.28ID:L+EpcCS9
バイリニア→ニアレストネイバー
0211デフォルトの名無しさん
垢版 |
2018/10/17(水) 13:10:08.40ID:zei/ulNC
出力サンプリング周波数より精度の高いカウンターを用意して、
波形メモリの参照先が半端になる場所は(1つのサンプルに対して切りが悪い状態の時)、
次の波形参照先を合成して出力電圧にする。 合成具合はカウンターの値からどっちが何%って計算できる。
多分、画像のアンチエイリアスとやってる事は同じ。
0212200
垢版 |
2018/10/17(水) 19:35:55.28ID:L+EpcCS9
つまり何らかの補間を施せっていうことですか
補間云々でどうにか出来るのでしょうか
0213デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:39:33.25ID:N1jYPFTP
補完は元の領域でローパス掛けてるだけだから原理的にどうしてもエイリアシング残るよ
(ほぼ)完全に除去したいなら4倍以上でオーバーサンプリングしなきゃダメ
0214200
垢版 |
2018/10/17(水) 19:49:17.00ID:L+EpcCS9
やっぱり逝きつく先はオーバーサンプリングか
なるべく低容量かつ高速なものを目指しているのですが両立は厳しいようですね
アドバイスありがとうございました もうしばらく考えてみます
0215デフォルトの名無しさん
垢版 |
2018/10/29(月) 16:46:48.94ID:pz8ttMdG
200がまだいるか分からないけど
その1024サンプルをFFTしといて、
読み出しスピード決まった時に、帯域外になるエレメントを0にしてIFFTしたの(実部)から
直近2サンプルの直線補完で再生すればいいんじゃない?(適当)
繰り返し波形だから窓も要らない

それなりに知識があれば、読み出し用FIR型LPFを随時生成するとかの方が良いと思うけど

移動平均+軽いIIR型LPFとかでも良いと思うけど

どれくらい処理能力に余力があるのかとか、求める音による(シンセだし)と思うなあ
0216デフォルトの名無しさん
垢版 |
2018/11/10(土) 05:45:45.07ID:+8RptJu7
オシレータにFFT使えば最強じゃね!?
っていうのは誰でも思いついていざ実装して絶望するやつだw
0218デフォルトの名無しさん
垢版 |
2018/11/10(土) 13:43:40.57ID:KutuN/gN
>要は1つの波形につき1つのテーブルのみ

それすら不要ん
0219デフォルトの名無しさん
垢版 |
2018/11/11(日) 23:12:58.28ID:/8+mLG61
この流れ、てっきり波形テーブルベースだと勘違いしてたわ…
テーブル用意する的なこと書いてるし
0220デフォルトの名無しさん
垢版 |
2018/11/11(日) 23:42:35.38ID:9MRXNWIm
勝手な持論展開していってるだけやんけ
0221デフォルトの名無しさん
垢版 |
2018/11/13(火) 14:19:59.47ID:90McxFB4
質問は的確に
0224デフォルトの名無しさん
垢版 |
2018/11/28(水) 10:31:30.40ID:FHdQm/o/
intelならintelのsimdコンパイラが楽やわ
レーン数見分けて動いてくれるし速いライブラリに近いスピードが出るから
ライブラリに頼らないで好きな形で組める
0227デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:35:11.50ID:AyZnEV/D
おや、こんなスレがあったんだな!
MIDIもここでいいのか?でもスレ検索しても2単語しか出てこなかったけどなwww

よく市販のMIDIアプリでIN/OUTを設定したら
ほかのアプリで同じデバイスを指定しようとするとロックされて開けないのがあるんだが
あれはどんなAPIで他からの接続をロックしてるんですかね?
0228デフォルトの名無しさん
垢版 |
2019/03/23(土) 18:50:12.77ID:ypyP50XG
MIDI APIのmidiOutOpen()ですでに他に開いてるのがいたら
MMSYSERR_ALLOCATEDが返ってくるんじゃないかね
0229デフォルトの名無しさん
垢版 |
2019/03/24(日) 14:10:10.25ID:gjdju94t
VSTプラグイン作りしているヤシいる?
0230デフォルトの名無しさん
垢版 |
2019/03/25(月) 17:06:19.71ID:EDSujopE
>>228
ああそうか!そういうリザルトあったね!
でもダブってデバイス開いてもあまり問題は起きないんだけどね
むしろ一度デバイスつかんだら放してくれなくて
他のに繋ぎ変えたいとき再起動しないとどうしようもないってアプリもあるんだよね…orz
デバイス解放するのってmidiInReset()とかだっけ?
0231デフォルトの名無しさん
垢版 |
2019/03/25(月) 17:38:23.30ID:EDSujopE
あれ?確認しようと「midiInReset」でググったら
「midiOutReset」しかでてこないよ?
検索キーワードが強制的に変えられてる
なんで?
0233デフォルトの名無しさん
垢版 |
2019/03/25(月) 20:24:04.41ID:x64m1R2Z
>>232
なるほど、そういう解放の仕方もあるのか

意図的に2重に開いて
MMSYSERRを見たら
MMSYSERR_ALLOCATED = 4じゃなくて
MMSYSERR_NOTENABLED = 3 : ドライバがロードまたは初期化に失敗しました。
が返ってきたわ
そしてよくよく考えたら
先行して開いてたアプリにロックされてたんじゃなくて
自分の作ったプログラムがエラーリザルト拾って自ら開かなかっただけなのかwww
0236デフォルトの名無しさん
垢版 |
2019/04/02(火) 06:28:33.09ID:uwnbQvhb
>>233
あー自己レス前言撤回
アプリの組み合わせによっては
デバイスの多重オープンできることもあるな
リザルトを拾う拾わないの違いではないみたい
時間が無いので何故そんな違いが出るのかは未確認
知ってる方、予想のつく方、いたら教えてください
0237デフォルトの名無しさん
垢版 |
2019/04/02(火) 11:21:55.02ID:5+C+zQyU
Synth1 のページが無くなった
0238デフォルトの名無しさん
垢版 |
2019/04/03(水) 07:53:59.08ID:uBOGDxAb
>>236
MIDIのことはよく知らないけど
MMEは古すぎて互換のために用意されてるだけなので
新しいネイティブなAPIがあるのでは?と思う
0239デフォルトの名無しさん
垢版 |
2019/04/03(水) 21:19:58.16ID:1xHWBj9h
>>238
確かにネイティブなMIDIはWin32APIでめちゃ古いけど
これ以外に新しいネイティブなAPIってあるのかな?
あったらそっち使いたいけど
あってもSMFを再生するだけみたいなパッケージされたものじゃね?
0240デフォルトの名無しさん
垢版 |
2019/04/04(木) 08:14:02.61ID:GzEPd4tz
てゆーかMIDIって
デバイスの認識とオープン/クローズができて
そこから必要なデータを取り出したら
あとはバイトデータの四則計算だからな
今デバイスはほとんどUSBだし
新しいハードウエアや転送方式でも出てこない限り
新しいAPIは必要無いかもね
最近MIDI規格が新しくなったと聞くけど
新しいAPIの話にはならないんだね?
■ このスレッドは過去ログ倉庫に格納されています

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