サウンドプログラミング2

このエントリーをはてなブックマークに追加
アナログ音源やFM音源などのエミュレートや、
MODトラッカー,MIDIシーケンサの技術的な話題に関するスレ

過去スレ

サウンドプログラミング
http://pc5.2ch.net/test/read.cgi/tech/996171508/
2デフォルトの名無しさん:04/07/29 07:37
新スレ立て乙
       。 ◇◎。o.:O☆οo.
       。:゜ ◎::O☆∧_∧☆。∂:o゜
       /。○。 ∂(*゚ー゚ )O◇。☆
     /  ◎| ̄ ̄∪ ̄∪ ̄ ̄ ̄|:◎:
    /    ☆。|..  新スレおめ  .|☆
  ▼       。○..io.。◇.☆____| 。.:
∠▲―――――☆ :∂io☆ ゜◎∂:.
4デフォルトの名無しさん:04/07/30 00:05
ボリュームコントロールのように出力する全ての音をいじるにはどうすればいいの?
x68sound.dllに興味を持ったんだけど
この音源のレジスタマップとか紹介してるサイトないかな?

当時はPC98人間だったんで手持ち資料が無い、
でもめっさ面白そうなんで。

サンプルプログラム読めばある程度はわかるんだけどね。
6デフォルトの名無しさん:04/07/30 02:07
age
7デフォルトの名無しさん:04/07/30 02:26
これって参考になりますかね?
ttp://www02.so-net.ne.jp/~sw7h/x68k/hootknowhow.html
YM2151 と datasheet でぐぐったら
データシートがの pdf が出てきますた。
105:04/07/30 02:54
>>7
残念ながら既知だ。
>>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をスタート
115:04/07/30 02:55
音色系
[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
>>10
>>8 は最後の方まで読んだ?
135:04/07/30 03:05
>>12
読んだけどよくわからん。


すまん、データシートはあったぽい…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

というわけでちょっとやってみるか
X68Soundを使ったVSTiがあったな、VSTiに興味ないのでそれ以上知らないが
保守あげ

ついでに質問
MP3とかoggのエンコードとかもこのスレであってる?
>>16
合ってるよー
>>17 ありがと

基本的なことから聞きたいんですけど、よくエンコーダによって
音質が良いとか悪いとか言うじゃないすか。

具体的にはどの部分が影響でちゃうんですかね。
ビットレートだけの問題と違うのかなーって思うんです。
MP3を例に挙げます。

・ヒトの耳には聞こえやすい周波数と聞こえ難い周波数というのがあって、
実験的に調べられた結果ラウドネス曲線という形で表すことができることが
知られています。
・ヒトの耳は大きな音があるとその周波数付近の一定範囲の小さな音は知覚
しにくいという特性が知られています。これを周波数マスキングと言います。
・ヒトの耳は大きな音があるとその時間前後の一定範囲の小さな音は知覚
しにくいという特性が知られています。これを時間マスキングと言います。

これらの特性を利用して、ヒトが聞こえ難いとされる部分をカットしても
聴者にとってあまり問題にならない、ということから、MP3エンコードでは
こういった操作がなされます。
さて、音質との関係ですが、この部分の実装がその音質とかかわっている
のではないかと思います。
ヒトの特性を利用したものというのは結構感覚的・実験的で、数学的には
まだ解明されていない部分でもあるので実装が異なってしまうのでしょう。

>>19

いやーなんともご丁寧にご説明ありがとうございます。
調べる手がかりをたくさんいただけましたこと、深く感謝いたします。
2119:04/08/27 19:52
余談ですが、
このあたりのことを利用して透かしを埋め込むアルゴリズムもあります。
でも、そういうアルゴリズムはMP3には使えませんね^^;
非常に良スレあげ
画像とオーディオ・サウンドを比べたら圧倒的にオーディオ・サウンド関連は
研究している人も文献も少ないね。
やはりゲームなどで重要視されているのが画像だから、興味を持つ人が少ない
のだろうか。
Linuxサウンドプログラミング発見
ttp://adlib.rsch.tuis.ac.jp/~akira/unix/ossprog/
>>23
ゲームでいうなら、ストリーミング垂れ流しで発展が止まってしまってるし・・・
それで98%のゲームは困らないからな。
たとえばCDからのリッピングは、サウンドプログラミングの
範疇を超えてしまうよね?

>>28
データ読み出すだけだし。
いんじゃない?そんなこといったらmidiだってサウンドプログラムかどうか
微妙
ネタが少ないんだから、幅を広げないとね
>>29

データの吸い出し方にもいろいろあるじゃん?
ちなみに>>29はどんな方法でやっとります?
むしろ新しい音源を開発
エミュレートにとどまらず、なんか奇妙なモデル音源をでっちあげてしまうのは面白いな
それいい!

あと興味あるのは、リアルタイムボイスチェンジャー みたいのできないかな。
ボイスチャット増えてきているし、そういう遊びがあってもいいかも。
音源名は Gian Recital Made-in 2ch で
google イメージ検索で「犯罪 写真」と検索してみろ!
一個目! 一個目!!!
で?
有名じゃんそんなん。
「オナニー やり方」と同じくらい有名だな
41デフォルトの名無しさん:04/09/15 00:58:58
音量と周波数をリアルタイムで表示する方法ってどうすればいいんですか?
42デフォルトの名無しさん:04/09/15 01:03:29
>>41
まず、サウンドデータを小さなフレームに分割し、
音量は一つのフレーム内の最大の値を検索し、
周波数は一つのフレーム全体をFFTして求める。
そしてそのフレームをサウンドデバイスに流す。
43デフォルトの名無しさん:04/09/15 07:25:59
音量はRMSじゃないとやだー
44デフォルトの名無しさん:04/09/16 00:36:50
一曲全体の周波数特性を計算するのってどうすればよいのでしょうか?
いまは4096サンプル毎にFFTして、フレーム毎の周波数特性は取れて
いるのですが、それを一曲全体に応用するところで行き詰ってます。

考え方とかまずはこの本っていうのがあれば教えてもらえないでしょうか?
45デフォルトの名無しさん:04/09/16 06:40:42
サンプリング範囲を曲全体にすればいいがな
46デフォルトの名無しさん:04/09/16 10:04:34
対数時間だからすぐ終わるかな?
窓関数外すのも忘れない。
サンプルはこれでいいかと。
|<---|<-----曲----->|--->|
`----------2^n---------/
47デフォルトの名無しさん:04/09/16 10:44:36
曲全体を1度でFFTするようにもしてみたのですが、数分の曲をやっても
1Hz以下のやたら微小な周波数に分解されてしまってよくある波形編集
ソフトみたいにはグラフが描けませんでした。
周波数分解能は10Hz程度でよいと思って4096サンプルでFFTしてた
んですが、曲全体まるごとFFTじゃなきゃダメでしょうか?

>>46
窓関数はかけっぱなしだったので、窓関数を外してリトライしてみます。
48デフォルトの名無しさん:04/09/16 10:54:47
>>47
曲全体のFFTにあまり意味は無いのではありませんか?
もし、意味が求めるとすれば、例えば、0-20kHzまでの区間を1Hz単位のビンに
わけて、ヒストグラムにするとかすれば曲全体の周波数の傾向がわかると思い
ますが…
4947:04/09/16 22:34:06
>>48
最終的には曲の任意範囲の周波数を計算したいと思ってます。
曲全体でやっているのはSoundForgeをお手本としてグラフがあっているか
どうかを見比べているので、まずは曲全体をチャレンジしています。

>>46
やっぱり曲全体をFFTすると出てくる周波数の分解能が高すぎて
グラフを書くとわけわからなくなってしまいました。

基礎を固めないとだめだなあと思ったので、いまデジタル信号処理の
勉強をしてます。
50デフォルトの名無しさん:04/09/17 05:16:36
なんだか嫌な予感がするんだが...
51デフォルトの名無しさん:04/09/24 06:49:49
どっちにしても横軸を対数にするなら、必要な分解能以上にある部分、必要な分解能が無い部分が出来てくる
そこらへんを上手に処理出来ないといけないよね。
52デフォルトの名無しさん:04/09/28 23:52:18
イコライザの原理ってFFTして出てきた周波数毎に音量上げる・・・
ってな具合なわけ?
53デフォルトの名無しさん:04/09/29 00:04:07
確かに某 日→英→日みたいで不安だな。
54デフォルトの名無しさん:04/09/29 23:11:49
>52
「周波数毎に」という表現に不安を覚える。
「周辺の帯域を持ち上げる」とかかな?
まぁ、ようはなだらかな山/谷型に操作する。
55デフォルトの名無しさん:04/09/30 10:43:21
LPFの応用で、とある周波数帯だけ増幅するフィルタとかってあり得る?
56デフォルトの名無しさん:04/09/30 10:57:18
BPFじゃん。
57デフォルトの名無しさん:04/09/30 11:15:18
元信号とBPF結果を足し合わせれば増幅になるんかな?
タコな質問だったらスマヌ
58デフォルトの名無しさん:04/09/30 11:25:25
>>57
足すより定数倍
59デフォルトの名無しさん:04/09/30 16:31:01
まず、FFTして周波数領域を弄って逆FFTすれば好みの周波数特性を作れるのは正しいが、
それを短時間FFTでする事は出来ない。下降すると区間のつながりが保てないからだ。

つまり全部をサンプルして、全部を一度にFFTするならOKって事だ。



ある領域だけ増幅する事は2次のフィルター(IIR)を使う事が多い。
LC同調回路を模型化したものだが、
判りやすくいうと、 Q/f0の同じ
 BPF+LPF+HPFの3つのフィルタに分解して再度合成すると フラットな信号になる。
 そこで、3つに分けた後、ゲインを変えて合成すると色々と有用なフィルターが出来る。

BPFだけゲインを変化させると、その周波数帯だけゲインを上下出来る。
俺が、DSPでイコライザーのようなものを作る時は大抵このスタイル。
60デフォルトの名無しさん:04/10/05 02:20:51
着メロのMFiフォーマットを解説した資料ってあります?
61デフォルトの名無しさん:04/10/11 07:48:17
保守
62デフォルトの名無しさん:04/10/18 22:17:55
過去ログ読みたい あげ
63デフォルトの名無しさん:04/10/26 00:27:50
サウンド関係のAPIでw、indows対応のオープンソースなものってありますか?
portaudioを調べてみたのですが、資料がすくないので。
64デフォルトの名無しさん:04/10/26 00:33:41
>>63
win32api
directsound
65デフォルトの名無しさん:04/10/26 04:13:08
Windows版のESounDサーバってあるの?
66デフォルトの名無しさん:04/11/01 00:19:20
>>5
なんか偉そうだなてめ
いきなり態度変えやがって
67デフォルトの名無しさん:04/11/01 00:30:19
>>66
よくわからんが、超遅レス?
68仕様書無し:04/11/01 00:44:23
フリーソフトを作りたいので、プログラマーを募集します。
報酬は何もありません。
必要なスキルはC言語(GCC) MinGW GTK+ です。
少なくとも一人は、windowsでのリアルタイムプログラミング
(一定の時間間隔でポート出力する)ことができる人が必要です。

面子が揃ったら、そのままこのスレで開発連絡を行います。
69仕様書無し:04/11/01 00:45:22
70デフォルトの名無しさん:04/11/02 10:51:15
wavファイルの音質を削って軽くする方法ってないかな。
ファイル形式は変えずに。
71デフォルトの名無しさん:04/11/02 10:57:23
>>70
ひょっとして馬鹿?
72デフォルトの名無しさん:04/11/02 11:31:05
71>>て、言われることは無理なのか。
いや馬鹿ですよどうせ
73デフォルトの名無しさん:04/11/02 11:36:19
>>72
どうして自分で調べないんだ?この大馬鹿は
少し調べりゃわかるだろ
74デフォルトの名無しさん:04/11/02 12:35:18
>>70
色々ある
bit数を16->8にするとか
周波数を落とすとか
75デフォルトの名無しさん:04/11/02 14:11:29
>>72 今時低速回線なので・・。DSLが羨ましい。
>>74 なるほど、アリガトdd です。
76デフォルトの名無しさん:04/11/02 14:18:19
75ですがtimidi95ってソフトで実現できました。
一応載せときました。では消えます...。
77デフォルトの名無しさん:04/11/02 14:23:25
はぁ?
78デフォルトの名無しさん:04/11/02 14:42:33
wavの中に適当なcodecを仕込めば簡単に小さくなるが。
ファイル形式はwavのままだし。
79デフォルトの名無しさん:04/11/06 00:28:51
↑馬鹿?
そりゃファイル拡張子はwavのままだろうが
形式は変わるだろ
80デフォルトの名無しさん:04/11/06 11:23:40
mp3も拡張子wavに変えてwav形式だっ!って言いそうな勢いだなw
81デフォルトの名無しさん:04/11/06 12:23:17
ビットレート、サンプリングレート、チャンネル数変えたら
同じファイル形式とは思わないけど、質問者はそれで満足してるようだし
ひょっとするとファイル形式は変えずに=拡張子変えずになのかもね。
それならMP3形式WAVEもありかも
82デフォルトの名無しさん:04/11/13 23:45:05
Windowsで、midiStreamOut で演奏が終るのをCreateEventで取得しようとすると、
イベント発生にやたらと時間がかかるのですが、どうすれば演奏終了を瞬時に
取得できるかどうかを知るにはココへ書き込めば解かりますか?
83デフォルトの名無しさん:04/11/14 06:52:53
演奏が終わるのを知りたいとなると難しいでしょ。
だって、音には理論的には終わりが無いんだから。
84デフォルトの名無しさん:04/11/15 01:24:10
それじゃ、メディアプレイヤーはどうやってリピートしているの?
85デフォルトの名無しさん:04/11/15 22:50:04
>>84
音声データの終わり
86デフォルトの名無しさん:04/11/15 23:24:13
最後の命令の処理が終ったら、演奏が終った事になるのでは?
midiStreamOut は駄目っぽい。
みんな別スレッドで進行を管理している。
87デフォルトの名無しさん:04/11/24 09:15:44
質問ですが、複数のアプリケーションでWAVEデータを同時再生すると
Windows側でミキシングしてるくれる様ですが
1つのアプリケーションで複数のWaveを同時再生したい場合は
waveOutWrite前に自前で加算合成して渡すしかないのでしょうか?
それとも自分のアプリケーションのみでWindows側に合成を任せる事が出来るのでしょうか?
88デフォルトの名無しさん:04/11/24 11:55:25
DirectSoundを使えば簡単にミキシングできる
8987:04/11/24 16:07:52
>>88
DirectSoundを使わないと不可能なのでしょうか?
87では書いていませんでしたが元々低レベルAPIを使い出したのは
DirectSoundを使わないで再生するのが目的だったので、
もし、DirectSoundを使わない方法がありましたら
そちらの方法で実装したいと考えているのですが…。
90デフォルトの名無しさん:04/11/24 18:36:06
http://www.codeproject.com/audio/wavefiles.asp
この辺を見ると、Win2K/XPでは複数のアプリケーションが同一のWaveOutデバイスを
開くことが可能で、カーネルミキシングとやらをやってくれるようです。
単一アプリで、同一のWaveOutデバイスを複数開くことが可能ならば出来るかも(未確認)。

それ以外では自前でミキシングする他ないかと…。
FM音源エミュレータとかのソースを参考になるかと思います。
91デフォルトの名無しさん:04/11/25 15:45:13
自前で合成した方が楽だと思うが 8bitで処理してるわけじゃないんだろ?
9287:04/11/25 22:32:00
>>90
ありがとうございます。
暫く自宅に帰れないので確認できないのですが、後で見てみます。
しかし、対応してるのは2000以降ですか。ちょっと予定外でした…。

>>91
現在は自前でMIXしています。
OS側でMIX出来るのなら、片方だけ再生を止めたい時などに便利そうだったので…。
93デフォルトの名無しさん:04/11/28 23:26:05
IMA ADPCMのエンコード/デコードアルゴリズム(プログラムソース可)はどこかにありませんか?
94デフォルトの名無しさん:04/11/29 03:03:48
95デフォルトの名無しさん:04/11/29 10:43:31
>94 ありがとうございます
96デフォルトの名無しさん:04/11/29 20:51:47
簡単なことで質問申し訳ないんですが、音声処理で、ある音声データから特定の単語を認識したい(ワードスポッティングしたい)場合、連続DPマッチングがよくわからないです|||orz
出来ればプログラム例などをのせていただければ幸いですが、よければどんなアルゴリズムかだけでも教えてほしいですTT;
97デフォルトの名無しさん:04/11/30 16:28:20
掲示板でさらっと答える内容には見えな・・・
98デフォルトの名無しさん:04/12/01 00:55:11
>96 専門書かって嫁
99デフォルトの名無しさん:04/12/02 16:47:25
C#でもサウンドプログラミングできるのか?
100デフォルトの名無しさん:04/12/02 16:56:46
101ど素人ですが:04/12/05 23:56:56
サウンドとは関係の話から始めますが、どうかよろしく。
起動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 を使っています。
サウンド本来の質問ではなく、申し訳ありませんが、他に適当なスレもないようなので
おすがりいたします。
102デフォルトの名無しさん:04/12/06 01:34:45
>>101
ふざけた態度が気に入らん。
103101:04/12/06 13:08:57
>>102
なら、自分でぐぐろうと、あれこれ見てまして、初めて知ったのは、
CD-DA フォーマットってのは、一番古い仕様だったてこと。びっくり。
古いせいか、説明は既知のように書かれていて、中身に触れているのは
ありません。自分で作った absolute read でも、Disk Editor でも
読めません。0 - 15 sector には、何もないのでしょうか。
104デフォルトの名無しさん:04/12/06 14:15:32
DirectX
105101:04/12/06 18:44:41
回答まだですかね。こっちも急いでるんで。
それとも知識が無い人ばかりなのでしょうか。
106101:04/12/06 18:53:44
>>105
貴方誰ですか?
勝手に騙らないでください!
107デフォルトの名無しさん:04/12/06 18:53:55
>>101
簡単な方法はないぞアホ。
bootableCDなら書込みだろ、読み込んでどうするんだボケ。
108デフォルトの名無しさん:04/12/06 20:01:20
>>105
ワロタ
109ど素人の101:04/12/07 14:37:37
>>104
ありがとうございます。調べます。
>>107
アフォでもボケでも気にしませんが、起動CD作るにはあっちのCD、こっちのCD
読んで、セクタ取りだし、CDイメージ作って書き込みましたです。
しかし、98ではなかなかのような感触があるのが分かりましたね。
>>105,>>105 なかなか面白い方がここにはおられる。真性の101は急いでは
おりません。98が駄目ならxpでやるまでと覚悟しています。

code project の記事は勉強になりました。また参考URLがありましたら、
ご紹介ください。
110デフォルトの名無しさん:04/12/07 23:20:04
SteinbergのASIOのホスト側のサンプルコードが少ない(付属している1つしか知らない)
のですが、どこかにおいてありませんか?
111デフォルトの名無しさん:04/12/08 11:10:29
112デフォルトの名無しさん:04/12/10 01:36:30
fmodについて質問です。
mp3を再生中に、

float *spectrum;
spectrum=FSOUND_DSP_GetSpectrum();
if (!spectrum)
{
printf("だめぽ");
return;
}
printf("OK--%p",spectrum);

どうしても、だめぽになります。
先に何か設定しなければならない事があるのでしょうか?
113デフォルトの名無しさん:04/12/10 11:12:10
Remarks
Note 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.
114デフォルトの名無しさん:04/12/18 02:36:29
質問っす。

ちょっとしたソフトシンセ作ってるんだけど、
単音で16ビット出力するモジュールを作ってから
「あとは多重動作させてしてミックスするだけ〜」
というところで、ミックスってどうやる?
ってな感じで詰まってしまいました。

単純に加算していくと簡単にクリッピングっつーか
オーバーフローしちゃうのでなんか別の方法考えなきゃダメっすか?

ちなみに1音あたりの解像度を下げるのはちょっとツライっす。
それだと16音出すと1音あたり12ビットになっちゃう。
115デフォルトの名無しさん:04/12/18 04:20:04
いまどきのCPUだったら整数で小細工するより基本浮動小数でDSP処理して
最後にまとめて整数にするほうが効率よくないかい?
116デフォルトの名無しさん:04/12/18 06:09:49
推測で者をいうなあふぉ
117デフォルトの名無しさん:04/12/18 09:39:31
ハードウェアのアナログミキサーだと最後は全部足して終わりですね。
クリッピングしちゃうのはユーザーが気をつければいい、というスタンス。
118デフォルトの名無しさん:04/12/18 09:52:53
音量も含め、人間の感覚量はほぼ対数に比例するから、
浮動小数点が有利なのは明らかだろう。
119デフォルトの名無しさん:04/12/18 10:44:37
そりゃそうだ。フィルター一つ作ったって固定少数点だと面倒な事このうえない

>>114
結局理論上できないことは出来ない。足してクリップするか、自動ゲイン調整して誤魔化すしかない
120デフォルトの名無しさん:04/12/18 13:42:06
どなたかMIDIをMP3に変えるフリーソフトをご存知ないでしょうか。
121デフォルトの名無しさん:04/12/18 14:00:33
Visual C++6.0で作る MP3 Playerプログラミング
がどこにも在庫がないけど、どこかに売ってないかな
122デフォルトの名無しさん:04/12/18 14:26:06
つーかそんな本読む価値無いだろ
123デフォルトの名無しさん:04/12/18 15:21:46
これか…。
ttp://www.ai-pub.co.jp/contents/book/prog/vc6_mp3.html

辛うじて3章4章が使えそうなぐらいで、あとは使えなさそうだな。
普通にネットで調べた方がいいと思われ。
124デフォルトの名無しさん:04/12/18 15:39:53
>>120
そうだな…言ってみれば、「板違い」ってヤツだな。
125115:04/12/18 15:45:39
すべて浮動小数でやってみた。
速度的には固定小数点でやっていたときより劣るものの、
音質の向上を考えると満足できる結果となりました。

ありがとうございました。
126デフォルトの名無しさん:04/12/18 15:48:33
>>123
ttp://www.geocities.jp/bywnn498/mp3/
ここで十分じゃなかろうか…
127デフォルトの名無しさん:04/12/18 19:56:34
>>126
こんなに詳しくかいてあるとは思わなかった。
Visual C++6.0で作る MP3 Playerプログラミング
の独自のguiってどうやって実装するのか誰かしりませんか?
特に今はSKINというファイルをつかって自由に外観を変えることができるのがあるけど、
あれはどうやって実現しているのか不思議。
自分はbitmapをつかってguiを変更できるコントロールはCBitmapButtonぐらいしかしらないし。
128デフォルトの名無しさん:04/12/18 20:02:28
知るか
129デフォルトの名無しさん:04/12/18 20:02:28
>>127
SetWindowRgnとか検索しる
130114:04/12/19 00:33:38
とりあえず浮動小数点でやってみます。
みんなして回答ありがd
131デフォルトの名無しさん:04/12/19 01:12:52
完成したら音聞かせてねん。
132デフォルトの名無しさん:04/12/20 21:15:26
初歩的なプログラミングなのですが、お助けください。
種々の波形関数(正弦波、鋸歯状波、矩形波・・・)を
WAVファイルに書き出すプログラムを作成しようとしています。
周波数、音の強さをオプション指定としたいのですが、
参考となる書籍などがあれば、教えていただけませんでしょうか。
133132:04/12/20 21:16:39
環境はVC.netになります。
134デフォルトの名無しさん:04/12/20 21:58:05
>>132
Clear[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]]
135大原ゆき:04/12/20 22:01:29
>>132
いきなりC/C++に落とすよりも、MathematicaやMatLabなどで実験してからC/C++に
落とした方が、綺麗にまとまったプログラムが書けますよ。
もし貴方が大学生ならMathematicaくらいなら学校のPCに入っているのでは
ありませんか。
入っていなければ仕方がありませんが…
136132:04/12/20 23:13:11
レスありがとうございます。
大学生です。
しかしながら、学校のPCにはMathematicaもMatLabも
入ってないです。あるのは、Mapleだけです。
なんとかならないですかね…。
137デフォルトの名無しさん:04/12/21 00:19:27
プログラミングの勉強がしたいのか、単純な波形をWAVファイルに出力したいのか どっち?
後者ならWaveGeneを使うとか
138デフォルトの名無しさん:04/12/21 00:28:15
前者でこのスレにこられても…。
139138:04/12/21 00:29:13
逆だ…orz
× 前者でこのスレにこられても…。
○ 後者でこのスレにこられても…。
140デフォルトの名無しさん:04/12/21 02:35:48
自宅PCにMatlabとちょっと互換性のあるoctaveを入れるのも有りかも。
141132:04/12/21 10:12:45
レス、ありがとうございます。
プログラミングの勉強です。C/C++をベースで。
そのあと、拡張していきたいと考えていまして・・・。
とりあえず、上の課題が出来るようになりたいのです。
よろしくお願い致します。
142デフォルトの名無しさん:04/12/21 12:29:06
143デフォルトの名無しさん:04/12/21 15:46:41
>>132 宿題かよ 宿題スレ行け つうかMSDN見れ むしろ検索しろ
http://www.kk.iij4u.or.jp/~kondo/wave/
144デフォルトの名無しさん:04/12/21 21:11:03
>>141
で、何が知りたいんだ?
WAVファイルのフォーマットとか?
145デフォルトの名無しさん:04/12/22 01:42:20
単純波形だろ。
正弦波だと V=sin(t) とか 鋸波だと V=(t%2)-1 とか、
全然チョロいだろ。

というか、
あとあと拡張したいというレベルであればなおさらのこと
こんなところで質問してちゃダメ。
手順を踏んで設計してみることだね。

ちなみに俺は昔作ったことがあるぞ。
デューティ比とかどんどん機能追加したんだけど、
コマンドラインプログラムではかなり空しくなる。
もう面倒で面倒で。
146デフォルトの名無しさん:04/12/22 23:06:47
Windowsにて、メディアプレイヤーなどで再生中の音を
自分のプログラムでキャプチャすることは可能?
147デフォルトの名無しさん:04/12/22 23:52:51
サウンドレコーダとボリュームコントロール弄ってイロイロ試してみれ
148デフォルトの名無しさん:04/12/23 19:28:43
誤差のないデータを録るのに、ドライバを作ってそこでキャプチャしてるソフトもある。
149デフォルトの名無しさん:04/12/24 18:20:53
>>132
正弦波は簡単だけど、鋸歯状波、矩形波は難しいよ。
もちろん、ピッタリ割り切れる周波数なら、簡易に、作ればいいんだけど
150デフォルトの名無しさん:04/12/24 19:06:53
>>149
単なる波の足しあわせに過ぎないよ?
151デフォルトの名無しさん:04/12/24 19:42:41
理解が足りないうちは、1波形がnサンプルでしか作れなかったりするな(nは自然数)。
任意の周波数を出せるようになれば進歩。

それにより発生する折り返しノイズをオーバーサンプリングその他で軽減することを学べれば、
単純な波形の生成に関しての基礎は十分。
152デフォルトの名無しさん:04/12/24 19:47:54
質問した奴はもう来ないだろうし、この話はもういいんじゃないか?
153デフォルトの名無しさん:04/12/25 00:03:07
足し合わせなんてすごい贅沢なアルゴリズムですね。
154デフォルトの名無しさん:04/12/25 00:07:40
>>153
アナログ的にはね^^;
ディジタルだったらもっと簡単にできるねー にゃんにゃん
155デフォルトの名無しさん:04/12/25 09:44:04
確かに >>145 のようなところから出発すると、矩形・三角は難しいだろうな。

周波数スイープすると、シュワンシュワン
156デフォルトの名無しさん:04/12/25 10:09:14
漏れは矩形の作成を単純計算で行う所から出発したが、
ガビガビする問題はすぐに独自理論で解決した。
157デフォルトの名無しさん:04/12/25 11:05:30
>>156
独自理論おしえてー にゃんにゃん
158デフォルトの名無しさん:04/12/25 11:42:40
端数切り捨て。
159デフォルトの名無しさん:04/12/25 12:13:33
矩形波って四角の波だすだけじゃないの?

周波数でうまくわりきれないのも、誤差拡散みたいなことするだけじゃないの?

サウンドなんてやった事ないから、とんでもなく的外れなこといってるかも。
いろいろ教えてくれ。
160デフォルトの名無しさん:04/12/25 12:55:38
(1) 量子化ノイズ : 音量変換、画像色数変換
(2) エリアシングノイズ(折り返しノイズ) : 音程変換、画像サイズ変換

誤差拡散は(1)対策として使う。
今話してるガビガビは(2)。画像でいうならモアレが見える状態。
これへの対策はアンチエリアシングを使う。
161デフォルトの名無しさん:04/12/25 13:04:53
補足。(1)(2)どちらも対象はおもに縮小処理。
同じサンプリング周波数のもとで、もっと高い音程にする、ってのも縮小と同じこと。
162デフォルトの名無しさん:04/12/25 23:43:40
163デフォルトの名無しさん:04/12/26 17:26:42
あんまり深く考えないで矩形波出力アルゴリズム作ってみた
例えば半波長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
もちろん台形波に近くなっちゃうけど。
オーバーサンプリングした後って結局こんなカタチになるのかな?
だとしたら耳で聞いても違和感ないしコレでいいか、
と思ってしまうんだが。詳しい方どう思われます?
164デフォルトの名無しさん:04/12/26 17:39:39
165デフォルトの名無しさん:04/12/26 18:05:53
.NET FrameWorkでASIOやPortAudioってつかえますか?
166デフォルトの名無しさん:04/12/26 18:29:55
>>163
厳密さを求めないなら台形でやっちまっていい
それなりにガビガビノイズ減らせて実用
少なくとも、0か1だけの波形よりははるかにマシ。0か1かだけじゃガビガビノイズは消えない

英語読めるなら>>162
167デフォルトの名無しさん:04/12/26 20:05:31
サンプリング44.1程度で誤差拡散とか>>163をやって
周波数スイープしてスピーカーで音量上げて聞くと
シュワンシュワン はっきり聞こえちゃうよ。

ヘッドホンで聴いてると案外気にならないんだけどね
168デフォルトの名無しさん:04/12/26 20:23:39
矩形波をデジタルデータとして正しく出すには、
結局は矩形波を録音したらどういう波形になるかを考えて作らなくちゃいけない。

色んな方法があるけど、
 オーバサンプリングして、LPFを通して間引くのが基本
 矩形の場合は、LPFを作るFIRフィルタの係数を単に間引いて加算すればいいので簡単
 加算した結果をオーバサンプリング比率分だけテーブルとして用意しておいてもいいけど
 周波数が高くなると、重なってくるので計算がややこしくなる。

この場合もオーバサンプリングした周波数で割り切れる周波数しか正確には出せないけど
64fs程度のオーバサンプリングなら誤差拡散してもいいし
それ以下なら補間すれば、まあ誤魔化せる。


理論的に攻めるなら、サイン波合成でゆくとか、
矩形波に限れば釣鐘関数の積分でどこまで誤魔化せるか頑張るとか
169デフォルトの名無しさん:04/12/27 02:41:21
バーチャルアコースティック音源作りたい
です
170デフォルトの名無しさん:04/12/27 10:30:16
>>163
漏れそんな感じだけど、ほとんど問題ないけどな。
171デフォルトの名無しさん:04/12/30 01:50:44
かなり初歩的だけど、LPFとかHPFって具体的にどうやって実装するの?
前スレ14あたりにそれらしいものが書いてあったけど
どういう事かさっぱりわからないし。
DFTかけて出た結果の高周波部分をゼロクリアして
逆DFTとかじゃうまくいかないのか?
172大原ゆき:04/12/30 02:42:43
>>171
FIRでの場合ですが、
入力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);
}
などを作ります。
フィルタの関数は一サンプル入れるごとに一サンプル出力されるように作ると汎用性が高まりますよ。
173大原ゆき:04/12/30 03:04:36
>>171
フィルタの設計は、
振幅特性Gと位相特性θを与えればできますが(G*e^(j*θ)を逆フーリエ変換)、
実際には振幅特性だけで良いです。
例えば、サンプリング周波数8kHz、カットオフ周波数800Hz、タップ数10、の時、
G={1,0,0,0,0,0,0,0,0,1}
というリストを作り、位相特性を0とします。
G*e^(j*θ)=Gですから、Gの逆フーリエ変換ということになりますね。
この出力をプロットしてみると解かると思いますが、全要素の半分だけシフトして
やらないといけません。
174大原ゆき:04/12/30 03:27:15
あの、ごめんなさい。思いつくままに書いたものです。
コンパイルもデバグもしていませんので、通るかどうか解かりませんが…

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);
}
}
175大原ゆき:04/12/30 03:32:50
あ、メンバ関数先に作ってみたら、クラスにする必要がなくなっていました。。
FIRCoeffは必要ありませんね。
…ってなんだか、かなり電波な発言に見えるのは気のせいですか?
大掃除の影響で疲れている上に、眠いのでこれにて失礼いたします。
176デフォルトの名無しさん:04/12/30 04:27:59
>>171
http://www.tobybear.de/p_filterexp.html
フィルターのソースコードを吐き出してくれる
177デフォルトの名無しさん:04/12/30 04:30:06
お疲れさまです。
大原ゆきさんのおっしゃるようにリングバッファを使うのが定石ですね。
Cマガジンなどでも過去に数回サウンドプログラミングの特集がありますから、そちらをあたるといいと思いますよ。
178デフォルトの名無しさん:04/12/31 00:25:35
>>大原ゆきさん
すいません・・・。
>>174のソースの各々の変数が何を意味するのか教えてください・・・。
なんとなくわかる物もあるのですが、確証がほしいので・・・。
あと、入力・出力は、それぞれどれに当たるのでしょうか?
お願いします・・・。
179デフォルトの名無しさん:04/12/31 00:46:40
180大原ゆき:04/12/31 01:56:22
>>178
すみません。
手直ししておきました。
http://uploader.zive.net/file/2739.txt
181デフォルトの名無しさん:04/12/31 11:52:48
>>171
前スレ14の書いているのはIIRフィルタについて
1次2次については理論的に色々調べられていて、実用的なフィルタや
特性をコントロールフィルタはこれを応用して作成するのが定石。
ただし、ゲイン特性はある程度好きに作れるが位相の問題がある

FIRフィルタは特性の急峻な良好なものが作れるが、そうすると遅延が必要になる。
最近の液晶TVのようにわざわざ何10、何百ミリ秒も遅延しなくちゃいけない場合とか
プレイヤーであれば問題ないけどね。


DFTかけて戻すのは全体をDFTして処理しなければいけないので、
バッチ処理でしか使えない。リアルタイムでは難しい。
区間DFTで処理しようとすると区間同士を接続する問題がある
ただし究極のFIRフィルタとして理想特性がいくらでも作れる。

求める性能と、状況で選択するって事ね。
182デフォルトの名無しさん:05/01/02 21:51:38
>>172にある式と、>>180のソースを使ってフィルタを
作ってみたのですが、いくらカットオフ周波数を下げても
出力データがほとんど0になってしまいます。なぜでしょうか?

使用したデータは、220、440、880Hzのサイン波を合成した
WAVファイルで、出力も同じ形式でやってます。
183デフォルトの名無しさん:05/01/02 23:02:06
そのプログラムは試してないんだけど、
カットオフ周波数を下げると、フィルタ幅が狭くなって、
通り抜ける信号が小さくなるからじゃないか?
出力信号をノーマライズしたらどう?
184大原ゆき:05/01/02 23:04:06
>>182
サンプリング周波数、カットオフ周波数、タップ数は?
波形の全体見ましたか?
また、出力を離散フーリエ変換してみましたか?

グラフは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);
185デフォルトの名無しさん:05/01/08 15:22:11
>>181
実際にFIRをVSTに組み込んでいるものでつが
FIRの遅延 = (次数/2) - 1が実質なんで
数百msも遅延を作ったとしたら44.1kHzでサンプリングしても
数万サンプル必要になってCPU(DSPボードでもおんなじ)が暴走しちゃうよw

音に関して言えば
窓関数つかえばフィルタの歪み自体はなくなる
(フィルタカーブがどうしてもなだらかにはなるけれど)
FIRフィルタのよさは何より線形位相なところでFFTよりも音のひずみが少ない
とこににあるわけだから遅延自体はしかたないんではないんかい?
FFTに比べたら大分遅延も負荷も少ないわけだし。

フィルタの設計も基本的なフィルタなら
(ローパス/ハイパス/バンドパス/ハイシェルフ/ローシェルフ
/ベル(バンドシェルフ)/バンドリジェクト)
本で軽く学んだら容易に理解できるレベルだからみんなも実装汁
186デフォルトの名無しさん:05/01/08 20:58:23
色んな手法があるからね。
一般的なIIRの実装よりもFFTの方が軽い
FIRフィルターの実装もFFTを使って不可を軽くする手もあるし
187デフォルトの名無しさん:05/01/09 07:47:57
186に書いたFIRフィルターでFFT使う手法は、ようするに積和をブロック単位にFFTでやっちゃえば
実際にFIRフィルターを1件づつするよりコストが低くなる(ことがある)という手で

超多倍長 掛け算を高速に実行するのと同じ手法ね
188デフォルトの名無しさん:05/01/10 05:55:09
サイン波を出力する物があったとして、
ナイキスト周波数を超える周波数を要求された場合、
仕様としてどうするのが普通?
189デフォルトの名無しさん:05/01/10 07:10:17
つまりサンプリング周波数の1/2以上を要求されたって事?
仕様に盛り込むのは永久機関を発明しろというようなものだな。
190デフォルトの名無しさん:05/01/10 09:08:51
ゼロだけを出力しておけばいいのでは?
191デフォルトの名無しさん:05/01/10 09:49:31
『出力は未定義』
192デフォルトの名無しさん:05/01/10 10:40:30
入力だったらまだ考えられるけどナァ
つかナイキスト周波数って入力側の用語じゃねえか?
193デフォルトの名無しさん:05/01/10 10:52:44
ナイキストの定理は、実軸で表現した場合に fs/2に制限されるというもので
複素領域で考えて、回転方向を規定すればfsまでOK

つまり、L、Rを複素領域と考えて、90度位相差のサイン波を出せば fsまでOK
194デフォルトの名無しさん:05/01/10 12:54:21
>>188
そのまま出力すればよい。
波形がおかしくても気にしない。
195デフォルトの名無しさん:05/01/10 13:23:06
入力データの誤りです。再度入力して下さい。
周波数?:■
196デフォルトの名無しさん:05/01/10 14:36:09
周波数?:440■
197デフォルトの名無しさん:05/01/11 00:20:07
サンプリング周波数44.1kHz→48kHzの変換は22.5kHz以上に音がない限り可逆
198デフォルトの名無しさん:05/01/11 04:37:16
それは量子化ビット数が無限大の場合だけの話のような
199デフォルトの名無しさん:05/01/11 22:02:32
そうですね。不可逆でしょう。
一般人の聴覚には影響のない範囲で可逆、とも言えますが。
200デフォルトの名無しさん:05/01/11 22:58:30
てか44.1kHzから48kHzに変換するとノイズのらない?
201デフォルトの名無しさん:05/01/12 00:57:14
ノイズは変換アルゴリズムにもよります。
ものすごいオーバーサンプリングとかすれば
ノイズの発生はそこそこ防げますよ。
202デフォルトの名無しさん:05/01/12 02:11:08
>>188
できませんって表示する。
203デフォルトの名無しさん:05/01/12 08:01:51
>>200
それふつー歪みって言うぞ。
204デフォルトの名無しさん:05/01/19 10:45:09
Java Sound APIでサウンドプログラミングを勉強中です。
2つの8bitモノラルのwavファイルを自前でMIXしながら再生する
プログラムを試しに作っているのですが、単純に加算することで
実現しようとしたらノイズだらけになりました。事前に元データを
2で割ってから足しているのでクリップはしていないんですが、
音は明らかに歪んでいます。

単純MIXは加算じゃダメなんでしょうか?

205デフォルトの名無しさん:05/01/19 10:49:17
double型だったら単純加算でもいいけど、
もしかしたらunsignedとかsignedとかbyteだとか、
そういう変数の型が悪さをしているのかも。
206デフォルトの名無しさん:05/01/19 11:46:14
う、byteなんですが・・。
207204:05/01/19 12:05:44
どうやらunsignedを理解してないようなのがわかりました。標準出力で見てみたら、
無音が-127のようですね。たまたま難しいサンプルにあたってしまっていたようです。
signedでやってみます。
208デフォルトの名無しさん:05/01/19 13:07:34
高速演算しなくていいんだったら
ファイルへの入出力部分だけを8ビットでやって、
内部的にはぜんぶdoubleで処理してもいいかも。
クリッピングのこととかそれほど考えなくて済む。
209デフォルトの名無しさん:05/01/20 22:44:59
プログラミングする訳じゃないんですが、アナログ音声をPCに取り込んで音楽CDを作る場合、
サンプリング周波数44.1kHzで録音して音楽CDを作成するのと、
48kHzで録音して44.1kHzに変換して音楽CDを作成するのでは、前者の方がイイですよね?
210デフォルトの名無しさん:05/01/20 22:49:36
>>209
はい。
211デフォルトの名無しさん:05/01/21 02:47:19
max/msp→puredata→pd sdk→portaudioとだんだん
原始的な環境へと移行していってるんだけどオレ。

このままいくと、果てはアセンブラか。
使い方覚えてばっかで、手段がすでに目的化してる感じ。
現代社会の縮図を自分自身の中に見た心地です。
212 209:05/01/21 23:29:09
>>210
さんくす。
213デフォルトの名無しさん:05/01/21 23:50:50
安物だと44より48の方がクロックの精度出ているとか、妄想も可能。
だとすると48で採ってから高精度srcで44にした方が、、なんてね。
色々試してみるも由
214デフォルトの名無しさん:05/01/22 00:48:53
プログラミング技術だけじゃなくて、
「耳の良さ」も必要なんだな、この分野。
先輩から「こんなに音が劣化してるのがわかんねーのかよ、やめちまえよ」と言われたOTL
215デフォルトの名無しさん:05/01/22 01:20:09
>>214
波形を見て判断するのもありかと
216デフォルトの名無しさん:05/01/22 01:21:35
常々思うのは音感は味覚と一緒という事
始めの一口の感想もあり、一食二食〜毎日食べ続けた感想もあり
作る手順も「さしすせそ」あり

駄目出しされた聴感は良いとされる音を聴き込んで鍛えれば由
217デフォルトの名無しさん:05/01/22 01:24:01
味を測るセンサはないが、音を測るセンサはある。
ゴールデンイヤーってどんな人だろう…会ってみたい。
218デフォルトの名無しさん:05/01/22 02:10:27
Golden Year 1964
219デフォルトの名無しさん:05/01/22 02:36:08
音を測るセンサといっても味に例えると糖度がこれくらいで〜とかそんなレベルかと
220デフォルトの名無しさん:05/01/22 02:36:45
勘に頼らず、定量的な手法でなんとかするのが優秀なエンジニアではないかと
221デフォルトの名無しさん:05/01/22 02:42:51
エンジニアと職人の違いか。
222デフォルトの名無しさん:05/01/22 04:58:12
感覚を勘覚にされちゃったよ。
223デフォルトの名無しさん:05/01/22 07:35:48
>>209
CODECのADCには強力なLPFが入っているけど、それ相当のフィルタをソフトで実現すると重くなるから
PC内で変換すると、一般的には特性が劣化する。

でも、安物のCODECだと、次数の低いLPFしは入ってなくて、肩特性が悪かったり、折り返しノイズが入ってきたり場合があるから
48kでサンプリングして、強力なLPFをかけた方がより特性が出る。

48000:44100は160:147なんで、原理的には147倍オーバサンプリングして、160分の1にダウンサンプリングする。
それぞれに使うLPFのタップ数を上げれば上げるほど特性は良くなる
224デフォルトの名無しさん:05/01/22 07:57:02
>>217
黄金の耳について。

どっかのメーカー(タンノイか?)のスピーカーで、ウーファーの中央にツィーターがついていて、独立して動くと言う「同軸型スピーカーユニット」がありました。
ウーファーが前後に振動しながら、そのウーファーの中央でツィーターがより高周波で前後に振動するというものです。

黄金の耳を持つと言うとある先生が数種類のスピーカーのブラインドテストをしてみたら、
その中の一台に関して「高周波にドップラー効果がかかってるんじゃないか?」との評価を下しました。
その先生に師事していたサウンド・エンジニアたちもびっくり。彼こそ黄金の耳にふさわしいという話になりましたとさ。
225 209:05/01/23 00:35:44
>>213>>223
物によってどっちもどっちな訳ですか。ありがとうございました。
226デフォルトの名無しさん:05/01/23 14:04:20
>>224
へー。たしかに同軸型マルチウェイの問題点は、ドップラー効果による
高域のFM変調が回避できないことだけど、ウーファの振幅が3-4 mmぐらい
なら聞き取れる人はいないだろうって話だったと思う。どのくらいの音量
で聞いてたんだろうね。
227デフォルトの名無しさん:05/01/24 14:58:20
Java Sound API のレイテンシってどのくらい?
228デフォルトの名無しさん:05/01/25 01:38:43
>>227
レイテンシはプログラマが設計時に自分で決めるんだろ。
Java Sound APIが決めるわけじゃない。
229デフォルトの名無しさん:05/01/25 15:24:34
Timidi95
230デフォルトの名無しさん:05/01/26 11:41:58
CD全部mp3にして聴いてたらダメな耳になっちゃいますかね。
最近不安を感じて全部高めのレートでエンコードしてるけど、
圧縮音楽聴いてること自体がダメとか言われそうだ。

AV板の連中でも案外ブラインドテストに弱そうなのとか見てると、
あまり心配しすぎることでもないかもだが。
231230:05/01/26 11:44:11
違った、ピュアオーディオ板だった。
232デフォルトの名無しさん:05/01/26 11:45:12
>>230
「本物」の音を聴かないという時点でダメだ
233デフォルトの名無しさん:05/01/26 11:47:20
>>232
「本物の音」ってやつは敷居が高いw
234デフォルトの名無しさん:05/01/26 11:48:30
無圧縮で聞いたところでCD自体が20KHz以上がカットされてて云々言われてキリがない。
235デフォルトの名無しさん:05/01/26 11:49:11
>>233
「本物の音」ではなく「本物」の音だよ
236デフォルトの名無しさん:05/01/26 12:03:37
A→D→Aと変換してる時点で本物とはかけ離れすぎ。
>>235が正論。
237デフォルトの名無しさん:05/01/26 13:26:00
CDに音楽を入れる前には音量をかせぐために
かなりの量のコンプレッサなんかがかけられている。
そういう音量だけでかい音楽を聴いていると、
ダイナミックレンジの広さを耳が拾えなくなるよ。
耳のためを思ったらやっぱりホールでクラシックを聴くのがいい。
でも耳の訓練次第でなんとでもなるんだけどね。
238デフォルトの名無しさん:05/01/26 13:37:58
サウンドプログラミングではなくて、そのプログラミングを基にして作られたソフトを
使って趣味で作曲をする立場の人間なんですが(SONARマンセー)、
市販のCDはガンガンコンプレッサー掛けてて、音圧だけはバカでかい。そうすると、
自分の作ったのを公開などするときに、こちらも多少のコンプ掛けないと、やたら
音量が小さくなって不評を買う。困ったもんです。

ココ見てる人の中には市販ソフト開発者もいるのだろうか?
239デフォルトの名無しさん:05/01/26 14:29:01
サウンドサイエンス f2 だっけ。 ガンガンコンプレッサーは
240デフォルトの名無しさん:05/01/26 21:57:00
色んな手法で音量をでかくしてますよね。
でも、そのせいでせっかく16ビットあるCDが
12ビットや8ビットみたいなダイナミックレンジに感じることがあります。
最近はクラシック録音でも薄くコンプがかかっているみたいです。
241230:05/01/27 11:32:03
むう、確かにCD自体がダメかもしれん。
最近のJ-POPなんか黒ベタの波形だしなあ。

昔はピアノやってて演奏会とかよく行ったり出たりしてたけど、
このところ全然生で聞いてない。ちとコンサート情報漁ってみるか。
242デフォルトの名無しさん:05/01/28 00:28:15
どう頑張っても生音には敵わないよな
243デフォルトの名無しさん:05/01/28 00:43:12
そりゃ当然。
244デフォルトの名無しさん:05/01/28 00:46:39
どう頑張っても生首には敵わないよな
245デフォルトの名無しさん:05/01/28 01:44:16
6年前の古いwin98マシン上でfmod3.74でCDDA再生をしようとするとクラッシュします。
fmod.exe、sample/cdda/cdda.exe共に同じです。
cddatestのログにはFSOUND_CDDA_NtScsi_GetFileHandle(16) failedとか出てます。
fmodのフォーラム検索しても同様のケースがありませんがおなじようなじょうよぷになたひとはいますか?
246デフォルトの名無しさん:05/01/28 02:01:13
んがおなじようなじょうよぷになたひとはいますか
247デフォルトの名無しさん:05/01/28 02:38:31
解決したとですよ。よかった。
248デフォルトの名無しさん:05/01/28 12:41:39
>>244
飛んで来るしな。
249 209:05/01/29 11:40:47
フリーサウンドソフトTWEで48Kで24khzの矩形波の音を、44.1khzに変換したらピギョーって音が出た。全然ダメポ。
250デフォルトの名無しさん:05/01/29 11:55:30
フリーサウンドソフトTWE の変換品質をここで述べる人
251デフォルトの名無しさん:05/01/29 14:27:30
そんな馬鹿なやつるわけないよな。
252デフォルトの名無しさん:05/01/29 15:48:54
まあTWEなら仕方ないな。
253デフォルトの名無しさん:05/01/29 22:03:52
ageてないだけマシ、だろうな。
254デフォルトの名無しさん:05/01/30 19:14:08
ずいぶん低いところに基準を持ってくるんだな。
255デフォルトの名無しさん:05/02/03 09:21:59
このスレで最強の高音質圧縮フォーマットを作りませんか?
256デフォルトの名無しさん:05/02/03 09:50:13
oggを見りゃ需要が無いことが分かるだろう。
257デフォルトの名無しさん:05/02/03 09:58:55
音響シミュレーションしてリアルな音作れない?
レイトレーシングの音版みたいにして
空気粘度とか楽器内部での反響とか客席、壁、人みたいなオブジェクトへの
吸収・反射全部考慮して。
5分の曲に一ヶ月くらいかかりそうだけど
258デフォルトの名無しさん:05/02/03 11:20:02
画像の場合はリアルなようでいて、ゴマカシも可能というか、その方が綺麗と思ってくれる部分もあるけど

音の場合は非常にシビア。
そういう合成をした場合、自然に近づけば近づく程に、よりほんの少しの不自然が際立ってくるよ。

そもそも、楽器をシミュレーションしても演奏はどうするのよ
259デフォルトの名無しさん:05/02/03 11:27:12
仮想の演奏者を組んで譜面を入力するとか?
260デフォルトの名無しさん:05/02/03 12:34:35
需要とかそういうもんを一切無視して、只管高圧縮・高音質を目指すのも面白いと思うけどね。
賛同者が居ないのなら俺独りで朝鮮するよ。
261デフォルトの名無しさん:05/02/03 12:51:51
>>260
理論的な部分に何かあてはあるの?
現行の圧縮技術よりも革新的な秘策みたいなやつ。

あれば是非お話をお聞かせください。
262デフォルトの名無しさん:05/02/03 13:59:58
実は多少構想があったりする。
高圧縮には程遠いもののCDの1/2〜1/3には圧縮できるものと思われる。
ソースを分析して時間ごとに割り当てるビット数を最適に可変させるというもの。
PCMのように時間軸に対して一対一対応のデータを割り当てるのではなく。
最初の音を基準に変化量を記録していくというもの。
変化の少ない部分に割り当てるビットを減らし、変化量の多い部分は逆に増やす。
例えば変化量が1の場合は16ビットも割り当てる必要はなく、1ビットで十分である。
また変化量が大きい場合はデータを上手く補完して変化量を少なくし、割り当てるビットを減らすように制御する。

ありきたりだよな(ワロス。
263デフォルトの名無しさん:05/02/03 14:08:10
・データをある程度のブロックに区切る
・16bitの上位と下位8bitずつに分ける
・上位をランレングスとかで、下位を辞書使うなりして圧縮
264デフォルトの名無しさん:05/02/03 14:21:09
下位を圧縮するのは良いですね。

他にもデータをブロックに区切り、ブロックごとに分析して
使われていない周波数帯域をバッサリ殺ぎ落とすというのも良いかも知れません。
265デフォルトの名無しさん:05/02/03 14:59:59
>>262
ADPCM
266デフォルトの名無しさん:05/02/03 15:19:03
  ↑
そういうこと言わない。
以下1960年代に戻ったかの様なレスが続く
  ↓
267デフォルトの名無しさん:05/02/03 15:21:48
あれだ、ソフトウェア危機に備えなければならない。
268262:05/02/03 16:11:45
>>265
知らなかった…orz

仕方ないからベクトル型のフォーマットで構想を練り直そう…。
269デフォルトの名無しさん:05/02/03 16:16:30
車輪の再発明スレ
270デフォルトの名無しさん:05/02/03 16:46:35
ADPCMというより、動的なハフマン圧縮がより近いんじゃないかな。

ADPCMは情報を捨ててしまうから・・・・ただADPCMはビットレートが一定という大きなメリットがある。

サウンドに使うなら、やっぱりビットレート一定でないと使い難いよ
271デフォルトの名無しさん:05/02/03 16:52:42
>>269
どんなことでも、やろうと思ったことが先にやられていることはよくあることだ。
2ch住人は、車輪の最発明だから止めとけ、とすぐに言うが、新規性はやっている内に
見えてくることもよくある。
根気が無ければ何も生まれてない。
272デフォルトの名無しさん:05/02/03 17:43:53
メディアプレイヤーにあるファイルを突っ込むと
自動的にその曲のアーティストにメール送ってくれて
しばらく待ってれば生で演奏しに来てくれる。

つまり、メディアプレイヤーにメーラーの機能と
依頼メールのテンプレートをあらかじめ乗せておいて
あとはファイル側にメアドさえ記述しておけば実現可能だな。
273デフォルトの名無しさん:05/02/03 18:06:24
>>271
269は、それ以前に、単に勉強不足という事を言いたかったのでは?
274デフォルトの名無しさん:05/02/03 19:45:29
>>257
90年代初頭のSIGRAPHで似たようなものを見たことある。
観客一人一人に反射するようなものじゃないけどね。
まぁ、そんなに細かなシミュレーションしても、
人間の聴覚にはあんまり影響ないと思うよ。
労力ばかり大きくて効果が低い。
275デフォルトの名無しさん:05/02/03 20:11:22
例えば、一週間くらい演算処理のために計算機を放置しておいて
やっとこさのアウトプット「> 2」を得ることができたとして
しかし、そのアウトプットに我々がどれだけの意味、意義、価値を
感じることができるか。それが問題だということだな。

かといって、安易な結果至上主義に陥るのも考えもんだけど。
もし、プロセスが重要であるのなら、そのプロセスごと含めて見せる
というか、プロセスを魅せる技が必要なのかもしれない。
276デフォルトの名無しさん:05/02/03 21:03:47
もちろん、音響レイトレーシングの需要はあるし、
すでに立派なビジネスにもなってるよ。
コンサートホールの建設をするときに
音響を考えたデザインをしたい時なんかに使われてるね。
277デフォルトの名無しさん:05/02/03 21:14:04
ごちゃごちゃ言っとらんで、やってみたらいいじゃないのか?
278デフォルトの名無しさん:05/02/03 21:22:21
>>257
最近のシンセはそんな感じのがあったと思う
279デフォルトの名無しさん:05/02/04 14:27:03
物理モデル音源やね。
そのうちウインドシンセと一緒に一台欲しい。
280デフォルトの名無しさん:05/02/04 17:36:54
> もちろん、音響レイトレーシングの需要はあるし、

音響をレイトレースって何か違和感があるな…。
281デフォルトの名無しさん:05/02/04 17:44:55
「音響レイトレーシング」でググっても一件もヒットしないしな
282デフォルトの名無しさん:05/02/04 17:46:28
そういうことは良くある。
283デフォルトの名無しさん:05/02/04 18:12:24
次テンプレ入り:
ディジタルフィルタ設計
畳み込み
ミキシング
音声のパワー
284デフォルトの名無しさん:05/02/04 21:14:28
>>281
sonic ray tracingとかsound ray tracingとか試してみれ。
ヘルシンキ工科大には音響系に強い人が結構いるから、と思って探したらそれ系の論文を見つけた。
http://www.tml.hut.fi/~las/publications/thesis/thesis.html
285デフォルトの名無しさん:05/02/04 21:31:20
イメージとして、静寂な水面のプールに発生する波紋の減衰と壁反射と打ち消し(加算)
波紋を球体として3Dで計算、かなぁ(??)
286デフォルトの名無しさん:05/02/04 21:33:15
波紋疾走
287デフォルトの名無しさん:05/02/04 22:45:40
オーバードライブギター
288デフォルトの名無しさん:05/02/04 22:59:51
なんなんだよ
289デフォルトの名無しさん:05/02/05 04:23:08
エレキギターの物理モデリングの論文どっかで
見たことがあるような気がするんだけど
知りませんか?
290デフォルトの名無しさん:05/02/05 06:17:33
レイトレースじゃ変だから、なんだろう、ウェーブトレースとか?
291デフォルトの名無しさん:05/02/05 06:22:08
ウェーブって言うより、ソニックでいいんでないの?
292デフォルトの名無しさん:05/02/05 07:22:33
>>289
ヤマハと共同開発したりしてるオッサンのページ。
http://ccrma.stanford.edu/~jos/pasp/pasp.html
293デフォルトの名無しさん:05/02/05 15:05:08
バイオリンの音を計算で合成して作りたいです。
294デフォルトの名無しさん:05/02/05 15:17:36
>>293
頑張れ
295デフォルトの名無しさん:05/02/06 01:07:06
>>293
Synthesis ToolKit (stk) というのでググってみ。
色んな音の物理モデルがC++から扱えるようなライブラリ。
296デフォルトの名無しさん:05/02/06 20:09:13
WindowsでストリーミングWAVE再生をしたいです。
演奏ファイルはオリジナルフォーマットで
50msec毎にPCMへ変換して、WaveOutのバッファへ放り込んでます。
変換自体はダブルバッファにして予め変換済みなのですが、WOM_DONEを受けて
次のバッファをwaveOutWriteしてるとどうしてもノイズがでます。
waveOutのAPI自体がダブルバッファに対応してないと
これ以上は難しいと思うのですが、何か対策あるのでしょうか?
297デフォルトの名無しさん:05/02/06 21:31:59
DirectSoundを使わない理由は?
298296:05/02/06 21:47:22
>>297
古いPCでも気にしないでいいように、通常のSDKのみで
考えていて、DirectX系は調べてませんでした。
が、DirectSoundはまさに欲しい機能のようです。
おそらくSDKじゃダメなんでしょうね、、、
仕方ないので、DirectSoundで検討します。

http://www2.muroran-it.ac.jp/circle/mpc/program/windows/spti_cdda/spti06.html
299デフォルトの名無しさん:05/02/06 21:56:12
DirectSoundは近々廃止され……とか人心を惑わしてみるテスト。

OpenALの現状はどうなんだろう。
300デフォルトの名無しさん:05/02/06 23:31:59
> 古いPCでも気にしないでいいように

いつのPCの話だよ・・・Pentium-166とかか?

>>299
延々とサポートされる、と言ってみるテスト。
301296:05/02/07 00:50:55
>>300
自分の環境はXPでDirectX5が入ってるみたいなんですが、
DirectXのSDKはどのVerを使えばよいのか?
最新の9(?)で作ったら、Ver5あたりしか入ってないPCなどでは
ちゃんと動くのか?
等が、よくわからず調べるのも面倒だったので拒否してました。
302デフォルトの名無しさん:05/02/07 01:23:06
DirectX9SDKだとしても古いバージョン対応のものも書ける。
仮にDirectX5以前のものに対応させたかったら、それ以上の
バージョンのインターフェースを使用しないだけ。
303デフォルトの名無しさん:05/02/07 01:32:20
DirectSoundはDX2の頃からほとんど変わってない
DX5か6でNotifyが入ったぐらいか

> よくわからず調べるのも面倒だったので

waveOutはどのバージョンのWindowsでも同じように動くと思ってたの?
まあ、その程度じゃ何やってもダメかもな・・・
304デフォルトの名無しさん:05/02/07 06:16:30
>>296
waveOutのAPI自体がダブルバッファに対応してるよ。
バッファを複数用意しておいて、waveOutWriteで先行して2つなり3つなりを送ってから
コールバックなりで空いたものから順に書き直したらいいじゃない。
305デフォルトの名無しさん:05/02/07 06:29:22
ああ、日本語ヘルプには
>複数のデータ ブロックを送るときには、 追加ブロックを送るタイミングを調べるために、
> データ ブロックの処理が終了したことを監視する必要があります。

ってあるから、出来ないって思ってしまうよね。

でも、はwaveOutPrepareHeaderで複数定義しておいて、連続してwaveOutWriteして
MM_WOM_DONEで使い終わったバッファにデータを再度用意して waveOutWriteするようにすれば
古いパソコンでも大丈夫
306296:05/02/07 11:11:55
>>304,305
お、できるんですか!?
試してみます。
ありがと!

ところで、もう一つ質問なのですがwaveOutProc関数のParam1/2には
何が入るんでしょうか?
ヘルプ見ても「メッセージパラメータが入ります。」としかないんですが、、、
(いくつめのバッファかの判断に使いたい)
307デフォルトの名無しさん:05/02/07 12:43:09
>>296
途切れなくそういうことをやるときは、普通トリプルバッファを使う。
これはDirectXでも何でも同じ。
308デフォルトの名無しさん:05/02/07 13:58:30
VBでサウンドプログラムって出来ますか?
309デフォルトの名無しさん:05/02/07 14:00:11
4バッファが好み
310デフォルトの名無しさん:05/02/07 15:32:55
>>308
お前には無理だ
311デフォルトの名無しさん:05/02/07 16:49:49
>>306
MM_WOM_DONEには
>DWORD dwParam1バッファを識別するWAVEHDR構造体を指すポインタです。
>DWORD dwParam2現バージョンでは使われません。
とあるよ。

何番目か調べなくても WAVEHDRが判れば問題ないでしょ?
必要なら WAVEHDRの dwUser メンバを使って識別してもいいけどさ
312デフォルトの名無しさん:05/02/07 20:02:16
構造体にいちいちわかりにくい構造あてて、しかも使ったためしない部分が多い
MSの仕様って使っててむかつく

(゚肉゚)
313デフォルトの名無しさん:05/02/07 20:46:44
バカ除けだろ?
314デフォルトの名無しさん:05/02/07 20:48:41
>>312
ミートそーすはお帰りください。
315296:05/02/07 20:56:43
>>311
HELPからですか?
HDDにはインストールしてないんで、ネットで見てるんですが、
そのような記述が見つけられませんでした。
一番下の参照欄にMM_WOM_DONEはでてますが、リンク無し。
検索しても見あたらずでした。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpmltimd/html/_win32_waveoutproc.asp
316デフォルトの名無しさん:05/02/07 21:04:58
>>315
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_wom_done.asp
MSのドキュメントについては、日本語版は見ないほうがいいよ。
最初から元のを見たほうが時間をムダにしないですむから。
317デフォルトの名無しさん:05/02/07 21:06:19
だいたい
http://www.google.co.jp/webhp?q=MM_WOM_DONE
から調べりゃいいじゃない
318296:05/02/07 21:17:33
>>316
サンスコ!
これからそうします。

>>317
「日本語のページを検索」の方でやってました。
ヘタレでごめんなさい。
319デフォルトの名無しさん:05/02/11 21:44:53
フィルタバンクに関して質問です。
2分割のフィルタバンクだと、低域の信号と高域の信号に分割して、
それぞれを1/2にダウンサンプルしますよね。
ここで、どうして高域を1/2にダウンサンプルできるのかがわかりません。

1ヶ月くらい調べているのですが、いまだに文献にたどり着けません……。
320デフォルトの名無しさん:05/02/11 21:47:38
すみません!sage忘れました!
ν即逝きすぎました。回線切って首吊ってきます
321デフォルトの名無しさん:05/02/11 22:30:02
サイン波に、exp(i*w*t)を掛け算すると、 wだけ周波数を移動出来ます。

という仕掛けで周波数を移動するわけです
322デフォルトの名無しさん:05/02/12 01:21:47
>>321
ありがとうございます。
まさか移動できるとは思いませんでした。
LPFを平行移動してHPFを求めるときと同じような感じでしょうか。
ゆっくり考えてみます。どうもありがとうございました。
323デフォルトの名無しさん:05/02/12 05:55:18
サウンドドライバを作成するならCとアセンブラどちらの
どちらで作ったほうがいいでしょうか?
324デフォルトの名無しさん:05/02/12 07:07:53
>>322
 ちがう。
相対性原理みたいなもんで、
φで回転してる人からみた回転速度Πは Π-φになるというだけの事。


>>323
Cで作って、必要ならアセンブラ
325デフォルトの名無しさん:05/02/14 20:04:13
ミキシング部分だけアセンブリで。というのが現実的かと。
326デフォルトの名無しさん:05/02/14 20:08:02
Cで何か不満があるわけ?
不満を感じる前からそんなこと考える必要はない。
327デフォルトの名無しさん:05/02/14 20:24:27
ドライバって結構アセンブラというか機械語的な知識が必要だから、考えた方がいいとは思うけど
328デフォルトの名無しさん:05/02/14 20:30:36
>>323
どういうサウンドドライバなんだ?

大昔のマシン用に石叩くならアセンブラ、
今時の中略ならC++、
石叩きじゃなくて波形入れるメモリいじるだけなら>>325のやり方だな。
329デフォルトの名無しさん:05/02/18 22:16:48
画像に対しては、ImageMagick、GraphicsMagick といった基本的な操作ライブラリ、ツール群がありますが
音声に関してそのようなものはありますか?
330デフォルトの名無しさん:05/02/19 00:38:25
>>329
spwave
331デフォルトの名無しさん:05/02/19 00:40:44
>>329
spLibs
332デフォルトの名無しさん:05/02/19 00:49:12
アレ開発停止?
333デフォルトの名無しさん:05/02/19 01:02:14
>>329
PortAudio...はちょっと違うか。
SoXとか。
334デフォルトの名無しさん:05/02/19 01:28:03
portaudioは各OSのAPIをラップして扱いやすくした感じかな。
libsndfileは各種音声ファイルを扱うライブラリだよね。
これは使ったことないんだけど、sndobjはどうなんだろ?
動画処理にはmalibがあるよね。なんか箇条書きになっちゃったな。。
335デフォルトの名無しさん:05/02/19 01:32:15
>>334
MALIBってAugmentedReality関連のライブラリじゃないの?
336デフォルトの名無しさん:05/02/19 01:53:25
あ、そっか。解析するのはちょっと目的が違うか。
337デフォルトの名無しさん:05/02/21 13:37:36
IntelのIPPに音声処理用の関数がいくつか入ってたと思う。
338デフォルトの名無しさん:05/02/22 01:59:02
ステレオの中央の音だけを取り出すことってできないかしら
誰か教えて
339デフォルトの名無しさん:05/02/22 03:06:35
妄想だがL/Rそれぞれをフォルマント解析して差分を求めるしか無いんじゃなかろうか
340デフォルトの名無しさん:05/02/22 06:08:10
中央の音を消すのは、単に減算すればいいので簡単だけど

中央の音だけを残すのは理論的には無理。
341デフォルトの名無しさん:05/02/22 12:30:35
L+Rを行って(モノラル)、ここからL-R(カラオケ)を引けばいいんでは?
342デフォルトの名無しさん:05/02/22 12:59:11
なぜ?
343デフォルトの名無しさん:05/02/22 13:38:50
>>341
L=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

となってしまうのでは?
実際にやった訳じゃないからわからんけど
344デフォルトの名無しさん:05/02/22 13:40:41
>>341

(L+R)-(L-R) = 2R

右の音だけが残る
345デフォルトの名無しさん:05/02/22 13:59:11
左右の音をベクトルだと考えて、ベクトルの直交化をすれば相関のない音ができあがる。
それを左右からそれぞれ引くと真ん中だけ残る?
なんて言ってみたかっただけ。たぶんうまくいかない。
346デフォルトの名無しさん:05/02/22 14:28:08
L[n](既知)=l[n]+c[n]
R[n](既知)=r[n]+c[n]
式が2つで、わからない値が3つの方程式は解けない。
347デフォルトの名無しさん:05/02/22 14:30:50
解けないけれど、あるていど推測することはできる、でいいかな?
348デフォルトの名無しさん:05/02/22 14:51:19
l[n]+r[n]が出せればOKなんだけどね
入力した音声(音楽)をカラオケ化して出力するキカイというものを
以前どっかで見たことあるけど、あれってどーいう仕組みになってるんだろう?
349341:05/02/22 15:13:18
やっぱりダメか。
350デフォルトの名無しさん:05/02/22 15:36:34
>入力した音声(音楽)をカラオケ化して出力するキカイというものを

これは>>340の単純に減算すればOK
多少工夫するなら、音量を自動調整して一番音量の小さい個所にコントロールするとか、
相互相関を求めて、多少遅延時間を調整してやるとか、
351デフォルトの名無しさん:05/02/22 15:39:04
>>347
推測するとなると、音源の特定が出来るようにならないといけない。

つまり、それが出来るなら中央の音だけでなく、バイオリンの音だけとかピアノの音だけとかを
オーケストラの中から取り出して来る事が出来るわけだ。

そんな事が出来るなら・・・・・
352デフォルトの名無しさん:05/02/22 15:50:07
>>350
L[n]-R[n]って事か?
これだと、右側の波形の位相が180度反転して、音が変わっちゃうような気が
するのだが・・・
353デフォルトの名無しさん:05/02/22 16:54:21
>>352
結果はモノラルだから、それで十分なんだよ。
354デフォルトの名無しさん:05/02/22 18:43:43
カラオケバージョンを利用して歌だけ抜き出すツールがあったな
355デフォルトの名無しさん:05/02/22 18:46:07
おまいら結構簡単なことに気づいてないぞ、
音源のモノラル成分を取り出せばいいだけやん。

逆チャンネルの逆位相成分を重ねるとモノラル成分が除去できるだろ
これの逆というかこれをちょっといじるだけで出来るよ。

つうかおまえら素人だろとあえrbjけぱrkbぱえい0−っらえb−ぴ
356デフォルトの名無しさん:05/02/22 20:22:38
>>355
釣ってるんだろうから、あえてマジレスすると、
それはだ、
えとね、

・・・・なんか疲れた。 ・・・将来は256CHマルチトラック録音CDとか出るんだろうか?
357デフォルトの名無しさん:05/02/22 20:36:43
2chは永遠に不滅です。でないと困るよ。
358デフォルトの名無しさん:05/02/22 20:51:56
ドルビーなんとかでセンター成分とか取り出す奴なかったっけ
359デフォルトの名無しさん:05/02/22 20:55:52
最初から録音してるんだろ 5.1CHとかは
360デフォルトの名無しさん:05/02/22 21:05:46
ドルビープロロジックII
http://www.jp.onkyo.com/technical/dolby.htm

「あらゆるステレオ音源を5.1chライクな立体音場で楽しむことができます。」だそうな
361デフォルトの名無しさん:05/02/22 22:00:09
ドルビープロロジックは2ch→5.1chコンバータだよね?
ドルビーサラウンドは単に5.1chの規格だったような気がする。
362デフォルトの名無しさん:05/02/22 22:12:59
>>353
いや、問題あるぞ。L[n]+R[n]とL[n]-R[n]じゃ結果が違うだろ。
ためしにL[n]に矩形波、R[n]にノコギリ波を入れて合成してみ?
加算だと単純な合成波になるけど、減算だとタダのノコギリ波になるから。

ステレオでもモノラルでも結果は同じだと思うぞ。
363デフォルトの名無しさん:05/02/22 23:42:42
なんか話を全然理解してない臭プンプンなんだが
364デフォルトの名無しさん:05/02/23 10:13:28
もうひとつ問題があって、音の場所ってのは点じゃないってこと。
微妙に位相のずれた音や、反射音なんかがあるせいで、音の場所は多少広がりを持っている。
だから、単にセンターだけとっても、薄っぺらい音になってしまう。
365デフォルトの名無しさん:05/02/23 11:05:12
>>362

完全に周波数・位相があっていれば、それは合成されてしまうだろうけど、
それぞれ別の周期か、ゆらぎの入った信号なら、耳で聞けば差か和かは、まず判らないよ。
366デフォルトの名無しさん:05/02/24 00:34:44
ためしにステレオの単純な減算をやってみたけど、エレキギターとかストリングス
とかがエライことになった。(w
なんかものすごいノイズが乗る。場合によってはほぼ雑音と化す。

これじゃあだめだ。自分、完璧主義者なもんで。



あと、あまり関係ないが、センターだけを単純に消すと、ヴォーカルだけでなく
ベースなんかの低音形も一緒に消える。そしてヴォーカルのエコーは残る。ダメダメ
367デフォルトの名無しさん:05/02/24 03:09:06
質問があります。
音声をキャプチャしながらリアルタイムでFFTをかける、みたいな処理をしようと考えていますが、
音声をキャプチャするライブラリはこのスレにもちょくちょく出てくるPortAudioがいいのでしょうか?
ただPortAudioは2003年以降更新されていないみたいですけど、大丈夫なんですかね?

また、ちょっとスレ違いな感じですが、PortAudioをVC++ .NET 2003で使おうとしたとき、
libファイルはMinGWをつかってmakeするんでしょうか?
368デフォルトの名無しさん:05/02/24 03:50:03
いいのかわるいのかは、あなたがやってみて判断するしかありません
369デフォルトの名無しさん:05/02/24 06:42:48
>>366
単純に減算したらオーバーフローするよ
370デフォルトの名無しさん:05/02/24 07:44:53
>>367
実質Portaudioはv19-developのバージョンが現在の主流かも。
あとは質問の意味がよく分からないのでパスします。
371デフォルトの名無しさん:05/02/24 12:16:22
>>366
完ぺき主義? ププッ。
372デフォルトの名無しさん:05/02/24 15:26:54
>>あと、あまり関係ないが、センターだけを単純に消すと、ヴォーカルだけでなく
>>ベースなんかの低音形も一緒に消える。そしてヴォーカルのエコーは残る。ダメダメ

やるまえからわかってんだろ。あとDSPやってるのにエコーっていう表現はダサすぎ・・・。
そういう意味では素人まるだしだなw
373デフォルトの名無しさん:05/02/24 16:08:22
DSPやってる人はエコーを何て表現するんですか?
374デフォルトの名無しさん:05/02/24 19:51:39
こーらs
375デフォルトの名無しさん:05/02/24 20:10:32
残響成分の方が一般的だろうが
そんなところに突っ込んで得意げになられても。
376デフォルトの名無しさん:05/02/24 21:13:53
>>373
コーラスではないことは確か。
おそらくディレイとリバーブの合成物だろうな。
っていうか、エコーで通じるし、それで良いじゃん。
377デフォルトの名無しさん:05/02/24 21:19:39
俺DSPのプログラマやってるけど、エコーはエコーだしディレイはディレイ。

単純ディレィだと綺麗なエコーにはならないよ。
378デフォルトの名無しさん:05/02/25 18:34:41
完璧主義を標榜するヤツにろくなヤツはいない。
例えば昔の俺
379デフォルトの名無しさん:05/02/27 20:49:30
wmaからwav、wavからwma
というC/C++用のソースが置いてあるサイトを
知ってる方いますか?
380デフォルトの名無しさん:05/02/28 16:58:19
381デフォルトの名無しさん:05/03/01 01:07:01
>>380
ありがとうございます。
早速DLしてきました。
382デフォルトの名無しさん:05/03/12 00:47:57
>339で出てきたフォルマント解析ってどういうモノ?
よさげな解説サイト、書籍があったら教えてくれ
383デフォルトの名無しさん:05/03/15 05:36:22
mp3からmp3でラップされたwavへの変換方法を教えてください。webサイトでもいいです。
384デフォルトの名無しさん:05/03/15 17:20:22
MPEGLAYER3WAVEFORMAT
385デフォルトの名無しさん:05/03/15 23:47:26
ドルビープロロジックみたいな2ch→5.1chコンバータを
作りたいのですが、どういった理論を使用すれば良いのか
どなたか教えてください。
386デフォルトの名無しさん:05/03/16 00:39:11
ドルビープロロジックは2ch->3.1chだよ。
387デフォルトの名無しさん:05/03/16 01:20:19
2ch→5.1chはプロロジックIIだな
俺もこいつの仕組みは興味あるな
388デフォルトの名無しさん:05/03/16 01:32:22
プロロジック2のアルゴリズムをそのまま再現するだけじゃ駄目なの?

5.1ch>2chのエンコードと言うか好きな方向から音出すのは楽だけど、
エンコードされた2chから5.1chの拡張は辛そうだね。
389デフォルトの名無しさん:05/03/16 01:41:33
すまん、イマイチ意味不明だ。
PCで5.1ch>2chして外部のプロロジック2デコーダに渡すのは楽だけど、
アナログ5.1ch出力の様な外部デコーダの無いサラウンド環境で、
2ch>5.1chして、それぞれのチャンネルに出すのは辛そう?
390デフォルトの名無しさん:05/03/16 03:30:49
後ろチャンネルふたつにはディレイかけたり
HRTFもどきなことをしてるだけじゃないの?
391デフォルトの名無しさん:05/03/16 07:54:39
PL2にHRTFは関係ないです。
基本的にはマトリックス。
392390:05/03/16 13:30:00
いや、HRTF「もどき」ね。
HRTFは用途が違うよね。
393デフォルトの名無しさん:05/03/16 13:41:09
プロロジック2は基本的に逆位相当てるだけ。
394デフォルトの名無しさん:05/03/16 15:16:49
プロロジックをそのまま実装したら特許に抵触するとかない?
395デフォルトの名無しさん:05/03/16 16:24:55
>>394
むしろ抵触しなかったら問題だろ。
396デフォルトの名無しさん:05/03/16 17:28:14
逆に、ドルビープロロジック2互換を唱えなければ問題無い様な気もする。
397デフォルトの名無しさん:05/03/16 22:03:37
むしろドルビープロロジック2って言わずに実装した方が問題なんじゃないのか?
398デフォルトの名無しさん:05/03/16 22:04:46
>>393
逆位相当ててるだけだったらプロロジック1以下の仕様じゃないか?
399デフォルトの名無しさん:05/03/16 22:34:32
それだけだったら、ただのPassiveMatrixなわけで。
Active MatrixこそがPLの肝。
400デフォルトの名無しさん:05/03/16 23:09:26
>>398-399
よう解らんが、5chのポジショニングは逆相が全てじゃないの?
サブウーハ成分はハイパスして逆相に出さないとか、色々あるけど。
401デフォルトの名無しさん:05/03/16 23:11:51
>>397
審査通らないとドルビーロゴ貰えないそうだけど。
402デフォルトの名無しさん:05/03/16 23:29:03
ポジショニング>パンニング スマソ
403デフォルトの名無しさん:05/03/16 23:48:37
逆相ってことでは、CSIIやNeo6、ほとんどのマトリックスデコーダが該当しますね。
PLについてはこちら参照。
ttp://www.dolby.co.jp/images/about/who_we_are/p_l_surr_decoder.pdf
基本的な考え方はPLIIやPLIIxになっても変わってないと思います。
404デフォルトの名無しさん:05/03/17 02:10:17
>>400
逆相なのはスピーカの向きが逆だから当たり前のことで、なにも理論上特殊なことじゃない。
逆相にしないと打ち消しあって困ってしまう。ドルビープロロジックじゃなくても普通にステレオ
音源をスピーカーで囲んで後ろを逆相にすればそれなりに広がって聞こえる。でもそれは単に
あちこちから同じ音が聞こえるだけ。

プロロジックのミソは2chの中に後ろからだけ出る音が仕込まれているって点じゃないのか?
その理論がどういう理屈なのかは漏れも知りたいところだが、プロロジック1は後ろモノラル
から独立した音がでて、プロロジック2は後ろもステレオってのが漏れの理解なんだが。

単に逆相なんて仕様だったら子供だましもいいところだし、現にそんな聞こえ方じゃないよな。
405デフォルトの名無しさん:05/03/17 12:14:52
406デフォルトの名無しさん:05/03/17 12:42:55
>>404
違う違う違う違う。 全く見当違い。
逆相はリアのパンニングを2chにエンコードする為で、デコーダは
その逆をして?各chに振るんだよ。

403さんが資料見つけてきてくれたんだから読んでくれよ。
407デフォルトの名無しさん:05/03/17 12:46:58
簡単な例上げると、モノラルソースを L正相R逆相にして、
Lの音量を0から100%にフェードインさせると、フロントLから徐々に
リアLRに移動する。

サラウンド環境あるなら、試してみ。
408デフォルトの名無しさん:2005/03/24(木) 21:04:37
いや、それじゃプログレッシブじゃなくてレガートリンクでしょ。
409デフォルトの名無しさん:皇紀2665/04/01(金) 10:05:04
いま練習で、SMFを読み込むプログラムを試作しているのですが、
既存の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というのは見当たらないのですが、これは何なのでしょうか。
410デフォルトの名無しさん:皇紀2665/04/01(金) 10:30:39
?????
411デフォルトの名無しさん:皇紀2665/04/01(金) 12:22:56
>>409
ttp://www2s.biglobe.ne.jp/~yyagi/material/smfspec.html#port
非標準だってさ。どおりで仕様書のどこ探しても載ってないわけだ。
412デフォルトの名無しさん:皇紀2665/04/01(金) 18:28:47
位相変換と入力値にあわせたQの変化で、1ch擬似サラウンドを実現できるかも知れない…。
413デフォルトの名無しさん:int 2ch =05/04/01(金) 22:04:55
>>411
ありがとです助かりました。こんなのもあるんですね。
414デフォルトの名無しさん:int 2ch =05/04/01(金) 22:08:36
ウンマンコ 始動
415デフォルトの名無しさん:2005/04/26(火) 00:23:26
水滴が落ちる「ぴちゃ」という音を合成するにはどうすればいいですか?
また、参考になるものはありますか?
416デフォルトの名無しさん:2005/04/26(火) 00:58:53
参考になるものは実際の「ぴちゃ」という音を周波数スペクトル解析したもの。
それを元にモデルとなる発音原理を決定
417デフォルトの名無しさん:2005/04/26(火) 11:36:15
>>415
プログラムじゃなくて、シンセを扱うセンスの問題。
モジュレーション、リバーブ、LFOをうまく使えればできるよ。
418デフォルトの名無しさん:2005/04/26(火) 16:41:17
いえ、音を鳴らしたいわけではなく、どちらかというとシミュレーションです。
419デフォルトの名無しさん:2005/04/26(火) 17:22:57
>>418
だったら、やりかたを簡単に書いとく。
まず、金魚鉢みたいな空間をつくって、そこに、ちいさな粒を落として共鳴させる。
どう落とすか、ってのは、Navier Stokes equation、NaSt2Dでぐぐってみるといい。
ここの動画を参考に、イメージを膨らませてみてくれ。
http://www5.informatik.tu-muenchen.de/forschung/visualisierung/praktikum.html
420デフォルトの名無しさん:2005/04/26(火) 17:23:08
アコースティック楽器を物理モデリングしたいんですけど、という話題に少し近いな
>>1によると、スレ違い気味に思える
どっか別の向いたスレ探したほうがいいんじゃない?
421デフォルトの名無しさん:2005/04/27(水) 03:55:08
過疎板のシミュレーション板に行けということかー!
422デフォルトの名無しさん:2005/04/27(水) 06:12:59
昔、Mathematicaでの太鼓シミュレーションをわかりやすく説明してたページがあったけど、
今もあるかな?
音も鳴っておもしろかったんだけど。
423デフォルトの名無しさん:2005/04/27(水) 18:19:41
個人的には、最終的なアウトプットが音なら、モデリングもここでいいと思うけど…。
もしくはDTM板にそういうスレを立てるとか。
424デフォルトの名無しさん:2005/04/28(木) 01:57:57
>>422
円形の太鼓は波動方程式の解がベッセル関数の重ね合わせになって、
非整数倍の倍音が出てくるから面白いね
425デフォルトの名無しさん:2005/05/09(月) 17:46:33
ベッセル関数だとぉ?
量子力学かとオモタ(´・ω・`)

