サウンドプログラミング
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGMODトラッカー,MIDIシーケンサの技術的な話題に関するスレ
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG他人に頼るだけの奴はスレ立てるな
0005デフォルトの名無しさん
NGNGsage
0006デフォルトの名無しさん
NGNG現状でも希望でもいいから書け
0007not 1
NGNGttp://www.cactussoft.co.jp/books.htm
win限定なのは痛いが、まぁ仕方ない。
でもwinのAPIをunixの奴(read()/write())に比べると
なんでこんな面倒なんだ?とむかついてくる。
ソフト音源作ってみたいなあ。
テキトウにそれっぽく書いて(winで)やってみたら
全然処理が間に合わなかった(わら
まだまだスキル足りない模様。
unix用(語弊あり?)のオプソの奴のソースでも
じっくり読んでみるか…
#なんでウニかというと、上記のように出力の仕掛けが単純なので、
#いらんこと気にせず読めるはずだから。
>>3
TVO-TVF-TVA は労陸(LA音源)だっけ?
0008デフォルトの名無しさん
NGNG自分もFM音源(OPM)のエミュ作りたいと思ってたら、すでにあって消沈。
ttp://homepage1.nifty.com/mpuusan/x68sound/x68soundbody.htm
ソースも公開されてるし...
>>3
VCFのアルゴリズム知ってたら誰か教えて、できればレゾナンス付きのやつ
0009デフォルトの名無しさん
NGNGあるNESエミュのソースを見たのですが理解できません。
0010デフォルトの名無しさん
NGNG>VCF
この板でしかも「アルゴリズム」って質問の仕方だってことは
ソフト(デジタル)でやる話と思うが、
ならばFIRフィルタやIIRフィルタを使うんじゃないかやっぱり?
アナログのコンデンサ的フィルタと
デジタルのディレイ的フィルタじゃ
定数のかましかたが全然違うが、
そのへんは適宜行列計算かなんかで
相互変換すればいいんじゃないかと想像する。
そういえばアナログシンセの真髄は、デバイスの癖のせいで
(MOOGの)理論通りに音が出ない、という点に尽きる。
だから、馬鹿正直に理論を実装しただけじゃ
それこそLA音源並の音になる。
0011デフォルトの名無しさん
NGNG平均値を引けばいいだけ.
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGアナログエフェクターの回路図読める様な人ならエミュレートって
多分簡単なんだろうね。
(自分はハンダコデは使ったことはあるけど回路図読めない)
>>8
昔図書館で、「自作する電子楽器」みたいな本に
そういう回路図とかのってた気がするけど、
そういうのって役に立つのかな
0014デフォルトの名無しさん
NGNGVCFは 2次LPFで良いでしょう
LPFだけなら簡易な
w=πf/f0 として f=カットオフ周波数 f0をサンプリング周波数
w^2/(1-(2-w*a-w^2)*Z+(1-w*a)*ZZ) Zはz^-1の事
で良いでしょう。
レゾナンスはフィードバックをかける事ですが、aを調整してゆくと実現出来ます
ただし0から負の領域は発振領域ですから、なだらかなクリップ処理をかけると
いいでしょう
ちなみに数式で 1/(1+a1*Z+a2*Z*Z)は 入力x出力yとして
y= x-(1つ前のy)*a1-(2つ前のy)*a2
結局 LPFは ww:=w*w ; a1=2-w*a-ww; a2:=-(1-w*a);
y:=x*ww-a1*y1-a2*y2;
y2:=y1;
y1:=y;
result:=y;
>>9 それはLPFという処理です。 カットオフしたい周波数によって2次か1次かを
決めます。たとえば数ヘルツでカットオフしたいなら1次でOKです
1次のLPFは
w =2*π*f0/22050.0;
r =tan(w/2);
b =(1-r)/(1+r)
(1-b)(1+Z) Zはz^-1の事
------------
2(1-bZ)
か簡易には
1-(1-b) bは1-f/f0 程度
---------
(1-(1-b)Z)
でもOKです。 分母は
y:=x+(1-b)y ;ですから 分子bをxにかけて
y:=b*(x-y)+y と計算します
0015デフォルトの名無しさん
NGNGサンプリング44.1Kで4KHz程度で処理したいなら 周波数を1/2にして
分子を(1+Z)^2にするといいでしょう
この方式だと正確には
w0 =2*π*f0/fsample;
w =tan(w0/2);
w*w*(1+Z)^2
------------------------------------
(1+αw+ww) -2(1-ww)Z + (1-αw+ww)Z^2
となります。
0016デフォルトの名無しさん
NGNG> アナログフィルタのシミュレーション(?)とそのフィルタの特性を
> ラプラス変換で確かめます.
> またディジタルフィルタを作成し,z変換で特性を調べます.
ここにいろいろ書いてある。レゾナンスも。
0017>>14
NGNG俺、大学行ってないから、どうしてこうなるのか知りたいんだけど
0018デフォルトの名無しさん
NGNGOggVorbisを使うスレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=992580185
001914
NGNGとりあえず三角関数と複素数が判ってれば利用するのに支障無し
00208
NGNGありがとう、2次IIRでいけるのね。
固定小数点で、16Mhz程度の組込用16bitCPUで出来ないかと考えてたけど
やっぱりSHクラスのCPUで浮動小数点DSPを使わなきゃ無理そうですね。
パラメータ変わったときの係数再計算も重そう。
最近はやりのバーチャルアナログシンセはどんなCPU使ってんだろう?
>>13
S(アナログ)からZ(デジタル)への変換って結構計算が重いと思います。
結構複雑な式だった記憶が...
精度良くかつ安直にやると次数も増加するんじゃないかな。
0021>>19
NGNG公式丸暗記はあまり好きじゃないので、
原理を知りたいのですが。
これ知らないと、自分でフィルタ作れないですしね
002214
NGNG除去というのは取り出す事じゃなくて取り除くことだから LPFじゃなくてHPFだね
>>20
固定少数点だと、厳しいのは
w^2の項があって、wを可変するとたぶん可変範囲は8bit程度
必要だから処理は24bit程度でやらなければいけないからかな
係数の再計算はそれほど大変じゃない。tanだけあらかじめ
係数と、その差分をたテーブルにしとけばいいでしょ。
そんなに係数の更新は急ぐ訳じゃないし。
ところでクロック16MというとH8かM16C?
という事はサンプリングは10K程度かな?
それなら出来ない範囲じゃないと思うけど
002314
NGNGttp://www.signal.tutics.tut.ac.jp/~dspcai/mtanaka/filter.html
00248
NGNG今のところできたらいいな程度にしか考えてませんが、仕様は
AKI H8とかM16Cなどの5千円以下で手に入るCPUボードで外RAM,ROMなし
サンプリング20KHz、2VCO、EG&VCA、VCF(レゾナンス有り)構成のMIDIから
操作するバーチャルモノシンセってとこです。
係数更新の許容範囲は、数十msぐらいかなぁ。
やはりボトルネックはVCFと非同期のMIDIの受信割り込みかと思うけど。
20KHz=>800cycle@16Mhzだからどのみち、直感的な意見ですが
浮動小数点積和はスピードで厳しいでしょう。
とりあえずゆっくり頭を冷やして、全体の処理構成と各処理の重さを
検討して見ようかな。
002514
NGNG非同期のMIDI受信はそう厳しくないよ31.25Kbpsだからしれてる。
M16CでCで素直に書いてもおいつく
VCFを作るのにこんな方法はどうだろ?
どうせVCOでサイン波ジェネレータは作るから、2相のサイン波が
出るようにしておく。つまり複素数でいえば e(-iwt)の信号ね
これを元信号と掛算すると周波数軸上でシフトした事になる
このシフトした状態(複素数)に1次のLPFを回転周波数に応じて
かける。これに2相のサイン波を再度掛算する。今度はe(jwt)ね
するとwの周波数のBPFが出来る
掛算は4回必要だけど2次のフィルターのように係数にシビア
じゃないし綺麗でしょ?
0026デフォルトの名無しさん
NGNGww:=w*w ; a1=2-w*a-ww; a2:=-(1-w*a);
y:=x*ww-a1*y1-a2*y2;
この式だけど、
a1,a2を代入して
y := (2-b*w-w*w)*y1 - (1-b*w)*y2 + w*w*x
分解して
y :=y1-(y2-y1)+(y2-y1)*b*w+(x-y1)*w*w
か
y :=y1-(y2-y1)+{ (y2-y1)*b + (x-y1)*w }*w
とやれば、
wはおよそ2πf0/fs (f0が共振周波数 fsがサンプリング)
だから係数更新し易い。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGアナログのレゾナンス付LPFの伝達関数
H(s)=w^2/(s^2+(w/Q)*s+w^2)
に双一次変換の公式
s=(2/T)*(1-Z^-1)/(1+Z^-1) Tはサンプリング周期
を代入してみたけど
そんな簡単な式になりそうになかった。
どのような元式を使ったか教えてください。
>>25
それってエーリアスは問題にならないの?
またこの方法だとレゾナンスは無しでしょうか?
なんかプログラムじゃなくて数学色が強くなってきたね。
0031デフォルトの名無しさん
NGNG双一次変換した方は >>15
>>14 はいわゆる共振型
wが大きくなるとアナログと外れて来るけど
低い周波数ではよく一致する。 周波数特性描かせて見たら判る
サイン波をかけ周波数シフトした上でフィルターをかける方法は
かけるフィルターがLPF以外だと折り畳みの問題がある
例えば 20Kサンプリングで 8KHzの音に3KHzのサイン波をかけたら
5KHzと11KHz 11KHzは折り返されて 9KHzの音と区別がつかない
ただ、2相でやってる事に注意。 複素数の場合、位相関係を
揃えればサンプリング20Kで20K迄表現出来る。
0032デフォルトの名無しさん
NGNGU =√(1+aw+w*w)
b =a/U;
w'=2w/U;
とすれば >>14の分母の形に変形出来る つまり >>26の形に変形出来る
w =tan(2πf0/fs/2) だからf0/fsが小さければ
w = 2πf0/fs/2 また U=1 としていい
さらに低い周波数に対しては双一次変換分子の(1+Z)^2 は殆ど利かない
wが小さければ分母の効果だけでも十分というのが理屈
0033デフォルトの名無しさん
NGNG俺がいま言おうとしてたのに。
0034デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGEmuのあれですか?
そもそもあれが大雑把にいってどんな処理なのかが判りません私(T_T)
時間領域でグラフをMorphingやったって単に音声をMIXしただけにしかならない(藁)から、
周波数領域でグラフをMorphingするって感じでしょうか?
0038デフォルトの名無しさん
NGNG自分は数学は少しできますが、音声についてはまったく分かりません。
0039デフォルトの名無しさん
NGNGあるみたいですが、DX7のエミュとかって無いでしょうか。
0040デフォルトの名無しさん
NGNG答えるかどうか、熟慮しています。15日までまってください。
0041デフォルトの名無しさん
NGNG期待される答え(^^;の人の行いはそれはそれで称えるに値する行いなんだけど、
それは別として、4OPと6OPって結局はOP数とパラメータが違うだけだよね。
なんで今まで無かったんだ?というのは、激しい不思議。
4OPな奴(おぷそのも有るよね)を改造してとりあえず6にした人とか
既にいないの?
ところで15って…終戦っすか?
>>38
漏れは関係ないが、それ方面な友人の挙動を見て推察するに、
たとえばトラ技なんかを愛読していたよ。
0042デフォルトの名無しさん
NGNG情報系の学校の授業とその教科書
アナログ領域は数学のフーリエ級数、デジタル領域はデジタル信号処理とか
DSPってタイトルがついてる本なら基礎理論はだいたい同じことが書いてある。
俺はあまり理解はしてませんがね。
あとDTMマガジンとか、インターフェース、
デザインウエーブの連載かな。
>>41
エミュ作るのに必要なチップの仕様書が手に入らないからでは?
OPMやOPLなら昔のパソコンの取説や解説書なんかに内部構成とか、
パラメータの計算式やテーブル値が載ってるけど、
DX7のやつって見たことない。
あと実は激重だからとか...
0043デフォルトの名無しさん
NGNG1〜2年前ぐらいまでは重かったけど、
最近のPCなら余裕でしょ。
あと、YAMAHAがチップの仕様書を公開してるとは思えない。
有料で入手できるかもしれないですが
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG4OPのエミュって、仕様書読んで作ったんでしょうか?
てっきりパラメータ突っ込んで出力音をオシロやスペアナとかで
観察して挙動を見切ったのだと思ってたよ。
>>43
んだ。単なるサイン波(というかtable読み出し)なんだから、
フィルタでいろいろやる音源より軽い可能性も。
7のチップは出してないねえ。一番安いのはMU用プラグインボード?
楽器としてはTX802なんかが中古で一万くらいで有るけどさ(藁
なんでチップ出さなかったんだろ。面白かったのに。
0047デフォルトの名無しさん
NGNGたしかに書籍のデータは観測して書いてるかも。
ttp://www.yamaha.co.jp/product/lsi/prod/index.html
でも今では、これぐらいまで一般の人が見れるんだから、パソコンメーカには
同じ程度の資料があって取説を書いてるはず。
このような資料と実機測定あとパラメータいじりながらの耳ミミコピ、
プログラムスキルがあれば6OPだろうとエミュは作れると思います。
>>43
知人から聞いた話ですが昔、YAMAHAへFM音源ICの資料請求したがもらえなかったと。
いまでもそうじゃないかなぁ。
あと1年ぐらい前だったか海外のYAMAHAサイトに古いFMのカタログがあったらしいが
自分が見に行ったときはすでにリンク切れてました。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050通りすがりの名無しさん
NGNGさておき、いきなり質問で恐縮ですが、
WinAmp のプラグインについて質問があります。
WinAmp のプラグインに、
「レンダリング波形数とレンダリング先のバッファを指定すると
波形を吐き出してくれる。繰り返し実行すると、再生ポイントが
進んでいく。これらの機能は、プラグイン単体で動作できる。」
というような仕様の、波形レンダリング関数(または手段)は
用意されているでしょうか?
ざっと仕様をみたところでは、内部で再生スレッドを立ち上げたり、
WinAmp と連動したり、ややこしい作りになっているようで、
上記の関数は表には見えていない様でした。
WinAmp のプラグイン単体で再活用できれば、
世間に存在する多種多様のサウンドフォーマットの資産を、
ゲームの BGM など、WinAmp 上での再生以外の用途で活用できるのですが。
0051通りすがりの名無しさん
NGNG> でも今では、これぐらいまで一般の人が見れるんだから、
YAMAHA も随分とオープンになったもんですなぁ。
0052デフォルトの名無しさん
NGNGでも、mLANって非OPENなんでしょ?ライセンス料とか取るって言ってる。
OPENなMIDIが世界標準になったのとは大違いだ。
過去のシンセの説明書をwww経由で無料DLできる(PDFとか)ようになってるんで、
過去に対しては結構OPEN化が進んでいるのかも知れないけど、
それは単に未来の大儲けのために過去の垢を捨てているだけじゃないかな。
垢でも有り難がる人は世界じゅうに居るのでYAMAHAにとって問題なし。
>>49
やってみたいなあ。漏れはMIDIだけで挫折しそうだが。
おっとこのスレはMIDIも守備範囲だっけ。すまん。
1.3で搭載されたMIDI(SMFじゃなくMIDIプロトコルそのものの)サポートは、
実用性がどうなのかは別として気概は凄いと思った。
汎用言語メーカー(藁)たるSUNが、MIDI MessageとMIDI Eventの区別を
厳格に定義するようなAPIを、最初から作っちゃうんだもんなあ。
まぁきわめてJAVAらしいといえばそのとおり。
というわけで、実際に使った人の声聞きたい。
あの厳格なクラス構成をきっちり使ったのかどうかとか、ね。
0053デフォルトの名無しさん
NGNG本当に出来るなら面白いですね。
試しにソフト音源とかを作ってみるときに足回りとして転用できそう。
ところでVSTって、音源ソフト(プログインとか)を作る側から見て、なんなのでしょう?
ソフト作るための資料としてFREEなものは有りますか?APIとかの。
0054デフォルトの名無しさん
NGNG見たな・・・
>>51
半導体を売っている会社でWebにデータシートが載せていない方がいまは
珍しいと思う。
0055デフォルトの名無しさん
NGNGsteinbergのpageを見るべし。
developer登録すればSDKはダウンロードできる。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGinput plug-inのこと?
DSPならApollo等他のソフトでも使えるけど、
inputの方はwinampと連動してるから無理かなーってことか?
なんとかできんことはない気がするね。
0058デフォルトの名無しさん
NGNGCubaseのプラグインを作るために参考になるサイトとかってありますか?
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGめちゃめちゃありがとう>>59
0061デフォルトの名無しさん
01/09/03 03:45ID:LXi6Pi92思っているんですが、自分でこういった処理を作る場合、
波形の2度書き(↓)以外になにかすることってあるんでしょうか。
22050Hz 44100Hz
_| ̄|_| ̄|_→__| ̄ ̄|__| ̄ ̄|__
考えられるのって曲線補完とかですかね?
参考になるサイトなどありましたら教えてください。
0062デフォルトの名無しさん
01/09/03 07:48ID:3fY0oBq.2次補間でもそれなりな結果になりますが
本に載ってるより一般的な方法は、
1)間をゼロで埋める
2)前サンプリング周波数÷2より少し低い周波数で強力なLPFをかける
というものです
0063デフォルトの名無しさん
01/09/03 08:06ID:zmFVSFBM規格外のループイベントではどんなのがあるでしょうか?
とりあえず、RPGツクール2000の
コントロールチェンジ111番だけ確認したです。
0064デフォルトの名無しさん
01/09/03 12:12ID:ewvSMjxYリサンプル?
マルチレートFIRフィルタ使ったら?
あるいは、変換後のサンプル位置から変換前のサンプル位置へ
マッピングして、その時小数座標になるから、シンク関数で補完する。
0065デフォルトの名無しさん
01/09/03 12:23ID:XtwpCTmA006664
01/09/03 12:23ID:ewvSMjxYWindowsなら、
ttp://www.intel.co.jp/jp/developer/vtune/perflibst/index.htm
にあるインテル信号処理ライブラリのマルチレートFIRフィルタ使うと楽。
nsp?FirLowpass_Proc()で、まず前サンプリングレート÷2のローパスフィルタを設計し
nsp?FirlInitMr()で初期化して、
nsp?Fir()に掛ける。
Windows以外だとそれ使えないから、その場合はこれ参考にするといい。
ソースコードつき。
ttp://www.geocities.co.jp/Technopolis/9674/ssrc/
0067デフォルトの名無しさん
01/09/03 12:59ID:nCTaZ.02インテル信号処理ライブラリって便利なのがあるんだね。
これは使わなきゃ損だ。
ところでこの場合、実際にFIRかけるとき、入力データは2個に1個は0だから
その辺は工夫しないと、演算が無駄に増えてしまうね。
>>64
シンク関数を使う場合はどうしたらいいの?
ハミング窓とかの窓関数をかけて範囲を有限にしてから演算すればいいのかな?
006864
01/09/03 15:19ID:ewvSMjxY>ところでこの場合、実際にFIRかけるとき、入力データは2個に1個は0だから
>その辺は工夫しないと、演算が無駄に増えてしまうね。
そういう用途向けにちゃんと複数サンプルをまとめて扱うブロック版の関数がある。
内部ではちゃんと無駄な計算を省いてあるらしい。
リサンプルなら、それに1秒単位でぶち込めばよいと思う。
SSEとか使えれば当然活用してくれるので、速度的には結構信頼できる。
精度がどうなのかは、今いち漏れにはよくわからない。
シンク関数は、窓かけて有限にして扱う。
どのくらいの精度のリサンプルをしたいかによるが、
近似関数使うといいかもしれない。
リアルタイム処理するなら、精度を落としてよく4近傍とかで行う。
某書籍のサンプルでは
0<=|x|<1では
w(x)=1-2*x*x+|x*x*x|;
1<=|x|<2では
w(x)=4-8*|x|+5*x*x-|x*x*x|
2<=|x|では
w(x)=0
なんて近似を使ってやってるのを見たことある。
この関数は、左右対称で、x=0のとき1で、その他の整数座標では0になる特性をもつ。
近傍4サンプルでこの関数の頂点(x,y)=(0,1)がそのサンプルの座標にくるようにあてがって、
合計を取ると、それが補完された波形になる。
エフェクトとかの処理でリアルタイムに高速な処理が必要とされるなら、
精度は低いが上述の方法でやる。
単なるリサンプラで、処理に時間がかかってもいいのならFIRフィルタ使った方がいいだろう。
0069デフォルトの名無しさん
01/09/03 18:26ID:nCTaZ.02Sinc関数のそんな近似があったんだ。ということは。
22050Hzのサンプリングデータ I(0) I(1) I(2) ... に対して
44100Hzのサンプリングデータ O(0) O(1) O(2) ... は
O(2n) = I(n)
O(2n+1) = -0.125*I(n-1) + 0.625*I(n) + 0.625*I(n+1) + -0.125*I(n+2)
たったこれだけの演算でよいわけね。これはメチャ速そうだ。
これでどれくらいの音質を確保できるんだろう?
実際に聞き比べた感じでは分からないレベルなのかな?
0070デフォルトの名無しさん
01/09/03 19:19ID:nCTaZ.02>>62の2)の工程で使うLPFは直線位相特性を持つ必要があるので、
普通はFIRフィルタを使うと思うんだけど、
聞いたところによると直線位相特性を持つIIRフィルタもあるとか。
これってどんなの? このサンプリングレート変換処理に直線位相IIRフィルタって使えるんですか?
また直線位相IIRフィルタの欠点って何かありますか?
0071デフォルトの名無しさん
01/09/03 20:59ID:56CCihG6AnnexMIDIはスムーズな無限ループ・途中から繰り返すループが可能だ。
ゲーム向けの仕様なんだろな。
でもこれスタンダードMIDIフォーマットじゃないんだよね。
0072aruru
01/09/03 21:46ID:.hT78MnoAPIはあるんでしょうか?
MIDIと普通のサウンド出力以外の使い道があるなら活用したいんだけどな〜
007361
01/09/03 22:15ID:U9hn1Uscなんかやたら難しそうですね。
とりあえずは簡単そうなssrcを解析してみようと思います。
ありがとうございました。
0074デフォルトの名無しさん
01/09/03 23:52ID:TwJ99J86前に同じようなことをやったんだけど、やってみるとサウンドカード側で
補間されていることが分かって愕然としたことがあるよ。
補間せずに44k化したものより、22kのwaveをそのまま再生したほうが
音質がよかったってことね。
なんで補間しても音質が変わらないのか最初分からなかった。
0075デフォルトの名無しさん
01/09/04 12:00ID:DASKlEA.単にD/Aの出力が結果的に線形補間に見えてるだけじゃなくて?
0076デフォルトの名無しさん
01/09/04 15:16ID:rccG4HwI補完しても音質はかわらんだろう。むしろ大抵下がるだろう。
そのまま22kで再生した方が音質が良かったのは、
つかったサンプルレートコンバータのエンジンより、
サウンドカード内蔵もしくはドライバレベルで用意されている
サンプルレートコンバータの方が精度が良かっただけ。
必ずしも良いとは限らんさ。特に安物サウンドカードだった日には、鬱氏だぞ。
>>70
漏れも興味ある。数学もしくは信号処理詳しい人の回答きぼーん。
>>74
ssrc解析するよりインテルの奴使うほうが簡単だよ。
漏れはssrcの解析はあきらめたクチ。
解析っつーか、SSE化をあきらめたんだけど。
0077デフォルトの名無しさん
01/09/04 15:19ID:rccG4HwI音質はかなり悪いと思われ。
ま、用途によって変わるだろうが。
その式は、音程を変えずに再生速度を上げるとか、
ビブラートとかのエフェクト中で使うために
ごくごく簡略化された計算だから。
そういう用途向けで無いとそれだとちと辛い。
0078デフォルトの名無しさん
NGNGだったけど、なんであんな中途半端な周波数だったんでしょう?
CDの存在する時代ですよね?
音は(当時にしては)結構良かったけど。
0079デフォルトの名無しさん
NGNG高音成分まったく出てこないので、めっちゃやな感じ。
プロユースにゃもっと高いヤツ買えって
Rolandの声が聞こえてきそうだ。
0080デフォルトの名無しさん
NGNGそりゃ初耳。
ありがとう
0081デフォルトの名無しさん
NGNG>えっと、標準MIDIフォーマットの規格にはループないですけど、
>規格外のループイベントではどんなのがあるでしょうか?
「規格外」ということは「標準」じゃないということなので、
好きなだけ作れば出現する(でもそれは既にSMFではない)、というだけのこと。
>とりあえず、RPGツクール2000の
>コントロールチェンジ111番だけ確認したです。
一生探し回ってください。原理的にその捜索の旅には終了は定義されていない。
今日もまたどっかのドキュが新たなフォーマットを…
CtrlChangeでループの指示ねえ。大昔のオープンリールテープで
低い音を感知したら反転するってのがあったそうだが、
パイプオルガンだと時折誤作動したそうだ(藁
あんまり特異なことをしても空しいぞ、という教訓だと思われ。
>>65
>MAX/MSPあげ
ついでにPureDataあげ
008281
NGNG変なフォーマットを陳列する博物館を作りたいのでもない限り、そんなものに関心示すのは無駄。
もともとSMFは(そういう用途には)効率悪いんで、
使いやすいフォーマットを別途自作する方向で考えたほうが実りが多いぞ。
0083デフォルトの名無しさん
NGNG>そんなものに関心示すのは無駄。
そゆことなのでsage
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG一部で普及というか、ある閉じた環境でなら通用する方法なら、
多分沢山あると思いますよ。閉じてんだから、その環境で通用
すれば何やっても良いわけですし。
私が知っているものでもControlChangeの組(始点と終点)で
ループを表現しています。実際にはそのCCを付けた元データを
変換して最終的なデータ(似非SMF)にするわけですが。
0087
NGNG008883
NGNG泣かせちった。ゴメン。
興味本位って事ならそうだなー、
ドリームキャストっていくつかのMIDIを組み合わせて、
イントロやループ部を構成する上部構造のシーケンスがあったような。
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGラッパーを被せてそれによって機能拡張する、というならば
全然反則じゃないと思われ。
単にそれ自体をSMFと名乗らせるのが詐欺なだけ。
>>86
CCを埋めるというお約束を使ったSMFというなら、一応Standardだな。
ただ、効果は世間一般に保証されるわけじゃないだけで。
使いそうもない鍵盤の端っこに、Start/Stopとかの機能を割り当てて
リモコンできるシーケンサ、とかと同じレベル。
それならば許せるが、未定義イベントなんか作った(使った)ら、市なす!
少なくともStandardじゃない。
009183
NGNGいや、SMFとは言ってなかったよ。たしかその時点で、
aiffとかと一緒にしてpackになってたと思う。(うろおぼえ)
SMF or Not を気にする人って
シーケンサを作ったりしてる人なの?
0092デフォルトの名無しさん
NGNGWinでBorand C++Builderでコンパイルする方法の情報は存じありませんでしょうか?
サンプルのADelayをmakeしようとADelay.dspから必要なファイルを読み取り、
それらをすべてプロジェクトに登録して、ADelay.DLLまで出来たんですが...
VSTのフォルダーに突っ込んでもCubaseVST32が認識してくれませんでした。
0093デフォルトの名無しさん
NGNGだれかやってるだろうからgoogleで英語で検索してみたら?
009492
NGNGそれぐらいはすでに実行済みです。
意外な程、VSTiのプログラムまで手を出してる人は少ないみたい。
ソースの中に、CBUILDERの条件マクロがあるし、MFCとか使ってないから
やる方法はあるんだろうと踏んでるんですが。
素直にVisualC++を手に入れろってことかなぁ...
ちなみにDLLのことはほとんど解らないです。
0095=94
NGNG失礼!!英語ですね。
今やったら引っかかりました。
どうもありがとう。
#ばかだな俺。
0096デフォルトの名無しさん
NGNGこの手のノウハウを武器に、個人で商売するのってやっぱ
むずいかなー。
みなさん、かなり詳しいようですが、何か仕事にいかしていますか?
それとも趣味ですか?
こんなにサウンドプログラマーな人がいるってびっくり。
画像系の会社だと、サウンドっていうと「再生、停止」の概念
要するに、鳴ればそれでいい
くらいの認識だもんね
0097DB02
NGNG難しいよな。
理解がなければ、絶対わかってもらえそうにないし。
0098デフォルトの名無しさん
NGNGなに、周波数の桁が2つ3つ上がるだけだ(w
0099デフォルトの名無しさん
NGNG普通のCDや音楽データをDJmixのように、段々盛り上げていくような
曲順に勝手にしてくれるようなプログラミングが
(理想としては)作りたいと思うのですが何を勉強したらよいでしょうか。
単にBPM速い曲と遅い曲に分けるだけでもいいです。
当方何も知りません。とりあえずCとjavaぐらいです。Windows使ってます。
C++とMIDIプログラミングについて勉強しようかと思ってはいますが
それで方向性正しいのかもわかりません。
本も1冊ぐらいしか見つからない&サウンドプログラミングについて
詳しく説明しているHPもあまり無い感じだったので聞いてみました。
もしそういうHPがあったらそれも教えていただけるとうれしいです。
っていうかこの考えは実現できますか?
またはとっくに実現されてますか?
質問自体が馬鹿ですか?
本当に何も知りません。よろしくお願いします。
0100デフォルトの名無しさん
NGNG違うかな。生成じゃないのか。
とりもあえず、MIDIよりPCMの方が楽だと思う。
010199
NGNGよく分かりませんが、要するにCDプレーヤーのランダム再生機能を、
例えばゆっくりした曲から激しい曲になるような、
ある意図に基づいたランダム再生(?)をしたいので
作曲とかではない感じですが、取り敢えずこういうものは制作可能なんでしょうか?
ともかくPCMについても調べます。ありがとうございます。
0102デフォルトの名無しさん
NGNGような気がする。で、今調べてみた。
http://www.winamp.com/plugins/detail.jhtml?componentId=6564
0103197
NGNGMIDIなら元々BPMが埋め込まれているし、
その他のPCMに出来る形式なら、>>102の言ってる奴のように
推測することができる場合もある。
PopsとかRockなら、フーリエ変換でもして、低域のゲインの推移を追って、
ある程度の間隔の規則性を持って変化するはずだから、それから推測が可能。
クラシックとかは難しいんぢゃないのかなぁ。
とりあえず、プログラミング自体あまり詳しくないのなら、道は遠いとおもう。
010499
NGNGレスありがとうございます。大変参考になります。
うーん、遠いですか、C,javaぐらいじゃ駄目ってことっすよね。
どのくらい遠いんでしょうか…むう。
まあ逆に考えればちょっと詳しくなれば近くなるのかなと、
とりあえずクラシックは無視してもいいかなと、
微妙に勉強してみます。
0105103
NGNGとりあえず、フーリエ変換か、ウェーブレット変換を調べてみ。
ポリフェーズフィルタとか、FIRフィルタでもいいや。
その辺の周波数軸で扱える理論が理解できるようなら、道は近いと思われ。
まずは、いちばん簡単で高速なので、フーリエ変換をお勧め。
つーかもっとも基本(?)だし。
0107名無しさん
NGNG0108デフォルトの名無しさん
NGNG0109103
NGNG大学でやったのは、一般的なフーリエ変換だと思われ。
漏れが言っているフーリエ変換は、その大学でならったフーリエ変換のうち、
特殊な事例である離散フーリエ変換のことだよ。
調べるのなら、一応キーワードは『離散 & フーリエ変換』にしといた方が、
作るだけなら早いかも。
ま、一応一般的なフーリエ変換の概要は知っておいた方が、
のちのち役に立つと思うけど。
0110デフォルトの名無しさん
NGNG方形波:f(t) = 馬=1->∞ (4r/π)(2n-1)sin((2n-1)ωt)
って基本式だと、パルス幅は波長の50%ですよね。。。これを
10%とか40%とかにするには、どんな方法あるんでしょうか?
ちょと、数学ネタにちかいけど、現在ソフトシンセつくってます。
VCOの難関はあとは、パルスワイズモジュレーションだけなんだけどな。。。
どなたかよろしくおねがいします。
0111デフォルトの名無しさん
NGNG厳密には無限まで足しあわせてはじめて方形波になるわけだから
やっぱさ、合成じゃなくて
if(t<0.4) r=1.0;
else r=-1.0;
(ただしtは[0,1]でループ)
ってやれば?
0112デフォルトの名無しさん
NGNGその方法だと、無限に高次倍音をふくむので、エイリアスノイズ(だとおもう)が発生するんです。
特に、サンプリング周波数44.1KHzで、1KHz以上を再生すると「ピー」とか「ジー」とか
基本周波数とは全然関係ない成分が目だって、聴くに耐えないんですよ。
(シンセサイザと名乗る以上は、これは問題と思ってます。)
2通りの解決策をかんがえてるんです。
策)再生波形そのものを、ナイキスト周波数以上の倍音を含まないように
合成する。つまり、適当な次数まで足しあわせて終わらせます。高い周波数になれば
なるほどサイン波に近づくわけです。
この方法でノイズが消えるのは実験済みなので、あとは、
パルス幅可変にして、合成できれば、ばっちりかと、思ってるんです。
が、、、、いかがでしょう。
0113デフォルトの名無しさん
NGNGどうせ波だからゆくゆくはやるつもり。
0114Delあめ猫にゃ
NGNGパルス幅を可変にする方法は 方形波じゃなくて
帯域制限されたパルス波を基本にして、
プラスのパルスとマイナスのパルスを積分すればいいにゃ
0115デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGありがとうございます
しかし、まず、プラスとマイナスのパルス作ろうとしたら、うまくいかないです。
パルスって、どうやってつくるんだろ。
てっきり、基音の全整数倍音を同じ大きさで含むものがパルスだとおもって、
サイン足しあわしたら、こんな感じ、
_|___|___|___|___
| | | |
で、脳波やんけこれ、プラスもマイナスもなくなってしもた。。。
なんか、まちがってるんでしょうか?
うーむ。
0118デフォルトの名無しさん
NGNGすんまそん。
絵が乱れてる。。。
―╂─―╂─―╂─―╂─
こんな感じ。に訂正
0119114
NGNGそれから、無理にスパッと切らなくても 1/exp(x^2) みたいなので我慢するとか
これのフーリエ変換は√π*exp(w^2/4)になるから
0120114
NGNG○√π/exp(w^2/4)
0121デフォルトの名無しさん
NGNGあめ猫さんのいうとおり、上パルスと、下パルスの位相ずらして、
たして、積分したら、幅かわりました。むひひ
みんさんありがとう!!
119>
COSでいけました。
なるほど、1/exp(x^2) でもそれっぽくなりますね、
>115,116
どしても、だめなら、その策を考えてました。
実は、昨日この掲示板をはじめて知って、質問したんですが、
みなさん、高度なスキルをお持ちですね。
この掲示板だけじゃ、もったいないなー。
メーリングリストとかで、情報共有できると、いいのになー
0122デフォルトの名無しさん
NGNG結局、上向きののこぎり波と、下向きのノコギリ波とカメハメ波に0
を乗算したものをずらして足せば任意のパルス波が
得られちゃうのでした。。。うーん、単純。すっきり。
パルス波って積分すると、ノコギリ波になるのでした。
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGVSTiでもいいけど。これも経験無し。
全然調査してないけど、、、特定のエキスポート関数を持ったDLL作る
ようなもんじゃないのかな?難しいのですか?
いいサンプル、資料あります?
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGPSのライブラリで使える SEQ フォーマットがもろそれ系ですな。
0128デフォルトの名無しさん
NGNG自分も2chのどっかの掲示板で知ったんだけど
VSTiのSDKサンプル付
ttp://www.steinberg.net/developers/VST2SDKLicence.phtml
DXiのSDK同じくサンプル有
ttp://www.directxfiles.com/developers.htm
どっちも落としたけど、自分のコンパイラがC++Builderのため、
VSTiはサンプルはコンパイルできたけどCubase(DEMO版だけど)で認識できず、
DXiにいたっては、WizardがVC++Ver6専用、サンプルもMFC使用していて
使い物になりませんでした。;_;
素直にVC++買ったほうがいいのかなぁ...
0129デフォルトの名無しさん
NGNGDXiのサンプルコンパイルしたんですが
COMを使ってるので、レジストリに登録しなきゃならないとかで
上手くできません
ちなみに、まだ英語の説明書を読んでません
0130デフォルトの名無しさん
NGNGありがとうございます。
DXiサンプル、早速ダウンして、ながめていじくりたおしてみました。
MFCですな〜。BorlandC用に作り変えますか?難しいのかな?
>129
情報交換いいですね。
ちなみに、
レジストリへの登録は、VC使っていれば、ビルドの最終フェーズで行われて
いますよ。ちなみに、SONARできちんと、発音されるところまで動作確認でき
ました。
情報交換、どっかにMLつくりますよ。
作ったら、ここにアドレス書きますね。
01311
NGNG思いませんでした。
0132128
NGNGDXiのSDKはGoogleで検索してリンク見つけたんだ。
>>129
情報交換なら、この掲示板に行ってあげてください。
ttp://freebbs.around.ne.jp/article/d/dspfunc/1/index.html
実はDXiについて検索していて引っかかったのがここです。
>>130
サンプルのビルト,動作確認までできましたか、おめでとうございます。
こっちはしばらくの間、ソース眺めてたんですが、ボーランドへの移植は厳しそうです。
DXiのサンプル"Tonar"ってやつですよね。
これサンプルの癖に複雑なことやってるから、plug-Inの核心部分
クラスCTonarのソースですら理解できず、DXiの挙動がつかめません。
#インタフェースが複雑なのは、DirectXの全体に言えますが...
VSTiの方が、サンプルがシンプルで、インタフェースも簡単だから
理解しやすかったです。
とにかくお二人ともがんばってください。
0133129
NGNG申し訳ないです
人数少なさそうですが、情報交換しましょう
>レジストリへの登録は、VC使っていれば、ビルドの最終フェーズで行われて
>いますよ。
え、そうなんですか?
さっそくリビルドしてみました
(ビルドじゃ駄目なんですね)
で
\Debug\Tonar.dll
1 個のファイルをコピーしました
指定されたパスが見つかりません。
0 個のファイルをコピーしました。
c:\winnt\system32\cmd.exe の実行エラー
Tonar.dll - エラー 1、警告 0
なんてのがでちゃいました
で、バッチビルドでクリーンしてからリビルドしたらできました
ttp://isweb37.infoseek.co.jp/art/dtmp/
ここに掲示板を作るので、ここで情報交換しませんか?
0134デフォルトの名無しさん
NGNG私もfreeml.comに、音楽プログラミングMLつくってしまった。。。
そのうち、公開されるので、そのときはよろしく。
とりあえず、そっちいきますよ。
0135133
NGNGどうもです
相当がんばらないと、情報交換じゃなくて
情報もらうだけになっちゃいますね、私は・・・
土日でがんばってみます
MLはぜひ参加させてくださいね
0136デフォルトの名無しさん
NGNG0137音楽プログラミングML
NGNGということで下記に「音楽プログラミング」MLつくりました。
http://www.freeml.com/cat/entertainment/music/desktop_music/
#MLプロバイダにDTMのコーナにされてしまいました。。。しくしく
ここで、扱っているような話題は大歓迎なので、
興味があれば、ご参加ください。
とりあえず、DXiの開発情報流しています。
>136
VSTプラグインにも対応予定なので、ぜひ。
よろしく。
0138音楽プログラミングML
NGNGせっかく公開されたと思ったら。。。なぜか、MLが表示されなくなってる。。。
うーむ。。。
公開されたら、また書きます。
0139デフォルトの名無しさん
NGNGこれか?
0140DTM板出身
NGNGのサウンド機能だけのやつあれば欲しいDTM板の人間いると思うよ
0141音楽プログラミングML
NGNGhttp://www.freeml.com/ml_info.php?ml=musicpg
興味あれば、是非ご参加ください。
情報共有していきましょう。
0143128
NGNG>どっちも落としたけど、自分のコンパイラがC++Builderのため、
>VSTiはサンプルはコンパイルできたけどCubase(DEMO版だけど)で認識できず、
steinbergのメーリングリスト過去ログ読みまくったら対処法があり、
無事認識できました。
っうか、SDK直しておいておいておくれ>steinberg ;_;
0144デフォルトの名無しさん
NGNG回路図で見ると,アンプ等で良く入力と出力にコンデンサが直列に繋がって
いるのを見かけるですが,あれは一体どの様な効果がある物なのでしょうか?
また,プログラムで動作をリアルタイムにシミュレーション(?)する場合,
一体どの様な感じになるのでしょう…。
詳しい方がいらっしゃれば,ご教授頂けたら幸いです。
0145デフォルトの名無しさん
NGNGオーバーシュート/アンダーシュートを軽減。
0146デフォルトの名無しさん
NGNGカップリングコンデンサのことじゃないの?
>>144
AMP ICの出力端子と出力ジャックの間に入ってる
コンデンサだとしたらそれは直流成分カットのためです。
回路のことは工学板の方が的確に答えかえってくると思います。
>また,プログラムで動作をリアルタイムにシミュレーション(?)する場合,
アンプの動作でしょうか?それともプログラムの動作?
0147デフォルトの名無しさん
NGNGコンデンサをつけて、実際の回路を補整しているのではないでしょうか?
つまり
コンデンサの容量分だけ、立ち上がりが遅れると言う意味ではないでしょうか?
0148146
NGNGそうです。そのコンデンサの事です。
プログラム的にそのカップリングコンデンサ(ですか?)をリアルタイムにシミュ
レーションする場合の事です。
直流成分カットに付いては最初の方で誰かが聞いていましたが,全部のデータ
がある場合であれば直流成分カットは平均値を引くだけで良さそうなのですが,
PCMの様なデータを1サンプルずつ順次入力していった様な場合にはどういう
プログラムをして良いのかが良く分からないのです。
0149144
NGNG0150Delあめ猫にゃ
NGNGDCカットはスピーカーに直流を流さない(流すと焼ける)とか
の目的で入れる非常に時定数の大きな(数ヘルツ以下の)
たいてい1次のHPF(ハイパスフィルタ)です
ソフトで実現する場合、
入力を x として メモリ M1 出力yとすると
y:=(x-M1);
M1:=M1+b*y
bは負数で小さな値 サンプリング周波数をfsとしたら およそ -(1-f0/fs ) f0は10以下
ですから浮動小数点で計算する必要があります
固定で計算するなら M1を k=-1/b 倍して
y:=(x-M1/k);
M1:=M1-y
とします(M1には倍長計算が普通必要です)
0151Delあめ猫にゃ
NGNG○ -2π*f0/fs
0152Delあめ猫にゃ
NGNG○bは小さな値 サンプリング周波数をfsとしたら およそ f0/fs f0は10以下
×M1:=M1-y
○M1:=M1+y
・・・・何書いてたんだろ・・・鬱
0153デフォルトの名無しさん
NGNG最終出力手段が、ラインOUTとかの音声なら、件のカップリングコンデンサが働くから
何も考えなくても問題ない気がしますが、それでは計算時のオーバーフローとかの問題で
だめなんでしょうか?
あと出力をオシロのような画面にしたいんだったら、初期値を画面の中心として
それからの単純な差分で点を打っていくだけでそれっぽく見えると思う。
#Offsetは見る人に調整させるとして。
0154デフォルトの名無しさん
NGNGその節は、ありがとう。
なんとかソフトシンセ(DXi版)のベータ公開できたので、ご報告まで。
http://www.geocities.co.jp/SiliconValley-SanJose/5005/
0155144
NGNG詳しく有難うございます。ちょっと見ただけでは理解できてないのでそれを元に
色々試してみます(^^;
>153さん
PCM出力である音源をエミュレーションしていて,元のデータが小さくて何倍かに
しているのですが,時々大きな波形変化をする事があるのです。
具体的な感じですと,16bitPCMで半分くらいデータが大きく変化してしまう事が
あり,これをPCのスピーカーなどで聞くと,”ブツ”と言う大きな音が鳴ってし
まうのです。
実機ではそういうことが無いので,何故そうなるのかなぁと言うのが,例のコン
デンサの効果なのか?と言うのが疑問だったのです。
0156Delあめ猫にゃ
NGNGゲインが無い筈の単純な2次のフィルターでも 数式通りだとオーバーフローしてしまう
0157144
NGNG先の方法で試しました。HPFが掛かり,確かにDC成分が除去されるのは確認出来ました。
オーバーフロー等はチェックしています。また,PCMでやっているのでビット数の最大最小
でのクリップも行っています。
教えてもらった方法ですと,一旦大きな値が入力された時は,大きな値から段々と下がって
行きますよね。
で,一旦大きな値が入力された時の大きな値をどうやって無くせるかが今の所の課題です。
0158153
NGNG>PCM出力である音源をエミュレーションしていて,元のデータが小さくて何倍かに
>しているのですが,時々大きな波形変化をする事があるのです。
カップリング以外の別の部分がエミュレーションしきれてないような気がします。
実機で”ブッ”とまではいかなくても大きな振幅変化はあるのでしょうか?
あるのならアンプは電源以上の電圧へは振幅できず、飽和したりするので、
その辺かなと思います。
実機があるのでしたら回路の各点の電圧波形をオシロスコープで確認し
比較できると楽かと思いますが、そこらへんにあるもんじゃないから無理ですよね。
0160デフォルトの名無しさん
NGNGなんだろと調べたら、FFTの実行周期毎にCPUの消費電流が増えるせいだった
ヘッドホン無音で大音量にして実際に音が出てるのを確認
サウンドボードはカタログS/N良くてもダメだな
IDE上をマウス動かすとブリブリ音するのも発見。
マザー内臓のも、手持ちの2枚も同じ症状
と判ってONKYO-USBサウンドボード買ったら不定期にブチ音が入る
win2000との相性かなあ・・・鬱
0161
NGNGサウンドボードを鉛板でカバーしてみれば?
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGマウス移動ノイズありますね。
私の環境だと、Win2000の時はマウス移動ノイズがはいるんだけど、
Win98の時はなぜか入らんのです。ちなみに、3000円程度のPCIサウンドカード。
ドライバのできで、ノイズの乗りかたが変わるってどういうことだろう。。。謎。
マウスノイズの発生源は、ドライバ事態のチョンボってことかな。
0164デフォルトの名無しさん
NGNGしかも、PCIバスから直接。
アルミでくるんでも、ショートするのがオチだと思われ。
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG人間の声を簡単な演算でできるだけ小さなファイルサイズで録音するにはどうしたらよいのでしょうか。
音質は言葉の聞き取りが出来る程度でかまいません。
イメージ的には昔の”サンダーフォース”的な音質でもいいとおもいます。
漠然とした目標なんですが、信号強度の分解能を8bit以下、サンプリング周波数は3k以下としたいとおもいます。
0167デフォルトの名無しさん
NGNGじゃあそうすれば?
0168デフォルトの名無しさん
NGNGITT 携帯電話 VoIP で検索してみて下さい
0169デフォルトの名無しさん
NGNGPWM音源とか調べてみたら
0170デフォルトの名無しさん
NGNG4bitADPCM*6K/s ならなんとか
0171_
NGNG0172デフォルトの名無しさん
NGNGgogo.dllでも使ってmp3にすれば?
0173デフォルトの名無しさん
NGNG各周波数帯の振幅をdBに変換する際はどうすればよいのでしょうか。
0174デフォルトの名無しさん
NGNGどちらにしてもlog10(結果の2乗和)*10
0175173
NGNG0dBとなればいいというのは分かるのですが、FFT結果から
求める場合にはどうするのでしょうか。
0176デフォルトの名無しさん
NGNGそれぞれ複素数で得られるから そこらへんは大丈夫?
それから 2^n のFFTだと全体に何倍になってるかも判ってるよね?
拾ってきたFFTルーチンだと あらかじめ割られているかもしれないけど
0dBをどこにおくかはそんなに大事じゃないと思う
16bitの符号付数だとすれば、 2^15 が最大振幅だから
log10( (2^15)^2 )*10 を引いてやる方法もあるし
フル振幅のサイン波を 0dBと考えて
log10( ((2^15)^2)/2 )*10
とする方法もあるよ
他の良く使うソフトと比べて同じになるように調整すればいいんじゃないの
0177173
NGNG0178173
NGNGでも実数をペアにするんじゃなくて、虚数部はゼロにしてます・・・。
とりあえず4096点でやってますが、いろいろ考え直してまたきます。
0179デフォルトの名無しさん
NGNG最速の素数判定アルゴリズム
http://pc.2ch.net/test/read.cgi/tech/993457354/
が参考になるよ 203 付近で実数のペアのFFTの解説がある
これを使って L/R同時に処理すればいい
ところで窓関数は何使ってる? 窓関数のゲイン分を忘れてるってオチじゃないの?
0180173
NGNGなっています。ゲイン分ってことは、窓関数で圧縮される分を
考慮して、FFT結果(絶対値)の最大値を求めるという
ことでしょうか?
0181デフォルトの名無しさん
NGNG絶対値じゃなくて log10(実数部^2 + 虚数部^2)*10
横軸が対数の場合は 帯域分2乗和平均するかピークを求める
窓関数のゲインてのは
ハニングの 0.5-0.5cos(2πn/L) という式を使ってたら 2倍しないといけないとかそういう意味
0182デフォルトの名無しさん
NGNGMIDIシーケンサなんですけど…
曲の途中から再生をしたいときって
リバーブ、エクスプレッション、システムエクスクルーシブなどの値が
曲の場所によって変わるので
曲の最初からノートON、OFF以外を一気に送らないといけないんですけど
この方法ってヤバイですよね…
なんかイイ方法あります?
0183デフォルトの名無しさん
NGNG直前との差分持っておけば?
あと、重複するイベントは最後のだけ送る。
0184182
NGNG直前との差分っていうのはどういうことですか?
PS.すいません、作ってるのシーケンサじゃなくてプレイヤ−でした、書き間違え。
0185182
NGNGいけないって事になるんですが、
GMならたかが知れてるんですが。
XG、GSとなるとかなりの量になりそうです。
すべてステートチェンジイベントを調べる必要はありますか?
0186183
NGNGプレイヤーでも同じ事。
めんどいのでくわしく説明しないけど、
「直前」てのは再生前の状態の事。
いきなり途中から再生するんだったら、
曲の最初から、その途中までの情報。
いきなり最初からのイベントを垂れ流したんじゃ、
長い曲の場合いつまでたっても始まらないでしょ。
0187デフォルトの名無しさん
NGNGステートチェンジをすべて追う必要はない。
0188182
NGNGなるほど、そう言うことですか。ありがとうございます。
でやはり
すべてステートチェンジイベントを調べる必要があるのでしょうか?
GS,XG規格など含めて。
0189182
NGNGすべてのステートの間違いでした。
0190デフォルトの名無しさん
NGNGその時の状態を持っておく。
0191デフォルトの名無しさん
NGNG音源の音色の状態が変化する可能性のあるやつは
すべて持っておく必要があると思うよ。
0193182
NGNGやはりもっておくべきなんですね。ありがとうございます。
>GM,GS,XG規格すべてのステート
これらは調べ上げるぐらいの量なのでしょうか?
GMであれだけ多いとしたらかなりの量になりそうですが…?
0194182
NGNG「調べ挙げることが出来る量」のまちがいでした。
0195デフォルトの名無しさん
NGNGそんなに調べたりする必要があるんだっけ。
初めから全部把握しなくてもいいんじゃない?
GS/XGで使いそうなヘッダとか
エクスクルーシブメッセージとか、
知らないやつはとりあえずナニも考えずに送っちゃって、
パフォーマンスが問題になるんならジョジョに対応して
いけばいいんじゃないかなあ、と思う。ああIMEがヘンだ
0196182
NGNG途中から再生するためには送るだけでなく保持しておく必要が
あるとおもうんですが?
で、保持するためにはステートすべて把握する必要があると思うんですが
間違ってたら指摘お願いします。
0197デフォルトの名無しさん
NGNGだから、知らないイベントはなにも考えずに保持する、
って事なんだけど。把握する必要あるの?
0198デフォルトの名無しさん
NGNG送信するデータ量なんてたかが知れてるんだから。
0199182
NGNG知らないイベントに対して
どこがステータス識別部(ID)でどこがパラメータ部(数値)かがわからない
ってことはないですか?
0200182
NGNGというわけでここに質問しにきました。
0201DTM板から出張@名無しさん
NGNG出来ればかなり実用できるレベルの、
それが無ければ、VC++のオープンソースで
実用レベル満たしていないの無い?(その方が無いか
0202デフォルトの名無しさん
NGNG買った方が早い。
(しまった、禁句だったか)
0203182
NGNGしかし曲によっては同一ステートの連続変化とかがあると
(たとえば100個連続)
とかあると死にません?
0204デフォルトの名無しさん
NGNG仮にIDとVALUEがあって、IDだけで識別してるなら、
知ってるIDだけそれなりに処理して、あとはそのまま
記録するって方法じゃ駄目なの?
処理としては簡単そうだけど。
0205デフォルトの名無しさん
NGNGだから一度試してみて、パフォーマンスが問題になったら、
その都度処理するIDを追加していけば?って事なんだけど。
>しかし曲によっては同一ステートの連続変化とかがあると
だからそういうのに対しては最後の状態だけ持っておけば?
って言ってるじゃん。
0206デフォルトの名無しさん
NGNGこれが一番よさそうですね。
ただ知らないIDのステートチェンジが連続で出てくることがあったら
すべて出力することになりそうなので
やばそうです。割り込みルーチン内で長く処理をとめることになりそうで。
0207208=206
NGNGだから状態を持っておくためにはステートIDを
理解してないとだめです。
0208186
NGNG0209デフォルトの名無しさん
NGNG>やばそうです。割り込みルーチン内で長く処理をとめることになりそうで。
適当なタイミングとって送ればいいんじゃない?
0210186
NGNG割り込みルーチン以外で書く
ってことですか?
0211デフォルトの名無しさん
NGNG見積もっておいて、デルタタイム0の連続データに対しては前倒し
で送ってしまうとか。
0212186
NGNGつまり割り込みルーチンで処理する「重み」を
2、3回に分けるってことですか?
それだと根本的解決にならなくないですか?
ここでは曲の途中再生の際に
大量データ転送が生じるのが問題です。
0213デフォルトの名無しさん
NGNG2、3回というか・・
途中から再生するのってそんなにシビアなタイミングが必要なの?
プレイヤーなら少しぐらい遅延しても気づかないよ。
それよりも音源に負担をかけない様に送らないと、
まともに鳴ってくれないと思うけど。
0214186
NGNGあ、必要ないです。
つまり、かなり複数回に分けて送ってもいいってことですね。
その分け方がまた問題になりそう…
でも一応これで解決っぽいですね。
・メジャーなステートチェンジIDは控えておき最後のひとつのみ送信
・マイナーなステートチェンジはすべて送る
・負荷が重くなりそうなときは割り込みを多数回で分散させる。
こうでしょうか?
0215デフォルトの名無しさん
NGNG割り込みとか考えないで、(つまり再生ルーチンはそのままで)
単純に再生データに対して加工するのが簡単だと思う。
0216186
NGNGよくわかんないです。説明きぼうです。
0217デフォルトの名無しさん
NGNGおいて、プレイヤーは最初にそのバッファをかならず経由して
データ送る様にしておく。曲の途中から再生する要求が着たら、
そのバッファに必要なデータを溜め込んで、プレイヤーに、ただ
再生要求を送る。
0218デフォルトの名無しさん
NGNG------------| ↓曲データ
- - - - - - |a-----------------------------
時間→
バッファは可変長。
プレイヤーはaの時点で、
初期化用バッファ→曲データ
に出力を切りかえる。
0219186
NGNGどうやって回避するんでしょう?
割り込みはスレッドと違うので
クリティカルセクションが使えないきがするんですけど。
0220デフォルトの名無しさん
NGNG同時アクセスなんて起こらないと思うけど?
プレイヤーという表現が悪かったかな?
いままで言った「プレイヤー」は「再生エンジン」に読み替えてね。
「再生エンジン」に要求を出す時点ですべてのデータの書きこみは
終わってると考えて。
切り替える、とかを考えたくなければ連続したメモリに並べればいい。
↓初期化用バッファ ↓曲データ
<-------------|----------------------------->
時間→
<…始点
>…終点
「再生エンジン」はただメモリの始点から終点までの範囲を再生する。
0221デフォルトの名無しさん
NGNGユーザーが再生ボタンを押す
↓
ポインタが曲の途中ならつじつまが合う様に初期化データを作成
↓
初期化データと(途中からの)曲データをメモリに並べる
↓
「再生エンジン」に再生要求を出す。
0222186
NGNG今の「再生エンジン」に初期化バッファ
と初期化バッファ再生
を追加すればいいわけですね。
0223186
NGNGこのやりかたの利点がわからないです。
割り込みルーチン内で
ならつじつまが合う様に初期化データを作成
をしなくていい、ってことでしょうか?
0224186
NGNG割り込みルーチン内で
「つじつまが合う様に初期化データを作成」
しなくていい、ってことでしょうか?
でした
0225186
NGNG割り込み部分以外で
「つじつまが合う様に初期化データを作成」
することが出来る
ってことですか?
0226デフォルトの名無しさん
NGNGなんで「割り込み」にこだわるのかなあ・・
再生を開始する時点で割り込みを始めるんだよね?
開始までの間って、なにか割り込みが関係あるの?
0227デフォルトの名無しさん
NGNG多分割り込みって「再生エンジン」内部の事でしょ?
今「再生エンジン」内部の事は、
ナニも考えない方向で話を進めてたんだけど。
「再生エンジン」の役割はただ、始点から終点までの再生であって、
その内部についての実装手段はどうでも良い。
0228186
NGNGこれまでは割り込み開始時に
割り込みルーチン内で初期化をやろうとしてました。
これが間違いということで。
「割り込み開始前に用意」のほうが自然ですね。
0229デフォルトの名無しさん
NGNGそうそう、なるべく切り分けて、モジュール化した方が良いよ。
例えば「再生エンジン」をすげ替えるだけで、
色んな環境に対応できるかもしれないし。
今思ったんだけど、この話題は↓の方が適当だったかもね・・
http://pc.2ch.net/test/read.cgi/tech/1005053427/l50
0230186
NGNGそうみたいですね。これからはそちらに書くようにします。
どうもありがとうございました。
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGtimidityは難解だ。
0233デフォルトの名無しさん
NGNGttp://service.steinberg.net/webdoc.nsf/show/development_e
ASIO SDK、Mailing Listとアーカイブがここからリンクされてるから、
その中から探してみては?
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG流出してたら商売にならんな(藁
0236デフォルトの名無しさん
NGNGなんで出てこないのかna?
0237デフォルトの名無しさん
NGNGこれからはpsycleか。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGBGMはMODという事は可能ですか?
0240デフォルトの名無しさん
NGNG0241239
NGNG以前にMODPlayer(だったかな?)のライブラリを使ってやったときは
一秒近く遅延が発生した。漏れの使い方わるかったんかもしれんが。
0242デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/dtm/1007315135/
Virtual Audio Cable便利。
これってシェアウェアなんだけど、
プログラム的に難しいことしてるんだろか?
デバドラ書く技能を要求されるとか。
DDK使えば可能ですか?
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGあほらしいことだがwinのwave in/outは
ドライバとしてしか存在できないアーキテクチャになっているので、
この手のソフトは一見ドライバに見えるソフトとして実装するしかない。
アプリとして作れるようになっていればさぞかし楽だったんだろうが、
そういうことにしてしまうとMSとドライバ(そしてハード)屋との
利権構造が保てなくなるので、わざとしてないのだろう。
まあカーネルモード云々という問題もあるが。
似たソフトとして、midi in/outをバイパスする仮想ドライバとか、
プリンタ仮想ドライバとして「まとめ印刷」をやってくれるソフトとか、が既にある。
midi/audioみたいなリアルタイムのものならば、カーネルモードでないとまずい
などの技術的問題があるだろうけど、
プリンタメーカーが出してるドライバは完全に利権の問題だな。
あんなものを「ドライバ」として作る技術的必然なんか何もない。
わざと作成やインストールが色々面倒なので参入障壁の高い「ドライバ」として作ってる。
0245デフォルトの名無しさん
NGNG最近のModplug,fmod,bassではそんなことはないと思う。
>>244 Windows3.1の話ですか?
MIDIなんてソフトMIDIからべた通信まであるのに....
最近はOSデフォルトのMIDIシンセですら4ms〜100msとかなのに
あとWavもDirectSoundのサウンドバッファーでミキシングされるので
音の数増やしても遅延は変わらない
演奏って要は”プログラム”なわけだから全体で時間的なクッションをおいてやれば
結果としてはちゃんと同期したものが作れるんじゃない?
0246デフォルトの名無しさん
NGNG>MIDIなんてソフトMIDIからべた通信まであるのに....
独自仕様の通信方法はここでは話題ではないっしょ。
「およそどんなアプリにでも」対応しようと思ったら、
win上では、ドライバに擬態(?)する作りにせざるを得ない。
>演奏って要は”プログラム”なわけだから全体で時間的なクッションをおいてやれば
>結果としてはちゃんと同期したものが作れるんじゃない?
それのことをレイテンシというわけだ。
で、リアルタイム弾きと合わせるとおかしなことになる。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG音量上げてクリッピングするだけじゃん。
それとも、VSTのプラグインの話?
0249デフォルトの名無しさん
NGNGttp://ndevelop.zone.ne.jp
0250デフォルトの名無しさん
NGNGプリンタドライバについては、グラフィックとプリンタを同等に扱うために
MSがややこしくしたという経緯があるのでは。
そのおかげで、ほぼ全てのwinアプリはコード上何の変更も無しに
プリンタ対応になっているのでは。
(いわゆるunixではそうは行かないでしょ)
スレ違いなのでsage
0251デフォルトの名無しさん
NGNGライブ会場での音の時間差を考えると根本的に目的を見失っているように見えるけれど
スピーカーから距離はどれだけとってる?
生演奏なら距離で調整できるし
リアルタイム演奏だって電子楽器だったら遅延調整できるって話なんだけど
理解すらできない?
あと独自仕様がなんでだめ?MIDI機器と通信するのは単にRS232Cポートとか
ジョイスティックポートたたけばできるし、ドライバーは一切無関係
結果が目的じゃないの?
何がしたい?自分ができないクンだって自慢?DirectAudioしってる?
アプリケーションレベルでなんでドライバ云々をぐずぐすいうのか理解に悩む
0252デフォルトの名無しさん
NGNGプラグインの作り方です。
フリーのソースを探しても、あまりなかったんで聞いてみました。
実物の原理を説明してるところでも良いので参考になるところは
ありませんか?
0253デフォルトの名無しさん
NGNG248が言うようにディストーション=クリッピングなら
inからoutへの代入箇所で、inを閾値判定し
代入値を変更させればいいだけでない?
具体的には
VSTi SDK sample AGain.cpp line 80
(*out1++) += (*in1++) * fGain; // accumulating
を
float ftmp=*in1;
if(*in1<(-1*fGain)){ftmp=-1*fGain;} //0<fGain<1.0 -fGainで負クリップ
if(*in1>fGain){ftmp=fGain;} //fGainで正クリップ
(*out1++)+=ftmp;
in1++;
と変更する程度では。
もちろん、in2やReplacingにも同様の処理が必要です。
0254デフォルトの名無しさん
NGNGありがとうございます。
試してみます。
0255デフォルトの名無しさん
NGNG試してみたら、リバーブのような感じになって歪みませんでした。
もうすこし、がんばってみます
0256デフォルトの名無しさん
NGNGナチュラルな歪みを目指してがんばってみます
0257デフォルトの名無しさん
NGNGMIDI=RS232Cって思い込んでるヤツ発見!
きっとオンボードのMIDI I/Fしか使ったことないんだな(藁
0258デフォルトの名無しさん
NGNG同意。
間違ってる知識を堂々とひけらかさないで欲しいもんだな。
0259256
NGNGエフェクターを作るときはやはり元々ある回路を参考に作ってるんでしょうか?
あるエフェクターの内部の回路をシミュレート出来たら、同じような音が作れるのでしょうか?
0260トの名無しさ
NGNGもともとはアンプにでかい音つっこんで歪ませてたんだよね。
エフェクターも、それのシミュレートだよ。
あと、デジタルエフェクターは内部の回路をシミュレートしてたりするよね。
アンプシミュとか流行ってる。
ということで、回路シミュレートできたら同じ音になるよ。
で、単純にクリッピングすると波形に角がついて高周波がでるから自然な
音にならないんじゃないかな。
波形の角をまるくする処理が必要と思われ。
0261デフォルトの名無しさん
NGNGオーバードライブみたいな感じだね。
0262260
NGNGまさに。
0263デフォルトの名無しさん
NGNGDirectMusicとかソフトシンセの話し出しているのにどうしてデバドラの話になるのかねえ。
アプリレベルでそんなの意識するほうがおかしい。
大体最近のMIDIはソフトかUSBなんだから規格のドライバーに従ってるからおかしい
という論理自体サウンドプログラムからは外れていると思う。
ところで
最近の新しいMIDIアプリはDirectX8ベースになっているみたいで
DirectAudioだと複雑なプログラム無しでディストーションやフェーズかけられるので
サウンドプログラマーはやはり導入必須じゃないかなあ。
昔はハードでのイフェクトメインだったけれど光出力のあるMIDI音源ならば
デジタルで取り込んでオーディオデータとして処理したほうがよさそうだ
0264デフォルトの名無しさん
NGNGこれでソフトシンセの遅延が少しは減るのかな?
0265デフォルトの名無しさん
NGNG>大体最近のMIDIはソフトかUSBなんだから
ちっとは勉強すれ。
普通MIDIつったら、MIDI規格のことだ。
ttp://www.pluto.dti.ne.jp/~daiki/Midi/AboutMidi_First.html
0266256
NGNGそうですか。参考にしてみます。
ところで、良い歪みの条件ってどういうものでしょうね。
そんなのがあるかどうかもわかりませんが、
もしあるんだったら、それに沿って作ればいいだけなのに。
既存の回路の音に近づけるのも良い事だと思いますけど、
どうせなら、デジタルでしか出来ない処理をやってみたいですしね。
0267デフォルトの名無しさん
NGNG>サウンドプログラマーはやはり導入必須じゃないかなあ。
すると、どのソフトもみんなMSが用意した同じような音がするようになるんでしょうか?(わら
(そういうことにならないためにも、)どれくらいのところまで、自分が書いたエフェクトルーチンを
入れこむ(callbackだと思うけど)ことができるんでしょうか?>DirectAudio
0268デフォルトの名無しさん
NGNG>ライブ会場での音の時間差を考えると根本的に目的を見失っているように見えるけれど
するとそのシステムは逆にヘッドホンでは聞くに耐えない代物であるわけだ(わら
わざわざ悪いほうを基準にしてどうするんだ?
>リアルタイム演奏だって電子楽器だったら遅延調整できるって話
そのシステムの限度を越えて、遅延ゼロに近づける(調整する)ことは、不可能でしょ。
4msなら4msより少なくは出来ない。
で、演奏者の立場だが、我慢すればできないでもないが、
常時4ms(だけならまだしもそれ以上)の遅れがあったら、程なくムカついてくるぜ?
#ところでWindows3.1がなんなんだろう?あの時代からmidiやaudioのAPIは有ったぞ。
>あと独自仕様がなんでだめ?MIDI機器と通信するのは単にRS232Cポートとか
>ジョイスティックポートたたけばできるし、ドライバーは一切無関係
そんなに他の世間一般のアプリと対話したくないわけ?
したくないなら勝手にやればいいが、それをmidiと呼ぶことの意味が喪失していくだけ。
まあ、osメーカーに依存しない形で、 yet another な「midi」API setを作るっていうなら
それはそれで感心するが、普及しないかぎりそれは「存在しない」のと同じなので、
こっちとしては評価のしようが無い。
0269デフォルトの名無しさん
NGNG>グラフィックとプリンタを同等に扱うために MSがややこしくしたという経緯
そのためだけなら、あんなことはしなくていい。
単に画面とプリンタの両方が、テキストベースからグラフィカルベースに移行しただけ。
その程度のAPI setを作るのは、別にややこしくする必要もない。
問題はMSが、そういうAPIとハードとのあいだに、「正体不明の」ドライバが
介在する余地を、作ってしまったことだ。
だから、プリンタもグラフィックカードも、謎のドライバによって動くという世界が
できあがってしまった。
そうしたほうが、ハードメーカーも、それとつきあうMS自体も、金を儲けやすいからね。
各ハードメーカーが「独占」状態になるほうが、お得というわけだ。
unixは、たまたまXがそっち(印刷)方面に熱心じゃなかっただけ。
一方で(unixで)DisplayPostScriptというのを使ってプリンタと統合しよう
という動きもあったんだが、ポシャったね(わら
DPSがメジャーになっていたら、どのディスプレイカードもプリンタも
PostScript一発でオッケーという話になっていたはずだったのだが。
(PSでは重すぎるので、他のものでないとマズいとは思われるが、共通規格という意味では同じこと)
0270デフォルトの名無しさん
NGNG具体的な中身はまったく知らないと見た。
0271デフォルトの名無しさん
NGNGAPIとハードの違いを吸収するのがドライバだろ?
アプリ屋に全てのハードを完全に理解してサポートしろとか言うつもりかな?
0272デフォルトの名無しさん
NGNGCとかアセンブラで書けばポート出力ぐらいできるから勝手にやれば。
繋いだ機器がどうなっても知らないけど。
0273デフォルトの名無しさん
NGNG自力デコードやりたいんで情報ください
0274デフォルトの名無しさん
NGNGttp://www.seanet.com/users/matts/mattspro.htm
ttp://www-mobile.ecs.soton.ac.uk/speech_codecs/standards/adpcm.html
ttp://ku-www.ss.titech.ac.jp/~yatsushi/xaadpcm.html
でも自力でgoogle引くぐらいしてから質問しろな
0275デフォルトの名無しさん
NGNG規格書は規格団体の収入源なので買ってあげてね
0276時代遅れの七資産
NGNGVirtualAudioCableみたいなやつ、Win3.1/95/98なら結構簡単に作れる。
16bitのDLL生成できるコンパイラがあれば、
それを.drvにリネームすれば、ドライバの出来上がり!!
DllMainのかわりにDrvMain置いたりとか、
DrvProcってなコールバックを作らなきゃならんとかめんどいけど
WDMよりは楽なような気がする。
亀レススマソ。
0277デフォルトの名無しさん
NGNGコールバックじゃなくてDirectXプラグイン(DirectShowフィルタ)を使用する(DMO形式)
なのでこの形式で作ればDirectAudioで大抵使用できる。
0278デフォルトの名無しさん
NGNG>APIとハードの違いを吸収するのがドライバだろ?
>アプリ屋に全てのハードを完全に理解してサポートしろとか言うつもりかな?
そんな処理は、もっと下の層に持っていけば済むことだ。
プリンタについて具体例を言えば、PostScriptみたいなフォーマットが有れば済む、ということだ。
そうすりゃアプリ屋はPostScriptだけ知っていればよい。
プリンタ屋はPSインタプリタをプリンタ内部に持たせればよい。
インテリジェントなハードという概念を知らぬのか?
USBだってそうだ。あれのおかげで、周辺機器の機種1つごとに別々のドライバ
などという下らないものを、だいぶ減らせるようになった。
0279デフォルトの名無しさん
NGNG>269はフリーメーソン陰謀説とかが好きそうだね。
おう。三度の飯より好きだ。
>具体的な中身はまったく知らないと見た。
でもよ、じゃあ、Linuxの連中があんだけプリンタで苦労したり、
逆に一部の会社がちょっとだけLinux用ドライバ(ただしOpenSourceではない)を出しただけで「ニュースになったり」
するのは、何故よ?
プリンタのアクセスのしかたなんか、すぱっと公開しちまえばよかろうに、
そうしてないのは何故よ?
「しないほうが利益があるから」だろ?
企業なんだから。
0280デフォルトの名無しさん
NGNG規格書の名前はなんというのでしょうか?
本屋に行ったのですが、それらしきものは見あたりませんでした。
0281デフォルトの名無しさん
NGNG結局、PSインタプリタを内蔵したプリンタを作るよりWin側で
ドライバを実装したほうが楽って事だよ。
間接的には「しないほうが利益があるから」とも言えるが。
0282デフォルトの名無しさん
NGNGなんで話がプリンタドライバになるのかなぁ。
サウンドプログラミングがわからないからって自分の
知識の範囲で話をしないでほしい。
こっちはオーディオやMIDIベースでのアプリケーションプログラムの話を
しているんで見当違いな言いがかりはやめてほしい。
>>279 単に憶測で物言っているだけだろ。
そもそもMIDIってのは公開された通信規格なんだから
独自ハードに依存するプリンタの仕様を公開するしない
しないから気に入らないというだけで見当違いだし
アプリケーションレベルでハードレベルまで考えないのがOSだろ。
要するに発想がDOSなんだよ。
サウンドのことわかんないならいた違いだよ
http://www.ttc.or.jp/j/publish/list/130.html
他にIMA(Interactive Multimedia Association)のもの=DVI-ADPCM
は IMA Digital Audio Doc-Pac にあります
0284デフォルトの名無しさん
NGNGUSB に誤解があるようです。
>>279
スレちがいだけど、
いまでもカナメなところは公開されてません。
このあたりはノウハウの塊らしく、そのバイナリにアクセスする方法が
示されているだけです。
かつ、それはプリンタのアクセスのしかたでもありません。
0285デフォルトの名無しさん
NGNGどういうふうに圧縮されているか というのはわかりそうですけど
比率テーブル(2000年三月号のC MAGAZINEより) というものが
wavファイルの先頭から何バイト目に格納
されているかとかいう情報はわかりそうにないのですけど・・・・
そういうものも載っているのでしょうか?
0287デフォルトの名無しさん
NGNGその話、もともとpc内部でのアプリ間のmidi/audio信号(に相当するもの)の
通信の話題だったんじゃなかったのか? MacでいうApple MidiManagerみたいな。
とすれば、MIDIそのものが公開されているかどうかは、関係ない話だ。
逆にMIDI規格はPCの中のことは構ってくれない。
それこそOS(API)メーカーの自由裁量の範囲だ。
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGここ参考にしてみてはいかが?
ttp://www.smartelectronix.com/musicdsp/main.php
0290デフォルトの名無しさん
NGNG何でしょうか? DirectSoundはそのあたり対応しているのでしょうか?
0291デフォルトの名無しさん
NGNGacmでデコードすれ。
0292290
NGNGところ、半数ほどが再生できなかったので、自前でデコードエンジン書くことに
します。ありがとうございました。
0293デフォルトの名無しさん
NGNG0294291
NGNGDirectShowでフィルタだけ使う方法がわからんのです。
pinオブジェクトを接続してサウンド出力やファイルに出力は出来たのですが、メモリにデータを出力、またはメモリのアドレスを取得ってできるのかな。
あるいはそういう*.axを作らなきゃならんとか?
0295デフォルトの名無しさん
NGNGそれではダメ?
0296290
NGNG再生できませんでした。これもacmと関係あるんでしょうか。
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGNTなら、winnt\sytstem32で、*.axがDirectShow、*.acmがACMのコーデック。
それとたしか、DirectShowは、ACMのコーデックを扱ってくれたはず
0299291
NGNG同一フォーマットでもファイルによって差が出る?
メディアプレイヤーで再生できるならやり方の問題では?
acmならやったことありますが
wavヘッダーがあるmp3ファイルなら取り除いて、フレーム単位で送る。
あるいはビットレート等の取得が間違ってるとか。
0300デフォルトの名無しさん
NGNG流れてくるデータ拾いたいだけならSampleGrabber つかえば?
0301デフォルトの名無しさん
NGNGmp3ファイルがあるな。winampは普通に再生されるんだが。
そういう話か?
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG開発中のはず(ずっと開発中、、、鬱)
でもPDならあるさ!
0304デフォルトの名無しさん
NGNG可変ビットのmp3の再生をしようとしたら、右上の、トータル
時間の表示がおかしくねえか?
0305デフォルトの名無しさん
NGNGwaveOut系でPCMをリアルタイム合成しながら演奏しているのですが、
バッファを大きめに持った場合の発音までのタイムラグが気になります。
waveOutWriteした後そのデータが実際に発音されるタイミングと
同期を取りたいのですが、何か方法は無いでしょうか?
0306デフォルトの名無しさん
NGNGバッファを小さめに取るしかない。
処理が重めなら転送レート(つまり再生周波数)下げるとか。
0307デフォルトの名無しさん
NGNGwaveOutGetPositionで取得した値と追加したバッファのデータサイズ合計の差分で
ある程度はわかるけど・・精度はイマイチ。あるいは再生終了フラグのたったとき、
その次に追加してあったバッファが再生開始されたということでどうでしょう。
0308305
NGNG特にユーザ入力がトリガになって発音される場合は
バッファをできる限り小さくとるしか方法は無いでしょうね。
ただ、今回は発音をトリガに同期を取りたいと考えているので
バッファを小さく取る以外の方法を模索したいと考えました。
>>307
>あるいは再生終了フラグのたったとき、その次に追加してあった
>バッファが再生開始されたということでどうでしょう。
なるほど。waveOutWriteしたデータが発音されたか判定できるなら、
再生開始までポーリングするのもアリかなと考えていました。
こちらの方法で試して見ます。
0309デフォルトの名無しさん
NGNG次号のCマガはこれ系の特集みたいですね
1から勉強させて貰います
0310デフォルトの名無しさん
NGNG先月のCマガ(プログラマーのための数学)を読んで
今のうちに理解を深めておくのも吉。
0311名無しさん
NGNG音声合成で、入力したテキストを wav にしてくれる。
http://www.bell-labs.com/project/tts/voices.html
0312名無しさん
NGNG音声合成で、入力したテキストを wav にしてくれる。
http://www.bell-labs.com/project/tts/voices.html
0313DirectXAudioのアルゴリズムについて
NGNGDirectXAudioの3Dサウンドやドップラー効果の計算方法が知りたいのですが。
ご存知の方がいらっしゃいましたら是非教えてください。
0314デフォルトの名無しさん
NGNGhttp://www.bio100.co.jp/cgi-bin2/directx/flashlst.cgi
の
http://www.bio100.co.jp/cgi-bin2/directx/flashviw.cgi?no=2316&reno=no
と相互リンク決定だな。
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGオレも気になる、DAudioのソースってでてるの?
0317デフォルトの名無しさん
NGNG今はどれが主流になってるですか?
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNGDirect3DSoundはドルビー社のCODEC使ってるし、社外秘なんでは?
左右の遅延とフィルタリングが基本なんだろうなぁ
ドップラー効果程度ならば、物理学(波動)の本を読めば書いてある
要は、相対速度がどのくらいならば、周波数がどのくらい上がる(下がる)のか
それだけのこと。
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGlog10(level)*20
levelは適当な時間の中のMAXレベル。
>323
バイナリエディタで調べれ。簡単に分かる。
あとMSDNに情報ある。調べれ。
0325デフォルトの名無しさん
NGNGmaxレベルとは、44.1/16bit波形データ中の-32768〜32767の絶対値のことですか?
0326デフォルトの名無しさん
NGNGdB表記は減推量だから正確には、
( log10( fabs( level ) ) - log10( fabs( MAX ) ) ) * 20
かな。
MAXは16bitなら32768。
0327デフォルトの名無しさん
NGNG○減衰量
ウツダ…ネヨウ
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGメモリをアロケートするとこで実行エラーが出てしまいます(;´д`)
どなたかヘルプをお願いします。
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGサウンドプログラミング以前の問題だろ。
自分の使ってる言語の初心者向けスレ逝って来い。
0332デフォルトの名無しさん
NGNGハハハ
まあまあ
でもワラエタ
0333デフォルトの名無しさん
NGNGメモリをアロケートするとこってわかってるんならなおさらwavとは無関係じゃないか?
たしか21バイト目から16バイト読むだけですが。
下がってきてるな
0334デフォルトの名無しさん
NGNG学術系の人?それともヤマハとかローランドの
エンジニアの人?
それとも趣味かな?
なんにしても尊敬します。
0335デフォルトの名無しさん
NGNG漏れはしがないフリーソフト作者です。
カキコもするけど、正直ついてけない話題も多い。
ま、>>334 は今月号のCマガの特集でも読んでなさいってことだ。
0336デフォルトの名無しさん
NGNG↑このスレッドちょっと面白いかも
0337デフォルトの名無しさん
NGNGボイスチェンジャーソフトで、物まね機能というか、自然音声Aに
自然音声Bの声色をベーストするような機能を持つものはあるでしょ
うか。あるいは、作れるから見積もってあげるよ、という人、います
でしょうか。
(1)できればWin98かXP動作で
(2)声色のみのエミュレートで、口跡などは問わない
(3)ある程度は音声Aの声色が残ってもやむをえない
(4)リアルタイムである必要はない。再生時間の数十倍
変換にかかってもやむをえない。
と、まあこんな感じです。セガのカラオケにそうした機能が
導入されたとも聞いたのですが。
0338337
NGNG0339デフォルトの名無しさん
NGNG数年前にイギリスかどっかの大学で 成功したとニュースにはなってましたね
その手の仕事をやって胃に穴を開けた事ならあります
現実には色んな意味で難しいですね。
具体的にはピッチの検出に失敗した時のペナルティが非常に大きいのです。
0340デフォルトの名無しさん
NGNGかなり以前に高校サークルのプログラムコンテスト入選作品で
それに類したものがあったはず。
0341デフォルトの名無しさん
NGNG理論的にはボコードにピッチフォルマント情報を入れて加工すれば出来ますが、
実験的には可能ですが実用的には難しい面があります
何を言ってるかやっと判別出来る程度の音質なら可能ですが、それでは納得出来ないでしょう
音質をあげれば、失敗した時の違和感が酷くなり、やはり納得出来ないでしょう
人間の音声は母音と子音の組み合わせです。 どうしてもそれを連続的に処理する事が出来ません
たとえば2つの音源を分離することは今の技術では無理です(音源を事前に測定出来ればというレベルです)
携帯電話の電話口で2人が同時に喋れば何を言ってるか判らなくなるのと同じ問題があるのです
カラオケなどでいうボイスチェンジはキーコンの応用技術である事が殆どです
ピッチを買えずに再生速度を変化させたり、ビッチを完全にx2 ÷2したり、その周期の別の波形と
掛算したりというような連続的な処理をさせる方式だと失敗した時の違和感が少ないからです
0342341
NGNG○ボコーダ
0343デフォルトの名無しさん
NGNGですね。
変えればいい、というのと任意のものに変えたい、とでは雲泥の差がありますね。
あとカラオケであれば音程データがありますから、これは応用がききます。
ピッチを抜きで考えるとすれば
完全に思いつきですが長いサンプル数で元データをFFTして平均的な周波数特性を出力に反映させる、とか。
ちょっとは似るかも。
0344341
NGNG残念ながら短時間FFTを使う方法は 固定周期で分析した場合 接続点がスムーズになりません
接続点をスムーズにしたとすればその固定周期の音が出てしまいます。
ピッチの整数倍毎に分析するという事になりますが、すると子音部には音色がついてしまいます
思ったより巧くゆかないですよ
0345デフォルトの名無しさん
NGNGなぜ短時間?
おおよその声の周波数特性の差分をEQでうめる、という感じではどうでしょう?
完全にオフライン処理でいいのですから。
0346デフォルトの名無しさん
NGNG全サンプリングのデータを読んで一挙に変換する方法との区別の為の呼称では?
分割すれば、長いサンプル数で分割しても短時間フーリエ変換ですよ。
EQで調整出来る程度の差=線形な加工では声質が変わったにようには殆ど聞こえ
ないです。
たぶん希望を満たすには、極論ですが音声認識して音声合成しなければならないと
考えた方が安全でしょう。
0347デフォルトの名無しさん
NGNG質問です
音をスロー再生したいのですが
普通にスロー再生するとピッチが下がってしまいます
ピッチは通常速度の再生時と同じに
したままでスロー再生する方法…
わかります?既出だったらすまそ
0348デフォルトの名無しさん
NGNG自分で作りたいの? それとも既製のを手軽に使いたいの?
原理は
ピッチを変えたくないなら、同じ速度で再生するしかないでしょ?
だから同じ速度で再生する。
ただし、同じ信号を繰返させる
例えば
AAAABBBBCC__DDDD というふうな音声信号を
AAAAAABBBBBCCC___DDDDDD となるようにする
具体的には2系統の再生機を用意して 再生機の出力が相関の高い所で
切り替える
0349デフォルトの名無しさん
NGNG今売ってるC MAGAZINE(3月号)に載ってたよ。
0350デフォルトの名無しさん
NGNGついて詳しく書いてあるような本ってないですかね?
0351347
NGNGありがとうございます、早速入手します。
0352-
NGNG理論系なら結構ある。工業数学?系。大学教科書になるからね。
フィルタ製作などでは参考にできます。
私が買った中で一番ソフト開発よりなのは
コロナ社刊C言語によるディジタル信号処理入門(CD-ROM付)
もっと具体的なオーディオアプリ開発のになると?です。あったら俺もホスィ
何部売れるんだ、というカンジでしょうけど。
0354デフォルトの名無しさん
NGNGやはり、最適化等の問題(よくわからない)で、VC++等で組んだ
ものより遅くなってしまうのでしょうか?
http://www.axiworld.be/documents/40.html
0355デフォルトの名無しさん
NGNGSRSとかって効果薄いしソニーや松下のもイマイチっす。
タップ数は1024までだったら何とかなるかも・・・
0356デフォルトの名無しさん
NGNG左と右の合わせた音量が常に一定になっていればいいのでしょうか。
ものすごい初心者な質問で申し訳ないです。
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG定位が真ん中に来ると、100パーセントパンが振られた音に較べて
弱く、遠く感じられてしまう・・・ンじゃ無かったっけ。
直線的に聞かせるには
センターを0度、定位する音の位置をΘとすると
Lamp = √2/2 * (sinΘ+cosΘ)、 Ramp = √2/2 * (sinΘ-cosΘ)
最近本を読んだだけなので、俺も理解が足りないかもしれない。
多分上の式は左右45度に置かれたスピーカーの話で、ヘッドフォンだとまた違うのかも。
0359デフォルトの名無しさん
NGNG1から教えてください。
ってのもあれなので、
外部から入ってくるMIDIデータを読む方法と、
SMFファイルフォーマットがわかる
参考になるようなものは無いでしょうか?
0360デフォルトの名無しさん
NGNG>外部から入ってくるMIDIデータを読む方法と、
MCI辺り調べて見れ。
>SMFファイルフォーマットがわかる
本買え。
0361デフォルトの名無しさん
NGNG参考になりました。多謝!
0362デフォルトの名無しさん
NGNG録音した音声を検索する事が出来る製品ってありますか?
技術的には可能だと思うのですが。
音声を一旦テキストに変換して、検索して、ヒットしたところの音声を再生する
感じです。
私はプログラミング経験ゼロです。
0364デフォルトの名無しさん
NGNG見たいな事やってるホムペ知ってる人居ますか?
ソースは在るが、何やってるんだかサパーリ!
0365デフォルトの名無しさん
NGNGそんなの検索すればいくらでも見つかると思うが・・・
あと、どの辺が分らないのかによるよ。
フーリエ変換が分らないのか、高速化のアルゴリズムが分らないのか。
0367デフォルトの名無しさん
NGNGエシュロンでその技術がつかわれているらしい。
0368デフォルトの名無しさん
NGNGそういうソフトたくさんあるから、MIDIから直接wavにコンバートする
プログラム作ってー。
家の1GHZパソコンではMIDIを最高音質で録音しようとすると途中でと
ぎれてしまうのです。
0369デフォルトの名無しさん
NGNG「MIDI → WAV」したい人って何が目的なんだかね。
MIDIデータなんて、ある音源のコピーがほとんどでしょ。
最高音質であろうが、データとしては薄っぺらいと思うんだけどね。
MIDIをWAVにしたあと、オーディオCDにするのかなぁ。
PCでMIDI再生する以外のことがしたいとなると。
0370デフォルトの名無しさん
NGNGマジレスすると、どの環境でも同じMIDI音源ならそうなるが、実際は音源毎に音が違う。
>データとしては薄っぺらいと思うんだけどね
ま、この辺読む限り、音源に関する知識に乏しそうだがね。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNG何か?
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNGコールバック、うまい方法無いですかねぇ・
CALLBACK_WINDOWは使えないし。
0376デフォルトの名無しさん
NGNGそのMIDIがどうゆうMIDIかは知らないけど、
macならQuickTime Playerでmidファイルを開いて、
AIFFに書き出しできるけど。
0377369
NGNG音源からの音をLINEでPCにつないで、
シーケンサー動かしながらWAVE録音ソフトで録ればいいわけでしょ。
そういう作業を自動で行う意味もないだろうから、
内部のソフト音源で鳴らせた音をWAVEにしたいわけでしょ、この場合。
(違うのかなぁ)
で、そんなもんなら、わざわざ録音して残すほどの内容でもないだろうと。
そういう主張でした。
0378デフォルトの名無しさん
NGNGスレッド使う
0379デフォルトの名無しさん
NGNG言われてみれば、確かに。
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGできたよ、Thanks!
0382デフォルトの名無しさん
NGNGノウハウを教えてくれ。
はなしはそれからだ。
レコポって、SMPU使ってないとレコーディングできない見たいだし。
サウンドブラスターからレコーディングしたい。
0383-
NGNG0384デフォルトの名無しさん
NGNGRoadsの、CMT(の訳本)に多重キャリアFMの式があって、
MCFMt = A^w1 * sin(C1t + [I1 * sin(M)]) … + A^wm * sin(Cnt + [In * sin(M)])
(Aは振幅定数で 0<A<=1、 w1, …wnはキャリアnの重み、
C1, …Cnはキャリア周波数、Mは変調周波数)
とあるんだけど、w1、wnとかの各キャリアの重みっていうのを、実装する際に
どういう範囲で与えればいいのかな?
0385デフォルトの名無しさん
NGNGAが振幅で指数でかかってるんだから 最大1 負側は実装出来る範囲で程度でいいんじゃないの?
0386デフォルトの名無しさん
NGNGMCI 低レベルAPIでイコライザする方法とか、ダメ?
0387デフォルトの名無しさん
NGNGAが振幅で指数でかかってるんでちゅ。
MCI 低レベルAPIでイコライザする方法があるの?
ありますか?ということ?
少なくともMCIではできぬのでは。
出来るとしたらDMOかな
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG振幅云々の人とは別人ですが。。
DirectXですか? 全然わからんです
>>388
どでもいいけど
高) mciSendCommand、mciSendString
低) waveOut〜、midiOut〜、、、
やっぱイコライザするのは大変そっすねー
ソフトに付けてみたいんだけど
0390デフォルトの名無しさん
NGNGmidiOut系にイコライザ付けるのは・・・
0391デフォルトの名無しさん
NGNGCならサンプルありますね。
ww.tcct.zaq.ne.jp/kaname/equalizer/
ワタクシはVBに翻訳して使ったけど十分速い。
0392391
NGNG0393デフォルトの名無しさん
NGNG有益な情報どうも
mixer〜なAPIの方の話で、イコライザってMixerControlがあるみたいなんですが
あれは使えないですか?
0394デフォルトの名無しさん
NGNGお目にかかったことはないですが。
TREBLE、BASSがついてるのは多いですね。
そもそもミキサーは共有のものなのでアプリ側に実装するのはちょと。
0395デフォルトの名無しさん
NGNGなるほど
mixer〜 APIもWeb上に資料少なくて(書籍当たらないとダメか。。)
でも、それだけ環境に左右されるなら無理ですね
waveOut〜とかDirectX方面を勉強してみます
0396デフォルトの名無しさん
NGNGLinuxで少しやり始めたけど、基本的なライブラリから
手を付けないといけなくて少しゲンナリしてきたよ。
ただオープンソースだからOSのスケジューリングの改造まで
「やろうと思えば」出来るメリットは大きい。いつかはね(w
0397デフォルトの名無しさん
NGNGWin32 環境で、音ってどう出すの?
Wav じゃなく、MML? みたいなので。
昔の BASIC の play 文みたいなの。
play("abc#ed")とかやると、♪ドミソ〜ラ♪、とかなるやつね。
0398デフォルトの名無しさん
NGNGmidiでshort message送るのが楽かと思われ。
0399デフォルトの名無しさん
NGNG(この場合、MIDI機器を持ってるわけではないので、
使うのは正確にはMIDIをエミュレートする
ソフトシンセモジュールになるとおもうけど)、
・変なドライバが必須(すくなくとも昔のWindowsでは)
・立ち上がりがクソ遅くて、
・しかもすぐ落ちる
というイメージしかないんですが、
実はWin95以上ならドライバ抜きで普通に使えるとか?
(じゃあいままでのあの変なドライバはなんだったんだ?)
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNGじゃあsin波形ジェネレートするか、BEEPの周波数でもいじってろ。
0402デフォルトの名無しさん
NGNGmidi マッパーになんか送れば、
ドライバも、MIDI機材もなんもなくても、
音は出るよ。ショボいけど。
0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNGこれってどんな技術?
0406デフォルトの名無しさん
NGNGこれ読みなさい。分かったらおれに教えなさい。
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNGこれの利点を生かせるほど作りこむのは大変そう。
MIDIだって十分実力差がでるものな。
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG結局周波数ごとに分解してサイン波におきかえる音声圧縮に近くなる。
MIDIなら音源自体は有限だから
waveの自然音声がどのノートの合成で最も近くなるか、
なんて方法が使えるようになる可能性はあるけど。
まあまともな楽譜にはならんわな。
0413agei
NGNG君らの知りたいことはほとんど網羅しているのでは?
0414St64x
NGNGとあるメーカーのMIDIインターフェイスを持ってるのですが、
ドライバ開発がWin95で止まっています。
近々Win2000マシンを自作予定(現在Mac使い)なので何とかして
2000用ドライバを作りたいのですが難しいでしょうか。
NT用のβ版は入手したのですが、海外のユーザーBBSのトピでは
Meで動作するものの2000では動作しないようです。
ちなみにプログラミングは初心者です。
0415St64x
NGNG>>252
実際のディストーション回路では頭がきれいにクリッピングしません。
一定の閾値以上でサンプルレベルを圧縮する方法はどうでしょう。
その閾値を複数設定して、サンプルレベルと圧縮比を比例させると
特性上音楽的な歪みになると言われているようです。
逆にその圧縮比の関係をわざと乱すとキャラクターが変わってくるそうです。
>>144
カップリングコンデンサはインピーダンスを決定する抵抗と常にペアで働くので
必ずHPFを構成してしまいます。
コンデンサの容量はインピーダンスによって決定しますが、
音声回路では大体カットオフ周波数20Hzを基準に考えています。
接地側のコンデンサは反対にLPFを構成します。
どちらもコンデンサ1個につき1次のフィルターとなります。
0416デフォルトの名無しさん
NGNG作るのはかなり難しいのではないかと思います。
0418デフォルトの名無しさん
NGNGアルゴリズムのつなぎ方がよくわかりません。
MC FMは>>384の式で、
PMMFMt = A * sin(Ct + [I1 * sin(M1t)] + ... + [In * sin(Mnt)])
SMMFMt = A * sin(Ct + [I1 * sin(M1t + ... + [In * sin(Mnt)])])
となっているのですが、たとえば、
http://apple.presen.to/ma2.html
のページのアルゴリズムにあるOP1のループしたような図は
どうやってつなげばいいんですか?
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG最後のページに2オペレータの例として
f = A sin(ωct + I sinωmt ) とあると思います
これを2つに別けて
f1= I sin(ωmt)
f2 = A sin(ωct +f1 )
β分の帰還は
f1= I sin(ωmt+βf1)
f2 = A sin(ωct +f1 )
0421デフォルトの名無しさん
NGNGなるほど、これがフィードバックってやつですか。
とりあえず、シンプルに作り上げる分には今は必要なさそうです。
ありがとうございました
0422418=421
NGNG何とか動く(音が鳴る)ところまでこぎ着けることが出来ました。
が、所々に出てくる定数(フィードバックのβとか)の決定方法が
よくわからないんですが、
http://www.dendai.ac.jp/press/book_da/ISBN4-501-53210-6.html
こういう本を読んだりした方がいいんでしょうかね?
これに限らず、数式の解説って当然のように定数αとか出てくるけど、
その定数がわからないと実装のしようがないと思うのですが。
0423デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG意味判らんけど、
やってみればいいんじゃない?
動的に音作ってみて波形を見る聞くすりゃいいじゃない
0426デフォルトの名無しさん
NGNGそこは音源の仕様だから、”これだ”っていう値はないと思う。
オリジナルだったら適当に自分が良しと思う値にすればよく、
なにか実機のエミュレーションだったら、425が言うように実機と
音が同じだと思う値を探し出さなければならないんじゃないかな
0427デフォルトの名無しさん
NGNGTrackBar付けて動かしてみて、これだと思う係数探せばいいだけだから
0428デフォルトの名無しさん
NGNGバイナリでファイルの中身を見ると、書き込むバイト数の後ろ約半分超が00で埋められてしまいます。
前側は正常に書き込まれているようです。16bitモノラルです。
原因がさっぱりわからないので解決法を教えてください。
0429デフォルトの名無しさん
NGNG普通にwaveIn使う事をオススメします・・・
0430デフォルトの名無しさん
NGNG単純なミスじゃないの? というかコード出さないと何もアドバイス出来ないよ
0431デフォルトの名無しさん
NGNGTDMとかVSTiとかCREAMWAREとか出ている中で、
Csound丸ごとハードウェア化して商品化ってのは、なかなかインパクトありますねー。
DTMマガジン の記事によれば、Web上にあるCsoundリソースを活用できるから、
可能性無限大みたいな感じでしたけど、Analog DeviceのDSP SHARK用のコンパイルとか、
どうやっているんでしょうね?
個人的に入手して遊び倒したいもんです。
0432デフォルトの名無しさん
NGNGhMPPSDK = (HMODULE)LoadLibrary("mppsdk.dll");
pFunc = (MPP_GETMODAPIFUNC)GetProcAddress(hMPPSDK, MPP_GETMODAPIFUNCNAME);
pFunc(&pMPPAPI);
HANDLE h; h = CreateFile("sound.it",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(h!=INVALID_HANDLE_VALUE){
map = CreateFileMapping(h,NULL,PAGE_READONLY,0,0,"SOUNDS");
LPVOID v = MapViewOfFile(map,FILE_MAP_READ,0,0,0);
long l;
l = pMPPAPI->LoadSong(v,65536);
l = pMPPAPI->SetMixerOptions(MPPMIX_LOOP);
l = pMPPAPI->SetWaveFormat(44100, 2, 16);
l = pMPPAPI->GetSongLength();
// ココが謎。
//pMPPAPI->Render
UnmapViewOfFile(v);
CloseHandle(map);
map = NULL;
}
CloseHandle(h);
h = NULL;
読み込めるし長さ取得もできてる気配。
誰か再生方法教えてくださいm(__)m
(っていうかRender()の引数がワカラナイだけかも?)
0433デフォルトの名無しさん
NGNGdllの使い方が分からないだけじゃん
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGアルゴリズムやテーブル資料ってどこかにないでしょうか?
探してみてもIMAについての資料ばかりで、こっちについては見つからなくって…
0437デフォルトの名無しさん
NGNG漏れもむか〜し、MACEのデコーダ作ろうと思って資料探したけど、
全く見つからず断念した…。
0440デフォルトの名無しさん
NGNGこれの周波数応答をグラフ表示したいんですが、
具体的にどうやったら良いのかがイマイチわかりません。
上の式から伝達関数を求めること、求めたい周波数の純音を代入すること、
fftが利用できることなどまでは薄ボンヤリとわかったのですが。。。
如何せん低学歴なもんで、出来たらコーディングに即した形でご教授願えませんでしょうか。
0441デフォルトの名無しさん
NGNG単純にZ変換形式にしてe(2*π*周波数*i)と複素数を代入して
絶対値求めるのではあかんの?
0442440
NGNGいや、それがやりたいんですが、あの・・・
Z変換した時のZって何ですか?何かの物理量?ガンダム?
見たいなところがわからないです。。。
0443デフォルトの名無しさん
NGNGttp://web.kyoto-inet.or.jp/org/create21/dsp06-2.htm
の13式から15式を作り
それを複素数の扱えるプログラム言語で書けばそのまま周波数特性が出ます
0445440
NGNG伝達関数の変形がえらく大変でした。
こんな計算するの初めてなもんで・・・
0446デフォルトの名無しさん
NGNG複素数のまま計算すればいいと思うが・・・
0447440
NGNG使ったこと無いから敬遠したっつうのもあるんですが。
0448デフォルトの名無しさん
NGNG04491
NGNG>>422
>http://www.dendai.ac.jp/press/book_da/ISBN4-501-53210-6.html
良さそうな本の紹介ありがとうございました
0450スペクトラムのソースが欲しいです
NGNGつけたい機能でどうしてもスペクトラムの考え方が必要なんです。
「短時間フーリエ変換」の方式を希望します。
ある程度はお金がかかってもいいのでどなたかご存じないでしょうか?
(言語:C++,C/データフォーマット:wav対応)
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG今度はこっちで質問してるのか。
まずはお前が立てた糞スレの削除依頼をしてこい。話はそれからだ。
0453デフォルトの名無しさん
NGNG昔のピッチシフターみたいにどうしてもプツプツとなってしまします。
プツプツ部の段差を直線的に結んで補正してもボーカルとか正弦に近いのはボロがでるわけで。
どうしましょうか?
0454デフォルトの名無しさん
NGNG1、 A-B 切替を使ってn周期前の音と切り替える
ただ、周期性が高いならkA+kB=1
完全なノイズなら kA^2+kB^2=1
だから、ノイズ度合いによって重み式を調整するとか
音質に拘ると色々とノウハウがあるけどね、 教えるのはここまで
2、フーリエ変換使って周波数上でシフトする(メンドクサイ上重く、音質も悪いが)
0455デフォルトの名無しさん
NGNGどうもです。
言われてみればなるほどですね。差を埋めることばっかかんがえてました。
フーリエ変換して操作して戻す、というのは
以前やってみてピョロピョロの音になったかな。
フーリエ詳しくないんでやりかたがいたらなかったのかも。
0456デフォルトの名無しさん
NGNGフーリエ変換を使う場合は
フーリエ変換は比例軸なのに周波数は
対数的に移動しなければいけない。
その場合の位相を合せて(時間毎に)という事になるのだけど
その位相をあわせるのが、
やっぱり周期性と非周期性成分とでゴチャゴチャ・・まあやってみたら?
ひょっとして解決策をキミなら思いつくかもしれないしさ
0457デフォルトの名無しさん
NGNG残念だなあ Delphiなら教えてあげたのに
0458450
NGNGシュア・ウェアの技術なんですが
エフェクトをかける周囲のデータに同じエフェクトを少し加えるという方式があります。
エフェクト制御値
加えていく(短時間)>>本来のエフェクト(通常の制御値)>>少なくしていく(短時間)
あと位相あわせが必要なようなんですが…
ちょっと、僕にはそこまではよくわからないんです。
(単純に位相差分を検出してそれを時間で分割して
加減していくとかでしょうか?)
>>457
ありがとうございます
気持ちだけ頂いておきます。
>>452
1:サウンドプログラミングのスレッドがあると
知らなかったのでご容赦下さい。
2:スレッドの依頼削除をすると
ホストが公開されるようなのでそれも勘弁してください。
3:ぼくは教えを乞う側の人間ですが"お前"は非道いと思います。
確立された技術を一からプログラミングするのは
避けたかったんですが、…
…フリーエ変換のプログラム、がんばって作ってみます。
0459デフォルトの名無しさん
NGNG俺VBだけどVB版ですら見つかったんだから。
0460デフォルトの名無しさん
NGNGわかりました、探してみます。
0461デフォルトの名無しさん
NGNG入力にエフェクトかけて出力してるんだけど
どうもサンプリング速度が微妙に違うみたい。
遅延時間が少しずつ違ってきてしまいにバッファオーバしてポツって音が出る
で、出力を入力にケーブルでエコーバック(アナログ)して相互相関取ると
少しずつズレてくる。
サウンドカード2枚中2枚ともがその症状なんで自分のソフトのバグかと
思ったけど、知り合いのノート(DynaBook)だと問題無い
これってズレてるのが普通?
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGプログラムを作ってる人じゃないと
0464デフォルトの名無しさん
NGNGそうかも知れないが、ソフト板なんかでプログラマが見るまで我慢しろ
この板でその話題は板違いなんだよ。
0465デフォルトの名無しさん
NGNGまあでも、俺、このスレじゃレスしてる方だから、その意見無視させてもらうよ。悪いけどさ
0466デフォルトの名無しさん
NGNGバグじゃないの?
転送レート時間以内に処理しきれてないとか。
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGは理解できないと言うことだ。
あとドライバーなんかもここではNG。
0469デフォルトの名無しさん
NGNGありがと
バグの可能性・・・・はあるなあ、実サイズが違うのかな・・
ただ、いつも dwBytesRecorded = dwBufferLength になってるのは確認してるし
HDRバッファは常に等長にして3つくらい渡してるんだけどなあ・・・
転送レート内・・・それは無い筈 同時にMP3プレイヤーを動かしても異音は出ないし
0470デフォルトの名無しさん
NGNGΣ2=3 log2 8 = 3 ですか?
√3*3-√3=2*√3 という事?
11.025でサンプリングして 3.5Kの急峻なLPF作ってリサンプリングしたらソフト的には
実現可能と思うけど
それとも無理数だから絶対精度は決して得られないという有り難い教えですか?
0471デフォルトの名無しさん
NGNGことをやろうとしているとか。waveOutGetDevCapsで調べられるやつね。
0472デフォルトの名無しさん
NGNG俺も録音同時再生のソフト作るけどハードウェアによって入出力のサンプリングが
ずれるのとずれないのがあります。CPU負荷が高いとずれが大きくなったりします。
ボード上にクロックジェネレーターを持ってるやつは全くずれません。
あるいはASIO環境ならOKか?
0473デフォルトの名無しさん
NGNG調べて調整しなければならないという事が確定して鬱だなあ
0474472
NGNG俺の場合waveInGetPositionとwaveOutGetPositionで比較して差分をスっとばす。
当然再生がブツっていうけど、なんとかならんもんかのう。
0475デフォルトの名無しさん
NGNG簡単な3点補間くらいじゃ高音の特性が酷く劣化するし
といってn倍サンプリングしてn/2のLPFでカットしてから補間する
まともな方法だと重いし、ただでさえ大きい遅延がより大きくなるし
0476
NGNGディレイラインと、LFO(サイン波形)を使って、ディレイタイムを増減する方式です。
ディレイタイムの増減は細かく(1サンプル)で処理をしてるのにノイズがのります。
特に原音が高域ほどノイズがのります。fs=44.1Kです。
タイム変動時には、1次補完してみましたが、変わらず。
どうか、キーワードだけでもご教示ください。
よろしくおながいすます。
0477デフォルトの名無しさん
NGNG0478476
NGNG1サンプル単位のディレイタイム指定ってのが悪かったみたいです。
こんなページ見つけました。
http://www.harmony-central.com/Effects/Articles/Chorus/
Implementation-Digitalの項に書いてることを実践したらうまくいきました。
ちなみに、ほかのエフェクトtipsも結構あるようです。
>>477
どれのこと?
すんまそん、DSP素人なんでまじでわからんのです。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGだいたい こういう戦略です
1、 エコーを見つけたら消音する
2、適応フィルタで出力(スピーカ)が入力(マイク)にかえって来るのをカットする
0481デフォルトの名無しさん
NGNG雑音には呈上雑音と非定常雑音があることがわかりました。
定常雑音としては、白色雑音とかがあることがわかりました。。
一方、非定常雑音の具体的な例?というのがわからず困っています。
統計的に観て、時間幅を変えると性質が変わる信号という事はわかります。
これは自分の中では「突発的の雑音」(たとえばドアの開く音とか)と
解釈しているのですが間違ってますでしょうか?
0482デフォルトの名無しさん
NGNG目的以外の音が雑音。 別けるとしたら処理しやすさから
1、周期性雑音 ハムとかエンジン音とかレコーダのモータ音とか
2、定常雑音 サーとかザーとか
3、突発性雑音 バリバリ ガリ ドカン
とした方がいいんじゃないの?
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGどうしても1,2しか使えないです。
ちなみにVC++でDirectSound使ってやってみました。
0487名無しサンプリング@48kHz
NGNG0488名無し@沢村
NGNG初歩的なところでつまずいているのでぜひ教えてください♪
それはmidiファイルに保存するとき、音色指定で、
32 の Guitar harmonics まではプレイヤーで聞いてみると音が出るのですが、
33 の Acoustic Bass 以降の音は出ないのですよ。
バイナリエディタで開いてみると、33 の Acoustic Bass 以降の音を指定した場合、
どうもファイルがこわれているようなのですよ…?
皆様方、これは一体どういうことなのでしょうか?
32 の Guitar harmonics までと33 の Acoustic Bass 以降とでは音色の指定の仕方が違うのでしょうか?
ちなみにMidiOutShortMessageでは同じように指定して同じように音が出るのですが…?
ぜひ教えてください!!
0489デフォルトの名無しさん
NGNGWin32APIスレの458以降に同じ質問があるので、その回答を参考にしてください。
http://pc3.2ch.net/test/read.cgi/tech/1032548635/458-
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNGファイルが壊れてるってのが本当なら誰も教えられないよ。
自分で作ったPGなら、自分で1ステップずつ追えば幸せになれるでしょう。
変なバンクセレクトで、PGチェンジを受け付けてないなんて事はない?。。。だろね
0492デフォルトの名無しさん
NGNGこのスレ(・θ・)イイ!!
0493デフォルトの名無しさん
NGNG∧,,∧ ツマナサスギテ
ミ;゚Д゚ミつ 背筋寒くなりました
0494デフォルトの名無しさん
NGNGsinc関数でどうやったら補間ができるんですか?
線形補間や、スプライン、多項式ならイメージあるんですけど、
sinc関数をどう適用すれば補間になるのか、さっぱりわかりません。
WEBで結構調べたんだけど、どうも理解できません。
よろしくおねがいします。
0495デフォルトの名無しさん
NGNGそれぞれの重なるフレームを単純に加算して、リミッタかければいいの?
a,b,cが16bitPCMの1フレームだとしたら
x=a+b+c
if(x>32767) x=32767
if(x<-32767) x=-32767
みたいな処理でいいのかなあ。
0496名無しサンプリング@48kHz
NGNGOKです。
ツッコミいれとくと
-32768 〜 32767でないかな?
フレームって何じゃ?サンプルとかワードとかっていわないか?
0497名無し@沢村
NGNG「33 の Acoustic Bass 以降の音を指定すると、プログラムチェンジがピッチベンドに変わって、それ以降のノートオンオフがメチャクチになるかわからんのよ」
という質問を発しましたが、無事解決をばいたしましたので、ご報告をば申し上げます。
というもの皆々様方、自分はファイルに書き込むとき、プログラムチェンジのCnに楽器ナンバーを足した2バイト分をいっぺんに書き込んでいたのであります。
この足しかたがどうもうまくなかったみたいで、楽器ナンバーが16ふえるごとにプログラムチェンジがチャンネルプレッシャーにかわり、
チャンネルプレッシャーがピッチベンドにかわりとなっていたのであります。
そこで自分は2バイトいっぺんに書き込むのをやめ、1バイトづつわけて書き込んだとたん、
ちゃんと音がでたというわけであります♪
0499名無しサンプリング@48kHz
NGNGDX8調べるとやっぱできるかも・・。
DirectSoundCreateのguidにGUID文字列のアドレスかな?
デバイスを列挙する方法がありそうに書いてある・・。
VBだとDirectSoundEnum8.GetGuid(Index)だって。
0500デフォルトの名無しさん
NGNGWAVEファイルからデータを取り出し、FFTをして
スペクトル表示してグラフをだし、第一ホルマントは出したのですが、
第2ホルマントをうまい具合に決めて出せません。
誰かアドバイスおねがいします。
0501デフォルトの名無しさん
NGNGFFTしたなら無理にフォルマントに別ける必要はないという発想で行ったら?
0502デフォルトの名無しさん
NGNG音声認識ならフォルマンとにわけたほうがいいでしょ
0503デフォルトの名無しさん
NGNGそういう方法もあるけど、 少なくとも>>500のような質問の仕方だとそのレベルにはないだろ。
その前に周波数情報のまま処理する方法で基礎や勘を養え
0504デフォルトの名無しさん
NGNGsinc関数を使ったことなかったので、試しに書いてみた。
サンプリングデータ
x[0],x[1],...,x[n_data-1]
をtimes倍に補間して
y[0],y[1],...,y[n_data*times-1]
を生成する。x,yはdouble型配列、n_data,timesはint型。
#define PI 3.14159265358979323846
double sinc(double x) {
if (x == 0.0) return 1.0;
return sin(PI*x)/(PI*x);
}
とsinc関数を定義しておいて、
for (int yi=0; yi<n_data*times; ++yi) {
double yt = (double)yi/times;
y[yi] = 0.0;
for (int xi=0; xi<n_data; ++xi)
y[yi] += x[xi]*sinc(xi-yt);
}
計算量が多くなってしまうので、
sinc関数に窓関数をかけて範囲限定するなり工夫して。
0505名無し@沢村
NGNGそれはMIDIシーケンサーの編集画面の中で「拍子」をいろいろ設定できるようにしたいわけよ。
「拍子」というのは、3/4拍子とか4/4拍子とかいうあれな。
だが、この「拍子」という概念がMIDI以前の音楽的にピンとこなくてな…。
3/4拍子が一小節の中に4分音譜が3個分で、4/4拍子が4分音譜が4個分ということくらいはわかるのだが…。
だがこの「小節」という概念もよくわからんのよ…。
たとえば4/4拍子の音楽だって4分音譜が3個分のところで区切って考えて3/4拍子というふうにこじつけても曲の出来自体は変わらんだろ?
だからそう考えると「拍子」とか「小節」というものにどういう意味があるのかわからんのよ…。
皆々様方はわかりますか?
またSMFのメッセージの中に「拍子」を表現するパラメータがあるかどうかさがしたんだけど、どうも見つからんのよ。
そもそもSMFには「拍子」や「小節」を表現するものが存在するのかどうか?
皆々様方〜MIDIシーケンサーで「拍子」を設定するようにするにはどうしたらいい?
編集画面の「小節」の区切りの長さを帰るだけでいいの?そうすると作成する曲には何の影響も与えないことになると思うけど…。
皆々様方〜、そこんとこの疑問を教えてください〜お願いします♪
0506デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1005053427/682
0508デフォルトの名無しさん
NGNGACIDはループのテンポ補正、ピッチ補正を自動でやってくれるループサンプルプレイバッカーって感じ。
やりたいのはこういう↓ソフト?
http://www.traktor-dj.jp/
0509デフォルトの名無しさん
NGNG>>編集画面の「小節」の区切りの長さを帰るだけでいいの?そうすると作成する曲には何の影響も与えないことになると思うけど…。
それでイインジャネーノ?たとえば3/4と6/8と9/12の違いとか人それぞれ主張があるだろうし、
直感的に解るには音楽沢山聴くしかないねぇ。
0510名無し@沢村
NGNG自分は現在リズム音に取り組んでいるのですよ。
ところがリズム音をmidiファイルに保存してそれを開いて聞いてみると、音が出ないんです。
自分はまたデータが変になってるんじゃないかと思ってバイナリエディタで開いて調べてみると、ちゃんとデータは間違いなく保存できてるんですよ。
それで何故音が出ないのでしょうか?
ちなみにこのファイルに普通の楽器音を追加してやると、前に保存したリズム音もちゃんと鳴り出すんですよ。
皆々様方〜、これは一体どういうことでしょうか?
何故、リズム音だけでは音が出ずに楽器音を追加してやると音が出るんでしょうか?
普通に考えるとリズム音だけでも音が出るはずで、自分はどこかにミスがあると思うのですが…?
皆々様方〜、自分はどこが間違っているのか教えてください〜!!お願いします!!
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNGほらぁ、本当に向こうでスレ立てちまったじゃねえか。
こういうヤツは天然なんだから迷惑な誘導しないでくれ。
0515名無しサンプリング@48kHz
NGNG知的な良スレだったのに・・。
0516ドシロウト
NGNGぶん回すのならともかくCDなどのある決まった周波数でサンプリングされたものを
4倍速で再生するという処理はどうやって実現されているのでしょうか。
サンプリングしたデータを間引いたりしたら原音の高速再生だと認識すること自体が困難に
なりそうな気もしますし…
それとも単位時間あたりに4倍のデータを流し込める専用のハードウェアなのでしょうか。
0517デフォルトの名無しさん
NGNGとみて再生すれば高速再生になる。データを間引くのは
その高速再生されている音声をもとのピッチで再生
しようとしたときだけ。むしろ、4倍速なんてぜんぜん
聞き取れない予感。WinAmpのプラグインであるから
いちどきいてみるといい。
0518デフォルトの名無しさん
NGNG4倍速CD-ROMドライブを使え。
0519デフォルトの名無しさん
NGNG11kHzサンプリングで録音した物を4倍速してんじゃねーか?
3.4kHz以上を再生できるから、聞き取れない事もないと思う。
…まぁ、やってみないと分からんけど。
0520デフォルトの名無しさん
NGNG雑誌の裏表紙に載っているような。
適当にサイト見つけて聞いてみたけど、普通のタイムストレッチだよ。
ピッチは変わってない。
0521名無しサンプリング@48kHz
NGNGそういうソフトを安く作ったりしたら怒られるかな。
0522デフォルトの名無しさん
NGNG「 類 似 品 に ご 注 意 く だ さ い 」
との警告をgifアニメで点滅させてたから、多分怒られると思うYO!
ていうか、安くも何も、騙しのテクニックが無いと売れないと思われ。
0523名無しサンプリング@48kHz
NGNG実際高くて買えないから作れんかという話をされたことがある。
機械でやるんならCDプレイヤーにDSP積んでとか大変だけどソフトならリッピングしてストレッチしてバッファに送ればいいんだもんね。
0524名無しさん@お腹いっぱい。
NGNGhttp://www.ssi-co.co.jp/napoleonhill/top.html
というかシェアウェアで出せば売れると見た(w
おれ、これ聞いたことあるけどただ単に自己啓発プログラムの朗読を
4倍速で聞くだけだからね。
ちなみに英語の早口ニュースなんかをヒアリングするのとは
なにか違うのかな?おれにはこっちの方がよっぽど能力活性化して
英語力もアップしていいと思うのだが。。。
シェア作るひとは気をつけてネ。かなりあやしく、
そしてしつこい営業やってるところだから。
スレ汚しスマソ。
0525ドシロウト
NGNG当方この分野には明るくないので基本から勉強したいと思うのですが、サウンドプログラミングの
バイブル的な存在のものはあるのでしょうか。
タイムストレッチという処理が具体的にどんなものなのかとか興味があるので。
できれば特定のプラットフォームに依存しない書籍だと嬉しいです。
0526デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4501532106/
http://www.amazon.co.jp/exec/obidos/ASIN/4320029429/
プラットフォームに依存する本
http://www.amazon.co.jp/exec/obidos/ASIN/4798100188/
0527ドシロウト
NGNG結構お値段がはるようですが自分への投資と思って購入してみようと思います。
0528デフォルトの名無しさん
NGNGH(z)からH(w)にするあたりでつまずいてます。
プラグイン等でグラフィック表示されてますが、上記の方法でよいのですかね?
それとももっと簡単に特性図をだせたりするのですか?
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGで置いた時に
Z(-1) -> e(-jwt) = cos(jwt) - jSin(jwt)
Z(-2) -> e(-2jwt) = ?
Z(-3) -> e(-3wt) = ?
って感じです。
0531デフォルトの名無しさん
NGNGとりあえず、それだと数学の勉強からしたら? と答えるしかないなあ
Z(-1) -> e(-jwt) = cos(jwt) - jSin(jwt)
だったら
Z(-2) -> e(-2jwt) = cos(2jwt) - jSin(2jwt)
Z(-3) -> e(-3wt) = cos(3jwt) - jSin(3jwt)
0532デフォルトの名無しさん
NGNG>Z(-1) -> e(-jwt) = cos(jwt) - jSin(jwt)
これからして間違いだ。
Z(-1) -> e(-jwt) = cos(wt) - jSin(wt)
で、wt が一つの変数じゃなくて w*t で tが時間を意味してるなら、それも間違い。
0533デフォルトの名無しさん
NGNGH(w) = 1/√(1+a*a - 2aCoswT) になぜなるのでしょう?
H(z)の分母を2乗すると
1-2aCoswT + a*a*CosWt*CoswT-a*a*SinwT*SinwT+2ajSinwT-2a*aSinWt*Coswt
になりますよね
ここからなんで上記まできれいにきえてしますのですか?
0534デフォルトの名無しさん
NGNGだから、先に数学勉強しろって言われただろ?
最初の式はゲインを求めたもの 後の式は、位相+ゲインの式
周波数軸上の複素数だから、l絶対値がゲインで、位相が位相
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGwaveファイルの中身をバイナリエディター等でみると
必ず"RIFF"から始まると思います。
oggファイルやmp3ファイルもこのような何か特定の文字列
で始まるのでしょうか?
なんでこんな事を聞くかといいますと一つのファイルに固めてある(主にゲーム)
から音楽ファイルだけを抽出するときに特定の文字列で始まっているならばそれを
目印に音楽ファイルだけを抽出出来るからです。
ちなみに終わりは特定の文字列とか決まっているのでしょうか?
0546デフォルトの名無しさん
NGNG検索しる
0547名無し@沢村
NGNGこの機能がついていないMIDIシーケンサーは皆無に等しかったりする…。
で、まずこの「Rolland」とか「yamaha」に設定していないと「再生」ボタンを押しても音が出ないようになっている。
だが、俺のMIDIシーケンサーではこの設定機能はついていないが、音が出るよ。
皆々様方〜、これは一体どういうことかな?
自分のマシンではよく使っていから音が出るが、俺のMIDIシーケンサーを他のマシンにインストールして鳴らしたら音が出ないのかな?
そもそもこの「設定」は必要なのですか?
皆々様方〜、教えてくだされ〜♪
0548デフォルトの名無しさん
NGNG0549545
NGNGバイナリエディタでoggファイルみてみました。
みんな”ogg”で始まっていました。(←あっけない…)
そんなもんものなのでしょうか?
0550デフォルトの名無しさん
NGNGそこでなんでWeb上に公開されているであろうOggのファイルフォーマット仕様を調べる、
という方向にいかないのか疑問なんだが。
ちなみにmp3に関してはファイルフォーマット自体存在しない。
0551545
NGNGoggファイルとして保存してみたけどうまく再生されない…
waveファイルの時はうまくいったのに…
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNG0554545
NGNGう〜ん、もしかしたらこのゲームでは特殊なフォーマット
(oggと見せかけて一部をちょこっと変更した特殊な形式)が使われている
可能性もあるのかなぁ…
でもゲームのディレクトリに
ogg.dll
vorbis.dll
があるからogg汎用フォーマットのような気もするし…なぞだ。
0555661
NGNGMMC-3を使って音楽CDの情報を得たいとおもっています。
そこで1トラック分の曲の長さを知りたいのですが
どのようにすればよいのでしょうか?
READ TOC/PMA/ATIPコマンドで曲のスタート時間は
得ることが出来ています。
0556デフォルトの名無しさん
NGNGwavとかaiffとかmp3のプロパティを参照したい場合はどうするのが簡単?
たとえば再生周波数、チャンネル、bit情報などなど。
GUIではなく、コマンド実行でプロンプトに情報表示されるようなやつつくりたいんだけどなぁ。
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNGmp3はフレームヘッダ見ればその手の情報が書いてある。
後は知らんが、ファイルフォーマット調べれば出てくるだろ。
0559デフォルトの名無しさん
NGNGttp://www.kk.iij4u.or.jp/~kondo/wave/
ttp://nagasm.suac.net/ASL/sound05/
0560デフォルトの名無しさん
NGNGありがとうございます。
0561IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0562デフォルトの名無しさん
NGNGj-comいつやめる?
どうしようか考えてるんだけど
0563デフォルトの名無しさん
NGNGお前の成長記録
0564デフォルトの名無しさん
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1041218318/
つうか、早速正体暴かれかけとるけどw
0565デフォルトの名無しさん
NGNG+でもそれ言ってただろ?
0566デフォルトの名無しさん
NGNG閉鎖
0567デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0568デフォルトの名無しさん
NGNGで、板潰しの粘着荒らしさんを
規制して貰えると助かるっす。
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG痛々しい事はいいです(ていうか見てるこっちが辛い)
今用件を伝えますから電話しましょう。
ずばっと出て下さい
度量の小さい人は無理だろ、か。
0571デフォルトの名無しさん
NGNGへぇー、結構多いね
0572デフォルトの名無しさん
NGNG400万ぽっきりで済むなら話は早い。しかし、訴訟はこれ一つではない。
0573デフォルトの名無しさん
NGNG>削除○さんが判断した時点ではコピペは確か2つ。
>単文ですし、他の方も確実にスルーでしょう。削除対象≠削除です。
>私が判断した時点で4つに増えたので、私が削除しました。
>ひょっとしたらそれでも人によっては削除されないかもです。
>また、消さない事による判断ミスということは相当なことがない限りありません。
>その辺は2ちゃんねるの削除の仕組みについて運営板をお調べになれば宜しいかと。
削除対象≠削除 だそうです2chは 裁判検討してる方は良くメモっときましょう
0574デフォルトの名無しさん
NGNG2ちゃんはどうかんりするのやら
http://internet.watch.impress.co.jp/www/article/2002/1224/yahoo.htm
0575デフォルトの名無しさん
NGNG串使っても意味なし
0576デフォルトの名無しさん
NGNGえー?当たり前なのー?
水面下でやる必然性が全く理解不能なんですけど。
0577デフォルトの名無しさん
NGNG神社・仏閣
0578デフォルトの名無しさん
NGNG犯罪系かキタ━━━(゚∀゚)━━━!!かな?
0579デフォルトの名無しさん
NGNG『閉鎖』よりは全然マシです。
別にそんなに困らないし…OKよ�
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGむなしいですね
0582デフォルトの名無しさん
NGNG成績がビリだった(そして事実)、とかいうことでしょうか。
0583デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0584デフォルトの名無しさん
NGNG言いたいことも言えないこんな世の中じゃ
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG自作ラジコン
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNGというのがこの掲示板の管理者の方針
そういう書き込みが出来ない奴は来なければいい
ということなのではないか
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNGつまらんよ、そこ。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGと質問したところ、
知っていると答えた人
0人。
この結果をどう考える?運営の人。。
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGなぜ 2ch 利用者でもない者が 2ch の削除ルールを守らなくてはならないの?
>ちゃんと削除依頼のルールを守って待てばいいだけの事じゃん
キミの脳内では
(現行法での)合法的な抗議方法としての内容証明つき郵便よりも
ローカルルールに過ぎない 2ch 削除ルールが優先されているようだな。
頭、悪いよ。
0598山崎渉
NGNG0599デフォルトの名無しさん
NGNG0600山崎渉
NGNG0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGVST プラグインのソースを書いたり読んだりするのがいいんでないか
0605デフォルトの名無しさん
NGNGうまく行きません。
どこが、おかしいでしょうか?leveは変数の型は書いてなく1から10の範囲でした。
int tmp;
for (i=0; i <= MaxSamples; i++)
{
tmp=in_buf[i];
out_buf[i]=32767*sign(tmp)*(abs(tmp)/32767)^(1-level/10)
}
0606605
NGNG× コンプレッサー
○ Compression
× 試して試して
0607デフォルトの名無しさん
NGNGどううまくいかなかったのか書けないようなバカは来るな
0608デフォルトの名無しさん
NGNGサウンドプログラミングはまだ君にははやそうだ。
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNG思っているのですが、とっかかり程度で良いので教えていただけないでしょうか?
0612デフォルトの名無しさん
NGNG言語が存在するわけもなく。
matlabとかは大丈夫なのか・・・
0613デフォルトの名無しさん
NGNGwindowsAPIを調べましょう
0614デフォルトの名無しさん
NGNG** で power な言語はあるよ。
0615デフォルトの名無しさん
NGNG録音は簡単ですね。WaveInとかMCIとかDirectSoundCaptureとかで。
ミキサーで録音ソースを指定するのが俺できんのだが。
サウンドカードによってラインの順が違ったりするんよ。
あと録音ソースを複数同時選択できるタイプのミキサーもできん。
誰かわかる?
0616デフォルトの名無しさん
NGNGミキサーのコントロールは諦めて Mixerを表示させてるよ。
ただ、現在の設定保存だけでも出来ればと思ってるんだが
mixerGetControlDetailsしてmixerSetControlDetails
すりゃいいんだろうけど、
出来れば
Enabele = True
Volume = 95.5
Balance =0
みたいな文字列でそのコントロールの全部の設定が読めて
一部が書き出しが出来ればいいのに
0617デフォルトの名無しさん
NGNG良いホームページがあれば、教えてください。
0618デフォルトの名無しさん
NGNGそおいったソフトでソース付のがあったから見つけれ。
0619デフォルトの名無しさん
NGNGfor (i=0; i <= MaxSamples; i++)
{
tmp=in_buf[i];
out_buf[i]=32767*sign(tmp)*(abs(tmp)/32767)^(1-level/10)
}
まだ、役に立つかな。
多分演算時の型の問題だろ。
out_buf[i]=32767.0 *sign(tmp)*(abs(tmp)/32767.0 )^(1.0 -level/10.0)
ってやっとけばdoubleとかでケイサンしてくれんだろ。
9 / 10とかだと、intの計算になるから結果0になんだろ。音でねぇよな、そりゃ。
0620デフォルトの名無しさん
NGNG^ ←が本当にべき乗の演算子なのかが一番不安なのだが。
C/C++だとコンパイルエラー吐いてくれないので(XORになって)、
俺もデバッグに苦労したことがあるyo。
0621デフォルトの名無しさん
NGNGそうだね、pow使わないとね。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGBASICがそうじゃなかったっけ?
0624605
NGNGpowに置き換えたら解決しました。 みなさんサンクス!
0625デフォルトの名無しさん
NGNGコンパイルエラーの回避にキャストをする香具師は逝ってよし。
0626デフォルトの名無しさん
NGNGjavaで
float f = (float)10.245;
はOK?
0627デフォルトの名無しさん
NGNGJavaって、floatリテラル表記ないのかと思ったじゃん。
10.245F
「読まれるかもしれん」という立場で書くのなら、
数値計算でcast使うのは、なんか特殊なことをしてるのか?と
思われるので、cast使わずに表記できるのなら、そちらを使う方がベター
0628デフォルトの名無しさん
NGNGhttp://slashdot.jp/mac/03/01/20/0610228.shtml?topic=11
--
公開APIの使用目的をAppleが規定するといわんばかりだ。
あちこちでオープンソースを強調しているAppleだがやはり
それはイメージ作りの為のポーズだけの模様である。
0629デフォルトの名無しさん
NGNG「ピンクノイズ」の生成ルーチンを作りたいのですけど
指針を教えてくれませんか?
検索したのですけど生成方法についてはさっぱりでした。
0630TECH
NGNGホワイトノイズを作って、
1、1次LPF を通し、ゲインをかける
2、2次HPFでDCカットして積分する
もちろん、どちらも、f0は非常に低くします。
0631デフォルトの名無しさん
NGNGすいません、
ホワイトノイズの作り方もわからないんです。
0632デフォルトの名無しさん
NGNGfor(i = 0;i i < buf_size; ++i)buf[i] = rand() % DEPTH;
でホワイトノイズつくれちゃったりします?
0633デフォルトの名無しさん
NGNGマッカーだけど、あぽーはもういいよ
あんな横暴で自分本意な会社は迷惑です
0635デフォルトの名無しさん
NGNGじゃぁ、
byte b = (byte)128は?
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNGttp://www.yamaha.co.jp/news/1999/99122401.html
0639山崎渉
NGNG0640デフォルトの名無しさん
NGNG参考になるサンプルとかどっかにない?
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNGWindowsAPIを使うといいです。
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNGベクターで出来上がり品を拾って来い
0645デフォルトの名無しさん
NGNGないね。
何処かに無い?
無かったら俺が書いて何処かにアップしとこうかなと思ったんだけど。
0646デフォルトの名無しさん
NGNGDo it.
0647デフォルトの名無しさん
NGNG英語だったら死ぬほどころがってるけど、、、
0648645
NGNGしたくて調べたんだけど、MSDN Onlineだと関数のリファレンスだけしかない。
Win32APIの分厚い本とかも買おうかと思ったけど読んだらあまり詳しくは書いて無いので
やめた。
例えばwaveOutOpenとかどう使うかとか、デバイスの状態を知る為にウィンドウ
メッセージを受け取るとか、いやコールバック使う方法もあるとか、構造体にある
デバイスのメーカーID一覧表とか、そんなの書いてある所見た事ねぇよ。
0649デフォルトの名無しさん
NGNG低レベルAPIのことしか書いてありませんよ〜。
そんなわけで、
MCIを使わずに低レベルAPIを使うメリットなどがわからないままです。
ここで質問しちゃいます。
どうしてでしょう?
0650645
NGNGあんな糞ウンコMCIなんか貧弱すぎだろ。
0651645
NGNG位書けや。
0652デフォルトの名無しさん
NGNGはいはい、旦那様が一番でございます。旦那様は天才でございます。
旦那様以外はカスでクズでございます。
0653デフォルトの名無しさん
NGNG探し方が悪いか、英語が読めないかどっちかだろ、おまえ(w
0654649
NGNGたしかに誤解されやすい文章でした。申し訳ない。
このあいだからプログラムの勉強をはじめて、>>7の本を買ったばかりなんですよ。
その本にはMCIについてまったく書かれていなく、
MCIの知識がない俺はちょっと不安になってしまったわけです。
それぞれの長所・短所などの情報も皆無でしたので、
どちらを勉強するべきなのか教えてください♪というレスでした。
0655654
NGNG「MCIは低レベルAPIに比べて貧弱」という、
気になっていた情報を知ることができました。
感謝です♪
それさえわかれば、あの本の勉強を頑張れそう。
0656デフォルトの名無しさん
NGNGそれは単純に二つのOggファイルを一つのファイルに合成したいのです。 しかも
Ruby上から、かつリアルタイムで。
こういうのはなんと言うのでしょう? 論理合成?
キーワードだけでも教えていただけないでしょうか?
0657デフォルトの名無しさん
NGNG一番簡単なのはプレイヤーを2つ別のプロセスで走らせる事かな
同期させるのは難しいかな
0658デフォルトの名無しさん
NGNG同期は確かに課題ではあるのですが、悩んでいる問題は別の所にあります。
実は、データをネットワーク経由で転送したいのです。
ここで、2つのファイルを同時に転送した場合、帯域が約二倍必要になってしまいます。
そして、そこにデータの遅延による同期の問題もあります。
なので、送信元で合成できないかなと。
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG公式にDLLがあるってどこかにかいてあったけど、どこが公式やら。
ゲームからMODを鳴らす方法、どこかに詳しく紹介した頁ないでしょうか。
0661デフォルトの名無しさん
NGNGやる気ないでしょ?
検索エンジンでキーワードを入れれば腐るほど出るものを探そうともしない
0662デフォルトの名無しさん
NGNGライセンスが妙だしゲームには不向きだよ。
0663デフォルトの名無しさん
NGNGデータ作ってくれる作曲者もほとんどいないだろうに。
0664デフォルトの名無しさん
NGNGありがとう。参考になりました。
>661
CDをプロテクトするMOD何とかの方がたくさん出てしまうのです
たしかに、今の時代MP3の方がいいですね。回線が速くなったから3
メガ4メガのゲームをDLするのも苦にならないし。
だからMOD紹介のサイトもつぎつぎ廃れてきてるのかな。
わかりました。MODは触らないでおきます。
0665デフォルトの名無しさん
NGNGこれって灰パスとかやら無いとだめ?
読み飛ばしたデータの平均値でやってみたけど変わらず
0666デフォルトの名無しさん
NGNGLPF ですね。 リサンプリング/2を70dB以上カットするようなフィルタが望ましいです。
平均値では十分なカットは出来ません。
0667665
NGNGネットで拾ったソース見ててどうしても分からない箇所があります
FFTで
a = (int)((log(ar[i]*ar[i]+ai[i]*ai[i])*5.0-30.0)*5.0);
バタフライ演算後に、ある周波数iからその周波数成分の強さaが求まるらしいのですが
このような計算の意図はなんでしょうか?
普通に実数と虚数の絶対値の和じゃダメなんですか?
0668デフォルトの名無しさん
NGNG0669665
NGNG0670665
NGNG0671デフォルトの名無しさん
NGNG0672666
NGNG正確には
log10( hypot(ar[i],ai[i]))*20-定数
です。 hypot(a,b)=√(a*a+b*b) ですから
log10( ar[i]^2+,ai[i]^2)*10-定数
となります。
実数と虚数の絶対値の和でダメな理由は、回転に独立でなくなる為です
0673665
NGNG2時間程考えてましたが下のような方法でやってるソースもあり何がなんやら
「回転に独立でなくなる」事で実際のサウンドの周波数解析に
どのような問題が出るんでしょうか?処理速度が惜しい場合は
これらの計算をはしょる事もアリですか?
// パワースペクトルを計算して代入
data[dwDataPos1].r = data[i].r * data[i].r+ data[i].i * data[i].i;
0674デフォルトの名無しさん
NGNGまあ意味くらいは分かるんだろ
0675デフォルトの名無しさん
NGNG単純に足し算になるのでしょうか?
0676デフォルトの名無しさん
NGNGオーバーフローせんようにね。
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG現在javaでサウンドプログラミングを初めてみようと思ってます。
そこで、色々資料をあさったところ、
http://www6.software.ibm.com/devtools/jp/news200101/art22.htm
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/sound/programmer_guide/contents.html
といったところを見つけました。
他にも資料があるのを知っていると言う方がいらっしゃいましたら、
ご教授頂けると幸いです。
ただ、私としては、
まず、wavファイルを切った貼ったする程度の編集ができるようなプログラムが目標です。
あと、実はwavファイルのフォーマットを調べてみたりもしたのですが、
googleなど使ってみても見つけられませんでした。
これに関して、知っていらっしゃる方がいらしたら、
お教え頂けると幸いです。
長々と駄文を綴ってしまい申し訳ありません。
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGwavの構造とか考え方ですごくわかり易く解説している本がありますよ
CQ出版社の
Visual Basicで物理がわかる
音波シミュレーション入門
定価2,625円(税込) ISBN4-7898-3699-1
です。
0683682
NGNGttp://www.cqpub.co.jp/hanbai/books/36991.htm
0685デフォルトの名無しさん
NGNGWin98では大丈夫なんですが、
Win2000だと作成したアプリケーションのウィンドウのフォーカスが
なくなると音切れしまくってしまいます…
どなたか解決法ご存知ありませんか?おねがいします。
ストリームへの書き込みは
CreateThreadで作成したスレッドから書き込んでいてスレッド優先度はhighestにしてます。
0686デフォルトの名無しさん
NGNGしるかボケ
0687デフォルトの名無しさん
NGNG本当に再生ポジションが移動しているかどうかチェックしる
0689小雪
NGNGサウンドフォーマットの
AFM_S8とAFM_U8ってどう考えても逆じゃございませんのオホホホホホホホホ
0690デフォルトの名無しさん
NGNGせん。プログラム言語もまったくの初心者です。これは釣っているわけではあり
ません。本気で作りたいと思っています。アドバイスお願いします。
0691デフォルトの名無しさん
NGNGまず仕様を詰める。話はそれからだ。
0692デフォルトの名無しさん
NGNGご自身でわかっているはずでしょう?
まずはプログラム言語を使えるようになって下さい。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG無理。いきなり高望みするのはやめよう。
つーか、専用スレ見ても思うが
MIDIシーケンサという題材には初心者を惹きつける何かがあるのか?
0695デフォルトの名無しさん
NGNG0696690
NGNGどのプログラム言語でつくれるのかわからないです・・
>>694>>695
音楽をやっている人間としては初心者ではないと思います。
>>691->>695
アドバイス ありがとうございました。まずはシーケンサを使いこなせるように
なりたいと思います。ご迷惑をおかけしました。・・・。
0697デフォルトの名無しさん
NGNGCかC++勉強汁
0698デフォルトの名無しさん
NGNGまずはMIDIシーケンサをいくつか作ってみなさい。
0699デフォルトの名無しさん
NGNGあなた自身は何が必要だと思うよ?
ここで的を得たものがいくつか挙げられれば作れる可能性があるし、
協力なりアドバイスをしてくれる人間がいるさ。
0700デフォルトの名無しさん
NGNGいきなり、というのは無理だと思うが望みを持つのはいいんじゃない?
それが何年後になるかは判らないけどすぐには無理だ、という認識があれば。
5年ほど前、プログラムや波の事も満足にしらない大学生と話ししたりメール交換なり
した事があったんだが、今ではSoundEngineなるツールを公開するにまでいたってる。
既に漏れを越され(略
0701デフォルトの名無しさん
NGNG的は射るものです。弓道のイメージで。
0702デフォルトの名無しさん
NGNG先を越されたか
>>699
得るのは当。
「当を得る」という
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNGフジのバカなアナウンサーも使っていたしな
0705デフォルトの名無しさん
NGNG0706696
NGNG今日 本を買ってきました がんばって勉強します
シーケンサ・・ XGを買ってきました・・。
がんばろ・・。
0707デフォルトの名無しさん
NGNGXGはMIDI規格であってシーケンサ名では断じてないわけで。
0708デフォルトの名無しさん
NGNG「MIDIシーケンサー誰か作れる?」
http://pc2.2ch.net/test/read.cgi/tech/1005053427/l50
↑もよかったら使って。私は応援する!
0709デフォルトの名無しさん
NGNGゆくゆくは音楽関係のプログラムを作ってみたいんですが、
やっぱりサウンドプログラミングつったらC,C++必須ですか?
他の言語で書かれたアプリの例があったら教えて君ですいません。
今はPythonで勉強中です。
0710デフォルトの名無しさん
NGNG別にどの言語かは関係ない。
ただ、手に入りやすい、参考になるソースなどが多いのがCやC++
というのはあるかもしれない。
0711709
NGNGあ、レス付いてる。ありがとうございます。
つうか、漠然とした質問ですいませんでした。
調べたら、Pythonにも音を扱うライブラリはあるんですね...。
がんばって勉強します。
0712名前は開発中のものです。
NGNG0713age
NGNG「サウンドプログラミング」の名の通り、波形関係の話題がメインなので躊躇しています。
「MIDI YOKE使え。」とのレスは勘弁して下さい。
0714デフォルトの名無しさん
NGNGMIDIシーケンサー誰か作れる?
http://pc2.2ch.net/test/read.cgi/tech/1005053427/l50
0715デフォルトの名無しさん
NGNGDDKスレも機能していないしなぁ
0716デフォルトの名無しさん
NGNG適切だと漏れも思うよ。
がんばってね > >>713
0717sage
NGNGありがとうございました。行ってきます。
>716
はい、がんばります。
0718デフォルトの名無しさん
NGNGこれで「コンピュータミュージック」と名乗ってよいものか。
0719デフォルトの名無しさん
NGNGメーカー物は閉じてるし。
0720デフォルトの名無しさん
NGNG左チャンネルと右チャンネルを足すだけというのを聞いたことがあるのですが、それだけで
いいのでしょうか?
Webを検索してみたんですが、該当するものが見つかりませんでした。
0721720
NGNG0722デフォルトの名無しさん
NGNG単純に加算したらオーバーフローしちゃいますよ。
要は平均をとるわけですから、足したチャンネルの数(この場合は2)で
割ってやらないと。
あとはwavファイルの仕様を調べれば、自ずと解決するはず。
0724山崎渉
NGNG0725デフォルトの名無しさん
NGNG0726名無し~3.EXE
NGNGモノラルに変換したあとに更に処理があるなら出力精度を上げておいた方がいいかも。
16bitの2chなら最低17bit(処理的には32bit化するのが無難でせう)の1ch、みたいに。
(5+6)/2 = 5.5 さあどっちに丸めよう、となるので。
0727デフォルトの名無しさん
NGNGグラフィック方面でも浮動小数のピクセルフォーマットが使われ始めてるし。
0729山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0730デフォルトの名無しさん
NGNGまあその方が楽だけどさ、
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG誤差でそうだけど、大丈夫なのか?
0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNG再量子化誤差の問題。ディザなしで切り詰めると再量子化誤差が信号と相関性
を持ってしまい耳障りなぐらにゅらーディストーションとして聴こえてしまう
ので、ディザを使う必要がある。ステレオ足してモノにする場合も、センター
ならまだいいが特定の音源が左右どっちかに片寄ってる場合は非常に信号レベル
の低いところで耳に付く恐れがないではない。
0735デフォルトの名無しさん
NGNGないの? ダンス系とかでローファイの雰囲気出すのに、切り詰めて盛大にグラ
ニュラーディストーションださせてなんてわざとやってると思われるCDとかあるし。
16bit+16bit->16bitじゃその手の音にはあまり効果なくて、逆に非常にSNの良い
生音源なんかでは、ごく微少レベルがちょちざらっとした感触になってしまうというnegative
な効果しかないと思う。
0736動画直リン
NGNG0737デフォルトの名無しさん
NGNGここではC,C++でやってる人が多いようですがJAVAの人はいますか?
最近JavaSoundの存在を知ったのですが、どうなんでしょう?
0738デフォルトの名無しさん
NGNG検索しても使い方書いてるサイトまだ見つかんないし
どっかにOGGを鳴らすC, C++のサンプルコードないかなぁ
0740デフォルトの名無しさん
NGNGほんとに、(16bit+16bit)/2 でそこまで聞こえる耳持ってるの? すごいなあ
0741デフォルトの名無しさん
NGNG誤差が積み重なって全体的に歪みが出てきたらそりゃ判るだろ。
0742デフォルトの名無しさん
NGNGたくさんいるけどな。
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGまあ、ノッチフィルタで音消してノイズだけ増幅すれば別だろうけど、
素で判る人は1万人に1人じゃないのかなあ
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGそのための波形表示と周波数表示。
0749山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG0752山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0753デフォルトの名無しさん
NGNG0754_
NGNG0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNGPHS-G.721
http://www.ttc.or.jp/
0757デフォルトの名無しさん
NGNGどこの分野を勉強すればいいのでしょうか.
0758山崎 渉
NGNG0759山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG日本語の詳しいコメント入ったソース公開してるサイト教えて下さい
一応検索していくつか見つけたけどこれはいい!というようなサイトないんですよねぇ
0764デフォルトの名無しさん
NGNGwaveのデータをバッファにコピーしている部分を、
OggVorbisのデコード処理に置き換えるだけですよよん
0765デフォルトの名無しさん
NGNGでもwaveのヘッダに書き込むlengthってwaveデータ生成が終るまでわからんのですけど、これって
まずデーター部だけを一時ファイルに書き出し→そのヘッダをつけて一時ファイルを読み込んでもういちファイルをつくる
しか方法ないんですかね、なんか遅そうで。
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNGガビソ、完全にその関数の存在忘れたよ、、、こんな初歩的なことを…
どうもサンクスです。
0768デフォルトの名無しさん
NGNGがんばれ〜、それが出来れば(ゲームの)サウンドドライバなんてへっちゃらだー
0769765
NGNGいまいちよーわからん…、今作ってるものがあれば楽につくれるのかな
0770デフォルトの名無しさん
NGNGttp://member.nifty.ne.jp/KENJI/freedos/index.htm
0771765
NGNGそういうのってハードとかわからんと絶対ムリなきが…
ていうかWindowsじゃ意味無くない?全部DirectXAPIで、、
だから768のレスがいまいちよくわからんかったり
0772デフォルトの名無しさん
NGNGWindowsのタスクシステムの切り替えの周期25ms(?)は絶対に超えられないのかとおもてたら
最大0.75msまでいけるそうで…
0773デフォルトの名無しさん
NGNG自分の頭の悪さに泣きたくなったw
0774デフォルトの名無しさん
NGNG笑ってるじゃん。
0775デフォルトの名無しさん
NGNG漏れがプログラム組むと3で返ってくる…。死にたい。
0776デフォルトの名無しさん
NGNGおいおい・・・もう少し仕様を読もう・・・
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGサイン波を発生する演算として良く使う演算
y2:=y2 -y1*b
y1:=y1 +y2*b
この演算は 3角公式
cos(w/2+n*w)=cos(w/2)*cos(n*w) -sin(w/2)*sin(n*w)
sin(w +n*w)=sin(n*w)+2sin(w/2)*cos(w/2+n*w)
より導かれる
結果 b=2*sin(w/2)
初期値 y1=0ならy2=cos(-w/2)
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGそりゃ、掛算命令の速さ次第でしょう。
もっとも、
半端な周波数を出したいとか、周波数をスムーズに変更したい場合は掛け算遅くても>>778
0781デフォルトの名無しさん
NGNGs=sin(w)
c=cos(w)
wk:= c*y2 - s*y1
y1:= c*y1 - s*y2
w2:=wk
の方を良く使う。 y1,y2の位相差が常に90度だから色々使えるから。
それから発振を安定にする為に、最小ビットの1/2程度の部妙な加算を入れるのがコツ
y2:=y2 -y1*b +y2/2^16 のようにね。
で、オーバフローを監視しておけば安定に発振を続けてくれる。
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG2、f0はいくら?
3、f0は動作中に可変?
4、浮動小数点?固定小数点?
0784782
NGNG2、f0ってカットオフ周波数ですか?16kHzあたりです。実際に聞いて後で調整します。
3,可変しません。
4,どっちでも可です。
一応、原理はこれを見て分かりました。
ttp://www.heg.co.jp/know/dsp/dsp1-3.htm
0785デフォルトの名無しさん
NGNG1, -0.00244519
2, 0.00164698 そうするとIIRフィルタではなく FIRフィルタの分野ですね。
3, 0.00294595
4, -0.00831451 15KHz -6dB
5, 0.00675733 16KHz -16dB
6, 0.00600769 17KHz -40dB
7, -0.02119682
8, 0.01954429 こんな感じでどうですか?
9, 0.00958664
10, -0.04821507
11, 0.05290816
12, 0.01248738
13, -0.13903491
14, 0.26618036
15, 0.68015925
16, 0.26618036
17, -0.13903491
18, 0.01248738
19, 0.05290816
20, -0.04821507
21, 0.00958664
22, 0.01954429
23, -0.02119682
24, 0.00600769
25, 0.00675733
26, -0.00831451
27, 0.00294595
28, 0.00164698
29, -0.00244519
30, 0.00100345
0787デフォルトの名無しさん
NGNG配列 c[31] dly[64];
c[0]=0.00100345;
c[1]=-0.00244519;
・・・
static int dlyp=0;
double in , out;
dly[dlyp]=in;
dly[dlyp+32]=in;
out=0; for(i=0;i<31;i++) out += c[i]*dly[dlyp+32-i] ;
dlyp= (dlyp+1) & 31;
でも、単に高音を消したいなら2次 IIRフィルタが少し軽いですね
これも例が必要ですか?
0789デフォルトの名無しさん
NGNG面白いのですけどね。
といってもパソコンレベルじゃないと動的に係数調整は難しいけど
あと、FIRフィルタは位相がフラットなんで、2つのフィルタの合成が容易というのもメリットだし
自分の所では周波数特性をグラフ上でマウスでグリグリと調整出来るようにしたりしていますよ。
IIRフィルタの例が必要なら言って下さい。
軽いけど、動的(実行中に)変更が難しいタイプと、
重いけど、w,Qが独立で変更が容易なタイプ(ハシゴ型構成)があります。
0790782
NGNGだとしたらこれも断念します。
で、>>150のHPFの周波数をもっと高くして、源信号から引けばいいかなと思ってやったら、
それらしい音になったんですがダメですか?
下の式でも全く同じ結果になってると思いますがいかかでしょう。
out += (in - out) / 1.25;
0791デフォルトの名無しさん
NGNGでも、その係数では高域は
16KHzで-3dB 一番高い場所でも-4dB程度しか落ちていません。
高域では さらに(1+Z)/2を掛け算して (1-b)*(1+Z)/2(1-bZ) とするのが普通です。
というか、適当な減衰が必要なら (1+Z)/2だけで十分です
つまり
out=(in+old)/2
old = in
です。
これで16Kで -7.6dB 18KHzで-11dB落ちます
ところで、この周波数で差が聞けるというのは凄いですね。
0792デフォルトの名無しさん
NGNGout+=k*(in+old -2*out)
old = in
k = (1-b)/2
k = (1 -0.37)/2= 0.685 で 16KHz -3dB です。
>>790 より少しだけ重いですが、特性は 16KHzより下で減衰が減り 高い所でよく減衰してくれます。
0793782
NGNG16kHzと言うのは想像の数値です。あと>>790の1.25も色々試したうちの一例です(波形表示ソフトで確認しています)。
で、>>791、>>792の方法を試しましたが、減衰して欲しくない音まで減衰してしまい、うまくありませんでした。
後からLPFで処理しようと言うのがそもそも良くなかったみたいです。
それで、エミュレーションの内部に>>791の方法を入れて一応解決しました。
また、>>792は簡単な式なのに矩形波にリンギングみたいなのが発生して(本格的で)ビックリです。
この式は別の所で使わせていただきます。
ありがとうございました。
一点おかしな点
k = (1 -0.37)/2= 0.685 ←計算が合いません。
1 -0.37 =0.63
0.63/2 = 0.315?
0794デフォルトの名無しさん
NGNGガンバってるのですね。
後半の話、
ごめんなさい。
(1 - (-0.37))/2
です。
サンプリング周波数/4 の時に k=0.5 となり、 IIRである>>792の式は
out+=k*(in+old -2*out) -> out = out+(in+old -2*out)/2 = (in+out)/2
で >>791のFIRフィルタとなります。
0795デフォルトの名無しさん
NGNGb と カットオフ周波数f0との関係は
w=2*PI*f0/サンプル周波数
r=tan(w/2)
b=(1-r)/(1+r)
です。 この式は 双1次変換 でアナログ1次フィルタとマッピングしたもので
高域では少しアナログと比べて性能がキツメですね。
0796782
NGNG>(1 - (-0.37))/2
分かりました。
矩形波は単純に一定間隔で、例えば音量100なら、
0→100→0→100
の様に書き込むだけです。
>>795のような式になると私には理解できましぇん。
最後に、out+=k*(in+old -2*out)は
kを調整してもっと低い周波数で使ってもいいんでしょうか?
0797デフォルトの名無しさん
NGNG矩形波は・・・・それでは割り切れない周波数でザラツキが出るでしょう?
オーバサンプリングからダウンサンプリングするとか
>>114 >>119 の合成方式とか
後半、
kを小さくして低い周波数に使っても大丈夫ですが、
fs/100程度迄にしておいた方が良いです。
中域〜高域用の連続可変可能な1次フィルタとして活躍します。
その式を使う為の kは上に書いた式より
k=(1-b)/2 = ( 1- (1-r)/(1+r))/2=r/(1+r)
r=tan(π*f0/サンプル周波数)
どうしてこれを低い周波数に使わないかというと、低い周波数になると
分母に比べて(1+Z)の分子は殆ど効かない(分母で十分に落としてしまっている)
という事で >> 790の
out += w*(in-out) (f0 が十分小さいなら w=2πf0/サンプル周波数)
で十分
ただし、 outには in のビット幅 - log2(w)が必要です 浮動小数点ならあまり注意しなくて大丈夫ですが
固定小数点だとちょっとした工夫が必要。
0798デフォルトの名無しさん
NGNGデジタル信号上では fs(サンプリング周波数)
fs/4〜fs/2 の 周波数のどんな繰り返し波もサイン波と同じものが出なければいけません
元が矩形波でも、その矩形波そのままをサンプリングしてくると折り返し雑音が発生します。
ただ、元が完全な同周期の矩形波であれば、折り返してもそれはその周期の倍音なので
雑音的に聞こえない事になりますが、
実際には、その周期の矩形波をfs/2以上をちゃんとカットしてサンプリングした音とはずいぶん
違った信号になります。
だから >>793のように
>1部の音の波形の立ち上がりが良すぎて耳につく
という事になります。
そういう意味で、矩形波を合成するのは、サイン波より数倍難しいのです。
0799デフォルトの名無しさん
NGNGサウンドカードってあるのでしょうか?
0800782
NGNG矩形波の濁る問題は既に処理済みです。実際は波形の立ち上がり、下がりの時ひと工夫しています。
out+=k*(in+old -2*out)の式の説明、ありがとうございました。
その後調べたんですが5khz前後で使用する予定。
このたびは、色々勉強になりました、ありがとうございました。
0801デフォルトの名無しさん
NGNGミキサーのPanはどのように実装すべきでしょうか?
右に振ったときは、左の音量を引くだけですか?
そうするとLRをあわせたときの音量が、
Panがセンターにあるときより減ってしまう気がします。
かといって左の音量を引いた分を、右に足すと、
右に振り切った場合は、右が2倍の音量になってしまいクリップしまくります。
そもそも音量の考え方がわかってない気がしますが、
どうやって実現するものなのでしょうか?
0802デフォルトの名無しさん
NGNG用途によって色々あるとは思いますが、
オーディオ機器のバランスは主にMN型と言うボリュームが使われていて、中央で左右共に100%,
左に回すと左はそのままで右だけが減少し、右に回した時はその逆です。
左: ̄\
右:/ ̄
0804デフォルトの名無しさん
NGNGそのままだと聴感上よくないので左右に振るとやや小さくなる
ようになってるDAWってなかったっけ? CUBASEかな。
0805デフォルトの名無しさん
NGNGObjective-C+Cocoaでちょっとゲームっぽいの作った事がある
程度のスキルじゃサンプルコードすら把握できない。。
Apple、もっと日本語ドキュメント整備して欲しいなぁ……。
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNGApple版VST/VSTi
傘下EmagicのLogicが採用
OSサービスなので対応がラク。
AU対応ソフトはフリー・シェア界隈でも意外と多い
OS X/Xcodeで開発可能
プラグイン開発側にしてみれば日本語ドキュメントが致命的に少ない
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG手を出してる香具師が少ないみたいだな。
AUプログラミング入門なんて本でも書いたら売れそうだ。
0811デフォルトの名無しさん
NGNG出版不況ですか・・・
0812デフォルトの名無しさん
NGNGDTMユーザの絶対数が少ないからな。
ただでさえ少ないからwin市場=vst/vstiを狙っちまう。
ドキュメントの整備や定番本の出版なんかされて、
AUのシンプルなソフトシンセのサンプルソースとか出してくれる
先駆者がいれば乗り出す人も増えるだろうけど、フリーも増えて
にわかが金取るのは難しくなるだろうねぇ。
Xcode付属のサンプルとか説明翻訳するのも偉い手間。
少なくともDSP初心者には手が出せない臭い
0813デフォルトの名無しさん
NGNGフランジャーを作ってるんですが、周期的にノイズが乗ってしまいます。
バッファー周りをどういう仕様にしたらいいのか教えてくださいm(__)m
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNGいや、ディレイ自体は問題なく動作してます。
上に書いた20〜30msは10〜30msの間違いですた。コーラスにも使えるようにと。
LFOもトレモロやフィルターで動作確認済みで、その要領でディレイタイムに作用させてます。
それでそのLFOの周期に合わせてノイズが乗ってしまっているようで…。
>>816
まだオーバーサンプリングの仕方がわかってません。勉強してきます…
自分なりに調べていて「interpolation」というものが出てきたんですが、これは関係ありますか?
0818デフォルトの名無しさん
NGNGディレイの補間のアルゴリズムが悪いんじゃないの?
どうやってるの?
0819デフォルトの名無しさん
NGNGi = 0;
float x = in;
Buffer[ i ] = x;
j = i - (DelayTime * samplerate);
if (j < 0)
j = samplerate + j;
float y = Buffer[ j ];
Buffer[ i ] += y * Feedback;
i++;
out = x * (1.0f - wet) + y * wet;
いま手元にソースが無いんですが、こんな具合です。
実はまだディレイ覚えたてで、作りが簡素杉ですか?
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGまだどこが悪かったか見直ししてないんですけど
おそらくスケーリングか何かのイージーミスかと…_| ̄|○
お騒がせしてスミマセンでした!
0822デフォルトの名無しさん
NGNGたぶん サンプルレート/8〜サンプルレート/2の高い周波数成分が入っていると、
それじゃノイズが出ると思うよ。
0823デフォルトの名無しさん
NGNGこれはLPFで対処するのでしょうか?
0824デフォルトの名無しさん
NGNGそれがわかれば高い周波数でもノイズを出さない方法も判ると思うよ。
それが判らないなら ディレイの入力にLPFを入れるしかないね。
0825デフォルトの名無しさん
NGNGとりあえず自分で書いてたinterpolationを見様見真似で載せてみたところ
幾分モジュレーションが滑らかになったような気がするけど、コーラスはまだノイズが気になります
0826デフォルトの名無しさん
NGNG簡単な補間だと、中間位置は (D[i] + D[i+1] )/2 で ピッタシの位置では D[i] になってしまう。
これでは、 中間位置は (1+Z)/2 そうでない時には Z となって高域はハイカットされたりされなかったりで
グチャグチャになる。
中間位置でも ピッタシの位置でも出来るだけ同じ特性でなければいけない。
0827デフォルトの名無しさん
NGNG無音の検知をしたいのですが
良い方法ないでしょうか?
周波数求めて人間の声を判断するのが最適でしょうか?
0828デフォルトの名無しさん
NGNG(つまり1チャンネルにして)出力したいんですが、
アルゴリズムとか紹介されてるサイトはないでしょうか?
当方では、多チャンネルを想定していますが、
たぶんステレオをモノラルに変換するのと同じ
方法だと思うけど。。。よう分からん。。。
0829828
NGNGステレオ→モノラル変換の話がありましたね。
ということは、16ビットオーディオで4chを合成
出力する場合、各サンプリングをワード単位で
加算して4で割って平均を取ればいいってこと?
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG上限下限の限界を超えないように
必要であれば適当に割ればいいのですね。
0833デフォルトの名無しさん
NGNG検索しても0件です。
0834デフォルトの名無しさん
NGNGsaturation
足し合わせたとき上限を超えたら上限の値でクリッピングすること、
いや、合ってるのかな…
0835デフォルトの名無しさん
NGNGそれのことですか。ヨンクス。
サチるってクリップすることだったのか。
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNGmusicdspの"Class for waveguide/delay effects"のコードを少し書き換えて使ってみました。
まだ十分なチェックはしてないけど、高域のノイズは消えたようです。
あとはオーバーサンプリングを勉強して実装してみます。他に「コレやっとけ」ってのがあったら教えてください。
帰りに買ってきた本にコムフィルターも載っていたので、これもそのうちに。
0838デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/dtm/1030621741/
0839デフォルトの名無しさん
NGNG無音検出は、簡単には音量がシキイ値以下かどうかでやるけど
自動なんて事を考えると、やればやるほど難しいね。
0840デフォルトの名無しさん
NGNGある一定時間以上、レベルが閾値以下みたいな感じでやらないと
0クロスするたびに無音検出してしまうよ。
ピークホールドとリリースを組み合わせて音量に見立てるとかもイイと思う。
0841デフォルトの名無しさん
NGNG教えてください。やりたい事はバイナリで直に書いてピアノでドの音を
5秒鳴らすとかです。
0842デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=標準MIDIファイル
http://www.google.co.jp/search?q=SMF(Standard%20MIDI%20File)
0843デフォルトの名無しさん
NGNGお答えありがとうございました。
0844デフォルトの名無しさん
NGNGhttp://www.omnibase.net/smf/
http://www.pluto.dti.ne.jp/~daiki/Midi/Midi.html
結果報告してね
0845デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4845603489/
と
http://www.amazon.co.jp/exec/obidos/ASIN/4845602679/
どっちがお勧めですか?
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG>>813からの話題がよくわかりません。
求める値がサンプルとサンプルの間にある場合に、
二つの点を直線で結んで考えると誤った値が出てしまう
ということだと思うのですが、
>>822のサンプリングレート/8という周波数は何から考えると出てくるのでしょうか?
それと、これは、オーバーサンプリングかローパスフィルタを通さないと
解決できないものですか?
他に有効な回避方法があれば、どなたか提示していただけないでしょうか。
0848デフォルトの名無しさん
NGNG【電気・電子】 - 【信号処理】音楽コピー防止技術Darknoise議論スレ
http://science2.2ch.net/test/read.cgi/denki/1076001429/
-----
「スピーカーから録音」も取り締まる音楽コピー防止技術Darknoise
Darknoiseの技術は、スピーカーの前でテープレコーダーを抱えるような
古典的な手法であっても、CDコピーを防止することができるという。
既存のコピー防止技術は、CDに含まれる音楽ファイルをコンピュータなどで
見えなくしたり読み込み不能にするが、Darknoiseの技術は楽曲の音に
修正を加える。楽曲がコピーされたものである場合、Darknoiseによって
追加された不可聴音が可聴音となり、音楽として聴くことができなくなる。
Darknoiseの技術は、CDからMP3へのリッピング、ラジオからの音楽録音
など、音楽ファイルのコピー方法に関係なく機能する。Darknoise音楽技術が
採用されていれば、これらはすべて使えないコピーになるという。
ソース
ttp://www.itmedia.co.jp/lifestyle/articles/0402/05/news021.html
技術解説
ttp://www.darknoisetechnologies.com/technology.htm
0849デフォルトの名無しさん
NGNGコピー防止技術は最早、気違いの域に達してますな。
0850デフォルトの名無しさん
NGNG今のTTSだと声に表情がつけられないし。
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNGサンプルサイズを16bit<->8bit
サンプルレートを22kHz<->44kHz
というように相互に変換できるプログラムを自作しています。
webでいろいろ調べているのですが、変換の仕方(理論)が見つからず
四苦八苦しています。
何かよさげなサンプル・情報ないですか。
0853デフォルトの名無しさん
NGNG22kHz<->44kHzは単純に2倍、1/2倍して補間するだけ
0854852
NGNG> 16bit<->8bitは係数を掛けて足し算引き算で調整するだけ
う〜ん、これじゃちょっと分からないです。
具体的にはどんな感じになるのでしょうか。
0855デフォルトの名無しさん
NGNG超単純に 256を掛ける<->256で割る じゃだめなの?
0856デフォルトの名無しさん
NGNG16bit<->8bitは
下位bit切り捨てになるんじゃないかな?
音質にこだわるならディザとか掛けてみるのもいいかと。
0857デフォルトの名無しさん
NGNG8bitは-128-127
じゃなかったっけ?
0858デフォルトの名無しさん
NGNG16bit -32768〜0〜32767
8bit 0〜128〜255
0859858
NGNG0860852
NGNG16bit<->8bitの変換処理がやっぱりうまくできません。
基本的にデータをshort型で扱っているのですがそれがまずいのでしょうか?
0861852
NGNGレスしてくれた方、サンクスです。
0862デフォルトの名無しさん
NGNG1、(1+Z)/2 と Z の周波数特性差がどこらへんまで気になるかで 1/8まで気になるという事じゃないかな
2、オーバーサンプリングもローパスフィルタを通す事も、表現が違うだけで処理は同じ
他の方法は
1、良い補間関数を作る事
2、気にしない・気にならないようにする事
0863デフォルトの名無しさん
NGNGレスありがとうございます。
いろいろ実際にやってみないとわからなそうですね。
0864デフォルトの名無しさん
NGNG一旦、16bitに変換してから掛け算、割り算をするのは大げさな感じですが、単にビットシフトさせるのでしょうか?
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG普通に掛け算、割り算すればいいんでない?
0867デフォルトの名無しさん
NGNG16bitに変換してからというか、普通はパソコンなら32bit整数で計算するでしょう。
フェードインなら
out= 128+(((in-128)*gain +128)>>16);
gain=min( gain +32 , 0x10000) ;
0868デフォルトの名無しさん
NGNG実は、マイコンで音をだそうと思っているので、8bitのままで処理できれば良いのです。
0869デフォルトの名無しさん
NGNGどうせノイズ多いんだから、クリッピングしていったらどう?
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNG漏れが書くから十年待て。
0873デフォルトの名無しさん
NGNGttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/sound/programmer_guide/contents.html
これを読むのがいいような気がしてみる。
0874デフォルトの名無しさん
NGNGhttp://smaf.yamaha.co.jpもなくなってるし
0875デフォルトの名無しさん
NGNGここかい?
http://smaf-yamaha.com/jp/
0876デフォルトの名無しさん
NGNGうん。そこに移行したのは
わかったんだけど、smaf仕様書の
詳細が見れなくなっているみたいなんだ。
もしくは探しきれてないだけなのかな?
0877デフォルトの名無しさん
NGNGpdfないねぃ。
問い合わせすれば公開してくれるかな・・・
0878デフォルトの名無しさん
NGNGさっき、お願いメール?をサポート窓口?にだしました。
さて、どうなることやら?
曰く「個別回答はしない。頂いた内容はFAQを充実させる参考にする。」(意訳)
YAMAHAさんお願い!
公開して!!
0879デフォルトの名無しさん
NGNGhttp://www.cbook24.com/bm_detail.asp?sku=4798007609
ページ数の割に項目が多いし、秀和なのが気になるな。
0880デフォルトの名無しさん
NGNG>対象読者: 初級者
だそうだ。
0881デフォルトの名無しさん
NGNG目次を見る限り概論書っぽいね。
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG0885878
NGNG悔しいので、そこらに置いてある
ファイルを元に解析して公開してくれるわ。>誰かが
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG是非、思い出して欲しい。
ここ数週間探し続けているが
見当たらないのです。
0888デフォルトの名無しさん
NGNGここはどうなんだ?
ttp://tech.millto.net/~pngnews/kndh/Page/jmmf.htm
0889デフォルトの名無しさん
NGNGソースコードはどこに行けば手に入るでしょう。
以前はオフィシャルサイトにダウンロードできるところあったと
おもうのですが、言ってみたらサイトが無くなってた?っぽいのです。
ご存知の方いたら教えてください。
0890デフォルトの名無しさん
NGNGあるけど???
0891889
NGNG助かりました。ありがとうございます。
0892デフォルトの名無しさん
NGNG結構参考にしていたんだけど、もうない?
0894デフォルトの名無しさん
NGNGwaveファイルの中で、たとえば音声だけを重点的に
拾い出したい場合など、どのようにするんでしょうか?
たぶんイコライザの応用みたいな感じで、特定の
周波数範囲だけを抜き出すみたいな。。。
結構、難し気ですか?
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGオレンジジュースからオレンジを取り出すのは不可能
0898デフォルトの名無しさん
NGNG0899858
NGNGそれを言うならミックスジュースだろ。
0900デフォルトの名無しさん
NGNG0901899
NGNG0902デフォルトの名無しさん
NGNGソースがステレオなら、LchとRchを足したり引いたりである程度は可能だけど。
0903デフォルトの名無しさん
NGNG0904904
NGNG出来たのですがMS ADPCMでつまずいてます。
MS ADPCMのデータ構造やデコード(データ部を元に戻したいんです)についての
資料ってないものでしょうか?
開発環境は Win2K/C++(MFC) です。
0905デフォルトの名無しさん
NGNGMSDNのacmあたりを調べろ
0907デフォルトの名無しさん
NGNGわかる範囲での解析するソフト作って見た。
UNKNOWNと沢山出るのが悩ましい。
http://fukuoka.cool.ne.jp/dream_theater/ciao/smafanarize.html
0908デフォルトの名無しさん
NGNG読めんよー。EUC-JPで合ってる?
0909デフォルトの名無しさん
NGNGWebページはUTF-8で書いて見た。
あ!HTMLタグのEUC-JP削除するの忘れてた。
0910デフォルトの名無しさん
NGNGDeviceIoControl関数を用いる方法以外に考えられますでしょうか。
考えられる場合、具体的な方法を教えていただきたいと思います。
よろしくお願いいたします。
0911デフォルトの名無しさん
NGNGあたりが定番
0912910
NGNGありがとうございます
調べてみます
0913デフォルトの名無しさん
NGNGシナファイage
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGmp3は糞
midは最悪
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG09221000
NGNG0923デフォルトの名無しさん
NGNGノシ
0924デフォルトの名無しさん
NGNGおめーら、もうすぐBSでブーレーズ見れるぞ(バルトーク)
レポン大好きだろ?おめーら
0925デフォルトの名無しさん
NGNG(^^)ノシ
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNGpass付きの論文ならワラワラ引っかかるんですが・・
0928デフォルトの名無しさん
NGNG音が出なくて困ってる。
bufferSwitchTimeInfo コールバック関数の中でbufferInfos[出力ちゃんねる].buffers[index]に
何か書けばノイズくらいは出るだろうと思ってたら、何も出ない。
ためしに入力をファイルに書き出してみたらこっちは問題なし。
他はおおむねhostsample.cppと同じなんだけど、何が問題なのかサパーリわからん。
0929デフォルトの名無しさん
NGNG{
case ASIOSTInt??LSB を処理した?
0930デフォルトの名無しさん
NGNGtypeが同じなのを確認してから入力を出力にmemcpyしたり
バッファサイズx(サンプルのバイト数)を乱数で埋めたりしてみた。
サンプルのバイト数はそういうswitchで判定してるけど、デバッガで見た感じ問題なさげ。
asioMessageコールバックが一度も呼ばれないのは問題ないのかな?
しかしSDKのサンプルが「無音を20秒鳴らす」だけって、ひどいよな…。
loading ASIO Driver : ASIO DIGI96 Serie
ASIOImplVer=2 DriverVer=1 name=digi96
ASIOOutputReady() supported
Channels: inputs=8 outputs=8
input0 In,Active,group=0,channel=0,type=ASIOSTInt16LSB,name='1 D96 PST (1)'
input1 In,Active,group=0,channel=1,type=ASIOSTInt16LSB,name='2 D96 PST (1)'
(snip)
output0 Out,Active,group=0,channel=0,type=ASIOSTInt16LSB,name='1 D96 PST (1)'
output1 Out,Active,group=0,channel=1,type=ASIOSTInt16LSB,name='2 D96 PST (1)'
(snip)
ASIOGetBufferSize (min: 2048, max: 2048, preferred: 2048, granularity: 0);
ASIOGetSampleRate (sampleRate: 44100.000000);
ASIOGetLatencies (input: 2048, output: 2048);
ASIO Driver started succefully.
39857092 ms / 39857092 ms / 172032 samples / TC: 00:00:00:00000
0931デフォルトの名無しさん
NGNGオレも翻訳ソフト駆使して全コメントを意味不明な日本語にしてガンガッたよ(w
動作は完全にhostsample。mainの入り弧
if (ASIOStart() == ASE_OK) {
・・・
}
に入ったら現状維持で抜けて(!)、再生終了したら用意した終了関数でその後処理の続きをしてる(汗
ch設定とかその辺カニ・・?
0932デフォルトの名無しさん
NGNGkAsioEngineVersion
kAsioSupportsTimeInfo
と来た。
0933デフォルトの名無しさん
NGNGオイラの場合
long init_asio_static_data (DriverInfo *asioDriverInfo, int rate)
内で
if (asioDriverInfo->sampleRate <= 0.0 || asioDriverInfo->sampleRate > 96000.0)
{
// Driver does not store it's internal sample rate, so set it to a know one.
・・
}
この直後に以下を追加してた
else {
if (ASIOCanSampleRate(rate) == ASE_OK) {
if(ASIOSetSampleRate(rate) == ASE_OK) {
if (ASIOGetSampleRate(&asioDriverInfo->sampleRate) == ASE_OK) {
//_RPT1(_CRT_WARN,"ASIOGetSampleRate (sampleRate: %f);\n", asioDriverInfo->sampleRate);
}
else
return -6;
}
else
return -5;
}
else
return -5;
}
そのままコピペ。理由は忘れた。多分関係無いな・・
0934928
NGNGあれってソース公開してたから見てみるよ…
0935デフォルトの名無しさん
NGNG解読してもらいませんか?
さっぱり、何が書いてあるのかわからなくて、困っています。
ソース↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=101
どなたか、お願いします。
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGhttp://klablog.okiraku-pc.net/logs/current-bbs/161/xqqrlz.html
これ読んで出直して来い。
0938デフォルトの名無しさん
NGNGどうやれば作れるんでしょうか?
0939デフォルトの名無しさん
NGNG計算で求めるのはそれなりにホネが折れる
0940デフォルトの名無しさん
NGNGttp://www.vector.co.jp/soft/win95/prog/se334955.html
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNG0943899
NGNGだから(再現性がないから)クソって言ってるんじゃないの?
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG楽器メーカーは楽器ごとの個性を生かせる規格を主張し、
PCメーカーは同じコマンドを送ればどの楽器でも同じ音が出るべきだと主張した。
音源をPCの周辺機器と見るか、PCを楽器のコントロール装置と見るかの
立場の違いだ。
0947デフォルトの名無しさん
NGNGよって、通信速度が遅いからクソって言ってるんじゃないの?
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG通信速度が上がるなら、多少データを冗長なものにして編集しやすくして欲しいな。
1命令4バイトの倍数単位とかで。
レコポかなんかの形式がそうじゃなかったかっけか。
そして次スレは>970くらいでいいのかな?
0954デフォルトの名無しさん
NGNG>>949で言っているのは恐らく君のことだ。
MIDIのプロトコルとSMFフォーマットをごっちゃにしてる匂いがするぞ。
シーケンス的には、発音:消音とコマンドを分けるのではなく
発音+ゲートタイムとした方が編集しやすいと常々思っているのだが
プログラムの問題だしどうでもいいな。
0955デフォルトの名無しさん
NGNGいや、950を越えてるから、もうそろそろ建てないと このまま落ちてしまうよ。
俺は建てられない。
0956デフォルトの名無しさん
NGNGサウンドプログラミング2
http://pc5.2ch.net/test/read.cgi/tech/1091054082/
0957デフォルトの名無しさん
NGNG(゚д゚)ウマー
もう、DSPっていったらFFTの今の時代
FIRに走ってる俺は・・・orz
0958デフォルトの名無しさん
NGNGもともとMIDIは電子楽器同士の制御用の規格だし。
(ちなみに初めてMIDI端子を搭載したシンセはあのYAMAHA DX7)
シンセで弾いた演奏を他のシンセの音で鳴らしたりとかするためのものだから、
ノートオン・ノートオフそれぞれ別に送らないと困る。
鍵盤を押し下げた時点では音長などわからん。
0959958
NGNGまあそういうことだ。
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG俺はいまだにIIRが主だよ
0962デフォルトの名無しさん
NGNGモマエはMIDIを常に一人分の演奏データしか転送しないものと思っているのか?
0963デフォルトの名無しさん
NGNGもともとは1人の演奏用に作られたんだと思うよ。その命令体系からしてさ
0964デフォルトの名無しさん
NGNGどこをどう見たらそう思えるのか理解できない。
0965デフォルトの名無しさん
NGNG16chフルに使ってる楽曲とか、もたついてるのが聞いた耳で解るよ。
>960
ここはプログラム板だし、人間の演奏速度は議論対象外じゃね?
0966デフォルトの名無しさん
NGNGそうか? 誰が誰に送ろうとしてるかの情報が欠落してるように思ったのだが?
送信元が複数だと ランニングステータスで連続送信してる時に割り込めないしな
0967954
NGNGいや、それは分かってるんだが...
だから953がMIDIのプロトコルとSMFフォーマットをごっちゃにしてると書いたのであって。
俺が後段で言及してるのはデータフォーマットのことね。
「レコポかなんかの形式」ってのもデータフォーマットの話だべ。
0968953
NGNGノート、バンクチェンジ、コントロールチェンジなんかもMIDI規格内だべ。
デルタタイムの処理ももちろん面倒だが、
これらのメッセージも2バイトだったり省略したりで処理しにくい。
0969デフォルトの名無しさん
NGNGきちんとチャンネルを設定出来るようになっているだろう。
そもそも割り込めないも何も、時系列で必要なタイミングを処理するのに、
他のデータを送信中に突然割り込む必要性など無い。
0970デフォルトの名無しさん
NGNG> 16chフルに使ってる楽曲とか、もたついてるのが聞いた耳で解るよ。
単に音源の処理速度が遅いというケースも多々。
ローランドとかローランドとかローランドとか。
0971970
NGNG0972デフォルトの名無しさん
NGNGいいか、>>962の論理を分析しよう
・「常に一人分の演奏データしか転送しないものと思っているのか?」 疑問形だが、これは
・「常に一人分の演奏データしか転送しないものではない。」 となる。さらに反転すれば
・「マレには2人以上の演奏データを転送する場合がある」 と同義になる
つまり、1人が他のデータを送信中に2人目が突然割り込める必要があるんだ!
まず、MIDIは1対1タレ流し通信なので 2人の演奏データを物理的にマージは出来ない。
もちろん、コントローラが、2つの信号をマージして出せばそれは可能だが、
どちらが演奏しようとした情報かはこの時点で失われる。
そして、ノートON/OFFの制御についてはこのコントローラが負わなければいけない。
結論として 「マレには2人分の演奏データを転送する場合がある」なら
それはMIDIの外側で実現せねばならず、容易な事ではないということだ。
0973デフォルトの名無しさん
NGNG異議アリ!
そもそも2人分のデータを1台のMIDI機器で演奏する場合がある。。。
たとえば、MIDIキーボードで連弾する場合もあり得るだろう。
このばあい、"突然"割り込む必要はない!
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNGフォームに適当に入力して送られてきたメールのアドレスにアクセスしても
アクセス権がありませんと怒られます。
ダウソまでの手順がわかる方いませんか?
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980初学者
NGNGどちらがサウンドプログラミングしやすいでしょうか?
ドキュメントの面も含めて・・・
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGC++VSTSDKが正解
0983デフォルトの名無しさん
NGNGFM音源とかのエミュレートなら、低レベルオーディオAPIで十分だよ。
楽なのはDelphiで¥・
0984初学者
NGNGJAVAを少し囓っていて
いまは必要に迫られてC#をはじめたところです。
C#ってBeep鳴らすのも面倒だと判ってこのような質問をしました。
>>983
FFT解析などをしたいと思っています。
DelphiってWin32APIを呼び出すのでしょうか?
それともDelphi独自のサウンドオブジェクトが用意されているのでしょうか?
¥・ ってなんでしょう?
0985デフォルトの名無しさん
NGNG確かに今のパソコンならJAVA/C#でもFFTかけるだけならリアルタイムに処理させるのは可能だけど
重いんじゃないかなあ
低レベルAPIってのはWin32APIの事だけど
自分はDelphiで低レベルAPIをラップして貼り付けてイベントに書くだけで
リアルタイム処理が出来るようにしてるよ。
たぶん探せばフリーのもあるんじゃないの?
レス数が950を超えています。1000を超えると書き込みができなくなります。