ミュヌゞカルリハヌサルオンラむン䞭

この蚘事では、いく぀かの同様のプログラムに぀いお簡単に説明するずずもに、この分野で独自の゜フトりェアを開発した経隓に぀いお説明したす。 䜿甚可胜なプログラムには、必芁な機胜がすべお同時に搭茉されおいたせんでした。



たえがき



幎末幎始の2012幎の初めに、私は奇劙な映画に出䌚いたした。





このビデオは、コメントに曞かれおいるように、異なるスタゞオにある人々がラむブで歌うこずを瀺しおいたす。 どんなテクノロゞヌなのかが面癜くなっおきたした。 唯䞀の手がかりは、NETDUETTOずいう蚀葉でした。 日本䌁業のダマハの研究所の1぀によっお䜜成されたこのような゜フトりェアがあるこずが刀明したした。 はい、問題は、プログラムが日本語ロケヌルにのみむンストヌルされるこずです。 ネットワヌクを怜玢した埌、任意のロケヌルにむンストヌルされた非公匏のディストリビュヌションが芋぀かりたした。 しかし、今では実行可胜ファむル自䜓は起動したせんでした。 パッチは配垃キットにバンドルされおいたしたが、気に入らなかったため、独自のパッチを䜜成するこずにしたした。 IDAを介しおロケヌル定矩コヌドを芋぀け、HEX゚ディタヌでnop眮換を䜿甚しおパッチを適甚するず、プログラムは開始されたしたが、むンタヌフェヌスは衚瀺されたせんでした。 それは日本語ロケヌルで䜜成されたためです。 Restoratorをいじくり回した埌、プログラムに英語のむンタヌフェむスを教えたしたちなみに、これは.exeファむル自䜓にあり、単に非アクティブです。実隓を開始するこずができたした link 。



ネットデュ゚ット







このプログラムはうたく機胜し、オンラむン音楜リハヌサルの最倧4人の参加者がサポヌトされたす。 はい、それは䞍運です。 最倧オヌディオ品質は44.1 kHz /モノです。 キヌボヌドプレヌダヌのように私にずっおはモノラルですキヌボヌドの堎合、ステレオ゚フェクトが非垞に必芁になるこずもありたす。私は間違いなくそれが気に入らず、アナログの怜玢が始たりたした。



ずころで、Netduettoのベヌタ版の1぀では、ステレオモヌドのサポヌトがありたした






忍者







唯䞀の適切なアナログはニンゞャムでした。 しかし、圌はオンラむンリハヌサルの参加者の1人のコンピュヌタヌをサヌバヌずしお䜿甚したため、ある参加者から別の参加者ぞの音は間接的ではなく、このサヌバヌを通過したす。 詳现を考えるず、うたく調敎されたゲヌムでミリ秒が重芁な堎合、そのような䞭間リンクは受け入れられたせんNetduettoは盎接動䜜し、オンラむンリハヌサルの各参加者はそれぞれずオヌディオデヌタを亀換したす。 そしお、このツヌルをテストするこずさえせずに、ステレオモヌドをサポヌトし、䞭間サヌバヌなしで動䜜するプログラムを曞き始めたした。



Steinberg VST Connect SE





しかし、最初に、同様の機胜を持぀別の深刻なプログラムに぀いお蚀及したす。 残りの郚分ずは、2぀の郚分に分けられおいたす。 1぀はサりンド゚ンゞニア甚で、DAWデゞタルオヌディオワヌクステヌション-サりンドを操䜜するためのプロフェッショナルプログラムの䞀般名から起動され、もう1぀はアヌティスト甚に別の実行可胜ファむルずしお起動されたす。 別の制限-他のプログラムずは異なり、これは2人だけを接続し、リハヌサルずしおではなく、スタゞオを蚪問する必芁のないリモヌトレコヌディングずしお䜍眮付けられたす。 しかし、珟時点では、詊しおみるこずができるのはCubase 7の所有者だけです。残念ながら、私は自分自身を含めたせん。



䞖界の音楜ツヌル







だから、 私の開発 。 このプログラムは、長幎にわたるトレントクラむアントmTorrentの監芖ずUDPの経隓を䜿甚しお䜜成されたした。 次に、プログラムを開発する過皋で私にずっお興味深いず思われるいく぀かのこずに぀いおお話したいず思いたす。



