サウンドプログラミング2
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGMODトラッカー,MIDIシーケンサの技術的な話題に関するスレ
過去スレ
サウンドプログラミング
http://pc5.2ch.net/test/read.cgi/tech/996171508/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG。:゜ ◎::O☆∧_∧☆。∂:o゜
/。○。 ∂(*゚ー゚ )O◇。☆
/ ◎| ̄ ̄∪ ̄∪ ̄ ̄ ̄|:◎:
/ ☆。|.. 新スレおめ .|☆
▼ 。○..io.。◇.☆____| 。.:
∠▲―――――☆ :∂io☆ ゜◎∂:.
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGこの音源のレジスタマップとか紹介してるサイトないかな?
当時はPC98人間だったんで手持ち資料が無い、
でもめっさ面白そうなんで。
サンプルプログラム読めばある程度はわかるんだけどね。
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGttp://park14.wakwak.com/~valsound/fm_lib.html
0008デフォルトの名無しさん
NGNGttp://www02.so-net.ne.jp/~sw7h/x68k/hootknowhow.html
0009デフォルトの名無しさん
NGNGデータシートがの pdf が出てきますた。
00105
NGNG残念ながら既知だ。
>>8
よくわからん…関係あるのか?
>>9
既知だ、pdfはリンク切れしてた
オレが知りたいのは
X68Sound_OpmReg(addr);OpmWait();
X68Sound_OpmPoke(data);OpmWait();
でのaddrとdataをどうすればどうなるかの対応表。
エラそうですまん、とりあえずサンプルから少しだけ調べてみた。
発音系
[0x08:slot+ch]キーオン
[0x08, ch]キーオフ
[0x28+ch, kc]音階をOPMレジスタに書き込む
[0x01, 2]LFOをリセット
[0x01, 0]LFOをスタート
00115
NGNG[0x20+ch, (v[0][9]<<6)+(v[0][0]&63)]PAN/AF
[0x1B, v[0][2]&3]WF
[0x18, v[0][4]]SPD
[0x19, 0x80+(v[0][5]&0x7F)]PMD
[0x19, (v[0][6]&0x7F)]AMD
[0x38+ch, ((v[0][7]&7)<<4)+(v[0][8]&3)]PMS/AMS
音色オペレータ系
[0x40+ch+(s*8), (v[t[s]][8]<<4)+(v[t[s]][7]&15)]DT1,MUL
[0x60+ch+(s*8), v[t[s]][5]]TL
[0x80+ch+(s*8), (v[t[s]][6]<<6)+(v[t[s]][0]&31)]KS,AR
[0xA0+ch+(s*8), (v[t[s]][10]<<7)+(v[t[s]][1]&31)]AME,D1R
[0xC0+ch+(s*8), (v[t[s]][9]<<6)+(v[t[s]][2]&31)]DT2,D2R
[0xE0+ch+(s*8), (v[t[s]][4]<<4)+(v[t[s]][3]&15)]D1L,RR
不明
[0x30+i, 5*4]KF=5
0012デフォルトの名無しさん
NGNG>>8 は最後の方まで読んだ?
00135
NGNG読んだけどよくわからん。
すまん、データシートはあったぽい…orz
ym2151datasheet.pdf
http://www.funet.fi/pub/msx/txt/datasheets/ym2151datasheet.pdf
ym2151synthesis.pdf
http://www.funet.fi/pub/msx/txt/datasheets/ym2151synthesis.pdf
というわけでちょっとやってみるか
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGついでに質問
MP3とかoggのエンコードとかもこのスレであってる?
0017デフォルトの名無しさん
NGNG合ってるよー
0018デフォルトの名無しさん
NGNG基本的なことから聞きたいんですけど、よくエンコーダによって
音質が良いとか悪いとか言うじゃないすか。
具体的にはどの部分が影響でちゃうんですかね。
ビットレートだけの問題と違うのかなーって思うんです。
0019デフォルトの名無しさん
NGNG・ヒトの耳には聞こえやすい周波数と聞こえ難い周波数というのがあって、
実験的に調べられた結果ラウドネス曲線という形で表すことができることが
知られています。
・ヒトの耳は大きな音があるとその周波数付近の一定範囲の小さな音は知覚
しにくいという特性が知られています。これを周波数マスキングと言います。
・ヒトの耳は大きな音があるとその時間前後の一定範囲の小さな音は知覚
しにくいという特性が知られています。これを時間マスキングと言います。
これらの特性を利用して、ヒトが聞こえ難いとされる部分をカットしても
聴者にとってあまり問題にならない、ということから、MP3エンコードでは
こういった操作がなされます。
さて、音質との関係ですが、この部分の実装がその音質とかかわっている
のではないかと思います。
ヒトの特性を利用したものというのは結構感覚的・実験的で、数学的には
まだ解明されていない部分でもあるので実装が異なってしまうのでしょう。
0020デフォルトの名無しさん
NGNGいやーなんともご丁寧にご説明ありがとうございます。
調べる手がかりをたくさんいただけましたこと、深く感謝いたします。
002119
NGNGこのあたりのことを利用して透かしを埋め込むアルゴリズムもあります。
でも、そういうアルゴリズムはMP3には使えませんね^^;
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG研究している人も文献も少ないね。
やはりゲームなどで重要視されているのが画像だから、興味を持つ人が少ない
のだろうか。
0024デフォルトの名無しさん
NGNGttp://adlib.rsch.tuis.ac.jp/~akira/unix/ossprog/
0025デフォルトの名無しさん
NGNGhttp://www.portaudio.com/
libsndfile
http://www.mega-nerd.com/libsndfile/
0026デフォルトの名無しさん
NGNGゲームでいうなら、ストリーミング垂れ流しで発展が止まってしまってるし・・・
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG範疇を超えてしまうよね?
0029デフォルトの名無しさん
NGNGデータ読み出すだけだし。
0030デフォルトの名無しさん
NGNG微妙
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGデータの吸い出し方にもいろいろあるじゃん?
ちなみに>>29はどんな方法でやっとります?
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGあと興味あるのは、リアルタイムボイスチェンジャー みたいのできないかな。
ボイスチャット増えてきているし、そういう遊びがあってもいいかも。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG一個目! 一個目!!!
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGまず、サウンドデータを小さなフレームに分割し、
音量は一つのフレーム内の最大の値を検索し、
周波数は一つのフレーム全体をFFTして求める。
そしてそのフレームをサウンドデバイスに流す。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGいまは4096サンプル毎にFFTして、フレーム毎の周波数特性は取れて
いるのですが、それを一曲全体に応用するところで行き詰ってます。
考え方とかまずはこの本っていうのがあれば教えてもらえないでしょうか?
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG窓関数外すのも忘れない。
サンプルはこれでいいかと。
|<---|<-----曲----->|--->|
`----------2^n---------/
0047デフォルトの名無しさん
NGNG1Hz以下のやたら微小な周波数に分解されてしまってよくある波形編集
ソフトみたいにはグラフが描けませんでした。
周波数分解能は10Hz程度でよいと思って4096サンプルでFFTしてた
んですが、曲全体まるごとFFTじゃなきゃダメでしょうか?
>>46
窓関数はかけっぱなしだったので、窓関数を外してリトライしてみます。
0048デフォルトの名無しさん
NGNG曲全体のFFTにあまり意味は無いのではありませんか?
もし、意味が求めるとすれば、例えば、0-20kHzまでの区間を1Hz単位のビンに
わけて、ヒストグラムにするとかすれば曲全体の周波数の傾向がわかると思い
ますが…
004947
NGNG最終的には曲の任意範囲の周波数を計算したいと思ってます。
曲全体でやっているのはSoundForgeをお手本としてグラフがあっているか
どうかを見比べているので、まずは曲全体をチャレンジしています。
>>46
やっぱり曲全体をFFTすると出てくる周波数の分解能が高すぎて
グラフを書くとわけわからなくなってしまいました。
基礎を固めないとだめだなあと思ったので、いまデジタル信号処理の
勉強をしてます。
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGそこらへんを上手に処理出来ないといけないよね。
0052デフォルトの名無しさん
NGNGってな具合なわけ?
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG「周波数毎に」という表現に不安を覚える。
「周辺の帯域を持ち上げる」とかかな?
まぁ、ようはなだらかな山/谷型に操作する。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGタコな質問だったらスマヌ
0058デフォルトの名無しさん
NGNG足すより定数倍
0059デフォルトの名無しさん
NGNGそれを短時間FFTでする事は出来ない。下降すると区間のつながりが保てないからだ。
つまり全部をサンプルして、全部を一度にFFTするならOKって事だ。
ある領域だけ増幅する事は2次のフィルター(IIR)を使う事が多い。
LC同調回路を模型化したものだが、
判りやすくいうと、 Q/f0の同じ
BPF+LPF+HPFの3つのフィルタに分解して再度合成すると フラットな信号になる。
そこで、3つに分けた後、ゲインを変えて合成すると色々と有用なフィルターが出来る。
BPFだけゲインを変化させると、その周波数帯だけゲインを上下出来る。
俺が、DSPでイコライザーのようなものを作る時は大抵このスタイル。
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGportaudioを調べてみたのですが、資料がすくないので。
0064デフォルトの名無しさん
NGNGwin32api
directsound
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGなんか偉そうだなてめ
いきなり態度変えやがって
0067デフォルトの名無しさん
NGNGよくわからんが、超遅レス?
0068仕様書無し
NGNG報酬は何もありません。
必要なスキルはC言語(GCC) MinGW GTK+ です。
少なくとも一人は、windowsでのリアルタイムプログラミング
(一定の時間間隔でポート出力する)ことができる人が必要です。
面子が揃ったら、そのままこのスレで開発連絡を行います。
0070デフォルトの名無しさん
NGNGファイル形式は変えずに。
0071デフォルトの名無しさん
NGNGひょっとして馬鹿?
0072デフォルトの名無しさん
NGNGいや馬鹿ですよどうせ
0073デフォルトの名無しさん
NGNGどうして自分で調べないんだ?この大馬鹿は
少し調べりゃわかるだろ
0074デフォルトの名無しさん
NGNG色々ある
bit数を16->8にするとか
周波数を落とすとか
0076デフォルトの名無しさん
NGNG一応載せときました。では消えます...。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGファイル形式はwavのままだし。
0079デフォルトの名無しさん
NGNGそりゃファイル拡張子はwavのままだろうが
形式は変わるだろ
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG同じファイル形式とは思わないけど、質問者はそれで満足してるようだし
ひょっとするとファイル形式は変えずに=拡張子変えずになのかもね。
それならMP3形式WAVEもありかも
0082デフォルトの名無しさん
NGNGイベント発生にやたらと時間がかかるのですが、どうすれば演奏終了を瞬時に
取得できるかどうかを知るにはココへ書き込めば解かりますか?
0083デフォルトの名無しさん
NGNGだって、音には理論的には終わりが無いんだから。
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG音声データの終わり
0086デフォルトの名無しさん
NGNGmidiStreamOut は駄目っぽい。
みんな別スレッドで進行を管理している。
0087デフォルトの名無しさん
NGNGWindows側でミキシングしてるくれる様ですが
1つのアプリケーションで複数のWaveを同時再生したい場合は
waveOutWrite前に自前で加算合成して渡すしかないのでしょうか?
それとも自分のアプリケーションのみでWindows側に合成を任せる事が出来るのでしょうか?
0088デフォルトの名無しさん
NGNG008987
NGNGDirectSoundを使わないと不可能なのでしょうか?
87では書いていませんでしたが元々低レベルAPIを使い出したのは
DirectSoundを使わないで再生するのが目的だったので、
もし、DirectSoundを使わない方法がありましたら
そちらの方法で実装したいと考えているのですが…。
0090デフォルトの名無しさん
NGNGこの辺を見ると、Win2K/XPでは複数のアプリケーションが同一のWaveOutデバイスを
開くことが可能で、カーネルミキシングとやらをやってくれるようです。
単一アプリで、同一のWaveOutデバイスを複数開くことが可能ならば出来るかも(未確認)。
それ以外では自前でミキシングする他ないかと…。
FM音源エミュレータとかのソースを参考になるかと思います。
0091デフォルトの名無しさん
NGNG009287
NGNGありがとうございます。
暫く自宅に帰れないので確認できないのですが、後で見てみます。
しかし、対応してるのは2000以降ですか。ちょっと予定外でした…。
>>91
現在は自前でMIXしています。
OS側でMIX出来るのなら、片方だけ再生を止めたい時などに便利そうだったので…。
0093デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG出来ればプログラム例などをのせていただければ幸いですが、よければどんなアルゴリズムかだけでも教えてほしいですTT;
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0101ど素人ですが
NGNG起動CD-ROMめいたものを作りたくて、CD-ROM の direct read のプログラムを作っている
うちに、spticdda.lzh なるオーディオCDを読むソースを見つけて、試したら、音が出るん
で、ちょっと加工してと思って、いじっているのですが、最初に CD を開くのは CreateFile()
で、これは、win98 では効かないのに気がつきました。
今更 98 ってのもどうかとは思いますが、手元に 98 機もあるんで、動くようにできないか
と、ぐぐったのですが、見つかりません。
direct read では、DosMem16.dll, DosMem32.dll を使って VxdCall とかをやっている
のですが、98 では、audio CD はもっと簡単に開いて、再生する方法ってのはないので
しょうか。プログラムは、VC++ 6.0 を使っています。
サウンド本来の質問ではなく、申し訳ありませんが、他に適当なスレもないようなので
おすがりいたします。
0102デフォルトの名無しさん
NGNGふざけた態度が気に入らん。
0103101
NGNGなら、自分でぐぐろうと、あれこれ見てまして、初めて知ったのは、
CD-DA フォーマットってのは、一番古い仕様だったてこと。びっくり。
古いせいか、説明は既知のように書かれていて、中身に触れているのは
ありません。自分で作った absolute read でも、Disk Editor でも
読めません。0 - 15 sector には、何もないのでしょうか。
0104デフォルトの名無しさん
NGNG0105101
NGNGそれとも知識が無い人ばかりなのでしょうか。
0107デフォルトの名無しさん
NGNG簡単な方法はないぞアホ。
bootableCDなら書込みだろ、読み込んでどうするんだボケ。
0108デフォルトの名無しさん
NGNGワロタ
0109ど素人の101
NGNGありがとうございます。調べます。
>>107
アフォでもボケでも気にしませんが、起動CD作るにはあっちのCD、こっちのCD
読んで、セクタ取りだし、CDイメージ作って書き込みましたです。
しかし、98ではなかなかのような感触があるのが分かりましたね。
>>105,>>105 なかなか面白い方がここにはおられる。真性の101は急いでは
おりません。98が駄目ならxpでやるまでと覚悟しています。
code project の記事は勉強になりました。また参考URLがありましたら、
ご紹介ください。
0110デフォルトの名無しさん
NGNGのですが、どこかにおいてありませんか?
0111デフォルトの名無しさん
NGNGhttp://www.hermannseib.com/english/vsthost.htm
0112デフォルトの名無しさん
NGNGmp3を再生中に、
float *spectrum;
spectrum=FSOUND_DSP_GetSpectrum();
if (!spectrum)
{
printf("だめぽ");
return;
}
printf("OK--%p",spectrum);
どうしても、だめぽになります。
先に何か設定しなければならない事があるのでしょうか?
0113デフォルトの名無しさん
NGNGNote that hardware sounds, MIDI, files do not register on the spectrum graph as they are not run through FMODs DSP system.
Note that to use this you have to turn on the FSOUND FFT DSP unit. This is achieved by calling FSOUND_DSP_GetFFTUnit, then using FSOUND_DSP_SetActive to turn it on.
0114デフォルトの名無しさん
NGNGちょっとしたソフトシンセ作ってるんだけど、
単音で16ビット出力するモジュールを作ってから
「あとは多重動作させてしてミックスするだけ〜」
というところで、ミックスってどうやる?
ってな感じで詰まってしまいました。
単純に加算していくと簡単にクリッピングっつーか
オーバーフローしちゃうのでなんか別の方法考えなきゃダメっすか?
ちなみに1音あたりの解像度を下げるのはちょっとツライっす。
それだと16音出すと1音あたり12ビットになっちゃう。
0115デフォルトの名無しさん
NGNG最後にまとめて整数にするほうが効率よくないかい?
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGクリッピングしちゃうのはユーザーが気をつければいい、というスタンス。
0118デフォルトの名無しさん
NGNG浮動小数点が有利なのは明らかだろう。
0119デフォルトの名無しさん
NGNG>>114
結局理論上できないことは出来ない。足してクリップするか、自動ゲイン調整して誤魔化すしかない
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGがどこにも在庫がないけど、どこかに売ってないかな
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGttp://www.ai-pub.co.jp/contents/book/prog/vc6_mp3.html
辛うじて3章4章が使えそうなぐらいで、あとは使えなさそうだな。
普通にネットで調べた方がいいと思われ。
0124デフォルトの名無しさん
NGNGそうだな…言ってみれば、「板違い」ってヤツだな。
0125115
NGNG速度的には固定小数点でやっていたときより劣るものの、
音質の向上を考えると満足できる結果となりました。
ありがとうございました。
0126デフォルトの名無しさん
NGNGttp://www.geocities.jp/bywnn498/mp3/
ここで十分じゃなかろうか…
0127デフォルトの名無しさん
NGNGこんなに詳しくかいてあるとは思わなかった。
Visual C++6.0で作る MP3 Playerプログラミング
の独自のguiってどうやって実装するのか誰かしりませんか?
特に今はSKINというファイルをつかって自由に外観を変えることができるのがあるけど、
あれはどうやって実現しているのか不思議。
自分はbitmapをつかってguiを変更できるコントロールはCBitmapButtonぐらいしかしらないし。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGSetWindowRgnとか検索しる
0130114
NGNGみんなして回答ありが�d
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG種々の波形関数(正弦波、鋸歯状波、矩形波・・・)を
WAVファイルに書き出すプログラムを作成しようとしています。
周波数、音の強さをオプション指定としたいのですが、
参考となる書籍などがあれば、教えていただけませんでしょうか。
0133132
NGNG0134デフォルトの名無しさん
NGNGClear[p,F,Fsamples,s];
MakeSound[p_,F_,Fsamples_,s_]:=
Table[p Sin[2. Pi F n],{n,0,s,1./Fsamples}];
Export["hoge.wav",
ListPlay[MakeSound[1,1000,44100,1],SampleRate->44100]]
0135大原ゆき
NGNGいきなりC/C++に落とすよりも、MathematicaやMatLabなどで実験してからC/C++に
落とした方が、綺麗にまとまったプログラムが書けますよ。
もし貴方が大学生ならMathematicaくらいなら学校のPCに入っているのでは
ありませんか。
入っていなければ仕方がありませんが…
0136132
NGNG大学生です。
しかしながら、学校のPCにはMathematicaもMatLabも
入ってないです。あるのは、Mapleだけです。
なんとかならないですかね…。
0137デフォルトの名無しさん
NGNG後者ならWaveGeneを使うとか
0138デフォルトの名無しさん
NGNG0139138
NGNG× 前者でこのスレにこられても…。
○ 後者でこのスレにこられても…。
0140デフォルトの名無しさん
NGNG0141132
NGNGプログラミングの勉強です。C/C++をベースで。
そのあと、拡張していきたいと考えていまして・・・。
とりあえず、上の課題が出来るようになりたいのです。
よろしくお願い致します。
0142デフォルトの名無しさん
NGNGhttp://www.gihyo.co.jp/books/syoseki.php/4-7741-0987-8
0143デフォルトの名無しさん
NGNGhttp://www.kk.iij4u.or.jp/~kondo/wave/
0144デフォルトの名無しさん
NGNGで、何が知りたいんだ?
WAVファイルのフォーマットとか?
0145デフォルトの名無しさん
NGNG正弦波だと V=sin(t) とか 鋸波だと V=(t%2)-1 とか、
全然チョロいだろ。
というか、
あとあと拡張したいというレベルであればなおさらのこと
こんなところで質問してちゃダメ。
手順を踏んで設計してみることだね。
ちなみに俺は昔作ったことがあるぞ。
デューティ比とかどんどん機能追加したんだけど、
コマンドラインプログラムではかなり空しくなる。
もう面倒で面倒で。
0146デフォルトの名無しさん
NGNG自分のプログラムでキャプチャすることは可能?
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG正弦波は簡単だけど、鋸歯状波、矩形波は難しいよ。
もちろん、ピッタリ割り切れる周波数なら、簡易に、作ればいいんだけど
0150デフォルトの名無しさん
NGNG単なる波の足しあわせに過ぎないよ?
0151デフォルトの名無しさん
NGNG任意の周波数を出せるようになれば進歩。
それにより発生する折り返しノイズをオーバーサンプリングその他で軽減することを学べれば、
単純な波形の生成に関しての基礎は十分。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGアナログ的にはね^^;
ディジタルだったらもっと簡単にできるねー にゃんにゃん
0155デフォルトの名無しさん
NGNG周波数スイープすると、シュワンシュワン
0156デフォルトの名無しさん
NGNGガビガビする問題はすぐに独自理論で解決した。
0157デフォルトの名無しさん
NGNG独自理論おしえてー にゃんにゃん
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG周波数でうまくわりきれないのも、誤差拡散みたいなことするだけじゃないの?
サウンドなんてやった事ないから、とんでもなく的外れなこといってるかも。
いろいろ教えてくれ。
0160デフォルトの名無しさん
NGNG(2) エリアシングノイズ(折り返しノイズ) : 音程変換、画像サイズ変換
誤差拡散は(1)対策として使う。
今話してるガビガビは(2)。画像でいうならモアレが見える状態。
これへの対策はアンチエリアシングを使う。
0161デフォルトの名無しさん
NGNG同じサンプリング周波数のもとで、もっと高い音程にする、ってのも縮小と同じこと。
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG例えば半波長3.6サンプルの矩形波を出力するとこんな感じ
wave(1)=0
wave(2)=0
wave(3)=0
wave(4)=0.6
wave(5)=1
wave(6)=1
wave(7)=1
wave(8)=0.8
wave(9)=0
wave(10)=0
wave(11)=0.8
wave(12)=1
wave(13)=1
wave(14)=1
wave(15)=0.6
wave(16)=0
wave(17)=0
wave(18)=0
もちろん台形波に近くなっちゃうけど。
オーバーサンプリングした後って結局こんなカタチになるのかな?
だとしたら耳で聞いても違和感ないしコレでいいか、
と思ってしまうんだが。詳しい方どう思われます?
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG厳密さを求めないなら台形でやっちまっていい
それなりにガビガビノイズ減らせて実用
少なくとも、0か1だけの波形よりははるかにマシ。0か1かだけじゃガビガビノイズは消えない
英語読めるなら>>162で
0167デフォルトの名無しさん
NGNG周波数スイープしてスピーカーで音量上げて聞くと
シュワンシュワン はっきり聞こえちゃうよ。
ヘッドホンで聴いてると案外気にならないんだけどね
0168デフォルトの名無しさん
NGNG結局は矩形波を録音したらどういう波形になるかを考えて作らなくちゃいけない。
色んな方法があるけど、
オーバサンプリングして、LPFを通して間引くのが基本
矩形の場合は、LPFを作るFIRフィルタの係数を単に間引いて加算すればいいので簡単
加算した結果をオーバサンプリング比率分だけテーブルとして用意しておいてもいいけど
周波数が高くなると、重なってくるので計算がややこしくなる。
この場合もオーバサンプリングした周波数で割り切れる周波数しか正確には出せないけど
64fs程度のオーバサンプリングなら誤差拡散してもいいし
それ以下なら補間すれば、まあ誤魔化せる。
理論的に攻めるなら、サイン波合成でゆくとか、
矩形波に限れば釣鐘関数の積分でどこまで誤魔化せるか頑張るとか
0169デフォルトの名無しさん
NGNGです
0170デフォルトの名無しさん
NGNG漏れそんな感じだけど、ほとんど問題ないけどな。
0171デフォルトの名無しさん
NGNG前スレ14あたりにそれらしいものが書いてあったけど
どういう事かさっぱりわからないし。
DFTかけて出た結果の高周波部分をゼロクリアして
逆DFTとかじゃうまくいかないのか?
0172大原ゆき
NGNGFIRでの場合ですが、
入力x、出力y、タップ数Nのフィルタ係数hとして、
y[n]=(h[0]*x[n]+h[1]*x[n-1]+h[2]*x[n-2]…h[N-1]*x[n-(N-1)])
を逐次実行してゆけば良いのです。
C++での実装では、例えば、Filterクラスを用意して、
メンバ変数
std::vector<double> hh_;
std::deque<double> ringbuff_;
メンバ関数
double filter(double x) {
ringbuff.pop_back();
ringbuff.push_front(x);
return std::inner_product(ringbuff_.begin(), ringbuff_.end(), hh_.begin(), 0.0);
}
などを作ります。
フィルタの関数は一サンプル入れるごとに一サンプル出力されるように作ると汎用性が高まりますよ。
0173大原ゆき
NGNGフィルタの設計は、
振幅特性Gと位相特性θを与えればできますが(G*e^(j*θ)を逆フーリエ変換)、
実際には振幅特性だけで良いです。
例えば、サンプリング周波数8kHz、カットオフ周波数800Hz、タップ数10、の時、
G={1,0,0,0,0,0,0,0,0,1}
というリストを作り、位相特性を0とします。
G*e^(j*θ)=Gですから、Gの逆フーリエ変換ということになりますね。
この出力をプロットしてみると解かると思いますが、全要素の半分だけシフトして
やらないといけません。
0174大原ゆき
NGNGコンパイルもデバグもしていませんので、通るかどうか解かりませんが…
std::vector<double> FIRCoeff::makeLPFCoeff(double fs, double fc, int tapn) {
std::vector<double> hh;
int fcint = (int)(tapn * fc / fs);
double gain1 = pow(10.0, 0.0 / 20.0);
double gain2 = pow(10.0, -200.0 / 20.0);
std::complex<double> freqres_fc1(gain1, 0.0);
std::complex<double> freqres_fc2(gain2, 0.0);
std::vector< std::complex<double> > freqres;
freqres.assign(fcint, freqres_fc1);
freqres.insert(freqres.end(), tapn - 2 * fcint, freqres_fc2);
freqres.insert(freqres.end(), fcint, freqres_fc1);
std::vector< std::complex<double> > cv = idft(freqres); // idftは離散フーリエ変換する関数
int cvsize = cv.size();
for(unsigned int i = 0; i < cvsize; ++i) {
hh.push_back(cv[(i + cvsize - cvsize / 2) % cvsize].first);
}
}
0175大原ゆき
NGNGFIRCoeffは必要ありませんね。
…ってなんだか、かなり電波な発言に見えるのは気のせいですか?
大掃除の影響で疲れている上に、眠いのでこれにて失礼いたします。
0176デフォルトの名無しさん
NGNGhttp://www.tobybear.de/p_filterexp.html
フィルターのソースコードを吐き出してくれる
0177デフォルトの名無しさん
NGNG大原ゆきさんのおっしゃるようにリングバッファを使うのが定石ですね。
Cマガジンなどでも過去に数回サウンドプログラミングの特集がありますから、そちらをあたるといいと思いますよ。
0178デフォルトの名無しさん
NGNGすいません・・・。
>>174のソースの各々の変数が何を意味するのか教えてください・・・。
なんとなくわかる物もあるのですが、確証がほしいので・・・。
あと、入力・出力は、それぞれどれに当たるのでしょうか?
お願いします・・・。
0180大原ゆき
NGNGすみません。
手直ししておきました。
http://uploader.zive.net/file/2739.txt
0181デフォルトの名無しさん
NGNG前スレ14の書いているのはIIRフィルタについて
1次2次については理論的に色々調べられていて、実用的なフィルタや
特性をコントロールフィルタはこれを応用して作成するのが定石。
ただし、ゲイン特性はある程度好きに作れるが位相の問題がある
FIRフィルタは特性の急峻な良好なものが作れるが、そうすると遅延が必要になる。
最近の液晶TVのようにわざわざ何10、何百ミリ秒も遅延しなくちゃいけない場合とか
プレイヤーであれば問題ないけどね。
DFTかけて戻すのは全体をDFTして処理しなければいけないので、
バッチ処理でしか使えない。リアルタイムでは難しい。
区間DFTで処理しようとすると区間同士を接続する問題がある
ただし究極のFIRフィルタとして理想特性がいくらでも作れる。
求める性能と、状況で選択するって事ね。
0182デフォルトの名無しさん
NGNG作ってみたのですが、いくらカットオフ周波数を下げても
出力データがほとんど0になってしまいます。なぜでしょうか?
使用したデータは、220、440、880Hzのサイン波を合成した
WAVファイルで、出力も同じ形式でやってます。
0183デフォルトの名無しさん
NGNGカットオフ周波数を下げると、フィルタ幅が狭くなって、
通り抜ける信号が小さくなるからじゃないか?
出力信号をノーマライズしたらどう?
0184大原ゆき
NGNGサンプリング周波数、カットオフ周波数、タップ数は?
波形の全体見ましたか?
また、出力を離散フーリエ変換してみましたか?
グラフはgnuplotを使ってみると便利でしょう。
double* lst; //サンプル
FILE* gp;
gp = _popen("pgnuplot.exe", "w");
fprintf(gp,"plot '-' with line\n");
for (int i = 0; i < n; ++i)
fprintf(gp,"%lf %lf\n",(double)i, lst[i]);
fprintf(gp,"e\n");
fflush(gp);
fclose(gp);
0185デフォルトの名無しさん
NGNG実際にFIRをVSTに組み込んでいるものでつが
FIRの遅延 = (次数/2) - 1が実質なんで
数百msも遅延を作ったとしたら44.1kHzでサンプリングしても
数万サンプル必要になってCPU(DSPボードでもおんなじ)が暴走しちゃうよw
音に関して言えば
窓関数つかえばフィルタの歪み自体はなくなる
(フィルタカーブがどうしてもなだらかにはなるけれど)
FIRフィルタのよさは何より線形位相なところでFFTよりも音のひずみが少ない
とこににあるわけだから遅延自体はしかたないんではないんかい?
FFTに比べたら大分遅延も負荷も少ないわけだし。
フィルタの設計も基本的なフィルタなら
(ローパス/ハイパス/バンドパス/ハイシェルフ/ローシェルフ
/ベル(バンドシェルフ)/バンドリジェクト)
本で軽く学んだら容易に理解できるレベルだからみんなも実装汁
0186デフォルトの名無しさん
NGNG一般的なIIRの実装よりもFFTの方が軽い
FIRフィルターの実装もFFTを使って不可を軽くする手もあるし
0187デフォルトの名無しさん
NGNG実際にFIRフィルターを1件づつするよりコストが低くなる(ことがある)という手で
超多倍長 掛け算を高速に実行するのと同じ手法ね
0188デフォルトの名無しさん
NGNGナイキスト周波数を超える周波数を要求された場合、
仕様としてどうするのが普通?
0189デフォルトの名無しさん
NGNG仕様に盛り込むのは永久機関を発明しろというようなものだな。
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGつかナイキスト周波数って入力側の用語じゃねえか?
0193デフォルトの名無しさん
NGNG複素領域で考えて、回転方向を規定すればfsまでOK
つまり、L、Rを複素領域と考えて、90度位相差のサイン波を出せば fsまでOK
0194デフォルトの名無しさん
NGNGそのまま出力すればよい。
波形がおかしくても気にしない。
0195デフォルトの名無しさん
NGNG周波数?:■
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG一般人の聴覚には影響のない範囲で可逆、とも言えますが。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGものすごいオーバーサンプリングとかすれば
ノイズの発生はそこそこ防げますよ。
0202デフォルトの名無しさん
NGNGできませんって表示する。
0203デフォルトの名無しさん
NGNGそれふつー歪みって言うぞ。
0204デフォルトの名無しさん
05/01/19 10:45:092つの8bitモノラルのwavファイルを自前でMIXしながら再生する
プログラムを試しに作っているのですが、単純に加算することで
実現しようとしたらノイズだらけになりました。事前に元データを
2で割ってから足しているのでクリップはしていないんですが、
音は明らかに歪んでいます。
単純MIXは加算じゃダメなんでしょうか?
0205デフォルトの名無しさん
05/01/19 10:49:17もしかしたらunsignedとかsignedとかbyteだとか、
そういう変数の型が悪さをしているのかも。
0206デフォルトの名無しさん
05/01/19 11:46:140207204
05/01/19 12:05:44無音が-127のようですね。たまたま難しいサンプルにあたってしまっていたようです。
signedでやってみます。
0208デフォルトの名無しさん
05/01/19 13:07:34ファイルへの入出力部分だけを8ビットでやって、
内部的にはぜんぶdoubleで処理してもいいかも。
クリッピングのこととかそれほど考えなくて済む。
0209デフォルトの名無しさん
05/01/20 22:44:59サンプリング周波数44.1kHzで録音して音楽CDを作成するのと、
48kHzで録音して44.1kHzに変換して音楽CDを作成するのでは、前者の方がイイですよね?
0210デフォルトの名無しさん
05/01/20 22:49:36はい。
0211デフォルトの名無しさん
05/01/21 02:47:19原始的な環境へと移行していってるんだけどオレ。
このままいくと、果てはアセンブラか。
使い方覚えてばっかで、手段がすでに目的化してる感じ。
現代社会の縮図を自分自身の中に見た心地です。
0213デフォルトの名無しさん
05/01/21 23:50:50だとすると48で採ってから高精度srcで44にした方が、、なんてね。
色々試してみるも由
0214デフォルトの名無しさん
05/01/22 00:48:53「耳の良さ」も必要なんだな、この分野。
先輩から「こんなに音が劣化してるのがわかんねーのかよ、やめちまえよ」と言われたOTL
0215デフォルトの名無しさん
05/01/22 01:20:09波形を見て判断するのもありかと
0216デフォルトの名無しさん
05/01/22 01:21:35始めの一口の感想もあり、一食二食〜毎日食べ続けた感想もあり
作る手順も「さしすせそ」あり
駄目出しされた聴感は良いとされる音を聴き込んで鍛えれば由
0217デフォルトの名無しさん
05/01/22 01:24:01ゴールデンイヤーってどんな人だろう…会ってみたい。
0218デフォルトの名無しさん
05/01/22 02:10:270219デフォルトの名無しさん
05/01/22 02:36:080220デフォルトの名無しさん
05/01/22 02:36:450221デフォルトの名無しさん
05/01/22 02:42:510222デフォルトの名無しさん
05/01/22 04:58:120223デフォルトの名無しさん
05/01/22 07:35:48CODECのADCには強力なLPFが入っているけど、それ相当のフィルタをソフトで実現すると重くなるから
PC内で変換すると、一般的には特性が劣化する。
でも、安物のCODECだと、次数の低いLPFしは入ってなくて、肩特性が悪かったり、折り返しノイズが入ってきたり場合があるから
48kでサンプリングして、強力なLPFをかけた方がより特性が出る。
48000:44100は160:147なんで、原理的には147倍オーバサンプリングして、160分の1にダウンサンプリングする。
それぞれに使うLPFのタップ数を上げれば上げるほど特性は良くなる
0224デフォルトの名無しさん
05/01/22 07:57:02黄金の耳について。
どっかのメーカー(タンノイか?)のスピーカーで、ウーファーの中央にツィーターがついていて、独立して動くと言う「同軸型スピーカーユニット」がありました。
ウーファーが前後に振動しながら、そのウーファーの中央でツィーターがより高周波で前後に振動するというものです。
黄金の耳を持つと言うとある先生が数種類のスピーカーのブラインドテストをしてみたら、
その中の一台に関して「高周波にドップラー効果がかかってるんじゃないか?」との評価を下しました。
その先生に師事していたサウンド・エンジニアたちもびっくり。彼こそ黄金の耳にふさわしいという話になりましたとさ。
0226デフォルトの名無しさん
05/01/23 14:04:20へー。たしかに同軸型マルチウェイの問題点は、ドップラー効果による
高域のFM変調が回避できないことだけど、ウーファの振幅が3-4 mmぐらい
なら聞き取れる人はいないだろうって話だったと思う。どのくらいの音量
で聞いてたんだろうね。
0227デフォルトの名無しさん
05/01/24 14:58:200228デフォルトの名無しさん
05/01/25 01:38:43レイテンシはプログラマが設計時に自分で決めるんだろ。
Java Sound APIが決めるわけじゃない。
0229デフォルトの名無しさん
05/01/25 15:24:340230デフォルトの名無しさん
05/01/26 11:41:58最近不安を感じて全部高めのレートでエンコードしてるけど、
圧縮音楽聴いてること自体がダメとか言われそうだ。
AV板の連中でも案外ブラインドテストに弱そうなのとか見てると、
あまり心配しすぎることでもないかもだが。
0231230
05/01/26 11:44:110232デフォルトの名無しさん
05/01/26 11:45:12「本物」の音を聴かないという時点でダメだ
0233デフォルトの名無しさん
05/01/26 11:47:20「本物の音」ってやつは敷居が高いw
0234デフォルトの名無しさん
05/01/26 11:48:300235デフォルトの名無しさん
05/01/26 11:49:11「本物の音」ではなく「本物」の音だよ
0236デフォルトの名無しさん
05/01/26 12:03:37>>235が正論。
0237デフォルトの名無しさん
05/01/26 13:26:00かなりの量のコンプレッサなんかがかけられている。
そういう音量だけでかい音楽を聴いていると、
ダイナミックレンジの広さを耳が拾えなくなるよ。
耳のためを思ったらやっぱりホールでクラシックを聴くのがいい。
でも耳の訓練次第でなんとでもなるんだけどね。
0238デフォルトの名無しさん
05/01/26 13:37:58使って趣味で作曲をする立場の人間なんですが(SONARマンセー)、
市販のCDはガンガンコンプレッサー掛けてて、音圧だけはバカでかい。そうすると、
自分の作ったのを公開などするときに、こちらも多少のコンプ掛けないと、やたら
音量が小さくなって不評を買う。困ったもんです。
ココ見てる人の中には市販ソフト開発者もいるのだろうか?
0239デフォルトの名無しさん
05/01/26 14:29:010240デフォルトの名無しさん
05/01/26 21:57:00でも、そのせいでせっかく16ビットあるCDが
12ビットや8ビットみたいなダイナミックレンジに感じることがあります。
最近はクラシック録音でも薄くコンプがかかっているみたいです。
0241230
05/01/27 11:32:03最近のJ-POPなんか黒ベタの波形だしなあ。
昔はピアノやってて演奏会とかよく行ったり出たりしてたけど、
このところ全然生で聞いてない。ちとコンサート情報漁ってみるか。
0242デフォルトの名無しさん
05/01/28 00:28:150243デフォルトの名無しさん
05/01/28 00:43:120244デフォルトの名無しさん
05/01/28 00:46:390245デフォルトの名無しさん
05/01/28 01:44:16fmod.exe、sample/cdda/cdda.exe共に同じです。
cddatestのログにはFSOUND_CDDA_NtScsi_GetFileHandle(16) failedとか出てます。
fmodのフォーラム検索しても同様のケースがありませんがおなじようなじょうよぷになたひとはいますか?
0246デフォルトの名無しさん
05/01/28 02:01:130247デフォルトの名無しさん
05/01/28 02:38:310248デフォルトの名無しさん
05/01/28 12:41:39飛んで来るしな。
0249 209
05/01/29 11:40:470250デフォルトの名無しさん
05/01/29 11:55:300251デフォルトの名無しさん
05/01/29 14:27:300252デフォルトの名無しさん
05/01/29 15:48:540253デフォルトの名無しさん
05/01/29 22:03:520254デフォルトの名無しさん
05/01/30 19:14:080255デフォルトの名無しさん
05/02/03 09:21:590256デフォルトの名無しさん
05/02/03 09:50:130257デフォルトの名無しさん
05/02/03 09:58:55レイトレーシングの音版みたいにして
空気粘度とか楽器内部での反響とか客席、壁、人みたいなオブジェクトへの
吸収・反射全部考慮して。
5分の曲に一ヶ月くらいかかりそうだけど
0258デフォルトの名無しさん
05/02/03 11:20:02音の場合は非常にシビア。
そういう合成をした場合、自然に近づけば近づく程に、よりほんの少しの不自然が際立ってくるよ。
そもそも、楽器をシミュレーションしても演奏はどうするのよ
0259デフォルトの名無しさん
05/02/03 11:27:120260デフォルトの名無しさん
05/02/03 12:34:35賛同者が居ないのなら俺独りで朝鮮するよ。
0261デフォルトの名無しさん
05/02/03 12:51:51理論的な部分に何かあてはあるの?
現行の圧縮技術よりも革新的な秘策みたいなやつ。
あれば是非お話をお聞かせください。
0262デフォルトの名無しさん
05/02/03 13:59:58高圧縮には程遠いもののCDの1/2〜1/3には圧縮できるものと思われる。
ソースを分析して時間ごとに割り当てるビット数を最適に可変させるというもの。
PCMのように時間軸に対して一対一対応のデータを割り当てるのではなく。
最初の音を基準に変化量を記録していくというもの。
変化の少ない部分に割り当てるビットを減らし、変化量の多い部分は逆に増やす。
例えば変化量が1の場合は16ビットも割り当てる必要はなく、1ビットで十分である。
また変化量が大きい場合はデータを上手く補完して変化量を少なくし、割り当てるビットを減らすように制御する。
ありきたりだよな(ワロス。
0263デフォルトの名無しさん
05/02/03 14:08:10・16bitの上位と下位8bitずつに分ける
・上位をランレングスとかで、下位を辞書使うなりして圧縮
0264デフォルトの名無しさん
05/02/03 14:21:09他にもデータをブロックに区切り、ブロックごとに分析して
使われていない周波数帯域をバッサリ殺ぎ落とすというのも良いかも知れません。
0265デフォルトの名無しさん
05/02/03 14:59:59ADPCM
0266デフォルトの名無しさん
05/02/03 15:19:03そういうこと言わない。
以下1960年代に戻ったかの様なレスが続く
↓
0267デフォルトの名無しさん
05/02/03 15:21:480269デフォルトの名無しさん
05/02/03 16:16:300270デフォルトの名無しさん
05/02/03 16:46:35ADPCMは情報を捨ててしまうから・・・・ただADPCMはビットレートが一定という大きなメリットがある。
サウンドに使うなら、やっぱりビットレート一定でないと使い難いよ
0271デフォルトの名無しさん
05/02/03 16:52:42どんなことでも、やろうと思ったことが先にやられていることはよくあることだ。
2ch住人は、車輪の最発明だから止めとけ、とすぐに言うが、新規性はやっている内に
見えてくることもよくある。
根気が無ければ何も生まれてない。
0272デフォルトの名無しさん
05/02/03 17:43:53自動的にその曲のアーティストにメール送ってくれて
しばらく待ってれば生で演奏しに来てくれる。
つまり、メディアプレイヤーにメーラーの機能と
依頼メールのテンプレートをあらかじめ乗せておいて
あとはファイル側にメアドさえ記述しておけば実現可能だな。
0273デフォルトの名無しさん
05/02/03 18:06:24269は、それ以前に、単に勉強不足という事を言いたかったのでは?
0274デフォルトの名無しさん
05/02/03 19:45:2990年代初頭のSIGRAPHで似たようなものを見たことある。
観客一人一人に反射するようなものじゃないけどね。
まぁ、そんなに細かなシミュレーションしても、
人間の聴覚にはあんまり影響ないと思うよ。
労力ばかり大きくて効果が低い。
0275デフォルトの名無しさん
05/02/03 20:11:22やっとこさのアウトプット「> 2」を得ることができたとして
しかし、そのアウトプットに我々がどれだけの意味、意義、価値を
感じることができるか。それが問題だということだな。
かといって、安易な結果至上主義に陥るのも考えもんだけど。
もし、プロセスが重要であるのなら、そのプロセスごと含めて見せる
というか、プロセスを魅せる技が必要なのかもしれない。
0276デフォルトの名無しさん
05/02/03 21:03:47すでに立派なビジネスにもなってるよ。
コンサートホールの建設をするときに
音響を考えたデザインをしたい時なんかに使われてるね。
0277デフォルトの名無しさん
05/02/03 21:14:040278デフォルトの名無しさん
05/02/03 21:22:21最近のシンセはそんな感じのがあったと思う
0279デフォルトの名無しさん
05/02/04 14:27:03そのうちウインドシンセと一緒に一台欲しい。
0280デフォルトの名無しさん
05/02/04 17:36:54音響をレイトレースって何か違和感があるな…。
0281デフォルトの名無しさん
05/02/04 17:44:550282デフォルトの名無しさん
05/02/04 17:46:280283デフォルトの名無しさん
05/02/04 18:12:24ディジタルフィルタ設計
畳み込み
ミキシング
音声のパワー
0284デフォルトの名無しさん
05/02/04 21:14:28sonic ray tracingとかsound ray tracingとか試してみれ。
ヘルシンキ工科大には音響系に強い人が結構いるから、と思って探したらそれ系の論文を見つけた。
http://www.tml.hut.fi/~las/publications/thesis/thesis.html
0285デフォルトの名無しさん
05/02/04 21:31:20波紋を球体として3Dで計算、かなぁ(??)
0286デフォルトの名無しさん
05/02/04 21:33:150287デフォルトの名無しさん
05/02/04 22:45:400288デフォルトの名無しさん
05/02/04 22:59:510289デフォルトの名無しさん
05/02/05 04:23:08見たことがあるような気がするんだけど
知りませんか?
0290デフォルトの名無しさん
05/02/05 06:17:330291デフォルトの名無しさん
05/02/05 06:22:080292デフォルトの名無しさん
05/02/05 07:22:33ヤマハと共同開発したりしてるオッサンのページ。
http://ccrma.stanford.edu/~jos/pasp/pasp.html
0293デフォルトの名無しさん
05/02/05 15:05:080294デフォルトの名無しさん
05/02/05 15:17:36頑張れ
0295デフォルトの名無しさん
05/02/06 01:07:06Synthesis ToolKit (stk) というのでググってみ。
色んな音の物理モデルがC++から扱えるようなライブラリ。
0296デフォルトの名無しさん
05/02/06 20:09:13演奏ファイルはオリジナルフォーマットで
50msec毎にPCMへ変換して、WaveOutのバッファへ放り込んでます。
変換自体はダブルバッファにして予め変換済みなのですが、WOM_DONEを受けて
次のバッファをwaveOutWriteしてるとどうしてもノイズがでます。
waveOutのAPI自体がダブルバッファに対応してないと
これ以上は難しいと思うのですが、何か対策あるのでしょうか?
0297デフォルトの名無しさん
05/02/06 21:31:590298296
05/02/06 21:47:22古いPCでも気にしないでいいように、通常のSDKのみで
考えていて、DirectX系は調べてませんでした。
が、DirectSoundはまさに欲しい機能のようです。
おそらくSDKじゃダメなんでしょうね、、、
仕方ないので、DirectSoundで検討します。
http://www2.muroran-it.ac.jp/circle/mpc/program/windows/spti_cdda/spti06.html
0299デフォルトの名無しさん
05/02/06 21:56:12OpenALの現状はどうなんだろう。
0300デフォルトの名無しさん
05/02/06 23:31:59いつのPCの話だよ・・・Pentium-166とかか?
>>299
延々とサポートされる、と言ってみるテスト。
0301296
05/02/07 00:50:55自分の環境はXPでDirectX5が入ってるみたいなんですが、
DirectXのSDKはどのVerを使えばよいのか?
最新の9(?)で作ったら、Ver5あたりしか入ってないPCなどでは
ちゃんと動くのか?
等が、よくわからず調べるのも面倒だったので拒否してました。
0302デフォルトの名無しさん
05/02/07 01:23:06仮にDirectX5以前のものに対応させたかったら、それ以上の
バージョンのインターフェースを使用しないだけ。
0303デフォルトの名無しさん
05/02/07 01:32:20DX5か6でNotifyが入ったぐらいか
> よくわからず調べるのも面倒だったので
waveOutはどのバージョンのWindowsでも同じように動くと思ってたの?
まあ、その程度じゃ何やってもダメかもな・・・
0304デフォルトの名無しさん
05/02/07 06:16:30waveOutのAPI自体がダブルバッファに対応してるよ。
バッファを複数用意しておいて、waveOutWriteで先行して2つなり3つなりを送ってから
コールバックなりで空いたものから順に書き直したらいいじゃない。
0305デフォルトの名無しさん
05/02/07 06:29:22>複数のデータ ブロックを送るときには、 追加ブロックを送るタイミングを調べるために、
> データ ブロックの処理が終了したことを監視する必要があります。
ってあるから、出来ないって思ってしまうよね。
でも、はwaveOutPrepareHeaderで複数定義しておいて、連続してwaveOutWriteして
MM_WOM_DONEで使い終わったバッファにデータを再度用意して waveOutWriteするようにすれば
古いパソコンでも大丈夫
0306296
05/02/07 11:11:55お、できるんですか!?
試してみます。
ありがと!
ところで、もう一つ質問なのですがwaveOutProc関数のParam1/2には
何が入るんでしょうか?
ヘルプ見ても「メッセージパラメータが入ります。」としかないんですが、、、
(いくつめのバッファかの判断に使いたい)
0307デフォルトの名無しさん
05/02/07 12:43:09途切れなくそういうことをやるときは、普通トリプルバッファを使う。
これはDirectXでも何でも同じ。
0308デフォルトの名無しさん
05/02/07 13:58:300309デフォルトの名無しさん
05/02/07 14:00:110310デフォルトの名無しさん
05/02/07 15:32:55お前には無理だ
0311デフォルトの名無しさん
05/02/07 16:49:49MM_WOM_DONEには
>DWORD dwParam1バッファを識別するWAVEHDR構造体を指すポインタです。
>DWORD dwParam2現バージョンでは使われません。
とあるよ。
何番目か調べなくても WAVEHDRが判れば問題ないでしょ?
必要なら WAVEHDRの dwUser メンバを使って識別してもいいけどさ
0312デフォルトの名無しさん
05/02/07 20:02:16MSの仕様って使っててむかつく
(゚肉゚)
0313デフォルトの名無しさん
05/02/07 20:46:440314デフォルトの名無しさん
05/02/07 20:48:41ミートそーすはお帰りください。
0315296
05/02/07 20:56:43HELPからですか?
HDDにはインストールしてないんで、ネットで見てるんですが、
そのような記述が見つけられませんでした。
一番下の参照欄にMM_WOM_DONEはでてますが、リンク無し。
検索しても見あたらずでした。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpmltimd/html/_win32_waveoutproc.asp
0316デフォルトの名無しさん
05/02/07 21:04:58http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_wom_done.asp
MSのドキュメントについては、日本語版は見ないほうがいいよ。
最初から元のを見たほうが時間をムダにしないですむから。
0317デフォルトの名無しさん
05/02/07 21:06:19http://www.google.co.jp/webhp?q=MM_WOM_DONE
から調べりゃいいじゃない
0319デフォルトの名無しさん
05/02/11 21:44:532分割のフィルタバンクだと、低域の信号と高域の信号に分割して、
それぞれを1/2にダウンサンプルしますよね。
ここで、どうして高域を1/2にダウンサンプルできるのかがわかりません。
1ヶ月くらい調べているのですが、いまだに文献にたどり着けません……。
0320デフォルトの名無しさん
05/02/11 21:47:38ν即逝きすぎました。回線切って首吊ってきます
0321デフォルトの名無しさん
05/02/11 22:30:02という仕掛けで周波数を移動するわけです
0322デフォルトの名無しさん
05/02/12 01:21:47ありがとうございます。
まさか移動できるとは思いませんでした。
LPFを平行移動してHPFを求めるときと同じような感じでしょうか。
ゆっくり考えてみます。どうもありがとうございました。
0323デフォルトの名無しさん
05/02/12 05:55:18どちらで作ったほうがいいでしょうか?
0324デフォルトの名無しさん
05/02/12 07:07:53ちがう。
相対性原理みたいなもんで、
φで回転してる人からみた回転速度Πは Π-φになるというだけの事。
>>323
Cで作って、必要ならアセンブラ
0325デフォルトの名無しさん
05/02/14 20:04:130326デフォルトの名無しさん
05/02/14 20:08:02不満を感じる前からそんなこと考える必要はない。
0327デフォルトの名無しさん
05/02/14 20:24:270328デフォルトの名無しさん
05/02/14 20:30:36どういうサウンドドライバなんだ?
大昔のマシン用に石叩くならアセンブラ、
今時の中略ならC++、
石叩きじゃなくて波形入れるメモリいじるだけなら>>325のやり方だな。
0329デフォルトの名無しさん
05/02/18 22:16:48音声に関してそのようなものはありますか?
0330デフォルトの名無しさん
05/02/19 00:38:25spwave
0331デフォルトの名無しさん
05/02/19 00:40:44spLibs
0332デフォルトの名無しさん
05/02/19 00:49:120333デフォルトの名無しさん
05/02/19 01:02:14PortAudio...はちょっと違うか。
SoXとか。
0334デフォルトの名無しさん
05/02/19 01:28:03libsndfileは各種音声ファイルを扱うライブラリだよね。
これは使ったことないんだけど、sndobjはどうなんだろ?
動画処理にはmalibがあるよね。なんか箇条書きになっちゃったな。。
0335デフォルトの名無しさん
05/02/19 01:32:15MALIBってAugmentedReality関連のライブラリじゃないの?
0336デフォルトの名無しさん
05/02/19 01:53:250337デフォルトの名無しさん
05/02/21 13:37:360338デフォルトの名無しさん
05/02/22 01:59:02誰か教えて
0339デフォルトの名無しさん
05/02/22 03:06:350340デフォルトの名無しさん
05/02/22 06:08:10中央の音だけを残すのは理論的には無理。
0341デフォルトの名無しさん
05/02/22 12:30:350342デフォルトの名無しさん
05/02/22 12:59:110343デフォルトの名無しさん
05/02/22 13:38:50L=l+c,R=r+c(l,r:左右の音の成分、c:中央の音の成分)とすると、
L+R=l+r+2c,L-R=(l+c)-(r+c)=l-r
(L+R)-(L-R)=(l+r+2c)-(l-r)=2(r+c)=2R
となってしまうのでは?
実際にやった訳じゃないからわからんけど
0344デフォルトの名無しさん
05/02/22 13:40:41(L+R)-(L-R) = 2R
右の音だけが残る
0345デフォルトの名無しさん
05/02/22 13:59:11それを左右からそれぞれ引くと真ん中だけ残る?
なんて言ってみたかっただけ。たぶんうまくいかない。
0346デフォルトの名無しさん
05/02/22 14:28:08R[n](既知)=r[n]+c[n]
式が2つで、わからない値が3つの方程式は解けない。
0347デフォルトの名無しさん
05/02/22 14:30:500348デフォルトの名無しさん
05/02/22 14:51:19入力した音声(音楽)をカラオケ化して出力するキカイというものを
以前どっかで見たことあるけど、あれってどーいう仕組みになってるんだろう?
0349341
05/02/22 15:13:180350デフォルトの名無しさん
05/02/22 15:36:34これは>>340の単純に減算すればOK
多少工夫するなら、音量を自動調整して一番音量の小さい個所にコントロールするとか、
相互相関を求めて、多少遅延時間を調整してやるとか、
0351デフォルトの名無しさん
05/02/22 15:39:04推測するとなると、音源の特定が出来るようにならないといけない。
つまり、それが出来るなら中央の音だけでなく、バイオリンの音だけとかピアノの音だけとかを
オーケストラの中から取り出して来る事が出来るわけだ。
そんな事が出来るなら・・・・・
0352デフォルトの名無しさん
05/02/22 15:50:07L[n]-R[n]って事か?
これだと、右側の波形の位相が180度反転して、音が変わっちゃうような気が
するのだが・・・
0353デフォルトの名無しさん
05/02/22 16:54:21結果はモノラルだから、それで十分なんだよ。
0354デフォルトの名無しさん
05/02/22 18:43:430355デフォルトの名無しさん
05/02/22 18:46:07音源のモノラル成分を取り出せばいいだけやん。
逆チャンネルの逆位相成分を重ねるとモノラル成分が除去できるだろ
これの逆というかこれをちょっといじるだけで出来るよ。
つうかおまえら素人だろとあえrbjけぱrkbぱえい0−っらえb−ぴ
0356デフォルトの名無しさん
05/02/22 20:22:38釣ってるんだろうから、あえてマジレスすると、
それはだ、
えとね、
・・・・なんか疲れた。 ・・・将来は256CHマルチトラック録音CDとか出るんだろうか?
0357デフォルトの名無しさん
05/02/22 20:36:430358デフォルトの名無しさん
05/02/22 20:51:560359デフォルトの名無しさん
05/02/22 20:55:520360デフォルトの名無しさん
05/02/22 21:05:46http://www.jp.onkyo.com/technical/dolby.htm
「あらゆるステレオ音源を5.1chライクな立体音場で楽しむことができます。」だそうな
0361デフォルトの名無しさん
05/02/22 22:00:09ドルビーサラウンドは単に5.1chの規格だったような気がする。
0362デフォルトの名無しさん
05/02/22 22:12:59いや、問題あるぞ。L[n]+R[n]とL[n]-R[n]じゃ結果が違うだろ。
ためしにL[n]に矩形波、R[n]にノコギリ波を入れて合成してみ?
加算だと単純な合成波になるけど、減算だとタダのノコギリ波になるから。
ステレオでもモノラルでも結果は同じだと思うぞ。
0363デフォルトの名無しさん
05/02/22 23:42:420364デフォルトの名無しさん
05/02/23 10:13:28微妙に位相のずれた音や、反射音なんかがあるせいで、音の場所は多少広がりを持っている。
だから、単にセンターだけとっても、薄っぺらい音になってしまう。
0365デフォルトの名無しさん
05/02/23 11:05:12完全に周波数・位相があっていれば、それは合成されてしまうだろうけど、
それぞれ別の周期か、ゆらぎの入った信号なら、耳で聞けば差か和かは、まず判らないよ。
0366デフォルトの名無しさん
05/02/24 00:34:44とかがエライことになった。(w
なんかものすごいノイズが乗る。場合によってはほぼ雑音と化す。
これじゃあだめだ。自分、完璧主義者なもんで。
あと、あまり関係ないが、センターだけを単純に消すと、ヴォーカルだけでなく
ベースなんかの低音形も一緒に消える。そしてヴォーカルのエコーは残る。ダメダメ
0367デフォルトの名無しさん
05/02/24 03:09:06音声をキャプチャしながらリアルタイムでFFTをかける、みたいな処理をしようと考えていますが、
音声をキャプチャするライブラリはこのスレにもちょくちょく出てくるPortAudioがいいのでしょうか?
ただPortAudioは2003年以降更新されていないみたいですけど、大丈夫なんですかね?
また、ちょっとスレ違いな感じですが、PortAudioをVC++ .NET 2003で使おうとしたとき、
libファイルはMinGWをつかってmakeするんでしょうか?
0368デフォルトの名無しさん
05/02/24 03:50:030369デフォルトの名無しさん
05/02/24 06:42:48単純に減算したらオーバーフローするよ
0370デフォルトの名無しさん
05/02/24 07:44:53実質Portaudioはv19-developのバージョンが現在の主流かも。
あとは質問の意味がよく分からないのでパスします。
0371デフォルトの名無しさん
05/02/24 12:16:22完ぺき主義? ププッ。
0372デフォルトの名無しさん
05/02/24 15:26:54>>ベースなんかの低音形も一緒に消える。そしてヴォーカルのエコーは残る。ダメダメ
やるまえからわかってんだろ。あとDSPやってるのにエコーっていう表現はダサすぎ・・・。
そういう意味では素人まるだしだなw
0373デフォルトの名無しさん
05/02/24 16:08:220374デフォルトの名無しさん
05/02/24 19:51:390375デフォルトの名無しさん
05/02/24 20:10:32そんなところに突っ込んで得意げになられても。
0376デフォルトの名無しさん
05/02/24 21:13:53コーラスではないことは確か。
おそらくディレイとリバーブの合成物だろうな。
っていうか、エコーで通じるし、それで良いじゃん。
0377デフォルトの名無しさん
05/02/24 21:19:39単純ディレィだと綺麗なエコーにはならないよ。
0378デフォルトの名無しさん
05/02/25 18:34:41例えば昔の俺
0379デフォルトの名無しさん
05/02/27 20:49:30というC/C++用のソースが置いてあるサイトを
知ってる方いますか?
0380デフォルトの名無しさん
05/02/28 16:58:19http://www.koders.com/
0381デフォルトの名無しさん
05/03/01 01:07:01ありがとうございます。
早速DLしてきました。
0382デフォルトの名無しさん
05/03/12 00:47:57よさげな解説サイト、書籍があったら教えてくれ
0383デフォルトの名無しさん
05/03/15 05:36:220384デフォルトの名無しさん
05/03/15 17:20:220385デフォルトの名無しさん
05/03/15 23:47:26作りたいのですが、どういった理論を使用すれば良いのか
どなたか教えてください。
0386デフォルトの名無しさん
05/03/16 00:39:110387デフォルトの名無しさん
05/03/16 01:20:19俺もこいつの仕組みは興味あるな
0388デフォルトの名無しさん
05/03/16 01:32:225.1ch>2chのエンコードと言うか好きな方向から音出すのは楽だけど、
エンコードされた2chから5.1chの拡張は辛そうだね。
0389デフォルトの名無しさん
05/03/16 01:41:33PCで5.1ch>2chして外部のプロロジック2デコーダに渡すのは楽だけど、
アナログ5.1ch出力の様な外部デコーダの無いサラウンド環境で、
2ch>5.1chして、それぞれのチャンネルに出すのは辛そう?
0390デフォルトの名無しさん
05/03/16 03:30:49HRTFもどきなことをしてるだけじゃないの?
0391デフォルトの名無しさん
05/03/16 07:54:39基本的にはマトリックス。
0392390
05/03/16 13:30:00HRTFは用途が違うよね。
0393デフォルトの名無しさん
05/03/16 13:41:090394デフォルトの名無しさん
05/03/16 15:16:490395デフォルトの名無しさん
05/03/16 16:24:55むしろ抵触しなかったら問題だろ。
0396デフォルトの名無しさん
05/03/16 17:28:140397デフォルトの名無しさん
05/03/16 22:03:370398デフォルトの名無しさん
05/03/16 22:04:46逆位相当ててるだけだったらプロロジック1以下の仕様じゃないか?
0399デフォルトの名無しさん
05/03/16 22:34:32Active MatrixこそがPLの肝。
0400デフォルトの名無しさん
05/03/16 23:09:26よう解らんが、5chのポジショニングは逆相が全てじゃないの?
サブウーハ成分はハイパスして逆相に出さないとか、色々あるけど。
0401デフォルトの名無しさん
05/03/16 23:11:51審査通らないとドルビーロゴ貰えないそうだけど。
0402デフォルトの名無しさん
05/03/16 23:29:030403デフォルトの名無しさん
05/03/16 23:48:37PLについてはこちら参照。
ttp://www.dolby.co.jp/images/about/who_we_are/p_l_surr_decoder.pdf
基本的な考え方はPLIIやPLIIxになっても変わってないと思います。
0404デフォルトの名無しさん
05/03/17 02:10:17逆相なのはスピーカの向きが逆だから当たり前のことで、なにも理論上特殊なことじゃない。
逆相にしないと打ち消しあって困ってしまう。ドルビープロロジックじゃなくても普通にステレオ
音源をスピーカーで囲んで後ろを逆相にすればそれなりに広がって聞こえる。でもそれは単に
あちこちから同じ音が聞こえるだけ。
プロロジックのミソは2chの中に後ろからだけ出る音が仕込まれているって点じゃないのか?
その理論がどういう理屈なのかは漏れも知りたいところだが、プロロジック1は後ろモノラル
から独立した音がでて、プロロジック2は後ろもステレオってのが漏れの理解なんだが。
単に逆相なんて仕様だったら子供だましもいいところだし、現にそんな聞こえ方じゃないよな。
0405デフォルトの名無しさん
05/03/17 12:14:52少しだけヒントでてます。
0406デフォルトの名無しさん
05/03/17 12:42:55違う違う違う違う。 全く見当違い。
逆相はリアのパンニングを2chにエンコードする為で、デコーダは
その逆をして?各chに振るんだよ。
403さんが資料見つけてきてくれたんだから読んでくれよ。
0407デフォルトの名無しさん
05/03/17 12:46:58Lの音量を0から100%にフェードインさせると、フロントLから徐々に
リアLRに移動する。
サラウンド環境あるなら、試してみ。
0408デフォルトの名無しさん
2005/03/24(木) 21:04:370409デフォルトの名無しさん
皇紀2665/04/01(金) 10:05:04既存のSMFを解析しているとメタイベントのtypeが21hというのが現れてしまいます。
以下は問題のトラックチャンクの"MTrk"から始まる冒頭部分のダンプです。
4D 54 72 6B 00 00 27 5F 00 FF 21 01 00 00 FF 03 0C 50 69 63 63 6F 6C 6F 20 49 20 49 49
トラックサイズが275Fhはいいとして、その次のdelta=0hのメタイベント(FFh)のあとのtypeが21hとなっています。(ちなみに、その次はtype=3hのメタイベント、トラック名(Piccolo I II)です。)
ぐぐってもメタイベントのtypeで21hというのは見当たらないのですが、これは何なのでしょうか。
0410デフォルトの名無しさん
皇紀2665/04/01(金) 10:30:390411デフォルトの名無しさん
皇紀2665/04/01(金) 12:22:56ttp://www2s.biglobe.ne.jp/~yyagi/material/smfspec.html#port
非標準だってさ。どおりで仕様書のどこ探しても載ってないわけだ。
0412デフォルトの名無しさん
皇紀2665/04/01(金) 18:28:470413デフォルトの名無しさん
NGNGありがとです助かりました。こんなのもあるんですね。
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
2005/04/26(火) 00:23:26また、参考になるものはありますか?
0416デフォルトの名無しさん
2005/04/26(火) 00:58:53それを元にモデルとなる発音原理を決定
0417デフォルトの名無しさん
2005/04/26(火) 11:36:15プログラムじゃなくて、シンセを扱うセンスの問題。
モジュレーション、リバーブ、LFOをうまく使えればできるよ。
0418デフォルトの名無しさん
2005/04/26(火) 16:41:170419デフォルトの名無しさん
2005/04/26(火) 17:22:57だったら、やりかたを簡単に書いとく。
まず、金魚鉢みたいな空間をつくって、そこに、ちいさな粒を落として共鳴させる。
どう落とすか、ってのは、Navier Stokes equation、NaSt2Dでぐぐってみるといい。
ここの動画を参考に、イメージを膨らませてみてくれ。
http://www5.informatik.tu-muenchen.de/forschung/visualisierung/praktikum.html
0420デフォルトの名無しさん
2005/04/26(火) 17:23:08>>1によると、スレ違い気味に思える
どっか別の向いたスレ探したほうがいいんじゃない?
0421デフォルトの名無しさん
2005/04/27(水) 03:55:080422デフォルトの名無しさん
2005/04/27(水) 06:12:59今もあるかな?
音も鳴っておもしろかったんだけど。
0423デフォルトの名無しさん
2005/04/27(水) 18:19:41もしくはDTM板にそういうスレを立てるとか。
0424デフォルトの名無しさん
2005/04/28(木) 01:57:57円形の太鼓は波動方程式の解がベッセル関数の重ね合わせになって、
非整数倍の倍音が出てくるから面白いね
0425デフォルトの名無しさん
2005/05/09(月) 17:46:33量子力学かとオモタ(´・ω・`)
http://homepage3.nifty.com/iromono/kougi/qm/qm2_12.html
このアニメは太鼓みたいだな。
0426デフォルトの名無しさん
2005/05/14(土) 20:47:09商用アプリのサウンド入出力を自作プログラムでコントロールしたいのですが、
ターゲットとなるアプリはサウンドドライバを指定して音声を出力・入力するタイプになっています。
しかしながら私がDDKを持っていないため、サウンドデバイス自体の新規作成はすぐにはできません。
そこで、出力の場合を例にとると、
[アプリ]→<<汎用サウンド出力ドライバ?>>→(自作ルーチン)→[サウンドカードのドライバ]
のような感じを想定して、<<汎用サウンド出力ドライバ?>>に相当するフリーウェアやAPI?を
探しているのですが、そのようなものはご存知ないでしょうか。
たとえばサウンド出力がDirectShowのFilterGraphにリダイレクトされるような
ドライバがあれば嬉しいところなのですが。
・・・と思いつつぐぐっているとVirtual Audio Cableを見つけました。
これでもいいのですが、フリーでは3分しか使えない(以降ノイズが乗る)ようだし、
他に候補があれば教えてくださいm(__)m
0427デフォルトの名無しさん
2005/05/18(水) 19:04:05つか、高速フーリエ変換の関数C言語で作ってください。
ネットに転がってるのは動作がおかしかったり、使い方がまるで分からなかったりで、
かといって自分で作れるほど頭よくないんですToT
とりあえずプロトタイプは
int fft( double real_dat[], double imag_dat[], int num, int nn, int flg);
な感じで
real_dat:実部が入る配列
imag_dat:虚部が入る配列
num:データ数(2^nのみ)
nn:2^nのn(なくてもいい)
flg:逆フーリエ変換するかどうかのフラグ(0:しない 0以外:する)
戻り値:0:成功 1:失敗
のようにお願いできますか
0428デフォルトの名無しさん
2005/05/18(水) 19:32:23ここのを使え。
http://shoko.calarts.edu/~glmrboy/musicdsp/music-dsp.html
0429デフォルトの名無しさん
2005/05/18(水) 19:35:53君が望む仕様ではないが、前に宿題スレで作ったやつ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/414.c
0430デフォルトの名無しさん
2005/05/18(水) 19:54:48>>429さんのは2次元のやつですかね??
>>428さんのとこのサイトから何とか使えそうなのを拾ってこれました。
これで頑張ってみます。
0432デフォルトの名無しさん
2005/05/19(木) 00:29:58Cマガのサンプルだったかなー
0433デフォルトの名無しさん
2005/06/02(木) 23:12:19全部対応しようと思うと、めんどくさいなぁ。
何かうまい方法ないもんかな。
0434デフォルトの名無しさん
2005/06/02(木) 23:39:180435デフォルトの名無しさん
2005/06/03(金) 00:41:19どなたかGCCでVSTプラグイン作ってる人居ませんか?
ttp://www.u-he.com/vstsource/archive.php?classid=5#17
このあたりを見ながらやっているんですが
DLLは生成できるものの、プラグインとして認識してくれません
環境はcygwinのgcc3.3.3 で -mno-cywgin つけてやってます
素直にVC++だと動きそうなんですが、このまま解からないのも悔しくて…
0436デフォルトの名無しさん
2005/06/03(金) 00:46:23おお、それは楽そうですね。
モノラルをステレオにするときは、
左右おんなじもん鳴らしとけばOKなのかな
0437デフォルトの名無しさん
2005/06/03(金) 00:56:35ここで全然問題ないと思うけど、DTM板にVST作成スレがあるから紹介しておくよ。
VST Plugins Development 2.0
http://pc8.2ch.net/test/read.cgi/dtm/1100420016/
0438435
2005/06/03(金) 01:06:08でも、gccとかdlltoolとかの話になるかもしれないので
ム板のここにしておきます
0439デフォルトの名無しさん
2005/06/04(土) 07:55:33名前に@が入ってたりしない?
0440デフォルトの名無しさん
2005/06/04(土) 08:01:270441デフォルトの名無しさん
2005/06/04(土) 10:07:58VC++で192kHzサンプリングの音を出力したいと思うのですが、
Waveform Audioとかでは、構造体WAVEFORMATEXを見るに48kHz止まりですよね。
WindowsXP限定とかでも良いので、192kHzを扱う手段をご存知の方、
お教えいただけませんでしょうか。
解説本やサイト名だけでもかまいませんので。
0442デフォルトの名無しさん
2005/06/04(土) 13:13:18実際に試したわけじゃないけど、サウンドカードが対応してるなら、
単純に WAVEFORMATEX の nSamplesPerSec に 192000 を入れたら動いたりしない?
MSDNのヘルプを見た限りでは、この値に特に制限はないみたいだけど。
ちなみに、高精度や多チャンネルを使いたいなら WAVEFORMATEXTENSIBLE が必要だね。
0443デフォルトの名無しさん
2005/06/04(土) 21:24:12一応 pexports で他のプラグインと見比べたりしてみましたが
大体同じように見えます
誰か一人くらい同じ症状の人居ないかと、色々検索してみましたが特に見当たらず・・・
(英語力無いんで、見落としてる可能性大ですけれど)
cygwinでやるから悪いのかと思ってmsysとMinGW入れて試してみましたが、変わらずでした
いい機会なんでDLLとかツールの使い方とか勉強してみようと思います・・・
何をしたらいいのかさっぱり解からないので・・・
0444441
2005/06/05(日) 01:22:09MSDNのヘルプに、こんな記述があるんです。
If wFormatTag is WAVE_FORMAT_PCM,
then common values for nSamplesPerSec are 8.0 kHz,
11.025 kHz, 22.05 kHz, and 44.1 kHz.
If wFormatTag is WAVE_FORMAT_PCM,
then wBitsPerSample should be equal to 8 or 16.
ですんで、192kHz 24bitとかはダメなのかな〜、と。
試してはいないのですが。
WAVEFORMATEXTENSIBLEというのは知りませんでした。
見てみましたが、これも24bitには対応しているものの周波数の記述はないですね。
しかし、WAVEOUTCAPS構造体でサウンドカードの対応フォーマットを取得すると
思いますが、ここでも48kHz 16ビット止まりですよね。
サウンドカードがどこまで対応しているかを確認してから、
対応フォーマットで出力させたいのですが・・・。
0445デフォルトの名無しさん
2005/06/05(日) 05:12:18waveOutやDirectSoundはあまりアテにならんし。
0446441
2005/06/05(日) 11:54:59そうなんですか?>当てにならない
ASIOだと良い理由はどのあたりなんでしょう。
しかし、うちのサウンドカード、SE-90PCIなんでASIO対応してない・・・(汗)
0447デフォルトの名無しさん
2005/06/05(日) 14:00:470448デフォルトの名無しさん
2005/06/05(日) 18:15:26nSamplesPerSecの記述はcommon values(よく使われる値)だから制限じゃないよ
0449441
2005/06/06(月) 00:51:21ん〜、でも対応フォーマットを取得するWAVEOUTCAPS構造体では、dwFormats値に
WAVE_FORMAT_4S16 (44.1 kHz, stereo, 16-bit)
までしか返すことできないですよね。
どっちにせよ、192kHzに対応しているデバイスかどうかが分からないと思います。
(対応しているときに、192kHzで出力する、という形にしたいです)
0450445
2005/06/06(月) 01:40:48ドライバ等の環境にもよるかもしれないけど、
waveOut/DirectSoundを使った場合、自分以外のアプリが
自分と異なる周波数で音を出すと周波数がそっちの方に
引っ張られてしまうということが以前あった。
ところが、ASIOだとそんなことは無かったので、
ASIOを使ってみたらと言ってみた、というわけ。
あとはASIOの方がレイテンシーも小さいしね。
0451デフォルトの名無しさん
2005/06/06(月) 02:10:40じゃあ、誰もが使ってる 48 kHz はどうなんだって話ですよ。
事前に対応を確かめたければ、実際にデバイスを開いてエラーチェックすればいいんじゃない?
waveOutOpen で WAVE_FORMAT_QUERY っていうフラグも用意されてるみたいだし。
ちなみに、実は mmsystem.h には WAVE_FORMAT_48S16 や WAVE_FORMAT_96S16 なんてのも
こっそり定義されてたりするんだけどね。MSDNなんて所詮こんなもんです。
0452デフォルトの名無しさん
2005/06/07(火) 23:17:27WAVE64って何?
MSDNで検索かけても該当無し。
分かっているのは、64ビットデータが扱えて、
ファイルサイズが2G以上のものができることぐらい。
ヘッダの詳しい内容とかが知りたい。
0453デフォルトの名無しさん
2005/06/08(水) 00:19:26Wave64で検索してすぐに出てくるこのページは読んだ?
http://media.vcs.de/download/content/show/04345113457
0454441
2005/06/08(水) 00:57:26なるほどです >周波数が引っ張られる
試す際には気をつけて確認してみますね。
まぁ、最低限、他の音を鳴らさなければOKということでは
あるのですね、ASIO以外でも。
>>451 さん
こっそり定義、っすか。
> 実際にデバイスを開いてエラーチェックすれば
その手でうまくいくかどうか、週末にでも試して見ます。
ちょっと今時間ないもので・・・。
お二人ともフォローどうもありがとうございます。
0455デフォルトの名無しさん
2005/06/08(水) 23:41:41すいません、そのページに"SONY WAVE64"って
書いていたので、別物かと思ってスルーしてました。
教えてくれてありがとう。
0456デフォルトの名無しさん
2005/06/08(水) 23:51:53インスプリスプ
0457デフォルトの名無しさん
2005/06/08(水) 23:53:57インスプリスプはないだろ.
0458デフォルトの名無しさん
2005/06/12(日) 21:26:53ASIOでプログラム組んだ事あるかね。
一般的には対応デバイスが少ないASIOはデメリットも多い。
ASIO4ALLを使えと言うかも知れないが一般ユーザーに
すすめるのもどうかと。(サポートが大変だ。)
>>441
WAVE_FORMAT_QUERY は当てにならない。
WAVEFORMATEXTENSIBLEを使って再生するには
Win98SE以降のOSとWDMのサウンドドライバが必要。
WAVEFORMATEXでも48kHz超えるサンプリング周波数は普通に扱う事ができるが、
非対応のサウンドカードでも再生できるのでカーネルミキサーやドライバで
リサンプリングしている可能性がある。
WAVEFORMATEXTENSIBLEを使えば96KHz以上、24Bit以上の高解像度や
5.1ch のマルチチャンネルも扱える。
0459441
2005/06/12(日) 22:55:28WAVEFORMATEXTENSIBLEでOKなのですね。
Win98SE以降、WDM対応、はうちの環境ではOKです。
リサンプリングされるのは困るので、WAVEFORMATEXTENSIBLEの方を使ってみます。
結局、まだMSDNをチラッと見た程度でプログラミングまで手が回ってません。
週末もなかなか時間とれなくて^^;
また試してみてご報告しにきます。
0460デフォルトの名無しさん
2005/06/13(月) 11:23:390461デフォルトの名無しさん
2005/06/14(火) 02:21:07mmioReadで読み込んだ後、符号ありに変換して、
16ビットに変換するって感じでやってるんだけど。
どっかにいいサンプルないかな。
0462デフォルトの名無しさん
2005/06/15(水) 14:11:400463デフォルトの名無しさん
2005/06/15(水) 21:48:53http://www.vector.co.jp/vpack/browse/person/an027311.html
DARU/AUDIO-RECORDER!
DARU/CHANNEL-MASTER!
↑の2つのソフトが WAVEFORMATEXTENSIBLE のWAVEファイルを
出力できるのでテストに使える。
0464461
2005/06/18(土) 13:27:55short * pTempBuffer = pTempBuffer = new short[bufSize];
long nRead = 0;
bool is8Bits = false;
if(waveFormat.wBitsPerSample == 8)
{
unsigned char * pTempBuffer_8_u = new unsigned char[bufSize];
nRead = mmioRead(hmmio, (HPSTR)pTempBuffer_8_u, bufSize);
unsigned short * pTempBuffer_u = new unsigned short[bufSize];
for(int i = 0; i < nRead; i++)
pTempBuffer_u[i] = ((short)pTempBuffer_8_u[i]) << 8;
for(int i = 0; i < nRead; i++)
((short *)pTempBuffer)[i] = pTempBuffer_u[i] ^ 0x8000;
delete [] pTempBuffer_8_u;
delete [] pTempBuffer_u;
is8Bits = true;
waveFormat.wBitsPerSample = 16;
waveFormat.nBlockAlign = waveFormat.nChannels * waveFormat.wBitsPerSample / 8;
waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign;
}
0465デフォルトの名無しさん
2005/06/18(土) 15:22:11てか無駄多杉。
ビット操作で中途半端に高速化しないで
普通の演算アルゴリズムを考えるべし。
正しい結果が得られるようになってからビット操作に置き換える。
コンパイラによってcharの符号の扱いが違うので注意が必要。
オレはVCで「キャストして引き算してから掛け算」で8→16ビットの変換してる。
0466デフォルトの名無しさん
2005/06/18(土) 17:23:350467デフォルトの名無しさん
2005/06/18(土) 18:04:05>>466
C言語の仕様ではコンパイラ依存だよ。
最新の仕様ではどうなってるかわからないけど。
0468デフォルトの名無しさん
2005/06/18(土) 21:22:12The result of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits
are filled with zeros. If E1 has an unsigned type, the value of the result
is E1×2^E2, reduced modulo one more than the maximum value
representable in the result type. If E1 has a signed type and nonnegative
value, and E1×2^E2 is representable in the result type, then that is
the resulting value; otherwise, the behavior is undefined.
0469デフォルトの名無しさん
2005/06/18(土) 21:29:340470デフォルトの名無しさん
2005/06/18(土) 21:53:17ろ:16bitdata = 8bitdata * 256 - 32768
どっちでも同じじゃないの?
0471461
2005/06/18(土) 22:04:14((short *)pTempBuffer)[i] = (short)(pTempBuffer_8_u[i] - 128) * 256;
としてみたり、
ttp://www.winehq.org/hypermail/wine-patches/2002/12/0179.html
を参考に、
((short *)pTempBuffer)[i] = (short)((pTempBuffer_8_u[i] + (pTempBuffer_8_u[i] << 8)) - 32768);
としてみたけど、ノイズだらけ。
他の部分がおかしいのかな。もうちょっと研究してみます。
0472デフォルトの名無しさん
2005/06/18(土) 22:23:02コンパイラの符号の扱い方で同じじゃない場合もあると思う。
>471
pTempBuffer[i] =(((short)pTempBuffer_8_u[i])-128) * 256;
でどうだい?
0473461
2005/06/18(土) 23:37:20駄目っぽい。とりあえず、いろいろ書き直したコードを載せてみます。
16ビットの読み込み部分と例外処理はカットしてあります。
long nRead = 0;
bool is8Bits = false;
if(waveFormat.wBitsPerSample == 8)
{
unsigned char * pTempBuffer_8_u = new unsigned char[bufSize];
nRead = mmioRead(hmmio, (HPSTR)pTempBuffer_8_u, bufSize);
for(int i = 0; i < nRead; i++)
((short *)pWaveHdr->lpData)[i] =(((short)pTempBuffer_8_u[i]) - 128) * 256;
delete [] pTempBuffer_8_u;
is8Bits = true;
waveFormat.wBitsPerSample = 16;
waveFormat.nBlockAlign = waveFormat.nChannels * waveFormat.wBitsPerSample / 8;
waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign;
}
else if(waveFormat.wBitsPerSample == 16)
; // 16ビット
pWaveHdr->dwBufferLength = nRead;
waveOutPrepareHeader(hWaveOut, pWaveHdr, sizeof(WAVEHDR));
waveOutWrite(hWaveOut, pWaveHdr, sizeof(WAVEHDR));
if(is8Bits)
waveFormat.wBitsPerSample = 8;
0474デフォルトの名無しさん
2005/06/19(日) 04:18:100475デフォルトの名無しさん
2005/06/19(日) 04:40:29数字で。
0476デフォルトの名無しさん
2005/06/19(日) 09:36:050477461
2005/06/19(日) 11:19:42>>474
8ビットでは、きちんと鳴ります。
>>475
なるほど。今夜あたりにやってみますね。
>>476
VCとBCC両方で試してみましたが、同じでした。
0478デフォルトの名無しさん
2005/06/19(日) 12:50:130479デフォルトの名無しさん
2005/06/19(日) 13:39:53まさか8ビットでオープンして16ビットのデータを流してないよね?
unsigned char buf[4]={10,80,120,255};
for(int i=0;i<4;i++){
printf("%d\n",(((short)buf[i])-128)*256);
}
VC6で正しい結果が出る。
0480461
2005/06/19(日) 14:10:08激しくそれっぽい。
あとで確認してみますね。
0481461
2005/06/19(日) 18:16:15is8Bits = (waveFormat.wBitsPerSample == 8);
waveFormat.wBitsPerSample = 16;
としておき、>>473のようにすることで、できました。
ちなみに、>>473は、
pWaveHdr->dwBufferLength = nRead;
ってとこが間違ってました(*2が必要)。
お世話になったみなさん、本当にありがとうございました。
0482デフォルトの名無しさん
2005/07/10(日) 08:21:14す。以下の2つの方法を試してみたのですがどちらでも例外も発生せずにアプリケー
ションが異常終了してしまいます。テストに使っているtemp.mp3ファイルはWindows
MediaPlayer9で正常に再生できることを確認しています。また、再生対象のファイル
に.wavファイルを指定した場合では以下のどちらの方法でも正常に再生できました。
これはプログラムの書き方に間違いがあるでしょうか?それとも当方の環境を疑う
べきでしょうか、アドバイスなどいただけると助かります。
○TMediaPlayerを使う方法
TMediaPlayer* MediaPlayer = new TMediaPlayer(Application->MainForm->Handle);
MediaPlayer->DeviceType = dtAutoSelect;
MediaPlayer->AutoOpen = true;
MediaPlayer->FileName = "c:\\temp.mp3";
MediaPlayer->Open();
MediaPlayer->Play();
○MCIを使う方法
HWND m_Video = MCIWndCreate(Handle, Application->Handle,
WS_CHILD | WS_VISIBLE|MCIWNDF_NOMENU, "c:\\temp.mp3");
MCIWndPlay(m_Video);
0483デフォルトの名無しさん
2005/08/03(水) 18:20:10鍵盤から流れてくるデータの実体はどんなものなんでしょうか?
MIDIデータか何かが流れてくるなら、これはどうやれば拾えるのでしょうか?
やりたいことは、鍵盤からの情報を自作のシンセサイザソフトに投げて
音を出してみたいということなんですが。。。
ちなみに、VC++6.0でアプリ作成しようと思っています。
適当な鍵盤を買ってきて試してみたらいいのでしょうが、買う前にやりたい
ことができるのか確認したかったので、ご存知の方がいたら教えてください!
0484デフォルトの名無しさん
2005/08/04(木) 00:09:22midiじゃないの?
0485デフォルトの名無しさん
2005/08/04(木) 00:53:200486デフォルトの名無しさん
2005/08/04(木) 09:40:43>>483 です。
やっぱりMIDIですよね。
MIDIメッセージの受信方法は書籍を持っているので何とかなりそうです。
スレ汚し、どうも失礼しました。
0487デフォルトの名無しさん
2005/08/17(水) 04:39:10メーカに聞けばいいじゃん
0488デフォルトの名無しさん
2005/08/17(水) 05:55:420489デフォルトの名無しさん
2005/08/24(水) 08:39:57マイクの音ひろって↑のDownloadにあるソース使って
Pitch ShiftingしてwaveOutしてもぐちゃぐちゃな音になるんですが
おらだけですか?
0490デフォルトの名無しさん
2005/08/24(水) 10:43:330491デフォルトの名無しさん
2005/08/24(水) 23:22:03声は聞き取れないんですよ。
main loopってとこを#ifdef使って実行しないようにしたら
ピッチの変わってない声が出るからFFTと窓関数とその逆変換は
ちゃんと動いてるみたいだからmain loopの中がおかしいんだろうけど
解説ページ読んでもお手上げヽ(´ー`)ノ
このページのソースのままでもちゃんと動くもんなんですかね
警告が出た変数のとこをキャストしまくっただけなんですけど・・・
0492デフォルトの名無しさん
2005/08/25(木) 02:07:47エンディアンが逆になっているとか、そんなことはないか?
0493デフォルトの名無しさん
2005/08/26(金) 06:37:54ホントはshortにする所をcharでやっててキャストミスってました><
配列のサイズも間違えてた・・・
逝ってきまーすorz
0494デフォルトの名無しさん
2005/08/29(月) 11:11:150495デフォルトの名無しさん
2005/08/29(月) 12:20:21教えていただけると助かります。
着ボイスをPCで拾って来てファイルがmmf(SMAF File)となっていました。
これをwavファイルに変換したりは出来ますか?
PCの起動音とかにしたいのですが、無理でしょうか?
0496デフォルトの名無しさん
2005/08/29(月) 14:43:44>>495 できます
0497495
2005/08/29(月) 18:38:19良かったらやり方など教えていただきたいです。
PC初心者故、教えて厨っぽくなって申し訳ないです。
0498デフォルトの名無しさん
2005/08/29(月) 21:20:06良くないです。
0499デフォルトの名無しさん
2005/08/29(月) 22:52:03どこかにツールがすでにあると思うから、それを入手するのがいい。
SMAF→SMF→WAVというふうに変換するかな。
でも、それはプログラム板の話題じゃない。
分かんなかったら他のとこ行って聞きな。
0500デフォルトの名無しさん
2005/08/29(月) 22:55:05>PC初心者故
えー、一応言っとくと
「この板はプログラムを作る人のための板です。」
と板TOPにも書かれているんだけど。
0501495&497
2005/08/29(月) 23:50:28ありがとうございました^^;
趣旨わからず質問してしまって申し訳です。
詳しいことは他の板で聞いてみます。
お騒がせして申し訳ありませんでしたm(_ _)m
0502デフォルトの名無しさん
2005/08/30(火) 18:46:34windowsが基本かしら。
0503デフォルトの名無しさん
2005/08/31(水) 00:01:04自分はMacだけど、DSPの話とかが面白いときがあるから見に来てる。
0504デフォルトの名無しさん
2005/08/31(水) 00:12:54それがあたかもマイク入力されているかのようにするにはどうしたらいいの?
ググってみたけどそれらしい事を解説してるページに辿り着けない。
もしかして、サウンドプログラマにとっては基本的すぎて解説してないとか?
検索キーワードキボンヌ
0505デフォルトの名無しさん
2005/08/31(水) 00:25:18一回アナログ線を通したような音質劣化をさせたいのかな?
それともソフトウェアAで再生したものをソフトウェアBで録音したい、みたいなことなのかな?
0506494
2005/08/31(水) 00:33:49ボタン1つで再生するソフトを作りたいんですよ。
0507494
2005/08/31(水) 00:38:11市販のゲームなんですが、そんな事可能?
0508デフォルトの名無しさん
2005/08/31(水) 00:39:53電話のような音質にしたいのなら4000Hzから上をカット
0509デフォルトの名無しさん
2005/08/31(水) 00:41:280510デフォルトの名無しさん
2005/08/31(水) 01:15:44Windows MultimediaのAudio Mixerあたりが関係してそう。
http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_audio_mixers.asp
あるいは、そこまでしなくても、
単にWindowsアクセサリのボリュームコントロールの録音ミキサーをいじるだけでも、
再生しているWAVEをそのまま録音入力にリダイレクトさせることができるかも。
ゲーム側でミキサーを完全に制御されてたら、どうにもならないかもしれないけど。
0511デフォルトの名無しさん
2005/08/31(水) 07:57:390512デフォルトの名無しさん
2005/08/31(水) 11:15:00PC2台用意汁
0513デフォルトの名無しさん
2005/08/31(水) 17:38:22これの実装ってどれぐらいの数学の知識と労力がいるの?この中で自前でソース書いた人いる?
0514デフォルトの名無しさん
2005/08/31(水) 18:20:32つ【フーリエの冒険】
0515デフォルトの名無しさん
2005/08/31(水) 18:48:48FFTは理系の大学1年程度の知識で理解可能。理解せずに実装だけだったら中学生レベルの知識でOK。
FFTのソースは10行もあればかける単純なもの。
0516デフォルトの名無しさん
2005/08/31(水) 19:24:03FFT自体は、離散フーリエ変換(DFT)を高速に計算するブラックボックスとして使えば十分で、
その結果を活用するためにはDFTの意味をしっかりと理解しておく必要がある。
理工学系では、大学2〜3年次に信号処理論として体系的に学ぶ場合が多いと思う。
0517デフォルトの名無しさん
2005/08/31(水) 22:11:29FFT使わずにBPFでなんとかする手もある。
精度とか要求されない用途なのでいくらでも手抜き可。
0518デフォルトの名無しさん
2005/09/01(木) 02:40:05>>517 の言うようにバンドパス・フィルタで実装するほうが
レイテンシーもメモリ要求も少なくていいかも。
WindowsMediaPlayerとかWinAmpとかは、
FFT結果を他の処理にも使ってるので
そのついでで情報をもってこれるからFFTを使ってるだろうけど。
0519デフォルトの名無しさん
2005/09/01(木) 06:10:11俺が良く使うのは
バンドパスといってもQ無限大の発振器領域のフィルタに窓関数かける奴だな
他に2相の発振器を掛け算して求めるというのも使う
0520513
2005/09/01(木) 14:41:10抵抗とコンデンサで作るのは知ってるけどデジタル処理でやるのはよくわからん…
ちょうどいいサイトとかあったら教えてほしい
0521デフォルトの名無しさん
2005/09/01(木) 15:32:320522デフォルトの名無しさん
2005/09/01(木) 15:38:53実践ディジタルフィルタ設計入門という本で高校生でも解かるレベルで説明してあるよ。
0523デフォルトの名無しさん
2005/09/01(木) 16:07:11520じゃないけどありがとう。
0524デフォルトの名無しさん
2005/09/01(木) 16:33:25520じゃないけどありがとう。注文します田。
0525デフォルトの名無しさん
2005/09/01(木) 20:00:44BPFはLPFとHPFの組み合わせ。
HPFは元データからLPFの結果を減算すればいい。
あとはLPFさえ何とかすればOK
0526デフォルトの名無しさん
2005/09/01(木) 20:02:14すでにIIR/FIRフィルタの使い方を知っていて、
ただフィルタの係数を計算したいだけだったら
この文書がラク。
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
0527デフォルトの名無しさん
2005/09/01(木) 20:19:200528デフォルトの名無しさん
2005/09/01(木) 21:41:52考え方としては、信号の反応を悪くすればいいわけだから、
前回の値をそのまま今回の値にしないで、前回と今回の差分を2で割ってそれを前回の値に足す、と言うような方法でもきる。
HPFも似たようう簡単計算でできる。
0529デフォルトの名無しさん
2005/09/02(金) 00:46:03そのLPFって、要するに、一番単純なフィードバック1回のIIRフィルタだよね。
具体的にインパルス応答から周波数特性を求めたりしてみると面白いと思うよ。
0530513
2005/09/03(土) 22:39:50>>521のサイトは役に立ちそうなんだが英語をすらすら読むのは無理なんできつい…
the Simplest Low-Pass Filterにあるコードとかを参考にしてみるよ。
>>528
前回の値をそのまま今回の値にしないってどういう意味なのかわからないんだけど…
0531デフォルトの名無しさん
2005/09/04(日) 10:21:49> 前回の値をそのまま今回の値にしないってどういう意味なのかわからないんだけど…
うむ、ちょっと不思議な日本語だな。
ようは、こんなことをやるというわけ。
音声データが x[i] に入っているとして、
w = 0.5; フィルタ係数
y[0] = x[0]; // 一応初期値 y[0]=0 でも大差ないけど。
for (i =1; i < おしまい ; i++) {
y[i] = (1.0 - w)*y[i-1] + w * x[i];
}
w = 1.0 なら、これはフィルタでもなんでもなく、音声信号 x[i] は、
そのまま y[i] に出力される。 w をゼロに近づけていくと、x[i]が変化しても
y[i] は計算済みの値 y[i-1] や、y[i-1]を通じて間接的にもっと過去の値
に引きずられて、動きが鈍くなる。つまり、ローパスフィルタというわけ。
0532531
2005/09/04(日) 10:36:45y[i] は、 x[i] と 過去の出力y[i-1]との差分みたいなものになる。つまり、
変動分を強調するハイパスフィルタ。
当たり前だけど、w=0だと、出力は y[0] のまま永久に変化しないので
無意味。
そして、w の値をマイナスにした場合と、2.0以上にした場合には、
計算を続けているうちにオーバーフローして滅茶苦茶になる。
0533デフォルトの名無しさん
2005/09/04(日) 16:44:070534デフォルトの名無しさん
2005/09/07(水) 16:00:03っていう場合、「積分」は具体的にコード上どうすればいいんでしょう?
0535デフォルトの名無しさん
2005/09/07(水) 17:07:20っていう場合、「積分」は具体的にコード上どうすればいいんでしょう?
まず帯域制限したパルス波をどう表現するかだろうね
Z変換出来れば単なる累積で代用出来る。
そうじゃないなら積分した式を直接積分しないといけないだろう。
0536デフォルトの名無しさん
2005/09/07(水) 17:17:44その「積分」ってどういうことなのか?ってことなんです。
void 積分( double* wave, unsigned int bufferlength )
{
// なにしたら??
}
0537デフォルトの名無しさん
2005/09/07(水) 17:23:49>>531 の 書き方なら
y[i] = y[i-1] + w * x[i];
0538デフォルトの名無しさん
2005/09/07(水) 17:26:22文脈がわからないのによく答えられるねぇ。
俺はエスパーじゃないから無理だ。
0539デフォルトの名無しさん
2005/09/07(水) 17:52:10たぶん前スレ114レス目の話を実装するにはどうしたら良いかって事なんだろう
矩形波をどう作るかという話ね。
0540デフォルトの名無しさん
2005/09/07(水) 17:56:24当然、帯域は実サンプリングの1/2では完全にカットされている必要がある。
で、オーバーサンプリングされた状態で累和しないで、実サンプリング上で累和(間引いて累和)
していいかどうかの問題かな?
0541デフォルトの名無しさん
2005/09/07(水) 18:04:36なるほど、そんな文脈があったのね。
確かに単なる累積で良さそうだ。
0542デフォルトの名無しさん
2005/09/07(水) 18:12:53積分した結果できる波形の値域を-1.0〜1.0にするナイスな方法ってあるんでしょうか?
0543デフォルトの名無しさん
2005/09/07(水) 18:29:03もともと矩形波は出力したい周波数がサンプリング周波数に近づく程信号レベルが小さくなる。
全スレ798にあるように、fs/4を超えると、単なるサイン波で信号レベル差だけの表現となる。
だから、小さくなっていいんだよ。
0544デフォルトの名無しさん
2005/09/07(水) 18:31:01値の最大値で割って浮動小数点にキャスト
0545デフォルトの名無しさん
2005/09/08(木) 09:41:33進行に合わせて音符の色を変えていくようなものを
作りたいのですが、音符の表示は普通どのように
行うのでしょうか?
メタファイルを用意しておいて...みたいな感じですか?
参考になるサイトとかあったら教えて下さい。
0546デフォルトの名無しさん
2005/09/08(木) 13:57:13MIDIの音符はnote on , note offで表現されているので、音符の長さはわかっても音符の種類がわかりませんから。
とくに休符がやっかい。
0547デフォルトの名無しさん
2005/09/09(金) 09:26:35MIDIファイルとは別にということですよね?
MIDIの中に楽譜データも入っていると思ってました。
あと、音符の画像はどうやって描画するのが通常でしょうか?
0548デフォルトの名無しさん
2005/09/09(金) 10:06:20フォント作ってテキスト表示。
0549デフォルトの名無しさん
2005/09/09(金) 12:13:27Musical symbols in a dingbat font.
http://simplythebest.net/fonts/fonts/musical_symbols.html
解凍して %Windows%\Font にコピー
使うサイズ毎にメモリ上のビットマップに展開しておいて
0550545
2005/09/09(金) 17:29:051.楽譜データはMIDIとは別にファイルとして用意する。
(歌詞を出す場合も同じ?)
2.楽譜データを読み、メモリ上にビットマップとして展開しておいた
音符フォントを描画する。
3.MIDIの再生に合わせてカラオケ風に音符(+歌詞)の色を変える。
0551デフォルトの名無しさん
2005/09/09(金) 17:58:221. SMFを解析して、おおざっぱにクォンタイズを掛ける(見やすい楽譜を作るため)
2. SMFを解析して、ノートオンとノートオフを対応付ける(ここで楽譜データの原型が出来る)
3. 楽譜の原型を解析して、1音も鳴っていない箇所を休符とする(おおざっぱな楽譜の完成)
俺ならこんな感じかなぁ。
もちろん、WRDみたく別に楽譜データを用意してもいいと思うけど。
0552デフォルトの名無しさん
2005/09/09(金) 18:19:140553デフォルトの名無しさん
2005/09/09(金) 18:21:120554デフォルトの名無しさん
2005/09/10(土) 00:45:420555名無しさん@そうだ選挙に行こう
2005/09/11(日) 07:27:191.CDをかけるとカラオケで再生してくれるプレイヤーってあるよね。
逆に歌手だけ抜き出すってのも簡単?
2.アナログ時代の電話線のエコーキャンセラーってあったよね?あれと同じで
ビデオカメラにメカノイズが載るのはカメラ上に別のマイクつけて適応処理したら簡単に消せるよね?
3.最近3Dサウンドってあるよね。 2スピーカーなのにヘリコプターが立体的に飛び回って聞こえるよ。
だから、狭い間隔でおいた2スピーカーを広げて置いたように聞かせるのも簡単だよね
4.ホール効果とか残響のある部屋を再現する機能がついてるじゃん。 アレの逆でさ
残響の多い部屋から残響を消すのは、マイク付ければ簡単だろ?
マイクで部屋の特性取りながら逆位相の信号を足せばいいだけだろ?
0556名無しさん@そうだ選挙に行こう
2005/09/11(日) 07:36:370557名無しさん@そうだ選挙に行こう
2005/09/11(日) 08:44:180558名無しさん@そうだ選挙に行こう
2005/09/11(日) 10:05:49左右同相信号だけを取り出す事は理論的には出来ない。
3つのA,B,Cの信号が、Lのみ、Rのみ、L+Rに同相に入った場合を考えればいい。
C=0になる信号(A-B)を作る事は出来るが
C!=0 A=0 B=0 の信号を作る事は出来ない
2)ライン中の応答は適応処理で消去可能だが、空間上特定出来ない信号源が複数あると消去不可能
ビデオカメラメカノイズはメカなのだから、たぶん複数箇所から出力されてくるだろう。
だから多数のマイクを配置すれば効果はあるだろう。 1個のマイクでは難しいだろう。
3)モノラル信号を頭部伝達関数を利用して任意位置からに変換する事は可能。
2つのスピーカーより、さらに右、さらに左から聞こえるようにする事も可能。
だが、右の音はもっと右に、左の音をもっと左にというのを同時というのは少し計算してみれば困難演算と判る
右定位気味の信号をさらに右に、左定位気味の信号をさらに左にと、ごまかせ
4)
1、ゼロで割る事は出来ない。
「残響の多い部屋」にゼロ点(周波数特性を取るとノッチが出来る点)があると、答えが無い事になる。
2、人間の耳は困った事に2つある。
0559デフォルトの名無しさん
2005/09/12(月) 17:46:30>3
ステレオ感はスピーカーの間隔じゃなくてリスニングポイントとの角度じゃね?
音小さくしとけばスピーカーに近づかざるおえないから、角度も自然と得られる。
あとはBOSEあたりが中央に一つだけスピーカー置いて(実際には幾つかスピーカーが付いてる)
壁の反響を利用してステレオ感を得られる、とした20万くらいの製品が存在したけど、
1万そこそこのスピーカーの方がよっぽどマトモな音だった。
0560デフォルトの名無しさん
2005/09/14(水) 18:24:240561デフォルトの名無しさん
2005/09/14(水) 19:42:48ボーカルキャンセルで出来上がるのは、センター成分なしのモノラル信号。
0562デフォルトの名無しさん
2005/09/15(木) 23:15:08残念ながら、それではダメ。
X=L-R で、センターで歌っている人の声をキャンセルすることはできるが、
それを使ってセンターだけを残そうとしても・・・
例えば、L-X = R となって、全然消せない。
0563デフォルトの名無しさん
2005/09/15(木) 23:22:03それって、センターで鳴ってる楽器の音も消えないか?
0564デフォルトの名無しさん
2005/09/16(金) 00:18:08ボーカルキャンセルてそんなもだよ。
0565デフォルトの名無しさん
2005/09/16(金) 02:09:03ベースやバスドラム(重低音)やスネアドラム(高周波ノイズ系)のような重要な楽器もも中央に来ることが多いから。
0566デフォルトの名無しさん
2005/09/16(金) 07:10:42でも人間の声も低音から高周波まで広がってるからね
0567デフォルトの名無しさん
2005/09/16(金) 09:15:35自分の専門の範囲で分かることは・・・
1) そういうソフトがある。Windowsで動いているのを見た。
ただ、元曲とカラオケ版が必要。
それじゃあ簡単にできそうだと思って
自分でやろうとすると歌有りと歌無しが
サンプル単位でズレていたりして意外に難しいんだよ。
2) 適応処理すればできそうだけど、コストを抑えるのが大変そう。
原理としてはノイズ・キャンセル・ヘッドホンと同じ。
別の手法として独立成分分析を使う方法もある。
それだったらマイク数が多ければ多いほどノイズは消しやすいよ。
3) 可能だけれど、スイート・スポットがかなり狭くなるのは覚悟した方がいいかも。
クロストーク・キャンセレーションをした上でバイノーラル信号を再生すればよし。
ただ、耳の形状や頭の大きさによってだいぶ効果が異なるので、実用的じゃないかもね。
4) 四つの中では最も難しいかも。ブラインド・デコンボリューションはある程度
研究されているので、それっぽい音にするのは可能だけれど、
完全に残響音を消すのは今のところ無理。
0568567
2005/09/16(金) 09:18:15センターの音だけフェードアウトしていく。
ttp://www.mgsoft.org/jikanbae/blog/archives/2005/09/post_132.html
ただ、左右の楽器の定位がオリジナルと違うような気がする。
0569デフォルトの名無しさん
2005/09/16(金) 13:31:45歌声りっぷ
http://www.vector.co.jp/soft/win95/art/se127635.html
0570デフォルトの名無しさん
2005/09/16(金) 13:40:03Aを歌入り Bをカラオケとして
C=A*B 畳み込みの最大ピーク付近を採用して残りはゼロにしてしまう。
D=1/C その中央付近の逆演算(順逆でだいたいOKだろ)
A-B*D でAとBの相関のある成分は消えるだろう。
これを適応処理でやるか、FFT使ってやれば実時間で処理できるだろう
0571567
2005/09/16(金) 21:19:44AとBは44.1kHzよりも高いサンプリング周波数で
作られたものからダウンサンプルして作られていることが多いし、
場合によってはアナログにいったん落としていることもあるので、
AとBはサンプル単位でマッチしない。
つまり、44.1kHzのまま処理をすると音が残っちゃう。
そういうノイズも消そうとすると
サンプルの補間処理なんかが必要になってくる。
0572570
2005/09/16(金) 22:26:18Dにはそういう特性の応答特性が出るわけだからさ
畳み込みをする事がすなわち補間処理でもあるわけだ。
ただ、「最大ピーク付近を採用して残りはゼロに」の処理がマズイけど、これが無くてもマズイ
A/B共に、最初に高域を削っておかないとな
0573567
2005/09/17(土) 02:00:55それだったら確かにサンプルのズレは考えに入ってるよね。
時間軸でやるんだったら・・・勉強不足でよく分からないっす。
0574570
2005/09/17(土) 07:28:32周波数(FFT)で求めようが、時間軸(適応や逆行列)で求めようが同じ。
上に書いた事の補足
全サンプルで求めたDで A-B*D を求めたら、結果はゼロになってしまう。
だから、最大ピーク付近だけを採用しなければいけない。
でも、そうすると、ローカットの特性が出てしまい、 A-B*Dで高域が残ってしまうから
その高域をカットしておこうという事
0575デフォルトの名無しさん
2005/09/18(日) 15:47:43> Aを歌入り Bをカラオケとして
この両方を入手できるのか? と、いう点ではないのか?
そういうものを入手できる立場の人なら、
C 歌のみ
を、最初から入手できそうな気がしないでもないんだけど・・・
0576デフォルトの名無しさん
2005/09/18(日) 16:37:36>>569 のリンク先にもある通り、
>シングルCDに収録されているオリジナルトラックとカラオケトラックの差分を取り
って事じゃ…?
0577デフォルトの名無しさん
2005/09/18(日) 23:09:36> 1.CDをかけるとカラオケで再生してくれるプレイヤーってあるよね。
> 逆に歌手だけ抜き出すってのも簡単?
なのだから、職務課題として与えられているのは、ただの1枚のCDだけで、
それから歌手の声だけ抽出しろという、ご無体な指令ではないかと・・・
それはさておき、会議システムとかで、「大量のマイクロフォンで会議室の
あちこちの音声を同時にサンプリングしておいてから、いろいろ相関を
取って特定の位置の人物の声だけを抽出(周辺の他人の声はキャンセル」
と、いうような研究は、かなり進んでいるらしいね。数学の理屈は単純だけど、
システム同定とか逆フィルタの安定性とか計算量とかを考えると、すごい
仕事をやっているなと感心してしまう。
0578デフォルトの名無しさん
2005/09/19(月) 14:19:51いきなり、質問なんですが
C++でwaveファイルの出力って、どうすればいいのでしょうか?
0579デフォルトの名無しさん
2005/09/19(月) 18:18:44WAVEファイルと書いているから、環境がWindowsだという前提で話を
する。結論としてはどうやってもいい。RIFFとWAVEの構造を勉強して
バイナリファイルとして書き出してもいいし、mmio〜系のAPIを使っても
いい。既存のライブラリを使ってもいい。例えば、
ttp://www.vector.co.jp/vpack/browse/person/an028616.html とか。
0580デフォルトの名無しさん
2005/09/19(月) 20:05:39ありがとうございました。
0581デフォルトの名無しさん
2005/09/20(火) 22:11:300582デフォルトの名無しさん
2005/09/21(水) 01:42:13問題は、ボーカル抽出(?)のほうね。
0583デフォルトの名無しさん
2005/09/21(水) 06:45:36たとえば?
0584デフォルトの名無しさん
2005/09/21(水) 20:26:00と単純に考えてみた。
0585デフォルトの名無しさん
2005/09/21(水) 22:13:55スペクトログラムに手書きで消しゴム入れてきゃいつかは消せるかもしれんね。
0586デフォルトの名無しさん
2005/09/21(水) 23:42:48を作ったら、研究室の先輩が「ノーパスフィルタだな」と冷やかしてくれた。
Orz
0587デフォルトの名無しさん
2005/09/22(木) 08:24:54ボーカルをL-R以外で消すには、
1、ボーカルだけを取り出して 減算する
2、ボーカル以外の音を取り出す
つまり、PC内に発音モデルを作って、そのモデルのパラメータ推定をして
合成させてしまう・・・・という方法という事になる。
1は、実はボーカルを完全合成しても出来ない。
声には摩擦音がある。摩擦音はノイズなので、ノイズを合成出来ても
元の音から減算しても消去出来ない
2は、FM音源のような音なら、シンセサイザーのパラメータを完全に取れれば可能
かもしれないね。
直交変換で簡単に分析できるわけじゃないから、厄介だろうけどね
0588デフォルトの名無しさん
2005/09/22(木) 10:04:26おまえ、ほんとにバカだな。
0589デフォルトの名無しさん
2005/09/22(木) 20:27:09ん? 587は、「L-R以外の方法でボーカルキャンセルをするなんて無茶だ」と、
説明しているのだぞ。
0590デフォルトの名無しさん
2005/09/22(木) 21:00:41時間に対して動的にフィルタ係数が変化するフィルタなら対応出来るかもしれない
と思った
0591デフォルトの名無しさん
2005/09/22(木) 21:18:26入力L/R、出力L'/R'としよう。
L = L1 + M1
R = R1 + M1 と考えるとするよね。
S = L-R = (L1+M1) - (R1+M1) = L1 - R1 と置けば、
L' = L+S = (L1+M1) + (L1-R1) = 2*L1 + M1 - R1
R' = R-S = (R1+M1) - (L1-R1) = 2*R1 + M1 - L1
となって、「左の音はもっと左、右の音はもっと右」ということが実現できるんじゃないだろうか。
自分の知るかぎりでは、いくつかの特許で使われている手法だし、
あるていどは有効なんだろうな。
0592デフォルトの名無しさん
2005/09/22(木) 21:19:160593デフォルトの名無しさん
2005/09/23(金) 12:57:24可能。逆相の音をパンディレイで飛ばすとかいう技を使う人もいる。
0594デフォルトの名無しさん
2005/09/23(金) 21:15:511msくらいのディレイ差を左右に与えれば
音が左右に飛ばせるわけですね。
ただ、スイート・スポットに頭がないと有効じゃないですが。
0595デフォルトの名無しさん
2005/09/23(金) 22:57:59データの合成はオーバーフローチェックしつつの加算、8bit>16bitは<<8、
周波数変換は 約数の場合、とりあえずそのまま倍数分コピー、
約数で無い場合・補完したい場合は線形補完 で宜しいのでしょうか。
これ迄自分で生データ弄った事が一切無かったので、一からの
模索状態です。
0596デフォルトの名無しさん
2005/09/23(金) 23:04:0444.1KHz[samplecount]=48KHz[samplecount*48000/44100];
等でサンプルを飛ばしても、それなりに聞こえるのでしょうか。
0597デフォルトの名無しさん
2005/09/23(金) 23:19:01・性能(リアルタイムか?オフラインレンダリングか?)
にもよるが、鳴ればいいっていうんなら595,596のそれでいい
8bitPCMはunsigned(0〜255)で16bitPCMはsigned(-32767〜32768)
なことも多いから気をつけろ
0598デフォルトの名無しさん
2005/09/23(金) 23:31:23unsigned の場合、128が0扱いになるのでしょうか?
0599デフォルトの名無しさん
2005/09/24(土) 00:17:37とりあえず実装してみる事にします。
0600デフォルトの名無しさん
2005/09/24(土) 03:49:06そう。8bitPCMのwavがソレに該当するから
ツールで吐いてバイナリエディタで見るとわかる。
>596
線形補完は多分想像してるよりも圧倒的にノイジーになるよ。
波形って合成音でもない限り基本的に曲線になるので、
線形で補完するとノコギリ波状になるから。
0601デフォルトの名無しさん
2005/09/24(土) 04:31:06細かい突っ込みだけど、16bit符号付き整数は-32768〜32767だよね。
0602デフォルトの名無しさん
2005/09/24(土) 06:48:53>596 の方法だと線形補完すら行わない。
同じような音が鳴っていればいいというんだったら >596 で構わない。
ノイズを減らしたければ3次補間したいところだ。
0603デフォルトの名無しさん
2005/09/24(土) 12:15:55オーノー・・・レス番を595と間違えた。
スプラインで補完するのが一般的だと思うけど、
FFTとかで周波数成分から波形を起し直すって可能?
この場合、周波数成分用の補完方法が必要にはなるんだろうけど。
0604デフォルトの名無しさん
2005/09/24(土) 12:18:200605デフォルトの名無しさん
2005/09/24(土) 14:13:530606デフォルトの名無しさん
2005/09/30(金) 22:11:430607デフォルトの名無しさん
2005/09/30(金) 22:38:10ピークで計算することが多いのは、
歪み防止などの目的で振幅自体を監視したいことがほとんどだから
0608デフォルトの名無しさん
2005/09/30(金) 22:55:05午後はコードを書く
50分仕事したら10分休む
17時には仕事を止める
夕食はあまり量をとらない
酒はほどほどに
タバコは吸わない
セックスは金土に集中する
0609デフォルトの名無しさん
2005/09/30(金) 23:45:32コードを書く
昼休: 12〜14
昼食
昼寝しながらロジックを組む
午後: 14〜18
コードを書く
夜休: 0〜6
夕食
寝ながら翌日のロジックを組む
その他:
作業は45分休憩15分
酒は晩酌に少々
タバコは1日2箱
セックスは寝る前の挨拶
土日は体を動かす
0610デフォルトの名無しさん
2005/10/01(土) 04:09:09もちろん『絶対値の最大値」「絶対値の平均」や「二乗平均」、いずれもでも
間違いということはない。
要は、使い道。
>>607が言うように、ピークでクリップしないようにしつつ、できるだけ
ダイナミックレンジ一杯にデータの数値を入れたいときは、
「絶対値の最大値」、あるいは、符号付の値の最大・最小値の範囲を
基準にするのが、計算上都合がいい。
もし電力やエネルギーについて調べたいなら、二乗平均を使うのがいい。
もし、アンプの電力効率について考えたいなら、絶対値の平均がいい。
と、いうわけ。
0611デフォルトの名無しさん
2005/10/03(月) 00:27:43ソフト音源を自作しようと思っています。
これを音源ドライバとしてMIDIマッパーから選択できるようにするには
レジストリ登録だけではだめなのでしょうか?
環境はWinXP, VC++2003 & XPDDKです
0612デフォルトの名無しさん
2005/10/06(木) 05:44:31MIDIYorkとTIMIDITY++のソースでも参考にしたら。
0613デフォルトの名無しさん
2005/10/15(土) 23:45:05最後の3秒をフェードアウトにするっていうコンソールアプリを作りたいんだけど、
簡単に出来るかな?
0614デフォルトの名無しさん
2005/10/15(土) 23:58:432、ファイルの入出力コードを書く
3、あとは他に難しい事はないだろう
0615デフォルトの名無しさん
2005/10/16(日) 00:10:44簡単にできると思うよ。
0616デフォルトの名無しさん
2005/10/16(日) 04:22:500617デフォルトの名無しさん
2005/10/16(日) 06:11:430618デフォルトの名無しさん
2005/10/16(日) 10:08:38自分のPCの中だけで使う予定だから変なファイルが入ることは想定してない。
数値操作だけでやるつもりなんだけどwaveファイルでもリニアPCMだけならコーデックとか関係ないよね?
0619デフォルトの名無しさん
2005/10/16(日) 16:42:56リニアPCMなんだから当然コーデックは関係ない。ヘッダの仕様を調べたらあとは楽勝。
0620デフォルトの名無しさん
2005/10/16(日) 18:05:440621デフォルトの名無しさん
2005/10/17(月) 14:12:25位置まで来たらフラグ立てて窓関数みたい適当な係数かけて減衰させれ
AカーブとかBカーブとか自分の理想の減衰いくつか試せば楽勝
0622デフォルトの名無しさん
2005/10/17(月) 21:44:120623デフォルトの名無しさん
2005/10/18(火) 09:55:58>>621そのままじゃないの?
カーブはテーブルでもかまわんし。
0624デフォルトの名無しさん
2005/10/18(火) 13:15:55窓関数?ここら辺がよくわからんです
0625デフォルトの名無しさん
2005/10/18(火) 13:51:49三秒前の位置から適当な係数かけて減衰させれ
0626デフォルトの名無しさん
2005/10/18(火) 13:52:24http://www.orixrentec.co.jp/tmsite/know/know_mado.html
0627デフォルトの名無しさん
2005/10/18(火) 14:08:04その窓関数は分かるんだけど、ここで何故窓関数なのかわからんです。
後ろ三秒をフェードアウトする波形を切り出すのに、三秒の窓(?)を想定して
掛け算しろっていう意味ですか? こういうのも窓関数って言うんでしょうか?
0628デフォルトの名無しさん
2005/10/18(火) 14:32:140629デフォルトの名無しさん
2005/10/18(火) 14:46:390630デフォルトの名無しさん
2005/10/18(火) 15:06:00切り出し範囲と実際の波形の周期とのずれによって生じる誤差を抑えるためのモノかと
思っていました。
結局、最後の3秒についてフェードアウトさせるために使うカーブの関数も「窓関数」の
ひとつということでしょうか? また、仮に全体の音量を下げるためにすべての定義域
について0.8倍するする関数を考えたときも、窓関数と呼べるんでしょうか?
0631デフォルトの名無しさん
2005/10/18(火) 15:16:410632デフォルトの名無しさん
2005/10/18(火) 16:01:480633デフォルトの名無しさん
2005/10/18(火) 17:54:55まあまあ。
確かに通常、窓関数と呼ばれている技法が使われるのは短時間フーリエ
分析だったりするけど、「窓関数」という言葉それ自身には、
「時間の非常に長いものを除く」というような条件はないから、極端な話、
1時間の楽曲データの頭と尻尾の数秒をフェードインフェードアウトする
ような音量制御も、「台形の窓関数をかける」と、言えなくもない。
もちろん、普通はそんな言葉づかいしないし、すれば「はぁ?」ってな顔で
見られるだろうけど。
さすがに、音量を変えるために全データを 0.8倍するなんて操作は、
窓関数とは言わないだろうね。窓関数を掛けるってのは、波形の切り出し
だと思う。
今回、>>621さんは、窓関数「みたいな」としか言ってない。あくまでも
比喩だから、深く考えすぎないこと。
0634デフォルトの名無しさん
2005/10/18(火) 20:29:521. まともそうな文体で、適当にネタを振ります。質問などでも良いでしょう。
2. 誰かが返事をしてきたら、相手の言葉尻を捕らえて再度慇懃に質問をします。
3. 飽きるまで2を繰り返します。
0635デフォルトの名無しさん
2005/10/25(火) 00:53:000636デフォルトの名無しさん
2005/10/25(火) 02:26:26お前が見たニュースは知らん。
0637デフォルトの名無しさん
2005/10/25(火) 02:31:160638デフォルトの名無しさん
2005/10/25(火) 03:35:24ttp://www3.nhk.or.jp/news/2005/10/25/d20051024000151.html
0639デフォルトの名無しさん
2005/10/25(火) 05:55:47さまざまな音の中から、人間と同じように聞きたい音だけを聞き分けるには、
従来の装置では、音声信号を解析し分離するために膨大な量の計算が必要で、
いまだに実用化には結びついていません。
しかしこの装置では、これまでより計算量がはるかに少なくてすむ、
新しいプログラムの開発に成功したうえ、音の信号を高速で処理する半導体を使うことで、
瞬時に聞き分けが可能になりました。
また、市販の半導体などを使っているため比較的価格が安く、
ポケットにも入る10センチ以下のサイズまで小型化され、小さな電池でも、長時間動かすことができるようになりました。
この装置は、雑音が多い中でも、人の声だけをより鮮明に聞き取れる携帯電話向けや、
会話する能力を持つ介護用など、次世代ロボットへの応用などが期待されるという事です。
開発した神戸製鋼では、こうした技術は世界でも初めてとしており、
森田孝司主任研究員は
「すでにメーカーからの引き合いも来ており、用途に合わせて、さらに小型化することも可能だ」
と話し、来年度の実用化を目指すとしています
0640デフォルトの名無しさん
2005/10/25(火) 06:02:39http://www.yomiuri.co.jp/atmoney/news/20051024ib22.htm
0641デフォルトの名無しさん
2005/10/25(火) 09:36:26記事中で言うところの『独自の音源分離アルゴリズム』を
訊いてるわけか。
判 る わ け な い だ ろ っ !
0642デフォルトの名無しさん
2005/10/25(火) 14:20:23複数のマイクで拾った音を音源ごとに分離し、
音源からの距離などをもとに聞きたい音だけを取り出す。
原理は左右の音のずれから音源の位置を予測してフィルターかけるだけか
0643デフォルトの名無しさん
2005/10/25(火) 15:18:47だからこそ、小型化と低コストの両立が出来るわけだし。
0644デフォルトの名無しさん
2005/10/25(火) 15:20:49まぁやってることは>>642の様に割と単純だったりするんだろう。
だからこそ、小型化と低コストの両立が出来るわけだし。
0645デフォルトの名無しさん
2005/10/25(火) 18:52:100646デフォルトの名無しさん
2005/10/25(火) 22:05:43ATR のレベルがどれほどのもんかは別として、普通に小難しくないか?
単音じゃなくて環境雑音から分離するんだぞ・・
0647デフォルトの名無しさん
2005/10/25(火) 23:08:10左右の位相を考慮すれば方向ごとの分離もなんとかできないかな。
0648デフォルトの名無しさん
2005/10/25(火) 23:22:470649デフォルトの名無しさん
2005/10/25(火) 23:50:57やっぱり「似てる山だけ削る」のとこかね。
0650デフォルトの名無しさん
2005/10/26(水) 00:01:01論文が無ければ、勝手な想像をしよう。
0651デフォルトの名無しさん
2005/10/26(水) 00:34:49別々の位置で音源AとBがなってるとする。
Rの位相をずらしたR'をつくって、L-R' する。
R'の位相ズレがある位置に来たとき、L-R'から片方の音源Aの音量が極端に減り、
音源Bにエコーがかかったようになる。さらに、L-R'に対してエコーの抑制処理をかければ
音源分離に近いことができそうなできないような。
以上勝手な想像ですた。
あーすっきりした
0652デフォルトの名無しさん
2005/10/26(水) 00:47:37音速が340m/sとして左右のマイクの距離は7.72mm程度になるから
これ以上の距離でマイクの距離を一定にして三角関数使って音源の方向はー
もうムリめんどくさいです(><)
0653デフォルトの名無しさん
2005/10/26(水) 10:13:53・ FFTで周波数軸上で加工すると ブロック間の接続が出来ない
接続するようにサイン成分だけにすると、やっぱり違和感がある
1/2サンプルずらして分配して接続するとその周期の音が出る
0654デフォルトの名無しさん
2005/10/26(水) 14:11:050655デフォルトの名無しさん
2005/10/27(木) 01:37:04蓮根プロジェクトの今を語ってくれ。
0656デフォルトの名無しさん
2005/10/27(木) 06:16:170657デフォルトの名無しさん
2005/10/27(木) 10:39:39サンレコにカモられたの?
0658デフォルトの名無しさん
2005/10/27(木) 15:16:57ロックでもない石を売りつけた
0659大原ゆき
2005/10/31(月) 03:07:300660デフォルトの名無しさん
2005/11/06(日) 11:34:450661デフォルトの名無しさん
2005/11/06(日) 11:49:150662デフォルトの名無しさん
2005/11/07(月) 16:19:360663660
2005/11/08(火) 22:08:53ここにあるプレイヤのボーカルキャンセルをまねしたいのですが
L-Rではできそうにありません。
0664デフォルトの名無しさん
2005/11/09(水) 02:47:160665デフォルトの名無しさん
2005/11/09(水) 05:06:21サンプルのお尻から律儀に比較していく方法しか思いつかない
何かいいアイデアないかな?
ひっくり返して無理やり作っちまうのも手かなぁ。。。
0666デフォルトの名無しさん
2005/11/09(水) 05:08:45目安程度になればってことで
0667デフォルトの名無しさん
2005/11/09(水) 10:14:54参考に。
http://www.dtmm.co.jp/archives/2005/10/post_83.html
>>665
ゼロクロスポイントを検出するのと、
音程検出してからその周波数にあわせて検出、
ってのを組み合わせるといいと思う。
音程がないもの用のスイッチを用意して、そのスイッチが入ってる場合は、
まずRMSでヒットポイントを検出、ビートの前後で検出ってのがいいと思う。
0668デフォルトの名無しさん
2005/11/09(水) 12:50:52あっなるほど、音程をとればループ長は自然に求まるか
第nフォルマントまで調べて最小公倍数でもよさそうな。。。
まだ妄想段階だけど突破口が見えてきた
どうもありがとう!
ブレイクビーツの切り出しについてもありがとう
まずそっちをやってみるよ
0669デフォルトの名無しさん
2005/11/09(水) 16:31:27PCでやるなら、FFTしてケプストラムでもリアルタイム処理できるでしょ
0671667
2005/11/10(木) 10:09:22このへんを見て研究するといい。
http://musicdsp.org/archive.php?classid=2
フィルタ処理は、このへんを見るとわかりやすいと思う。
http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap10/
0672デフォルトの名無しさん
2005/12/01(木) 09:16:15DirectXつかったものなんだよね?
あれって、どういう環境で鳴るの?
うちは、オンボードとかS/PDIFでホームシアターセットへ出力してるんだけど
オンボードでデコードされずに、パススルーしてホームシアターセットで鳴らしたり出来ないの?
DirectXの多スピーカーの実装がよくわからないんだけど・・・。
どういう環境で鳴らすのを想定してるんでしょうか?
0673デフォルトの名無しさん
2005/12/01(木) 20:01:42S/PDIFで出力するって事はドルビーエンコ出来なきゃ無利でしょ。
MCP-T以外にあったっけ?
昔と違ってDirectXの日本語SDKヘルプあるんだから
生の5.1chのWAVEファイルでも用意して勉強してください。
0674デフォルトの名無しさん
2005/12/01(木) 21:17:42レスどうも。
と言う事は殆どの環境で鳴らせないんじゃ・・・
アナログでそれぞれのスピーカーへ個別に接続してる場合のみって事かな・・・。
ホームシアター系は全滅のような(汗
MCP-Tかぁ・・・、nForce2までだよね。。。
うぅSoundStorm復活しないかなぁ。。。>当方nForce4SLI
0675デフォルトの名無しさん
2005/12/02(金) 15:01:35データをリアルタイムでAC3(DTS)エンコしてパススルーで再生できれば課題はクリア。
DirectXでもWaveOutでも5.1chは再生できるがパススルーのやり方は知らん。
一般ソフトが対応してるって事は技術的には可能。
ttp://www.vector.co.jp/soft/win95/art/se189568.html
0676デフォルトの名無しさん
2005/12/02(金) 16:10:240677デフォルトの名無しさん
2005/12/02(金) 20:04:02んだけどうまくいかない。そんなものなのか。
0678デフォルトの名無しさん
2005/12/02(金) 20:43:34どこかに良い資料はないでしょうか?
0679デフォルトの名無しさん
2005/12/02(金) 22:10:20普通は、そういうのは落ちてないもんなんじゃないかな?
0680デフォルトの名無しさん
2005/12/02(金) 22:11:22カーネルミキサーを通さないのがパススルーなんですけど。
>>677
いつの時代のOS使ってるんですか?
>>678
海外探せば資料はあります。
0681デフォルトの名無しさん
2005/12/02(金) 22:51:33その辺の所ってどうなの?
AC3のエンコーダーはオープンソースでフリーのやつが出回ってるけど、ああいうのって特許に触れないのかな?
もしくは商業利用以外はOKだとか?
0682デフォルトの名無しさん
2005/12/02(金) 23:40:15ttp://www.atsc.org/standards/a_52a.pdf
あたりと、IEC60958を調べるとよろし。
0683デフォルトの名無しさん
2005/12/03(土) 08:25:570684デフォルトの名無しさん
2005/12/03(土) 11:01:30ネットワーク上で配布する限りは無形物として扱われるし
商業利用しなければ、著作権侵害にならんと思われ。
0685デフォルトの名無しさん
2005/12/03(土) 11:06:01商業利用と著作権侵害って関係あんの?
0686デフォルトの名無しさん
2005/12/03(土) 11:38:57http://www.watch.impress.co.jp/av/docs/20020402/gogo.htm
午後のこ〜だの時は、それを理由に配布再開してる。
0687デフォルトの名無しさん
2005/12/03(土) 12:01:54http://pc8.2ch.net/test/read.cgi/tech/1045006087/
0688デフォルトの名無しさん
2005/12/03(土) 12:03:57弁護士の勝手な想像で言ってるように見えるが、根拠あっての見解なのかな
この記事を鵜呑みにするのは危険だな
0689デフォルトの名無しさん
2005/12/03(土) 13:01:18スレ違い。
ぷろぐらむの話しよーぜー
0690デフォルトの名無しさん
2005/12/03(土) 20:20:02今作ってるソフトで実装してみたいんだけど、mmsystem.hに該当のデバイスの詳細取得の関数が見当たらないんだけど
具体的にどんな感じで実装すれば?
もしかして、waveOutGetDevCaps()見たいに単純に取れないデバイスなの?
0691デフォルトの名無しさん
2005/12/03(土) 21:08:150692675
2005/12/03(土) 22:02:35VC6みたいな古いのには存在しないが、
新しめのプラットフォームSDKには存在するな…。
ググると資料もヒットするし面白い事を聞いたな。
これでリップしたAC3のパススルーでも試して見るか。
0694デフォルトの名無しさん
2005/12/04(日) 20:26:50少なくとも日本のの著作権法には、商用利用でないならオッケーなんて条項はないね。
一方、特許法は微妙で、個人が趣味で作るものや、たとえ企業でも研究のために作るもの
は特許侵害ならない。例えば、他所の会社が出願した特許の書類を見て、本当に役に
立つかどうかをチェックするために、書類の内容を完全にまねて同じようなものを作っても、
特許法上は問題ない。(ただし、試作してテストするのはオッケーでも、その試作品を
工場に持っていって商品作りに使ったりすると、アウト。)
0695デフォルトの名無しさん
2005/12/04(日) 20:52:10午後のこ〜だやら、Lameはどうしてるんだ?
午後のこ〜だは商業ソフトからも利用されてるようなソフトだぞ。
0696デフォルトの名無しさん
2005/12/04(日) 21:12:35インストール時にコンパイルしてDLLを作ってたよね
Lameは知らんが
0697デフォルトの名無しさん
2005/12/04(日) 21:32:30・個人の研究目的
・配布はインストーラーにソースとコンパイラを持たせて、インストール時にコンパイルする形
の2点でしのいでるが、正直グレーゾーン
前者は、個人の研究目的ならOKなんてのは無いし。(配布してるからアウト)
後者もソースコードならOKと言うわけではない。
企業が午後のDLLを採用する場合も、午後の作者が「各社の責任で」と言う形で、各企業に個別にライセンスを取らせてる。
つっても、こういうのは侵害されてる側が訴えない限り黙認されるし
それを侵害してる個人は山ほど居るので、いちいち訴えてたらキリが無い。
ただし、商業利用してる企業相手には流石に手を打つ。
だから、法的にはそういうわけではないが結果的には
商業利用じゃなければOK
と言う形になってる。
0698デフォルトの名無しさん
2005/12/04(日) 21:36:040699691
2005/12/04(日) 21:41:55今作ってるソフト、もうやめたほうが良いかな?
仮想サウンドカードを用意して
DirectSoundの多チャンネル出力をAC3にエンコードして、リアルタイムでS/PDIFでパススルーする仕組みなんだが・・・
で丁度64bitプログラムを組みたかったので、リアルタイムエンコードは得意そうだからうってつけだと思ってたんだがね。
某コンテストに出す予定だったが、やめとくか・・・。
ちなみに今の完成度は、既にハードコーディングな実験的部分が多いが、ほぼ機能は全うするようになってる。
0700675
2005/12/04(日) 21:57:13ロイヤリティを要求されても払えんしな。
GIFやMP3みたいに普及してから徴収はコワイ。
無いと思うがサブマリン特許ってやつにも気をつけないとな。
691が作るだけなら問題はない。配布は厳しいかもな。
0701デフォルトの名無しさん
2005/12/05(月) 00:35:55ちょっとしたことでも、かなりの特許侵害してそうで・・・
0702デフォルトの名無しさん
2005/12/05(月) 14:37:32公開しているツワモノもいるけどな。
ttp://novolization.hp.infoseek.co.jp/source.html
コイツを通報してどうなるか実験してみるか?
0703デフォルトの名無しさん
2005/12/05(月) 14:47:09混同しないようにね。法律も全く別のもの。
0704デフォルトの名無しさん
2005/12/05(月) 14:54:57まだ特許が有効であった時期であっても、
日本国内で個人が趣味でソフトを作る限りは、
ユニシスが何を言おうが、日本の法律では無問題だった。
もちろん商用ソフトはアウトだったけど。
ソフトシンセの類も、個人が趣味や研究で作る限りは、
特許法としては問題ないよ。ただし、それを商品化したり
しようとすれば、「商品化する人」がきちんと特許の処理をする
必要がある。
あと、規格制定団体がネットで公開しているサンプルコードを
勝手にコピーして自分も著作物として発表してしまったりすれば、
そりゃ特許ではなく著作権の侵害。たとえ趣味でも、そりゃ、アウト。
0705デフォルトの名無しさん
2005/12/05(月) 16:36:21通報先は法的機関ではなく直でドルビーラボ。
704が言うとおりなら通報しても問題ないだろ。
問題ないとわかれば691も安心してコンテスト応募ができる。
0706691
2005/12/05(月) 17:10:51もちろん、たとえ法的にOKでもアメリカの会社の特色的にNGって言われそうだけど・・・w
どちらかと言うと、日本における中古ゲームソフトの販売くらいシビアな問題だと思う。
0707デフォルトの名無しさん
2005/12/05(月) 17:13:24特許法上でも、個人的、家族的な運用を超えたら引っかかることになってるはず。
つまり、>>704の言ってる無問題ってのは、
個人が趣味でソフトを作って、かつ、その作者が個人用あるいは家族用にそのソフトを使ったとき、
ということなんだろ
ちなみに、特許が通ってない国からリリースするという方法もあり
Irfan ViewがGIFに対応し続けたのは、配布元がGIF特許の通ってない、
オーストラリアだったかオーストリアだったかからとかいう話
0708691
2005/12/05(月) 17:23:14・国内・海外で既にドルビーデジタルの技術を使用したソフトウェアが公開されているが、それに関しては許可・もしくは黙認されているのでしょうか?
・(私が作ろうとしているソフトウェアの概要を説明した上で)それをフリーで公開する場合はライセンスの取得が必要か?
の2点を問い合わせた。
まぁ、殆どダメ元だと思うけどね。
現状は気まぐれに近い黙認だと思うけど、こうやって聞くと回答はNGだと思う。
0709デフォルトの名無しさん
2005/12/05(月) 21:16:51フリーソフト=趣味とは限らない。
企業に限らず一個人であってもがビジネスの一環として配布するなら、たとえ
無料でも特許法で言うところの「業務」ということになるから、特許法の対象だよ。
そうしないと、例えばDLLモジュールに特許侵害になる部分を詰め込んでおいて、
それだけ無料配布、本体のソフトだけが有料、なんてインチキができてしまう。
>>707
特許の成立していない国にあるファイルサーバーを通じて公開すると、公開した
のが企業であっても、少なくとも、その国の特許法では、ファイル公開を停止
できない。もっとも、IPアドレスなどで、特許の成立している国からのダウンロードは
弾くような仕組みを持たせておいたほうが安全だとは思うけど。
一方、それを別の国(そこでは特許成立している)の人が、趣味で使うために
ダウンロードするなら、使うほうも大丈夫。特許が成立している国で、個人が趣味の
ためにダウンロードした後で、それをCDに焼いて友人に配るのもオッケーだけど、
会社の宣伝のために大量に焼いて展示会なんかで配布したら無料配布でもアウト。
特許法は国ごとに違うけど、おおよそ、こんな感じ。
>>708
「大学で研究しているんだけど・・・」という質問なら、ほぼ確実にOKだろうけど、
個人の場合、「作ったソフトをどうするのさ?」と疑われると面倒かもね。
0710デフォルトの名無しさん
2005/12/05(月) 22:14:54内部的な処理で必要なだけだし、結果的にはAC3の正式ライセンスのデコーダーが要るわけで・・・。
ドルビーからすると、不利益を蒙る内容でもないから、黙認しても良いと思うんだがね。
0711デフォルトの名無しさん
2005/12/05(月) 23:14:56・・・馬鹿?
0712デフォルトの名無しさん
2005/12/05(月) 23:28:02実はその仕組みはドルビーからすると良い商売になるんだよ。
だから内部処理でも、商用であちらは出したいからそれ自体不利益だと思われ
つっても、どこもそれをソフトウェアでやるような行動をしてないのが謎だが
ハードウェアはあるがね。
0713デフォルトの名無しさん
2005/12/06(火) 00:27:420714デフォルトの名無しさん
2005/12/06(火) 10:06:090715デフォルトの名無しさん
2005/12/06(火) 17:48:590716デフォルトの名無しさん
2005/12/07(水) 03:38:36ac3のファイル構造の情報載ってるサイトない?
0717デフォルトの名無しさん
2005/12/07(水) 04:56:420718675
2005/12/10(土) 19:18:010719デフォルトの名無しさん
2005/12/19(月) 22:02:00とりあえず、オチくらいは報告しとこうとおもう。
例のメール
>ドルビーの各テクノロジーのライセンスは、AV機器開発メーカ様やPCソフトウェアメーカ様などの
>企業様を対象としており、フリーウェア作成のための個人様を対象としたライセンスということは
>行っておりません。また、今後もそのような予定はございません。
で、個人で作成する場合はライセンスの取得が必要か?と言う質問に対して
上記の理由で、個人へのライセンスはやってないので、必要ないとのこと。
と言う事で、企業様ではなく
個人の使用であれば、黙認と言う形のようです。
0720デフォルトの名無しさん
2005/12/20(火) 12:01:43おお、乙でした!
0721デフォルトの名無しさん
2005/12/20(火) 13:09:070722デフォルトの名無しさん
2005/12/20(火) 15:20:04フリー作家にはつかわせねーよって内容じゃないのか?
0723デフォルトの名無しさん
2005/12/20(火) 17:59:08詳しく。
>個人へのライセンスはやってないので、必要ないとのこと。
「個人へのライセンス取得はできない」って事だけど、
722はそれを「個人では使用できない」と解釈したみたいだね。
719の返事の文章に続きがないと722の解釈であってると思うが…
0724デフォルトの名無しさん
2005/12/20(火) 18:07:01当然
個人でも販売したりフリーで流通させたる事までドウゾと言ってる筈がないだろう
0725デフォルトの名無しさん
2005/12/20(火) 18:33:03という解釈はできないな
0726デフォルトの名無しさん
2005/12/20(火) 23:01:51それは、基本的に企業が「黙認」を表す時に
言葉を濁す時に良く使われる手法だと思う。
ダメなときは、基本的にはっきりと「個人の使用でも禁止している」的な事を書くはずだから・・・。
まぁ、>>719の質問まで載せてくれないとはっきりわからないんだが
ライセンス取得しなければ作れないか?と言う質問に対してなら
まぁ、基本的に「黙認」を表してると思う。
企業が「黙認」を公言するわけにいかないし・・・。
0727デフォルトの名無しさん
2005/12/21(水) 23:18:49フリーはコントロール効かないし、ヘンな所で火がついたりするから難しいんだよなぁ。
0728デフォルトの名無しさん
2005/12/24(土) 05:59:580729デフォルトの名無しさん
2005/12/24(土) 10:30:38文句来れば、公開止めるだけで済むんだから、対して問題じゃない気がする。
0730デフォルトの名無しさん
2005/12/24(土) 10:33:23それは事前に容易に想像可能な事なので、
2次公開についても最初に開発して公開した人の責任という事になるだろう。
つまり、経済的な損害について賠償する責任がくっついてくるわけだ
0731デフォルトの名無しさん
2005/12/24(土) 10:59:550732デフォルトの名無しさん
2005/12/24(土) 18:58:42基本的に、今配布してる所を叩くと思う。
0733デフォルトの名無しさん
2005/12/24(土) 19:25:53>個人へのライセンスはやってないので、必要ないとのこと。
ライセンスが必要ないというのは、ライセンスは発行されないという事
特許権絶対的な独占権であり、
ライセンスが発行されないかぎりは、
例え独自に実装しようが、フリーだろうが、さらには個人的にさえ
利用できない強い権利。ただ唯一 試験又は研究のためにだけ使う事が可能。
個人の利用で黙認というのは、それは勝手な解釈だと思う。
0734デフォルトの名無しさん
2005/12/24(土) 21:13:04法や規則の例外だから、黙認なのであって、>>733みたいな考えで黙認を考える事は出来ないよ。
0735デフォルトの名無しさん
2005/12/24(土) 21:56:39黙認だからな…
全てにおける例外と言うか、不確定要素というか・・・
0736デフォルトの名無しさん
2005/12/25(日) 16:18:16gifの前例もあるし、ビビり入るよ。
金になりそうにない個人に噛み付くってのも考えにくいけど。
0737デフォルトの名無しさん
2005/12/25(日) 16:46:11個人の場合「黙認」じゃなくて「放置」することが多いらしい
気が向いたとき責任追求するってスタンスらしいです
0738デフォルトの名無しさん
2005/12/25(日) 17:10:56現状では個人相手にライセンスしないと言う感じなので
やはり個人相手に噛み付く事も無さそうだけど
せいぜい公開停止を求める程度だと思う。
0739デフォルトの名無しさん
2005/12/25(日) 18:40:090740デフォルトの名無しさん
2005/12/25(日) 18:45:550741デフォルトの名無しさん
2005/12/30(金) 12:59:31という文面の行間をどのように解釈するかだ。
>>719は、この文章を
「個人ならばライセンス取得不要」→「黙認」と解釈したようだが、
黙認というまで解釈を飛躍させるのは、かなり危険だと思う。
「個人にはライセンスを付与しない」と解釈するのが一般的だろうな。
あと、開発するのは自由だが、配布まで自由だとは言ってない。
ということで、>>724の言うことが正しいと思われる。
ドルビーが遠まわしに「NGです」と言ってくれているのを、勝手な解釈で
黙認→公開 として訴えられても、俺には関係無いけどな。
0742デフォルトの名無しさん
2005/12/30(金) 14:28:510743デフォルトの名無しさん
2006/01/05(木) 17:29:12→またドルビーに文句言われて公開停止→またソフトを改変して公開→(以下略)
これで解決!
0744デフォルトの名無しさん
2006/01/05(木) 23:41:27お前は知的に障害がある人間か?
0745デフォルトの名無しさん
2006/01/16(月) 08:01:58これ、PLAY命令で1度は音が出るんですが、もう一度PLAYを押すと音が出なくなります。
で、一度CLOSEしてOPENしなおすといけます。
こういう仕様なんでしょうか?
ちなみに再生ソースはwaveです。
0746デフォルトの名無しさん
2006/01/16(月) 11:48:01seekは?
0747デフォルトの名無しさん
2006/01/16(月) 11:51:42waveOutOpenを同時にいくつか開いて
waveOutWriteでそれぞれのハンドルへwaveを書き込む
あるいはDirectSound使う
0748デフォルトの名無しさん
2006/01/28(土) 22:05:55やりたいことは、複数のサウンドカード利用時にシステム全体のサウンド出力を手軽に切り替えたいだけなのですが。。。
Mixer APIに当たりをつけ、複数の記事を読みサンプルもいじってみたのですが、
出力先の切り替え方だけ載ってないような(コントロール利用時のフラグで設定できるのかもしれませんが、使えそうなフラグが見つかりません)。
DirectSound関係は、DirectXなくてもOSの出力には関係なさそうだし。
そもそも優先するデバイスがどれかという情報はどこに保存されているんだ。。。
胃が痛いです。。。
検索したキーワード
windows サウンドカード 切り替え api 複数
優先するデバイス 切り替え api
変更 windows 再生 mixeropen
windows api sound device change output
チェックしたサイト
www.codeproject.com他
0749デフォルトの名無しさん
2006/01/29(日) 06:14:48仕事で散々苦労した俺が答えるぜ!
つまりは、waveOutOpen( &h, WAVE_MAPPER, ... ) や、
メディアプレイヤーなんかのデフォルトのWAVEデバイスを切り替えたい、と。
レジストリエディタで、
HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper
を見れば解ると思うけど、ここの Playback にWaveOutのデバイス名を書けばOK。
デバイス名の列挙は waveOutGetNumDevs()/waveOutGetDevCaps() で良かったはず。
ただし、SetupPreferredAudioDevicesCount のパラメータを間違えると意図した動きをしないので注意。
詳細はチト忘れてしまって申し訳ないが、通常弄らない値なので変えないこと。
#waveOutGetNumDevs()の返り値だった気もする。
上記レジストリが存在しない/壊れた場合、コンパネからデバイス選択し直せば元に戻る。
mixerは乱暴な言い方をすると、音量の調整と録音時のライン指定操作がメインなんで関係無い。
資料が手元に無いんで記憶だけで書いてるので間違いがあるかもしんない。
0751デフォルトの名無しさん
2006/02/01(水) 19:38:420752デフォルトの名無しさん
2006/02/01(水) 22:47:49、ハ、ェ、ォ、ト。「、ス、?ヒアヌチ??ソア?、オ、サ、鬢?ソ、鮖ケ、ヒ、、、、、ホ、ヌ、ケ、ャ。「。「。「。」
0753matsu
2006/02/01(水) 22:48:58なおかつ、それに映像を反応させられたら更にいいのですが、、、。
0754デフォルトの名無しさん
2006/02/01(水) 23:40:040755デフォルトの名無しさん
2006/02/01(水) 23:44:08組み立てたいのです。もしご存知でしたら教えて下さい、、。
0756デフォルトの名無しさん
2006/02/02(木) 00:38:250757デフォルトの名無しさん
2006/02/02(木) 01:40:25そもそもそんなマイナーなモンを
こんな過疎スレで聞いても解答返ってくるわけねぇじゃん。
0758デフォルトの名無しさん
2006/02/02(木) 02:13:530759デフォルトの名無しさん
2006/02/02(木) 10:14:51これの通りに組み立てれば簡単だね。
http://musicdsp.org/archive.php?classid=2#172
0760デフォルトの名無しさん
2006/02/02(木) 15:18:48締め切り終わった頃に回答出してるところが教育的ですばらしいw
0761デフォルトの名無しさん
2006/02/03(金) 02:14:41もっとも>>753がこれをMax/MSPに応用できるとは思えんが
0762デフォルトの名無しさん
2006/02/03(金) 03:48:32解らない部分聞くでもなけりゃ、やり方聞くでもなし、答えだけ知りたいってのが気にいらねぇ。
しかも明日までとか期限切ってるし、しらねっつーの。
0763デフォルトの名無しさん
2006/02/03(金) 05:25:24なんて相談事では、回答者がどんなに手伝ってあげたいと思っても、
手の施しようがないべさ。「理解して作る」じゃなくて、「他人の解答を
理解せずにコピーして提出する」ってことなら、誰が手伝うものか。
0764デフォルトの名無しさん
2006/02/03(金) 10:15:23http://www.google.com/search?num=100&hl=ja&q=%22max%2Fmsp%22%2B%22pitch+detection%22&lr=
0765デフォルトの名無しさん
2006/02/03(金) 14:02:02「急いでるから今すぐ回答だけ教えろ」なんて自己中すぎ。
0766デフォルトの名無しさん
2006/02/06(月) 18:20:102chを超えるような多チャンネルのPCMデータのやり取りには対応して
いるんでしょうか?たとえば3chとか4chとか。USBのAudio Data Format
仕様書では、多チャンネルデータが規定されているようなんですが。
ご存知の方いましたら、教えてください。よろしくお願いします。
0767デフォルトの名無しさん
2006/02/06(月) 22:16:580768デフォルトの名無しさん
2006/02/07(火) 00:42:22WAVEFORMATやWAVEFORMATEXでは3チャネル以上は対応してなくて、
WAVEFORMATEXTENSIBLEを使わないといけなかったような気がするする。
0769Sound
2006/02/07(火) 01:36:22イコライザー等の処理を施した後、リアルタイムで再びサウンド
カードから音を出すアプリケーションを作りたいと思っております。
開発環境はVC++等を考えています。
現在、DirectXのDirectSoundを用いてサウンドカードからの
音をWaveファイルに録音したり、録音済みのWaveファイル
を再生したりすることはできているのですが、サウンドカード
からの入力データを動作中のプログラムの一時メモリを参照し、
それを操作・処理した後に、一時メモリから再びサウンドカード
から音を出したいと考えています。
参考となるホームページやキーワード、書籍、具体的な
方法等知っていたら教えてください。よろしくお願いします。
0770名無しさん
2006/02/07(火) 02:05:350771デフォルトの名無しさん
2006/02/07(火) 02:13:03そこまで出来れば、あとは同時にやるだけで、特に悩むようなことはないと思うんだが。
0772デフォルトの名無しさん
2006/02/07(火) 05:11:37つ[リングバッファ]
リアルタイムってことはレイテンシなしでやりたいってこと?
楽器繋いでエフェクタ代わりとかにしたいなら結構面倒だと思われ。
「ASIO」辺りで調べてみ。
0773デフォルトの名無しさん
2006/02/07(火) 10:12:36ASIO4ALLのソース見れば、たいていのサウンドカードでなんとかできるかも。
0774デフォルトの名無しさん
2006/02/07(火) 19:34:00使った事もないくせにw
低レイテンシとまでは言ってない。
0775デフォルトの名無しさん
2006/02/07(火) 21:02:54そうじゃないならサンプリングレートあわせの為に
強力なLPF(ローパスフィルタ)が必要になるね。
0776デフォルトの名無しさん
2006/02/07(火) 22:47:170777デフォルトの名無しさん
2006/02/08(水) 00:53:54バカはお前だよ。
16bit, 44.1kHz で処理する時、録音と再生にそれぞれ2KBのバッファを使うと、46msec程度遅延する。
ドライバ内にもバッファがあるので更に遅延するが。
楽器の演奏で50msec遅延すると気持ち悪くなり、100msec以上は使い物にならない。
ま、楽器触らない>774には理解出来ないんだろうガナー。
0778デフォルトの名無しさん
2006/02/08(水) 07:36:42なんで質問者の内容と違った回答する奴が多いのかね
だれも遅延の話なんて聞いてないんだよ
0779デフォルトの名無しさん
2006/02/08(水) 10:11:14リアルタイムって言ってるだろボケ。
0780デフォルトの名無しさん
2006/02/08(水) 14:55:530781デフォルトの名無しさん
NGNG遅延が一定ならリアルタイムと言えなくもないし。
リアルタイム処理した出音とそれ以外の音を同期ミックスするなら遅延を20ms内外に
納める必要があるが、ミックス込みで処理するなら遅延は100msでもいいわけだし。
要するに出音をどう使うかに依存すると。
0782デフォルトの名無しさん
2006/02/08(水) 15:56:01772はレイテンシ無しでやるなら難しい、そうでなければリングバッファ使えって言ってんじゃん。
なんで噛み付いてんの?
漏れも入出力同時にやりたいって言われたらエフェクタがわりにしたいんだと憶測するが。
そうじゃなけりゃwavファイル操作した方が楽だし。
0783デフォルトの名無しさん
2006/02/09(木) 18:26:23基本は想像どおりで消したい音の逆相をあてる。
0784デフォルトの名無しさん
2006/02/09(木) 19:19:58あれ?
声が遅れて聞こえるよ?
馬鹿だなぁ。
0785デフォルトの名無しさん
2006/02/09(木) 20:09:38入力された音声をトランシーバー風に加工したいのですが
EQで1KHzあたりをあげても
あのザラザラ感がなかなかでません。
あれは変調されている音なんでしょうか?
タクシー無線とか、飛行機とかあんな感じの音をつくりたいです
どなたかアドバイスください
0786デフォルトの名無しさん
2006/02/09(木) 20:12:400787デフォルトの名無しさん
2006/02/09(木) 20:22:113kHz以上カット→300Hz以下カット→非直線性歪
0788デフォルトの名無しさん
2006/02/09(木) 21:18:58さらに、ノイズを追加。ノイズは出しっぱなしだと面白くないので、
音量と掛け算するとか
0789デフォルトの名無しさん
2006/02/09(木) 21:32:530790デフォルトの名無しさん
2006/02/09(木) 21:37:020791デフォルトの名無しさん
2006/02/09(木) 21:41:34コンサート会場で生声使ってもリアルタイムとは言えないわけだ
0792デフォルトの名無しさん
2006/02/09(木) 21:43:42非直線性歪 ためしてみます
あと、ノイズゲートもかけて試してみます
0793デフォルトの名無しさん
2006/02/09(木) 22:24:56ケーブル通る電子の速度分遅れるから厳密に言えばリアルタイムは存在しないと思うのですがwww
ま、どの方法使っても789の脳味噌ほど遅れはしないだろうよ。
0795デフォルトの名無しさん
2006/02/09(木) 23:31:50うむ。0msじゃないとリアルタイムじゃないよな。
ぜひキミがそういうシステムを作ってくれ。宇宙がひっくり返るぞ。
0796デフォルトの名無しさん
2006/02/09(木) 23:33:17そんな話はバカらしいから、あーだこーだと物言いがついてるんじゃないか。
0797デフォルトの名無しさん
2006/02/09(木) 23:54:17リアル-タイムしょり 【―処理】<
〔real-time processing〕データ処理方式の一。
データが発生したとき、そのたびごとに処理を行う方式。
定時間処理。
--------------------------------------------
データの発生から処理の完了が規定時間以内にできれば、たと
え一週間かかってもリアルタイム処理だよ。
>>769 が何をしたいのかわからんから、規定時間がどんなも
んか知る由もないが。
まあ、>>772 は単に ASIO って言いたかっただけだろ。
0798デフォルトの名無しさん
2006/02/10(金) 11:38:31>一週間かかってもリアルタイム処理だよ。
常識の範囲で物言えよ。
間違ってもその調子で仕事とかすんなよな。
0800デフォルトの名無しさん
2006/02/10(金) 17:43:13プギャーって言って欲しいのかい?
0801お知らせです
2006/02/10(金) 17:47:440802デフォルトの名無しさん
2006/02/10(金) 17:49:02惑星探査機とかで制御に数分〜数時間かかるものもある。
あと、化学関係の奴とかならそれこそ制御のサイクルが
一週間レンジと言うのもざらにある。
自分の狭い「常識」が全てと思ってたら、恥をかくぞ。
0803デフォルトの名無しさん
2006/02/10(金) 17:52:210804デフォルトの名無しさん
2006/02/10(金) 18:16:140805デフォルトの名無しさん
2006/02/10(金) 19:42:400806デフォルトの名無しさん
NGNG○定レイテンシ
0807デフォルトの名無しさん
2006/02/10(金) 22:27:33そんな馬鹿なこと言ってたら話がすすまねぇ。
0808デフォルトの名無しさん
2006/02/10(金) 22:55:040809デフォルトの名無しさん
2006/02/10(金) 22:57:590810デフォルトの名無しさん
2006/02/10(金) 23:14:000811デフォルトの名無しさん
2006/02/10(金) 23:32:310(レイ).(テン)4(シ) orz
0812デフォルトの名無しさん
2006/02/10(金) 23:51:590813デフォルトの名無しさん
2006/02/11(土) 01:32:52自分の常識≡世間の常識 と思い込んでるお馬鹿が一人
暴れてるだけだろ。
>>810
ちとわろた。
>>812
残念ながら、全然面白くないぞ。
0814デフォルトの名無しさん
2006/02/11(土) 02:45:570815デフォルトの名無しさん
2006/02/11(土) 06:52:030816デフォルトの名無しさん
2006/02/11(土) 10:27:150817デフォルトの名無しさん
2006/02/11(土) 11:27:55シなんてブチ切るから四とか死とか連想すんじゃね?
0818デフォルトの名無しさん
2006/02/11(土) 11:28:39レイテンシーだお。
0819デフォルトの名無しさん
2006/02/11(土) 12:06:11「ー」と「−(マイナス)」を間違えないようにするとか聞いた。
0820デフォルトの名無しさん
2006/02/11(土) 12:21:47JIS かなんかで、決まってたはず。
昔は、ちょっとでもデータサイズを小さくするために省
ける (省いても混乱しない) ところは、省いてしまえと
言う発想だった。今時は、携帯とかにも 4G HDD が載
る時代だから、時代遅れの考え方なんだが、別に省いて
困るわけじゃないからそのままになってるだけ。
あと、いきがって「レイテンシー」とか言ってても所詮
カタカナ英語なので、「レイテンシ」と五十歩百歩。
0821デフォルトの名無しさん
2006/02/11(土) 12:26:34いっこく堂のレイテンシはどのくらいですか?
0822デフォルトの名無しさん
2006/02/11(土) 12:54:00ttp://nagoya.cool.ne.jp/infinite/column/prolonged_sign.html
というわけで、3音以上なら普通は省略する
ファミリーコンピュータもそうだったな
0823age
2006/02/11(土) 19:31:580824デフォルトの名無しさん
2006/02/11(土) 22:54:14プログラマどころか、技術者としての素養に欠けるから、
転職を勧めるよ。(w
0825デフォルトの名無しさん
2006/02/12(日) 01:25:550826デフォルトの名無しさん
2006/02/12(日) 01:31:410827デフォルトの名無しさん
2006/02/12(日) 01:34:53完璧主義なんだよ
0828デフォルトの名無しさん
2006/02/12(日) 04:51:090829デフォルトの名無しさん
2006/02/12(日) 10:08:48とりあえずスルー
0830デフォルトの名無しさん
2006/02/12(日) 19:20:300831デフォルトの名無しさん
2006/02/12(日) 19:28:420832デフォルトの名無しさん
2006/02/12(日) 19:43:49惨めすぎ
0833デフォルトの名無しさん
2006/02/12(日) 23:05:48解決したのか、769=774なのか。
0834デフォルトの名無しさん
2006/02/13(月) 17:21:59つまり、録音より再生周波数がわずかに高い場合でもLPFが必要かって事かい?
当然必要になる。
そして強力でかつ位相特性がフラットなLPFは大きな遅延を必要とする。
たとえば、PCIカードで入力してUSBスピーカーで出力なんて場合は、この同期を合わせる処理が必要だ。
だから、遅延の少ないリアルタイム処理をしたいなら、
まずは録音と再生が同期しているサウンドカードが必要だね。
まずはそっからだ
0835774
2006/02/13(月) 18:22:55769はオレじゃない。769=785だと思った。
録音した音をイコライザ(トランシーバ処理)して出力とかな。
話がそれてしまったから785で再度質問したように見えた。
質問者(769)のレベルを考えれば、彼のリアルタイムと言うは
「ファイルに保存しないでメモリのみで」って意味だとオレはとったけどな。
書き込みが無いなら彼にとってレイテンシ問題は関係なかったのだろう。
0836デフォルトの名無しさん
2006/02/14(火) 00:00:28> 「ファイルに保存しないでメモリのみで」
また、斬新な「リアルタイムの定義」だな…。
0837デフォルトの名無しさん
2006/02/14(火) 00:25:53もうちょっと観察力・洞察力をつけような。
だから774や835みたいなことを書いてしまうんだ。
0838デフォルトの名無しさん
2006/02/14(火) 05:07:220839デフォルトの名無しさん
2006/02/14(火) 07:39:31あれ?
発言が負け惜しみに聞こえるよ?
馬鹿だなぁ。
0840デフォルトの名無しさん
2006/02/14(火) 10:39:27発想だと思うなぁ
0841デフォルトの名無しさん
2006/02/14(火) 12:23:470842デフォルトの名無しさん
2006/02/15(水) 06:30:00>>769の欲しがっている回答は100レスくらい経過した今もまだ得られていない。
俺達、不毛な議論が大好き!!
これがプログラム板クオリティ。
>>769
オレも勉強中でよくわかんねぇけど、
まずはSteinbergのVST SDKとやらで勉強してみたら?
サンプルにエフェクターのプログラミングが幾つかあったと思うよ。
そこから、VSTi(DLL)じゃないStandaloneなアプリへと移行してみてはどうでしょうか?
0843842
2006/02/15(水) 06:40:29VST SDKじゃ音を鳴らすところのプログラミング知識は得られないか・・・
Hostに波形をわたすだけだもんな・・・・
そうか
VST Hostっていうアプリのソースを解析すりゃいいんだ。よし>>764
VST Hostっていうオープンソースなアプリがあるからそいつを見るんだ。
なにかわかるかもしれないっす。
ってサウンドプログラミングを全然わかってない俺が回答してどうする?
0844デフォルトの名無しさん
2006/02/15(水) 06:44:46ム板ってIDが出ないから、なんか面倒くせぇなぁ。ひろゆきさんID出すようにお願いしてこようか?
0845デフォルトの名無しさん
2006/02/15(水) 10:18:20はやばやと>>772で出てるだろ。アホ。
0846デフォルトの名無しさん
2006/02/15(水) 13:12:45>オレも勉強中でよくわかんねぇけど
じゃあ黙ってろ。
0847デフォルトの名無しさん
2006/02/16(木) 00:06:07難しい質問の答えは、いつだって、抽象的w
そして、どうでもいい言葉の綾にすぐつっかかる。
>>845は>>772が答えだと最良の答えだと思ってるほど引出しもゼロのくせに出てくるし。
>>846は無能な奴の発言をぶった切る。
>>842は無能なのにつっかかる。
そして、おれもつっかかる。
こんなスレじゃ>>769のためになるような答えは出てこないよなw
0848デフォルトの名無しさん
2006/02/16(木) 07:36:22>なんで質問者の内容と違った回答する奴が多いのかね
Ogg Vorbisプログラムスレも同様。
http://pc8.2ch.net/test/read.cgi/tech/1032623615/l50
まともな回答が返ってこない。
同じ奴らなんだろうな。
0849デフォルトの名無しさん
2006/02/16(木) 07:40:400850デフォルトの名無しさん
2006/02/16(木) 07:59:43一昔前のPCIサウンドカードは1枚で同時に使おうとすると、in-outのアイソレーションが悪くて使えたもんじゃなかったし
2枚刺しだと、同期がゆっくりズレてゆくから、>>775の処理をしなければいけない
USBサウンドカードも、どうもデータが抜けるようでプチプチ音が入ってしまうのが結構ある
最近は良くなってるけどね
サンプリング変換の技術を持っていれば、簡単かというと
リアルタイムなら
入力したものをリングバッファに入れて、8倍程度のオーバーサンプリングでデータを取り出して
入力したカウント数と 出力したカウント数がだんだんズレてくるからそれにあわせてPLL的な処理をするのだけど
ところが、InもOutもブロック入力出力なんだよね。
だから、1ブロック分ズレないとそのズレが判らない。
で、それをもっと早く知るには高分解能タイマーが必要になる。
その付近が自分で作るとなるとメンドクサイんだよ
0851デフォルトの名無しさん
2006/02/16(木) 10:09:31自分の欲しい回答が出てこないからって逆ギレ乙。
769がでてきてないってことはたぶん769はでてきたキーワードで
解決できたってことだ。
0852デフォルトの名無しさん
2006/02/16(木) 19:33:11解決したのに逆ギレかよ。
0853デフォルトの名無しさん
2006/02/17(金) 04:09:44まぁタイミングが悪かったよな。
0855デフォルトの名無しさん
2006/02/17(金) 21:22:250856785
2006/02/22(水) 01:18:46769さんとは無関係です
ちなみに私のやりたいのは 録音ー>通信ー>再生です
この部分は可変バッファ込みでできてます/
0857デフォルトの名無しさん
2006/02/22(水) 03:23:02次にお前が来るのは何日後だ?
0858デフォルトの名無しさん
2006/02/25(土) 17:32:320859デフォルトの名無しさん
2006/02/26(日) 11:18:470860デフォルトの名無しさん
2006/02/26(日) 15:22:340861デフォルトの名無しさん
2006/02/26(日) 19:31:000862デフォルトの名無しさん
2006/02/26(日) 20:00:090863デフォルトの名無しさん
2006/02/27(月) 04:40:310864デフォルトの名無しさん
2006/02/27(月) 13:38:570865デフォルトの名無しさん
2006/02/27(月) 17:52:570866デフォルトの名無しさん
2006/02/27(月) 19:00:52っていう名目の上に俺の作ってほしい物を作ってもらうだけのクレクレ企画やろうぜ
0867デフォルトの名無しさん
2006/02/27(月) 23:09:41「最高に「ハイ!」ってやつだアアアアアアハハハハハハハハハハーッ」
「オレはたぶん… プッツンするだろうということだけだぜ」
「ロードローラーだッ!」
つづく
0868デフォルトの名無しさん
2006/03/05(日) 23:52:000869デフォルトの名無しさん
2006/03/17(金) 19:30:09CPUの負担を軽減してやれって発想なんだよね?
ってことは波形処理に伴う効率的なFFTもサウンドカードのDSPに実装されているってわけだ。
それを逆手に取って、FFTを使うプログラミングを書くときは、ソフトウェア的に処理するのではなく
EAX機能を搭載したサウンドカードに計算させちゃうってことはできないかな?
ハードウェアで処理することで圧倒的なスピードでFFTとかやってくれそうじゃん。
それにFFT意外にも畳み込みの計算とかもスピーディーにやってくれるんじゃない?
0870デフォルトの名無しさん
2006/03/17(金) 20:03:35プログラムを書き換えたり出来るの? そもそもプロセッサの仕様は公開されてるの?
0871デフォルトの名無しさん
2006/03/17(金) 20:23:35ちなみにプロセッサの仕様は公開される必要はないでしょう。
入力を入れて正しい出力結果が得られれば満足なんだから。
0872デフォルトの名無しさん
2006/03/17(金) 20:38:290873デフォルトの名無しさん
2006/03/17(金) 21:20:21研究者たちが「GPUを汎用計算機として使えないか」ということを考えています。
それと同じですよね。
自分は、GPUを使ったリバーブ・アルゴリズムなんかについて考えているんですが、
GPUに値を渡すことはできても、GPUから値をとってくるのが難しく困ってます。
GPUから値が取れないのは、GPUに情報が入ったら計算させて表示しておしまい、
というのが原因だと思いますが、もしかしたらサウンドカードでもにたことになってるかも。
0874デフォルトの名無しさん
2006/03/18(土) 01:13:18な、なるほどΣ(´Д`; )
サウンドカードにデータを渡しても結果は音として再生されて終わりってこともありえるわけか・・・
0875873
2006/03/18(土) 01:22:14グラフィックスカードと違って、
サウンドカードからデータを取ってくることはできます。
ただ、PCから渡したデータをサウンドカードのプロセッサ経由させて
またPCに持ってこれるかどうかは別の話なんですが。
0876デフォルトの名無しさん
2006/03/18(土) 02:38:19アナログコンピューターかいな('A`)・・・
0877873
2006/03/18(土) 04:21:27アナログにする必要ありませんね。
0878デフォルトの名無しさん
2006/03/18(土) 18:41:44ttp://en.wikipedia.org/wiki/Uad-1
0879デフォルトの名無しさん
2006/03/18(土) 18:43:44GPU使うのだって、計算結果をテクスチャ領域にレンダリングして
取り出すんじゃなかったっけ?
0880http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 19:04:51もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0881デフォルトの名無しさん
2006/03/18(土) 19:26:05MPACT2はDSPだからVGA専用というわけではない
0882デフォルトの名無しさん
2006/03/20(月) 07:42:37名前忘れたがモナリザっぽい名前だった気がする。
0883デフォルトの名無しさん
2006/03/21(火) 02:54:440884デフォルトの名無しさん
2006/03/21(火) 03:00:12何の略だっけ?
0885デフォルトの名無しさん
2006/03/21(火) 03:52:250886デフォルトの名無しさん
2006/03/24(金) 16:30:490887デフォルトの名無しさん
2006/03/24(金) 16:38:44DTM板で教えてやったろアホ。
お前、大学レベルの数学勉強する前に人間勉強しなおしたほうがいいな。
0888デフォルトの名無しさん
2006/03/26(日) 16:03:250889デフォルトの名無しさん
2006/03/27(月) 05:07:290890デフォルトの名無しさん
2006/03/27(月) 06:16:43今は高速回線でMIDIにする必要なくなったろ。
それにソフト音源が主流になって再生環境合わせるのも難しいし。
0891デフォルトの名無しさん
2006/03/27(月) 10:12:29どこの馬の骨が作ったかわからんデータなんぞ、
DTM音源を買ってまでして聴かないよ。
0892デフォルトの名無しさん
2006/03/27(月) 11:51:08困ったことにDTXは1つのパッドに設定できる音は5音までなのです。
パッドを1.2.3.4.5と続けて叩くと、C.D.E.F.G と発音される設定の上限を10音や20音とメモリを気にせずにプログラムしたいのですが・・・
このような動きのプログラムは難しいでしょうか?
0893デフォルトの名無しさん
NGNG日本語でおk
0894デフォルトの名無しさん
2006/03/27(月) 11:59:51ヒント:遅延評価
0895デフォルトの名無しさん
2006/03/27(月) 12:42:44簡単。
何番を鳴らすかのカウンタを作って、
叩かれるたびにインクリメント、
カウンタが最大値になったらもどしてやる。
0896デフォルトの名無しさん
2006/03/27(月) 16:10:57プログラミング初心者には難易度が高すぎるみたいですorz
0897デフォルトの名無しさん
2006/03/27(月) 16:46:401音鳴らすのがやっとのプログラム初心者でもできることなんだけど、
ボタンを押すと画面に表示される数字が増えていく、ってのは作れる?
それができたら、数字を表示する部分を音を鳴らすのに差し替えて。
0898デフォルトの名無しさん
2006/03/27(月) 17:30:16プログラミングテラムズカシス( ´Д`)
0899デフォルトの名無しさん
2006/03/27(月) 19:54:22変えたりしているでしょ?ああいうことってサウンドプログラムでも同じようなことって
できるのかな?
またクリエイティブのEAXを使えば高速化できてリアルタイム処理をするなんてことも可能?!
0900デフォルトの名無しさん
2006/03/27(月) 20:09:57・・・音声編集ソフトについてるの見たことないかね。
あと、リアルタイムとはなんだね。
0901デフォルトの名無しさん
2006/03/27(月) 20:11:32> あと、リアルタイムとはなんだね。
自分でマイクに向かってしゃべって、スピーカーからは音程の変えられた声が聞こえてくると
0902デフォルトの名無しさん
2006/03/27(月) 20:23:090903デフォルトの名無しさん
2006/03/27(月) 20:33:40プログラムでできるよ。EAXは関係ない。
>>902
以前、リアルタイムの解釈でもめたからって、初心者につっかかるなよ。
性格悪いな、おまえ。
0904デフォルトの名無しさん
2006/03/27(月) 20:35:110905デフォルトの名無しさん
2006/03/27(月) 20:38:47> プログラムでできるよ。EAXは関係ない。
っていうか、誰かそういうツールもう作ってたりするかな?
0906デフォルトの名無しさん
2006/03/27(月) 20:42:100907デフォルトの名無しさん
2006/03/27(月) 20:42:38http://sho1.jp/sho1/
買えば?
0908デフォルトの名無しさん
2006/03/27(月) 20:56:13よう見つけてくるなぁ(;´Д`)ハァハァ・・・
0909デフォルトの名無しさん
2006/03/27(月) 21:48:34本屋行ったら子供がこれで遊んでたんだ
0910デフォルトの名無しさん
2006/03/28(火) 10:59:40どの程度の機能が欲しいか考えるといいと思うよ。
ただ声が変わるだけでいいんだったら
ディストーション、リング・モジュレーション、ボコーダーなんかでできる。
声質を変化させないまま音程だけ変化させたいというんなら
もうちょっと難しいけどタイムワープ(名前あってる?)とか、そういうのが必要。
0911デフォルトの名無しさん
2006/03/28(火) 11:10:55音程を高くするのは、キーコン方式が一番楽だろうね
0912デフォルトの名無しさん
2006/03/28(火) 11:11:35音を細切れにして、時間軸方向に縮めて、それをたくさんならべて隙間を埋める。
0913デフォルトの名無しさん
2006/03/28(火) 12:29:340914デフォルトの名無しさん
2006/03/28(火) 12:56:50これ、簡単な処理のくせにそれなりにちゃんと聴こえるだよね。
FFTとか窓関数とかやってた苦労はなんなんだ、ってくらい。
0915デフォルトの名無しさん
2006/03/28(火) 13:36:34これだけでどれだけレス消費してるんだか
>>899はプログラム以前に普通に音声エフェクト処理の知識をつけたほうがいい
0917デフォルトの名無しさん
2006/03/28(火) 18:50:48適度に音が荒れるから元の声がくずれるしね
楽器には使いにくいけど
0918デフォルトの名無しさん
2006/03/28(火) 18:54:55でもソフトのもので(フリーの)ボイスチェンジャーは知らないなぁ。
別に作るのが難しいとかじゃなくてPCでボイスチェンジするメリットが
少ないからだと思うが…
0919デフォルトの名無しさん
2006/03/28(火) 20:13:26フリーのホストからフリーのVSTを呼んでもいいし。
0920910
2006/03/28(火) 23:08:27テレビで使ってるようなやつはたいていピッチシフターなのは確かですな。
ローランドのVT-1が使いやすい。
http://www.roland.co.jp/products/boss/VT-1.html
0921デフォルトの名無しさん
2006/03/29(水) 15:12:01これってサウンドプログラミングでも使えないかな?
複雑な残響音の反射などの計算って還元していけば
オブジェクト同士の相互作用と同じにみなせるでしょ?
0922デフォルトの名無しさん
2006/03/29(水) 15:39:03たぶん使える。Rayverbのインパルス生成みたいなのを
リアルタイムにやったらすごいだろうな。
0923デフォルトの名無しさん
2006/03/29(水) 18:00:30ttp://www.vector.co.jp/soft/win95/art/se383358.html
ピッチシフト以外のボイスチェンジャーソフト教えてエロい人
試してみたい。
0924デフォルトの名無しさん
2006/03/29(水) 18:36:41> 少し前に流行った「一青窈のキ〜を4つ下げると平井堅になる」を試してみたかったので
> 作ってみました。
トリビアでやってたやつか。
俺もちょっと興味あったんだよな。
0925デフォルトの名無しさん
2006/03/29(水) 19:08:360926デフォルトの名無しさん
2006/03/30(木) 15:16:36すごいな、グラフィックスの処理もサウンドの処理もこなす万能物理演算チップに
なり得る訳か>>PhysX
0927デフォルトの名無しさん
2006/03/31(金) 03:56:13あと、サウンドはやはりサウンドブラスターのX-Fiチップのような専門チップに任せたほうが賢い気がする。
0928デフォルトの名無しさん
2006/03/31(金) 13:25:32> サウンドはやはりサウンドブラスターのX-Fiチップのような専門チップに任せたほうが賢い気がする。
どうだろう。サウンドカードメーカーが用意した枠組みに従う限りは不要な気はするけど、
その枠組みを超えて独自の音源処理を施したい場合とかにはPhysXみたいな汎用演算
チップは重宝するようになるかも。要は生かすも殺すも使い手次第ということで。
0929デフォルトの名無しさん
2006/03/31(金) 18:18:48マイク端子やWaveファイルを入力として、その音声データから
電話のDTMF音を抜き出して、プッシュされた「1,2,3,4,#」などの
ボタンを識別したいのですが、参考になるサイトやライブラリなどは
ありませんでしょうか?
0930デフォルトの名無しさん
2006/03/31(金) 18:57:06無駄な労力だろうな。自分で実際にそのプッシュ音の波形を見て
特長見つけて判別するものつくりなさい。
0931デフォルトの名無しさん
2006/03/31(金) 20:26:26「DTMF 周波数」でググった後このスレを音程検出で検索すれ
0932デフォルトの名無しさん
2006/03/31(金) 20:39:12プッシュボタンに一切手を触れずに天気予報や電話案内に電話をかけている
様を見たときは戦慄を覚えたな。
0933デフォルトの名無しさん
2006/03/31(金) 21:01:56そんな昔でもないじゃん
0934デフォルトの名無しさん
2006/03/31(金) 21:27:000935デフォルトの名無しさん
2006/03/31(金) 23:02:240936デフォルトの名無しさん
2006/03/31(金) 23:10:28正弦波ふたつだけでできてるから検出はラクチン。
0937デフォルトの名無しさん
2006/03/32(土) 02:06:15実は1と7しか出来なかった罠。しかも1と7は1209Hzが共通だから
1人は同じ音しか出していない。まぁ、やれって言われたら無理だが。
0938929
2006/03/32(土) 06:22:44DTMF音の間が極端に短すぎると抜けが出るけど、
実用にはOKかな。
間が20msくらいが限界。リアルタイムにやるならね。
0939デフォルトの名無しさん
2006/04/02(日) 01:56:150940デフォルトの名無しさん
2006/04/02(日) 01:59:490941デフォルトの名無しさん
2006/04/02(日) 11:29:26「では”保証”できる遅延時間がどれだけか」という話は、リアルタイム性とは別の話だ。
”保証”出来ないシステムは、リアルタイムとは呼べない。
0942デフォルトの名無しさん
2006/04/02(日) 14:33:56そんなことぐらい誰でも知っていて、それでも使う意味を理解したらどうだいwww
0943デフォルトの名無しさん
2006/04/02(日) 14:45:20本当のリアルタイムシステム (英語に直すとひどい言葉になりそう) なんて、
2chで不特定多数と話す価値が無いだろうね。
殆どの人間はリアルタイムじゃない仕組みしか使っていないだろうし。
結局
擬似的なレベルしかできないし、むしろ擬似的なレベルで上手く回る仕組みのほうが重要。
>>938もリアルタイムシステムとは言っていない。「リアルタイムに感じる」との解釈が正解のような。
0944デフォルトの名無しさん
2006/04/02(日) 14:50:30そろそろこのあたりで時間と空間について語り合いませんか。
0945デフォルトの名無しさん
2006/04/02(日) 20:26:400946デフォルトの名無しさん
2006/04/03(月) 14:47:18>_<
0947デフォルトの名無しさん
2006/04/03(月) 17:28:210948デフォルトの名無しさん
2006/04/04(火) 09:15:27例えば、
「あ〜〜」って発音してる音声と
「い〜〜」って発音してる音声があって
それを1つのMIXしたデータAを用意
ここから、「い〜〜」と発音したデータを引いて差分から
「あ〜〜」と発音してるデータを作ることは無理なのでしょうか?
0949デフォルトの名無しさん
2006/04/04(火) 09:24:42発声タイミングが違えばなんとかなるかもしれない。
でも基本的にはすごく難しいと思っておこう。
0950デフォルトの名無しさん
2006/04/04(火) 16:19:140951デフォルトの名無しさん
2006/04/05(水) 06:04:04声が2つだったら少なくとも2チャンネル必要。
0952デフォルトの名無しさん
2006/04/08(土) 02:41:57あれって普通のマイクで録音した声をいじって
いかにも無線越しに聞きましたよ、と波形処理することって可能?
それとも一対の無線機買ってきてそいつに音を通さないと
それらしい効果は得られないのかな?
0953デフォルトの名無しさん
2006/04/08(土) 03:23:29一度ものすごく低いレートでエンコードしてみなよ
いいヒントになると思うよ
0954デフォルトの名無しさん
2006/04/08(土) 03:26:55それはローパスフィルターがらみじゃなかった?
0955デフォルトの名無しさん
2006/04/08(土) 04:19:530956デフォルトの名無しさん
2006/04/08(土) 04:31:27ピーク周波数を上下させると、昔のAMレシーバー(スケルチ回路?)みたいな音がする。
ちょっとだけディストーションかけるとマイクに口くっ付けて話しているような音になっていいかも。
荒めのピンクノイズを混ぜたり、いろいろ試してみるべし。
0957デフォルトの名無しさん
2006/04/08(土) 10:45:58>パトカー用無線(MPR-100)変復調方式
:PLL4相PSK 音声符号化方式
:ADM(適応デルタ変調)伝送速度
:16kbps フレーム同期信号
:11011000(正) 00100111(転)1フレーム320ビット構成
という事のようだから、サンプリング周波数を16kに減らしてから、ビット数を減らしてやれば良さそう。
あと、小信号時に8k 4k 2kHz を足してやるともっとそれらしくなると思う
0958デフォルトの名無しさん
2006/04/08(土) 14:43:280959デフォルトの名無しさん
2006/04/08(土) 19:43:45これ、シンプルでいい感じのライブラリだと思う。
0960デフォルトの名無しさん
2006/04/08(土) 20:28:33やっぱりアナログ時代の音だと思うよ。
0961デフォルトの名無しさん
2006/04/08(土) 20:54:34ハイパスフィルターやローパスフィルターはかけてみたがそれらしい音にはならなかったような・・・
わざと潰して歪ませてみたりするか
0962デフォルトの名無しさん
2006/04/09(日) 00:37:03既存のコードを使ってなんとかするだけならDTM板でやれ
0963デフォルトの名無しさん
2006/04/09(日) 01:28:03理論上は線形変換でもアナログ回路で実装すると非線形になって
(近似すれば線形)独特の音質が形成されてると考えるのはうがった見方かな?
0964デフォルトの名無しさん
2006/04/09(日) 02:57:010965デフォルトの名無しさん
2006/04/10(月) 08:15:440966デフォルトの名無しさん
2006/04/10(月) 12:31:51非線形にならない、というのがナイキスト理論。
0967デフォルトの名無しさん
2006/04/10(月) 12:36:46音量が大きいと AM変調の場合、決められた出力を超える
0968デフォルトの名無しさん
2006/04/10(月) 12:44:10一般的な無線の変調ってどっちだっけ?
0969デフォルトの名無しさん
2006/04/10(月) 20:54:49それは使う音量を間違えてるんだよ。正常動作範囲内だったら非線形。
でも965で言いたかったことが分かった。
ただ、警察ドラマみたいに無線機に向かって怒鳴ったりしたら
変調させる前にクリップするんじゃないかな。
そこで非線形が生まれるのか。
>>967
CB無線はAM方式だったはず。
もっと高い周波数だとFM使うことが多いのかな。
0970デフォルトの名無しさん
2006/04/10(月) 21:33:25> 音量が大きいと AM変調の場合、決められた出力を超える
つまり音が全体的に過大入力になることで歪み、無線独特の音質になったってことかな?
逆に入力の音量が正常なら、AM変調の無線でもAMラジオ並の音質は確保できるということか?
0971デフォルトの名無しさん
2006/04/10(月) 23:59:200972デフォルトの名無しさん
2006/04/11(火) 18:45:58頭悪
つか、定格以上になる以前にクリップするだろ普通
0973デフォルトの名無しさん
2006/04/11(火) 18:51:580974デフォルトの名無しさん
2006/04/11(火) 19:11:560975デフォルトの名無しさん
2006/04/11(火) 19:18:00でも無線みたいな音質にはならないからクリッピングが原因とは想像しがたいが・・・
0976デフォルトの名無しさん
2006/04/11(火) 19:39:150977デフォルトの名無しさん
2006/04/11(火) 20:06:24これでも読んどけ
あと、実際は警察無線がFMだからFMにするってのは表現上は良いとも限らんからな
SSBが一番
0978デフォルトの名無しさん
2006/04/11(火) 20:08:340979デフォルトの名無しさん
2006/04/11(火) 20:47:560980デフォルトの名無しさん
2006/04/11(火) 21:39:19警察無線ってFMラジオ並みの音質あったっか?
0981デフォルトの名無しさん
2006/04/11(火) 21:55:22音質は、FM/AMの方式で決まるんじゃなくて、どれだけ帯域を取っているかの方だろ
0982デフォルトの名無しさん
2006/04/11(火) 22:02:560983デフォルトの名無しさん
2006/04/11(火) 22:28:29ttp://www.ntt-east.co.jp/tasc/gijutu/noise/20.wav
単純に帯域だけで論じられるものかね?
ちなみに以下はデジタル無線の音声
ttp://www.icom.co.jp/beacon/technical/ama_dig/me.wav
0984デフォルトの名無しさん
2006/04/14(金) 09:12:09録音方式と言うのがいろいろ開発されてて、今のところ一番普及してるもので最限度が高いものが
人間の頭の模型の量耳の位置にマイクをつける方法というのがある
耳に直接入ってくる音と耳の中でこだまする音の両方で人間が空間を認識してるからこれが一番
効果があるらしい
普通に録音したものを擬似的にこういった加工はできないだろうか
一番興味があるのはホロなんとかってある科学者が録音した音があってこの録音方式の際限度は
上で書いた頭の模型の非ではないくらい忠実に再現できる
実際に検索すればころがってるのでヘッドホンつけて聞いてみるとわかる
ただこの科学者、世界が滅亡するとかいう理由で録音方法を死ぬまで誰にも言わなかったから
謎のままなんだそうだ
どういう構造で立体認識をする音になるのかがわかればこの録音方式の解明にもなるんじゃないだろうか
そういうことって可能なのかね?
0985デフォルトの名無しさん
2006/04/14(金) 10:15:51適当な内容で長文かくなよ〜。
ホロフォニックよりアイソフォニックとか、優れた技術はあるだろ〜。
頭の模型だけじゃだめで、胸も必須だぞ〜。そこの反響がキモなんだから。
録音方法を死ぬまで誰にも言わなかったってのはウソ。
米軍が権利を買い取ってるし、録音に参加した人も多数。
録音中の黒い布の中には、精巧な上半身つきダミーヘッドが
あっただけだそうだ。当時のダミーヘッドはそれこそ頭だけだったので、
それだけでも革新的なんだよ。
0986デフォルトの名無しさん
2006/04/14(金) 11:51:36説明だけ聞くとえらいトンデモ発明に聞こえるんだけど
実際聞くとビビるな。
>>984
頭部伝達関数とかでググるよろし。
0987デフォルトの名無しさん
2006/04/14(金) 22:03:52立体音響2
http://pc8.2ch.net/test/read.cgi/dtm/1142360597/
0988デフォルトの名無しさん
2006/04/15(土) 16:24:38適当なのはあんた
isophonicなんてhorophonicsの比じゃない
聞いてみな
比べ物にならんよ
0989デフォルトの名無しさん
2006/04/17(月) 21:34:160990デフォルトの名無しさん
2006/04/21(金) 05:18:590991デフォルトの名無しさん
2006/04/22(土) 12:06:110992デフォルトの名無しさん
2006/04/22(土) 12:14:010993デフォルトの名無しさん
2006/04/23(日) 14:05:07)
_ ノ 出席番号3番
_,, ---- 、_ | | /> ⌒`'⌒ヽ パイパンの
_,,-ァ''" ヽ、| レ'∠_, ) 神楽坂明日菜様が
/ /⌒"''ー 、 " 「 ⌒ ヽ、/)、 ⌒ヽ 3getした!
___/ ヽ ヽ、 { , 勹 `、ヽ )
,ン''フ {~ ⌒ヽ、 ヽ、`ヽ\/ ノ 、、 \\ ⌒Y⌒Y⌒
、/ / { ヽヽ、 ヽ、 \ ヽ、 ヽ、`ヽ i i トー 、ニニニ`、_
/ \/ / i ハ ヽ、 ヽ、、ヽ、 >、>、 ヽ`ヽ、 l\ \\`ー 、二二_ー‐‐‐‐‐‐‐‐‐
/ iニニ/ i | | ヽ ヽ`ヽミ >へ、,,_ヽ、ヽYヽヽ } ヽ ヽ \::.. \ ̄ ̄ ̄ ̄ ̄
./ l イ| ト| \ヽ / >イ)⌒ト`l |ヽ))) | ヽ \ \::.. \ /
/ |.l ハ | |、_,,,,,,__ \ ヽ、, 〉 l レノ/ \ ヽ \::::.... ヽ、/::::::::
/ |l ~ヽ .トイ、 i个、 /// レ 「ヽl _,,-‐ヽ、 `ー、 ヽ、::::::..... `"''
{ !. トヾ、ヽヽヽ)i , -、 》⌒>' / ヽ、、 二二ニニニニニニニ
| ト、!ト`ヽ ` < ィ ) / 〃/ / __________\_/::::::::\:::::::::::::::::::
| ト\ヽ \,_ `ヽン ,イ// / i | ,,,,---ヽ :::::::;`> 、;;;;;;;;
| ハヽ `ヽ\`二ニ='ツク ,/./ ハ l (二" `ヽ<
|l ヽ_` (三三三ニア/ | i |  ̄"""'''''''''----`----、
/ニニニニニニ===ー''ァ彡ソ、 ノ i ___,,,,-----
_,-ァ/'''/,イ ヽ<ー'''''""コ ヽ
サウンドプログラミング3
http://pc8.2ch.net/test/read.cgi/tech/1145573675/
レス数が950を超えています。1000を超えると書き込みができなくなります。