http://homepage3.nifty.com/iromono/kougi/qm/qm2_12.html
このアニメは太鼓みたいだな。
426デフォルトの名無しさん:2005/05/14(土) 20:47:09
質問させてください。
商用アプリのサウンド入出力を自作プログラムでコントロールしたいのですが、
ターゲットとなるアプリはサウンドドライバを指定して音声を出力・入力するタイプになっています。
しかしながら私がDDKを持っていないため、サウンドデバイス自体の新規作成はすぐにはできません。
そこで、出力の場合を例にとると、

[アプリ]→<<汎用サウンド出力ドライバ?>>→(自作ルーチン)→[サウンドカードのドライバ]

のような感じを想定して、<<汎用サウンド出力ドライバ?>>に相当するフリーウェアやAPI?を
探しているのですが、そのようなものはご存知ないでしょうか。
たとえばサウンド出力がDirectShowのFilterGraphにリダイレクトされるような
ドライバがあれば嬉しいところなのですが。

・・・と思いつつぐぐっているとVirtual Audio Cableを見つけました。
これでもいいのですが、フリーでは3分しか使えない(以降ノイズが乗る)ようだし、
他に候補があれば教えてくださいm(__)m
427デフォルトの名無しさん: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:失敗
のようにお願いできますか
428デフォルトの名無しさん:2005/05/18(水) 19:32:23
429デフォルトの名無しさん:2005/05/18(水) 19:35:53
>>427
君が望む仕様ではないが、前に宿題スレで作ったやつ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/414.c
430デフォルトの名無しさん:2005/05/18(水) 19:54:48
早速情報ありがとうございます。
>>429さんのは2次元のやつですかね??
>>428さんのとこのサイトから何とか使えそうなのを拾ってこれました。
これで頑張ってみます。
431429:2005/05/18(水) 23:23:14
>>430
俺は分かりやすいと思ってああいう風なソースを書いたんだが、結局分かってもらえなかったということかい?
432デフォルトの名無しさん:2005/05/19(木) 00:29:58
427のプロトタイプってどこかで見た覚えがあるんだが
Cマガのサンプルだったかなー
433デフォルトの名無しさん:2005/06/02(木) 23:12:19
ステレオ・モノラルやら16ビット・8ビットやら、
全部対応しようと思うと、めんどくさいなぁ。
何かうまい方法ないもんかな。
434デフォルトの名無しさん:2005/06/02(木) 23:39:18
内部処理は全部16bitステレオにして、入出力部でコンバート
435デフォルトの名無しさん: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++だと動きそうなんですが、このまま解からないのも悔しくて…
436デフォルトの名無しさん:2005/06/03(金) 00:46:23
>>434
おお、それは楽そうですね。
モノラルをステレオにするときは、
左右おんなじもん鳴らしとけばOKなのかな
437デフォルトの名無しさん:2005/06/03(金) 00:56:35
>>435
ここで全然問題ないと思うけど、DTM板にVST作成スレがあるから紹介しておくよ。