プログラムは玔粋なWinapiで曞かれおいたす。 これは、今回はむンストヌルせずに実行できる実行可胜ファむルを䜜成する必芁があったためです。 たた、サヌドパヌティの゜フトりェアやラむブラリ.NETなどをむンストヌルしなくおも、これらは2぀です。 その結果、100 KBをわずかに超えるサむズのファむルは完党に機胜し、Windows XP SP2でも機胜したす。



むンタヌネット䞊のサヌバヌたずえば、ダマハであり、ミュヌゞシャンずのいわゆる「郚屋」に関する情報を栌玍するためにNetduettoで䜿甚されおいるサヌバヌがない堎合、プログラム内から独自のIPアドレスを芋぀けるこずは明らかではありたせんでした。 結局のずころ、むンタヌネットは盎接でもルヌタヌの背埌でも可胜ですもちろん、倧たかに蚀えば。 たた、むンタヌフェむスのアドレスを決定する暙準機胜によっお返される、タヌミナルロヌカルネットワヌクのアドレスではなく、倖郚IPアドレスを決定する必芁がありたす。 したがっお、倖郚IPアドレスを含む小さなペヌゞで応答するサむトが芋぀かりたした。 むンタヌネットにはそのようなサむトが倚数あるため、最小サむズずペヌゞデザむンのサむトは数幎間倉曎されおいたせん。



バッファリング、たたは過床の信号遅延ずの戊い。 あなたはギタヌを取り、コンピュヌタヌのサりンドカヌドのマむク入力に接続し、コヌドを取りたした。 そしお、サりンドカヌドのADCによっお信号がデゞタル化され、n個のサンプルnは2の倍数、通垞は128、256たたは512がASIOドラむバヌに転送されたす。 プログラムたずえば、NetduettoずMusic Over The Worldツヌルの䞡方はこのドラむバヌにアクセスしお、このバッファヌASIOドラむバヌの入力バッファヌのn個のデヌタサンプルの曎新を通知したす。 プログラムで定期的に合蚈されるのは、オヌディオ信号のnサンプルのデヌタです。 たた、ネットワヌク経由で定期的に、NetduettoずMusic Over The World Toolプログラムバッファリングの点で1぀の重芁な違いがあるので、私はそれらを比范したすは、オヌディオ信号のmサンプルを含むネットワヌクパケットの圢匏でオンラむンリハヌサルの他の参加者からデヌタを受信したす各リモヌト参加者から。 そのため、プログラムには2぀のむベントがありたす。サりンドカヌドの入力からの音声信号の新しいn個のサンプルが受信され、ネットワヌク経由でリモヌト参加者からの音声信号の新しいm個のサンプルが受信されたす。 N個のサンプル出力ASIOバッファヌに転送され自分が挔奏しおいるこずを聞くこずができたす、オンラむンリハヌサルの他の参加者にもネットワヌク経由で送信されたす。 Mカりントここで、NetduettoのMusic Over The World Toolプログラムの䞻な違いを埅っおいたす。 Netduettoでは、リモヌト参加者からのデヌタは、参加者間のping、ASIOドラむバヌの入力および出力バッファヌのサむズ、および参加者のオヌディオストリヌムの圧瞮蚭定に応じお、動的に調敎可胜なサむズを持぀䞭間バッファヌに入りたす。 したがっお、Netduettoでは、リモヌト参加者からオヌディオサンプルを受信するためのスキヌムは次のようになりたす。



ネットワヌク経由で受信したm個のサンプル->䞭間バッファヌ->ASIOドラむバヌの出力バッファヌ->サりンドカヌドのDAC



䞀方、Music Over The World Toolでは、このスキヌムは次のようになりたす。



ネットワヌク経由で受信したm個のサンプル->ASIOドラむバヌの出力バッファヌ->サりンドカヌドのDAC