VST Plugins Development 2.0
http://pc8.2ch.net/test/read.cgi/dtm/1100420016/
438435:2005/06/03(金) 01:06:08
あDTM板にあったんですね……見逃してました
でも、gccとかdlltoolとかの話になるかもしれないので
ム板のここにしておきます
439デフォルトの名無しさん:2005/06/04(土) 07:55:33
DLLをダンプしてみたら?
名前に@が入ってたりしない?
440デフォルトの名無しさん:2005/06/04(土) 08:01:27
DLLでエクスポートされるのはmainだけだけど 
441デフォルトの名無しさん:2005/06/04(土) 10:07:58
質問させてください。
VC++で192kHzサンプリングの音を出力したいと思うのですが、
Waveform Audioとかでは、構造体WAVEFORMATEXを見るに48kHz止まりですよね。
WindowsXP限定とかでも良いので、192kHzを扱う手段をご存知の方、
お教えいただけませんでしょうか。
解説本やサイト名だけでもかまいませんので。
442デフォルトの名無しさん:2005/06/04(土) 13:13:18
>>441
実際に試したわけじゃないけど、サウンドカードが対応してるなら、
単純に WAVEFORMATEX の nSamplesPerSec に 192000 を入れたら動いたりしない?
MSDNのヘルプを見た限りでは、この値に特に制限はないみたいだけど。
ちなみに、高精度や多チャンネルを使いたいなら WAVEFORMATEXTENSIBLE が必要だね。
443デフォルトの名無しさん:2005/06/04(土) 21:24:12
>>439
一応 pexports で他のプラグインと見比べたりしてみましたが
大体同じように見えます

誰か一人くらい同じ症状の人居ないかと、色々検索してみましたが特に見当たらず・・・
(英語力無いんで、見落としてる可能性大ですけれど)
cygwinでやるから悪いのかと思ってmsysとMinGW入れて試してみましたが、変わらずでした
いい機会なんでDLLとかツールの使い方とか勉強してみようと思います・・・
何をしたらいいのかさっぱり解からないので・・・
444441:2005/06/05(日) 01:22:09
>442 サン
MSDNのヘルプに、こんな記述があるんです。

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ビット止まりですよね。
サウンドカードがどこまで対応しているかを確認してから、
対応フォーマットで出力させたいのですが・・・。
445デフォルトの名無しさん:2005/06/05(日) 05:12:18
そんなに気になるならASIO使えば?

waveOutやDirectSoundはあまりアテにならんし。
446441:2005/06/05(日) 11:54:59
>>445 さん
そうなんですか?>当てにならない
ASIOだと良い理由はどのあたりなんでしょう。

しかし、うちのサウンドカード、SE-90PCIなんでASIO対応してない・・・(汗)
447デフォルトの名無しさん:2005/06/05(日) 14:00:47
「AC97」
448デフォルトの名無しさん:2005/06/05(日) 18:15:26
>>444
nSamplesPerSecの記述はcommon values(よく使われる値)だから制限じゃないよ
449441:2005/06/06(月) 00:51:21
>>448 さん
ん〜、でも対応フォーマットを取得するWAVEOUTCAPS構造体では、dwFormats値に
WAVE_FORMAT_4S16 (44.1 kHz, stereo, 16-bit)
までしか返すことできないですよね。
どっちにせよ、192kHzに対応しているデバイスかどうかが分からないと思います。
(対応しているときに、192kHzで出力する、という形にしたいです)
450445:2005/06/06(月) 01:40:48
>>446
ドライバ等の環境にもよるかもしれないけど、
waveOut/DirectSoundを使った場合、自分以外のアプリが
自分と異なる周波数で音を出すと周波数がそっちの方に
引っ張られてしまうということが以前あった。

ところが、ASIOだとそんなことは無かったので、
ASIOを使ってみたらと言ってみた、というわけ。

あとはASIOの方がレイテンシーも小さいしね。
451デフォルトの名無しさん:2005/06/06(月) 02:10:40
>>449
じゃあ、誰もが使ってる 48 kHz はどうなんだって話ですよ。
事前に対応を確かめたければ、実際にデバイスを開いてエラーチェックすればいいんじゃない?
waveOutOpen で WAVE_FORMAT_QUERY っていうフラグも用意されてるみたいだし。
ちなみに、実は mmsystem.h には WAVE_FORMAT_48S16 や WAVE_FORMAT_96S16 なんてのも
こっそり定義されてたりするんだけどね。MSDNなんて所詮こんなもんです。
452デフォルトの名無しさん:2005/06/07(火) 23:17:27
今までの書き込みに関係あるか分からないけど、
WAVE64って何?
MSDNで検索かけても該当無し。
分かっているのは、64ビットデータが扱えて、
ファイルサイズが2G以上のものができることぐらい。
ヘッダの詳しい内容とかが知りたい。
453デフォルトの名無しさん:2005/06/08(水) 00:19:26
>>452
Wave64で検索してすぐに出てくるこのページは読んだ?
http://media.vcs.de/download/content/show/04345113457
454441:2005/06/08(水) 00:57:26
>>445 さん
なるほどです >周波数が引っ張られる
試す際には気をつけて確認してみますね。
まぁ、最低限、他の音を鳴らさなければOKということでは
あるのですね、ASIO以外でも。

>>451 さん
こっそり定義、っすか。

> 実際にデバイスを開いてエラーチェックすれば
その手でうまくいくかどうか、週末にでも試して見ます。
ちょっと今時間ないもので・・・。

お二人ともフォローどうもありがとうございます。
455デフォルトの名無しさん:2005/06/08(水) 23:41:41
>> 53
すいません、そのページに"SONY WAVE64"って
書いていたので、別物かと思ってスルーしてました。
教えてくれてありがとう。
456デフォルトの名無しさん:2005/06/08(水) 23:51:53
>>451
インスプリスプ
457デフォルトの名無しさん:2005/06/08(水) 23:53:57
>>456
インスプリスプはないだろ.
458デフォルトの名無しさん:2005/06/12(日) 21:26:53
>450
ASIOでプログラム組んだ事あるかね。

一般的には対応デバイスが少ないASIOはデメリットも多い。
ASIO4ALLを使えと言うかも知れないが一般ユーザーに
すすめるのもどうかと。(サポートが大変だ。)

>>441
WAVE_FORMAT_QUERY は当てにならない。

WAVEFORMATEXTENSIBLEを使って再生するには
Win98SE以降のOSとWDMのサウンドドライバが必要。

WAVEFORMATEXでも48kHz超えるサンプリング周波数は普通に扱う事ができるが、
非対応のサウンドカードでも再生できるのでカーネルミキサーやドライバで
リサンプリングしている可能性がある。

WAVEFORMATEXTENSIBLEを使えば96KHz以上、24Bit以上の高解像度や
5.1ch のマルチチャンネルも扱える。
459441:2005/06/12(日) 22:55:28
>>458さん
WAVEFORMATEXTENSIBLEでOKなのですね。
Win98SE以降、WDM対応、はうちの環境ではOKです。
リサンプリングされるのは困るので、WAVEFORMATEXTENSIBLEの方を使ってみます。

結局、まだMSDNをチラッと見た程度でプログラミングまで手が回ってません。
週末もなかなか時間とれなくて^^;
また試してみてご報告しにきます。
460デフォルトの名無しさん:2005/06/13(月) 11:23:39
ウェーブフォーマテフ
461デフォルトの名無しさん:2005/06/14(火) 02:21:07
うーん、8bitを16bitに変換するのがうまくいかん。
mmioReadで読み込んだ後、符号ありに変換して、
16ビットに変換するって感じでやってるんだけど。
どっかにいいサンプルないかな。
462デフォルトの名無しさん:2005/06/15(水) 14:11:40
16ビットにしてから符号を付けるが正解。
463デフォルトの名無しさん:2005/06/15(水) 21:48:53
>459
http://www.vector.co.jp/vpack/browse/person/an027311.html
DARU/AUDIO-RECORDER!
DARU/CHANNEL-MASTER!
↑の2つのソフトが WAVEFORMATEXTENSIBLE のWAVEファイルを
出力できるのでテストに使える。
464461:2005/06/18(土) 13:27:55
何が違うんだろ。誰かヘルプきぼん。
    short * 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;
    }
465デフォルトの名無しさん:2005/06/18(土) 15:22:11
Cでは符号付きのビットシフトはできません。
てか無駄多杉。

ビット操作で中途半端に高速化しないで
普通の演算アルゴリズムを考えるべし。
正しい結果が得られるようになってからビット操作に置き換える。

コンパイラによってcharの符号の扱いが違うので注意が必要。
オレはVCで「キャストして引き算してから掛け算」で8→16ビットの変換してる。
466デフォルトの名無しさん:2005/06/18(土) 17:23:35
論理シフトと算術シフトはCでも使えたような
467デフォルトの名無しさん:2005/06/18(土) 18:04:05
>>465
>>466
C言語の仕様ではコンパイラ依存だよ。
最新の仕様ではどうなってるかわからないけど。
468デフォルトの名無しさん:2005/06/18(土) 21:22:12
ISO/IEC 9899:1999 6.5.7 Bitwise shift operators -4
The 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.
469デフォルトの名無しさん:2005/06/18(土) 21:29:34
なるほどね
470デフォルトの名無しさん:2005/06/18(土) 21:53:17
い:16bitdata = (8bitdata - 128) * 256
ろ:16bitdata = 8bitdata * 256 - 32768

どっちでも同じじゃないの?
471461: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);
としてみたけど、ノイズだらけ。
他の部分がおかしいのかな。もうちょっと研究してみます。
472デフォルトの名無しさん:2005/06/18(土) 22:23:02
>470
コンパイラの符号の扱い方で同じじゃない場合もあると思う。

>471
pTempBuffer[i] =(((short)pTempBuffer_8_u[i])-128) * 256;
でどうだい?
473461:2005/06/18(土) 23:37:20
>>471
駄目っぽい。とりあえず、いろいろ書き直したコードを載せてみます。
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;
474デフォルトの名無しさん:2005/06/19(日) 04:18:10
変換せずに鳴るのか試すとか…
475デフォルトの名無しさん:2005/06/19(日) 04:40:29
結果が合ってるか見てみたら?
数字で。
476デフォルトの名無しさん:2005/06/19(日) 09:36:05
コンパイラは何を使ってる?
477461:2005/06/19(日) 11:19:42
みなさん、ありがとうございます。

>>474
8ビットでは、きちんと鳴ります。

>>475
なるほど。今夜あたりにやってみますね。

>>476
VCとBCC両方で試してみましたが、同じでした。
478デフォルトの名無しさん:2005/06/19(日) 12:50:13
単純にヘッダが8ビットのままになっているとかじゃないのかい?
479デフォルトの名無しさん:2005/06/19(日) 13:39:53
waveOutOpen はどこ?
まさか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で正しい結果が出る。
480461:2005/06/19(日) 14:10:08
(((( ;゚д゚)))アワワワワ
激しくそれっぽい。
あとで確認してみますね。
481461:2005/06/19(日) 18:16:15
waveOutOpenの前に、
is8Bits = (waveFormat.wBitsPerSample == 8);
waveFormat.wBitsPerSample = 16;
としておき、>>473のようにすることで、できました。
ちなみに、>>473は、
pWaveHdr->dwBufferLength = nRead;
ってとこが間違ってました(*2が必要)。
お世話になったみなさん、本当にありがとうございました。
482デフォルトの名無しさん:2005/07/10(日) 08:21:14
 BCB6でMP3ファイルを再生しようとしているのですがうまく行かずに困っていま
す。以下の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);

483デフォルトの名無しさん:2005/08/03(水) 18:20:10
一般にUSB接続の鍵盤(音楽演奏用のもの)が市販されていますけど、
鍵盤から流れてくるデータの実体はどんなものなんでしょうか?
MIDIデータか何かが流れてくるなら、これはどうやれば拾えるのでしょうか?

やりたいことは、鍵盤からの情報を自作のシンセサイザソフトに投げて
音を出してみたいということなんですが。。。
ちなみに、VC++6.0でアプリ作成しようと思っています。
適当な鍵盤を買ってきて試してみたらいいのでしょうが、買う前にやりたい
ことができるのか確認したかったので、ご存知の方がいたら教えてください!
484デフォルトの名無しさん:2005/08/04(木) 00:09:22
>>483
midiじゃないの?
485デフォルトの名無しさん:2005/08/04(木) 00:53:20
midiIn〜 APIをMSDNで検索
486デフォルトの名無しさん:2005/08/04(木) 09:40:43
>>484-485
>>483 です。
やっぱりMIDIですよね。
MIDIメッセージの受信方法は書籍を持っているので何とかなりそうです。
スレ汚し、どうも失礼しました。
487デフォルトの名無しさん:2005/08/17(水) 04:39:10
>>483
メーカに聞けばいいじゃん
488デフォルトの名無しさん:2005/08/17(水) 05:55:42
(´-`).。oO(なんで2週間も経って的外れなレスが付くんだろう・・・)
489デフォルトの名無しさん:2005/08/24(水) 08:39:57
ttp://www.dspdimension.com/data/index.html
マイクの音ひろって↑のDownloadにあるソース使って
Pitch ShiftingしてwaveOutしてもぐちゃぐちゃな音になるんですが
おらだけですか?
490デフォルトの名無しさん:2005/08/24(水) 10:43:33
「ぐちゃぐちゃな音」という表現には、主観が多すぎて、具体的な症状がわからない…
491デフォルトの名無しさん:2005/08/24(水) 23:22:03
ノイズだらけでマイクでしゃべれば一応ノイズが変化してるけどって感じで
声は聞き取れないんですよ。
main loopってとこを#ifdef使って実行しないようにしたら
ピッチの変わってない声が出るからFFTと窓関数とその逆変換は
ちゃんと動いてるみたいだからmain loopの中がおかしいんだろうけど
解説ページ読んでもお手上げヽ(´ー`)ノ

このページのソースのままでもちゃんと動くもんなんですかね
警告が出た変数のとこをキャストしまくっただけなんですけど・・・
492デフォルトの名無しさん:2005/08/25(木) 02:07:47
intで入ってきているのにfloatで扱っているとか、
エンディアンが逆になっているとか、そんなことはないか?
493デフォルトの名無しさん:2005/08/26(金) 06:37:54
waveInで受け取ったデータを32768で割ってfloatに入れるところで
ホントはshortにする所をcharでやっててキャストミスってました><
配列のサイズも間違えてた・・・
逝ってきまーすorz
494デフォルトの名無しさん:2005/08/29(月) 11:11:15
マイク入力されているかの様に曲(wav,mp3等)を流すことは出来ますか?
495デフォルトの名無しさん:2005/08/29(月) 12:20:21
初めまして、皆さんには程度の低い質問かもしれませんが
教えていただけると助かります。

着ボイスをPCで拾って来てファイルがmmf(SMAF File)となっていました。
これをwavファイルに変換したりは出来ますか?
PCの起動音とかにしたいのですが、無理でしょうか?
496デフォルトの名無しさん:2005/08/29(月) 14:43:44
>>494 できます
>>495 できます
497495:2005/08/29(月) 18:38:19
>>496さん
良かったらやり方など教えていただきたいです。
PC初心者故、教えて厨っぽくなって申し訳ないです。
498デフォルトの名無しさん:2005/08/29(月) 21:20:06
>>497
良くないです。
499デフォルトの名無しさん:2005/08/29(月) 22:52:03
>>495
どこかにツールがすでにあると思うから、それを入手するのがいい。
SMAF→SMF→WAVというふうに変換するかな。
でも、それはプログラム板の話題じゃない。
分かんなかったら他のとこ行って聞きな。
500デフォルトの名無しさん:2005/08/29(月) 22:55:05
>>497
>PC初心者故
えー、一応言っとくと
「この板はプログラムを作る人のための板です。」
と板TOPにも書かれているんだけど。
501495&497:2005/08/29(月) 23:50:28
>>499>>500さん
ありがとうございました^^;
趣旨わからず質問してしまって申し訳です。
詳しいことは他の板で聞いてみます。
お騒がせして申し訳ありませんでしたm(_ _)m
502デフォルトの名無しさん:2005/08/30(火) 18:46:34
良スレ発見。
windowsが基本かしら。
503デフォルトの名無しさん:2005/08/31(水) 00:01:04
どーだろ。多くの人はWindowsじゃないかな。
自分はMacだけど、DSPの話とかが面白いときがあるから見に来てる。
504デフォルトの名無しさん:2005/08/31(水) 00:12:54
>494だけど、ソフトウェア側から音楽データを流して、
それがあたかもマイク入力されているかのようにするにはどうしたらいいの?

ググってみたけどそれらしい事を解説してるページに辿り着けない。
もしかして、サウンドプログラマにとっては基本的すぎて解説してないとか?

検索キーワードキボンヌ
505デフォルトの名無しさん:2005/08/31(水) 00:25:18
「マイク入力されているかのように」というのはどういうことなの?
一回アナログ線を通したような音質劣化をさせたいのかな?
それともソフトウェアAで再生したものをソフトウェアBで録音したい、みたいなことなのかな?
506494:2005/08/31(水) 00:33:49
ゲーム内でボイスチャットする際にあらかじめ用意してる音声(wave)を
ボタン1つで再生するソフトを作りたいんですよ。
507494:2005/08/31(水) 00:38:11
ゲームと言っても自分が作ってるゲームじゃなくて
市販のゲームなんですが、そんな事可能?
508デフォルトの名無しさん:2005/08/31(水) 00:39:53
よくわかんね
電話のような音質にしたいのなら4000Hzから上をカット
509デフォルトの名無しさん:2005/08/31(水) 00:41:28
なんだ厨房か。。。('A`)
510デフォルトの名無しさん:2005/08/31(水) 01:15:44
>>504
Windows MultimediaのAudio Mixerあたりが関係してそう。
http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_audio_mixers.asp

あるいは、そこまでしなくても、
単にWindowsアクセサリのボリュームコントロールの録音ミキサーをいじるだけでも、
再生しているWAVEをそのまま録音入力にリダイレクトさせることができるかも。

ゲーム側でミキサーを完全に制御されてたら、どうにもならないかもしれないけど。
511デフォルトの名無しさん:2005/08/31(水) 07:57:39
Virtual Audio Cable のような事がしたいって事かな?
512デフォルトの名無しさん:2005/08/31(水) 11:15:00
>>507
PC2台用意汁
513デフォルトの名無しさん:2005/08/31(水) 17:38:22
windowsメディアプレーヤーでサウンドを再生したときにあの音域ごとにバーが伸び縮み?する奴ってFFTでwavを解析してるんだよね?
これの実装ってどれぐらいの数学の知識と労力がいるの?この中で自前でソース書いた人いる?
514デフォルトの名無しさん:2005/08/31(水) 18:20:32
>>513
つ【フーリエの冒険】
515デフォルトの名無しさん:2005/08/31(水) 18:48:48
>>513
FFTは理系の大学1年程度の知識で理解可能。理解せずに実装だけだったら中学生レベルの知識でOK。
FFTのソースは10行もあればかける単純なもの。
516デフォルトの名無しさん:2005/08/31(水) 19:24:03
FFTのバタフライ演算のアルゴリズムは簡単だけど、それだけを理解したところであまり意味はないよね。
FFT自体は、離散フーリエ変換(DFT)を高速に計算するブラックボックスとして使えば十分で、
その結果を活用するためにはDFTの意味をしっかりと理解しておく必要がある。
理工学系では、大学2〜3年次に信号処理論として体系的に学ぶ場合が多いと思う。
517デフォルトの名無しさん:2005/08/31(水) 22:11:29
>>513
FFT使わずにBPFでなんとかする手もある。
精度とか要求されない用途なのでいくらでも手抜き可。
518デフォルトの名無しさん:2005/09/01(木) 02:40:05
ただ周波数帯ごとのレベルを見たいだけだったら、
>>517 の言うようにバンドパス・フィルタで実装するほうが
レイテンシーもメモリ要求も少なくていいかも。
WindowsMediaPlayerとかWinAmpとかは、
FFT結果を他の処理にも使ってるので
そのついでで情報をもってこれるからFFTを使ってるだろうけど。
519デフォルトの名無しさん:2005/09/01(木) 06:10:11
というより、MP3圧縮を復元する時にバンド毎の強度が得られるから、ソレを利用してる可能性もあるよ。

俺が良く使うのは
バンドパスといってもQ無限大の発振器領域のフィルタに窓関数かける奴だな
他に2相の発振器を掛け算して求めるというのも使う
520513:2005/09/01(木) 14:41:10
LPF,BPF,HPFってどんなふうな方法でやるの?
抵抗とコンデンサで作るのは知ってるけどデジタル処理でやるのはよくわからん…
ちょうどいいサイトとかあったら教えてほしい
521デフォルトの名無しさん:2005/09/01(木) 15:32:32
522デフォルトの名無しさん:2005/09/01(木) 15:38:53
>>520
実践ディジタルフィルタ設計入門という本で高校生でも解かるレベルで説明してあるよ。
523デフォルトの名無しさん:2005/09/01(木) 16:07:11
>>521
520じゃないけどありがとう。
524デフォルトの名無しさん:2005/09/01(木) 16:33:25
>>522
520じゃないけどありがとう。注文します田。
525デフォルトの名無しさん:2005/09/01(木) 20:00:44
>>520
BPFはLPFとHPFの組み合わせ。
HPFは元データからLPFの結果を減算すればいい。
あとはLPFさえ何とかすればOK
526デフォルトの名無しさん:2005/09/01(木) 20:02:14
>>520
すでにIIR/FIRフィルタの使い方を知っていて、
ただフィルタの係数を計算したいだけだったら
この文書がラク。
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
527デフォルトの名無しさん:2005/09/01(木) 20:19:20
まぁ、単なる畳み込み演算なだけだから、フィルタ係数を固定して行うだけなら簡単なんだけどね。
528デフォルトの名無しさん:2005/09/01(木) 21:41:52
簡単なLPFなら
考え方としては、信号の反応を悪くすればいいわけだから、
前回の値をそのまま今回の値にしないで、前回と今回の差分を2で割ってそれを前回の値に足す、と言うような方法でもきる。
HPFも似たようう簡単計算でできる。
529デフォルトの名無しさん:2005/09/02(金) 00:46:03
>>528
そのLPFって、要するに、一番単純なフィードバック1回のIIRフィルタだよね。
具体的にインパルス応答から周波数特性を求めたりしてみると面白いと思うよ。
530513:2005/09/03(土) 22:39:50
FIRフィルタ?印パルス応答?
>>521のサイトは役に立ちそうなんだが英語をすらすら読むのは無理なんできつい…
the Simplest Low-Pass Filterにあるコードとかを参考にしてみるよ。
>>528
前回の値をそのまま今回の値にしないってどういう意味なのかわからないんだけど…
531デフォルトの名無しさん:2005/09/04(日) 10:21:49
>>530
> 前回の値をそのまま今回の値にしないってどういう意味なのかわからないんだけど…

うむ、ちょっと不思議な日本語だな。

ようは、こんなことをやるというわけ。

音声データが 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]を通じて間接的にもっと過去の値
に引きずられて、動きが鈍くなる。つまり、ローパスフィルタというわけ。
532531:2005/09/04(日) 10:36:45
一方、w を 1.0 より大きくした場合には、(1.0 - w) はマイナスになるから、
y[i] は、 x[i] と 過去の出力y[i-1]との差分みたいなものになる。つまり、
変動分を強調するハイパスフィルタ。

当たり前だけど、w=0だと、出力は y[0] のまま永久に変化しないので
無意味。

そして、w の値をマイナスにした場合と、2.0以上にした場合には、
計算を続けているうちにオーバーフローして滅茶苦茶になる。
533デフォルトの名無しさん:2005/09/04(日) 16:44:07
大原ゆき
534デフォルトの名無しさん:2005/09/07(水) 16:00:03
「帯域制限したパルス波と位相をずらしたマイナスのパルス波の合成波を積分」
っていう場合、「積分」は具体的にコード上どうすればいいんでしょう?
535デフォルトの名無しさん:2005/09/07(水) 17:07:20
「帯域制限したパルス波と位相をずらしたマイナスのパルス波の合成波を積分」
っていう場合、「積分」は具体的にコード上どうすればいいんでしょう?