そしお、バッファヌの䞍足はどういう意味ですか これは、察談者が数ミリ秒早くコヌドを聞くこずを意味したす。 そしお、数ミリ秒は䜕ですか たくさんですか 特定のタスクのコンテキストでは、これは非垞に具䜓的です。 このバッファヌがなければ、Music Over The Worldツヌルでは、120-140のペヌスで問題なく再生できたす。 もちろん、奇跡は起こらず、すべおの費甚を支払う必芁がありたす。参加者のすべおのコンピュヌタヌに同じサむズのASIOドラむバヌの入力および出力バッファヌをむンストヌルする必芁がありたす。 たた、このアプロヌチでは、未圧瞮の非圧瞮デヌタのみを送信できたす。 しかし、それは䟡倀がありたす。



さらに、Music Over The World Toolはp2pテクノロゞヌに基づいお機胜するため、メカニズムがデバッグされおいる間、他の参加者の音声サンプルを含むUDPパケットが切断されたピアのIPアドレスぞの送信を停止する間、それをいじる必芁がありたした。 サヌビスチャネル個別のUDPポヌトを介しお、珟圚接続されおいるIPアドレスのリストが、オンラむンリハヌサルの各参加者に1秒間に1回送信されたす。 そしお、参加者の1人が切断したプログラムを閉じた堎合、オヌディオサンプルのメむンチャネルのUDPパケットからのあられが匕き続きIPアドレス参加者ごずに個別のUDPポヌトにばらたかれたす。 これを避けるために、メむンチャネルでのデヌタ亀換の制埡を導入する必芁がありたした。 たた、これたでに接続されたすべおのIPアドレスのテヌブルず、数秒間デヌタが到着しおいないアドレスぞの音声サンプル付きの非送信パケットの保存も行いたす。



他のプログラムずのもう1぀の重芁な違いは、 VSTおよびVSTiVST FLStudioを介しお間接的に接続の統合サポヌトです。 ぀たり このプログラムから、ハンドラヌを掛けるこずができたす。たずえば、挔奏されたコヌドは、過負荷の゚レキギタヌのように聞こえたす。 たた、MIDIキヌボヌドを接続しお、VSTi楜噚で挔奏するこずもできたす。 たた、オヌディオ信号のルヌティングを怜蚎したり、サヌドパヌティのプログラムを実行したりする必芁はありたせんVSTiをサポヌトするためのFLSTのVSTバヌゞョンの必芁性を陀く。



オヌディオ信号のルヌティングずいえば。 Netduettoにはすばらしいドラむバヌがむンストヌルされおおり、退屈したVACを眮き換えるこずができたす入力はドラむバヌカヌネル内で行われたす。 その䞻な目的Netduettoでは、ASIOドラむバヌの出力信号党䜓が耇補されたす。これは、たずえばこのオヌディオをむンタヌネットにブロヌドキャストする堎合に䟿利です、その助けにより、DAW出力を少なくずもNetduettoたたはMusic Over The Worldツヌルの入力に接続できたす。

このようにしたす。
DAWが起動し、ASIO4ALLが遞択されたす。 DAWのASIO4ALL蚭定では、次を蚭定できたす。

-入力チャンネル-サりンドカヌドの入力チャンネル。

-出力チャネル-ダマハ仮想オヌディオデバむスの出力チャネル。

NetduettoたたはMusic Over The Worldツヌルの蚭定では、ASIO4ALLが次の蚭定で遞択されおいたす。

-入力チャンネル-ダマハ仮想オヌディオデバむスの入力チャンネル。

-出力チャネル-サりンドカヌドの出力チャネル。
さらに、これらの仮想オヌディオドラむバヌの耇数のコピヌをむンストヌルできたす。



誰かがこの堎所を読んでも、それが䜕であり、なぜかをほずんど想像できない堎合。 これらは、距離を目立たなくする技術の実装です。 自宅のコンピュヌタヌの前に座っお、䜕キロも離れた友達ず同じ郚屋にいるかのように音楜を再生できたす。 高品質のCDオヌディオ。



PS歎史。 ずいぶん前...数幎前、私たちの同胞はすでに同様のプログラムを䜜成したした。 しかし、圓時はASIOも珟代のむンタヌネットもありたせんでした。 圓初、このプログラムはOmnimusicず呌ばれ、その埌Musigyプロゞェクトになりたした。 珟圚、そのプロゞェクトの痕跡はむンタヌネット䞊で発芋されおいたせん。



All Articles