まず帯域制限したパルス波をどう表現するかだろうね
Z変換出来れば単なる累積で代用出来る。
そうじゃないなら積分した式を直接積分しないといけないだろう。

536デフォルトの名無しさん:2005/09/07(水) 17:17:44
バッファに2π長のパルス波形が入ってる状況下で、
その「積分」ってどういうことなのか?ってことなんです。

void 積分( double* wave, unsigned int bufferlength )
{
// なにしたら??
}
537デフォルトの名無しさん:2005/09/07(水) 17:23:49
それなら単に 累積だろう
>>531 の 書き方なら
y[i] = y[i-1] + w * x[i];
538デフォルトの名無しさん:2005/09/07(水) 17:26:22
>>535>>537
文脈がわからないのによく答えられるねぇ。
俺はエスパーじゃないから無理だ。
539デフォルトの名無しさん:2005/09/07(水) 17:52:10
>>538
たぶん前スレ114レス目の話を実装するにはどうしたら良いかって事なんだろう
矩形波をどう作るかという話ね。
540デフォルトの名無しさん:2005/09/07(水) 17:56:24
帯域制限されたパルス波形は、この場合オーバサンプリングされていなければならない。
当然、帯域は実サンプリングの1/2では完全にカットされている必要がある。

で、オーバーサンプリングされた状態で累和しないで、実サンプリング上で累和(間引いて累和)
していいかどうかの問題かな?
541デフォルトの名無しさん:2005/09/07(水) 18:04:36
>>539
なるほど、そんな文脈があったのね。
確かに単なる累積で良さそうだ。
542デフォルトの名無しさん:2005/09/07(水) 18:12:53
出来ました。ありがとう。
積分した結果できる波形の値域を-1.0〜1.0にするナイスな方法ってあるんでしょうか?
543デフォルトの名無しさん:2005/09/07(水) 18:29:03
>>542
もともと矩形波は出力したい周波数がサンプリング周波数に近づく程信号レベルが小さくなる。
全スレ798にあるように、fs/4を超えると、単なるサイン波で信号レベル差だけの表現となる。

だから、小さくなっていいんだよ。
544デフォルトの名無しさん:2005/09/07(水) 18:31:01
>>542
値の最大値で割って浮動小数点にキャスト
545デフォルトの名無しさん:2005/09/08(木) 09:41:33
MIDIの再生と同時に楽譜を表示して、カラオケのように
進行に合わせて音符の色を変えていくようなものを
作りたいのですが、音符の表示は普通どのように
行うのでしょうか?
メタファイルを用意しておいて...みたいな感じですか?

参考になるサイトとかあったら教えて下さい。



546デフォルトの名無しさん:2005/09/08(木) 13:57:13
音符のデータを別に作るのが良いです。
MIDIの音符はnote on , note offで表現されているので、音符の長さはわかっても音符の種類がわかりませんから。
とくに休符がやっかい。
547デフォルトの名無しさん:2005/09/09(金) 09:26:35
>音符のデータを別に作るのが良いです。
MIDIファイルとは別にということですよね?
MIDIの中に楽譜データも入っていると思ってました。

あと、音符の画像はどうやって描画するのが通常でしょうか?
548デフォルトの名無しさん:2005/09/09(金) 10:06:20
>>547
フォント作ってテキスト表示。
549デフォルトの名無しさん:2005/09/09(金) 12:13:27
Freeware
Musical symbols in a dingbat font.
http://simplythebest.net/fonts/fonts/musical_symbols.html

解凍して %Windows%\Font にコピー

使うサイズ毎にメモリ上のビットマップに展開しておいて

550545:2005/09/09(金) 17:29:05
まとめるとこんな感じですか?

1.楽譜データはMIDIとは別にファイルとして用意する。
 (歌詞を出す場合も同じ?)
2.楽譜データを読み、メモリ上にビットマップとして展開しておいた
 音符フォントを描画する。
3.MIDIの再生に合わせてカラオケ風に音符(+歌詞)の色を変える。

551デフォルトの名無しさん:2005/09/09(金) 17:58:22
楽譜データはその場で作ったほうがいいと思うが。

1. SMFを解析して、おおざっぱにクォンタイズを掛ける(見やすい楽譜を作るため)
2. SMFを解析して、ノートオンとノートオフを対応付ける(ここで楽譜データの原型が出来る)
3. 楽譜の原型を解析して、1音も鳴っていない箇所を休符とする(おおざっぱな楽譜の完成)

俺ならこんな感じかなぁ。
もちろん、WRDみたく別に楽譜データを用意してもいいと思うけど。
552デフォルトの名無しさん:2005/09/09(金) 18:19:14
大雑把な楽譜ならそれでできそうですねぇ。
553デフォルトの名無しさん:2005/09/09(金) 18:21:12
MIDIデータはいじらずに楽譜だけいじったりはしないってこと?
554デフォルトの名無しさん:2005/09/10(土) 00:45:42
好きなようにいじればいいと思う
555名無しさん@そうだ選挙に行こう:2005/09/11(日) 07:27:19
簡単そうに見えて簡単に出来ない事がある

1.CDをかけるとカラオケで再生してくれるプレイヤーってあるよね。
  逆に歌手だけ抜き出すってのも簡単?

2.アナログ時代の電話線のエコーキャンセラーってあったよね?あれと同じで
 ビデオカメラにメカノイズが載るのはカメラ上に別のマイクつけて適応処理したら簡単に消せるよね?


3.最近3Dサウンドってあるよね。 2スピーカーなのにヘリコプターが立体的に飛び回って聞こえるよ。
  だから、狭い間隔でおいた2スピーカーを広げて置いたように聞かせるのも簡単だよね

4.ホール効果とか残響のある部屋を再現する機能がついてるじゃん。 アレの逆でさ
  残響の多い部屋から残響を消すのは、マイク付ければ簡単だろ?
  マイクで部屋の特性取りながら逆位相の信号を足せばいいだけだろ?
556名無しさん@そうだ選挙に行こう:2005/09/11(日) 07:36:37
俺の上司がこの4つに似た内容を ヤレ と定期的に言って来るのだが・・・

557名無しさん@そうだ選挙に行こう:2005/09/11(日) 08:44:18
その上司に聞け。
558名無しさん@そうだ選挙に行こう:2005/09/11(日) 10:05:49
1)ステレオ中央=左右に同相で記録された信号はL-R減算すれば消去可能だが
左右同相信号だけを取り出す事は理論的には出来ない。
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つある。
559デフォルトの名無しさん:2005/09/12(月) 17:46:30
>555
>3
ステレオ感はスピーカーの間隔じゃなくてリスニングポイントとの角度じゃね?
音小さくしとけばスピーカーに近づかざるおえないから、角度も自然と得られる。

あとはBOSEあたりが中央に一つだけスピーカー置いて(実際には幾つかスピーカーが付いてる)
壁の反響を利用してステレオ感を得られる、とした20万くらいの製品が存在したけど、
1万そこそこのスピーカーの方がよっぽどマトモな音だった。
560デフォルトの名無しさん:2005/09/14(水) 18:24:24
ボーカルキャンセルしてカラオケになった信号を、元の信号から減算すればいいんでないの?
561デフォルトの名無しさん:2005/09/14(水) 19:42:48
>>560
ボーカルキャンセルで出来上がるのは、センター成分なしのモノラル信号。
562デフォルトの名無しさん:2005/09/15(木) 23:15:08
>>560
残念ながら、それではダメ。

X=L-R で、センターで歌っている人の声をキャンセルすることはできるが、
それを使ってセンターだけを残そうとしても・・・

例えば、L-X = R となって、全然消せない。
563デフォルトの名無しさん:2005/09/15(木) 23:22:03
>>562
それって、センターで鳴ってる楽器の音も消えないか?
564デフォルトの名無しさん:2005/09/16(金) 00:18:08
もちろん消えるが。
ボーカルキャンセルてそんなもだよ。
565デフォルトの名無しさん:2005/09/16(金) 02:09:03
まともまボーカルキャンセルなら周波数領域も限定してるんじゃないかね。
ベースやバスドラム(重低音)やスネアドラム(高周波ノイズ系)のような重要な楽器もも中央に来ることが多いから。
566デフォルトの名無しさん:2005/09/16(金) 07:10:42
BPF(L-R) + LPF(L+R) -HPF(L+R) とかするわけね。

でも人間の声も低音から高周波まで広がってるからね
567デフォルトの名無しさん:2005/09/16(金) 09:15:35
>555
自分の専門の範囲で分かることは・・・

1) そういうソフトがある。Windowsで動いているのを見た。
 ただ、元曲とカラオケ版が必要。
 それじゃあ簡単にできそうだと思って
 自分でやろうとすると歌有りと歌無しが
 サンプル単位でズレていたりして意外に難しいんだよ。

2) 適応処理すればできそうだけど、コストを抑えるのが大変そう。
 原理としてはノイズ・キャンセル・ヘッドホンと同じ。
 別の手法として独立成分分析を使う方法もある。
 それだったらマイク数が多ければ多いほどノイズは消しやすいよ。

3) 可能だけれど、スイート・スポットがかなり狭くなるのは覚悟した方がいいかも。
 クロストーク・キャンセレーションをした上でバイノーラル信号を再生すればよし。
 ただ、耳の形状や頭の大きさによってだいぶ効果が異なるので、実用的じゃないかもね。

4) 四つの中では最も難しいかも。ブラインド・デコンボリューションはある程度
 研究されているので、それっぽい音にするのは可能だけれど、
 完全に残響音を消すのは今のところ無理。
568567:2005/09/16(金) 09:18:15
そういえば昨日、こんなのにも出会った。
センターの音だけフェードアウトしていく。
ttp://www.mgsoft.org/jikanbae/blog/archives/2005/09/post_132.html
ただ、左右の楽器の定位がオリジナルと違うような気がする。
569デフォルトの名無しさん:2005/09/16(金) 13:31:45
570デフォルトの名無しさん:2005/09/16(金) 13:40:03
たぶん、こんな感じだろう

Aを歌入り Bをカラオケとして

C=A*B 畳み込みの最大ピーク付近を採用して残りはゼロにしてしまう。
D=1/C その中央付近の逆演算(順逆でだいたいOKだろ)

A-B*D でAとBの相関のある成分は消えるだろう。

これを適応処理でやるか、FFT使ってやれば実時間で処理できるだろう
571567:2005/09/16(金) 21:19:44
>570 の言うやり方でできるんだけど、ちょっと補足。
AとBは44.1kHzよりも高いサンプリング周波数で
作られたものからダウンサンプルして作られていることが多いし、
場合によってはアナログにいったん落としていることもあるので、
AとBはサンプル単位でマッチしない。
つまり、44.1kHzのまま処理をすると音が残っちゃう。
そういうノイズも消そうとすると
サンプルの補間処理なんかが必要になってくる。
572570:2005/09/16(金) 22:26:18
大丈夫。例えば A/Bが 1/2サンプルズレていたとすれば
Dにはそういう特性の応答特性が出るわけだからさ

畳み込みをする事がすなわち補間処理でもあるわけだ。
ただ、「最大ピーク付近を採用して残りはゼロに」の処理がマズイけど、これが無くてもマズイ
A/B共に、最初に高域を削っておかないとな
573567:2005/09/17(土) 02:00:55
Dを求める計算は周波数領域でやると言うこと?
それだったら確かにサンプルのズレは考えに入ってるよね。
時間軸でやるんだったら・・・勉強不足でよく分からないっす。
574570:2005/09/17(土) 07:28:32
サンプルのズレについては
周波数(FFT)で求めようが、時間軸(適応や逆行列)で求めようが同じ。


上に書いた事の補足
全サンプルで求めたDで A-B*D を求めたら、結果はゼロになってしまう。
だから、最大ピーク付近だけを採用しなければいけない。

でも、そうすると、ローカットの特性が出てしまい、 A-B*Dで高域が残ってしまうから
その高域をカットしておこうという事
575デフォルトの名無しさん:2005/09/18(日) 15:47:43
そもそもの問題は、
> Aを歌入り Bをカラオケとして

この両方を入手できるのか? と、いう点ではないのか?

そういうものを入手できる立場の人なら、

C 歌のみ

を、最初から入手できそうな気がしないでもないんだけど・・・
576デフォルトの名無しさん:2005/09/18(日) 16:37:36
>>575
>>569 のリンク先にもある通り、
>シングルCDに収録されているオリジナルトラックとカラオケトラックの差分を取り
って事じゃ…?
577デフォルトの名無しさん:2005/09/18(日) 23:09:36
もとネタは、>>555 さんの、

> 1.CDをかけるとカラオケで再生してくれるプレイヤーってあるよね。
>   逆に歌手だけ抜き出すってのも簡単?

なのだから、職務課題として与えられているのは、ただの1枚のCDだけで、
それから歌手の声だけ抽出しろという、ご無体な指令ではないかと・・・

それはさておき、会議システムとかで、「大量のマイクロフォンで会議室の
あちこちの音声を同時にサンプリングしておいてから、いろいろ相関を
取って特定の位置の人物の声だけを抽出(周辺の他人の声はキャンセル」
と、いうような研究は、かなり進んでいるらしいね。数学の理屈は単純だけど、
システム同定とか逆フィルタの安定性とか計算量とかを考えると、すごい
仕事をやっているなと感心してしまう。
578デフォルトの名無しさん:2005/09/19(月) 14:19:51
はじめまして!
いきなり、質問なんですが
C++でwaveファイルの出力って、どうすればいいのでしょうか?
579デフォルトの名無しさん:2005/09/19(月) 18:18:44
>>578
WAVEファイルと書いているから、環境がWindowsだという前提で話を
する。結論としてはどうやってもいい。RIFFとWAVEの構造を勉強して
バイナリファイルとして書き出してもいいし、mmio〜系のAPIを使っても
いい。既存のライブラリを使ってもいい。例えば、
ttp://www.vector.co.jp/vpack/browse/person/an028616.html とか。
580デフォルトの名無しさん:2005/09/19(月) 20:05:39
>>579
ありがとうございました。
581デフォルトの名無しさん:2005/09/20(火) 22:11:30
ボーカルキャンセルはL-R以外でもできると思うんだが。
582デフォルトの名無しさん:2005/09/21(水) 01:42:13
>>581
問題は、ボーカル抽出(?)のほうね。
583デフォルトの名無しさん:2005/09/21(水) 06:45:36
>>581
たとえば?
584デフォルトの名無しさん:2005/09/21(水) 20:26:00
L-R 以外でキャンセルできれば>>562の式がなりたたくなる。
と単純に考えてみた。
585デフォルトの名無しさん:2005/09/21(水) 22:13:55
まあ、君は出来るんだろうね。

スペクトログラムに手書きで消しゴム入れてきゃいつかは消せるかもしれんね。
586デフォルトの名無しさん:2005/09/21(水) 23:42:48
卒論でデジタルフィルタのソフトを作っていて、何も信号が出てこない失敗作
を作ったら、研究室の先輩が「ノーパスフィルタだな」と冷やかしてくれた。
Orz
587デフォルトの名無しさん:2005/09/22(木) 08:24:54
>>581
ボーカルをL-R以外で消すには、
 1、ボーカルだけを取り出して 減算する
 2、ボーカル以外の音を取り出す

 つまり、PC内に発音モデルを作って、そのモデルのパラメータ推定をして
 合成させてしまう・・・・という方法という事になる。

1は、実はボーカルを完全合成しても出来ない。
  声には摩擦音がある。摩擦音はノイズなので、ノイズを合成出来ても
  元の音から減算しても消去出来ない

2は、FM音源のような音なら、シンセサイザーのパラメータを完全に取れれば可能
  かもしれないね。

 直交変換で簡単に分析できるわけじゃないから、厄介だろうけどね

588デフォルトの名無しさん:2005/09/22(木) 10:04:26
>>587
おまえ、ほんとにバカだな。
589デフォルトの名無しさん:2005/09/22(木) 20:27:09
>>588
ん? 587は、「L-R以外の方法でボーカルキャンセルをするなんて無茶だ」と、
説明しているのだぞ。
590デフォルトの名無しさん:2005/09/22(木) 21:00:41
>>555の課題の2だけど >>558にある他に

時間に対して動的にフィルタ係数が変化するフィルタなら対応出来るかもしれない

と思った
591デフォルトの名無しさん:2005/09/22(木) 21:18:26
>>558の3だけど、
入力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
となって、「左の音はもっと左、右の音はもっと右」ということが実現できるんじゃないだろうか。
自分の知るかぎりでは、いくつかの特許で使われている手法だし、
あるていどは有効なんだろうな。
592デフォルトの名無しさん:2005/09/22(木) 21:19:16
追記:ただ、スピーカー位置より外側に音を配置するのが可能かどうかは知らない。
593デフォルトの名無しさん:2005/09/23(金) 12:57:24
>>592
可能。逆相の音をパンディレイで飛ばすとかいう技を使う人もいる。
594デフォルトの名無しさん:2005/09/23(金) 21:15:51
左右の耳位置と音速を考えると、
1msくらいのディレイ差を左右に与えれば
音が左右に飛ばせるわけですね。
ただ、スイート・スポットに頭がないと有効じゃないですが。
595デフォルトの名無しさん:2005/09/23(金) 22:57:59
PCMの基礎中の基礎で質問です。

データの合成はオーバーフローチェックしつつの加算、8bit>16bitは<<8、
周波数変換は 約数の場合、とりあえずそのまま倍数分コピー、
約数で無い場合・補完したい場合は線形補完 で宜しいのでしょうか。

これ迄自分で生データ弄った事が一切無かったので、一からの
模索状態です。
596デフォルトの名無しさん:2005/09/23(金) 23:04:04
あ あと、48KHz>44.1KHzで線形補完する余裕が無い時、
44.1KHz[samplecount]=48KHz[samplecount*48000/44100];
等でサンプルを飛ばしても、それなりに聞こえるのでしょうか。
597デフォルトの名無しさん:2005/09/23(金) 23:19:01
・品質(ゲームの効果音の合成か?波形エディタか?)
・性能(リアルタイムか?オフラインレンダリングか?)

にもよるが、鳴ればいいっていうんなら595,596のそれでいい

8bitPCMはunsigned(0〜255)で16bitPCMはsigned(-32767〜32768)
なことも多いから気をつけろ
598デフォルトの名無しさん:2005/09/23(金) 23:31:23
どもです。
unsigned の場合、128が0扱いになるのでしょうか?
599デフォルトの名無しさん:2005/09/24(土) 00:17:37
あ 波形が半分で <<7になると言う事ですかね。
とりあえず実装してみる事にします。
600デフォルトの名無しさん:2005/09/24(土) 03:49:06
>598
そう。8bitPCMのwavがソレに該当するから
ツールで吐いてバイナリエディタで見るとわかる。

>596
線形補完は多分想像してるよりも圧倒的にノイジーになるよ。
波形って合成音でもない限り基本的に曲線になるので、
線形で補完するとノコギリ波状になるから。
601デフォルトの名無しさん:2005/09/24(土) 04:31:06
>>597
細かい突っ込みだけど、16bit符号付き整数は-32768〜32767だよね。
602デフォルトの名無しさん:2005/09/24(土) 06:48:53
>600
>596 の方法だと線形補完すら行わない。
同じような音が鳴っていればいいというんだったら >596 で構わない。
ノイズを減らしたければ3次補間したいところだ。
603デフォルトの名無しさん:2005/09/24(土) 12:15:55
>602
オーノー・・・レス番を595と間違えた。
スプラインで補完するのが一般的だと思うけど、
FFTとかで周波数成分から波形を起し直すって可能?
この場合、周波数成分用の補完方法が必要にはなるんだろうけど。
604デフォルトの名無しさん:2005/09/24(土) 12:18:20
48000サンプルを44100/2Hz分までDFT、IDFTすれば補間は必要ないよ。
605デフォルトの名無しさん:2005/09/24(土) 14:13:53
一般的なのは、LPFをかける事だろう。
606デフォルトの名無しさん:2005/09/30(金) 22:11:43
サウンドの再生している部分の音量を取得するときに、その部分での最大値を取るって言うのをよく見かけるけど、どうして平均値じゃないの?(正負に振れている場合は絶対値の平均)
607デフォルトの名無しさん:2005/09/30(金) 22:38:10
平均音圧はエネルギーの平均だからrmsで計算する

ピークで計算することが多いのは、
歪み防止などの目的で振幅自体を監視したいことがほとんどだから
608デフォルトの名無しさん:2005/09/30(金) 22:55:05
ロジックを考えるのは午前中
午後はコードを書く
50分仕事したら10分休む
17時には仕事を止める
夕食はあまり量をとらない
酒はほどほどに
タバコは吸わない
セックスは金土に集中する

609デフォルトの名無しさん:2005/09/30(金) 23:45:32
午前: 8〜12
  コードを書く

昼休: 12〜14
  昼食
  昼寝しながらロジックを組む

午後: 14〜18
  コードを書く

夜休: 0〜6
  夕食
  寝ながら翌日のロジックを組む

その他:
  作業は45分休憩15分
  酒は晩酌に少々
  タバコは1日2箱
  セックスは寝る前の挨拶
  土日は体を動かす
  
610デフォルトの名無しさん:2005/10/01(土) 04:09:09
>>606
もちろん『絶対値の最大値」「絶対値の平均」や「二乗平均」、いずれもでも
間違いということはない。

要は、使い道。

>>607が言うように、ピークでクリップしないようにしつつ、できるだけ
ダイナミックレンジ一杯にデータの数値を入れたいときは、
「絶対値の最大値」、あるいは、符号付の値の最大・最小値の範囲を
基準にするのが、計算上都合がいい。

もし電力やエネルギーについて調べたいなら、二乗平均を使うのがいい。

もし、アンプの電力効率について考えたいなら、絶対値の平均がいい。

と、いうわけ。
611デフォルトの名無しさん:2005/10/03(月) 00:27:43
すれちがいっぽいですが。。。
ソフト音源を自作しようと思っています。
これを音源ドライバとしてMIDIマッパーから選択できるようにするには
レジストリ登録だけではだめなのでしょうか?
環境はWinXP, VC++2003 & XPDDKです
612デフォルトの名無しさん:2005/10/06(木) 05:44:31
>>611
MIDIYorkとTIMIDITY++のソースでも参考にしたら。
613デフォルトの名無しさん:2005/10/15(土) 23:45:05
wav(リニアPCM)音声を90%に正規化してから、
最後の3秒をフェードアウトにするっていうコンソールアプリを作りたいんだけど、
簡単に出来るかな?
614デフォルトの名無しさん:2005/10/15(土) 23:58:43
1、waveファイルの構造を調べる事
2、ファイルの入出力コードを書く
3、あとは他に難しい事はないだろう
615デフォルトの名無しさん:2005/10/16(日) 00:10:44
>>613
簡単にできると思うよ。
616デフォルトの名無しさん:2005/10/16(日) 04:22:50
3秒に満たないwaveファイルが指定されたときは無視?
617デフォルトの名無しさん:2005/10/16(日) 06:11:43
始まった時点でフェードアウト中なんじゃないの?
618デフォルトの名無しさん:2005/10/16(日) 10:08:38
>>616
自分のPCの中だけで使う予定だから変なファイルが入ることは想定してない。
数値操作だけでやるつもりなんだけどwaveファイルでもリニアPCMだけならコーデックとか関係ないよね?
619デフォルトの名無しさん:2005/10/16(日) 16:42:56
>>618
リニアPCMなんだから当然コーデックは関係ない。ヘッダの仕様を調べたらあとは楽勝。
620デフォルトの名無しさん:2005/10/16(日) 18:05:44
8bit/16bitでunsigned/signedの違いがあるからそこだけ気をつけれ。
621デフォルトの名無しさん:2005/10/17(月) 14:12:25
サンプリング周波数から3秒前のデータの位置しらべて、
位置まで来たらフラグ立てて窓関数みたい適当な係数かけて減衰させれ
AカーブとかBカーブとか自分の理想の減衰いくつか試せば楽勝
622デフォルトの名無しさん:2005/10/17(月) 21:44:12
楽勝擬似ソースコード希望です
623デフォルトの名無しさん:2005/10/18(火) 09:55:58
>>622
>>621そのままじゃないの?
カーブはテーブルでもかまわんし。

624デフォルトの名無しさん:2005/10/18(火) 13:15:55
>フラグ立てて窓関数みたい適当な係数かけて減衰
窓関数?ここら辺がよくわからんです
625デフォルトの名無しさん:2005/10/18(火) 13:51:49
621じゃないけど、こう修正するといいのかな?
三秒前の位置から適当な係数かけて減衰させれ
626デフォルトの名無しさん:2005/10/18(火) 13:52:24
627デフォルトの名無しさん:2005/10/18(火) 14:08:04
>>626
その窓関数は分かるんだけど、ここで何故窓関数なのかわからんです。
後ろ三秒をフェードアウトする波形を切り出すのに、三秒の窓(?)を想定して
掛け算しろっていう意味ですか? こういうのも窓関数って言うんでしょうか?
628デフォルトの名無しさん:2005/10/18(火) 14:32:14
たぶん言ってるのは 窓関数のような滑らかなカーブで減衰させると格好いいよという事でしょ
629デフォルトの名無しさん:2005/10/18(火) 14:46:39
なんだか目的見失って単語に右往左往してる?
630デフォルトの名無しさん:2005/10/18(火) 15:06:00
窓関数って、与えられた未知の波形についてスペクトル分析とか行う際に、
切り出し範囲と実際の波形の周期とのずれによって生じる誤差を抑えるためのモノかと
思っていました。

結局、最後の3秒についてフェードアウトさせるために使うカーブの関数も「窓関数」の
ひとつということでしょうか? また、仮に全体の音量を下げるためにすべての定義域
について0.8倍するする関数を考えたときも、窓関数と呼べるんでしょうか?
631デフォルトの名無しさん:2005/10/18(火) 15:16:41
窓関数じゃないけど、窓関数のようなって言ってるじゃないか
632デフォルトの名無しさん:2005/10/18(火) 16:01:48
やっぱり目的を見失ってるようだ。
633デフォルトの名無しさん:2005/10/18(火) 17:54:55
>>630
まあまあ。

確かに通常、窓関数と呼ばれている技法が使われるのは短時間フーリエ
分析だったりするけど、「窓関数」という言葉それ自身には、
「時間の非常に長いものを除く」というような条件はないから、極端な話、
1時間の楽曲データの頭と尻尾の数秒をフェードインフェードアウトする
ような音量制御も、「台形の窓関数をかける」と、言えなくもない。

もちろん、普通はそんな言葉づかいしないし、すれば「はぁ?」ってな顔で
見られるだろうけど。

さすがに、音量を変えるために全データを 0.8倍するなんて操作は、
窓関数とは言わないだろうね。窓関数を掛けるってのは、波形の切り出し
だと思う。

今回、>>621さんは、窓関数「みたいな」としか言ってない。あくまでも
比喩だから、深く考えすぎないこと。
634デフォルトの名無しさん:2005/10/18(火) 20:29:52
2ちゃんねるの遊び方

1. まともそうな文体で、適当にネタを振ります。質問などでも良いでしょう。
2. 誰かが返事をしてきたら、相手の言葉尻を捕らえて再度慇懃に質問をします。
3. 飽きるまで2を繰り返します。
635デフォルトの名無しさん:2005/10/25(火) 00:53:00
今日のニュースでやってた必要のない音だけ消すのってどうやるの?
636デフォルトの名無しさん:2005/10/25(火) 02:26:26
今日のニュースってなに?
お前が見たニュースは知らん。
637デフォルトの名無しさん:2005/10/25(火) 02:31:16
俺も知らんが、なんとなくWBSのトレたまと予想
638デフォルトの名無しさん:2005/10/25(火) 03:35:24
NHKの7時のニュースじゃないのか?
ttp://www3.nhk.or.jp/news/2005/10/25/d20051024000151.html
639デフォルトの名無しさん:2005/10/25(火) 05:55:47
この装置を開発したのは、大手鉄鋼メーカー「神戸製鋼」と、国立の奈良先端科学技術大学院大学の共同チームです。
さまざまな音の中から、人間と同じように聞きたい音だけを聞き分けるには、
従来の装置では、音声信号を解析し分離するために膨大な量の計算が必要で、
いまだに実用化には結びついていません。

しかしこの装置では、これまでより計算量がはるかに少なくてすむ、
新しいプログラムの開発に成功したうえ、音の信号を高速で処理する半導体を使うことで、
瞬時に聞き分けが可能になりました。

また、市販の半導体などを使っているため比較的価格が安く、
ポケットにも入る10センチ以下のサイズまで小型化され、小さな電池でも、長時間動かすことができるようになりました。
この装置は、雑音が多い中でも、人の声だけをより鮮明に聞き取れる携帯電話向けや、
会話する能力を持つ介護用など、次世代ロボットへの応用などが期待されるという事です。
開発した神戸製鋼では、こうした技術は世界でも初めてとしており、
森田孝司主任研究員は
「すでにメーカーからの引き合いも来ており、用途に合わせて、さらに小型化することも可能だ」
と話し、来年度の実用化を目指すとしています
640デフォルトの名無しさん:2005/10/25(火) 06:02:39
641デフォルトの名無しさん:2005/10/25(火) 09:36:26
あー、つまり >>635 は
記事中で言うところの『独自の音源分離アルゴリズム』を
訊いてるわけか。

  判 る わ け な い だ ろ っ !
642デフォルトの名無しさん:2005/10/25(火) 14:20:23
>>640の記事の
複数のマイクで拾った音を音源ごとに分離し、
音源からの距離などをもとに聞きたい音だけを取り出す。

原理は左右の音のずれから音源の位置を予測してフィルターかけるだけか
643デフォルトの名無しさん:2005/10/25(火) 15:18:47
まぁやってることはそんな小難しいことじゃないだろう。
だからこそ、小型化と低コストの両立が出来るわけだし。
644デフォルトの名無しさん:2005/10/25(火) 15:20:49
なんか誤解されそうな文なので訂正。

まぁやってることは>>642の様に割と単純だったりするんだろう。
だからこそ、小型化と低コストの両立が出来るわけだし。
645デフォルトの名無しさん:2005/10/25(火) 18:52:10
関連論文をリンク願います。
646デフォルトの名無しさん:2005/10/25(火) 22:05:43
まてゴラ・・
ATR のレベルがどれほどのもんかは別として、普通に小難しくないか?
単音じゃなくて環境雑音から分離するんだぞ・・
647デフォルトの名無しさん:2005/10/25(火) 23:08:10
FFTして左右inputから似てる山だけ削る。
左右の位相を考慮すれば方向ごとの分離もなんとかできないかな。
648デフォルトの名無しさん:2005/10/25(火) 23:22:47
原理は単純だけどリアルタイムでやるのはきついな
649デフォルトの名無しさん:2005/10/25(火) 23:50:57
どこらへんがきつそう?
やっぱり「似てる山だけ削る」のとこかね。
650デフォルトの名無しさん:2005/10/26(水) 00:01:01
お前ら、勝手な想像するまえに、関連論文探せよ。
論文が無ければ、勝手な想像をしよう。
651デフォルトの名無しさん:2005/10/26(水) 00:34:49
論文あさる前に思いついちゃったので勝手な想像で書いちゃう

別々の位置で音源AとBがなってるとする。
Rの位相をずらしたR'をつくって、L-R' する。

R'の位相ズレがある位置に来たとき、L-R'から片方の音源Aの音量が極端に減り、
音源Bにエコーがかかったようになる。さらに、L-R'に対してエコーの抑制処理をかければ
音源分離に近いことができそうなできないような。

以上勝手な想像ですた。
あーすっきりした
652デフォルトの名無しさん:2005/10/26(水) 00:47:37
44100kHzでサンプリングして、左右の波形に1サンプルのずれがあると0.0227msで
音速が340m/sとして左右のマイクの距離は7.72mm程度になるから
これ以上の距離でマイクの距離を一定にして三角関数使って音源の方向はー
もうムリめんどくさいです(><)
653デフォルトの名無しさん:2005/10/26(水) 10:13:53
まず、
 ・ FFTで周波数軸上で加工すると ブロック間の接続が出来ない
   接続するようにサイン成分だけにすると、やっぱり違和感がある
   1/2サンプルずらして分配して接続するとその周期の音が出る
654デフォルトの名無しさん:2005/10/26(水) 14:11:05
独立成分分析つかってるんじゃないの?
655デフォルトの名無しさん:2005/10/27(木) 01:37:04
おい、お前ら!
蓮根プロジェクトの今を語ってくれ。
656デフォルトの名無しさん:2005/10/27(木) 06:16:17
よく知らんが俺にサイデラロッキングを語らせると長いぜ?
657デフォルトの名無しさん:2005/10/27(木) 10:39:39
>>656
サンレコにカモられたの?
658デフォルトの名無しさん:2005/10/27(木) 15:16:57
便乗して
ロックでもない石を売りつけた
659大原ゆき:2005/10/31(月) 03:07:30
呼びましたか?
660デフォルトの名無しさん:2005/11/06(日) 11:34:45
ボーカルキャンセルで音を消すレベルを設定するにはどうしたらいいですか?
661デフォルトの名無しさん:2005/11/06(日) 11:49:15
勘で
662デフォルトの名無しさん:2005/11/07(月) 16:19:36
右斜め45°から
663660:2005/11/08(火) 22:08:53
ttp://hp.vector.co.jp/authors/VA027311/
ここにあるプレイヤのボーカルキャンセルをまねしたいのですが
L-Rではできそうにありません。
664デフォルトの名無しさん:2005/11/09(水) 02:47:16
このスレを1から読み直せばいろいろとヒントが落ちてる。
665デフォルトの名無しさん:2005/11/09(水) 05:06:21
サンプラ用にループポイントの自動検出をやりたいのだが
サンプルのお尻から律儀に比較していく方法しか思いつかない
何かいいアイデアないかな?

ひっくり返して無理やり作っちまうのも手かなぁ。。。
666デフォルトの名無しさん:2005/11/09(水) 05:08:45
ちなみに完璧に検出したいとは思ってないです
目安程度になればってことで
667デフォルトの名無しさん:2005/11/09(水) 10:14:54
>>663
参考に。
http://www.dtmm.co.jp/archives/2005/10/post_83.html

>>665
ゼロクロスポイントを検出するのと、
音程検出してからその周波数にあわせて検出、
ってのを組み合わせるといいと思う。

音程がないもの用のスイッチを用意して、そのスイッチが入ってる場合は、
まずRMSでヒットポイントを検出、ビートの前後で検出ってのがいいと思う。
668デフォルトの名無しさん:2005/11/09(水) 12:50:52
>>667
あっなるほど、音程をとればループ長は自然に求まるか
第nフォルマントまで調べて最小公倍数でもよさそうな。。。
まだ妄想段階だけど突破口が見えてきた
どうもありがとう!

ブレイクビーツの切り出しについてもありがとう
まずそっちをやってみるよ
669デフォルトの名無しさん:2005/11/09(水) 16:31:27
音程は
PCでやるなら、FFTしてケプストラムでもリアルタイム処理できるでしょ
670660:2005/11/09(水) 19:37:06
>>667
ありがとうございます。
でもCPU負荷を見るかぎりFFTは使ってないと思います。
音を聞いてもL-Rとはちがうんです。
671667:2005/11/10(木) 10:09:22
FFTなんて使わなくても音程検出はできるよ。
このへんを見て研究するといい。
http://musicdsp.org/archive.php?classid=2

フィルタ処理は、このへんを見るとわかりやすいと思う。
http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/basic/chap10/
672デフォルトの名無しさん:2005/12/01(木) 09:16:15
fmod.dllの5.1chで再生機能って
DirectXつかったものなんだよね?
あれって、どういう環境で鳴るの?
うちは、オンボードとかS/PDIFでホームシアターセットへ出力してるんだけど
オンボードでデコードされずに、パススルーしてホームシアターセットで鳴らしたり出来ないの?
DirectXの多スピーカーの実装がよくわからないんだけど・・・。
どういう環境で鳴らすのを想定してるんでしょうか?
673デフォルトの名無しさん:2005/12/01(木) 20:01:42
>>672
S/PDIFで出力するって事はドルビーエンコ出来なきゃ無利でしょ。
MCP-T以外にあったっけ?

昔と違ってDirectXの日本語SDKヘルプあるんだから
生の5.1chのWAVEファイルでも用意して勉強してください。
674デフォルトの名無しさん:2005/12/01(木) 21:17:42
>>673
レスどうも。

と言う事は殆どの環境で鳴らせないんじゃ・・・
アナログでそれぞれのスピーカーへ個別に接続してる場合のみって事かな・・・。
ホームシアター系は全滅のような(汗
MCP-Tかぁ・・・、nForce2までだよね。。。
うぅSoundStorm復活しないかなぁ。。。>当方nForce4SLI
675デフォルトの名無しさん:2005/12/02(金) 15:01:35
2chならS/PDIFで普通に出力されるが5.1chの場合はAC3にする必要がある。
データをリアルタイムでAC3(DTS)エンコしてパススルーで再生できれば課題はクリア。

DirectXでもWaveOutでも5.1chは再生できるがパススルーのやり方は知らん。
一般ソフトが対応してるって事は技術的には可能。
ttp://www.vector.co.jp/soft/win95/art/se189568.html
676デフォルトの名無しさん:2005/12/02(金) 16:10:24
DirectXをパススルーできても、先の機器でデコードできなけりゃ意味ないw
677デフォルトの名無しさん:2005/12/02(金) 20:04:02
サウンドカードが使ってるI/Oポートを直接制御して、音声ボリュームを変えようと思った
んだけどうまくいかない。そんなものなのか。
678デフォルトの名無しさん:2005/12/02(金) 20:43:34
AC3のファイル構造と通信プロトコルを知りたいのですが
どこかに良い資料はないでしょうか?
679デフォルトの名無しさん:2005/12/02(金) 22:10:20
ac3っつーのは、高い金払ってライセンスと一緒に情報買うから
普通は、そういうのは落ちてないもんなんじゃないかな?
680デフォルトの名無しさん:2005/12/02(金) 22:11:22
>>676
カーネルミキサーを通さないのがパススルーなんですけど。

>>677
いつの時代のOS使ってるんですか?

>>678
海外探せば資料はあります。
681デフォルトの名無しさん:2005/12/02(金) 22:51:33
気になったんだけど、サウンドのライセンスっつーか特許っつーか
その辺の所ってどうなの?
AC3のエンコーダーはオープンソースでフリーのやつが出回ってるけど、ああいうのって特許に触れないのかな?
もしくは商業利用以外はOKだとか?
682デフォルトの名無しさん:2005/12/02(金) 23:40:15
AC3なら(ライセンスがどうなってるかは知らないけど)、
ttp://www.atsc.org/standards/a_52a.pdf
あたりと、IEC60958を調べるとよろし。

683デフォルトの名無しさん:2005/12/03(土) 08:25:57
国によってソフトウェアの特許の扱いが違うんだよ。勉強しろ。
684デフォルトの名無しさん:2005/12/03(土) 11:01:30
AC3もmp3の特許と同じで
ネットワーク上で配布する限りは無形物として扱われるし
商業利用しなければ、著作権侵害にならんと思われ。
685デフォルトの名無しさん:2005/12/03(土) 11:06:01
>>684
商業利用と著作権侵害って関係あんの?
686デフォルトの名無しさん:2005/12/03(土) 11:38:57
俺も疑問に思ったが
http://www.watch.impress.co.jp/av/docs/20020402/gogo.htm
午後のこ〜だの時は、それを理由に配布再開してる。
687デフォルトの名無しさん:2005/12/03(土) 12:01:54
【殺しの】ライセンス【道で拾った】に逝って聞いて来い。
http://pc8.2ch.net/test/read.cgi/tech/1045006087/
688デフォルトの名無しさん:2005/12/03(土) 12:03:57
実際の裁判になったわけじゃないし、後半の部分も
弁護士の勝手な想像で言ってるように見えるが、根拠あっての見解なのかな
この記事を鵜呑みにするのは危険だな
689デフォルトの名無しさん:2005/12/03(土) 13:01:18
>>681-688
スレ違い。

ぷろぐらむの話しよーぜー
690デフォルトの名無しさん:2005/12/03(土) 20:20:02
上のほうでS/PDIFのパススルーの話が出てたので便乗して質問。
今作ってるソフトで実装してみたいんだけど、mmsystem.hに該当のデバイスの詳細取得の関数が見当たらないんだけど
具体的にどんな感じで実装すれば?
もしかして、waveOutGetDevCaps()見たいに単純に取れないデバイスなの?

691デフォルトの名無しさん:2005/12/03(土) 21:08:15
WAVE_FORMAT_DOLBY_AC3_SPDIFを指定するだけで良い。
692675:2005/12/03(土) 22:02:35
>>691
VC6みたいな古いのには存在しないが、
新しめのプラットフォームSDKには存在するな…。
ググると資料もヒットするし面白い事を聞いたな。
これでリップしたAC3のパススルーでも試して見るか。
693691:2005/12/03(土) 22:42:26
今まさに>>675が言ってるようなソフト作ってたりする。
昔AC3エンコーダー作った事があったんで、結構楽に出来るかも。
694デフォルトの名無しさん:2005/12/04(日) 20:26:50
>>685
少なくとも日本のの著作権法には、商用利用でないならオッケーなんて条項はないね。

一方、特許法は微妙で、個人が趣味で作るものや、たとえ企業でも研究のために作るもの
は特許侵害ならない。例えば、他所の会社が出願した特許の書類を見て、本当に役に
立つかどうかをチェックするために、書類の内容を完全にまねて同じようなものを作っても、
特許法上は問題ない。(ただし、試作してテストするのはオッケーでも、その試作品を
工場に持っていって商品作りに使ったりすると、アウト。)
695デフォルトの名無しさん:2005/12/04(日) 20:52:10
じゃあ、オープンソースのAC3コーデックやら
午後のこ〜だやら、Lameはどうしてるんだ?
午後のこ〜だは商業ソフトからも利用されてるようなソフトだぞ。
696デフォルトの名無しさん:2005/12/04(日) 21:12:35
午後はソースのみの配布じゃないの?今はどうかしらないけど。
インストール時にコンパイルしてDLLを作ってたよね
Lameは知らんが
697デフォルトの名無しさん:2005/12/04(日) 21:32:30
午後は

・個人の研究目的
・配布はインストーラーにソースとコンパイラを持たせて、インストール時にコンパイルする形
の2点でしのいでるが、正直グレーゾーン
前者は、個人の研究目的ならOKなんてのは無いし。(配布してるからアウト)
後者もソースコードならOKと言うわけではない。
企業が午後のDLLを採用する場合も、午後の作者が「各社の責任で」と言う形で、各企業に個別にライセンスを取らせてる。

つっても、こういうのは侵害されてる側が訴えない限り黙認されるし
それを侵害してる個人は山ほど居るので、いちいち訴えてたらキリが無い。
ただし、商業利用してる企業相手には流石に手を打つ。
だから、法的にはそういうわけではないが結果的には
商業利用じゃなければOK
と言う形になってる。
698デフォルトの名無しさん:2005/12/04(日) 21:36:04
GIFのように突然徴収しまくる行動にでても文句は言えない
699691:2005/12/04(日) 21:41:55
マジで?('A`;)
今作ってるソフト、もうやめたほうが良いかな?

仮想サウンドカードを用意して
DirectSoundの多チャンネル出力をAC3にエンコードして、リアルタイムでS/PDIFでパススルーする仕組みなんだが・・・
で丁度64bitプログラムを組みたかったので、リアルタイムエンコードは得意そうだからうってつけだと思ってたんだがね。
某コンテストに出す予定だったが、やめとくか・・・。

ちなみに今の完成度は、既にハードコーディングな実験的部分が多いが、ほぼ機能は全うするようになってる。


700675:2005/12/04(日) 21:57:13
ちなみにオレはAC3とDTSのプレイヤがあるけど配布はしてない。
ロイヤリティを要求されても払えんしな。

GIFやMP3みたいに普及してから徴収はコワイ。
無いと思うがサブマリン特許ってやつにも気をつけないとな。

691が作るだけなら問題はない。配布は厳しいかもな。
701デフォルトの名無しさん:2005/12/05(月) 00:35:55
特許がらみ気にしだすと、サウンドプログラミングみたいな特許にガチガチに固められてそうな分野は怖いな・・・w
ちょっとしたことでも、かなりの特許侵害してそうで・・・
702デフォルトの名無しさん:2005/12/05(月) 14:37:32
国内でAC3デコード機能を搭載したソフト(バイナリ)を
公開しているツワモノもいるけどな。
ttp://novolization.hp.infoseek.co.jp/source.html

コイツを通報してどうなるか実験してみるか?
703デフォルトの名無しさん:2005/12/05(月) 14:47:09
分かっているとは思うけど、特許権と著作権はまったく別の権利なので、
混同しないようにね。法律も全く別のもの。
704デフォルトの名無しさん:2005/12/05(月) 14:54:57
ちなみにGIFも、
まだ特許が有効であった時期であっても、
日本国内で個人が趣味でソフトを作る限りは、
ユニシスが何を言おうが、日本の法律では無問題だった。

もちろん商用ソフトはアウトだったけど。

ソフトシンセの類も、個人が趣味や研究で作る限りは、
特許法としては問題ないよ。ただし、それを商品化したり
しようとすれば、「商品化する人」がきちんと特許の処理をする
必要がある。

あと、規格制定団体がネットで公開しているサンプルコードを
勝手にコピーして自分も著作物として発表してしまったりすれば、
そりゃ特許ではなく著作権の侵害。たとえ趣味でも、そりゃ、アウト。
705デフォルトの名無しさん:2005/12/05(月) 16:36:21
フリーソフトでも特許料が必要だと思ったが。思い過ごしか?
通報先は法的機関ではなく直でドルビーラボ。

704が言うとおりなら通報しても問題ないだろ。
問題ないとわかれば691も安心してコンテスト応募ができる。
706691:2005/12/05(月) 17:10:51
とりあえず、まずは俺はドルビーに直接問い合わせれば早いんじゃないかな・・・。
もちろん、たとえ法的にOKでもアメリカの会社の特色的にNGって言われそうだけど・・・w
どちらかと言うと、日本における中古ゲームソフトの販売くらいシビアな問題だと思う。

707デフォルトの名無しさん:2005/12/05(月) 17:13:24
フリーでも課金するとユニシスが言い出したから問題になったし、
特許法上でも、個人的、家族的な運用を超えたら引っかかることになってるはず。

つまり、>>704の言ってる無問題ってのは、
個人が趣味でソフトを作って、かつ、その作者が個人用あるいは家族用にそのソフトを使ったとき、
ということなんだろ

ちなみに、特許が通ってない国からリリースするという方法もあり
Irfan ViewがGIFに対応し続けたのは、配布元がGIF特許の通ってない、
オーストラリアだったかオーストリアだったかからとかいう話
708691:2005/12/05(月) 17:23:14
問い合えず問い合わせてみた。

・国内・海外で既にドルビーデジタルの技術を使用したソフトウェアが公開されているが、それに関しては許可・もしくは黙認されているのでしょうか?
・(私が作ろうとしているソフトウェアの概要を説明した上で)それをフリーで公開する場合はライセンスの取得が必要か?

の2点を問い合わせた。
まぁ、殆どダメ元だと思うけどね。
現状は気まぐれに近い黙認だと思うけど、こうやって聞くと回答はNGだと思う。
709デフォルトの名無しさん:2005/12/05(月) 21:16:51
>>705
フリーソフト=趣味とは限らない。

企業に限らず一個人であってもがビジネスの一環として配布するなら、たとえ
無料でも特許法で言うところの「業務」ということになるから、特許法の対象だよ。
そうしないと、例えばDLLモジュールに特許侵害になる部分を詰め込んでおいて、
それだけ無料配布、本体のソフトだけが有料、なんてインチキができてしまう。

>>707
特許の成立していない国にあるファイルサーバーを通じて公開すると、公開した
のが企業であっても、少なくとも、その国の特許法では、ファイル公開を停止
できない。もっとも、IPアドレスなどで、特許の成立している国からのダウンロードは
弾くような仕組みを持たせておいたほうが安全だとは思うけど。

一方、それを別の国(そこでは特許成立している)の人が、趣味で使うために
ダウンロードするなら、使うほうも大丈夫。特許が成立している国で、個人が趣味の
ためにダウンロードした後で、それをCDに焼いて友人に配るのもオッケーだけど、
会社の宣伝のために大量に焼いて展示会なんかで配布したら無料配布でもアウト。

特許法は国ごとに違うけど、おおよそ、こんな感じ。

>>708
「大学で研究しているんだけど・・・」という質問なら、ほぼ確実にOKだろうけど、
個人の場合、「作ったソフトをどうするのさ?」と疑われると面倒かもね。
710デフォルトの名無しさん:2005/12/05(月) 22:14:54
つーか>>691は別にファイルとしてac3ファイルを出すわけでもなく
内部的な処理で必要なだけだし、結果的にはAC3の正式ライセンスのデコーダーが要るわけで・・・。
ドルビーからすると、不利益を蒙る内容でもないから、黙認しても良いと思うんだがね。
711デフォルトの名無しさん:2005/12/05(月) 23:14:56
>>710
・・・馬鹿?
712デフォルトの名無しさん:2005/12/05(月) 23:28:02
>>710
実はその仕組みはドルビーからすると良い商売になるんだよ。
だから内部処理でも、商用であちらは出したいからそれ自体不利益だと思われ

つっても、どこもそれをソフトウェアでやるような行動をしてないのが謎だが
ハードウェアはあるがね。

713デフォルトの名無しさん:2005/12/06(火) 00:27:42
カルビーからすると、不利益を蒙る内容でもないから、黙認しても良いと思うんだがね。
714デフォルトの名無しさん:2005/12/06(火) 10:06:09
サウンドライセンスのスレでも作ってそっちで話しろよ
715デフォルトの名無しさん:2005/12/06(火) 17:48:59
自己紹介乙
716デフォルトの名無しさん:2005/12/07(水) 03:38:36
ac3のライセンスの話のところ悪いけど
ac3のファイル構造の情報載ってるサイトない?
717デフォルトの名無しさん:2005/12/07(水) 04:56:42
昨日、MATLAB EXPO行った人いる?
718675:2005/12/10(土) 19:18:01
ac3のS/PDIF出力って同期ヘッダ(6+2byte)が必要みたいだな。
719デフォルトの名無しさん:2005/12/19(月) 22:02:00
スレ違いだからこの話はここで終わらそうと思ったけど
とりあえず、オチくらいは報告しとこうとおもう。

例のメール
>ドルビーの各テクノロジーのライセンスは、AV機器開発メーカ様やPCソフトウェアメーカ様などの
>企業様を対象としており、フリーウェア作成のための個人様を対象としたライセンスということは
>行っておりません。また、今後もそのような予定はございません。

で、個人で作成する場合はライセンスの取得が必要か?と言う質問に対して
上記の理由で、個人へのライセンスはやってないので、必要ないとのこと。

と言う事で、企業様ではなく
個人の使用であれば、黙認と言う形のようです。
720デフォルトの名無しさん:2005/12/20(火) 12:01:43
>>719
おお、乙でした!
721デフォルトの名無しさん:2005/12/20(火) 13:09:07
さすがゴルビー、太っ腹だな。
722デフォルトの名無しさん:2005/12/20(火) 15:20:04
え?どこが太っ腹??
フリー作家にはつかわせねーよって内容じゃないのか?
723デフォルトの名無しさん:2005/12/20(火) 17:59:08
>>719
詳しく。

>個人へのライセンスはやってないので、必要ないとのこと。
「個人へのライセンス取得はできない」って事だけど、
722はそれを「個人では使用できない」と解釈したみたいだね。

719の返事の文章に続きがないと722の解釈であってると思うが…
724デフォルトの名無しさん:2005/12/20(火) 18:07:01
そりゃ、特許があっても研究目的とかのレベルなら問題ない。
当然
個人でも販売したりフリーで流通させたる事までドウゾと言ってる筈がないだろう
725デフォルトの名無しさん:2005/12/20(火) 18:33:03
フリー作家=個人での使用
という解釈はできないな
726デフォルトの名無しさん:2005/12/20(火) 23:01:51
>>719
それは、基本的に企業が「黙認」を表す時に
言葉を濁す時に良く使われる手法だと思う。
ダメなときは、基本的にはっきりと「個人の使用でも禁止している」的な事を書くはずだから・・・。

まぁ、>>719の質問まで載せてくれないとはっきりわからないんだが
ライセンス取得しなければ作れないか?と言う質問に対してなら
まぁ、基本的に「黙認」を表してると思う。
企業が「黙認」を公言するわけにいかないし・・・。
727デフォルトの名無しさん:2005/12/21(水) 23:18:49
「おおっぴらにやらなきゃ煩い事言わない」ってとこか。
フリーはコントロール効かないし、ヘンな所で火がついたりするから難しいんだよなぁ。
728デフォルトの名無しさん:2005/12/24(土) 05:59:58
向こうの気分一つで天国か地獄か分かったものじゃないな…。
729デフォルトの名無しさん:2005/12/24(土) 10:30:38
フリーソフトとかだったら
文句来れば、公開止めるだけで済むんだから、対して問題じゃない気がする。
730デフォルトの名無しさん:2005/12/24(土) 10:33:23
公開したのを止めただけでは、2次公開を防げない。
それは事前に容易に想像可能な事なので、
2次公開についても最初に開発して公開した人の責任という事になるだろう。

つまり、経済的な損害について賠償する責任がくっついてくるわけだ
731デフォルトの名無しさん:2005/12/24(土) 10:59:55
禿同
732デフォルトの名無しさん:2005/12/24(土) 18:58:42
黙認してた場合、そこまで追いかける企業ってあんまり無いと思うよ。
基本的に、今配布してる所を叩くと思う。
733デフォルトの名無しさん:2005/12/24(土) 19:25:53
黙認なんてのはありえない。
>個人へのライセンスはやってないので、必要ないとのこと。

ライセンスが必要ないというのは、ライセンスは発行されないという事
特許権絶対的な独占権であり、
ライセンスが発行されないかぎりは、
例え独自に実装しようが、フリーだろうが、さらには個人的にさえ
利用できない強い権利。ただ唯一 試験又は研究のためにだけ使う事が可能。

個人の利用で黙認というのは、それは勝手な解釈だと思う。
734デフォルトの名無しさん:2005/12/24(土) 21:13:04
っていうか、黙認を法的に解釈しようとするのが間違ってる。
法や規則の例外だから、黙認なのであって、>>733みたいな考えで黙認を考える事は出来ないよ。
735デフォルトの名無しさん:2005/12/24(土) 21:56:39
まあ、許可でもNGでもなく
黙認だからな…
全てにおける例外と言うか、不確定要素というか・・・
736デフォルトの名無しさん:2005/12/25(日) 16:18:16
普通なら>729,>732の言う通りだけど、ライセンス煩そうなドルビーだからなぁ。
gifの前例もあるし、ビビり入るよ。
金になりそうにない個人に噛み付くってのも考えにくいけど。
737デフォルトの名無しさん:2005/12/25(日) 16:46:11
関係ないけど、うちの会社の知財部に聞いてみた
個人の場合「黙認」じゃなくて「放置」することが多いらしい
気が向いたとき責任追求するってスタンスらしいです
738デフォルトの名無しさん:2005/12/25(日) 17:10:56
>>736
現状では個人相手にライセンスしないと言う感じなので
やはり個人相手に噛み付く事も無さそうだけど
せいぜい公開停止を求める程度だと思う。
739デフォルトの名無しさん:2005/12/25(日) 18:40:09
737の放置ってのがあってるような気がするな。
740デフォルトの名無しさん:2005/12/25(日) 18:45:55
サブマリンにするのが一番おいしいからな
741デフォルトの名無しさん:2005/12/30(金) 12:59:31
『個人を対象としたライセンス付与を行っていない』
という文面の行間をどのように解釈するかだ。

>>719は、この文章を
「個人ならばライセンス取得不要」→「黙認」と解釈したようだが、
黙認というまで解釈を飛躍させるのは、かなり危険だと思う。
「個人にはライセンスを付与しない」と解釈するのが一般的だろうな。

あと、開発するのは自由だが、配布まで自由だとは言ってない。
ということで、>>724の言うことが正しいと思われる。

ドルビーが遠まわしに「NGです」と言ってくれているのを、勝手な解釈で
黙認→公開 として訴えられても、俺には関係無いけどな。
742デフォルトの名無しさん:2005/12/30(金) 14:28:51
激しくスレ違い。
743デフォルトの名無しさん:2006/01/05(木) 17:29:12
ソフト作って公開→ドルビーに文句言われて公開停止→ソフトを改変して公開
→またドルビーに文句言われて公開停止→またソフトを改変して公開→(以下略)

これで解決!
744デフォルトの名無しさん:2006/01/05(木) 23:41:27
>>743
お前は知的に障害がある人間か?
745デフォルトの名無しさん:2006/01/16(月) 08:01:58
mciSendString()なんですが
これ、PLAY命令で1度は音が出るんですが、もう一度PLAYを押すと音が出なくなります。
で、一度CLOSEしてOPENしなおすといけます。
こういう仕様なんでしょうか?
ちなみに再生ソースはwaveです。
746デフォルトの名無しさん:2006/01/16(月) 11:48:01
>745
seekは?
747デフォルトの名無しさん:2006/01/16(月) 11:51:42
そういう仕様です

waveOutOpenを同時にいくつか開いて
waveOutWriteでそれぞれのハンドルへwaveを書き込む

あるいはDirectSound使う
748デフォルトの名無しさん:2006/01/28(土) 22:05:55
サウンドとマルティメディア-音の再生-優先するデバイス(Win2kの場合)、を切り替えるAPI(もしくは方法)御存知の方いましたら、お教えください。

やりたいことは、複数のサウンドカード利用時にシステム全体のサウンド出力を手軽に切り替えたいだけなのですが。。。

Mixer APIに当たりをつけ、複数の記事を読みサンプルもいじってみたのですが、
出力先の切り替え方だけ載ってないような(コントロール利用時のフラグで設定できるのかもしれませんが、使えそうなフラグが見つかりません)。

DirectSound関係は、DirectXなくてもOSの出力には関係なさそうだし。
そもそも優先するデバイスがどれかという情報はどこに保存されているんだ。。。
胃が痛いです。。。

検索したキーワード
windows サウンドカード 切り替え api 複数
優先するデバイス 切り替え api
変更 windows 再生 mixeropen
windows api sound device change output

チェックしたサイト
www.codeproject.com他
749デフォルトの名無しさん:2006/01/29(日) 06:14:48
>748
仕事で散々苦労した俺が答えるぜ!

つまりは、waveOutOpen( &h, WAVE_MAPPER, ... ) や、
メディアプレイヤーなんかのデフォルトのWAVEデバイスを切り替えたい、と。

レジストリエディタで、
HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper
を見れば解ると思うけど、ここの Playback にWaveOutのデバイス名を書けばOK。
デバイス名の列挙は waveOutGetNumDevs()/waveOutGetDevCaps() で良かったはず。

ただし、SetupPreferredAudioDevicesCount のパラメータを間違えると意図した動きをしないので注意。
詳細はチト忘れてしまって申し訳ないが、通常弄らない値なので変えないこと。
#waveOutGetNumDevs()の返り値だった気もする。

上記レジストリが存在しない/壊れた場合、コンパネからデバイス選択し直せば元に戻る。

mixerは乱暴な言い方をすると、音量の調整と録音時のライン指定操作がメインなんで関係無い。
資料が手元に無いんで記憶だけで書いてるので間違いがあるかもしんない。
750748:2006/01/30(月) 03:47:04
>>749
助かります。組み込んでテストしてみますです。。。
751デフォルトの名無しさん:2006/02/01(水) 19:38:42
数学Tで座札した俺でもできますか?
752デフォルトの名無しさん:2006/02/01(水) 22:47:49
、「、?サクサ、ホシ?ヌネソ?「イサト??。テホ、ケ、?ax/msp、ホ・ム・テ・チ、テ、ニ、ノ、ウ、ォ、ヒ、「、熙゙、サ、?ォ。ゥ
、ハ、ェ、ォ、ト。「、ス、?ヒアヌチ??ソア?、オ、サ、鬢?ソ、鮖ケ、ヒ、、、、、ホ、ヌ、ケ、ャ。「。「。「。」
753matsu:2006/02/01(水) 22:48:58
ある音源の周波数、音程を検知するmax/mspのパッチってどこかにありませんか?
なおかつ、それに映像を反応させられたら更にいいのですが、、、。
754デフォルトの名無しさん:2006/02/01(水) 23:40:04
FFTというものを勉強しろ。
755デフォルトの名無しさん:2006/02/01(水) 23:44:08
FFTは知っているのですが、今とても急いでいて、明日の朝までに
組み立てたいのです。もしご存知でしたら教えて下さい、、。
756デフォルトの名無しさん:2006/02/02(木) 00:38:25
なんかあったよね、、
757デフォルトの名無しさん:2006/02/02(木) 01:40:25
切羽詰る前に言えばいいのに。
そもそもそんなマイナーなモンを
こんな過疎スレで聞いても解答返ってくるわけねぇじゃん。
758デフォルトの名無しさん:2006/02/02(木) 02:13:53
知ってるけどおしえな〜い
759デフォルトの名無しさん:2006/02/02(木) 10:14:51
朝になったから、音程検出ソースへのリンク。
これの通りに組み立てれば簡単だね。
http://musicdsp.org/archive.php?classid=2#172
760デフォルトの名無しさん:2006/02/02(木) 15:18:48
きっと宿題かなんかだったんだろうな。

締め切り終わった頃に回答出してるところが教育的ですばらしいw
761デフォルトの名無しさん:2006/02/03(金) 02:14:41
759=667?は意地が悪いのう
もっとも>>753がこれをMax/MSPに応用できるとは思えんが
762デフォルトの名無しさん:2006/02/03(金) 03:48:32
別に質問スレでも宿題代行スレでもねぇからな。
解らない部分聞くでもなけりゃ、やり方聞くでもなし、答えだけ知りたいってのが気にいらねぇ。
しかも明日までとか期限切ってるし、しらねっつーの。
763デフォルトの名無しさん:2006/02/03(金) 05:25:24
つーか、「今は全く無知です。明日までに勉強して作る必要があります」
なんて相談事では、回答者がどんなに手伝ってあげたいと思っても、
手の施しようがないべさ。「理解して作る」じゃなくて、「他人の解答を
理解せずにコピーして提出する」ってことなら、誰が手伝うものか。
764デフォルトの名無しさん:2006/02/03(金) 10:15:23
音程検出の話題って既出だったわけだし、ググってすらいないんだろうな。
http://www.google.com/search?num=100&hl=ja&q=%22max%2Fmsp%22%2B%22pitch+detection%22&lr=
765デフォルトの名無しさん:2006/02/03(金) 14:02:02
んだんだ。
「急いでるから今すぐ回答だけ教えろ」なんて自己中すぎ。
766デフォルトの名無しさん:2006/02/06(月) 18:20:10
WindowsXPとかに標準で入っている汎用USBオーディオドライバって、
2chを超えるような多チャンネルのPCMデータのやり取りには対応して
いるんでしょうか?たとえば3chとか4chとか。USBのAudio Data Format
仕様書では、多チャンネルデータが規定されているようなんですが。
ご存知の方いましたら、教えてください。よろしくお願いします。
767デフォルトの名無しさん:2006/02/06(月) 22:16:58
WDMなら使える。後はデバイスしだい。
768デフォルトの名無しさん:2006/02/07(火) 00:42:22
>>766
WAVEFORMATやWAVEFORMATEXでは3チャネル以上は対応してなくて、
WAVEFORMATEXTENSIBLEを使わないといけなかったような気がするする。

769Sound:2006/02/07(火) 01:36:22
現在、パソコンのサウンドカードから音(ステレオ)を取り込み
イコライザー等の処理を施した後、リアルタイムで再びサウンド
カードから音を出すアプリケーションを作りたいと思っております。
開発環境はVC++等を考えています。

現在、DirectXのDirectSoundを用いてサウンドカードからの
音をWaveファイルに録音したり、録音済みのWaveファイル
を再生したりすることはできているのですが、サウンドカード
からの入力データを動作中のプログラムの一時メモリを参照し、
それを操作・処理した後に、一時メモリから再びサウンドカード
から音を出したいと考えています。

参考となるホームページやキーワード、書籍、具体的な
方法等知っていたら教えてください。よろしくお願いします。
770名無しさん:2006/02/07(火) 02:05:35
バッファリング再生のこと?
771デフォルトの名無しさん:2006/02/07(火) 02:13:03
>769
そこまで出来れば、あとは同時にやるだけで、特に悩むようなことはないと思うんだが。
772デフォルトの名無しさん:2006/02/07(火) 05:11:37
>769
つ[リングバッファ]

リアルタイムってことはレイテンシなしでやりたいってこと?
楽器繋いでエフェクタ代わりとかにしたいなら結構面倒だと思われ。
「ASIO」辺りで調べてみ。
773デフォルトの名無しさん:2006/02/07(火) 10:12:36
WDMでリアルタイムは難しいよな…。
ASIO4ALLのソース見れば、たいていのサウンドカードでなんとかできるかも。
774デフォルトの名無しさん:2006/02/07(火) 19:34:00
バカだなリアルタイムとか言うとすぐASIOかよ。
使った事もないくせにw
低レイテンシとまでは言ってない。
775デフォルトの名無しさん:2006/02/07(火) 21:02:54
録音と再生のサンプリングレートが完全に一致してるならいいんだけどね
そうじゃないならサンプリングレートあわせの為に
強力なLPF(ローパスフィルタ)が必要になるね。
776デフォルトの名無しさん:2006/02/07(火) 22:47:17
アップサンプリングの場合でもLPFなんですか。
777デフォルトの名無しさん:2006/02/08(水) 00:53:54
>774
バカはお前だよ。
16bit, 44.1kHz で処理する時、録音と再生にそれぞれ2KBのバッファを使うと、46msec程度遅延する。
ドライバ内にもバッファがあるので更に遅延するが。
楽器の演奏で50msec遅延すると気持ち悪くなり、100msec以上は使い物にならない。
ま、楽器触らない>774には理解出来ないんだろうガナー。
778デフォルトの名無しさん:2006/02/08(水) 07:36:42
769は楽器を使うなんて人ことも言ってないが…
なんで質問者の内容と違った回答する奴が多いのかね

だれも遅延の話なんて聞いてないんだよ
779デフォルトの名無しさん:2006/02/08(水) 10:11:14
>>778
リアルタイムって言ってるだろボケ。
780デフォルトの名無しさん:2006/02/08(水) 14:55:53
リアルタイムの範囲をどこに置くか。とても難しい問題だな。
781デフォルトの名無しさん:2006/02/08(水) 15:53:08 BE:31056544-
リアルタイムかどうかと遅延の大小はあまり関係ない気が。
遅延が一定ならリアルタイムと言えなくもないし。
リアルタイム処理した出音とそれ以外の音を同期ミックスするなら遅延を20ms内外に
納める必要があるが、ミックス込みで処理するなら遅延は100msでもいいわけだし。
要するに出音をどう使うかに依存すると。
782デフォルトの名無しさん:2006/02/08(水) 15:56:01
ん?
772はレイテンシ無しでやるなら難しい、そうでなければリングバッファ使えって言ってんじゃん。
なんで噛み付いてんの?
漏れも入出力同時にやりたいって言われたらエフェクタがわりにしたいんだと憶測するが。
そうじゃなけりゃwavファイル操作した方が楽だし。
783デフォルトの名無しさん:2006/02/09(木) 18:26:23
関連論文はないけど学生自体にちょうどそれの研究が流行ってた。

基本は想像どおりで消したい音の逆相をあてる。
784デフォルトの名無しさん:2006/02/09(木) 19:19:58
>>774=778は本当に

あれ?

声が遅れて聞こえるよ?

馬鹿だなぁ。
785デフォルトの名無しさん:2006/02/09(木) 20:09:38
すみません教えてください
入力された音声をトランシーバー風に加工したいのですが
EQで1KHzあたりをあげても
あのザラザラ感がなかなかでません。
あれは変調されている音なんでしょうか?
タクシー無線とか、飛行機とかあんな感じの音をつくりたいです
どなたかアドバイスください
786デフォルトの名無しさん:2006/02/09(木) 20:12:40
柳沢慎吾に弟子入りしてみるとか
787デフォルトの名無しさん:2006/02/09(木) 20:22:11
適当だけど。
3kHz以上カット→300Hz以下カット→非直線性歪
788デフォルトの名無しさん:2006/02/09(木) 21:18:58
>>787
さらに、ノイズを追加。ノイズは出しっぱなしだと面白くないので、
音量と掛け算するとか
789デフォルトの名無しさん:2006/02/09(木) 21:32:53
1msでも遅延したら厳密に言えばリアルタイムじゃないと思うのですが。
790デフォルトの名無しさん:2006/02/09(木) 21:37:02
じゃPCで音楽のリアルタイム演奏は無理だね
791デフォルトの名無しさん:2006/02/09(木) 21:41:34
音の速さは340m/sくらいだっけか?
コンサート会場で生声使ってもリアルタイムとは言えないわけだ
792デフォルトの名無しさん:2006/02/09(木) 21:43:42
>>787,788さん ありがとうございます
非直線性歪 ためしてみます
あと、ノイズゲートもかけて試してみます
793デフォルトの名無しさん:2006/02/09(木) 22:24:56
>789
ケーブル通る電子の速度分遅れるから厳密に言えばリアルタイムは存在しないと思うのですがwww

ま、どの方法使っても789の脳味噌ほど遅れはしないだろうよ。
794大原ゆき:2006/02/09(木) 22:59:06
>>789
厳密にって?リアルタイムの厳密な定義なんて存在するの?
795デフォルトの名無しさん:2006/02/09(木) 23:31:50
>>789
うむ。0msじゃないとリアルタイムじゃないよな。
ぜひキミがそういうシステムを作ってくれ。宇宙がひっくり返るぞ。
796デフォルトの名無しさん:2006/02/09(木) 23:33:17
厳密なリアルタイム ⇒ 遅延0ms ってことだろ?
そんな話はバカらしいから、あーだこーだと物言いがついてるんじゃないか。
797デフォルトの名無しさん:2006/02/09(木) 23:54:17
大辞林 第二版 (三省堂)

リアル-タイムしょり 【―処理】<

〔real-time processing〕データ処理方式の一。
データが発生したとき、そのたびごとに処理を行う方式。
定時間処理。

--------------------------------------------
データの発生から処理の完了が規定時間以内にできれば、たと
え一週間かかってもリアルタイム処理だよ。

>>769 が何をしたいのかわからんから、規定時間がどんなも
んか知る由もないが。

まあ、>>772 は単に ASIO って言いたかっただけだろ。
798デフォルトの名無しさん:2006/02/10(金) 11:38:31
>797
>一週間かかってもリアルタイム処理だよ。
常識の範囲で物言えよ。
間違ってもその調子で仕事とかすんなよな。
799デフォルトの名無しさん:2006/02/10(金) 14:36:18
800デフォルトの名無しさん:2006/02/10(金) 17:43:13
799
プギャーって言って欲しいのかい?
801お知らせです:2006/02/10(金) 17:47:44
この板も厨荒らしフラグが立ちました!
802デフォルトの名無しさん:2006/02/10(金) 17:49:02
>>798
惑星探査機とかで制御に数分〜数時間かかるものもある。

あと、化学関係の奴とかならそれこそ制御のサイクルが
一週間レンジと言うのもざらにある。

自分の狭い「常識」が全てと思ってたら、恥をかくぞ。
803デフォルトの名無しさん:2006/02/10(金) 17:52:21
1万光年も離れた星の光も1万年遅れてリアルタイムに見ています
804デフォルトの名無しさん:2006/02/10(金) 18:16:14
リアルタイムの定義について1000まで議論するスレかよ。
805デフォルトの名無しさん:2006/02/10(金) 19:42:40
低レイテンシ=リアルタイムだよ。
806デフォルトの名無しさん:2006/02/10(金) 20:08:44 BE:46584083-
×低レイテンシ
○定レイテンシ
807デフォルトの名無しさん:2006/02/10(金) 22:27:33
少なくとも俺の周りでは100msもかかるようなサウンド処理をリアルタイムとはいわんな。
そんな馬鹿なこと言ってたら話がすすまねぇ。
808デフォルトの名無しさん:2006/02/10(金) 22:55:04
だれかこのどうでもいい話にケリをつけてくれ
809デフォルトの名無しさん:2006/02/10(金) 22:57:59
けり。
810デフォルトの名無しさん:2006/02/10(金) 23:14:00
レイテンシという言葉を見るとなぜか脳内で必ず「0.4」に変換されてしまう。
811デフォルトの名無しさん:2006/02/10(金) 23:32:31
807の言うのは低レイテンシ処理であってリアルタイム処理ではないってこと。

0(レイ).(テン)4(シ) orz
812デフォルトの名無しさん:2006/02/10(金) 23:51:59
0点死
813デフォルトの名無しさん:2006/02/11(土) 01:32:52
>>808
自分の常識≡世間の常識 と思い込んでるお馬鹿が一人
暴れてるだけだろ。

>>810
ちとわろた。

>>812
残念ながら、全然面白くないぞ。
814デフォルトの名無しさん:2006/02/11(土) 02:45:57
単にASIOアレルギーなだけだったりして?
815デフォルトの名無しさん:2006/02/11(土) 06:52:03
恥ずかしながら >>811の説明を読むまで 0.4 の意味が分からんかった。
816デフォルトの名無しさん:2006/02/11(土) 10:27:15
これであなたも0.4
817デフォルトの名無しさん:2006/02/11(土) 11:27:55
レンテンシーだろ。
シなんてブチ切るから四とか死とか連想すんじゃね?
818デフォルトの名無しさん:2006/02/11(土) 11:28:39
レンテンシーってなんだorz
レイテンシーだお。
819デフォルトの名無しさん:2006/02/11(土) 12:06:11
電気関係だと最後の「ー」は省くのが一般的では。
「ー」と「−(マイナス)」を間違えないようにするとか聞いた。

820デフォルトの名無しさん:2006/02/11(土) 12:21:47
>>819
JIS かなんかで、決まってたはず。
昔は、ちょっとでもデータサイズを小さくするために省
ける (省いても混乱しない) ところは、省いてしまえと
言う発想だった。今時は、携帯とかにも 4G HDD が載
る時代だから、時代遅れの考え方なんだが、別に省いて
困るわけじゃないからそのままになってるだけ。

あと、いきがって「レイテンシー」とか言ってても所詮
カタカナ英語なので、「レイテンシ」と五十歩百歩。
821デフォルトの名無しさん:2006/02/11(土) 12:26:34
すいません。急いでいるので教えてください!
いっこく堂のレイテンシはどのくらいですか?
822デフォルトの名無しさん:2006/02/11(土) 12:54:00
>>819
ttp://nagoya.cool.ne.jp/infinite/column/prolonged_sign.html
というわけで、3音以上なら普通は省略する

ファミリーコンピュータもそうだったな
823age:2006/02/11(土) 19:31:58
音スレで惑星探査の話を持ち出すバカ晒しage
824デフォルトの名無しさん:2006/02/11(土) 22:54:14
比喩というものが理解できないアフォがきたな。

プログラマどころか、技術者としての素養に欠けるから、
転職を勧めるよ。(w
825デフォルトの名無しさん:2006/02/12(日) 01:25:55
理系って下らない揚げ足とる奴多すぎて困る。
826デフォルトの名無しさん:2006/02/12(日) 01:31:41
キャッ!><
827デフォルトの名無しさん:2006/02/12(日) 01:34:53
>>825
完璧主義なんだよ
828デフォルトの名無しさん:2006/02/12(日) 04:51:09
見えない他人に対してはなwww
829デフォルトの名無しさん:2006/02/12(日) 10:08:48
「低0.4=リアルタイム」野郎の嫌がらせですか?
とりあえずスルー
830デフォルトの名無しさん:2006/02/12(日) 19:20:30
スルーを宣言する奴は無様
831デフォルトの名無しさん:2006/02/12(日) 19:28:42
意訳 寂しいので相手にしてください、無視しないでください。
832デフォルトの名無しさん:2006/02/12(日) 19:43:49
あいつサンドバッグ状態だな
惨めすぎ
833デフォルトの名無しさん:2006/02/12(日) 23:05:48
769が出てくりゃ済む話だと思うんだがな。
解決したのか、769=774なのか。
834デフォルトの名無しさん:2006/02/13(月) 17:21:59
>>776
つまり、録音より再生周波数がわずかに高い場合でもLPFが必要かって事かい?

当然必要になる。 
そして強力でかつ位相特性がフラットなLPFは大きな遅延を必要とする。
たとえば、PCIカードで入力してUSBスピーカーで出力なんて場合は、この同期を合わせる処理が必要だ。

だから、遅延の少ないリアルタイム処理をしたいなら、
まずは録音と再生が同期しているサウンドカードが必要だね。

まずはそっからだ
835774:2006/02/13(月) 18:22:55
>>833
769はオレじゃない。769=785だと思った。

録音した音をイコライザ(トランシーバ処理)して出力とかな。
話がそれてしまったから785で再度質問したように見えた。

質問者(769)のレベルを考えれば、彼のリアルタイムと言うは
「ファイルに保存しないでメモリのみで」って意味だとオレはとったけどな。

書き込みが無いなら彼にとってレイテンシ問題は関係なかったのだろう。
836デフォルトの名無しさん:2006/02/14(火) 00:00:28
>>835
> 「ファイルに保存しないでメモリのみで」

また、斬新な「リアルタイムの定義」だな…。
837デフォルトの名無しさん:2006/02/14(火) 00:25:53
どう見ても769 != 785だし
もうちょっと観察力・洞察力をつけような。
だから774や835みたいなことを書いてしまうんだ。
838デフォルトの名無しさん:2006/02/14(火) 05:07:22
774の人気に嫉妬……は、しねぇなwwwwwwwww
839デフォルトの名無しさん:2006/02/14(火) 07:39:31
>>838は本当に

あれ?

発言が負け惜しみに聞こえるよ?

馬鹿だなぁ。
840デフォルトの名無しさん:2006/02/14(火) 10:39:27
質問者は、単に、パソコンをエフェクターとして使いたいってだけの
発想だと思うなぁ
841デフォルトの名無しさん:2006/02/14(火) 12:23:47
なんかイヤなことでもあったんだろ
842デフォルトの名無しさん:2006/02/15(水) 06:30:00
オレも含めての話だが
>>769の欲しがっている回答は100レスくらい経過した今もまだ得られていない。
俺達、不毛な議論が大好き!!

これがプログラム板クオリティ。

>>769
オレも勉強中でよくわかんねぇけど、
まずはSteinbergのVST SDKとやらで勉強してみたら?
サンプルにエフェクターのプログラミングが幾つかあったと思うよ。
そこから、VSTi(DLL)じゃないStandaloneなアプリへと移行してみてはどうでしょうか?
843842:2006/02/15(水) 06:40:29
あ。おれも見当違いな回答しちまったか?orz

VST SDKじゃ音を鳴らすところのプログラミング知識は得られないか・・・
Hostに波形をわたすだけだもんな・・・・

そうか
VST Hostっていうアプリのソースを解析すりゃいいんだ。よし>>764
VST Hostっていうオープンソースなアプリがあるからそいつを見るんだ。
なにかわかるかもしれないっす。

ってサウンドプログラミングを全然わかってない俺が回答してどうする?


844デフォルトの名無しさん:2006/02/15(水) 06:44:46
>>764じゃなくて>>769だ。

ム板ってIDが出ないから、なんか面倒くせぇなぁ。ひろゆきさんID出すようにお願いしてこようか?
845デフォルトの名無しさん:2006/02/15(水) 10:18:20
>>842
はやばやと>>772で出てるだろ。アホ。
846デフォルトの名無しさん:2006/02/15(水) 13:12:45
>>842
>オレも勉強中でよくわかんねぇけど
じゃあ黙ってろ。
847デフォルトの名無しさん:2006/02/16(木) 00:06:07
ここって口先だけの無能な奴の集まりだよ。
難しい質問の答えは、いつだって、抽象的w

そして、どうでもいい言葉の綾にすぐつっかかる。
>>845>>772が答えだと最良の答えだと思ってるほど引出しもゼロのくせに出てくるし。
>>846は無能な奴の発言をぶった切る。
>>842は無能なのにつっかかる。

そして、おれもつっかかる。
こんなスレじゃ>>769のためになるような答えは出てこないよなw
848デフォルトの名無しさん:2006/02/16(木) 07:36:22
既出
>なんで質問者の内容と違った回答する奴が多いのかね

Ogg Vorbisプログラムスレも同様。
http://pc8.2ch.net/test/read.cgi/tech/1032623615/l50
まともな回答が返ってこない。
同じ奴らなんだろうな。
849デフォルトの名無しさん:2006/02/16(木) 07:40:40
他人が自分のレベルに追いつく(追い抜く)のを恐れている。
850デフォルトの名無しさん:2006/02/16(木) 07:59:43
実は wave inと wave out をつなぐのは簡単なようで、簡単じゃないんだよ。
 一昔前のPCIサウンドカードは1枚で同時に使おうとすると、in-outのアイソレーションが悪くて使えたもんじゃなかったし
 2枚刺しだと、同期がゆっくりズレてゆくから、>>775の処理をしなければいけない

 USBサウンドカードも、どうもデータが抜けるようでプチプチ音が入ってしまうのが結構ある
 最近は良くなってるけどね

サンプリング変換の技術を持っていれば、簡単かというと

リアルタイムなら
入力したものをリングバッファに入れて、8倍程度のオーバーサンプリングでデータを取り出して
入力したカウント数と 出力したカウント数がだんだんズレてくるからそれにあわせてPLL的な処理をするのだけど

ところが、InもOutもブロック入力出力なんだよね。
だから、1ブロック分ズレないとそのズレが判らない。
で、それをもっと早く知るには高分解能タイマーが必要になる。 
その付近が自分で作るとなるとメンドクサイんだよ
851デフォルトの名無しさん:2006/02/16(木) 10:09:31
>>847
自分の欲しい回答が出てこないからって逆ギレ乙。
769がでてきてないってことはたぶん769はでてきたキーワードで
解決できたってことだ。
852デフォルトの名無しさん:2006/02/16(木) 19:33:11
>>851
解決したのに逆ギレかよ。
853デフォルトの名無しさん:2006/02/17(金) 04:09:44
逆ギレしたら解決したのかも。

まぁタイミングが悪かったよな。
854851:2006/02/17(金) 10:18:15
>>852
769≠847、847も同様のギモンを持っていたが、
あの情報だけでは解決できなかった、というつもりで書いた。
855デフォルトの名無しさん:2006/02/17(金) 21:22:25
はぁ?
856785:2006/02/22(水) 01:18:46
すみません 785ですが
769さんとは無関係です
ちなみに私のやりたいのは 録音ー>通信ー>再生です
この部分は可変バッファ込みでできてます/
857デフォルトの名無しさん:2006/02/22(水) 03:23:02
>>856
次にお前が来るのは何日後だ?
858デフォルトの名無しさん:2006/02/25(土) 17:32:32
昨日
859デフォルトの名無しさん:2006/02/26(日) 11:18:47
急にSFだな
860デフォルトの名無しさん:2006/02/26(日) 15:22:34
おととい来やがれ!
861デフォルトの名無しさん:2006/02/26(日) 19:31:00
おとといって…今更言われても、過ぎた日には戻れません
862デフォルトの名無しさん:2006/02/26(日) 20:00:09
DelayLineでなんとかならんかな
863デフォルトの名無しさん:2006/02/27(月) 04:40:31
すいません今ドップラー効果が発生しておりまして
864デフォルトの名無しさん:2006/02/27(月) 13:38:57
リングバッファを一周してきました
865デフォルトの名無しさん:2006/02/27(月) 17:52:57
レイテンシが172800000msほどあるようです
866デフォルトの名無しさん:2006/02/27(月) 19:00:52
あんま盛り上がらないからなにかお題を上げてそれをみんなで作るってのはどう?
っていう名目の上に俺の作ってほしい物を作ってもらうだけのクレクレ企画やろうぜ
867デフォルトの名無しさん:2006/02/27(月) 23:09:41
「ザ・ワールド、時よ止まれッ! WRYYYYYYYYYYーーーッ」
「最高に「ハイ!」ってやつだアアアアアアハハハハハハハハハハーッ」

「オレはたぶん… プッツンするだろうということだけだぜ」
「ロードローラーだッ!」

つづく
868デフォルトの名無しさん:2006/03/05(日) 23:52:00
うむ
869デフォルトの名無しさん:2006/03/17(金) 19:30:09
クリエイティブのEAXってサウンド周りの重い処理を全てハードウェアで処理して
CPUの負担を軽減してやれって発想なんだよね?
ってことは波形処理に伴う効率的なFFTもサウンドカードのDSPに実装されているってわけだ。

それを逆手に取って、FFTを使うプログラミングを書くときは、ソフトウェア的に処理するのではなく
EAX機能を搭載したサウンドカードに計算させちゃうってことはできないかな?
ハードウェアで処理することで圧倒的なスピードでFFTとかやってくれそうじゃん。
それにFFT意外にも畳み込みの計算とかもスピーディーにやってくれるんじゃない?
870デフォルトの名無しさん:2006/03/17(金) 20:03:35
>>869
 プログラムを書き換えたり出来るの? そもそもプロセッサの仕様は公開されてるの?
871デフォルトの名無しさん:2006/03/17(金) 20:23:35
プログラムは書き換えられないだろうけど渡すパラメータを変えて対応できないだろうか?
ちなみにプロセッサの仕様は公開される必要はないでしょう。
入力を入れて正しい出力結果が得られれば満足なんだから。
872デフォルトの名無しさん:2006/03/17(金) 20:38:29
リアルタイム系のフィルターでは、普通はFFTは使わないと思うけど?
873デフォルトの名無しさん:2006/03/17(金) 21:20:21
ここ数年のグラフィックス・カードの処理能力向上にともなって、
研究者たちが「GPUを汎用計算機として使えないか」ということを考えています。
それと同じですよね。
自分は、GPUを使ったリバーブ・アルゴリズムなんかについて考えているんですが、
GPUに値を渡すことはできても、GPUから値をとってくるのが難しく困ってます。
GPUから値が取れないのは、GPUに情報が入ったら計算させて表示しておしまい、
というのが原因だと思いますが、もしかしたらサウンドカードでもにたことになってるかも。
874デフォルトの名無しさん:2006/03/18(土) 01:13:18
>>873
な、なるほどΣ(´Д`; )
サウンドカードにデータを渡しても結果は音として再生されて終わりってこともありえるわけか・・・
875873:2006/03/18(土) 01:22:14
サウンドカードの場合は録音もできるものがほとんどなので、
グラフィックスカードと違って、
サウンドカードからデータを取ってくることはできます。
ただ、PCから渡したデータをサウンドカードのプロセッサ経由させて
またPCに持ってこれるかどうかは別の話なんですが。
876デフォルトの名無しさん:2006/03/18(土) 02:38:19
つまり計算結果を音として再生させてそれをケーブルで録音端子に戻して録音すると。
アナログコンピューターかいな('A`)・・・
877873:2006/03/18(土) 04:21:27
サウンドカード内部でルーティングできれば、
アナログにする必要ありませんね。
878デフォルトの名無しさん:2006/03/18(土) 18:41:44
Universal Audio のUAD-1は古いVGAカードの再利用品でしょう。
ttp://en.wikipedia.org/wiki/Uad-1
879デフォルトの名無しさん:2006/03/18(土) 18:43:44
>>875
GPU使うのだって、計算結果をテクスチャ領域にレンダリングして
取り出すんじゃなかったっけ?
880http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 19:04:51
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
881デフォルトの名無しさん:2006/03/18(土) 19:26:05
>>878
MPACT2はDSPだからVGA専用というわけではない
882デフォルトの名無しさん:2006/03/20(月) 07:42:37
MacOSXに、CoreImage技術を使って、GPUに音声処理をさせる、AudioUnitsプラグインがあったぞ。
名前忘れたがモナリザっぽい名前だった気がする。
883デフォルトの名無しさん:2006/03/21(火) 02:54:44
HRTF って単純に線形補間していいの?
884デフォルトの名無しさん:2006/03/21(火) 03:00:12
> HRTF

何の略だっけ?
885デフォルトの名無しさん:2006/03/21(火) 03:52:25
頭部伝達関数
886デフォルトの名無しさん:2006/03/24(金) 16:30:49
積分方程式から音声信号を算出する具体的なやりかた教えろ!
887デフォルトの名無しさん:2006/03/24(金) 16:38:44
>>886
DTM板で教えてやったろアホ。
お前、大学レベルの数学勉強する前に人間勉強しなおしたほうがいいな。
888デフォルトの名無しさん:2006/03/26(日) 16:03:25
人間勉強なんて(・∀・;)エロイナ
889デフォルトの名無しさん:2006/03/27(月) 05:07:29
カスラックのせいで衰退したMIDIの事も時々思い出してください
890デフォルトの名無しさん:2006/03/27(月) 06:16:43
当時はカスラックの所為だったが、
今は高速回線でMIDIにする必要なくなったろ。
それにソフト音源が主流になって再生環境合わせるのも難しいし。
891デフォルトの名無しさん:2006/03/27(月) 10:12:29
プロが作った音が方々で聴けるってのに、
どこの馬の骨が作ったかわからんデータなんぞ、
DTM音源を買ってまでして聴かないよ。
892デフォルトの名無しさん:2006/03/27(月) 11:51:08
DTXという電子ドラムと同じ動きをするプログラムを作りたいのですが、
困ったことにDTXは1つのパッドに設定できる音は5音までなのです。
パッドを1.2.3.4.5と続けて叩くと、C.D.E.F.G と発音される設定の上限を10音や20音とメモリを気にせずにプログラムしたいのですが・・・
このような動きのプログラムは難しいでしょうか?
893デフォルトの名無しさん:2006/03/27(月) 11:53:59 BE:40761937-
>>892
日本語でおk
894デフォルトの名無しさん:2006/03/27(月) 11:59:51
>>892
ヒント:遅延評価
895デフォルトの名無しさん:2006/03/27(月) 12:42:44
>>892
簡単。
何番を鳴らすかのカウンタを作って、
叩かれるたびにインクリメント、
カウンタが最大値になったらもどしてやる。
896デフォルトの名無しさん:2006/03/27(月) 16:10:57
レスありがとうございます。
プログラミング初心者には難易度が高すぎるみたいですorz
897デフォルトの名無しさん:2006/03/27(月) 16:46:40
>>896
1音鳴らすのがやっとのプログラム初心者でもできることなんだけど、
ボタンを押すと画面に表示される数字が増えていく、ってのは作れる?
それができたら、数字を表示する部分を音を鳴らすのに差し替えて。
898デフォルトの名無しさん:2006/03/27(月) 17:30:16
それも作れないですorz
プログラミングテラムズカシス( ´Д`)
899デフォルトの名無しさん:2006/03/27(月) 19:54:22
よくテレビとかでプライバシーの配慮ということでボイスチェンジャーで声の音程を
変えたりしているでしょ?ああいうことってサウンドプログラムでも同じようなことって
できるのかな?

またクリエイティブのEAXを使えば高速化できてリアルタイム処理をするなんてことも可能?!
900デフォルトの名無しさん:2006/03/27(月) 20:09:57
>>899
・・・音声編集ソフトについてるの見たことないかね。
あと、リアルタイムとはなんだね。
901デフォルトの名無しさん:2006/03/27(月) 20:11:32
>>900
> あと、リアルタイムとはなんだね。

自分でマイクに向かってしゃべって、スピーカーからは音程の変えられた声が聞こえてくると
902デフォルトの名無しさん:2006/03/27(月) 20:23:09
そんな事を聞いているのではないのだよ。
903デフォルトの名無しさん:2006/03/27(月) 20:33:40
>>899
プログラムでできるよ。EAXは関係ない。

>>902
以前、リアルタイムの解釈でもめたからって、初心者につっかかるなよ。
性格悪いな、おまえ。
904デフォルトの名無しさん:2006/03/27(月) 20:35:11
誉め言葉をどうも。
905デフォルトの名無しさん:2006/03/27(月) 20:38:47
>>903
> プログラムでできるよ。EAXは関係ない。

っていうか、誰かそういうツールもう作ってたりするかな?
906デフォルトの名無しさん:2006/03/27(月) 20:42:10
そこから先はここで聞くことじゃないな
907デフォルトの名無しさん:2006/03/27(月) 20:42:38
908デフォルトの名無しさん:2006/03/27(月) 20:56:13
>>907
よう見つけてくるなぁ(;´Д`)ハァハァ・・・
909デフォルトの名無しさん:2006/03/27(月) 21:48:34
>>908
本屋行ったら子供がこれで遊んでたんだ
910デフォルトの名無しさん:2006/03/28(火) 10:59:40
ボイスチェンジャーを自分で作りたいんだったら、
どの程度の機能が欲しいか考えるといいと思うよ。
ただ声が変わるだけでいいんだったら
ディストーション、リング・モジュレーション、ボコーダーなんかでできる。
声質を変化させないまま音程だけ変化させたいというんなら
もうちょっと難しいけどタイムワープ(名前あってる?)とか、そういうのが必要。
911デフォルトの名無しさん:2006/03/28(火) 11:10:55
音程を低くするのは、周波数ロックして 1/2周期の(1+sin(w*t)) を掛け算するとソレっぽい音になるよ

音程を高くするのは、キーコン方式が一番楽だろうね
912デフォルトの名無しさん:2006/03/28(火) 11:11:35
音程だけ簡単に変えるなら、グラニュラーかな。
音を細切れにして、時間軸方向に縮めて、それをたくさんならべて隙間を埋める。
913デフォルトの名無しさん:2006/03/28(火) 12:29:34
音程をあげるのとさげるのとでは方式が違うってこと?
914デフォルトの名無しさん:2006/03/28(火) 12:56:50
>>912
これ、簡単な処理のくせにそれなりにちゃんと聴こえるだよね。
FFTとか窓関数とかやってた苦労はなんなんだ、ってくらい。
915デフォルトの名無しさん:2006/03/28(火) 13:36:34
ただのピッチシフターじゃん
これだけでどれだけレス消費してるんだか
>>899はプログラム以前に普通に音声エフェクト処理の知識をつけたほうがいい
916910:2006/03/28(火) 14:05:48
>>915
ピッチシフターじゃないボイスチェンジャーもあるわけで。
917デフォルトの名無しさん:2006/03/28(火) 18:50:48
プライバシーの配慮どうこうは間違いなくピッチシフター
適度に音が荒れるから元の声がくずれるしね
楽器には使いにくいけど
918デフォルトの名無しさん:2006/03/28(火) 18:54:55
電子工作とかエレキットとかでは見たことあるよ>>ボイスチェンジャー
でもソフトのもので(フリーの)ボイスチェンジャーは知らないなぁ。
別に作るのが難しいとかじゃなくてPCでボイスチェンジするメリットが
少ないからだと思うが…
919デフォルトの名無しさん:2006/03/28(火) 20:13:26
ボイスチェンジャーでなくても、ピッチシフトはフリーのがあるよ。
フリーのホストからフリーのVSTを呼んでもいいし。
920910:2006/03/28(火) 23:08:27
>917
テレビで使ってるようなやつはたいていピッチシフターなのは確かですな。
ローランドのVT-1が使いやすい。
http://www.roland.co.jp/products/boss/VT-1.html
921デフォルトの名無しさん:2006/03/29(水) 15:12:01
PhysXっていう物理エンジン処理用のチップがあるけど
これってサウンドプログラミングでも使えないかな?
複雑な残響音の反射などの計算って還元していけば
オブジェクト同士の相互作用と同じにみなせるでしょ?
922デフォルトの名無しさん:2006/03/29(水) 15:39:03
>>921
たぶん使える。Rayverbのインパルス生成みたいなのを
リアルタイムにやったらすごいだろうな。
923デフォルトの名無しさん:2006/03/29(水) 18:00:30
フリーのピッチシフト
ttp://www.vector.co.jp/soft/win95/art/se383358.html

ピッチシフト以外のボイスチェンジャーソフト教えてエロい人
試してみたい。
924デフォルトの名無しさん:2006/03/29(水) 18:36:41
>>923
> 少し前に流行った「一青窈のキ〜を4つ下げると平井堅になる」を試してみたかったので
> 作ってみました。

トリビアでやってたやつか。
俺もちょっと興味あったんだよな。
925デフォルトの名無しさん:2006/03/29(水) 19:08:36
フォルマントいじる系のボイスチェンジャーは単音入力じゃないとむりよ
926デフォルトの名無しさん:2006/03/30(木) 15:16:36
>>922
すごいな、グラフィックスの処理もサウンドの処理もこなす万能物理演算チップに
なり得る訳か>>PhysX
927デフォルトの名無しさん:2006/03/31(金) 03:56:13
デュアルコア世代で不要になる気がする。
あと、サウンドはやはりサウンドブラスターのX-Fiチップのような専門チップに任せたほうが賢い気がする。
928デフォルトの名無しさん:2006/03/31(金) 13:25:32
>>927
> サウンドはやはりサウンドブラスターのX-Fiチップのような専門チップに任せたほうが賢い気がする。

どうだろう。サウンドカードメーカーが用意した枠組みに従う限りは不要な気はするけど、
その枠組みを超えて独自の音源処理を施したい場合とかにはPhysXみたいな汎用演算
チップは重宝するようになるかも。要は生かすも殺すも使い手次第ということで。
929デフォルトの名無しさん:2006/03/31(金) 18:18:48
Windows2000/XP,C++,C#の環境です。

マイク端子やWaveファイルを入力として、その音声データから
電話のDTMF音を抜き出して、プッシュされた「1,2,3,4,#」などの
ボタンを識別したいのですが、参考になるサイトやライブラリなどは
ありませんでしょうか?
930デフォルトの名無しさん:2006/03/31(金) 18:57:06
そんなマニアックなことを解説してるサイトを見つけるほうが
無駄な労力だろうな。自分で実際にそのプッシュ音の波形を見て
特長見つけて判別するものつくりなさい。
931デフォルトの名無しさん:2006/03/31(金) 20:26:26
>>929
「DTMF 周波数」でググった後このスレを音程検出で検索すれ
932デフォルトの名無しさん:2006/03/31(金) 20:39:12
昔電話のトーン音を正確に模せる音大在籍の姉妹が受話器の前でハモって
プッシュボタンに一切手を触れずに天気予報や電話案内に電話をかけている
様を見たときは戦慄を覚えたな。
933デフォルトの名無しさん:2006/03/31(金) 21:01:56
トリビアの泉だろ?
そんな昔でもないじゃん
934デフォルトの名無しさん:2006/03/31(金) 21:27:00
特報王国だったような?
935デフォルトの名無しさん:2006/03/31(金) 23:02:24
そう、特報王国だったね。
936デフォルトの名無しさん:2006/03/31(金) 23:10:28
>929
正弦波ふたつだけでできてるから検出はラクチン。
937デフォルトの名無しさん:2006/03/32(土) 02:06:15
>>932
実は1と7しか出来なかった罠。しかも1と7は1209Hzが共通だから
1人は同じ音しか出していない。まぁ、やれって言われたら無理だが。
938929:2006/03/32(土) 06:22:44
できたよ。情報ありがと。
DTMF音の間が極端に短すぎると抜けが出るけど、
実用にはOKかな。
間が20msくらいが限界。リアルタイムにやるならね。
939デフォルトの名無しさん:2006/04/02(日) 01:56:15
キチガイが発生するからリアルタイムうんちゃらは止めれ。
940デフォルトの名無しさん:2006/04/02(日) 01:59:49
( ゚д゚)?
941デフォルトの名無しさん:2006/04/02(日) 11:29:26
リアルタイムシステム=遅延時間を常に一定値以下に”保証”できるシステム

「では”保証”できる遅延時間がどれだけか」という話は、リアルタイム性とは別の話だ。

”保証”出来ないシステムは、リアルタイムとは呼べない。
942デフォルトの名無しさん:2006/04/02(日) 14:33:56
実に下らん。原理主義者のご到着。
そんなことぐらい誰でも知っていて、それでも使う意味を理解したらどうだいwww
943デフォルトの名無しさん:2006/04/02(日) 14:45:20
って、別に批判してるわけじゃないのか。スマ。

本当のリアルタイムシステム (英語に直すとひどい言葉になりそう) なんて、
2chで不特定多数と話す価値が無いだろうね。
殆どの人間はリアルタイムじゃない仕組みしか使っていないだろうし。

結局
擬似的なレベルしかできないし、むしろ擬似的なレベルで上手く回る仕組みのほうが重要。
>>938もリアルタイムシステムとは言っていない。「リアルタイムに感じる」との解釈が正解のような。
944デフォルトの名無しさん:2006/04/02(日) 14:50:30
擬似的じゃないリアルタイムとは?
そろそろこのあたりで時間と空間について語り合いませんか。
945デフォルトの名無しさん:2006/04/02(日) 20:26:40
スレ違いのうえにどうでもいい
946デフォルトの名無しさん:2006/04/03(月) 14:47:18
947デフォルトの名無しさん:2006/04/03(月) 17:28:21
春だなぁ
948デフォルトの名無しさん:2006/04/04(火) 09:15:27
質問です。
例えば、
「あ〜〜」って発音してる音声と
「い〜〜」って発音してる音声があって
それを1つのMIXしたデータAを用意
ここから、「い〜〜」と発音したデータを引いて差分から
「あ〜〜」と発音してるデータを作ることは無理なのでしょうか?
949デフォルトの名無しさん:2006/04/04(火) 09:24:42
同じ人の声だと難しいかもねぇ。
発声タイミングが違えばなんとかなるかもしれない。
でも基本的にはすごく難しいと思っておこう。
950デフォルトの名無しさん:2006/04/04(火) 16:19:14
独立成分解析でググれ
951デフォルトの名無しさん:2006/04/05(水) 06:04:04
独立成分分析は多チャンネル録音してないと使えないよ。
声が2つだったら少なくとも2チャンネル必要。
952デフォルトの名無しさん:2006/04/08(土) 02:41:57
よく刑事ドラマとかで無線越しの声が出てくるけど
あれって普通のマイクで録音した声をいじって
いかにも無線越しに聞きましたよ、と波形処理することって可能?

それとも一対の無線機買ってきてそいつに音を通さないと
それらしい効果は得られないのかな?
953デフォルトの名無しさん:2006/04/08(土) 03:23:29
>>952
一度ものすごく低いレートでエンコードしてみなよ
いいヒントになると思うよ
954デフォルトの名無しさん:2006/04/08(土) 03:26:55
>>953
それはローパスフィルターがらみじゃなかった?
955デフォルトの名無しさん:2006/04/08(土) 04:19:53
柳沢慎吾に弟子入りしろとあれほど
956デフォルトの名無しさん:2006/04/08(土) 04:31:27
ローパスとかバンドパス・フィルタに鋭いレゾナンスつけるとそれっぽくなるかもしれない。
ピーク周波数を上下させると、昔のAMレシーバー(スケルチ回路?)みたいな音がする。
ちょっとだけディストーションかけるとマイクに口くっ付けて話しているような音になっていいかも。
荒めのピンクノイズを混ぜたり、いろいろ試してみるべし。
957デフォルトの名無しさん:2006/04/08(土) 10:45:58
http://saki.2ch.net/radio/kako/963/963053838.html
>パトカー用無線(MPR-100)変復調方式
 :PLL4相PSK 音声符号化方式
 :ADM(適応デルタ変調)伝送速度
 :16kbps フレーム同期信号
 :11011000(正) 00100111(転)1フレーム320ビット構成

という事のようだから、サンプリング周波数を16kに減らしてから、ビット数を減らしてやれば良さそう。
あと、小信号時に8k 4k 2kHz を足してやるともっとそれらしくなると思う
958デフォルトの名無しさん:2006/04/08(土) 14:43:28
あの警察無線や軍用無線の独特な声質って低ビットレートPCM変換されたことに起因するのか?
959デフォルトの名無しさん:2006/04/08(土) 19:43:45
http://audiere.sourceforge.net/
これ、シンプルでいい感じのライブラリだと思う。
960デフォルトの名無しさん:2006/04/08(土) 20:28:33
みんながイメージする警察無線って、
やっぱりアナログ時代の音だと思うよ。
961デフォルトの名無しさん:2006/04/08(土) 20:54:34
アナログの音か・・・
ハイパスフィルターやローパスフィルターはかけてみたがそれらしい音にはならなかったような・・・
わざと潰して歪ませてみたりするか
962デフォルトの名無しさん:2006/04/09(日) 00:37:03
その辺は感覚の問題だからプログラム板だと板違いだろ。
既存のコードを使ってなんとかするだけならDTM板でやれ
963デフォルトの名無しさん:2006/04/09(日) 01:28:03
変調復調も音質に関係しているんじゃないかな?
理論上は線形変換でもアナログ回路で実装すると非線形になって
(近似すれば線形)独特の音質が形成されてると考えるのはうがった見方かな?
964デフォルトの名無しさん:2006/04/09(日) 02:57:01
慎吾ちゃんがやってるのはもろにディストーションだもんね。
965デフォルトの名無しさん:2006/04/10(月) 08:15:44
無線というのは決められた帯域、決められた出力があるから非線形が入るのが当然。
966デフォルトの名無しさん:2006/04/10(月) 12:31:51
いや、そこをしっかりローパスフィルタ使って帯域制限してやれば
非線形にならない、というのがナイキスト理論。
967デフォルトの名無しさん:2006/04/10(月) 12:36:46
音量が大きいと FM変調の場合 決められた帯域を超える
音量が大きいと AM変調の場合、決められた出力を超える
968デフォルトの名無しさん:2006/04/10(月) 12:44:10
>>967
一般的な無線の変調ってどっちだっけ?
969デフォルトの名無しさん:2006/04/10(月) 20:54:49
>>967
それは使う音量を間違えてるんだよ。正常動作範囲内だったら非線形。
でも965で言いたかったことが分かった。
ただ、警察ドラマみたいに無線機に向かって怒鳴ったりしたら
変調させる前にクリップするんじゃないかな。
そこで非線形が生まれるのか。

>>967
CB無線はAM方式だったはず。
もっと高い周波数だとFM使うことが多いのかな。
970デフォルトの名無しさん:2006/04/10(月) 21:33:25
AM変調だとすると

> 音量が大きいと AM変調の場合、決められた出力を超える

つまり音が全体的に過大入力になることで歪み、無線独特の音質になったってことかな?
逆に入力の音量が正常なら、AM変調の無線でもAMラジオ並の音質は確保できるということか?
971デフォルトの名無しさん:2006/04/10(月) 23:59:20
警察無線で定格以上の過大出力をするとは思えないんだけど。
972デフォルトの名無しさん:2006/04/11(火) 18:45:58
全然サウンドプログラミングじゃねーよ
頭悪

つか、定格以上になる以前にクリップするだろ普通
973デフォルトの名無しさん:2006/04/11(火) 18:51:58
普通はクリップしないように工夫するんじゃない?
974デフォルトの名無しさん:2006/04/11(火) 19:11:56
その工夫がつまり、AGC=非線形な処理のわけだ
975デフォルトの名無しさん:2006/04/11(火) 19:18:00
それならラジオだってAGC処理はしている。
でも無線みたいな音質にはならないからクリッピングが原因とは想像しがたいが・・・
976デフォルトの名無しさん:2006/04/11(火) 19:39:15
>>968 警察無線ならFM変調
977デフォルトの名無しさん:2006/04/11(火) 20:06:24
http://ja.wikipedia.org/wiki/振幅変調
これでも読んどけ

あと、実際は警察無線がFMだからFMにするってのは表現上は良いとも限らんからな
SSBが一番
978デフォルトの名無しさん:2006/04/11(火) 20:08:34
SSB?
979デフォルトの名無しさん:2006/04/11(火) 20:47:56
普通に受信するとモガモガ聞こえるんだよな、SSB。ナツカシス。
980デフォルトの名無しさん:2006/04/11(火) 21:39:19
>>976
警察無線ってFMラジオ並みの音質あったっか?
981デフォルトの名無しさん:2006/04/11(火) 21:55:22
>>980
音質は、FM/AMの方式で決まるんじゃなくて、どれだけ帯域を取っているかの方だろ
982デフォルトの名無しさん:2006/04/11(火) 22:02:56
昔の警察無線は、さらに秘話装置も使われてたから >> 977の言うSSBの原理
983デフォルトの名無しさん:2006/04/11(火) 22:28:29
無線の音質ってこういう感じだろ?(下の例はCB無線)

ttp://www.ntt-east.co.jp/tasc/gijutu/noise/20.wav

単純に帯域だけで論じられるものかね?


ちなみに以下はデジタル無線の音声
ttp://www.icom.co.jp/beacon/technical/ama_dig/me.wav
984デフォルトの名無しさん:2006/04/14(金) 09:12:09
人間の脳が音による空間認識をしてるから音源の三次元位置を忠実に再現するための
録音方式と言うのがいろいろ開発されてて、今のところ一番普及してるもので最限度が高いものが
人間の頭の模型の量耳の位置にマイクをつける方法というのがある
耳に直接入ってくる音と耳の中でこだまする音の両方で人間が空間を認識してるからこれが一番
効果があるらしい
普通に録音したものを擬似的にこういった加工はできないだろうか
一番興味があるのはホロなんとかってある科学者が録音した音があってこの録音方式の際限度は
上で書いた頭の模型の非ではないくらい忠実に再現できる
実際に検索すればころがってるのでヘッドホンつけて聞いてみるとわかる
ただこの科学者、世界が滅亡するとかいう理由で録音方法を死ぬまで誰にも言わなかったから
謎のままなんだそうだ
どういう構造で立体認識をする音になるのかがわかればこの録音方式の解明にもなるんじゃないだろうか
そういうことって可能なのかね?
985デフォルトの名無しさん:2006/04/14(金) 10:15:51
>>984
適当な内容で長文かくなよ〜。

ホロフォニックよりアイソフォニックとか、優れた技術はあるだろ〜。
頭の模型だけじゃだめで、胸も必須だぞ〜。そこの反響がキモなんだから。

録音方法を死ぬまで誰にも言わなかったってのはウソ。
米軍が権利を買い取ってるし、録音に参加した人も多数。
録音中の黒い布の中には、精巧な上半身つきダミーヘッドが
あっただけだそうだ。当時のダミーヘッドはそれこそ頭だけだったので、
それだけでも革新的なんだよ。
986デフォルトの名無しさん:2006/04/14(金) 11:51:36
ホロフォニックって、「耳から参照音が出ていて云々…」って
説明だけ聞くとえらいトンデモ発明に聞こえるんだけど
実際聞くとビビるな。

>>984
頭部伝達関数とかでググるよろし。
987デフォルトの名無しさん:2006/04/14(金) 22:03:52
こっちに興味のある人々が集っているようです。

立体音響2
http://pc8.2ch.net/test/read.cgi/dtm/1142360597/
988デフォルトの名無しさん:2006/04/15(土) 16:24:38
>>985
適当なのはあんた
isophonicなんてhorophonicsの比じゃない
聞いてみな
比べ物にならんよ
989デフォルトの名無しさん:2006/04/17(月) 21:34:16
990デフォルトの名無しさん